【问题标题】:Combine tracking and detection结合跟踪和检测
【发布时间】:2019-07-16 05:38:48
【问题描述】:

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

我使用 Faster-RCNN、tensorflow 对象检测 API 作为简单的检测起点。 对于跟踪,我使用来自 opencv 的 KCF 算法。

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

虽然跟踪比较稳定,但是当物体移动时,跟踪器无法跟随物体,不准确。

所以我正在考虑将这两种方法结合起来,以提高我的结果既稳定又准确。

我有计算机视觉的背景,但我是这个领域的新手(多目标跟踪)。谁能给我一些关于我应该如何处理这种问题的建议?

非常感谢! :)

【问题讨论】:

    标签: computer-vision object-detection


    【解决方案1】:

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

    透明点是检测到的跟踪点,脏点是平滑点。

    后台显示的对应轨迹:

    一些技巧也很有用,如果在某个随机位置检测失败,您可以设置一个“跳过门”,尝试在后面的帧中找到一个匹配点(在我的实验中,60 对于 24fps 视频来说还不错)。你会更喜欢召回而不是准确度,因为你可以构建一个相当长的序列,并丢弃来自误报检测的短噪声序列。

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

    【讨论】:

    • 感谢您提供全面而出色的答案!您使用“跳过门”的方式似乎是一种“离线”方法,即从后面的帧中获取信息。我更喜欢在线方法。任何建议都会非常有帮助!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多