opencv - 使用 Kinect 进行手指/手势识别

标签 opencv image-processing computer-vision kinect openni

在解释问题之前让我解释一下我的需求。 我期待着手控应用程序。 使用手掌进行导航,使用抓握/拳头进行点击。

目前,我正在与 Openni 合作,这听起来很有前途,并且几乎没有对我的案例有用的示例,因为它在示例中内置了手部跟踪器。这暂时符合我的目的。

我想问的是,

1) 拥有拳头/抓取检测器的最佳方法是什么?

我在提取的 RGB 数据上训练并使用了 Adaboost 拳头分类器,这非常好,但是,它有太多错误检测,无法继续前进。

所以,这里我再提出两个问题

2) 有没有其他好的库能够使用深度数据满足我的需求?

3)我们能否训练自己的手势,尤其是使用手指,因为一些论文提到了 HMM,如果可以,我们如何继续使用像 OpenNI 这样的库?

是的,我尝试使用 OpenNI 中的中间件库,例如抓取检测器,但是它们无法满足我的目的,因为它既不开源也不符合我的需要。

除了我问的,如果你觉得有什么可以帮助我的,我会采纳为好建议。

最佳答案

您不需要训练您的第一个算法,因为它会使事情复杂化。 也不要使用颜色,因为它不可靠(与背景混合并根据光照和视点发生不可预测的变化)

  1. 假设您的手是最近的物体,您可以简单地 按深度阈值将其分割出来。您可以手动设置阈值,使用最接近的深度直方图区域,或执行 connected component在深度图上首先将其分解为有意义的部分(然后不仅根据其深度而且还根据其尺寸、运动、用户输入等选择对象)。这是连接组件方法的输出: depth image connected components hand mask improved with grab cut
  2. 申请 convex defects从opencv库中寻找手指;

  3. 跟踪手指而不是在 3D 中重新发现它们。这将增加稳定性。大约 3 年前,我成功地实现了这种手指检测。

关于opencv - 使用 Kinect 进行手指/手势识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21777821/

相关文章:

opencv - 如何创建自定义 haar 分类器?

python - Dlib 裁剪后的图像是蓝色的

python - 如何修复 "PATH"问题?

c++ - OpenCv 2.3 C - 如何隔离图像中的对象

python - 从 ComputerVision : Scikit-image or OpenCV? 开始选择什么

python-3.x - OpenCV 分类器检测火车(铁路运输)

java - 比较方法违反了它的一般契约!在java中对图像轮廓进行排序时

opencv - Sobel 滤波图像上的 Otsu 阈值处理给出不同的结果

math - 在已知并固定相机型号时校正鱼眼失真

python - pytorch Faster-RCNN 的验证损失