通过 opencv 和 python 实时跟踪对象

object tracking in real time via opencv and python

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

谢谢。

我不太了解 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 应该可以解决您的问题。否则,您可以使用滑动 window 方法在第一帧中定位目标。

另一方面,实时一词实际上取决于您在这些方面的要求和部署环境:

  • 输入视频的帧率
  • 帧的分辨率
  • 框架的配色方案(rgb、yuv、灰色、hsv、...)
  • maximum/minimum 目标尺寸
  • 最大目标速度(pixels/frame)
  • 它应该对遮挡具有鲁棒性吗?
  • 您的目标最具体的属性是什么:汽车、human/animals、固体物体、改变形状、转动……
  • 您使用的是 CPU、DSP 还是 GPU?
  • ...

由于上述所有考虑因素都会对您的选择产生真正的影响,因此我无法向您推荐具体的一个。 This one 例如可能有用。

我想我会深入研究 IEEE explore and make a search such as real time object tracking. I did one for you :) Here 是你最好的起点。

希望这对您有所帮助。 悟空.