通过opencv和python实时跟踪对象

时间:2015-12-25 07:29:09

标签: python algorithm opencv image-processing real-time

我正在寻找好的算法来实时进行对象跟踪。 到目前为止我找到的最好的一个是camshift,但问题是我需要对象检测来自外侧图像。(我给算法一个图像,他在视频中找到它...)和camshift需要用鼠标选择ROI点。我试图改变它,但它没有成功。 我打开学习新算法或更改camshift。

感谢。

1 个答案:

答案 0 :(得分:1)

我不太了解camshift,但我猜你正在使用opencv实现。以下代码是opencv示例的片段:

        hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
        dst = cv2.calcBackProject([hsv],[0],roi_hist,[0,180],1)

        # apply meanshift to get the new location
        ret, track_window = cv2.CamShift(dst, track_window, term_crit)

对于第一张图片,选择与框架尺寸一样大的dst可以解决您的问题。否则,您可以使用滑动窗口方法在第一帧中定位目标。

另一方面,术语实时在很多方面取决于您的要求和部署环境:

  • 输入视频的帧率
  • 框架的分辨率
  • 框架的颜色方案(rgb,yuv,gray,hsv,...)
  • 最大/最小目标尺寸
  • 最大目标速度(像素/帧)
  • 它应该对遮挡有效吗?
  • 目标最具体的属性是什么:汽车,人/动物,固体物体,变形,转弯......
  • 您使用的是CPU,DSP还是GPU?
  • ...

由于上述所有考虑因素对您的选择都非常有效,我不能向您推荐具体的考虑因素。例如,This one可能很有用。

我会深入研究IEEE explore并进行搜索,例如real time object tracking。我为你做了一个:) Here是你最好的起点,我想。

希望这会有所帮助。 格克。