目标跟踪算法之sort&deep sort

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhanghm1995/article/details/85064394

Simple Online And Reatime Tracking——sort

论文主旨:
应用tracking-by-detection方法,认为检测质量很大程度影响跟踪效果,并且跟踪精度和跟踪速度很难权衡;
本文忽略考虑检测框的外观特征,在运动估计和数据关联时只考虑包围盒的位置和尺寸信息,同时也不考虑短期和长期的遮挡问题,因为为了考虑这种遮挡问题,会在跟踪框架中引入相当复杂的因素,作者认为为了在跟踪框架中考虑目标的消失、重现等因素而带来的速度的牺牲是不值得的。本文取而代之关注的是如何有效并可靠的解决的常见的帧间关联问题,并且也不关注检测精度,而是直接用最新的检测结果来解决检测的问题,本文用CNN方法先做行人检测;
使用Kalman滤波和匈牙利算法解决运动预测和数据关联问题;

下图是作者论文中的一张比较SORT跟踪算法和其他跟踪算法性能的图,可以看出SORT在保持一定跟踪精度的同时,具有相当高的实时性。

Literature Review

传统MOT问题通常使用MHT和JPDA方法来解决,他们都是通过考虑数据的高度不确定性来延迟做出最终的决策判断;
许多在线跟踪的方法都是通过在线学习的方法来尝试构建单个物体或全局的外观模型,除了外观模型,也常考虑一些运动因素来辅助关联检测结果到tracklet中;
当考虑一对一二分图模型,常用匈牙利算法等全局优化模型;

Methodology

主要包括: detection、传播目标状态到未来帧(propagating object states into future frames)、associating current detectons with existing objects、managing the lifespan
of tracked objects
Detection:
使用Faster RCCN检测行人
Estimation Model:
使用物体模型,包括外观和运动模型来传播目标ID到下一帧;
使用线性恒速模型来估计帧间运动,当有检测结果与某个目标关联上时,利用Kalman滤波算法完成状态更新,没有检测结果,则只做预测;
Data Association:
指派问题,利用检测目标和已经跟踪预测的目标的IOU距离计算指派损失矩阵。
Creation and Deletion of Track Identities:
当所有检测结果都与现存跟踪目标IOU小于一定阈值时,则认为是没有被跟踪目标;
跟踪初始状态为:第一个检测包围盒的几何形状,速度为0,速度协方差比较大,并且跟踪需要按一定概率累计到足够证据才跟踪,减少跟踪误检;

Experiments:
在MOT数据集上测试,在训练和验证集上调参数,检测框架使用FrRCNN(VGG16);
评价指标:
MOTA、MOTP、FAF…
Conclusions:
关注帧与帧之间的预测和关联,跟踪效果很大程度由检测性能影响,通过使用更好的检测算法,我们可以利用检测的跟踪方法实现好的跟踪效果。
不关心目标重新确认和遮挡问题;
未来需要研究检测和跟踪紧密联合(tightly coupled)的跟踪框架;

Simple Online and Realtime Tracking With a Deep Association Metric——deep sort

论文及代码理解:
https://blog.csdn.net/cdknight_happy/article/details/79731981
https://blog.csdn.net/yuhq3/article/details/78857614
http://www.cnblogs.com/yanwei-li/p/8643446.html
论文主旨:
SORT(上文) 主要关注简单有效的跟踪算法,本文综合外观信息来改善SORT的性能;
通过这种扩展,可以用来跟踪长时间遮挡的目标
将大量计算复杂度放在离线预训练阶段,在一个大规模行人重识别数据集上学习了一个深度关联metric
在线应用时,建立一个measurement-to-track关联,使用视觉表观空间的最近邻查询;

Introduction:

SORT的跟踪精度和准确度比较高,但是容易导致ID切换,因为使用的关联指标只有在状态估计不确定性比较低的时候才精确,因此SORT会在有遮挡情况下的跟踪失效
为了解决SORT缺陷,本文替代原来的关联标准,采用结合运动和外观信息的更加信息丰富的标准;
在大规模行人再现数据集上使用CNN区分行人;

Methodology:

使用Kalman滤波进行跟踪状态预测,匀速线性模型

跟踪管理模块——负责目标的创建与移除:

对每一个追踪目标,记录自其上一次检测结果与追踪结果匹配之后的帧数ak(即该数为连续没有匹配的帧数),一旦一个目标的检测结果与追踪结果正确关联之后,就将该参数设置为 0。如果ak超过了设置的最大阈值Amax,则认为对该目标的追踪过程已结束。
对新目标出现的判断则是,如果某次检测结果中的某个目标始终无法与已经存在的追踪器进行关联,那么则认为可能出现了新目标。如果连续的 3 帧中潜在的新的追踪器对目标位置的预测结果都能够与检测结果正确关联,那么则确认是出现了新的运动目标;如果不能达到该要求,则认为是出现了 “虚警”,需要删除该运动目标。

匹配分析:

匹配是指有效轨迹当前检测之间的匹配。在匹配时,需要考虑的是运动信息和外观信息。
在运动方面,使用检测与轨迹在KM滤波器预测的位置之间的马氏距离来描述运动匹配程度。
在外观方面,对每个检测,包括轨迹中的检测,使用深度网络提取特征向量,然后使用detection和轨迹包含的特征向量之间的最小余弦距离作为检测和轨迹之间的外观相似程度。(注意:轨迹太长,导致外观发生变化,在发生变化后,再使用最小余弦距离作为度量会出问题,所以在计算距离时,轨迹中的检测数量不能太多)。外观信息对于长时间丢失的轨迹而言,匹配度量更为有效。

级联匹配:

级联匹配策略让更频繁见到的物体分配的优先级更高,在匹配的最后阶段还对未确定的和age=1的未匹配轨迹进行基于交并比(IOU) 的匹配。
Deep appearance descriptor:
预训练的网络是在大规模ReID数据集上训练得到的,学到的特征很适合行人跟踪。本文使用该预训练网络作为基础网络,构建wide残差网络,用来提取bbox的外观特征。

TODO:

1、离线训练深度关联指标的作用和目的
作者在大规模行人重识别数据集上使用CNN网络训练得到了deep association metric,这个到底是个什么度量,是学习到了一个便于匹配的外观特征吗?
2、关注目标怎么进行跟踪状态管理的
3、关注跟踪目标怎么判断目标是否有匹配,没有匹配的时候该目标运动状态如何自更新?

猜你喜欢

转载自blog.csdn.net/zhanghm1995/article/details/85064394