介绍一种高效的智驾系统Mono 3D 目标检测方法

汽车   2024-11-06 09:00   广东  

欢迎关注下方公众号阿宝1990,本公众号专注于自动驾驶和智能座舱,每天给你一篇汽车干货,我们始于车,但不止于车。



在 3D 空间中定位物体是自动驾驶的一项重要任务,它使系统能够感知和理解周围环境。受廉价且易于部署特性的推动,学术界和工业界已经做出了巨大努力来解决基于单目的 3D 物体检测。最近,基于深度学习的方法取得了巨大成功,复杂的深度神经网络成为主要解决方案。此类神经网络的训练通常需要大量高质量的标记数据。然而,标记 3D 注释非常繁琐且昂贵,因为即使人类也无法直接完美地注释单个图像的真实情况。


通常,半监督学习是减轻注释负担的一个有前途的方向,现有方法主要集中于 2D 任务。然而,最近的工作发现 3D 检测性能主要由准确回归 3D 属性(3D 位置、维度和方向)决定。为了提高 3D 属性回归的性能,可以考虑利用未标记的多视图数据(立体或视频)来提供外部 3D 监督。同时,自动驾驶场景中未标记的多视图数据丰富且收集成本低廉。


前言


现有的单目 3D 探测器可以从两个角度利用多视图数据:伪激光雷达中的数据转换和多任务框架中的共享表示。然而,这两个任务的目标不同,其中深度估计侧重于背景和物体表面,而3D检测仅考虑物体中心。这种差异可能会导致对背景区域的监督偏差并忽略对象级 3D 属性。此外,神经网络可以为这两项任务学习不同的视觉线索。


单目 3D 物体检测的成功高度依赖于大量标记数据,而获取这些数据的成本很高。为了减轻标注工作量,本文介绍了一个半监督训练框架 MVC-MonoDet,它通过强制多视图一致性来改进单目 3D 对象检测。特别是利用了框级正则化和对象级正则化来增强检测模型,旨在确保未标记的多视图数据(立体或视频)上的 3D 边界框预测的一致性。框级正则化器要求模型一致地估计不同视图中的 3D 框,以便模型可以学习用于 3D 检测的跨视图不变特征。


对象级正则化器采用对象级光度一致性损失,通过结构自运动 (SFM) 减轻 3D 框估计误差。本文介绍的算法有效的利用多视图数据一致性损失,一个关键的创新是采用一种相对新颖的深度模块取代普通 SFM 中的标准深度模块。该技术允许深度估计与估计的 3D 边界框相结合,以便一致性正则化的导数可用于使用未标记的数据直接优化估计的 3D 边界框。


图1.利用多视图数据改进单目3D检测的3个框架的可视化图


如上图 1 所示,这两个框架需要中间像素级深度表示来连接 3D 检测与多视图数据。其中,图(a) 是基于伪激光雷达的框架。可以使用多视图图像来改进深度估计模型,从而实现更好的图像到激光雷达数据的转换。图 (b)表示多任务框架(例如 DD3D)为 3D 检测和深度估计构建共享主干网,可以利用多视图数据通过深度估计来训练更强大的骨干网。图(c)表示本文提出的 MVC-MonoDet。算法为检测模型提供直接监督信号,不需要潜在深度估计模块。


为了更好地利用多视图数据,在本文中,我们提出了一种半监督单目 3D 对象检测框架,该框架利用未标记的多视图数据(立体或视频)来提高性能。在该框架中,我们提供了框级和对象级一致性正则化来提高 3D 检测的性能。框级正则化提供稀疏监督,以增强模型对未标记和未见数据的跨视图泛化。对象级正则化利用密集监督来明确识别和减轻边界框预测误差。具体说明如下:


首先,从框空间,我们强制模型估计不同视图中一致的 3D 边界框。通过规范模型,以学习不同视角和位置的鲁棒特征,从而更好地概括未标记和未见过的数据。


