Answered by:
Head/face pose method
Question

There is some api for the head pose (aka face pose, face orientation, gaze with nose, nose normal) or some method?
I want the screen coordinate where the nose is pointing; i started converting quaterninon of faceframe into heulerian angles but i don't know if it is the right approch (i have seen that someone take the most near point of the face and then try to create a vector).
Thanks
Answers

my goal is always to find x,y coordinate (on monitor) pointed by the faceframe, so if there is a easier method let me know.
Edit 2: Using x and z positions of head joint and the faceframe's angles (converting Rotation quaternion to deegres) is possible calculate the "eye" gazing/head pose. Maybe will be required some floorpanel adjustment.
Let's say that "relative" is every measurement that is related on kinecet position and "absolute" every measurement taken by body position.
(I.g. handRight.Position.X is relative and if i want an absolute measurement i have to subtract from spineshoulder.Position.X the handRight.Position.X so the result.Position.X will be the absolute hanRight position.)
I'm trying to do the same thing for head orientation but i noticed that i have a spinebase.ORIENTATION info and a faceframe.ROTATION info. Both are quaternions but they rapresent something different.
I can't understand how i can put in relation spinebase.ORIENTATION and faceframe.ROTATION to have a faceframe information that is indipendent from the position of the kinect (if people look straight forward i want a zero angle and only if they move their heads i want to know the angle/rotation they made relative to where the body is facing and not where the kinect sensor is).
Every suggestion will be usefull, thanks
Edit: i found that "The head pivot point is comparable to the head joint of the body, but the head pivot point has a different vertical coordinate (suitable as a center of rotation)."
This could be an explaination, i'm still trying to figure it out.
All replies

Although it's unknown how the SDK calculates the head pose quaternion it's safe to assume it's internally referencing much more than just the noise point.
So using that quaternion as a basis for your direction vector will most probably be more stable than creating a vector between the head and nose position.
Brekel
 Proposed as answer by Carmine Si  MSFTMicrosoft employee Friday, February 6, 2015 7:08 PM
 Unproposed as answer by gioolio Sunday, February 8, 2015 6:25 PM

my goal is always to find x,y coordinate (on monitor) pointed by the faceframe, so if there is a easier method let me know.
Edit 2: Using x and z positions of head joint and the faceframe's angles (converting Rotation quaternion to deegres) is possible calculate the "eye" gazing/head pose. Maybe will be required some floorpanel adjustment.
Let's say that "relative" is every measurement that is related on kinecet position and "absolute" every measurement taken by body position.
(I.g. handRight.Position.X is relative and if i want an absolute measurement i have to subtract from spineshoulder.Position.X the handRight.Position.X so the result.Position.X will be the absolute hanRight position.)
I'm trying to do the same thing for head orientation but i noticed that i have a spinebase.ORIENTATION info and a faceframe.ROTATION info. Both are quaternions but they rapresent something different.
I can't understand how i can put in relation spinebase.ORIENTATION and faceframe.ROTATION to have a faceframe information that is indipendent from the position of the kinect (if people look straight forward i want a zero angle and only if they move their heads i want to know the angle/rotation they made relative to where the body is facing and not where the kinect sensor is).
Every suggestion will be usefull, thanks
Edit: i found that "The head pivot point is comparable to the head joint of the body, but the head pivot point has a different vertical coordinate (suitable as a center of rotation)."
This could be an explaination, i'm still trying to figure it out.