Ответ 1
Вы посмотрели пример проекта FaceBasics?
Я считаю, что вы хотите использовать FaceFrameSource/FaceFrameReader (примечание: не HDFace). Вы сможете получить ориентацию лица как Quarternion (и пример проекта переводит это на Pitch/Yaw/Roll).
Объединяя это с трехмерным расположением головы из скелета, я думаю, вы должны иметь возможность создать приблизительную линию визирования.
Практические видео охватывают лицо, включая некоторую информацию о ориентации (5-е видео, пропустите примерно в 18:20 - задан ваш конкретный вопрос в 21:49).
EDIT: Грубое доказательство концепции, показывающее изменения, внесенные в проект SampleBashics FaceBasics, добавлено в строку 565, сразу после того, как информация о лицах нарисована (мне также необходимо было изменить масштаб шага/рыскания/ролика, определенного несколькими строками выше, и установить их значения по умолчанию для 0). Это создает круг для головы и желтую линию, смотрящую на приблизительное место взгляда.
Joint HeadJoint = this.bodies[faceIndex].Joints[JointType.Head];
ColorSpacePoint colorPoint = this.coordinateMapper.MapCameraPointToColorSpace(HeadJoint.Position);
Point HeadPoint = new Point(colorPoint.X, colorPoint.Y);
Point GazePoint = new Point(HeadPoint.X - Math.Sin((double)yaw * 0.0175) * 600, HeadPoint.Y - Math.Sin((double)pitch * 0.0175) * 600);
drawingContext.DrawLine(new Pen(System.Windows.Media.Brushes.Yellow, 5), HeadPoint, GazePoint);
drawingContext.DrawEllipse(System.Windows.Media.Brushes.LightBlue, null, HeadPoint, 70, 70);
ИЗМЕНИТЬ 2: Только что увидели ваш новый комментарий, говорящий, что вы используете SDK v1.8 - мой ответ уходит из версии 2.0, и я не могу говорить о том, как все будет по-другому с более старым SDK/Sensor.