跳过内容。

多目标跟踪

此目录提供了构建和推断多目标跟踪系统的示例和最佳实践。我们的目标是使用户能够轻松地使用自己的数据集并训练出高精度的跟踪模型。虽然有许多开源跟踪器可用,但我们已将 FairMOT 跟踪器集成到此存储库中。FairMOT 算法在最近的 MOT 基准测试挑战中表现出具有竞争力的跟踪性能,同时还具有可观的推理速度。

设置

由于 FairMOT 存储库引入的限制,此文件夹中的跟踪示例只能在 Linux 计算目标上运行。

在运行提供的笔记本之前,需要在 cv conda 环境中安装以下库

activate cv
conda install -c conda-forge opencv yacs lap progress
pip install cython_bbox motmetrics

此外,FairMOT 的 DCNv2 库需要通过此步骤进行编译

cd utils_cv/tracking/references/fairmot/models/networks/DCNv2  
sh make.sh

为什么选择 FairMOT?

FairMOT 是一个 开源、一阶段在线跟踪算法,在快速推理速度下,在 最近的 MOT 基准测试挑战中表现出具有竞争力的性能

典型的跟踪算法在不同的连续步骤中处理检测和特征提取过程。最近的研究——(Voigtlaender 等,2019)(Wang 等,2019)(Zhang 等,2020)——已转向将检测和特征嵌入过程结合起来,使其在共享模型(单个网络)中学习,特别是当两个步骤都涉及深度学习模型时。这种框架被称为单阶段或一阶段,并已在最近的高性能模型中流行起来,例如 FairMOT (Zhang 等,2020)、JDE (Wang 等,2019) 和 TrackRCNN (Voigtlaender 等,2019)。此类单阶段模型比典型的跟踪-检测模型更高效,并且由于检测和特征嵌入的单个网络表示共享计算,因此显示出更快的推理速度。在 MOT16 挑战数据集上,FAIRMOT 和 JDE 分别实现了 25.8 帧/秒 (fps) 和 18.5 fps,而 DeepSORT_2(一个跟踪-检测跟踪器)实现了 17.4 fps。

如下表所示,与标准 MOT 跟踪器相比,FairMOT 模型具有更高的跟踪性能(有关性能指标的更多详细信息,请参阅下文)。FairMOT 所基于的 JDE 模型的 ID 切换次数要差得多 (Zhang 等,2020)。JDE 模型使用典型的基于锚点的对象检测器网络进行特征嵌入,并使用下采样特征图。这导致锚点与对象中心之间存在错位,从而导致重新识别问题。FairMOT 通过估计对象中心而不是锚点、使用更高分辨率的特征图进行对象检测和特征嵌入,以及通过聚合高层和低层特征来处理不同大小对象的尺度变化,从而解决了这些问题。

| 跟踪器 | MOTA | IDF1 | ID 切换 | fps | | -------- | ---- | ---- | --------- | --- | |DeepSORT_2| 61.4 | 62.2 | 781 | 17.4 | |JDE| 64.4 | 55.8 | 1544 | 18.5 | |FairMOT| 68.7 | 70.4 | 953 | 25.8 |

技术

由于其在自动驾驶、交通监控等方面的应用,多目标跟踪 (MOT) 是计算机视觉领域一个流行且不断增长的研究领域。MOT 以目标检测技术为基础,用于在动态场景中随时间检测和跟踪目标。正确推断连续图像帧中的目标轨迹仍然具有挑战性。例如,遮挡可能导致目标数量和外观发生变化,从而使 MOT 算法复杂化。与旨在在目标周围输出矩形边界框的目标检测算法相比,MOT 算法还为每个框关联一个 ID 号,以在图像帧中识别该特定目标。

如下图所示 (Ciaparrone, 2019),典型的多目标跟踪算法执行部分或全部以下步骤

Notebook

我们提供了几个笔记本,展示了如何设计和评估多目标跟踪算法

Notebook 名称 描述
01_training_introduction.ipynb 解释模型训练、推理和评估的基本概念的笔记本,使用典型的跟踪性能指标。
02_mot_challenge.ipynb 在常用 MOT Challenge 数据集上运行模型推理的笔记本。

常见问题

有关常见问题的答案,例如“该技术如何工作?”或“需要什么数据格式?”,请参阅此文件夹中的 常见问题解答。有关一般性问题,例如“我需要多少训练示例?”或“如何在训练期间监控 GPU 使用情况?”,请参阅分类文件夹中的 FAQ.md

贡献指南

请参阅根文件夹中的贡献指南