I'm working on solving a computer vision problem related to face rotation. I have mappings in 2D space of a face (ibug spec), which you can read about here: https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/
For the purposes of this problem, we can focus on the corners of the eyes and the bottom of the mouth. These three points essentially form an isosceles triangle, as a 3D projection to 2D.
My goal is to find the rotation of the head in space. I am thinking that we can treat the head as a sphere, although perhaps just looking at the three points on a plane is enough. Not really sure if there's a difference to that consideration...
As a human moves around in 3D space, their head will be rotated away from the camera / view point in 3 possible axes: front to back, left to right, and around z... a tilt.
How can I find these rotations from "center", where the face is looking straight at the camera, and the points form an isosceles triangle. It may be that for the purposes of the question, finding the equalateral triangle might be better since there would be only 1 answer then (assuming the constraints of human motion of a head on a neck).