CVPR2020 | RetinaTrack:面向自动驾驶的在线单级联合检测和跟踪框架

2020-05-08 14:39:30 浏览数 (1)

该视频来自于B站《Richard日常读paper: 面向自动驾驶领域的跟踪框架RetinaTrack》地址:https://www.bilibili.com/video/BV1Ei4y1t7U5

已获得作者授权,未经许可,严禁转载。

整理 | 每日自动驾驶

文介绍谷歌在CVPR2020中发表的文章『RetinaTrack: Online Single Stage Joint Detection and Tracking』,介绍了一种联合检测和跟踪的模型RetinaTrack,是在RetinaNet的基础上做了一些改进并用于车辆跟踪。原文链接:https://arxiv.org/abs/2003.13870,作者Zhichao Lu等。

1

背景与摘要

传统的跟踪检测任务是分别由单独的系统执行的,大多数先前的研发工作仅专注于其中之一。例如,先在每一帧进行检测,再利用检测的结果来进行跟踪。TBD(Tracking-by-Detecton,即先检测后跟踪)在MOT(多目标跟踪)领域中处于主导地位。

其实,检测与跟踪的任务是互相受益的,即跟踪系统可以从获得准确的检测中受益(检测精读很高的话,跟踪的结果也会更高),也有很多研究结果证明检测也可以从跟踪中受益,例如可以帮助随着时间推移平滑预测。

对于自动驾驶领域来讲,检测和跟踪这两项都是十分关键的任务。而由于应用于自动驾驶车上,自动驾驶系统不仅对其精确度有所要求,对实时性也要求很高。

谷歌这篇文章提出了一种简单高效的联合检测和跟踪模型RetinaTrack,该模型修改了单阶段RetinaNet框架,使其适合实例级嵌入训练(RetinaNet在检测领域非常有名,今年很多研究和产品都使用RetinaNet)。通过使用Waymo Open Dataset自动驾驶测试数据进行评估,表明该模型的性能优于最新的跟踪算法,同时所需的计算量也大大减少。

其中,MOT Challenge中的模型大多注重精度,但更偏重实用性(产品)的谷歌认为这有失公平,所以不和MOT Challenge中的其他模型进行对比,而和近期的Tractor进行对比。

2

检测与跟踪的联合

在这之前曾经也有其他研究工作将检测和跟踪结合在一起,但在以往的大多数研究工作中,都或多或少会有偏重检测或跟踪的其中之一。对于应用于自动驾驶系统中的RetinaTrack模型则同时关注检测和跟踪两部分,并兼顾实时性和高精度的需要。有研究会用3D卷积来处理检测和跟踪的问题,但这种方法都比较耗时。

好的检测结果对跟踪结果至关重要,这从MOTA就能够看得出来,MOTA是多目标跟踪中最主要的评价指标,这个指标综合了三个关键指标:FP、FN和IDsw.。FP即False Postive,为误检测的目标数量;FN即False Negetive,为未检出的真实目标数量;IDsw.(ID切换)即同一目标发生ID切换的次数(比如遮挡容易造成ID切换)。

3

RetinaTrack框架介绍

▲RetinaNet

RetinaNet是经典的One-stage检测框架。它主要有三个特点:FPN、focal loss、回归和分类的两个分支。

图1 RetinaNet

RetinaNet在分类和回归的分支上分别预测了k个anchor下的分类和回归信息。

▲模改内容

retinaNet具有局限性,由于其没有明确地提取每个特征,很容易导致跟踪最重要的指标之一IDsw,没有办法解决图2中的遮挡问题。当两辆车的中心重合,二者的检测框如果都是基于同一个anchor进行预测,则很难得到具有分辨力的embeddings。

图2 MOT的遮挡问题

上图中两辆车的中心重合,二者的检测框如果都是基于同一个anchor点进行预测的,则很难得到具有分辨力的embeddings。另外,我们之前的博客讨论过,reid和目标检测在特征方面的需求不同,以行人检索为例,目标检测中分类要求同类目标特征一致,而ReID则是要求在保证类内距离尽可能小的同时,确保类间距离大,但是这里的类间指的是不同身份的人,但是对于目标检测而言都是人。所以这里将ReID和分类的共享特征减少是最好的选择,作者这里实际上隐含着用了三种方式改进这一点:

通过将分类、回归和特征提取设为三个分支任务,除了FPN之前的部分,三者的特征共享部分含有m1个3x3卷积;

对于每层特征图上每个特征点的k个anchor,全部预测分类、回归和特征,增加区分度。;

对于检测任务,分类和回归分支都包含m2个3x3卷积,而embedding分支则为m3个1x1卷积。

对于训练部分,不同于JDE和FairMOT采用的identification模式,RetinaTrack采用的是verification模式,采用基于batch-hard的triplet loss进行训练,其中margin为0.1。

如何解决?RetinaTrack在FPN阶段,强制提前针对ancher的特征抽取,更早提取中间层的特征,对于每层特征图上每个特征的k个anchor,全部进行预测分类、回归和特征,有助于获得针对每一实例的特征,如下图。

图3 RetinaTrack框架

在RetinaNet的基础上增加了一个256维的特征信息embeddings分支:

采取这样的方式,意在用一个高效的检测网络并结合检测和跟踪,来解决在遮挡的情况下容易造成的ID切换问题。

4

训练与实验

在谷歌TPU上做的训练,通过使用Waymo Open Dataset自动驾驶测试数据进行评估(该数据集包含Waymo车辆中以10Hz采集的200K帧的注释,并涵盖各种地理和天气条件)。

首先,在训练过程中,对于分类问题它保留了RetinaNet里面的Sigmoid Focal Loss,对于回归问题则使用Huber Loss,Embedding Loss部分使用Triplet Loss。

每个batch还有128个clips,每个clip含两个相隔8帧的样本,在谷歌TPU上训练。

表1 实验结果0

由上面的实验结果可以看出,(一)与Tracktor和Tracktor 算法进行对比,证明RetinaTrack效果最好。RetinaTrack的跟踪结果MOTA是最高的,其中ID切换是最少的,而所用的推断时间非常少。(二)与IOU baseline对比,mAP没有明显变化,但跟踪结果MOTA有很显著的提升。(三)在Waymo v1.1数据集上的评估结果可以看出,相比于IOU baseline和Tracktor ,RetinaTrack的MOTA也是最好的,并且推断时间的缩短很多。MOTA达44.92,mAP为45.70,推断速度为70ms。

相关链接

论文原文:https://arxiv.org/abs/2003.13870

GitHub:https://github.com/cheind/py-motmetrics

0 人点赞