背景知识
- 卡尔曼滤波
图说卡尔曼滤波,一份通俗易懂的教程
KF主要有两个过程,一个是预测,一个是更新。知道目前的状态信息,根据变量之间的描述相关性的协方差矩阵进行预测,并随着预测去调整协方差矩阵,从而实现用前面的状态来估计后面的状态。
随着提供的状态信息越多,误差范围可以缩小,使得状态区间得以更新,得到更加精确的预测结果,这个过程可以叫信息融合或多传感器融合。 - 匈牙利算法
带你入门多目标跟踪(三)匈牙利算法&KM算法
匈牙利算法用于解决数据关联问题。匈牙利算法用于解决二分图问题,在目标跟踪中,可以看作两帧之间所有检测框相互匹配的问题。匈牙利算法需要前置的运动模型、外观模型等部件必须进行较为精准的预测,或者预设较高的阈值,只将置信度较高的边才送入匈牙利算法进行匹配,这样才能得到较好的结果。因为其匹配是基于预测结果的。
方法论总结
- 检测:使用的是Faster Region CNN (FrRCNN) ,从而输出检测框detections的结果
- 状态估计:SORT中卡尔曼滤波被用于检测框运动的预测,检测框的状态为检测框中心的横坐标、纵坐标、大小、长宽比。除此之外还有三个变化量信息(也就是加速度的概念),包括检测框中心的横坐标的变化速度、纵坐标的变化速度,检测框大小的变化速度。所以最后用了七个参数来描述状态方程 x \mathbf{x} x。实际上就是将帧间的位移假设为线性匀速模型,所以每个目标的状态综合了上述提到的7个信状态值。
- 数据关联 IOU match:匈牙利算法在本文中用于解决数据关联问题,也就是cost矩阵的分配问题。使用cost矩阵作为目标在当前帧中的预测位置和当前帧检测框之间的IOU。如果小于IOU阈值就被认为无效。使用IOU可以解决短时被遮挡的问题,因为可以把遮挡物和原有目标进行关联,这样遮挡结束后,IOU往往能够保持较大,可以快速恢复关联(前提是遮挡物面积大于目标)。
正式论文部分:
摘要
算法发布于2016年。文章主要解决多目标实时在线跟踪(MOT)问题,尽管只使用了熟悉的技术(如卡尔曼滤波和匈牙利算法)的基本组合用于跟踪组件,但该方法实现了可与最先进的在线跟踪器相媲美的精度。此外,由于我们的跟踪方法的简单性,跟踪器以260 Hz的速率更新,这比其他最先进的跟踪器快20倍以上。
简介
本文提出了一种针对多目标跟踪(MOT)问题的逐检测跟踪框架的精益实现,其中每帧检测对象并表示为边界框。与许多基于批处理的跟踪方法[1,2, 3]相比,这项工作主要针对在线跟踪,其中仅将来自前一帧和当前帧的检测呈现给跟踪器。此外,重点强调了促进实时跟踪的效率,并促进了诸如自动驾驶车辆行人跟踪等应用的更多应用。
MOT问题可以看作是一个数据关联问题, 其目标是关联视频序列中跨帧的检测。为了帮助数据关联过程,跟踪器使用各种方法对场景中对象的运动[1, 4]和外观[5,3]进行建模。本文采用的方法是通过观察最近建立的视觉MOT benchmark[6]来实现的。成熟的数据关联技术的复兴,包括多假设跟踪(MHT)[7, 3]和联合概率数据关联(JPDA)[2],它们占据了MOT基准的许多顶级位置。但没有使用聚合频道滤波(Acf )[8],而使用其他跟踪器进行代替的算法,效果也并不差。
对于常规的算法,如何在速度和准确率之间作tradeoff是一个问题。作者则理智与使用较简单的方法达到较好的速度和较高的准确率。
为了遵循大道至简(Occcam’s Razor)的原则,超越检测单元的外观特征在跟踪的时候会被忽略,只使用包围框的位置和大小来完成运动估计和数据估计。对于短周期和长周期的occulusion也不适用,因为对他们的详细描述会带来我们不想要的复杂情况。作者认为物体重识别形式上的结构复杂性在跟踪框架中是最重要的,因为这会潜在影响实时性的应用。
作者的设计哲学与许多视觉跟踪器相反,不去结合无数的单元来处理各种边缘情况和检测错误。本工作专注于帧与帧之间的高效、可靠的处理。相比于注重于鲁棒性,作者更关注直接解决检测问题本身。通过对比ACF和CNN,这个观点也得到了证实。除此之外,卡尔曼滤波和匈牙利算法被部署,分别用于运动预测和数据关联。本工作仅仅把算法用在了复杂环境下的行人跟踪问题上,但是对比复杂的CNN检测器,本网络对其