SORT算法:极简三件套实现60FPS实时追踪,300行代码撬动多目标跟踪

B站影视 欧美电影 2025-05-19 09:39 1

摘要:2016年横空出世的SORT算法,凭借"检测+卡尔曼滤波+匈牙利匹配"的极简三件套,以闪电般的速度碾压传统方案——不需要复杂模型,不需要海量数据,却能实现实时60FPS的精准追踪!

导读

2016年横空出世的SORT算法,凭借"检测+卡尔曼滤波+匈牙利匹配"的极简三件套,以闪电般的速度碾压传统方案——不需要复杂模型,不需要海量数据,却能实现实时60FPS的精准追踪!

今天,我们就来深挖这个算法如何用不到300行代码(注:此处可调整具体行数),实现智能安防、自动驾驶等领域的落地应用!>>更多资讯可加入CV技术群获取了解哦~

简介

SORT是2016年发表的一篇文章《Simple Online and Realtime Tracking》中提出的一个经典的多目标跟踪算法,该算法结合常用的卡尔曼滤波器和匈牙利匹配算法实现了一个简单的在线多目标跟踪框架。由于其超简单的设计,SORT可以以260 Hz的更新速率实现多目标跟踪,远超当时其它的目标跟踪算法。

论文题目:

SIMPLE ONLINE AND REALTIME TRACKING

论文链接:

引言

本文针对多物体跟踪(MOT)问题,介绍了一种通过检测进行跟踪的精益实现框架,在该框架中,每个帧都会检测到物体,并将其表示为边界框。与许多基于批处理的跟踪方法不同的是,这项工作主要针对在线跟踪,即只向跟踪器提供前一帧和当前帧的检测结果。通常情况下,为了便于实时跟踪,并促进更多的应用(如自动驾驶车辆的行人跟踪),我们非常重视效率。

MOT 问题可视为数据关联问题,其目的是将视频序列中各帧的检测结果关联起来。为了帮助数据关联过程,跟踪器使用各种方法对场景中物体的运动和外观进行建模。本文采用的方法是通过对最近建立的视觉 MOT 基准的观察得出的。首先,包括多重假设跟踪(MHT)和联合概率数据关联(JPDA)在内的成熟数据关联技术再度兴起,占据了 MOT 基准的许多前列位置。其次,唯一不使用聚合信道滤波器(ACF)检测器的跟踪器也是排名第一的跟踪器,这表明检测质量可能阻碍了其他跟踪器的发展。此外,准确性和速度之间的权衡似乎相当明显,因为大多数准确跟踪器的速度被认为对于实时应用来说太慢了(见图 1)。由于传统数据关联技术在顶级在线和批量跟踪器中的突出地位,以及顶级跟踪器使用的不同检测方法,这项工作探索了MOT的简单程度和性能。

为了与奥卡姆剃刀保持一致,在跟踪过程中忽略了检测组件以外的外观特征,只将边界框的位置和大小用于移动估算和数据关联。此外,有关短期和长期遮挡的问题也被忽略,因为这些问题很少发生,对它们的明确处理会给跟踪框架带来不必要的复杂性。我们认为,以物体重新识别的形式加入复杂性会给跟踪框架增加大量开销,从而可能限制其在实时应用中的使用。

这种设计理念与许多已提出的视觉跟踪器形成了鲜明对比,后者采用了大量组件来处理各种边缘情况和检测错误。这项工作的重点是高效、可靠地处理常见的帧与帧之间的关联。我们的目标不是要对检测错误具有鲁棒性,而是利用视觉对象检测领域的最新进展来直接解决检测问题。我们将常见的 ACF 行人检测器 与最新的基于卷积神经网络 (CNN) 的检测器进行了比较,证明了这一点。此外,还采用了卡尔曼滤波法和匈牙利法这两种经典但极为高效的方法,分别处理跟踪问题中的运动预测和数据关联部分。这种简约的跟踪形式有助于提高在线跟踪的效率和可靠性,见图 1。在本文中,这种方法只应用于跟踪各种环境中的行人,但由于基于 CNN 的检测器具有灵活性,它自然可以推广到其他物体类别。

本文的主要贡献如下:

我们在 MOT的背景下利用了基于 CNN 的强大检测功能。介绍了一种基于卡尔曼滤波器和匈牙利算法的实用跟踪方法,并在最近的 MOT 基准上进行了评估。代码将开放源代码,以帮助建立基准方法,用于研究实验和避免碰撞应用。

方法

本文提出的方法主要由以下几个部分组成:检测、将物体状态传播到未来帧、将当前检测结果与现有物体关联以及管理被跟踪物体的生命周期。

检测

