绝了!多个激光雷达和相机的快速且鲁棒的外参标定方法(代码开源)
文章;Fast and Accurate Extrinsic Calibration for Multiple LiDARs and Cameras
作者:Xiyuan Liu , Chongjian Yuan , and Fu Zhang
编译:点云PCL
代码:https://github.com/hku-mars/mlcc.git
来源:arXiv 2021
本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。内容如有错误欢迎评论留言,未经作者允许请勿转载,欢迎各位同学积极分享和交流。
摘要
在这篇文章中,港大提出了一种基于自适应体素化的快速、准确、无目标的多激光雷达和相机外参标定方法。在理论层面上,将激光雷达外参标定与捆集调整方法相结合。我们推导了代价函数的二阶导数作为加速优化的外参求解,在实现层面,我们采用自适应体素化技术,将激光雷达点云动态分割成大小不等的体素,减少了特征匹配过程中的计算时间,在多个激光雷达相机配置下的室外测试场景中进行了实验,验证了该方法的鲁棒性和准确性。
图1:使用提出的方法优化的激光雷达位姿和外参实现的的稠密彩色点云。
介绍
越来越多的移动机器人使用多个激光雷达和相机进行自主导航和测绘等任务,这是由于激光雷达在三维距离探测和点云密度方面的优越特性,以及来自相机的丰富颜色信息。多个传感器的集成有助于机器人的状态估计,同时产生一张稠密的彩色地图。为了更好地感知周围环境,有必要将多个传感器的感知转换为同一坐标系,即了解每对传感器之间的刚性转换。
在这篇文章中,我们的工作涉及多个激光雷达和相机之间的外参校准,在多传感器外参标定中存在几个挑战:
(1)传感器之间的有限的重叠视野(FoV),当前的方法通常要求每对传感器之间存在公共视野,以便所有传感器都能看到每个特征。然而,这种FoV重叠可能非常小,甚至不存在,这使得这些方法不太实用。
(2) 计算时间要求,对于一般的基于ICP的激光雷达外部标定方法,外参校准通过对齐所有激光雷达的点云并最大化点云的一致性进行优化。激光雷达数量的增加意味着特征点对应搜索将更加耗时。这是因为每个特征点都需要使用包含整个点云的k-d树来搜索并匹配附近的特征点。在激光雷达相机外参标定中,激光雷达点的数量越多,特征提取的计算时间也越长。
主要贡献
为了应对上述挑战,本文提出了一种针对多个激光雷达和相机的快速无目标外部校准方法,为了在所有传感器之间创建共同可见的特征,我们将运动引入传感器平台,以便每个传感器在不同的时间扫描相同的区域。首先使用一种有效的捆集调整(BA)方法配准激光雷达的点云,从而校准激光雷达之间的非本征点云。为了产生多视图对应,我们实现了自适应体素化,将点云动态分割为多个大小不同的体素,由于每个体素中只存在一个平面特征,该过程大大减少了特征对应匹配的时间消耗,然后通过匹配图像和上述重建点云之间的共可见特征来校准相机和激光雷达之间的外参。为了进一步加速特征对应匹配,我们继承了上述自适应体素地图来提取激光雷达的边缘特征。此外,我们利用点云的深度连续边缘特征来避免前景膨胀和断点问题。综上所述,主要的贡献如下:
(1)将多激光雷达外参校准问题转化为BA问题,并推导了代价函数的雅可比矩阵和Hessian矩阵。实现激光雷达之间的外参求解过程的加速与优化。
(2)实现自适应体素化,以加速特征对应匹配和激光雷达深度连续边缘提取的过程。
(3)提出了一种快速、可靠、无目标的多激光雷达和摄像机外参校准方法,可以在传感器之间几乎没有FoV重叠的情况下进行外参校准。
(4)提出的方法的精度和鲁棒性与基于目标的方法相当,并已在室外测试场景中得到验证,并在GitHub上开源了方法。
为了在多个激光雷达和相机之间创建可能没有FoV重叠的共视特征,我们将机器人平台旋转到m个姿势,以便所有传感器扫描相同的感兴趣区域(见图2)。
图2:两个相对方向的传感器之间通过旋转产生的重叠视场。两个传感器Li和Lj/Ck的原始设置没有FoV重叠。随着旋转运动的引入,所有传感器在不同时间扫描获取同一区域相同特征。
自适应体素
为了找到不同激光雷达扫描点之间的对应关系,我们假设初始基础激光雷达轨迹S、激光雷达外参EL和相机外参EC可用,初始的激光雷达轨迹S可通过在线激光雷达SLAM获得,初始外参的轨迹可通过CAD设计或粗糙手眼校准获得。从每个激光雷达扫描中提取边缘和平面特征点,并通过k-最近邻搜索(kNN)将其与地图中附近的边缘和平面点进行匹配。这将在每次迭代中重复构建全局映射的k-d树,在这篇文章中,我们使用论文[3]中提出的更有效的体素地图在所有激光雷达之间创建对应关系。
体素地图是通过将点云(使用当前的轨迹S和外参EL配准)切割成小体素来构建的,这样体素中的所有点大致位于一个平面上(具有一些可调整的公差)。固定分辨率体素地图的主要问题是,如果分辨率较高,分割将非常耗时,而如果分辨率过低,环境中落入同一体素的多个小平面将无法分割。为了更好地适应环境,我们实现了自适应体素化过程。更具体地说,首先将整个地图切割成具有预设大小(通常较大,例如4米)的体素,然后,对于每个体素,如果所有激光雷达扫描数据的包含的点大致形成一个平面(通过检查特征值之间的比率),则将其视为一个平面体素;否则,它们将被划分为八个体素,再次检查每个体素,直到包含的点大致形成一个平面或体素大小达到预设的最小下限。此外,自适应体素化直接在激光雷达原始点上执行。
图3 显示了复杂校园环境中自适应体素化过程的典型结果。可以看出,此过程可以分割不同大小的平面,包括地面上的大平面、建筑墙上的中平面和树冠上的小平面。采用自适应体素化分割的激光雷达点云,相同体素内的点的颜色相同,初始体素化的默认大小为4m,最小体素大小为0.25m
多激光雷达外参校准
通过自适应体素化,可以获得一组不同大小的体素,每个体素包含大致位于平面上的点,并为在该体素中具有点的所有激光雷达姿势创建平面约束。如图4(a)所示。然后,通过对因子图的优化,估计出激光雷达的外参数,将该优化问题表述为(这部分推导公式比较多,有兴趣的可查看原文)
激光雷达与相机外参校准
使用校准的激光雷达外参EL和轨迹S , 可以在全局范围内获得稠密的点云地图,利用生成的全局点云可以通过匹配点云和图像的边缘特征来找到最佳的外部EC。
从点云和图像中提取两种类型的边缘,一种是前景和背景对象之间的深度不连续边,另一种是相邻两个非平行平面之间的深度连续边。深度不连续边缘会受到前景膨胀和断点现象的影响,因此我们使用深度连续边缘来匹配点云和图像。同时将点云分割为大小一致的体素,并通过RANSAC算法估计每个体素内的平面,然后,对于每两个相邻的体素计算其包含平面之间的角度,如果此角度超过阈值,将提取这两个平面的相交线作为深度连续边。
图5:深度连续边缘提取比较,A) 真实世界的图像。B) 此场景的原始点云。C) 提取的边缘,其中黄色圆圈表示错误估计。D) 通过自适应体素化提取边缘。在这个场景中,边缘提取的时间消耗为38s,而我们提出的方法为5s。
如图5所示,我们的方法可以有效地消除错误估计并节省计算时间,对于图像边缘提取,我们使用Canny算法,为了进一步加快校准过程并避免错误匹配,我们进行了FoV检查,确保仅使用当前相机FoV内的深度连续边,通过将激光雷达边缘投影到具有当前外部估计的图像平面上,建立了激光雷达边缘和相机边缘之间的对应关系,然后,我们通过最小化图像平面上点到边距离的残差来优化外部参数。
标定流程
本文提出的多传感器校准工作流程如图6所示,在标定开始时,激光雷达的原始点云通过LOAM进行处理,以获得初始激光雷达轨迹s。然后将所有激光雷达的原始点云按时间分割为点云面片。
图6:标定流程:多激光雷达外参校准(浅蓝色区域)和激光雷达相机外参校准(浅绿色区域)。自适应体素化在黄线包围的步骤中生效。
在多激光雷达外参校准中,首先使用激光雷达的点云平面优化激光雷达姿态,然后,通过将待校准激光雷达的点云与激光雷达的全局点云地图对齐,校准外部EL,在这个阶段中,轨迹s固定在前一阶段的优化值上,并且只优化EL,最后,使用整个点云面片对S和EL进行联合优化。在优化的每次迭代中(在S、EL或两者上),使用S和EL的当前值执行自适应体素化。在多激光雷达相机外参标定中,用S∗ 和E∗ 上一步中的L用于提取3D深度连续边。然后使用外参数EC将这些3D边反向投影到每个图像上,并与从图像中提取的2D Canny边匹配,通过最小化由这两条边定义的残差,使用Ceres迭代求解最优EC。
实验
为了测试提出的算法,我们定制了一个带有Livox AVIA LiDAR4,一个Livox MID-100 LiDAR5和两个MVCA013-21UC6摄像头,如图7所示。
图7:我们定制的多传感器车辆平台,左:每个传感器的FoV覆盖范围及其FoV规格。右:每个传感器的方向在右手坐标系中表示。
所有实验都是在一台高性能PC机上进行的,该PC机配有i7-9700K处理器和32GB RAM。对于提出的多激光雷达外参校准,我们首先使用“8”字形路径进行标准手眼校准,以获得初始的外部EL,然后我们将我们的多传感器平台旋转360度◦ 并每隔几度保持机器人平台静止,这样我们就可以在每个姿势从每个激光雷达获取足够稠密的点云。在数据采集过程中保持机器人平台静止也可以消除由运动失真和时间同步引起的问题,手动选择时间戳T,仅选择机器人平台静止时的点云和图像数据。
图8:实验场景
A.收敛性和计算时间比较
图9中绘制了两种方法的外参旋转和平移误差与迭代时间的关系,表中总结了两种方法每次迭代的平均时间成本,该工作使外参的平移和旋转误差快速收敛到适当的值。
图9 :提出的方法与以前工作的收敛性进行比较
上述10次试验中两种方法的校准结果如图10所示,这表明我们提出的方法的速度增加不会导致精度损失,考虑到计算时间开销和收敛速度,我们提出的算法可以节省总校准时间至少为以前工作的十分之一。
图10:三个MID-40激光雷达的外参校准结果,每个方框图分别由10次试验和两对激光雷达的20个外参组成。
B 多激光雷达外参标定
两个MID-100激光雷达的外参统计
AVIA与MID-100外参的统计
C 多激光雷达与相机之间的外参标定
图11:每个方框图使用场景2中收集的数据展示了20次试验的结果,初始旋转误差的平均值和标准偏差为2.5390◦ 和1.4203◦ . 初始平移误差的平均和标准偏差分别为0.1389m和0.0778m。
图12:两个测试场景中MID-100和对向相机的外部校准结果,每个方框图显示了20次试验的结果,初始旋转误差的平均值和标准偏差为2.5913◦ 及1.2771◦ . 初始平移误差的平均和标准偏差分别为0.1007m和0.0588m。
通过校准结果和相应图像数据生成的彩色点云如图
总结
这篇文章提出了一种用于多个激光雷达和相机的快速无目标外参校准方法,推导了成本函数的导数,并实现了自适应体素化,大大缩短了总的校准时间,在室外测试场景中的多个激光雷达相机配置下的实验结果表明,即使传感器对之间不存在FoV重叠,提出的方法也具有鲁棒性和可靠性。
接下来博主将对该开源代码进行梳理和分析欢迎交流!