C# 三维Kinect中的手语识别

C# 三维Kinect中的手语识别,c#,3d,kinect,emgucv,C#,3d,Kinect,Emgucv,我们正在用kinect 1.0设备为我的本科毕业设计制作手语翻译。 到目前为止,我们已经使用kinect sdk中的骨架api实现了二维手势识别,并在其上应用了DTW算法。 我们还跟踪了手指,并使用轮廓和在轮廓上应用凸包来区分帧中显示了多少手指。我们使用C#和Emgucv来实现这一点 现在我们被困在如何将数据转换成3d坐标上。我不明白的是: 三维可视化将是什么样子?我的意思是,现在我们只使用深度流,并在其上应用皮肤分类器,仅将皮肤部分显示为白色像素,其余对象显示为黑色像素,然后在颜色流中显示轮廓

我们正在用kinect 1.0设备为我的本科毕业设计制作手语翻译。 到目前为止,我们已经使用kinect sdk中的骨架api实现了二维手势识别,并在其上应用了DTW算法。 我们还跟踪了手指,并使用轮廓和在轮廓上应用凸包来区分帧中显示了多少手指。我们使用C#和Emgucv来实现这一点

现在我们被困在如何将数据转换成3d坐标上。我不明白的是:

  • 三维可视化将是什么样子?我的意思是,现在我们只使用深度流,并在其上应用皮肤分类器,仅将皮肤部分显示为白色像素,其余对象显示为黑色像素,然后在颜色流中显示轮廓和凸出的外壳区域。对于3d,我们将使用相同的深度和颜色流?如果是,那么我们将如何将数据和坐标转换为3d

  • 对于涉及手指触摸鼻子的手势,我将如何隔离轮廓区域,使其不包括所有面部,而只是告诉哪些手指触摸鼻子的哪一侧?这就是3d的用武之地吗

  • 有哪些api和库可以帮助我们学习c#


  • Kinect支持使用红外激光创建深度贴图。它投影一个红外栅格,并测量栅格中每个点的距离。看起来你已经在使用这个网格的深度信息了。 要转换为3D,您确实应该使用深度信息。一些基本的三角学将有助于将深度贴图转换为3D(x,y,z)坐标。来自摄影机的颜色流可以映射到这些点上


    检测手指是否接触鼻子是一个困难的问题。虽然kinect的网格密度不是很高,但3D可能对您没有帮助。我建议使用边缘检测(例如canny算法)和摄像机图像上的轮廓识别来检测手指是否在面部前方。真正的挑战是测试手指是否真的接触到鼻子或仅仅接近鼻子。

    将深度信息转换为3d对存储手势信息有好处吗?