点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【多传感器融合】技术交流群
后台回复【多传感器融合综述】获取图像/激光雷达/毫米波雷达融合综述等干货资料!
论文链接:https://arxiv.org/abs/2209.10986
模拟逼真的传感器是自动驾驶系统数据生成中的一个挑战,通常涉及精心制作的传感器设计、场景特性和物理建模。为了缓解这一问题,论文引入了一种用于真实激光雷达传感器的数据驱动模拟的管道!!论文提出了一个模型,该模型直接从真实数据集学习RGB图像和相应的激光雷达特征(如光线下降或perpoint强度)之间的映射。结果表明,该模型可以学习如何对真实效果进行编码,例如透明表面上的落点或反射材料上的高强度反射。当应用于现成模拟器软件提供的简单的光线投射点云时,论文的模型通过预测强度和基于场景外观去除点云来增强数据,以匹配真实的激光雷达传感器。使用本文的技术学习两个不同的激光雷达传感器的模型,并使用它们相应地改进模拟的激光雷达数据。通过车辆分割的示例任务,结果表明使用本文的技术增强模拟点云可以提高下游任务的性能。
仿真在当今安全和鲁棒自动驾驶系统的开发中起着重要作用。与现实世界中的数据收集和测试相比,仿真可以很容易地收集大量的标记数据和环境交互,而现实世界的数据收集与测试既昂贵又耗时。在深度学习时代,它允许生成大量的训练数据,为自动驾驶系统的训练模型铺平了道路。
仿真越来越擅长渲染彩色图像,例如基于光栅化和先进的基于物理的渲染方法提供逼真的光学特性。虽然仿真能够以高视觉保真度合成图像,但当涉及到非视觉类传感器时,仿真通常依赖于简化模型。这是一个主要的限制,因为当今的自动驾驶系统依赖于大量传感器,特别是像激光雷达这样的传感器是其中大多数传感器的核心[1]。
由于输出依赖于材料反射率、光线入射角和距离等复杂特性,精确的激光雷达建模具有挑战性。例如,当激光遇到玻璃物体时,很少检测到返回。作为机器仿真[2]、[3]的一部分而存在的基本激光雷达模型通常会产生通过光线投射获得的简单点云(如图1的下一行、中一列所示),这些点云无法解释训练基于激光雷达的下游任务和缩小仿真与实际差距的复杂但有用的特性。像CARLA[4]这样的模拟器确实提供了模拟的光线投射,但这仅涉及从激光雷达点云中随机投射点,而无需对材料特性或物理相互作用进行任何建模。有时可以手工制作更先进的传感器模型,但这需要大量的人力来研究单个传感器的特性并准确捕捉环境相互作用。虽然Manivasagam等人[5]已经研究了从真实数据模拟真实的激光雷达观测的想法。但这需要在仿真中复制大型世界场景,并且很难适应新的传感器和场景或现有数据的引导。
本文介绍了一种用于模拟真实LiDAR传感器的数据驱动管道,试图缩小真实世界和模拟之间的差距。具体而言,论文的模型可以学习在预期没有返回的情况下丢弃光线,并仅从RGB外观预测返回的强度。为了避免数据采集和高保真物理建模的复杂性,论文建议使用真实数据并利用RGB图像和LiDAR点云之间的共享统计结构来学习这些特征。
因此,如图2所示,给定RGB图像作为输入,论文的模型输出1)一个指定射线将落在何处的二值mask,2)场景上的激光雷达强度预测。论文将此模型称为光线投射和强度网络(RINet)。然后,这些输出用于增强基础点云,如图1(右下角)所示。与其他激光雷达传感器模拟方法不同[5],RINet不需要在仿真中创建或复制大型真实世界场景。相反可以直接在现有的真实数据集上训练模型,并使用单个模型来预测光线下降和强度。
为了实现这一点,论文建议为LiDAR提供一种新的数据表示,作为对传统range图像的改进。本文的表示通过将LiDAR点云与相应的RGB图像空间对齐,使其密度更高,从而允许模型从RGB数据中学习光线下降和强度,而对于range图像,下降的点云已经从输入中丢失。由于射线可能来自多个源,因此提出了一个目标函数,该函数旨在将特定于材料的射线与随机传感器噪声隔离开来,从而使RINet专注于从外观中学习表面的物理特性。基于此方法来增强从CARLA模拟器获得的LiDAR点云[4],并表明得到的点云比从之前的模拟器获得的点云产生更好的下游任务精度。
论文的贡献如下:
论文提出了一种LiDAR模拟管道,用于使用直接从RGB图像中学习LiDAR特性(如光线下降和强度)的模型来生成真实的LiDAR数据;
论文学习使用Waymo数据集[6]和SemanticKITTI数据集[7]模拟两个不同的激光雷达传感器的特性。然后将这些模型应用于CARLA模拟器生成的LiDAR点云[4];
论文将这些增强的点云用于从LiDAR数据中进行车辆分割的下游任务,并表明该管道生成的数据与现有方法相比,会取得更好的性能!
通过标准自动驾驶系统仿真软件[2]–[4],通常可以获得以下数据:
场景的RGB渲染;
干净点云模拟LiDAR数据,但没有强度,也没有光线下降。
论文的目标是通过以下方式增强此类合成激光雷达数据:
添加真实的强度通道;
去除表面上经常无法返回激光束的点。
论文建议以数据驱动的方式实现这一点,使用具有RGB+激光雷达数据和两个传感器的相对位姿的真实世界数据集。因此,给定一个真实的数据集,训练一个网络,以仅基于RGB图像的外观来预测场景的哪个部分将返回激光束和相关的强度值。如同在CARLA中一样,传感器噪声只需通过随机移除一小部分均匀采样的点云来模拟。
因此,论文的主要任务定义为使用卷积神经网络(CNN)学习从RGB外观到LiDAR光线投射和强度的映射。首先需要将两种模态与一个共同的2D空间表示对齐,在该表示中可以学习这种映射,接下来将对此进行解释。
以前的方法使用range图像作为输入来训练CNN,以学习LiDAR传感器特性,如光线下降[5]或强度[12]。然而,这种表示不容易从外观学习光线投射,因为输入数据中已经没有缺失的点云。例如,图3(a)中右车的车窗不提供任何激光返回。学习在这样的表面上放置点云(如[5]中所述)需要对其进行修复,以创建一个没有丢失点云的表示。这相当于进行3D场景重建或修复——论文希望避免的预处理步骤。此外,与RGB图像相比,range图像(标准64通道LiDAR传感器为64行)的有限空间分辨率限制了标准CNN架构仅提取粗糙特征。
因此,论文学习RGB相机空间中的LiDAR传感器响应。如图3(c)所示,将激光雷达点云直接投影到RGB空间会产生不适合CNN的稀疏表示。此外,RGB图像上重投影的激光雷达点云的精确位置取决于它们到传感器的距离(见图3(c))。因此,预计从RGB图像预测稀疏LiDAR点云的覆盖的网络将推断场景的几何结构。论文希望避免这种情况,因为进行光线投影操作的模拟软件已经可以完全处理场景几何。
为此,论文在RGB空间中稠密化LiDAR点云。通过检测提供激光返回的三重点来实现这一点,这些点是range图像中的相邻点。然后,所有这些三元组的相机空间重投影都与一个三角形相连接——有效地对应于range图像上相邻的激光雷达点云的网格。这产生了图3(d)所示的密集二值mask,其中range图像中的空(方位角、仰角)位置转换为孔洞。在该二值mask上,论文使用投影点云强度之间的双线性插值来获得密集强度通道,如图3(e)所示。论文将二值mask和强度通道的这种组合称为密集强度mask。
在下面,我们将场景的RGB图像表示为I,密集强度mask表示为M,0表示没有LiDAR点云。M实际上与I对齐,这允许轻松学习RGB外观和LiDAR传感器响应之间的相关性。如下文所述,该数据表示允许直接监督CNN,以预测光线下降和强度,而不涉及复杂的重建管道。
本文构建了一个卷积神经网络模型,用于从RGB图像中预测光线下降和强度,称之为RINet。根据RGB图像I,RINet预测了一个双通道数组,其中通道分别对应于两个预测:光线下降和强度。
第一个通道用于监督Raydrop上L1损失的网络:
根据Lehtinen等人[31],对噪声数据应用L1损失可以恢复中值的先验,并在存在噪声的情况下实现鲁棒训练。在本文的例子中,它允许滤除随机光线下降的影响,并仅预测激光束大部分时间不会返回传感器的表面。第二个通道用于在回归强度值上具有L2损失的情况下监督网络。我们遮蔽光线下降的像素:
整体损失如下:
最终的预测mask是阈值化的光线下降掩模和强度掩模的乘积:
基于虚拟引擎或Unity的现有模拟引擎(例如CARLA[4]、AirSim[2]等)提供场景的渲染RGB图像以及通过简单光线投影获得的LiDAR点云。RINet使用RGB图像来预测真实的激光雷达,如光线下降和强度。将干净的光线投射点云投影到相机空间,应用等式(3)的变换,并投影回点云空间。根据需要,然后可以将这些点云组合成range图像。因此,图2(b)描述了在最小侵蚀的情况下,如何利用现有模拟数据生成管道的最佳部分来增强LiDAR传感器模拟的真实性。
论文使用两个数据集来训练RINet模型,每个数据集产生一个不同的LiDAR模型:Waymo Perception数据集[6]和SemanticKITTI[7]。这两个数据集都提供了从城市环境中驾驶的汽车捕获的成对RGB和LiDAR帧序列。表一列出了数据集的一些相关细节。训练RINet只需要时间同步的RGB和LiDAR帧。在基于Zhu等人[32]的代码的实现中,RINet使用全卷积残差块[33]和实例归一化层[34]。论文使用Adam优化器[35],从2e-2的学习率开始训练30个epoch并且在最后10个epoch期间将其线性地减小到0。
使用上述管道将训练后的RINet模型应用于CARLA的点云之上,为下游任务提供激光雷达训练数据。论文为Waymo的传感器配置生成34k对RGB和LiDAR帧,为SemanticKITTI生成40k对,对应于7或8个不同CARLA环境的4-5k帧。论文注意到,CARLA允许根据用户的需要设置传感器位姿和视野等参数。因此,为了最小化真实数据和合成数据之间的域差距,当生成与每个数据集的LiDAR相对应的合成数据时,论文调整相机和LiDAR在CARLA中的位置和视场,以近似匹配其真实对应物的设置。
鉴于RINet模型可以被训练来模拟不同的激光雷达传感器,论文为每个真实数据集训练一个传感器模拟器:Waymo和SemanticKITTI。如图4所示,仿真网络选取高度反射的表面(如车牌),并预测透明表面(如车窗)上的无返回。请注意,根据设计,由于等式(1)的L1监督,预测的mask上没有传感器噪声。真正的mask会显示随机分布的孔洞。
在图5中,论文展示了基于相应RGB输入的RINet对原始合成LiDAR数据的转换效果的定性结果。尽管在输入RGB图像中引入了域间隙,但仍保留了LiDAR点云的主要特征。继CARLA[4]之后,论文还通过随机掩蔽45%的点云来模拟传感器噪声,从而破坏这些range图像。
论文进一步转向使用以上述方式生成的增强合成数据来训练LiDAR分割网络。标签可以在仿真环境中免费获得,从而降低标注成本。
论文使用Milioto等人[19]的带有RangeNet21主干的range图像分割网络。遵循最初的训练步骤,并在真实数据上进行测试。论文在Waymo和SemanticKITTI的测试集上报告了他们的车辆IoU性能,其中包括LiDAR数据点云的语义标注。该度量被用作量化合成激光雷达样本与真实样本之间的相似性的代理,并作为其训练有用性的直接度量。请注意,由于论文对裁剪range图像进行训练,并对单个目标类进行监督,因此指标低于公共基准测试。
仅对训练合成数据:对于两个传感器(Waymo和SemanticKITTI)中的每一个,论文仅在CARLA合成数据上训练车辆分割网络,并在真实range图像上进行测试。合成range图像要么通过论文的方法(Ours)增强,要么通过简单地以0.45的概率丢弃随机点云(仅限噪波),要么保持为干净的光线投射点云(Vanilla)。表二展示了论文方法与随机丢弃点云相比的优越性。仅使用合成LiDAR数据训练车辆分割网络,并在2个真实数据集上进行测试。与上述两种方法相比,提高了性能,该方法本身优于原始未破坏数据(Vanilla)。Vanilla和Ours的样本分割结果如图6所示。
在合成和真实数据上共同训练:然后,论文转向使用合成数据和真实数据的混合来训练这两个传感器。除了CARLA合成range图像,论文还添加了1、5、10、25、50或100%的真实训练数据集。请注意,这些子集意味着Waymo和SemanticKITTI的合成数据与真实数据的比率不同。图7显示了完全增强方法(Ours)、无随机光线下降(Ours-no noise)、CARLA的默认光线下降(仅限噪声)和仅限真实数据(仅限真实)的结果。论文的方法始终优于CARLA的默认raydrop,Waymo的平均IoU为+2.1%,SemanticKITTI的平均IoU为+5.7%。
与仅使用真实数据的训练相比,论文的方法取得了更高的IoU,尤其是在较少数据状态下。例如,用合成的range图像增强25%的真实训练数据比仅用50%的真实数据进行训练得到更高的IoU。这表明,合成的range图像可以帮助保持高性能水平,同时减少标注成本和标注工作。当使用100%的真实训练数据并用合成range图像进行补充时,性能也得到了提高,进一步证明了增强过程的相关性。
图7还强调了增强过程的两个组成部分都是有用的,因为使用论文的完整数据管道(Ours)训练的网络总体上比使用其每个组成部分表现得更好。事实上,在大多数情况下,单独使用数据驱动增强(Ours no noise声)或随机噪声(Noise only)会产生较低的IoU。
强度是否有效?表III显示,在真实range图像上训练的CNN得益于能够访问强度通道。在Waymo range图像上训练的具有强度通道(Real)的分割网络比不具有强度通道的分割网络(Real,无强度)表现得更好。表IV展示,在论文的管道增强的合成range图像上训练的网络也是如此。在Waymo数据上进行测试时,使用强度通道(Ours)在合成range图像上训练的分割网络比不使用强度通道的分割网络(Our,无强度)表现更好。当传感器模拟器不受等式(2)的强度监控时,IoU的掉点更大。
我们的数据表示更好吗?为了测试LiDAR数据upscaling与相机空间的相关性,论文在两种合成range图像上训练车辆分割模型,并在真实的Waymo数据上进行测试。在第一种情况下,仿真管道预测的激光雷达数据用于监督下游模型。在第二种情况下,仿真网络是像Vacek等人[12]那样直接在range图像上训练的CNN,没有稠密化。为了隔离网络对生成真实数据的贡献,论文不添加随机光线下降噪声。实验结果如表V。
理想的噪声量是多少?在上面的实验中,论文使用CARLA的默认值p=0.45作为在合成range图像上随机丢弃点云的概率,以模拟传感器噪声。在表VI中展示了基于论文的管道和仅噪声损坏的合成数据训练的车辆分割网络的结果,Waymo和SemanticKitti的p值不同。
论文介绍了一种管道,用于模拟真实的激光雷达特性,如给定单目视觉输入的光线下降和强度。具体地说提出了RINet,该模型学习了对激光雷达光线投射进行建模,并仅从RGB外观预测强度。还提出了一种新的数据表示方法,该方法可以在RGB图像空间中稠密化LiDAR点云,允许同时预测光线下降和强度,同时依靠基本模拟器通过简单的点云提供深度信息。论文通过对Waymo和SemanticKITTI数据集中使用的两个不同的激光雷达传感器进行建模来评估RINet,以增强CARLA模拟器生成的激光雷达点云。实验表明,通过RINet的管道可以使用任何现有的真实数据集来建模激光雷达的光线下降和强度,而无需重新建模真实世界场景,如Manivasagam等人[5]。通过一个来自LiDAR数据的车辆分割下游任务示例,结果表明,与当前仿真生成的普通点云相比,通过RINet的管道增强的数据可以得到更好分割结果。
进一步,论文确定了未来工作的几种途径。当前方法的一些扩展包括使用360度图像(当可从真实数据集获得时),以能够模拟整个点云的特性,而不仅仅是面向前方的区域。同时,论文计划研究放大生成的合成数据量的效果。类似地还希望研究从RGB图像序列中学习的效果,以更好地建模可能是LiDAR输出的一部分的任何时间效应;以及与均匀采样相比更先进的建模传感器噪声的方法。目前,RINet仅对RGB到LiDAR的映射进行建模,通过未来的工作,这可以扩展到更多模式的设置,在RGB数据不足的情况下(例如,夜间场景),可以利用其他传感器数据。此外,论文还设想创建一个单一的激光雷达仿真模型,该模型可以对来自多个不同传感器的属性进行编码,并且可以在推理时进行调整,以生成特定类型的激光雷达数据。可以利用各种神经网络推理优化技术[36]、[37]来减少RINet在模拟管道中的计算开销。最后,由于RINet是基于真实数据进行训练并部署在模拟器中,因此可以通过域适应训练技术或精细的数据增强来提高其准确性。
往期回顾
纯视觉3D检测综述!一文详解3D检测现状、趋势和未来方向!
【知识星球】日常干货分享
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;
加入我们:自动驾驶之心技术交流群汇总!
自动驾驶之心【知识星球】
想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!