为了充分利用基于 CNN 的快速检测技术,我们采用了更快区域 CNN(FrRCNN)检测框架。FrRCNN 是一个端到端框架,由两个阶段组成。第一阶段提取特征,并为第二阶段提出区域,然后由第二阶段对提出区域中的物体进行分类。该框架的优势在于,两个阶段共享参数,从而创建了一个高效的检测框架。此外,网络架构本身可以更换为任何设计,从而可以快速试验不同的架构,提高检测性能。

在这里,我们比较了FrRCNN 提供的两种网络架构,即Zeiler和Fer- gus的架构(FrRCNN(ZF)以及Si-monyan和Zisserman的更深层架构(FrRCNN(VGG16) )。在这项工作中,我们使用的是为 PASCAL VOC 挑战赛学习的带有默认参数的FrRCNN。由于我们只关注行人,因此忽略了所有其他类别,只将输出概率大于 50% 的人员检测结果传递给跟踪框架。

在我们的实验中,我们发现在将 FrRCNN 检测与 ACF 检测进行比较时,检测质量对跟踪性能有显著影响。现有的在线跟踪器MDP和本文提出的跟踪器都使用了一组验证序列来证明这一点。表1显示,最佳检测器(FrRCNN(VGG16))为 MDP和本文提出的方法带来了最佳跟踪精度。

估计模型

这里我们将描述目标模型,即用于将目标身份传播到下一帧的表示和运动模型。我们用线性恒速模型来近似处理每个物体的帧间位移,该模型与其他物体和摄像机运动无关。每个目标的状态建模为

其中,u 和 v 分别代表目标中心的水平和垂直像素位置,而比例 s 和 r 则分别代表目标边界框的比例(面积)和长宽比。注意,长宽比被认为是恒定的。当检测与目标相关联时,检测到的边界框用于更新目标状态,其中速度分量通过卡尔曼滤波框架进行优化求解。如果没有检测到目标,则只需预测其状态,无需使用线性速度模型进行修正。

数据关联

给已存在的目标分配当前帧检测到的边界框时,目标在当前帧中的边界框是基于之前的状态预测出来的。所有当前帧检测的边界框与已存在目标做预测得到的边界框通过计算它们之间的IOU来求代价矩阵,然后用匈牙利算法求解最优匹配结果。如果检测边界框与预测边界框匹配成功且它们之间的IOU值大于阈值IOUmin,那么就认为它们是一对有效的匹配对,否则是无效的。匹配成功后,就可以基于检测的边界框对目标状态进行更新了。

作者发现采用IOU作为距离度量进行匹配可以隐式地解决由于传递目标引起的短期遮挡的问题。具体来说,当一个目标被另一个物体覆盖时,检测器只能检测到这个遮挡物体而检测不到被遮挡物体,因为IOU距离有利于具有相似比例的检测框。这样的话遮挡物体可以正常被分配检测框去更新状态,而被遮挡物体则不会受误分配带来的影响,因为当前没有检测框会分配给它。

创建和删除轨迹特征

当物体进入或离开图像时,需要相应地创建或删除唯一标识。在创建跟踪器时,我们认为任何重叠度小于 IOUmin的检测都表示存在未被跟踪的物体。跟踪器使用边界框的几何形状进行初始化,速度设为零。由于此时无法观测到速度,因此速度分量的协方差初始化为大值,以反映这种不确定性。此外,新的跟踪器会经历一个试用期,在此期间,目标需要与探测相关联,以积累足够的证据,防止跟踪误报。

如果在 TLost 帧内未检测到目标,则会终止跟踪。这样可以防止跟踪器数量的无限制增长,以及由于长时间预测而未得到探测器的修正而造成的定位错误。在所有实验中,TLost 都设为 1,原因有两个。首先,恒定速度模型对真实动态的预测能力较差;其次,我们主要关注的是帧到帧的跟踪,物体的重新识别超出了这项工作的范围。此外,尽早删除丢失的目标有助于提高效率。如果一个目标再次出现,跟踪将以新的身份隐式恢复。

Coovally AI模型训练与应用平台

Coovally新一代AI开发平台,为研究者和产业开发者提供极简高效的AI训练与优化体验!Coovally支持多种计算机视觉任务类型,包括目标检测、文字识别、实例分割等,并且即将推出关键点检测、多模态3D检测、目标追踪等。

无需代码,训练结果即时可见!

在Coovally平台上,上传数据集、选择模型、启动训练无需代码操作,训练结果实时可视化,准确率、损失曲线、预测效果一目了然。无需等待,结果即训即看,助你快速验证算法性能!

SSH直连云端算力,实时调试更自由!

开发者们可以直接通过SSH连接Coovally的云端算力,基于VS Code、Cursor或Windsurf等开发工具,轻松进行模型算法的开发与改进。

大模型加持,智能辅助模型调优!

若对模型效果不满意?Coovally即将推出大模型智能调参能力,针对你的数据集与任务目标,自动推荐超参数优化方案,让模型迭代事半功倍!

千款模型+海量数据,开箱即用!

平台汇聚国内外开源社区超1000+热门模型,覆盖YOLO系列、Transformer、ResNet等主流视觉算法。同时集成丰富公开数据集,涵盖图像分类、目标检测、语义分割等场景,一键下载即可投入训练,彻底告别“找模型、配环境、改代码”的繁琐流程!

从实验到落地,全程高速零代码!

无论是学术研究还是工业级应用,Coovally均提供云端一体化服务:

免环境配置:直接调用预置框架(PyTorch、TensorFlow等);免复杂参数调整:内置自动化训练流程,小白也能轻松上手;高性能算力支持:分布式训练加速,快速产出可用模型;无缝部署:训练完成的模型可直接导出,或通过API接入业务系统。

平台链接:

无论你是算法新手还是资深工程师,Coovally以极简操作与强大生态,助你跳过技术鸿沟,专注创新与落地。访问官网,开启你的零代码AI开发之旅!

实验

我们在 MOT 基准数据库中设置的各种测试序列上评估了我们的跟踪实施性能,该数据库包含移动和静态摄像机序列。在调整初始卡尔曼滤波协方差、IOUmin 和 TLost 参数时,我们使用了与 [12] 中报告的相同的训练/验证分割。使用的检测架构是 FrRCNN(VGG16) 。可在线获取源代码和检测样本。

卡尔曼滤波器

SORT的代码里创建了一个类KalmanBoxTracker用于对卡尔曼滤波器的状态进行管理,卡尔曼滤波器使用的是filterpy.kalman包中的KalmanFilter,官方文档地址为:

https://filterpy.readthedocs.io/en/latest/kalman/KalmanFilter.html。

指标

由于很难用一个单一的分数来评估多目标跟踪性能,我们采用了标准的 MOT 指标:

MOTA(↑):多目标跟踪精度。MOTP(↑): 多目标跟踪精度。FAF(↓):每帧误报次数。MT(↑):大部分轨迹的数量。即 tar-get 在其生命周期中至少有 80% 的时间具有相同的标签。ML(↓):大部分丢失的轨迹数,即目标至少有 20% 的时间没有被跟踪。FP(↓):错误检测次数。FN(↓):漏检次数。IDsw(↓):IDswit 与先前跟踪对象不同的次数。Frag(↓):轨迹因漏检而中断的片段数。

对于带有(↑)的评估指标,得分越高表示性能越好;而对于带有(↓)的评估指标,得分越低表示性能越好。真阳性的判定标准是与相应的地面实况边界框至少有50%的重叠。

性能评估

使用 MOT 基准测试服务器对跟踪性能进行评估,该测试服务器上有11个序列的地面实况。表 2 比较了拟议方法SORT和其他几种基线跟踪器。为简洁起见,表中只列出了最重要的跟踪器,也就是准确度最高的在线跟踪器,如 TDAM、MDP)、最快的基于批处理的跟踪器(DP NMS)和全面的近在线方法(NOMT)。此外,还列出了受这种方法启发的方法(TBD、ALEx- TRAC和 SMOT)。与这些方法相比,SORT 获得了在线跟踪器中最高的 MOTA 分数,可与最先进的方法 NOMT 相媲美,后者要复杂得多,而且在不久的将来会使用帧。此外,由于SORT专注于帧与帧之间的关联,因此尽管与其他跟踪器具有类似的假阴性,但丢失目标(ML)的数量却很少。此外,SORT专注于通过帧与帧之间的关联来增长跟踪点,因此与其他方法相比,它丢失目标的数量最少。

