通过OpenCV跟踪对象

时间:2014-12-12 13:15:25

标签: python python-2.7 opencv object tracking

我正在尝试使用OpenCV和Python跟踪一个对象(在这种情况下是一个球)。例如,我正在使用此视频:https://www.youtube.com/watch?v=xmQZiSOiD1c

我需要的是在没有检测到视频的其他部分作为球的情况下跟踪球。按颜色跟踪在这里不起作用。由于同样的原因,寻找圈子非常棘手。

想出一个解决这个问题的好方法吗?

1 个答案:

答案 0 :(得分:0)

首先可以通过以下方式对球进行简单的跟踪:

  1. 使用透视单应性分离桌上足球桌,即构建桌子的平面图,以便更容易跟踪2D位置。

  2. 使用简单方法进行一系列观察(猜测),使用颜色和/或运动去除背景。

  3. 任何概率类型跟踪(包括粒子滤波)都需要进行一系列观察。制作高质量的观测结果是产生良好跟踪结果的关键。

    以下是一些source code,它会对您提供的视频和results进行基本的霍夫圈分析。请注意,绿点对于球的过去和当前位置并不是一个糟糕的近似值。下一步是对颜色数据使用粒子滤波,并通过简单的霍夫分析计算位置。您还可以使用当前位置周围的搜索窗口来过滤掉任何误报。

    此外,在图像中注入一些噪声可以改善跟踪结果,因为它提供了特征检测器可以锁定的假边缘。

    在投入大量时间让好的粒子滤镜使用python之前,我已经找到了TLD&的性能。 CMT跟踪器非常适合这种工作。