编者按:3D物体检测(目标检测)是智能汽车感知系统的重要任务。在众多应用于智能汽车的传感器中,相机这一视觉传感器具有分辨率高、成本较低、部署方便等优点。基于相机RGB图像的低成本3D物体检测是当下学界和工业界的研究热点。其中,相比多目视觉3D物体检测,单目视觉3D物体检测是更为基础的问题,其难点在于估计物体的距离。本文将6DoF位姿估计领域常用的稠密关联方法应用到了交通场景的单目3D物体检测,并引入了不确定性传播,可以描述物体位置的不确定性。针对深度回归问题中偶然不确定性的估计,本文提出了鲁棒KL损失,显著提升了检测精度,对于一般的不确定性估计网络有借鉴价值。
本文译自: 《MonoRUn: Mo nocular 3D Object Detection by Reco nstruction and Uncertainty Propagation》
文章来源: IEEE Co nference on Computer Vision and Pattern Recognition (CVPR), 2021.
作者: Hansheng Chen, Yuyao Huang, Wei Tian, Zhong Gao, Lu Xiong
原文链接: https://arxiv.org/abs/2103.12605
摘要 :单目视觉3D物体检测的主要难点在于物体在3D空间中的定位。近年关于6DoF位姿估计的研究表明,预测图像与物体3D模型之间的2D-3D稠密关联(Dense Correspondence)并使用PnP算法求解物体位姿,可以取得很高的定位精度。然而,在这些研究中,模型的训练均依赖物体的3D模型真值,这一条件在真实的室外场景中难以满足。为解决这一问题,本文提出了MonoRUn检测算法,以自监督的形式学习稠密关联和物体几何,这一过程中仅需用到物体的3D框标注。本文使用基于不确定性的区域重建网络回归与2D像素相关联的3D坐标。自监督训练是指将3D坐标重投影以重构图像的2D坐标。为优化重投影误差并考虑其不确定性,本文提出了鲁棒KL损失。在测试阶段,网络预测的不确定性将传播至所有下游模块。具体而言,模型使用不确定性PnP算法估计物体的位姿及其协方差。在KITTI数据集上的实验表明,本文所提出方法的检测精度超过了目前的前沿方法。
关键词:3D目标检测,自监督学习,不确定性PnP算法
单目视觉3D物体检测是计算机视觉的重要研究领域之一。尽管深度学习在2D物体检测上取得了突破[3, 30],3D物体检测仍面临诸多挑战,其最大的困难就是单张图像无法提供显式的深度信息。为解决这一问题,大量现有研究利用物体的几何先验信息,通过2D-3D约束求解物体的位姿(即物体在相机坐标系中的位置和角度)。这些约束需要额外的关键点标注[4, 13],或利用物体真值框的角点、中心点、边界作为约束[21, 27]。检测的精度取决于约束的数量和质量。因此,当物体被部分遮挡或截断(位于图像边界以外)时,检测精度会下降。6DoF位姿估计[15]的相关研究表明,使用2D-3D稠密关联——将物体的每一个像素点映射到物体局部坐标系中的3D点,可以使定位更加鲁棒。
目前的前沿稠密关联方法[22, 28, 40]需要的标注信息包括物体的真实位姿和3D模型,借此可以在图像中渲染并得到目标3D坐标图及其掩膜,作为网络训练的监督信号。这一要求使得训练数据的来源受限,只能使用合成数据或可控的实验室数据,因其可以获取精确的物体3D模型。然而,真实场景中的3D物体检测需要面对类别级物体,获取某类物体所有实例的3D模型并不实际。一种直观的解决方法是使用激光雷达的点云生成稀疏的局部坐标图作为监督信号,但远距离或高反光物体没有足够的点能用于监督。
在缺少真值时,自监督是训练模型的重要方法。例如,Wang等人[35]在有物体几何真值而缺少物体位姿真值时,使用了自监督网络来直接学习物体的位姿。本文则采用了相反的思路:在训练时利用位姿真值自监督地学习3D几何,在测试时用网络学到的2D-3D稠密关联求解物体位姿。
本文提出了MonoRUn方法——基于重建和不确定性传播的单目视觉3D物体检测(Mo nocular 3D Object Detection by Reco nstruction and Uncertainty Propagation)。MonoRUn可在现有的2D检测器上增加区域(RoI)3D分支,用于回归2D检测框内的稠密3D坐标,这一过程便实现了几何重建和2D-3D稠密关联。
为减少冗余,避免对有监督前景分割的依赖,本文估计了坐标预测结果的不确定性并使用不确定性PnP算法,使其关注不确定性较低的前景点。此外,将不确定性通过PnP进行传播还可以获得位姿的协方差矩阵,并用于评价检测置信度。
自监督是指将预测的3D坐标重投影为图像坐标,这一过程需要用到物体的真实位姿和相机内参。为优化重投影误差并估计其不确定性,本文提出了鲁棒KL损失,用于最小化预测坐标的高斯分布和真值坐标的狄拉克分布之间的KL散度。这一损失函数是本文检测性能提升的关键。
本文提出了一种基于不确定性的新3D物体检测网络,该网络的训练过程可以无需额外标注(例如关键点、3D模型、分割掩膜)。本文首次将稠密关联方法用于真实交通场景的3D物体检测。
本文提出的鲁棒KL损失适用于一般的基于深度学习的不确定性估计问题,并通过实验验证了其相对于普通KL损失的优势。
在KITTI数据集上的实验表明,本文的检测精度相对于现有的前沿方法具有显著的提升。
根据深度信息的来源,现有的主流方法可以被粗略分为两类。
1)借助现有的单目深度估计方法。 Pseudo-LiDAR方法[39]将深度图转换为3D伪点云表征,将其输入至激光点云3D物体检测方法。D4LCN[8]使用深度图作为导向生成动态滤波器,用于高效提取图像中的3D信息。这些方法的优势来源于预训练的深度估计网络,例如DORN[9],但单目深度估计网络可能存在泛化问题。
2)使用2D-3D几何约束。 Deep MANTA方法[4]用含有36个关键点的车辆模板标注了训练数据,然后训练网络找到最佳匹配的模板,同时回归2D关键点的坐标,最后使用EPnP算法[20]计算车辆位姿。RTM3D方法[21]使用类似CenterNet[41]的网络检测虚拟关键点(3D框的角点和中心点)。此外,Mousavian等人[27]还提出了3D框内接2D框的约束。上述方法在遮挡和截断情况下约束不充分。
现有研究大多使用几何真值来训练稠密关联网络,也有部分研究尝试了在没有几何真值的情况下使用可导PnP算法训练端到端网络。
1)有几何监督。 Pix2Pose方法[28]直接回归物体像素点的归一化物体坐标(Normalized Object Coordinate,NOC)。DPOD方法[40]预测两通道UV坐标将物体表面映射至3D坐标。关于类别级物体,Wang等人[36]展示了具有尺度不变性的NOC可以处理同类别中未出现过的实例。这些方法只在合成或简单室内数据上进行了测试。
2)无几何监督。 Brachmann和Rother[1]提出了一种近似的PnP反向传播算法端到端地训练网络以解决SfM问题。Chen等人[5]提出了具有解析求导形式的BPnP方法。这些方法在训练时都使用重投影损失作为正则化,也就自监督,而没有充分研究仅依赖自监督本身的训练。
深度学习中的不确定性可以分为偶然不确定性和认知不确定性[18]。前者与观测噪声有关,后者反映模型参数的不确定性。Kendall和Gal[18]将异方差回归引入深度学习,通过KL损失[14, 18]训练网络直接输出与数据相关的偶然不确定性。然而,普通KL损失对离群值敏感,且不易与其他损失函数平衡,存在改进空间。
给定一张RGB图像,3D物体检测需要对其中所有受关注的物体进行定位和分类,以获得每个物体的3D包围框和类别标签。3D框的参数包括尺寸
基于现有的2D检测器,本文需要提取2D检测框中的RoI特征,用于预测3D坐标图。对于自监督训练,需要用物体真实位姿 和相机模型将3D坐标重投影为2D坐标
,其目标是恢复图像本身的2D坐标
。如果直接最小化重投影误差而不考虑物体前景和背景,网络会受无关背景处的较大误差干扰。因此,本文设计了不确定性重建模块,对重投影坐标
的不确定性进行估计,并使用鲁棒KL损失优化由不确定性加权的重投影误差。在测试阶段,本文采用不确定性PnP模块将上述不确定性传播至物体位姿,并用多元高斯分布表示位姿。这一分布被进一步用于评判检测的置信度。
为处理不同尺寸的类别级物体,采用两个网络分支分别预测3D尺寸和具有尺度不变性的归一化物体坐标(NOC)[36]。最终的物体坐标向量
则是NOC向量 和尺寸向量 的元素乘积:
第一个分支称为全局提取器,负责对物体的全局认知并预测物体的3D尺寸。第二个分支称为NOC解码器,使用卷积层预测稠密NOC图。由于卷积层的全局感知能力有限,令全局提取器额外输出一个全局隐向量以增强NOC解码器。隐向量可能编码了物体的遮挡、截断、形状等信息,后文的实验表明其有利于偶然不确定性的估计。网络细节如下。
全局提取器 如图2所示,7×7的RoI特征是由特征金字塔中更高一级的特征提取而来。这一特征被展平后输入到全局提取分支,输出16通道的全局隐向量并预测3D尺寸。尺寸可由标注的3D框尺寸直接监督。如图3所示,这一网络由两层1024通道的全连接层构成。
图4 NOC解码器网络,其中上采样部分采用CARAFE层[37]
NOC解码器 这一网络需要聚合全局隐向量和局部卷积特征,用于预测NOC。具体的实现方法借鉴了Squeeze-Excitation网络中的Excitation操作。如图4所示,首先将隐向量的通道数扩展为256,然后在上采样层前将其和卷积特征之间按通道求和。除了预测三通道的NOC图,NOC解码器还需要估计两通道的偶然不确定性,具体在下面一段描述。
基于偶然不确定性的自监督训练 给定物体真实位姿,可将预测的物体坐标重投影到图像中。像素点
的重投影误差为:
为物体位移向量。为使得网络能在没有实例分割的情况下专注于前景误差,本文引入了偶然不确定性。具体而言,本文使用一元高斯分布表示重投影的2D坐标,令网络预测其均值和标准差,并由鲁棒KL损失进行训练。从严格意义上说,可以按照图2中的不确定性传播路径,先估计中间变量的不确定性再将其传播。从实用角度出发,可以选择更灵活的捷径,直接令NOC解码器估计重投影2D坐标的标准差,如图4所示。
附加认知不确定性 认知不确定性对于自动驾驶这种强调安全的应用场景十分重要。参考[18]中的方法,本文在测试中使用蒙特卡洛dropout计算
的均值和方差,在RoI Align后插入通道dropout层,在每个全连接层后插入1D dropout层。由于PnP算法处理2D投影方差效率更高,本文先将物体坐标的3D方差近似转换为2D重投影坐标的方差,并将其与偶然不确定性合并。
根据定义,KL损失是由预测分布和目标分布的KL散度推导而来。假定分布均为高斯,则KL散度为:
对于固定的目标分布,
本文将式(4)称为高斯KL损失。后文将省略下标
。为估计回归问题中的异方差,Kendall和Gal[18]提出用深度网络直接预测依赖数据的均值 和对数方差
,并用式(4)进行优化。显然,式(4)的第一项是加权的L2损失,使不确定性较大的误差项惩罚更小。
高斯KL损失虽然是由概率理论推导而来,在应用于深度回归模型中仍面临两个问题:
减小,损失关于
的梯度会越来越大,而常规的L2或L1损失的梯度一般是减小或不变的,这导致不同的损失函数之间难以平衡。
针对第一个问题,[7, 18]由拉普拉斯分布推导了另一种KL损失:
类似于L1损失,该函数在
时不可导。为解决这一问题,本文设计了一种混合KL损失,并将其记作加权误差
和标准差 的函数:
可以验证该函数对 和
均可导。混合KL损失即为Huber损失(smooth L1)的推广,具有对离群值鲁棒且易于优化的特点。
对于第二个问题,随着训练时间增加, 逐渐减小,使得权重系数
不断增大。这一问题可以通过权重归一化解决。受Batch Normalization[17]启发,本文通过指数移动平均在线估计平均权重:
其中 是动量项,
是batch中的样本数量。最终的鲁棒KL损失即为权重归一化后的混合KL损失:
实际操作中,直接优化
会导致梯度爆炸,需要令网络输出其对数值 。
极大似然估计 求解PnP问题即为求解位姿
的极大似然估计(MLE),其负对数似然(NLL)函数为重投影误差
其中 ,
表示预测的重投影坐标标准差。这一优化问题可由Levenberg-Marquardt算法高效求解。
协方差估计 位姿 的协方差矩阵近似为NLL在
为避免在测试时求二阶导数,本文用高斯-牛顿矩阵
作为Hessian矩阵的近似,其定义为
,其中
在线协方差校正 实际应用中,式(10)估计的协方差矩阵数值偏小,其主要原因是式(9)假定了重投影误差是相互独立的,而实际网络输出的结果是具有相关性的。因此,本文引入了一个4×1的可学习校正向量
,用于协方差的在线校正:
其中
不参与优化,只有
被优化。尽管本文3.3节指出了普通高斯KL损失的不足,这一损失函数足以用于处理这一简单优化任务。
如图3所示,本文采用多层感知机(MLP),将带有不确定性的位姿估计结果与全局提取器的特征融合,输出检测的置信度。对于评分分支的训练,使用与[31, 32]中相同的二分类交叉熵损失函数:
其中 是MLP输出的3D定位置信度,目标置信度
最终的检测置信度是2D检测置信度与 的乘积。
自监督重建(无附加监督) 该模式中,训练没有用到激光点云和可导PnP,除了尺寸有直接监督以外,3D重建完全由自监督的方式进行训练。总损失函数为:
其中
是2D检测损失,
是关于重投影误差的鲁棒KL损失,
是关于尺寸误差的smooth L1损失,
加激光监督 前景激光点云可以转化为NOC的稀疏真值,用以施加直接NOC损失。因为只有前景点,无需采用偶然不确定性。因此,本文采用加权的smooth L1损失:
其中
表示NOC张量的第i个元素,
端到端训练 引入[5]中的PnP反向传播方法,可以对位姿估计误差施加smooth L1损失。由于端到端训练PnP在初始阶段不稳定,本文采用与[1]中类似的训练策略,即先自监督训练、再用端到端进行微调。该方法只在实验中作为对照。
本文在KITTI-Object数据集上评价模型的性能。KITTI数据集中共有7481张训练图像,7518张测试图像,以及相应的点云,总共有8个物体类别、80256个标注的物体实例。每个物体根据其遮挡、截断和2D框高度分为了简单、中等、困难三个级别。训练集又被进一步分为3712张训练图像和3769张验证图像[6]。官方排行榜需要对Car,Pedestrian,Cyclist三类物体进行评价。评价指标是基于特定IoU阈值(0.7或0.5)的准确率-召回率曲线计算的的。本文采用官方评价方法,计算40点插值平均精度(AP)[33]。
2D检测器 使用预训练的Faster R-CNN[30]作为2D检测器,其骨干网络使用ResNet-101[12]。本文采用6层FPN[23],比常规FPN多一层上采样层。
重建模块 对于dropout比率,设置1D dropout层为0.5,通道dropout层为0.2。网络输出(尺寸,NOC)使用训练数据的均值和方差进行了归一化。当训练多类物体时,对每个类别预测一组特定的隐向量、尺寸、NOC。
数据增强 在训练过程中,采用随机翻转和调色增强。对于NOC解码器,设置两个输出分支,分别对应原始和翻转物体。
训练策略 网络使用AdamW[24]优化器,权重衰减设为0.01。本文使用两张Nvidia RTX 2080 Ti GPU,总batch size为6张图像。初始学习率设为0.0002,使用余弦衰减。在完整训练集上训练32个周期,在训练子集上训练50个周期。对于端到端训练,附加一个15周期的第二轮训练,初始学习率降为0.00003。
测试方法 对于认知不确定性,蒙特卡洛dropout采用数设为50[18],默认只对全局提取器进行采样。在后处理阶段,使用3D NMS,IoU阈值设为0.01。
表1 KITTI测试集合验证集上类别Car的3D检测性能。*表示使用了预训练深度估计网络DORN[9]。Wang等人[38]指出DORN的训练数据与KITTI-Object的验证数据有重叠,因此造成3D检测性能过拟合,表中灰色数字表示受过拟合影响的结果。
表1列出了本文方法和其它前沿方法在KITTI的验证集(Val)和官方测试集(Test)上的检测结果。可以得到以下结论:(1)当使用激光点云监督时,本文方法在测试集上的精度显著高于现有前沿方法。其余标有*的前三名也用到了额外的深度监督。(2)当不使用额外监督时,本文提出的方法仍超过了其它不使用深度估计的方法。(3)本文方法的单帧测试时间为0.07 s(包括蒙特卡洛和PnP),速度尚可,而其余前三名的单帧时间超过0.2 s(不包括DORN[9]的0.5 s深度估计时间)。
表2 KITTI测试集上Pedestrian和Cyclist的3D检测性能
表2列出了本文方法和其它前沿方法在Pedestrian和Cyclist类上的检测性能。本文的Pedestrian检测精度目前为排行榜最高,但Cyclist精度较差。鉴于KITTI数据集中Pedestrian和Cyclist实例输入太少,存在较大偶然性,该结果仅供参考。
本节所有实验都在训练子集和验证子集上进行,评价指标采用验证集上类别Car的6个AP指标的平均,即mAP。所有结果在表2中给出。
表2 关于重投影损失函数、激光点云监督、端到端训练、认知不确定性和隐向量的消融实验
自监督与激光监督 仅使用自监督重建时,就可达到较好的检测性能(28.57),仅使用激光监督则效果很差(18.84),二者都使用时可以达到最好的效果(31.21)。图6显示,自监督重建的几何并不是物体的精确表面,易于过拟合,增加激光点云监督具有提供形状正则化,减少过拟合的作用。
鲁棒KL损失 通过比较smooth L1损失(26.35),拉普拉斯KL损失(29.47),混合KL损失(30.05),鲁棒KL损失(31.21),可以观察到性能在不断提升。其中最大的提升在smooth L1和拉普拉斯KL损失之间,这显示了偶然不确定性的重要作用。
端到端训练 本文中端到端PnP只作微调,因此与微调前性能强相关。对于拉普拉斯KL损失训练的结果(29.47),端到端训练略微提升了精度(29.73)。对于鲁棒KL损失训练的结果(31.21),端到端反而略微降低精度(31.09)。这说明鲁棒KL损失比端到端PnP更易于优化网络。
隐向量 有隐向量相比没有隐向量显著提升了检测性能(31.21 vs 29.78)。
图5 检测结果在图像和鸟瞰图中的可视化。红色表示预测结果(及其位置的95%置信区间),绿色、青色、蓝色分别表示完全可见、部分可见、严重遮挡的真值。
本文提出了一种新颖的高性能实用3D物体检测器——MonoRUn。为将稠密关联方法用于真实交通场景中的3D物体检测,本文使用自监督重构和不确定性克服了数据集缺少几何监督的难题。同时,本文提出了鲁棒KL损失函数,使不确定性深度回归网络更容易优化。最后,本文探索了基于PnP不确定性传播的概率3D物体定位,为鲁棒跟踪和预测等下游任务开拓了新的可能。
邮箱:20666080@tongji.edu.cn