[阅读心得] 自动驾驶经典论文——RetinaTrack
写在前面
本文提出了一种在RetinaNet上进行调整的多目标跟踪网络RetinaTrack,提出了“将检测和跟踪分离开来
是不必要,二者能相互促进”的观点。总体感觉和JDE比较像,主要的区别改进在于对FPN之后的网络结构的设计。
【论文】RetinaTrack: Online Single Stage Joint Detection and Tracking
1. Abstract
提出了一种专注于自动驾驶领域的多目标跟踪网络,RetinaTrack。该网络基于RetinaNet进行修改,以获得实例级的embedding向量,简洁但有效地将检测任务和跟踪(ReID)任务联合起来。最终,RetinaTrack在自动驾驶数据集Waymo Open上取得了SOTA的性能。
2. Introduction
本章主要讨论了两个问题:
1)联合模型: MOT中检测和跟踪任务经常“手递手”连接且都依赖深度学习网络,但是却很少工作建立将二者联合的模型。作者认为这是由于MOT的主流benchmark,MOT Challenge为了“公平”人为地将两个任务分开了
2)领域选择: 作者选择了自动驾驶领域,因为检测和跟踪恰好都是该领域的重要任务,有意义。另外,在自动驾驶领域速度和精度同等重要。
3. RetinaTrack
3.1 Overview
RetinaTrack的整体结构如上图所示,整个网络的输出是检测结果(location+classfication)和跟踪结果(ReId embeddings)。其以目标检测网络RetinaNet为原型,其结构主要分为FPN和post-FPN部分,而本工作的主要改动在post-FPN部分,其改动的主要目的是能够适应跟踪任务的instance level embeddings形式的输出。
3.2 RetinaNet
首先,之所以选择RetinaNet作为基础进行改进,是因为RetinaNet网络本身适合自动驾驶场景下的多目标跟踪任务:1)满足实时性;2)精度达到SOTA;3)结构设计对小目标友好
RetinaNet的基本结构如图所示,原图先输入FPN中,提取不同的Feature Map层 F i F_i Fi,每个 F i F_i Fi输入进对应的post-FPN环节,存在两个并行的通道分别对class和boxes进行学习,每个任务有K组输出对应K个anchor。
公式如下:
Y i , k c l s ( F i ) = S i g m o i d ( C o n v ( C o n v ( 4 ) ( F i ; θ c l s ) ; ϕ k c l s ) ) ( 1 ) Y_{i,k}^{cls}(F_i) = Sigmoid(Conv(Conv^{(4)}(F^i;\theta^{cls});\phi_k^{cls})) (1) Yi,kcls(Fi)=Sigmoid(Conv(Conv(4)(Fi;θcls);ϕkcls))(1)
Y i , k l o c ( F i ) = C o n v ( C o n v ( 4 ) ( F i ; θ l o c ) ; ϕ k l o c ) ( 2 ) Y_{i,k}^{loc}(F_i) = Conv(Conv^{(4)}(F^i;\theta^{loc});\phi_k^{loc})(2) Y