本文经自动驾驶之心公众号授权转载,转载请联系出处。
开源链接:https://github.com/PJLab-ADG/3DTrans#resimad
论文链接:https://arxiv.org/abs/2309.05527
传感器类型变化和地理环境变化领域变化在自动驾驶(AD)中普遍存在,这带来了很大挑战,因为依赖于先前领域知识的AD模型很难在没有额外成本的情况下直接部署到新的领域。为此本文提出了一种重建仿真感知(ReSimAD)方案,为缓解域迁移问题提供了一种新的视角和方法。具体而言,图像重建过程基于先前旧领域的知识,旨在将与领域相关的知识转换为域不变的表示,例如3D场景级网格。此外,多个新域的点云模拟过程以上述重建的3D网格为条件,其中可以获得目标域模拟样本,从而降低了为后续感知过程收集和标注新域数据的成本。对于实验,我们考虑了不同的跨域情况,如Waymo-to-KITI、Waymo-to-nuScenes、Waymo-to-ONCE等,以使用ReSimAD验证零样本目标域感知。结果表明,我们的方法有利于提高领域泛化能力,甚至有望用于3D预训练。
总结来说,本文的主要贡献如下:
- 1)本文向自动驾驶社区提供了这样一个知识,即旧域重建和新域模拟的方案本质上提高了模型对新域的鲁棒性。
- 2)提出了ReSimAD,这是一种统一的重建模拟感知方案,解决了域偏移问题,其中重建的3D网格解耦了域特性,充当了标记良好的旧域和看不见的新域之间的桥梁。
- 3)通过在具有不同域偏移的不同数据集上进行大量实验,所提出的ReSimAD实现了高的零样本目标域推理性能,甚至优于必须访问真实目标域数据的无监督域自适应方法。
重建模拟数据集
为了与域自适应(DA)中旨在研究检测模型跨领域适应性的最新研究工作进行比较,我们介绍了第一个基于Waymo序列构建的3D重建模拟数据集具有不同的传感器设置。
本文遵循域适应领域的相关工作,并使用Waymo数据集作为源(旧)域,使用其他数据集,例如nuScenes和KITTI作为目标(新)域。因此,在Waymo上执行隐式重建以生成3D场景级网格,而我们根据基于Waymo的3D网格模拟KITTI、nuScenes和ONCE场景。
此外,Waymo传感器具有一个顶部激光雷达和四个侧面激光雷达,这有助于更宽的纵向感知范围,能够涵盖其他数据集(如KITTI)的窄纵向视野。
三维重建网格和模拟点。表1列出了我们使用重建数据获得的所有模拟结果,其中我们选择具有最高重建分数的网格,该网格使用Waymo数据集上模拟点和真实点之间的倒角距离(CD)计算。我们仿真每个域大约26K~29K个样本。仿真数据的可视化结果如图2所示。
重建模拟数据集分析。考虑到生成的点云不仅需要提高模型在目标域中的性能,而且对于增强主干特征泛化能力的3D预训练也很有价值,我们模拟了目标大小更多样的目标域点。目标大小在四个模拟域上的分布如图4所示。从图4中可以看出,与现有的公共数据集(如ONCE)相比,重建模拟数据集覆盖了广泛的对象大小分布。
RESIMAD:重建、模拟、感知管道
ReSimAD概述。如图3所示,ReSimAD由三个步骤组成。
- 1)点到网格隐式重建:此步骤旨在将点从源域映射到隐式几何体。为了获得符合目标域激光雷达分布的高度一致的模拟数据,我们重建了真实而多样的街道场景背景、动态交通流信息。Waymo(包括1150个场景,包含在一系列城市和郊区拍摄的同步和标定良好的激光雷达和相机数据。我们选择Waymo作为场景重建的源域。
- 2) 网格到点渲染:此步骤的目的是通过更改激光雷达传感器和场景布局,在给定重建的隐式几何体的情况下模拟目标域样点。具体而言,我们采用了LiDARSimLib,并再现了目标域中使用的传感器配置方案,包括LiDAR扫描模式、物理特性和部署位置。
- 3) 零样本感知过程:将模拟良好的点输入感知模块,该模块可以帮助原始模型增强常见领域变化(如LiDAR类型的变化)的跨领域泛化。
点到网格隐式重建
受DeepSDF和NeuS(的启发,我们使用了基于激光雷达的隐式神经重建方法(LINR)。该技术以稀疏的激光雷达点云为输入,并生成隐式符号距离场(SDF)场。通过利用神经网络对有符号距离函数进行编码,我们实现了具有更大分辨率和高效内存使用的高质量3D模型的合成。与最近使用RGB图像来细化隐式表示的方法相比,所开发的LINR方法能够在相对严重的条件下实现重建过程,例如在实际户外场景中的弱光照和天气变化。
然而,基于体素绘制的LINR仍然面临一些挑战。由于激光雷达数据的固有稀疏性,单个激光雷达点云帧仅捕获标准RGB图像中包含的综合信息的一部分。这种差异突显了深度渲染在为有效训练提供必要的几何细节方面的潜在不足。因此,这可能导致在所得到的重建网格内产生大量的伪影。为了应对这一挑战,我们整合了Waymo数据集中相应序列的所有帧,并为每个场景提取有效的点云。此外,我们利用上述LINR来执行重建过程。
考虑到Waymo数据集中顶部激光雷达垂直视场的限制,仅获得-17.6°至2.4°之间的点云对周围高层建筑的重建造成了限制。为了应对这一挑战,我们引入了一种将侧面激光雷达的点云(盲补偿)纳入采样序列的解决方案。四边形激光雷达战略性地位于车辆的前部、后部和侧面,垂直视野从-90°到30°。这有效地补偿了顶部激光雷达的视场不足。由于侧面激光雷达和顶部激光雷达之间的点云密度存在差异,我们选择为侧面激光雷达分配更高的采样权重,以提高高层建筑的场景重建质量。
在重建隐式曲面后,我们可以获得更细粒度的场景几何的连续表示,有助于提取高分辨率网格,以便在选定的模拟器中进行后续渲染。
重建评估。由于动态物体造成的遮挡和激光雷达噪声的影响,隐式表示可能低于预期,这对跨域自适应提出了挑战。因此,我们对重建精度进行了评估。由于我们可以访问旧域的真实世界点云,因此我们通过重新投射旧域的点云来评估重建过程的准确性。
我们使用一组用于渲染点Gb和原始收集的激光雷达点G之间的重建精度的度量,具有均方根误差(RMSE)和倒角距离(CD):
网格到点渲染
在通过上述LINR获得静态背景网格后,我们使用Blender Python API将网格数据从.ply格式转换为使用.fbx格式的3D模型文件,并最终将背景网格作为资产加载到用于自动驾驶研究的开源模拟器CARLA中。
对于交通参与者的外观匹配,我们通过Waymo的注释获得了每帧数据中边界框的类别和三维大小。根据这些信息,我们在CARLA中搜索同类流量参与者中规模最接近的数字资产,并将其用作流量参与者的模型。根据CARLA模拟器中可用的场景真实信息,我们为交通场景中的每个可检测目标开发了一个边界盒提取工具,并将其转换为目标域的标签格式(如KITTI)。从图4中可以观察到,不同数据集的目标大小分布不同。为了确保模拟数据集与目标域中一般车辆大小的一致性,我们首先根据统计结果对每个交通参与者的大小进行函数映射,然后完成属性匹配过程。
对于交通参与者的运动模拟,我们对交通场景坐标系进行了梳理,并逐帧更新动态目标的位置和姿态。对于每个clip,我们将第一帧中自车中心的接地点作为坐标原点。通过不同帧中自车标签之间的差异来更新自车的6D姿态。通过每帧的标签信息中自我车辆的相对6D姿态来更新其他动态目标。模拟目标Pt在第t帧中的6D姿态可以在模拟器中表示为(x,y,z,滚转,偏航,俯仰)。自车位姿和动态目标姿态的更新是:
为了研究交通场景重构和激光雷达仿真对合成数据真实性和零样本域自适应性能的影响,构建了三个数据集。除了根据上述方法的隐式重建模拟数据集外,还通过OpenCDA工具构建了基于CARLA场景背景的类传感器LiDAR模拟数据集和默认LiDAR仿真数据集。
类传感器激光雷达数据集与默认激光雷达模拟数据集之间的主要区别在于,激光雷达通道的数量和垂直视场不同。默认的激光雷达具有固定的32通道配置,垂直视场范围从-30度到10度,光束均匀分布。同时,利用模拟库,像LiDAR这样的传感器的特征与来自目标域的相应传感器设置的特征相同。目标域激光雷达的探测范围、每秒发射的点、旋转频率和下降率也与默认激光雷达几乎相同。由于车辆交通流量需要与路网结构相匹配,为了进行基于CARLA静态背景的数据模拟,我们完成了车辆交通流量密度的匹配。
零样本感知过程
为了进一步实现闭环模拟验证,我们使用模拟点Xsim在新域上训练我们的基线模型,并对来自新域的验证集的真实样本Xreal进行评估。具体来说,我们在3D检测任务上验证了我们的方法,总体损失Ltrain和评估过程Eeval为:
实验
实验设置
我们首先在标记的源域上训练基础模型,并评估训练的源模型在目标域上的跨域性能。
1)CARLA默认值:我们使用CARLA生成模拟数据。对于该基线,通过从CARLA中搜索来找到最接近对象大小的属性,将前景对象添加到模拟场景中。
2)类传感器:我们假设可以获得目标域传感器设置,因此,我们还更改了CARLA中的传感器参数设置,并模拟点数据,使激光雷达光束分布与目标域场景相似。请注意,以上两个基线设置只会产生更多符合目标域分布的模拟数据,我们直接使用模拟数据来微调我们的基本模型,并观察它们在目标域中的性能。
3)ST3D:我们与ST3D进行了比较,ST3D是一种流行的无监督域自适应(UDA)技术,以标签有效的方式减少了点云的跨域差异。
跨域实验
RESIMAD增强零样本3D物体检测
为了确保实验的公平性,我们首先将所提出的ReSimAD与数据模拟相关的基线进行比较:CARLA-默认和类似传感器。从表2中可以看出,我们的ReSimAD在PV-RCNN和PV-RCNN++上的所有跨域设置中都实现了最佳的零样本3D检测精度。此外,我们发现,与之相比类传感器基线对领域差异具有更强的鲁棒性。
CARLA默认,因为我们根据目标域的激光雷达参数设置提前进行传感器级模拟。然而,由于模拟场景和真实场景之间背景分布的差异,仅使用类传感器基线仍然难以实现令人满意的跨域性能(即Waymo到KITTI仅为40.80%)。
此外,表2比较了类传感器和ReSimAD,表明在不同类型的跨域差异下,ReSimAD通常可以比类传感器方法好5.98%~27.49%左右。因此,我们认为点云背景分布的真实性对于实现零样本交叉数据集检测也至关重要。
表2显示了利用无监督域自适应(UDA)技术的结果。UDA和ReSimAD的主要区别在于,前者使用目标域真实场景中的样本进行模型自适应,而后者无法访问目标域中的任何真实点云数据。从表2可以看出,我们的ReSimAD获得的跨域结果与UDA方法获得的结果相当。这一结果表明,当激光雷达传感器出于商业目的需要升级时,我们的方法可以大大降低数据采集成本,并进一步缩短模型再训练的开发周期。
RESIMAD增强全监督3D检测
使用ReSimAD生成的数据的另一个好处是,可以在不访问任何目标域真实数据分布的情况下获得高性能的目标域精度。我们发现,这样一个类似目标域的模拟过程可以进一步提升Oracle的基线结果。
表3报告了使用来自目标域的标注的结果。Oracle代表了在目标域的所有标记数据上训练的基线模型所获得的最高结果。SFT表示基线模型的网络参数由从模拟数据训练的权重初始化。表3显示,使用我们模拟的点云预训练的主干为3D检测器(如PV-RCNN++和PV-RCNN)提供了更好的初始化。
3D预训练实验
使用模拟数据进行3D预训练概述。为了验证ReSimAD是否能够产生有利于3D预训练任务的点数据,我们设计了以下设置:使用AD-PT在模拟点云上预训练3D主干,然后对下游真实世界数据进行微调。它通过使用模拟数据进行3D预训练来保存大量真实世界的数据。
下游微调结果。我们利用ReSimAD生成具有更广泛的点云分布的数据。为了与他们在AD-PT中的预训练结果进行公平的比较,ReSimAD生成的模拟数据的目标量约为100K(生成的仿真数据的组成见表1)。在表4中,基线检测器在模拟数据或真实世界数据上进行预训练,并在KITTI和Waymo基准上进行微调。表4显示,使用不同规模的模拟预训练数据,可以不断提高下游微调的性能。总体而言,我们通过以零样本方式利用不同规模的模拟点云来实现预训练,即无需额外的数据采集和目标域的注释工作。
进一步分析
重建和模拟的有效性。为了验证所提出方法的模块有效性,我们可视化了使用不同方法渲染的点云,包括CARLA模拟器,以及通过图5中的方法重建的真实世界3D场景。结果表明,ReSimAD获得的模拟点覆盖了目标域更真实的场景信息,如路面和街景。图6还使用不同的重建方法对重建的网格进行了可视化。可视化结果表明,与VDBFusion相比,我们的ReSimAD隐式重建的网格显示出清晰的街景信息和连续的几何结构。
表5显示,生成的点云对轻量级基线模型是有效的,这在使用轻量级模型的实际应用中是实用的。我们采用SECOND-IOU作为模型,并通过ReSimAD在模拟数据上对其进行训练。结果表明,该方法在一阶段3D检测模型上也取得了很好的结果。
结论
在这项工作中,我们研究了如何实现零样本域迁移,并提出了一种统一的重建模拟感知方案(ReSimAD),该方案由真实世界的点级图像重建过程和网格到点的渲染过程组成,该方案已被验证在处理严重的域间隙甚至数据集级差异方面是有效的。我们在零样本环境下进行了实验,结果证明了ReSi-mAD在产生类靶域样本和实现高靶域感知能力方面的有效性,甚至有助于3D预训练。