【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割

【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第1张图片
本文2021.12发表于IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS,作者来自哈工大。本文的主要贡献在于提出了一种新的神经网络模型YolTrack;将MTL应用于MOTS任务,提出一种优化的几何平均多任务损失,用于目标检测、分割和跟踪的联合训练;与现有方法相比,YolTrack在实时性上有很大的提高。


论文链接:https://sci-hub.ru/10.1109/TNNLS.2021.3056383


文章目录

  • 摘要
  • 一、引言
  • 二、相关工作
    • A. 多目标跟踪与分割
    • B. 多任务学习
    • C. MOTS数据集
  • 三、YOLTRACK
    • A. Encoder
    • B. Instance Segmentation Decoder / 实例分割Decoder
    • C. Tracking by Instance Segmentation / 实例分割跟踪
    • D. MTL Loss
    • E. Association Algorithm / 关联规则
  • 四、实验
    • A. Evaluation Metrics / 评价标准
    • B. Experimental Setup / 实验设置
    • C. Results on KITTI MOTS
    • D. Results on Apollo MOTS
    • E. Effectiveness of Segmentation Mask
  • 五. 结论



摘要

现代自动驾驶汽车需要完成各种视觉感知任务,以进行场景构建和行动决策。多目标跟踪和实例分割(MOTS)是影响汽车的转向和制动中最主要的任务。使用多任务学习神经网络实现这两个任务,在性能和复杂性方面提出了重大挑战。目前对MOTS的研究主要是通过two-stage检测模型来提高网络的精度,这很难满足自动驾驶汽车的实时性要求。本文提出了一种基于one-stage实例分割模型的实时多任务网络YolTrack来执行MOTS任务,损失少量的准确率和精度,推理速度达到29.5帧/秒(fps)。YolTrack使用带有特征金字塔网络(FPN)的ShuffleNet V2作为Backbone,从中扩展两个Decoder来生成实例分割和embedding vectors。利用分割的masks对特征图进行逻辑与运算,提高跟踪性能,证明了前景分割在目标跟踪中具有重要作用。在训练阶段,通过优化几何平均损失来平衡多任务的不同尺度。在KITTI MOTS数据集上的实验结果表明,YolTrack在实时性方面优于其他最先进的MOTS架构,适合部署在自动驾驶汽车上。
关键词:自动驾驶汽车、环境感知与识别、多目标跟踪与实例分割(MOTS),多任务学习(MTL)。

一、引言

自动驾驶汽车是一个得益于计算机视觉、决策融合和控制技术的进步而迅速发展的应用领域 [1]-[3]。环境感知作为自动驾驶汽车的核心技术之一,负责分析周边道路交通状况,为规划决策提供数据支持,这使得环境感知在精度、实时性、功耗等方面都有较高的要求。同时,随着车载传感器数量增加,多源传感器数据融合、嵌入式部署、故障诊断和容错是自动驾驶汽车环境感知需要解决的下一个问题 [4]-[6]。作为主要的感知手段,计算机视觉由目标检测、语义分割、深度估计和运动检测[7]-[9]等任务组成。近年来,卷积神经网络在计算机视觉中得到了广泛的应用,并取得了令人满意的结果。对于单个特定的应用,如对象检测,cnn可以在对象上生成bounding box并标记类别,这已经在实际的自动驾驶汽车中部署。

在计算机视觉领域,人们致力于提高网络在单一任务上的性能。然而,自动驾驶汽车同时承担了一系列任务,这对汽车平台的性能和功耗提出了挑战。多任务学习(Multitask learning, MTL)是近年来提出的一种对多个任务进行统一处理的学习方法。MultiNet++[10]提出了一种用于联合学习分割、深度和运动的高精度多任务网络。Siam等人[11]训练了一种名为MODNet的双流MTL架构,用于RGB图像和光流输入的检测和运动分割。把所有任务联合在一起学习是不现实的,因为网络的精度随着任务的增加而降低[12]。并非所有的任务都可以共同学习,否则,训练结果可能会变得很差。多任务学习需要任务之间有相关性,以确保任务之间可以产生正影响[13]-[15]。实例分割和对象跟踪都需要部分相似的特征,这在之前的工作[12]中已经得到了证明。

