多目标跟踪
简介
多目标跟踪 MOT(multi-object Tracking) 在自动驾驶场景中,往往需要对众多目标同时进行跟踪. 多目标的问题是,会产生新目标进入与旧目标消失的问题.在单目标跟踪中,往往使用给定的初始框,在后续视频帧中对初始框内的物体进行位置预测.而多目标跟踪算法,大部分都是不考虑初始框的,原因就是上面的目标消失与产生问题.取而代之的跟踪策略是TBD(Tracking By Detection).即在每一帧进行目标检测,再利用目标检测的结果来进行目标跟踪.这一步称之为数据关联(Data Assoiation)
多目标跟踪算法的一种分类:
- TBD(Tracking-by-Detecton)
- DFT(Detection-Free Tracking) 基于检测的多目标跟踪与基于初始框无需检测器的多目标跟踪
另一种目标跟踪算法的分类方式
- 在线跟踪(Online)
- 离线跟踪(Offline) 在Online跟踪中,使用当前帧及之前帧的信息来进行当前帧的跟踪. Offline跟踪中则没有了这个限制,我们对每一帧的预测,都可以使用整个视频的信息,这样更容易获得一个全局最优解.
上图为Online 下图为Offline
术语
Trajectory(轨迹):一条轨迹对应这一个目标在一个时间段内的位置序列 Tracklet(轨迹段):行程Trakectory过程中的估计片段.完整的Trajectory是由属于同一物理目标的Tracklets构成的. ID switch(ID切换):对于同一个目标,由于跟踪算法误判,导致其ID发生切换的次数称为 ID sw.跟踪算法中离线的ID switch应该为0.
评价指标
对于多目标跟踪,最主要的评价指标是MOTA.这个指标综合三个因素:
- FP False Postive 误检测的目标数量
- FN False Negetive 未检出的真实目标数量
- IDsw 同一目标发生ID切换的次数
MOTA越高,代表Tracker综合性能越好,上限100,下限负无穷.
SORT
现在多目标跟踪算法的效果,与目标检测的结果息息相关,因为主流的多目标跟踪算法都是TBD策略.
SORT论文中强调:更换检测器可以将跟踪效果提高到18.9个百分点.花哨的跟踪算法,有时也不如针对性训练的检测器来的效果好.
SORT的特点:
- 利用强大的CNN检测器的检测结果来进行多目标跟踪
- 使用基于卡尔曼滤波与匈牙利算法的方法来进行跟踪
- 开源代码为MOT领域提供了新的baseline
DeepSort是SORT的改进,整体框架没有大改,延续了卡尔曼滤波加匈牙利算法的思路,在这个基础上增加了DeepAssocaition Metric.
匈牙利算法&KM算法
匈牙利算法与HM算法都是为了求解二分图的最大匹配问题.
二分图
分为两组:U,V.其中U上的点不能相互连通,只能连去V中的点,同理,V中的点不能相互连通,只能连去U中的点.这样,就叫做二分图. 二分图理解为视频中连续两帧中的所有检测框,第一帧所有检测框的集合称为U,第二帧所有检测框的集合称为V.同一帧的不同检测框不会为同一个目标,所以不需要互相关联,相邻两帧的检测框需要相互连通,最终将相邻两帧的检测框尽量完美地两两匹配起来. 求解这个问题的最优解就要用到匈牙利算法或者KM算法.
KM算法解决的是带权二分图的最优匹配问题.
两个MOT中值得关注的问题
- 如何测量在视频帧中各目标之间的相似性
- 如何基于第一点测量出的相似性,进行视频中目标ID的恢复
使用重识别(Re-Identification/ReID)的网络特征抽取器.行人重识别算法通常提取行人图像特征,对特征进行距离度量,从而判断是否是同一个人.