多目标跟踪综述&未来研究方向

连续帧的视频demo

多目标跟踪未来讨论

0写在前面

MOT是指在视频中识别和跟踪若干个目标,为每一个目标分配一个id,在检测基础上做好数据关联,也就是说考虑两帧之间哪两个目标属于同一个目标对象。

首先,将视频划分成为帧并输入到多目标跟踪算法中,假设我们运行到了第t帧,通过特征提取算法算法来获取当前帧中每个检测目标的特征,特征可以是外观特征,也可以是运动特征,然后把每一个目标的特征与前t-1帧中的跟踪对象特征进行相似度计算以及数据关联,得到最终的跟踪结果。
参考paper:https://arxiv.org/pdf/2006.13164.pdf

多目标跟踪处理的对象是视频,从视频的第一帧到最后一帧里有多个目标在不断运动。多目标跟踪的目的就是将每个目标和其他目标进行区分开来,具体方法是给每个目标分配一个 ID,并记录他们的轨迹。目标跟踪与目标检测不同,目标检测无法给每个对象分配ID,其是不稳定的;而目标跟踪可以优化整个过程,分配ID并进行轨迹追踪。
MOT多目标跟踪的主要步骤:

  1.     检测——给定视频原始帧; 运行目标检测器如 Faster R-CNN、YOLOv3等进行检测,获取目标检测框;
  2.     特征提取、运动预测——将所有目标框中对应的目标抠出来,进行特征提取(包括表观特征或者运动特征);
  3.     相似度计算——进行相似度计算,计算前后两帧目标之间的匹配程度(前后属于同一个目标的之间的距离比较小,不同目标的距离比较大);
  4.     数据关联——数据关联,为每个对象分配目标的 ID。

1.多目标跟踪算法分类:

近五六年来,随着目标检测的性能得到了飞跃式进步,也诞生了基于检测进行跟踪的方案,并迅速成为当前多目标跟踪的主流框架,极大地推动了MOT任务的前进。同时,近期也出现了基于检测和跟踪联合框架以及基于注意力机制的框架,开始引起研究者们的注意力。

1.基于Tracking-by-detection的MOT

基于Tracking-by-detaction框架的MOT算法是先对视频序列的每一帧进行目标检测,根据包围框对目标进行裁剪,得到图像中的所有目标。然后,转化为前后两帧之间的目标关联问题,通过IoU、外观等构建相似度矩阵,并通过匈牙利算法、贪婪算法等方法进行求解。

代表方法:

SORT(参考代码:GitHub - abewley/sort: Simple, online, and realtime tracking of multiple objects in a video sequence.)、DeepSORT(参考代码:https://github.com/nwojke/deep_sort

由于DeepSort关于SORT加入了一个CNN网络来提取feature(ReID 特征提取部分),导致算法运行速度减慢,消耗资源增多。建议大家不是跟踪人,而是跟踪小目标时可以使用SORT模型。

2.基于检测和跟踪联合的MOT

 代表方法:JDE、FairMOT、CenterTrack、ChainedTracker等

3.基于注意力机制的MOT

随着Transformer等注意力机制在计算机视觉中的应用火热,近期开始有研究者提出了基于注意力机制的多目标跟踪框架,目前主要有TransTrack和TrackFormer,这两项工作都是将Transformer应用到MOT中。TransTrack将当前帧的特征图作为Key,将前一帧的目标特征Query和一组从当前帧学习到的目标特征Query一起作为整个网络的输入Query。

代表方法:TransTrack、TrackFormer等 

2.研究难点

目标跟踪是一个早已存在的方向,但之前的研究主要集中于单目标跟踪,直到近几年,多目标跟踪才得到研究者的密切关注。与其它计算机视觉任务相比,多目标跟踪任务主要存在以下研究难点:

1) 数据集缺乏且标注困难;

2)目标检测不够准确;

3)频繁的目标遮挡;

4)目标数量不确定;

5)速度较慢,实时性不够;
3.数据集

  1. MOT20数据集(介绍)
  2. 处理结果                                                                                                                                                      
  3. kitti数据集(kitti数据集简介,百度网盘分享链接,自动驾驶视觉咨询_kitti数据集百度云_暧昧的呆呆猫的博客-CSDN博客)

4.评价指标

经过不断完善,目前形成了一组多目标跟踪专用评估指标[63-64]。具体定义及计算公式如下:

1)FP:False Positive,即真实情况中没有,但跟踪算法误检出有目标存在。
2)FN:False Negative,即真实情况中有,但跟踪算法漏检了。
3)IDS:ID Switch,目标ID切换的次数。
4)MOTA: Multiple Object Tracking Accuracy,多目标跟踪准确度。

5)IDF1: ID F1得分,正确身份标签赋予的检测框与平均ground truth和计算的检测数量的比值。 

6)MT:Mostly Tracked,大多数目标被跟踪的轨迹数量。目标被成功跟踪到的轨迹长度与轨迹总长度的比值大于等于80%的轨迹数量。

7)ML:Mostly Lost,大多数目标被跟丢的轨迹数量。目标被成功跟踪到的轨迹长度与轨迹总长度的比值小于等于20%的轨迹数量。

8)MOTP:Multiple Object Tracking Precision,多目标跟踪精度。表示得到的检测框和真实标注框之间的重合程度。

9)FPS:Frames Per Second,每秒处理的帧数。

5.总结

(1)多类别多目标跟踪,即MCOT

MCOT,Multiple Classes Object Tracking。当前的绝大多数MOT算法,包括我自己之前的工作在内,还都是只针对“汽车”或“行人”等单一目标种类进行的跟踪。但在实际应用中一般需要对多个类别的目标进行同步跟踪。所以,在后续研究中,从事MOT方向研究的朋友们可以考虑尝试同时对多类别多目标进行跟踪。

(2)多摄像头多目标跟踪

不难理解,多(跨)摄像头下的多目标跟踪挑战性更大。对于多(跨)摄像头,有两种工作环境,第一种是对于同一场景,多个摄像头进行拍摄,即在多个视角下进行。这种情况下,需要考虑融合来自多个镜头的数据信息。第二种是,每个镜头记录不同的场景,组成一个非重叠的多相机网络。此时,跨摄像头的数据关联变成了目标重识别(Reid)问题,进一步增加了研究难度。

(3)与其它计算机视觉任务结合的多目标跟踪

目前已经有一些研究者着手于将MOT与其它一些计算机视觉任务结合处理,他们的实验结果也表明这些任务能够从彼此中获益。大家可以考虑的结合包括但不限于:目标分割、行人重识别、人体姿势估计、动作识别等。举例说明,目标分割分支能够提供背景信息和场景结构,可能对MOT问题的处理很有帮助。

(4)基于当前方案的改进,如设计新的loss、新的网络设计、transformer等注意力机制等
 

这一部分也是当前大家主要在做的方向,也还包括为了便于嵌入式落地所做的轻量级设计等工作。当然,对于数据标注、生成的工作也很有意义,因为目标跟踪的数据标注十分耗时耗力。这一部分可做的工作其实蛮多的,篇幅及能力限制,就不在赘述了,欢迎大家积极补充。

参考:http://zhuanlan.zhihu.com/p/388721763

你可能感兴趣的:(自动驾驶,目标跟踪,人工智能,计算机视觉,深度学习,算法)