I have a frame taken from a video. The frame contains a face and I have the (x, y) locations of the features (corners of lips, edge of eyebrows, etc.) and the headpose vector (pitch, yaw, roll), which shows the direction that the face is looking in degrees ((0, 0, 0) would be at the camera).

I need to calculate distances between specific points in real (3D) space. How can I map the feature locations to 3D space?


You don't have enough information to calculate 3D points for anything--all your information is relative right now. You need something that establishes a measurement, and some way to determine depth. If you know how far a point is from the camera (or can estimate it), then you can at least start calculating locations of features you know to be within the vertical plane containing that point. Or if you know how large a feature is, then you can calculate the sizes of features also assumed to be in the same vertical plane. Alternatively, if you can use information from other frames, then you can assume a rigid model for certain facial features and begin to make estimates, but it's still all scale-free until you can pin down a distance somewhere.

| cite | improve this answer | |
  • $\begingroup$ Thanks! That makes a lot of sense. I don't have any distances to work with, but I actually only need relative distance between 2 sets of points. Is there a good way to go about doing this? $\endgroup$ – ifyadig May 2 '16 at 3:02
  • $\begingroup$ I'm still not sure what you have to work with and what you're trying to get. Are the points something that can be assumed to lie on a spheroid, or might one of them be on a nose or glasses, etc.? Anything I can help with would really only be doing thing geometrically. If you have more information from other video frames, there may be others who could help you out in another forum more attuned to that. $\endgroup$ – Matt Plumlee May 9 '16 at 13:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.