过滤检测后的形状跟踪

Posted

技术标签:

【中文标题】过滤检测后的形状跟踪【英文标题】:Shape tracking after filtered detection 【发布时间】:2011-02-18 20:08:01 【问题描述】:

我正在使用 kinect 做计算机视觉软件。我有我的程序设置,以便它过滤掉超出一定距离的所有东西,一旦有东西进入到足够近的地方,大到足以成为一只手,我的程序就会假设它是。

但是,我想扩展此功能。目前,如果手离开深度过滤区域,软件将不再跟踪它的位置。认出手后,如何随手随手,不分深浅?

【问题讨论】:

【参考方案1】:

我没有使用过 Kinect 控制器,但是一旦我使用激光扫描仪返回了范围,但仅限于水平面。但是我们使用的技术也可以应用于 Kinect。

当我们找到一个我们想要识别的对象时,我们计算了对象的中心点[X,Y](对于 Kinect 来说是[X,Y,Z])。对于下一个“帧”,我们从[X,Y] 中查找给定半径r 内的所有点,对于我们找到的这些点,我们计算了一个新中心[X,Y],我们将其用于下一个“帧”等等。

我们使用最大可能的对象速度和帧速率来计算可能的最小r,以确保对象不会在两个测量帧之间逃离我们的跟踪。

【讨论】:

【参考方案2】:

您可以查看 Mean Shift Tracking: http://www.comp.nus.edu.sg/~cs4243/lecture/meanshift.pdf

然后,即使 blob 变小或变大(更远或更近),也可以跟踪它。

【讨论】:

【参考方案3】:

我没有使用过 Kinect 控制器,但您可以尝试在以下位置实现的快速模板匹配算法: https://github.com/dajuric/accord-net-extensions

只需使用您的深度图像而不是标准灰度图像。样品包括在内。

附: 该库还提供了其他跟踪算法,例如卡尔曼滤波、粒子滤波、JPDAF、Camshift、Mean-shift(包括样本)。

【讨论】:

以上是关于过滤检测后的形状跟踪的主要内容,如果未能解决你的问题,请参考以下文章

高效过滤器的检漏过程

在 OpenCV C/C++ 中只过滤一个轮廓

OpenCV 和 Python - 如何使用卡尔曼滤波器从 OpenCV 检测到的不规则多边形中过滤噪声?

运动对象检测和描述

如何在gridview中跟踪是不是在extjs中应用了过滤器?

获取过滤后的数据源的数据