其次,从对象空间出发,我们设计了一个对象级光度一致性模块,利用运动结构(SFM)直接优化 3D 框。普通的 SFM 学习器专为深度估计而定制,利用源视图和投影视图之间的光度误差来表示和减轻深度误差。然而,vanilla SFM中的标准深度估计模块没有与3D边界框耦合,且相应的SFM模块不能直接用于优化3D框位置。受 Stereo RCNN的启发,我们设计了一个相对深度模块,将像素级深度与 3D 框耦合起来,从而可以使用跨视图光度一致性来直接优化检测误差。基于这种技术,我们可以通过规范交叉视图光度一致性来直接减轻边界框误差。



传统的单目3D目标检测方法


传统的3D目标检测方法通过使用形状先验、语义信息、地平面假设等来恢复3D边界框,以减轻深度恢复的挑战性,以后的工作将更多注意训练管道和损失函数的设计。除了直接采用神经网络来估计深度之外,一些研究提出通过解决2D和3D坐标之间的几何约束来推理深度。


此外,一些方法采用像素级深度估计模型来辅助3D检测。基于伪激光雷达的方法将图像和深度数据投影到伪点云中,并采用点云检测器来定位对象。除了投影输入模态之外,D4LCN 及其后续产品利用深度图构建动态卷积或图传播模块,以更好地提取 2D 空间中的 3D 特征。DD3D提出了一个多任务框架,利用深度估计来预训练用于 3D 对象检测的强大特征表示。通过将深度估计与 3D 目标检测相结合,可以利用大规模未标记多视图图像来提高 3D 检测的性能。



半监督目标检测


由于对象检测中的注释负担很重,这需要付出巨大的努力来利用未标记或弱注释的数据来提高性能。受半监督分类中置信正则化成功的启发,已经有一系列方法专注于设计具有不同类型图像扰动的一致性正则化方法。另一种方法是利用神经网络来注释伪标签以进行自车行驶训练。尽管半监督目标检测发展迅速,但单目 3D 目标检测只有一种半监督方法。


图 2. 用于单目 3D 对象检测的多视图半监督训练流程


比如之前有人提出了一种基于关键点约束的一致性正则化方法,其中一致性正则化可以应用于中间关键点检测任务。然而,这种中间正则化方法KM3D 只能用于基于关键点的方法,而与其他端到端检测器相比,它们的效果较差。相比之下,本文介绍的算法在最终输出上提供了监督信号,该信号很灵活,可以应用于任意单目 3D 物体检测器。



多视图数据的自监督学习


这是一个流行的主题,训练模型通过未标记的多视图数据恢复 3D 信息(例如深度、自车运动、流量等)。一组方法采用运动结构的多视图一致性 (SFM) 来训练用于 3D 重建的神经网络。具体来说,通过追求原始帧和重建的附近帧之间的光度一致性来获得监督信号,其中重建的附近帧通过使用估计的深度和相机本征来扭曲。


传统的处理方式是首先采用校准的立体相机来实现无监督的深度训练。除了立体数据之外,视频数据是提供多视图观察的另一种廉价且易于收集的替代方案。然而,视频数据是非结构化的,需要进一步估计自车和环境目标的姿势。过程中,首先通过设计一个统一的框架,通过最小化源帧和投影目标帧之间的光度误差来联合训练深度估计和相机运动模型。为了解决尺度不一致的问题,利用几何一致性损失来规范相邻视图之间的不一致预测。进一步的,后续通过估计对象掩模或预测对象运动以处理遮挡区域或动态对象。


然而,很少有人关注利用多视图信息进行单目 3D 物体检测。一个潜在的原因是结构自车运动 SFM 中的交叉视图扭曲需要每个像素表面的深度,但是 3D 检测仅估计对象中心的深度。为了减轻这种不匹配,本文提出了一个相对深度模块,该模块可以通过对象形状和估计的边界框恢复每像素深度。



方法论概述


给定输入图像,单目3D对象检测的目标是识别感兴趣对象并定位相应的3D框。在我们的半监督学习设置中,我们有一个标记的分割,Nl为标记样本值,,还有Nu个未标记样本,其中 Is 和 It 表示多视角图像, 表示用于跨视图投影的自车姿势矩阵。

在本文中,我们使用 u R1×2p R1×3分别表示 2D 和 3D 坐标中的点。KR3×表示相机本征,I(p, K) 表示由点 p 索引的对应像素。标签 y 包含一组 3D 边界框,由框中的八个角点表示:b R8×3 。在自动驾驶中,3D边界框可以进一步分解为物体3D位置,尺寸和偏航角。多视图图像可以来自立体相机或具有不同时间戳的单目相机(视频)。我们的基线模型是一级检测器 CenterNet的修改版本,并添加了几个并行头来估计 3D 属性。


