使用 Kinect 进行手指/手势识别 [英] Finger/Hand Gesture Recognition using Kinect

查看:108
本文介绍了使用 Kinect 进行手指/手势识别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Let me explain my need before I explain the problem. I am looking forward for a hand controlled application. Navigation using palm and clicks using grab/fist.

目前,我正在与 Openni 合作,这听起来很有希望,并且在我的案例中很少有示例被证明是有用的,因为它在示例中内置了手部跟踪器.这暂时符合我的目的.

Currently, I am working with Openni, which sounds promising and has few examples which turned out to be useful in my case, as it had inbuild hand tracker in samples. which serves my purpose for time being.

我想问的是,

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

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

I trained and used Adaboost fist classifiers on extracted RGB data, which was pretty good, but, it has too many false detections to move forward.

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

So, here I frame two more questions

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

3)我们可以训练自己的手势,尤其是使用手指,就像一些论文提到的 HMM 一样,如果可以,我们如何使用 OpenNI 之类的库?

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

Yeah, I tried with the middle ware libraries in OpenNI like, the grab detector, but, they wont serve my purpose, as its neither opensource nor matches my need.

除了我问的以外,如果有什么你认为对我有帮助的东西,将被视为一个好的建议.

Apart from what I asked, if there is something which you think, that could help me will be accepted as a good suggestion.

推荐答案

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

You don't need to train your first algorithm since it will complicate things. Don't use color either since it's unreliable (mixes with background and changes unpredictably depending on lighting and viewpoint)

  1. 假设您的手是最近的物体,您可以简单地通过深度阈值将其分割出来.您可以手动设置阈值,使用深度直方图的最近区域,或执行 从 opencv 库中查找手指;
  1. Assuming that your hand is a closest object you can simply segment it out by depth threshold. You can set threshold manually, use a closest region of depth histogram, or perform connected component on a depth map to break it on meaningful parts first (and then select your object based not only on its depth but also using its dimensions, motion, user input, etc). Here is the output of a connected components method:
  2. Apply convex defects from opencv library to find fingers;

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

Track fingers rather than rediscover them in 3D.This will increase stability. I successfully implemented such finger detection about 3 years ago.

这篇关于使用 Kinect 进行手指/手势识别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