运行时间

大多数MOT解决方案的目标是更高的精确度,但往往以牺牲运行性能为代价。虽然在离线处理任务中可以容忍运行时间过慢,但对于机器人和自动驾驶车辆来说,实时性能是至关重要的。图1显示了MOT基准中一些跟踪器的速度和精度。这表明,精度最高的方法往往也是速度最慢的(图 1 右下方)。相反,速度最快的方法往往准确度较低(图1左上角)。SORT结合了速度和精度这两种理想特性,却没有典型的缺点(图1右上角)。跟踪组件在英特尔i7 2.5GHz 单核上以 260 Hz 的频率运行,内存为 16 GB。

结论

本文提出了一个简单的在线跟踪框架,重点关注帧到帧的预测和关联。我们表明,跟踪质量在很大程度上取决于检测性能,而通过利用最近在检测方面的发展,只需使用经典的跟踪方法就能实现最先进的跟踪质量。所提出的框架在速度和准确性方面都达到了同类最佳水平,而其他方法通常会牺牲其中一项。本框架的简便性使其非常适合作为基准,从而使新方法能够专注于物体的重新识别,以处理长期闭塞问题。由于我们的实验强调了检测质量在跟踪中的重要性,未来的工作将研究一种紧密耦合的检测和跟踪框架。

来源:小码科普君

相关推荐