Is it possible to determine the yaw, pitch and roll of a face given the locations of the eyes and mouth? (picture included)
c++, ios, math, objective-c, opencv
Solution
There is a function called solvePnP which can compute translation and rotation of an object from cameras coordinates system. You need 3D model of the said object, which is 3D positions of points on the object, and find these points on the picture.
Problem
Red dots = Left Eye Center (L), Right Eye Center (R), Mouth Center (M) Purple Line = Line LR Red Line = Horizontal line intersecting midpoint of L and R Yellow Line = Vertical Line intersecting LR at M.x Blue Line(s) = LM and RM Green Line = Distance between X-Coordinates of L and R Given this data, is it possible to determine the yaw, pitch and roll of a face? All I have so far is the roll: Roll = the angular difference between the left and right eye Knowing that L, R and M all move relative to each other, it should be possible to calculate yaw and pitch in 2D space right? My first thought was that yaw could be calculated as a ratio of the X coordinate of M relative to the distance of the x-coords of LR (The green line) Any thoughts? note: I'm using opencv