9

要求是在 3D 空间中围绕每只眼睛定义一个矩形。应该有一种方法可以使用 Microsoft Kinect SDK 跟踪眼睛。据此_

Face Tracking SDK 使用 Kinect 坐标系输出其 3D 跟踪结果。原点位于相机的光学中心(传感器),Z 轴指向用户,Y 轴指向上方。测量单位是用于平移的米和用于旋转角度的度。

添加

...
Debug3DShape("OuterCornerOfRightEye", faceTrackFrame.Get3DShape()
    [FeaturePoint.OuterCornerOfRightEye]);
Debug3DShape("InnerCornerRightEye", faceTrackFrame.Get3DShape()
    [FeaturePoint.InnerCornerRightEye]);
Debug3DShape("InnerCornerLeftEye", faceTrackFrame.Get3DShape()
    [FeaturePoint.InnerCornerLeftEye]);
Debug3DShape("OuterCornerOfLeftEye", faceTrackFrame.Get3DShape()
    [FeaturePoint.OuterCornerOfLeftEye]);
...
private void Debug3DShape(string s, Vector3DF v)
{
    Debug.WriteLine(s + " X " + v.X + " Y " + v.Y + " Z " + v.Z);
}

到 Microsoft.Kinect.Toolkit.FaceTracking 中的 CreateResult() 打印

OuterCornerOfRightEye X -0.05728126 Y 0.04850625 Z -0.1144406
InnerCornerRightEye X -0.01584376 Y 0.04850625 Z -0.1279687
InnerCornerLeftEye X 0.01584374 Y 0.04850625 Z -0.1279687
OuterCornerOfLeftEye X 0.05728124 Y 0.04850625 Z -0.1144406

当 SDK 开始跟踪人脸时。我应该能够使用这些坐标在每只眼睛周围画一个框,但 Z 坐标应该更接近 1.0,而不是 -0.1.. 或 -0.2..(基于我的设置)所以我不相信这些数字. XYZ 是否应该是 FeaturePoint 在 3D 空间中相对于传感器的位置?我误解了 Kinect 坐标系吗?我是否错误地使用了 Kinect SDK?我使用 Xbox 360 Kinect 传感器是否重要?(Microsoft 不保证 Kinect for Windows 应用程序和 Xbox 360 Kinect 传感器完全兼容)

编辑:添加这个

if (trackSucceeded) {
    ...
    if (headPointsObj != null) 
        for (int i = 0; i < 2; i++) 
            DebugHeadPoint(i, headPointsObj.Points);
}
private void DebugHeadPoint(int i, Vector3DF[] points) {
    if (points == null) throw new ArgumentNullException("points");
    Debug.WriteLine("HeadPoint[" + i + "] X " + points[i].X + 
        " Y " + points[i].Y + 
        " Z " + points[i].Z);
}

到 FaceTracker.cs::Track() 打印这个

HeadPoint[0] X 0.01227657 Y -0.2290326 Z 1.319978
HeadPoint[1] X 0.00613283 Y -0.02143053 Z 1.280334
HeadPoint[0] X 0.003939687 Y -0.2297621 Z 1.319813
HeadPoint[1] X -0.003732742 Y -0.02388078 Z 1.277723
...

根据设置,这些数字似乎是正确的。FeaturePoints 只打印一次,但 HeadPoints 在 trackSucceeded 时连续打印。FeaturePoint 值是否与 HeadPoint 相关?

4

1 回答 1

4

根据我们在 MSDN 论坛上的对话:

http://social.msdn.microsoft.com/Forums/en-US/93046062-05fe-4beb-9d69-94a4f004fb7b/how-to-track-eyes-using-kinect

于 2013-06-24T20:58:59.287 回答