本文重点研究了在MOT的基础上扩展的多目标跟踪和分割任务,将检测、分割和跟踪结合起来。与基于Bounding Box的检测不同,像素级的实例分割不受目标叠加或重叠的干扰,可以有效提高跟踪性能。虽然检测性能已接近完美,但面对复杂的城市道路交通场景,仍存在重大挑战。自动驾驶汽车需要同时对大量目标进行高精度的实时检测和跟踪,并能抵抗复杂天气条件带来的干扰。

大多数提出的多目标跟踪和实例分割(MOTS)方法是基于two-stage的神经网络模型,而实时方法很少被开发。Voigtlaender等人[16]通过三维卷积对Mask R-CNN进行扩展,融合temporal context和association embedding,生成用于目标跟踪的关联向量association vectors,并将KITTI跟踪数据集和MOTChallenge数据集扩展到MOTS数据集,为汽车和行人提供基于Bounding box的tracklets和分割mask。MOTSNet[17]在Mask R-CNN上增加了跟踪头,并提出了Mask pooling来提取ROI Align特征的前景信息,以提高跟踪性能。PointTrack[18]将二维图像像素视为二维点云,使用三维点云处理方法学习实例嵌入,大大提高了推理速度和执行效率。

本文提出了一种实时MOTS模型 YolTrack,用于自动驾驶汽车的环境感知和识别。与上面提到的two-stage模型不同,YolTrack可以直接回归对象的位置和类别信息,减少延迟。从相同的特征映射解码Bounding box回归和embedding vectors生成,并通过线性组合原始mask和mask系数生成分割mask,该方法已在YOLACT[19]中被证明可以生成高质量的mask。同时为了平衡不同任务的训练,提出了一种简单有效的loss策略,使每个任务的收敛速度保持在一个接近的水平上。

本文给出了在KITTI MOTS数据集上高精度、实时性的测试结果,证明了YolTrack在自动驾驶汽车领域的实用性。本文的主要贡献有:
1). 为了满足自动驾驶汽车对多目标跟踪和分割的高精度和实时性要求,提出了一种新的神经网络模型YolTrack
2). 将MTL应用于MOTS任务,提出一种优化的几何平均多任务损失,用于目标检测、分割和跟踪的联合训练。
3). 通过对KITTI MOTS数据集和Apollo MOTS数据集的评价,YolTrack与现有方法相比,在实时性上有很大的提高,如图1。
【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第2张图片 图1. 在KITTI MOTS数据集上训练的最先进的MOTS解决方案以及YolTrack的性能。YolTrack是少数几个实现实时性的同时保证准确性的方法之一

本文的其余部分组织如下。 第二节介绍了MOTS领域和MTL领域的研究进展,以及MOTS专用的数据集。 第三节阐述了核心方法,包括YolTrack的结构、每个任务的损失函数和MTL策略。 第四节详细说明了训练、测试过程和参数配置,并对结果进行了深入分析。 第五节是结论部分,对本文的方法和实验结果进行了总结。

二、相关工作

A. 多目标跟踪与分割

多目标跟踪和分割都是基于目标的轮廓信息,这样学习到的特征会在一定程度上重叠,根据UberNet[12]中提到的理论,这可能会使网络性能更好。

实例分割是自动驾驶汽车感知的主要任务之一,包括对象检测[20]和语义分割。two-stage的CNN方法,首先从图像中定位实例,然后在不同实例[21]范围内标记每个像素点,这使得整个过程非常耗时。one-stage实例分割的思想是在生成bounding box时提供embedding,并将这两部分结合起来,创建最终的mask[19],[22]-[24]。Gao等人[25] 以及Bai 和Urtasun等人[26]将实例分割任务转化为寻找目标框,但在解决重叠和截断问题上效果却不佳。近年来提出的Ancher free methods[27]取得了很好的效果。

