结合跟踪和检测

时间:2019-07-16 05:38:48

标签: computer-vision object-detection

我目前正在研究多对象跟踪问题。我认为使用“检测跟踪”是一个不错的选择。但是,我不知道如何结合跟踪和检测结果,以便检测可以帮助改善跟踪结果。

我正在使用Faster-RCNN,张量流对象检测API作为检测的简单起点。 为了进行跟踪,我使用来自opencv的KCF算法。

检测不稳定,因为每一帧都独立于模型,而跟踪则更加稳定。

虽然跟踪更稳定,但是当对象移动时,跟踪器无法跟随对象,这是不准确的。

因此,我正在考虑将这两种方法结合起来以提高结果的稳定性和准确性。

我有计算机视觉背景,但是我是该领域的新手(多对象跟踪)。有人可以给我一些有关如何解决此类问题的建议吗?

非常感谢! :)

2 个答案:

答案 0 :(得分:0)

我最近尝试使用检测来跟踪对象。不稳定的问题可以通过经典的滤波技术(例如卡尔曼滤波)来解决(在该领域中,由于噪声,信号处理的点也“不稳定”)。您可以在跟踪的对象周围设置一个小的区域,并尝试在下一帧的该区域中找到相同的区域。由此建立“匹配”关系,然后尝试从下一下一帧匹配下一帧中的对象...可以从该过程中建立跟踪。可以采用任何平滑方法来抑制预测的箱噪声。一个示例可以显示在: enter image description here

透明点是检测到的痕迹点,脏点是平滑的点。

背景中显示的相应迹线: enter image description here

一些技巧也很有用,如果在某个随机位置上检测失败,则可以设置“跳过门”,以尝试在随后的帧中找到一个匹配点(在我的实验中,对于24fps的视频来说还不错)。您会更喜欢召回而不是准确性,因为您可以建立一个很长的序列,并从虚假警报检测中降低短暂的噪声序列。

参考代码:https://github.com/yiyuezhuo/detection-tracking

答案 1 :(得分:0)

我认为您应该尝试使用opencv的CSRT跟踪器,该跟踪器比KCF稳定得多。对于检测,您可以在固定的一组帧之后使用它来使用检测重新初始化跟踪器。这样,您可以将跟踪器与检测器融合在一起。