Open Rohit-Varma1 opened 5 years ago
Gaze angles reported by OpenFace are with respect to camera. To get gaze angle with respect to head pose you can just multiply the gaze vector with the inverse matrix describing the head pose.
However, tracking gaze under head pose motion is a difficult problem and there will be a bias in error when the head is moving, so some error in the results is expected. OpenFace is more accurate in terms of relative gaze rather than absolute gaze.
So you mean multiple the gaze_direction 0 with cv::Matx33f corrected_rotation = camera_rotation * head_rotation;
?
Exactly, you might just need to transpose the head rotation matrix (I don't remember which way exactly it should be)
Hello, may I ask a question? I have a similar problem but cannot solve it by multiplying the head rotation matrix or homogeneous transformation matrix to the gaze vector.
My webcam installed just below the monitor which means both are on the same plane. When I looking at the four corner points of the monitor without head rotation, the OpenFace gave me always positive gaze_y value. I cannot understand why this happens.
Hi, there may be a systematic error you are encountering, gaze_y is not as reliable as gaze_x. Is the relative change in gaze angle reasonable when looking at different corners of the screen?
Hi,
@rohitvarma1986, what you call camera_rotation, is it gaze_angle_x
and gaze_angle_x
or gaze_0_x
, gaze_0_y
, gaze_0_z
?
Thanks for helping!
Hi Tadas,
I was looking into the gaze angles ( x values ) and they go from + to - as I change my head pose from left to right, irrespective of where my eyes are looking at. meaning If i move my head to right...then value for gaze X angles are always negative irrespective of whether my eyes are looking at camera or away. Is there a way to figure out gaze with respect to head pose ? thank you