多目标跟踪是指在一个视频中同时跟踪多个目标[28]。[29]中的作品采用了optical flow和scene flow两种方式来跟踪2D和3D中物体的运动。由于跟踪涉及到在不同的时间关联同一对象,因此使用循环神经网络和长短期记忆网络学习轨迹的历史信息与当前检测[30]之间的匹配相似度。

之前的工作已经证明了检测[8]、[31]-[33]和分割mask可以提高跟踪的效果。基于目标检测的跟踪,首先是定位目标感兴趣区域,然后使用数据关联算法将当前目标与其历史轨迹关联起来。基于分割的跟踪解决了目标之间的重叠和遮挡问题,利用像素级mask定位目标,实现更准确的关联。在MOTS中,基于实例分割的目标跟踪比单目标跟踪更有优势。MOTS Net[17]提出用mask pooling来利用实例分割结果提取前景特征。PointTrack [18]使用mask来分离前景和环境,并将它们视为无序的二维点云来计算embedding vectors。本文通过segmentation mask与feature map之间的逻辑与运算,提取前景特征。

B. 多任务学习

MTL在自然语言处理、医疗等领域得到了广泛的研究。近年来,机器人和自动驾驶汽车出现[34],使用单一网络执行多任务已成为[35]研究热点之一,特别是在环境感知和视觉问题领域。[7]中的工作使用MTL联合学习目标检测和距离预测。在[14]中提出了MTAN,利用分类机制共享图像之间的预测和分类任务的特征。在自动驾驶场景中,MultiNet++[10]和MODNet[11]尝试联合学习目标检测和motion,其中MultiNet++使用视频连续帧作为输入,MODNet使用RGB图像和optical flow作为输入。

一个典型的MTL网络主要由编码器Encoder和解码器Decoder两部分组成。共享参数作为Encoder学习多个任务之间共同特征,任务特定参数作为Decoder执行特定的任务。在权值共享策略的基础上,将MTL网络分为硬参数共享和软参数共享[36]。对于硬参数共享,如图2所示,编码器的参数在所有任务之间完全共享。对于软参数共享,允许任务有自己的编码器,或者对于不同的任务,编码器参数可以有一定的独特性。嵌入式应用程序大多使用硬参数共享,因为结构更简单,执行效率更高。
【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第3张图片图2. 硬参数共享。通常,共享层由多个任务作为特征提取器(Encoder)共享,每个任务扩展到一个具有独立权重的分支(decoder)。

考虑到不同任务的复杂性、不确定性或Loss,MTL网络在训练阶段经常会出现训练不平衡的现象。不同任务之间的收敛速度可能差别很大,或者某些任务占主导地位,这对网络的性能构成威胁[37],[38]。针对这些问题,提出了不同的Loss策略。

在早期的MTL体系结构中,常采用算术和的方法来得到多任务损失[39],[40]。后来出现了许多复杂的启发式算法来应对训练不平衡的问题。手动给任务加权是一种利用加权求和的方法,通过实验手工找出权重,使Loss达到相同的尺度。Kendall等人[41]提出了一种利用同方差不确定性自适应计算任务权值的方法,权值在训练过程中会收敛到常数值。由于权值不变可能不能完全适应复杂的训练过程和平衡任务,因此提出了动态权值更新方法[42]。GradNorm[43]将多任务网络的训练不平衡归因于反向传播梯度幅度的不平衡,对梯度进行归一化,在每个训练历元中更新和优化损失权值。Multiet ++提出了几何损失策略,将总损失表示为个体任务损失的几何平均值,以最小化训练不平衡的情况。这些方法已被证明是有效的,在增加训练复杂度的同时,通过任务启发式给出了多任务Loss函数的表达式。因此,采取一种简单有效的Loss策略来降低对网络训练复杂度的影响是必要的。

C. MOTS数据集

MTL网络的数据集要求与所有任务对应的地面真实值。对于多目标跟踪,视频序列中每一帧的目标由一个带ID的bounding box识别,可以在不同帧中关联。例如分割,对象需要通过像素级分割mask精确定位。MOTS数据集需要有视频中每个对象的分割mask和ID标注。Voigtlaender等人[16]将现有MOT数据集扩展为KITTI MOTS数据集,采用半自动标注过程,使用全卷积神经网络自动生成bounding box上的分割mask,然后通过手动调整产生精确的像素级标注。KITTI MOTS数据集包含21个包含汽车和行人的视频序列,包括8008张包含38319个像素mask的749个不同物体的图像,其中约10.6%的图像被人工标注,其余的图像在神经网络自动标注的基础上被人工校正。图3显示了KITTI MOTS数据集中的视频序列,以及相应的分割mask和跟踪标签。[16]中还提供了MOTS Challenge数据集,包含了4个视频序列,共包含了228个行人的26 894个像素mask。
【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第4张图片
图3. KITTI MOTS数据集的short sequence(左)和它的ground truth(右)。

Porzi 等人[17]也使用了一种半自动标注方法,利用图像和GPS数据在KITTI Raw数据集上生成MOTS标签。首先利用无缝场景分割方法为每个视频序列生成一组实例片段,然后利用基于光流的神经网络训练得到轨迹。与KITTI MOTS相比,ApolloScape数据集提供了更拥挤的场景,Apollo MOTS使用半自动标注构建在[18]中,并具有与KITTI MOTS相同的度量。由于KITTI MOTS数据集是现有开放数据集中覆盖最广的道路交通场景,因此本文主要对其进行评价。

三、YOLTRACK

在本节中,我们将介绍一个名为YolTrack的用于多目标跟踪和分割的实时架构。目标是设计一个单阶段(无区域外建议步骤)实时生成输入视频序列中目标对应的分割mask和ID。

【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第5张图片图4. YolTrack概述。箭头表示特征图的传输方向,各个block表示网络层。该编码器基于FPN的ShuffleNet V2,输出三种不同尺度的特征图。实例分割解码器生成提供给跟踪解码器的实例mask,以产生每个实例的embedding vectors。

YolTrack的架构如图4所示。使用具有特征金字塔网络(FPN)的ShuffleNet V2作为YolTrack的支柱,将输出的多尺度feature输入到实例分割解码器和跟踪解码器,生成像素级分割mask和embedding vectors进行跟踪。实例分割解码器遵循[19]中引入的YOLACT的实现,其结果被送入跟踪解码器以优化目标跟踪。YolTrack的权值约为2.64M,使用KITTI MOTS数据集进行一次正向传播所需的操作数为1.409 × 1010 FLOPs。

A. Encoder

在自动驾驶场景中,除了模型精度外,模型规模和内存访问成本(MAC)也是网络设计中需要考虑的关键因素,这些因素直接影响算法的实时性。为了减小网络规模,在不降低精度的前提下提高推理速度,我们选择了ShuffleNet V2的backbone(没有全局池层和FC层)作为YolTrack的特征提取结构。过多的群卷积会增加MAC[44],从而将输入特征信道分成两个分支。其中只有一个分支使用了深度卷积,而另一个分支仍然是同一的,这是阶段的基本块,如图5所示。同时,利用channel shuffle操作将从两个分支学习到的特征进行混合。与最初的ShuffleNet V2不同的是,最大池化被卷积取代。Encoder对原始图像进行4次下采样操作,最后3次获得的特征图作为FPN的输入,获得多尺度特征。

【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第6张图片图5. ShuffleNet V2的基本模块

B. Instance Segmentation Decoder / 实例分割Decoder

Two-stage实例分割方法需要在生成bounding box和mask之前定位目标区域,以获得特征的空间一致性,这对实时性影响很大。在YOLACT中使用的one-stage方法将mask生成过程分为两部分,一部分用于生成独立于实例的“prototype masks”,另一部分用于生成mask系数,将每个实例anchor与prototype masks空间关联起来,最后使用简单的矩阵乘法为非最大抑制(NMS)后剩下的实例生成mask。详情见[19]。由于bounding box是中间结果,本文消除了YOLACT的裁剪操作。

实例分割解码器由三个并行检测分支和一个独立的分割分支组成。检测部门检测特征图中的所有对象的尺度产生的backbone通过添加一个额外的屏蔽系数预测分支通用对象检测结构的基础上,也就是说,输出特性图5+c+k 通道 / anchor,5代表解释变量的bounding box,c为分类数,k为分割分支提供的k-通道 prototype masks对应的mask系数通道数。由于较深的backbone特征获得的mask对不确定因素的干扰更有鲁棒性,因此只将backbone的Stage2分支的输出作为分割分支的输入。分割分支提供的“prototype masks”大小为原始图像的四分之一,利用双线性插值对组合后的mask上采样,得到与原始图像大小相同的实例分割mask。

C. Tracking by Instance Segmentation / 实例分割跟踪

跟踪的目标是在不同的帧中关联的相同的对象,这需要在每一帧中获取每个对象的标识信息。受到人再识别的启发,embedding vectors可以起到对象联想的作用。在embedding space中,当两个实例具有相同的标识时,它们的embedding vectors最接近,当它们是不同的实例时,它们的embedding vectors相差较大。向量之间的距离可以用欧几里得距离或余弦距离来计算:

在这里插入图片描述

需要为每个实际实例分配一个包含该实例特征信息的embedding vectors。因此,在计算embedding vectors之前,需要提取每个真实的实例。由于有实例分割任务,跟踪编码器可以直接得到真实实例的位置和mask。分割mask和bounding box与特征图一起馈送到跟踪编码器,bounding box可以得到实例在特征图中的位置,分割mask可以更好地提取前景特征并去除背景影响。bounding box区域包含了背景信息和其他潜在目标,这将导致embedding vectors不能准确地表示目标信息。由于实例所在区域的背景信息不能用于关联embedding vectors,所以首先对实例所在的特征映射区域和对应的分割mask进行逻辑和运算。在操作过程中,背景区域的mask被设置为零,因此,背景信息对结果没有贡献。然后,通过两个完全连通的层生成最终的embedding vectors。

对象可能在某些帧中相互重叠,导致在一个bounding box中有多个对象的重叠。在这种情况下,mask不仅为背景设置为0,也为与bounding box识别的对象不同的区域设置为0。如图6所示,虽然重叠会导致目标的某些特征丢失,但通过设置适当的距离阈值,可以准确地进行关联。
【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第7张图片图6. 对象之间的重叠。前面的物体挡住了后面物体的一部分,甚至把它分成两部分。

实例分割跟踪要求目标检测和分割的准确性。只有准确的定位和前景提取才能生成可靠的embedding vectors。在没有跟踪编码器的情况下,对COCO数据集(只包括汽车和行人)进行预处理,在模型能够提供高精度实例段后,在KITTI MOTS上进行微调,加入跟踪解码器。在训练过程中, ground truth masks和预测的bounding box被送入训练编码器,推理时切换到预测实例分割。

在推理过程中,当前帧的所有实例(真实对象)和之前T帧的实例都需要使用(1)进行embedding vectors的距离计算。使用Hungarian算法匹配跨帧的实例。只有当这两个实例属于同一个类并且彼此最接近并且距离小于距离阈值时,才会关联它们。虽然在t帧中没有关联的实例,但对象被认为已经离开了视野范围,跟踪停止。当一个新实例出现时,将为它分配一个新ID,并开始跟踪。

D. MTL Loss

1). Instance Segmentation Loss / 分割Loss:

实例分割有三个损失函数:分割损失Ls、分类损失Lc和bounding box回归损失Lb。单个损失函数的计算方法与YOLACT相同,即Ls为二元交叉熵,Lb为平滑L1, Lc为交叉熵。每个损失函数的权重与YOLACT不同,在第三节中有描述。

2). Tracking Loss / 跟踪 Loss:
对于跟踪解码器,使用loss函数来缩小ID相同的实例之间的距离,并尽可能将ID不同的实例分开。triplet loss是解决[47]-[49]问题的有效方法。假设a (anchor)是一个从训练数据集中随机抽取的样本,p (positive)是一个与a属于同一类的样本,n(negative)是一个与a属于不同类的样本,triplet loss的表达式如下:
【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第8张图片
其中**f(∗)**是模型输出的embedding vectors,输入 α 是用于调整收敛和测量相似性的边界。当anchor与负样本的距离大于anchor与正样本的距离+α时,loss为零。否则,说明该模型不能正确关联相同的样本,需要对loss进行优化。α值越小,收敛速度越快,损失会很快降至零,但会给区分不同样本带来困难。较大的α值可以提高识别相似样本的性能,但由于损失过大,导致网络不收敛。

对于一个视频,用 T 表示视频中的所有实例,t是embedding 为e的一个实例,并且满足 t ∈ T。 P表示与t具有相同ID的一组实例数据,N是T中所有其他实例的集合。则跟踪解码器Lt的损耗函数可定义为:
在这里插入图片描述
3). MTL Loss / 多任务Loss:
损失函数对于MTL的重要性已在第2节-B中说明。为了减轻训练阶段的负担,需要一个简单有效的多任务损失函数。一般来说,多任务loss策略是否简单取决于是否需要在原模型中添加新的结构。多任务损失函数一般是为(4)找到一组最优权值Ω,使模型获得最佳性能,其中M为任务数,损失权值 ω ∈ Ω。常用的损失策略是算术平均,它不考虑每个任务的规模。任务权重也可以手动设置,但是找到最佳的权重是极其困难的。使用一种学习算法来优化权值是一种更令人满意的方法,如动态加权平均[42],但额外的结构增加了训练阶段的复杂性。
在这里插入图片描述

受Multiet ++的启发,本文采用了几何均值,并针对实际任务进行了优化。几何均值不考虑损失函数权值的分布,以最小的尝试获得较好的性能。本文的模型通过最小化以下损失函数进行训练:
在这里插入图片描述
分类任务与bounding box回归任务具有相似的尺度,且具有较高的相关性。因此,计算两种损耗的算术平均,并根据多目标跟踪的损耗计算几何平均值。这种方法考虑了任务之间的关系,并且在训练阶段只需要最少的尝试。

E. Association Algorithm / 关联规则

在推理阶段,我们需要在连续帧中关联相同的对象,以实时生成轨迹。输入的视频序列经过YolTrack处理,输出实例分割mask,以及每帧中每个对象的embedding vectors。关联算法是通过获取一系列包含embedding vectors距离小于阈值的对象的集合,得到最终的跟踪结果。

首先,在视频的第一帧中为每个对象分配一个ID,即每个对象信息有三部分组成,即embedding vectors、类和ID。对于第二帧,使用(1)计算当前帧中对象的embedding vectors与前一帧的距离,并应用Hungarian算法进行最大关联,并为彼此关联的对象分配相同的ID。对每个新输入的帧重复此操作,将获得由相同对象组成的一系列tracklets。

一些目标可能不会与其他已有的tracklets有关,有两种情形:一是生成的对象是不正确的对象分割结果,不正确的实例应该删除,另一个是这个物体是新的,应该指定一个新的ID和开始一个新的tracklet。设置阈值β来确定上述情况属于哪一种。当连续t帧的目标检测次数小于β时,认为该目标为假目标。关联算法的执行逻辑如算法1所示:
【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第9张图片

四、实验

通过在MOTS数据集上进行验证,并与最先进的方法进行比较,验证了YolTrack在实时MOTS任务中的优势。本节介绍在MOTS中用于测量网络性能的指标,以及评估期间的训练细节和参数配置。实验分为两部分,一部分是测试YolTrack的性能,另一部分是分析分割mask对目标跟踪性能的有效性。

A. Evaluation Metrics / 评价标准

在MOT任务中,CLEAR MOT指标,包括多目标跟踪准确率(MOTA)和多目标跟踪精度(MOTP),是评估算法持续跟踪目标的能力的指标,其中MOTA反映了确定目标数量和对象相关属性的准确性,而MOTP则反映了物体的定位精度。MOTS度量是从[16]中的CLEAR MOT度量[16]扩展而来的,定义为:
【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第10张图片

TP是正确匹配的真阳性集合,假阳性集合定义为FP。属于预测轨迹的ground-truth mask,其ID与前一帧中的轨迹不同,构成集合IDS。GT表示ground truth的集合,TP表示ground truth mask和预测mask之间的IOU。

同样的,MOTSP和MOTSP也测量了模型的精度和准确性。soft multiple objectt and segmentation accuracy(sMOTSA)代表了目标检测、分割和跟踪的性能。

B. Experimental Setup / 实验设置

YolTrack是建立在YOLACT上的,它扩展了一个跟踪分支,并用ShuffleNet V2取代了主干。在没有跟踪解码器的情况下,通过SGD优化器对COCO数据集进行80万steps的预训练,学习目标检测和分割。注意在COCO中,只有汽车和行人的类别被用于预训练,因为KITTI MOTS数据集只有这两个类别。学习速率初始化为10^−3,使用(9)对前500 steps进行预训练,然后,在第280000、600000、700000和7,500 000 steps,n∈[1,2,3,4],学习率依次降低0.1 ^n。由于缺少跟踪解码器,预训练阶段的损失函数由(5)退为(10):
在这里插入图片描述
然后,在KITTI MOTS数据集上使用跟踪解码器对模型进行微调,此时跟踪解码器的输入mask不是实例分割解码器的输出,而是ground truth。其目的是保证跟踪解码器在训练过程中能够获得精确的实例信息来优化模型参数。YolTrack在8张显卡上用一个小批处理训练35个epoch,这意味着在每次迭代期间,属于一个视频序列的8幅连续图像被送入其中一张显卡。对输入图像采用数据增强算法来减少过拟合。跟踪译码器生成8帧内所有的实际对象的embedding vectors ,然后,使用(3)定义的triplet loss计算整个序列的embedding vectors的损失,总损失是由(5)定义的。学习率设置为2×10^−3,使用标准的Adam优化器以10 ^−3的权重衰减。

与训练不同的是,在推理阶段将实例分割解码器提供的mask和bounding box输入跟踪解码器。将N个连续的帧送入网络,网络最终输出相应的实例段和embedding vectors。注意,bounding box不作为网络的输出,而是作为跟踪解码器的中间输入;同时,将输入mask变为实例分割解码器的输出。剩下的就是将视频序列中的相同对象关联起来,并生成tracklets。我们计算embedding vectors之间的欧氏距离,并遵循最优匹配的Hungarian算法。为了处理可能出现的问题,设置了一些生成 tracklets的规则:

1). 停止跟踪连续 t 帧内未检测到的对象,认为该对象是不可见的。设置参数 t 是为了防止由于该对象暂时看不见或被其他对象遮挡而导致该对象丢失。
2). 将不匹配任何实例的置信度高的对象设置为新的跟踪对象。
3). 丢弃segments小于阈值m的tracklets。非常短的tracklets很可能是由于检测错误或匹配错误造成的,而不是真正的tracklets。

在8张RTX 2080Ti显卡上,按照上述步骤和参数设置,得到了实验结果。实验结果和分析请参考第四节-C。

C. Results on KITTI MOTS

表一(TABLE I)比较了YolTrack和几种state-of-the-art(SOTA) MOTS方法的结果,包括TrackR-CNNMOTSNetMOTSFusionPointTrack在KITTI MOTS验证数据集上的结果。这四种网络进行比较,在[18]中进行了总结,表一直接引用了这些结果。这里使用了SpeedsMOTSAMOTSAMOTSP来衡量网络的性能。对于YolTrack,我们列出了不同配置下的结果(有或没有分割mask,不同的backbone如表二所示)。主要结果显示,YolTrack在速度上表现最好,但精度略有下降。“Frames(fps)”列显示网络每秒处理的帧数,其中YolTrack以每秒29.5帧(fps)的速度实现实时对象跟踪和分割,领先于速度最快的PointTrack 7.5帧。当然,速度的提高必然会带来精度的降低,这直接反映在MOTS的指标上,但它仍然在精度的范围内。可视化结果如图7所示。

【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第11张图片

【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第12张图片

【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第13张图片
TrackR-CNN和MOTSNet使用2-D图像进行目标跟踪和分割,两者都是基于Mask R-CNN的结构,在跟踪和分割之前需要生成提议区域。Track-RCNN扩展了3-D卷积来关联时间上下文,MOTSNet增加了一个名为mask pooling的注意机制来分离前景和背景。MOTSFusion首先利用二维optical flow生成短tracklets,然后将短tracklets融合到3D物体重建中,合并成长tracklets,在此过程中利用RRC检测器进行目标检测。这样的结构是耗时的,即使他们可以达到很高的精度。PointTrack使用3-D点云处理方法来处理由轻量级实例分割模型提取的2-D前景图像,提供了显著的速度提升。YolTrack采用单级轻量模型,速度效果更好,精度仅次于PointTrack,高于TrackR-CNN,说明高精度的单级模型可以替代两级模型获得更好的速度性能。虽然本文在速度和精度之间找到了平衡,但精度在一定程度上有所下降。除了轻量级的结构外,寻找更高效的数据处理和计算方法是进一步提高模型性能的关键。

三个不同backbone的结果见表二。网络的精度会随着尺度的增大而增大,轻量化模型在没有精度损失的情况下具有更好的速度性能。在速度和精度之间进行权衡后,我们选择ShuffleNet V2作为YolTrack的backbone,它将获得更好的性能。

D. Results on Apollo MOTS

在百度为MOTS任务构建的Apollo MOTS数据集上验证了YolTrack,该数据集比KITTI MOTS数据集具有更高的实例密度和更拥挤的场景。它由169个视频序列组成,包含22 480帧,按照3:2:5的比例分为训练集、验证集和测试集。因为百度仍然没有为测试集提供验证平台,所以YolTrack只在验证集中进行测试。结果见表三。表三中的部分数据来自[18]。
【论文阅读 - YolTrack】YolTrack:基于MTL的自动车辆实时多目标跟踪和分割_第14张图片

结果表明,YolTrack比DeepSort和TrackRCNN有更高的性能。PointTrack在Apollo MOTS数据集上实现了最先进的性能,原因是PointTrack首先使用实例分割网络生成高精度的分割mask,然后根据mask执行跟踪网络。通过使用一个独立的实例分割网络,PointTrack的精度结果优于本文提出的YolTrack,但速度上有一定的损失。与此同时,两个独立的模型将更难部署。由于其轻巧的MTL架构,同时满足实时性和精度要求,YolTrack更适合部署在自动驾驶车辆上。

E. Effectiveness of Segmentation Mask

我们通过在验证过程中去除跟踪解码器输入的mask来验证分割mask对目标跟踪的有效性,这意味着只使用特征映射和限定框信息进行目标跟踪。表一的最后两行显示了分割mask对对象跟踪性能的影响,显示了每个指标的下降。在sMOTSA方面,汽车和行人分别下降了8.5和11.6,表现出了明显的下降。由于逻辑和操作几乎不消耗运行时间,速度从29.5 fps略微提高到30.1 fps。网络性能下降的原因之一是背景信息混入了embedding vectors中,另一个原因是bounding box中可能包含了其他对象,但由于对象之间的重叠,可能并不属于这个对象,导致对象关联不准确。汽车和行人检测性能退化的差异表明,分割mask在跟踪变形较大的不规则物体时更有效,这与PointTrack的结论一致。

五. 结论

本文提出了一个实时MOTS网络YolTrack,用于自动驾驶汽车的环境感知和识别。该网络以one-stage实例分割轻量级模型为backbone,将其提供的bounding box和mask输入跟踪解码器,生成跨视频序列关联同一对象的embedding vectors。提出了一种优化的MOTS几何平均损失算法,以平衡训练过程中多个任务梯度下降的不一致性。在主要的MOTS数据集上对该网络进行了评估,结果表明,在现有的方法中,YolTrack具有最高的速度性能。此外,对比实验证明,通过分割mask与特征图之间的逻辑AND运算提取前景对跟踪性能的提高有显著的效果。在未来,我们将探索在不降低速度的情况下提高网络精度的方法,并在更多的数据集上测试网络,以适应复杂的流量场景。下一步还考虑了自适应学习任务权值的方法,使网络可以根据实际场景在线调整参数,以达到最佳性能。


你可能感兴趣的:(深度学习论文,深度学习,计算机视觉,自动驾驶)