我正在使用kinect来做计算机可视化软件。我有我的程序设置,以便它过滤掉超出一定距离的所有内容,一旦某些东西足够接近足够大而成为一只手,我的程序就会假设它。
但是,我想扩展此功能。目前,如果手离开深度过滤区域,则软件不再跟踪其位置。无论深度如何,我如何在识别出它后跟随手?
答案 0 :(得分:0)
我没有使用Kinect控制器,但是一旦我使用激光扫描仪回放范围,但只能在水平面上。但我们使用的技术也可以应用于Kinect。
当我们找到想要识别的对象时,我们计算了对象[X,Y]
的中心点(Kinect为[X,Y,Z]
)。对于下一个“框架”,我们查找了来自r
的给定半径[X,Y]
内的所有点,对于我们发现的那些点,我们计算了一个新的中心[X,Y]
,我们将其用于下一个“框架” “等等。
我们使用最大可能的物体速度和帧速率来计算可能的最小r
,以确保物体不会从两个测量帧之间的跟踪中逃脱。
答案 1 :(得分:0)
您可以查看Mean Shift Tracking: http://www.comp.nus.edu.sg/~cs4243/lecture/meanshift.pdf
然后即使它变得更小或更大(更远或更近),也可以跟踪blob。
答案 2 :(得分:0)
我没有使用过Kinect控制器,但您可以尝试在以下位置实现快速模板匹配算法: https://github.com/dajuric/accord-net-extensions
只需使用深度图像代替标准灰度图像。样本包括在内。
P.S。 该库还提供其他跟踪算法,如卡尔曼滤波,粒子滤波,JPDAF,Camshift,Mean-shift(包括样本)。