对于未标记的多视图数据,传统方法利用多视图一致性来训练每像素深度估计网络。然而,如上所述,通过中间深度表示的监督并不专门用于 3D 检测,这可能导致利用率次降低。


我们的框架提供了两个专为单目 3D 对象检测量身定制的直接一致性正则化项。图 2 描述了我们的多视图半监督训练框架。具体来说,我们将框级和对象级一致性正则化技术引入单目 3D 对象检测模型。从框级别开始,我们对模型进行正则化,以估计从不同视图拍摄的图像的一致 3D 框属性。这使模型对不同的视角和位置具有鲁棒性。从对象级开始,我们设计了一种对象级光度一致性损失来识别和减轻边界框错误。值得注意的是,在推理过程中,只需要一张图像来预测 3D 边界框。


两种一致性


1、框级一致性


给定来自不同视图的输入图像,框级一致性 (BLC) 正则化是通过强制估计的 3D 框在校正坐标中保持一致。这意味着将估计的 3D 框转换为目标图像后,其属性应与目标图像中估计的框匹配。给定跨视图自车姿态 Ts→t,一致性损失可表示为:

其中bs和bt表示源图像和目标图像中估计的框,Nb表示所选候选框的数量。在视频数据中,我们需要进一步对源到目标转换过程中的对象运动进行建模。



图3.(a)计算对象级光度损失的管道的可视化。自车姿势来自预校准(立体声)或外部硬件设备和校准算法(视频)。(b).从相机原点发射到图像中像素 P 的光线。它与边界框平面在 A 点和 B 点相交。B 点被 A (c) 遮挡。点 A 和 C 位于边界框上分别是车道和物体表面。


实际上,一张图像可能包含多个对象。因此,跨图像匹配 3D 框是必要的。在本文中,我们提出了一个简单而有效的解决方案来实现这一目标。流行的 3D 检测方法,如通过 MonoDLE 或CenterNet与 3D 框合并生成 2D 框。即使训练数据有限,估计的 2D 框也比 3D 框更准确。因此,我们利用 2D 框跨越的区域中的像素来匹配 3D 框。对于每个源框 bis ,我们计算与目标图像中所有框的 SSIM相似度分数,并选择达到最小 SSIM 分数的框作为配对目标框 bit 。这里为了过滤背景区域,需要过滤掉估计类置信度小于 0.5 的边界框。


2、对象级一致性


请注意,框级一致性正则化不会直接减轻预测误差,而是通过增强模型的鲁棒性来提高性能。此外,它只能提供稀疏的监督。本文提出了对象级一致性(OLC)正则化,以进一步利用多视图信息进行密集监督。所提出的 OLC 规范了边界框内两个视图之间的光度一致性。


具体来说,OLC首先利用SFM通过投影目标视图来重建对象的源视图。然后,利用每像素光度一致性来识别边界框预测误差。这里需要将估计的边界框与交叉视图投影中使用的深度相结合,以便一致性损失可以反映定位误差。通过增强每像素光度一致性,OLC 提供比 BLC 正则化更密集的监督。一次迭代的训练过程总结如下:


步骤 1. 通过 3D 框生成源视图。在标记图像上,直接获取真实值。在未标记的图像上,利用检测器来预测 3D 框。将 3D 框跨越的源图像区域称为源视图。


步骤 2. 通过 3D 框将源视图投影到目标视图。具体来说,对于每个源视图中的点,计算其投影位置。在目标视图中,由投影点集跨越的目标图像区域称为目标视图。如果不知道源视图中每个像素的深度,则无法完成源到目标的投影。为此,我们设计了一个具有表面到立方体偏移头的相对深度,以通过 3D 框推断每个像素的深度。


步骤 3. 计算对象级光度损失以测量源视图和目标视图之间的未对准具体有多少。为了过滤视图投影过程中的噪声,我们还对形状不确定性进行建模以获得准确的光度损失。


2.1、通过相对深度进行目标视图投影


