多目标跟踪(MOT)最新综述,一文快速入门
0 写在前面
去年暑期实习的时候,误打误撞进了一家自动驾驶公司,做了多目标跟踪的工作,工作也是秋招时靠着相关工作拿到了几个算法岗offer,后来毕业课题也换成了多目标跟踪。
前段时间毕业整体资料,在B站上传了一个由自己改进算法制作的行人多目标跟踪demo——《大规模密集行人检测跟踪,行人多目标跟踪,MOT20效果可以,可用于视频智能监控、自动驾驶等》
链接:https://www.bilibili.com/video/BV1zv411p7N2
https://www.bilibili.com/video/BV1zv411p7N2
没想到被很多朋友看到,其中不少朋友私信或者评论留言说对多目标跟踪感兴趣,但资料比较少,希望分享一份多目标跟踪的综述。
于是便有了这篇文章,也在朋友的建议下建了一个自动驾驶交流群,感兴趣的朋友可以文末扫码进群一起学习、一起玩。
PS:虽然最后的毕业论文查重是0.7%,但为了日后抽查安全,部分内容只能是语焉不详,还望理解。
1 MOT简介
多目标跟踪,一般简称为MOT(Multiple Object Tracking),也有一些文献称作MTT(Multiple Target Tracking)。在事先不知道目标数量的情况下,对视频中的行人、汽车、动物等多个目标进行检测并赋予ID进行轨迹跟踪。不同的目标拥有不同的ID,以便实现后续的轨迹预测、精准查找等工作。
MOT是计算机视觉领域的一项关键技术,在自动驾驶、智能监控、行为识别等方向应用广泛。如下图所示,对于输入视频,输出目标的跟踪结果,包括目标包围框和对应的ID编号。理论上,同一个目标的ID编号保持不变。
多目标跟踪中即要面对在单目标跟踪中存在的遮挡、变形、运动模糊、拥挤场景、快速运动、光照变化、尺度变化等挑战,还要面对如轨迹的初始化与终止、相似目标间的相互干扰等复杂问题。因此,多目标跟踪当前仍然是图像处理中的一个极具挑战性的方向,吸引了不少研究人员的长期投入。
2 研究难点
目标跟踪是一个早已存在的方向,但之前的研究主要集中于单目标跟踪,直到近几年,多目标跟踪才得到研究者的密切关注。与其它计算机视觉任务相比,多目标跟踪任务主要存在以下研究难点:
1) 数据集缺乏且标注困难;
2)目标检测不够准确;
3)频繁的目标遮挡;
4)目标数量不确定;
5)速度较慢,实时性不够;
3 数据集
近年,随着自动驾驶、智能监控等应用的发展需要,陆续形成了一些MOT基准数据集,包括MOTChallenge数据集、KITTI和其它几个已不太常用的数据集。
3.1 MOTChallenge数据集
MOTChallenge是目前MOT领域使用最多的数据集,主要是针对行人多目标跟踪任务,包括MOT15、MOT16、MOT17和MOT20等数据集。
3.2 KITTI数据集
KITTI数据集是目前全球最大的自动驾驶场景数据集,支持双目、光流、视觉测距、3D目标检测和3D跟踪等任务。通过一辆装有彩色/灰色立体摄像头、Velodyne HDL-64E旋转式3D激光扫描仪和GPS/IMU导航系统等多传感器的汽车在城市中环、郊区和高速公路等多个场景的多个路段收集而成。
对于MOT任务,KITTI提供了激光雷达点云和3D包围框轨迹。
3.3 其它数据集
除了MOTChallenge和KITTI数据集之外,还有几个较老的数据集,目前已经很少使用。主要有UA-DETRAC[60]数据集、TUD[61]数据集和PETS2009[62]数据集。感兴趣的朋友可以去网上搜一下。
PS: 由于KITTI官网数据集下载很慢很慢,所以我之前就特意写了一篇分享文章,分享了KITTI的全套百度网盘下载链接,帮助到了一些国内的朋友,也收获了一些好评。有需要的朋友可点击下文获取,免费分享:
kitti数据集简介与网盘分享 kitti-object、kitti-tracking自动驾驶
MOT16数据集的百度网盘也一起免费分享了出来:
多目标跟踪数据集MOT16简介与百度网盘分享 MOT16百度云
4 评价指标
经过不断完善,目前形成了一组多目标跟踪专用评估指标[63-64]。具体定义及计算公式如下:
1)FP:False Positive,即真实情况中没有,但跟踪算法误检出有目标存在。
2)FN:False Negative,即真实情况中有,但跟踪算法漏检了。
3)IDS:ID Switch,目标ID切换的次数。
4)MOTA: Multiple Object Tracking Accuracy,多目标跟踪准确度。
MOTA可以较好地反映跟踪准确度,是当前MOT的主要评估指标。但MOTA不能反映MOT算法对同一个目标轨迹长时间跟踪性能表现。
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 研究方案
视觉目标跟踪的发展相对较短,主要集中在近十余年。早期比较经典的方法有Meanshift[19]和粒子滤波[20]等方法,但整体精度较低,且主要为单目标跟踪。
近五六年来,随着目标检测的性能得到了飞跃式进步,也诞生了基于检测进行跟踪的方案,并迅速成为当前多目标跟踪的主流框架,极大地推动了MOT任务的前进。同时,近期也出现了基于检测和跟踪联合框架以及基于注意力机制的框架,开始引起研究者们的注意力。
5.1 MOT三种框架——基于Tracking-by-detection的MOT
基于Tracking-by-detaction框架的MOT算法是先对视频序列的每一帧进行目标检测,根据包围框对目标进行裁剪,得到图像中的所有目标。然后,转化为前后两帧之间的目标关联问题,通过IoU、外观等构建相似度矩阵,并通过匈牙利算法、贪婪算法等方法进行求解。
代表方法:SORT、DeepSORT
5.2 MOT三种框架——基于检测和跟踪联合的MOT
JDE采用FPN结构,分别从原图的 1/8,1/16 和 1/32 三个尺度进行预测。在这三个不同尺度的输出特征图上分别加入预测头(prediction head),每个预测头由几层卷积层构成,并输出大小为 (6A+D)×H×W 的特征向量。其中 A 为对应尺度下设置的锚框的数量,D 是外观特征的维度。
JDE在MOT16测试集上MOTA=64.4%,GPU环境下,高分辨率输入图像下FPS达到22.2,低分辨率输入图像下FPS达到30.3,是第一个接近实时的多目标跟踪算法。
代表方法:JDE、FairMOT、CenterTrack、ChainedTracker等
5.3 MOT三种框架——基于注意力机制的MOT
随着Transformer[42]等注意力机制在计算机视觉中的应用火热,近期开始有研究者提出了基于注意力机制的多目标跟踪框架,目前主要有TransTrack[43]和TrackFormer[44],这两项工作都是将Transformer应用到MOT中。
TransTrack将当前帧的特征图作为Key,将前一帧的目标特征Query和一组从当前帧学习到的目标特征Query一起作为整个网络的输入Query。
代表方法:TransTrack、TrackFormer等
6.2 视频
链接:https://www.bilibili.com/video/BV1zv411p7N2
https://www.bilibili.com/video/BV1zv411p7N2
7 参考文献
在课题研究中,参考了大量相关文献,表示感谢。限于篇幅原因,这里就不再罗列了。最后,再次表示感谢。
8 写在最后
对于文章开头提到的自动驾驶交流群,主要是一些学习资料的分享、资讯、招聘、内推信息分享等,感兴趣的朋友欢迎进群一起玩: