跳转至

MUTR3D:通过3D到2D查询的多相机跟踪框架

0. 引言

3D跟踪在自动驾驶、机器人、虚拟现实等感知系统中至关重要,其具体任务包括预测每帧对象,并在时间上找到它们之间的对应关系。当系统使用多相机进行3D跟踪时,会出现检测精度降低、复杂场景中的遮挡和模糊、边界对象丢失等问题。在2022 CVPR论文"MUTR3D:通过3D到2D查询的多相机跟踪框架"中,作者提出了一种端到端的多相机多对象跟踪算法MUTR3D,该算法适用于已知参数的任意相机。重要的是,算法已经开源。

1. 论文信息

标题:MUTR3D: A Multi-camera Tracking Framework via 3D-to-2D Queries

作者:Tianyuan Zhang, Xuanyao Chen, Yue Wang, Yilun Wang, Hang Zhao

来源:2022 Computer Vision and Pattern Recognition (CVPR)

原文链接:https://arxiv.org/abs/2205.00613

代码链接:https://github.com/a1600012888/MUTR3D

2. 摘要

来自多个相机的精确和一致的3D跟踪是基于视觉的自动驾驶系统的关键组成部分。它涉及跨多个相机在复杂场景中建模3D动态对象。由于深度估计、视觉遮挡、外观模糊等,这个问题本身就具有挑战性。此外,对象并不总是跨时间和跨时代相关联的。为了解决这个问题,我们提出了一个名为MUTR3D的端到端多相机跟踪框架。与先前的工作相比,MUTR3D不明确依赖于对象的空间和外观相似性。相反,我们的方法引入3D轨迹查询来为出现在多个相机和多个帧中的每个对象建模空间和外观连贯轨迹。我们使用相机变换将3D跟踪器与它们在2D图像中的观察结果联系起来。每个跟踪器根据从相机图像获得的特征被进一步细化。MUTR3D使用集合到集合的损失来度量预测的跟踪结果和地面事实之间的差异。因此,它不需要任何后处理,例如非最大值抑制和/或边界框关联。在nuScenes数据集上,MUTR3D的性能优于最先进的方法5.3 AMOTA。

3. 算法分析

如图1所示是作者提出的在线多相机多对象跟踪框架MUTR3D的示意图,它以端到端的方式使用空间和外观相似性将对象关联到3D轨迹中。更具体地说,MUTR3D引入了3D轨迹查询,它直接模拟对象轨迹随时间和跨相机的3D状态和外观特征。在每一帧,3D轨迹查询来自所有可见相机的样本特征,并学习创建/跟踪/结束轨迹。与以往算法不同的是,MUTR3D在一个统一的端到端框架中同时执行检测和跟踪。

图1 MUTR3D示意图

作者的贡献主要有三个方面:

1 MUTR3D是第一个完全端到端的多相机3D跟踪框架。与现有的使用显式跟踪试探法的检测跟踪方法不同,MUTR3D隐式地模拟了目标轨迹的位置和外观变化。此外,MUTR3D通过消除常用的后处理步骤,如非最大值抑制、边界框关联和对象重新识别(Re-ID),简化了3D跟踪流程。

2 MUTR3D引入一个3D轨迹查询,它可以模拟一个对象的整个轨迹的3D状态。3D轨迹查询从所有可见相机采样特征,并端到端地逐帧更新轨迹。

3 在NuScenes仅视觉3D跟踪数据集上实现了SOTA性能。

4 提出了两个度量来评估当前3D跟踪器中的运动模型:平均跟踪速度误差(ATVE)和跟踪速度误差(TVE)。可以测量被跟踪物体的估计运动的误差。

3.1 基于查询的目标跟踪

MUTR3D采用基于查询的跟踪,在每一帧的开始初始化一组新生查询,然后查询以自回归的方式逐帧更新自身。解码器头从每帧中的每个轨迹查询中预测一个候选对象,并且在来自同一轨迹查询的不同帧中解码的预测被直接关联。通过适当的查询生命周期管理,基于查询的跟踪可以以在线方式执行联合检测和跟踪。

如图2所示为作者使用的跟踪器的流程,其中有三个关键成分:(1) 基于查询的对象跟踪损失为两种不同类型的查询(新生查询和旧查询)分配不同的回归目标。(2) 多相机稀疏注意使用3D参考点来为每个查询采样图像特征。(3) 运动模型估计对象动态并跨帧更新查询的参考点。跟踪查询伴随多相机特征以在当前帧中的候选对象中解码,然后过滤掉不活跃的查询,并更新主动查询的参考点来进行补偿物体运动和自身运动。最后,更新的查询转到后续帧来跟踪相同的对象。

图2 在线多相机跟踪器的流程概述

黑色虚线框中的所有彩色小方块代表跟踪查询,蓝框代表新生查询,橙色框表示来自先前帧的旧查询

3.2 端到端目标跟踪损失

MUTR3D算法每一帧中有两种类型的查询,并且有不同的标签分配策略。新生查询(newborn query)是一组经过学习的查询,它们与输入无关并且在每帧开始时被添加到查询队列中。新生查询负责在当前帧中检测新出现的物体,并使用新出现的地面真实对象作为DETR,在新生查询的候选对象之间执行匹配。旧查询(old query)是来自成功检测或跟踪对象的先前帧的活跃查询。旧查询负责跟踪当前帧中以前出现的对象,它在第一次成功检测到地面真实对象后被分配。

3.3 多相机跟踪查询解码

MUTR3D算法的transformer解码器头负责跟踪查询,关注它们的多相机图像特征,并提取的查询特征将用于解码候选对象。解码器有两种注意力模块:查询中的自注意力和查询及图像特征中的交叉注意力。为了提高效率,作者采用了来自DETR3D的基于参考点的注意力来执行交叉注意力。在具体的执行方面,分别包括查询初始化、查询特征提取以及3D对象参数化三个步骤。

3.4 查询生命周期管理

为了以在线方式处理已经消失的对象,MUTR3D在每一帧之后删除不活跃的查询。具体来说就是将每个查询的置信度分数定义为其预测框的分类分数,使用两个阈值参数\tau_{new}\tau_{old}作为方框分数和一个时间长度T来控制查询的生命周期。

在算法的执行过程中,对于每一帧中的新生查询,如果分数低于\tau_{new},就执行删除。对于旧的查询,如果它们的分数低于连续T帧的\tau_{old},就执行删除。

3.5 查询更新和运动模型

在过滤掉无效查询以后,MUTR3D会更新跟踪查询,包括它们的特性和3D参考点。更新三维参考点的目的是为了模拟物体的动力学和补偿自身运动。同时,作者使用从查询中预测的速度,它的好处是可以通过帧进行更新,并可以聚合多帧特征。

同时,为了隐式地建模多帧外观变化,MUTR3D使用来自以前帧的特性来更新跟踪查询。与MOTR做法类似,作者为每个活动查询维护一个固定大小的先入先出队列,并命名为内存库。在每一帧之后,为每个查询及其内存库应用一个注意力模块。跟踪查询作为注意模块的查询,相应的内存库作为一组键和值。

4. 实验

4.1 对比实验

作者使用nuScenes数据集进行算法评估,并使用平均多目标跟踪精度AMOTA和AMOTP作为主要指标。如表1所示是与其他SOTA方法的对比,MUTR3D方法在相机跟踪器上的性能远远超过了当前的SOTA方法。在验证集上超越了QD3DT方法5.2个点,在测试集上超越了5.3个点。

表1 nuScenes数据集上与SOTA方法的比较

如表2所示是作者与两种卡尔曼滤波基线的对比,结果优于基本版本的卡尔曼滤波器。但相较于SimpleTrack基线,作者提出的方法在AMOTA、MOTA、MOTP等指标上仅略有提高。

表2 在nuScenes验证集上与卡尔曼滤波的对比

为了评估不同跟踪算法的运动模型,作者提出了两种评价标准ATVE (Average Tracking Velocity Error) 和TVE (Tracking Velocity Error)。其中TVE是在MOTA最高的召回时的平均速度误差,ATVE的计算公式如下:

如表3所示是运动模型的评价结果,与基于运动模型的卡尔曼滤波相比,作者的方法获得了更好的TVE。相比较于先前的SOTA相机跟踪器QD3DT,作者提出的方法速度评估更为精确。

表3 速度评估结果

4.2 消融实验

作者在消融实验中研究了两个因素。首先,作者研究不使用运动模型的影响,即不在每帧结束时更新3D参考点。如表4所示是实验结果,结果显示移除运动模型会降低所有指标的性能。

表4 运动模型消融实验结果

然后,作者研究训练帧数的影响。对所有的实验采用ResNet-50作为主干网络,如表5所示是分别使用3,4,5帧进行训练的结果,结果显示提升训练帧数会逐渐提升性能。

表5 训练帧数消融实验结果

4.3 定性实验

在传统算法中,汽车左右两侧的近距离物体通常会被几个相机截断,这对于多相机3D跟踪是一个巨大挑战。如图3所示是8秒剪辑的BEV和相机视图中跟踪算法的可视化结果,从上到下分别绘制了4个视图的结果:鸟瞰视图、前相机、左前相机和左后相机。相同颜色代表相同类别的对象。箭头表示估计的速度,箭头越长代表速度越大。结果显示,MUTR3D算法可以用于自动融合多相机特征,并正确处理截断。

图3 在FPS为1的8个连续帧上的可视化结果

5. 结论

在2022 CVPR论文"MUTR3D: A Multi-camera Tracking Framework via 3D-to-2D Queries"中,作者设计了一个端到端多相机3D MOT框架。该框架可以执行3D检测,补偿自身运动和对象运动,并执行端到端的跨帧和跨帧对象关联。在nuScenes测试数据集中,MUTR3D跟踪器比目前最先进的基于相机的3D跟踪器QD3DT高出5.3 AMOTA和4.7 MOTA。作者还提出了两个新的评估指标:平均跟踪速度误差(ATVE)和跟踪速度误差(TVE),来研究当前3D 跟踪器中运动模型的质量。