本节介绍步骤 2 中使用的相对深度模块,该模块需要通过 3D 框推断对象表面的每个像素的深度。为了实现这一目标,我们首先从立方体形状的假设开始,将所有对象建模为立方体形状,并在训练过程中逐步学习形状。


通过立方体形状的假设,我们可以通过针孔相机中的光线转发过程推断每个像素的深度。具体来说,我们首先使用向量 op 从相机原点 o 向源视图 p 中的像素发射一条射线(参见图 3.b 中的红色实线作为示例)。在立方体形状的假设下,像素将是 3D框平面上某个 3D 点的透视投影。换句话说,3D 点是光线与 3D 盒子平面之间的交点。交集可以用表示,其中表示边界框 i 的第 j 个方向向量。无效交叉点可以通过检查它们是否位于 3D 框内来过滤掉。最后,当发生遮挡时,仅选择距相机最近的交点 j*:即表示为

其中|z 表示交叉点的深度。图 3.b 提供了遮挡的示例。由于方向向量基于估计的 3D 框,因此光度损失的梯度可以直接反向传播到估计的3D 框,表面到平面的偏移。如图 3.c 所示,大多数像素满足立方体形状的假设,尤其是汽车的侧面和底部。


然而,我们发现这个假设并不总是适用于不同的区域(例如,汽车的角落、挡风玻璃等)。这一观察促使我们设计一个回归头来对物体形状进行建模。具体来说,回归头倾斜一个偏移量 ΔZ,该偏移量填补了根据立方体形状假设计算出的深度与实际深度之间的差距。图 3.c 中的偏移示例通过对这种偏移进行建模,投影过程对于不同的形状具有鲁棒性,从而为对象定位提供准确的监督信号。最后,给定源图像 2D 坐标中的一个点 us,可以通过 ps =π(b, u,K,ΔZ) 获取其对应的 3D 点,其中 b, u, K, ΔZ 表示 3D 框、2D 点、相机固有值和估计偏移量。请注意,框b可以从真实值和估计的边界框中选择。


在标记数据中,我们采用地面实况框来让网络学习偏移量。在未标记数据中,我们采用估计的 3D 框并联合优化框和偏移。


2.2、物体级光度损失 


视图投影后,我们可以通过获取源视图中的像素,并计算它们的光度一致性损失。


需要注意的是,在实践中,对象中的某些像素信息量较少,匹配它们会使学习不稳定。我们提出了一个不确定性感知模型来处理这个问题。具体来说,我们对表面到平面偏移的不确定性进行建模,并在计算物体级光度损失时将其视为重新加权因子。特别是,我们将偏移量的分布建模为基于l1 误差的拉普拉斯分布。一个对象的损失表示如下:

其中 Np 是点数,σi 是偏移的标准差。


直观上,这种不确定性重新加权类似于对象分类伪标签中的课程学习:迭代地将训练集从简单数据扩大到复杂数据。


3、总体损失


我们的半监督训练框架中的总体损失函数表示如下:

其中 Ldet 来自真实边界框的检测损失,λ1 和 λ2 是手动调整的超参数。



总结


本文提出了第一个用于单目 3D 物体检测的多视图半监督训练框架。该框架利用丰富且廉价的未标记多视图数据来减轻 3D 注释负担。基于多视图框架,提出了框级和对象级一致性正则化来改进3D检测器,并提出了相对深度模块以允许3D框误差与一致性损失的有效耦合。我们在两个标准 3D 检测基准上验证了 MVC-MonoDet 的有效性:KITTI和 nuScenes 数据集。在 KITTI 数据集上,我们表明所提出的方法可以利用立体或视频数据将最先进的完全监督方法分别提高 22% 和 11%。在 nuScenes 数据集上,我们看到标记数据分别为 10% 和 100%,相对提高了 18% 和 5%。实验结果证明了我们的半监督学习框架对于不同类型的多视图数据的有效性。


一群志同道合的朋友齐聚知识星


加入《阿宝说车》知识星球,可获得这些模块的相关学习资料(目前有研究报告,线上大咖分享、线下闭门会),包括16大板块,详细清单如下:

阿宝1990
本公众号专注于自动驾驶和智能座舱,每天给你一篇汽车干货,我们始于车,但不止于车。
 最新文章