本文已参与「新人创作礼」活动,一起开启掘金创作之路!
作者 | hlhsugoi 编辑 | 汽车人
原文链接:zhuanlan.zhihu.com/p/437352521
点击进入→自动驾驶之心技术交流群
后台回复【ECCV2022】获取ECCV2022所有自动驾驶方向论文!
基于球型目标的自动激光雷达和相机外参标定
摘要:考虑球体在点云和图像中很容易被检测到,本文提出了一种基于球形目标的激光雷达和相机外参标定方法,结果表示本算法快速有效。(本文作者一直执着于基于球体的标定.....不同形状目标的创新主要在于形状拟合)
一、Introduction
激光雷达互补经常组合,需要标定,因此本文研究了激光雷达相机系统的外参标定问题。
近年来,关于相机和激光雷达标定的方法有很多。在线标定方法的目的是在设备使用过程中估计外参,而离线标定方法是事先进行标定。在线方法使用公共环境的特性,如边缘和特征点[5],[6]。离线标定方法使用已知几何形状的标定目标,获得更精确的结果。最近的研究使用不同的平面或空间目标对象进行校准。平面板比较流行起来。具体来说,Geiger等人[7]使用多张棋盘格。Alismail等人[8]使用平面标定对象与黑色圆形区域和标记的中心。帕克[9]等人应用白色平面三角形或菱形板进行校准。Vales等人[10]使用了一个在白色背景前包含四个圆孔的平面物体。空间对象也可以用于校准,Pusztai等人[11],[12]和Gong等人[13]都捕获了来自三面体对象的数据。前者平面计算LiDAR数据中边缘的交点,并计算方框的角。后者多面体需要对相同的物体进行多次扫描,并需要大量的人工干预。基于平面板的边界估计方法的主要缺点是边界在稀疏情况下难以估计激光雷达点云。因此,三维标定目标在这方面具有优势。基于多面体的方法的问题是,需要手动选择三面体角的投影,因为它们可以以任何形式出现在相机图像中。目前文献中还没有针对这一问题的鲁棒性自动检测算法发表。
后面也提出了用球体来标定相机[14]、[15]、[16]。与平面物体(如棋盘)相比,基于球体的标定可以实现自动检测(因为球体的轮廓不明显依赖于相机的视点)。此外,球形物体的采样点可以在LiDAR点云[17]上检测到。因此可以选择球体作为校准目标。SoA工作[18],[19]并没有利用这个校准目标的所有优势和潜力(球体图像为椭圆,球心过图像圆心)。许多论文处理改进RGB-D相机校准[20],[19],[21]。球体的图像是一个圆锥截面,更确切地说是一个椭圆。[18]仅基于圆而不是椭圆估计,没用到这个优势。球体投影的另一个未使用的有利性质是椭圆的主轴穿过图像的主点。当圆锥曲线在图像[19],[21],[23]的主点上是一个圆时,一些方法使用反投影方法从一般情况变成特殊情况,相当复杂,需要更多的计算量,给出了一个不准确的解。
本文的主要贡献有两个方面:(1)揭示了在图像中检测椭圆轮廓时如何估计空间球面中心(2D到3D位置的估计,对应IIB)(2)我们提出了一种新的自动校准激光雷达相机设备。本文只关注两个传感器的标定,但所提出的算法可以直接应用于多传感器的设置,可以对任意数量的摄像机和激光雷达设备进行标定。
综述中的不同目标
二、所提算法
所提出的标定方法包括三个主要步骤:(i)点云中的球中心检测,(ii)从图像中估算三维球中心,(iii)相对姿态计算。后一种过程需要至少四个球体来估计相机和激光雷达之间的刚性变换。接下来的三个小节介绍了提出的算法的数学背景。我们的主要贡献是相机图像和点云的中心估计算法。整个算法流程如下所示。
A.雷达点云的球体中心估计(典型的基于优化的球拟合)
准确、鲁棒的点云球体检测是目标物体中心估计的关键任务。利用随机抽样一致性(RANSAC)[24]检测内部点,并在迭代[25]中应用快速最小拟合方法。在确定最大的内联集后,使用Eberley[26]方法的修正版本重新拟合模型。这是基于最小化最小二乘误差。设[x0, y0, z0]T为空间球面中心坐标,r为半径。误差函数定义为表面点到球体中心的估计距离与实际距离之差:
为了使误差E最小,E对x0, y0, z0,r的偏导数应为0,得到:
整理可得:
将r代入前三个方程后,通过定点法估计球的中心坐标,上式是迭代的第一步。在Eberley[26]的原始方法中,偏移值是这些点的重心。然而,在激光雷达点云的情况下,由于自遮挡,这是一个不准确的估计。因此。偏移球中心是随机选取四个内联点估计的球中心的中值。这将给出一个更精确、更可靠的结果。优化步骤一直运行到收敛。估计的球体半径r被用作图像算法的球体中心估计的输入,如第II-B.4节所述。
B.相机球心估计(基于3D半径根据图像中椭圆和空间性质计算3D球心)
本小节的第一部分给出了摄像机参数、球参数和摄像机图像中检测到的椭圆方程系数之间的一致性。剩下的部分包含了我们球面中心估计方法的主要步骤。这个过程基于我们以前出版的工作之一[27]。
1)球体投影的理论背景:
认为摄像机已标定,因此固有参数是已知的,K表示摄像机矩阵。坐标系统与摄像机对齐。它是用来确定球体在相机图像中的投影。图像中的一个像素可以表示为一个二维向量[u, v]T。在我们的测试中,我们发现,如果使用K的逆求归一化坐标,估计的椭圆参数更稳定,图像归一化坐标计算为:
又有:
写成二次项形式
当射线与球面相切时,方程在球面边界处只有一个根。因此,二次方程的判别式等于零:
这个式可以重写为:
ps:下图为为什么是椭圆解释
2)图像椭圆检测
第一个任务是检测椭圆的内层点,并估计Eq. 7中定义的系数。应用球体的一个主要优点是它们可以自动地被检测为一个特殊椭圆[28]的轮廓。通过对标准Canny[29]边缘检测结果进行阈值化,选择候选椭圆轮廓点。然后,应用RANSAC[24]来选择在图像中形成椭圆的边。圆是轮廓的一个很好的近似值。进一步观察(III-B)的“价值系数A和C几乎相等,B是接近于零的确认我们的方法,可以检测出椭圆的圆与更高的误差阈值,因为如果= C和B = 0,二次曲线方程是一个圆。因此,RANSAC只需要3个样本点。此外,边缘的方向应该指向圆曲线的切线。在我们的RANSAC模型拟合过程中也利用了这一特性。最后,利用Fitzgibbon等人的直接椭圆拟合方法,从候选椭圆轮廓点估算出二次曲线的系数。
3)初始球中心估计
椭球到三维空间变换有一个尺度信息未知,因此引入一个尺度因子,把椭圆方程两边都乘以a,根据7可以得到:
即可得到球心的大致估计。
4)优化球中心估计
在现实中,噪声使得系数不准确,列写超定方程:
一般可以写成Hx=y,其中H为系数矩阵,x为包含未知变量多项式的向量,y为包含比例椭圆系数的向量。注意,r是已知的,从激光雷达数据中估计得来,也可以从校准对象中测量。
估计可以表示为非线性最小二乘问题,用LevenbergMarquardt算法求解。参数的初始值来源于初始球心估计的结果。球面中心o坐标系的精细化值由以下代价函数最小化得到:
C.相对位姿变换估计
球体中心是根据上述激光雷达点云和相机图像估计的。从而得到空间坐标。让我们分别用pL和pc表示相机和LiDAR设备的第i个球体的中心。然后通过点配准得到相机与激光雷达坐标系之间的刚性变换。需要最小化的函数如下:
解方程算法:(1)通过选择两个点集的重心作为原点,可以消除平移 (2)SVD分解算旋转H=USVT
三、实验
本节描述用于比较的所选SoA方法以及合成测试序列和实际测试序列的结果。在Blensor[32]传感器仿真包中创建的虚拟场景包含一个摄像头和一个激光雷达。以及被测方法所需的校准对象。综合测试的优点是可以定量比较竞争对手的技术。在现实世界的测试中,外部参数的质量是通过比较激光雷达点云对相机图像的再投影来评估的。
A.方法对比
我们选择了三种不同的方法来与我们提出的方法进行比较。
(1)KITTI工具包:使用几个棋盘对相机和激光雷达传感器进行外部校准。在摄像机图像中分别检测棋盘,并确定摄像机的外部参数。使用外参,通过匹配图像中对应的棋盘角来重建棋盘角。通过估计每个数据点在其球形区域内的法向量,在激光雷达点云中检测棋盘的平面。最后,根据相机图像重建的棋盘平面与激光雷达点云检测的棋盘平面的对应关系,给出了器件的外部参数。然而,平面之间的平面匹配过程可能是模糊的,并可能产生一些错误的匹配。(面面误差)
(2)Park等人提出的多边形方法是基于白色三角形或菱形平面目标的检测。大多数校准方法都很难在激光雷达点云中找到物体的边缘,Park等人[9]通过引入位于两个连续激光雷达点之间的虚拟点来克服这个问题。对虚拟点拟合直线,计算标定对象的角点。最后,角的投影是从FAST特征,PnP问题是由3D到2D定义。这种方法的主要缺点是,平面的激光雷达点的选择和相应的FAST特征都必须手工完成。
(3)由Pusztai等人提出的BoxCalibration方法[11],[12]提出了从三个垂直的平面进行校准,例如一个盒子。采用连续RANSAC、[35]离群值滤波和线性回归,在激光雷达点云中自动检测出平面。然后,从已知的物体大小计算盒子的角。盒子角落的投影需要在相机图像中手动选择。最后,定义了相机与激光雷达的点对应关系,并将外部标定问题简化为PnP,通过E-Pnp,该方法对箱角进行了精确计算,具有较好的精度。然而。相机图像中的方框角的选择需要手工完成,方框的大小需要测量。(多面体)
B.仿真结果
在Blender中创建仿真黄金,使用Blensor [32] LiIDAR仿真包。测试图像的结果是1920 x 1080。我们将提出的方法与三种并行方法进行比较,同时将噪声添加到LiDAR点云中。设置场景包含一个数码相机和一个Velodyne HDL-64E2 LiDAR设备。
首先对方法进行了加性高斯噪声测试。均值u在0.00 - 0.08米之间变化,加之标准偏差为o =0.02的高斯噪声。这个场景可以解释为测试对象从LiDAR中移开。然后使用零均值高斯噪声(0.00米-0.10米)。测试场景包括5个棋盘、5个多边形板、1个盒子和4个球体用于KITTI、多边形盒标定,以及分别提出的方法。
首先,将球面中心估计方法与真值GT数据进行了比较。在表II和IIl中分别列出了激光雷达和相机估算球心时不同测量值的平均误差和标准差。在合成测试中,这些球位于距离传感器15-20米的地方。表III显示,即使初始估计平均误差为1 m,最优球心估计将误差降低到仅1-3 cm。最显著的距离误差综合测试也证实了我们对椭圆系数值的期望,它允许搜索如第I1-B.2节所述,在圆附近的一个球体投影的内嵌点。
标定方法的误差是通过估计的外部参数与GT数据之间的差异来测量的。平移误差由GT与估计的平移矢量之差的欧几里得范数给出,图3为综合测试结果。左列和右列分别包含平移误差和角度误差。上面一行是对变化的高斯均值的误差,下面一行是标准差的误差。该方法在噪声均值改变时性能优于SoA方法,在标准差增大时性能优于SoA方法。
C.真实世界测试
实际测试使用Velodyne的VLP-16激光雷达和iCube NS4133CU相机进行,分辨率为1280 x 1024,配备窄镜头。四个不同的场景被设备捕获,其位置是固定的,因此,外部参数在测试期间保持不变,每个场景包含必要的校准对象的竞争方法。类似于合成测试。标定对象为半径为30.00 cm的球体。实际测试结果证实了激光雷达数据估算球体半径的准确性,因为所有测试用例的平均输出值为30.53 cm,标准差为1.45 cn。这些方法的定量比较对于真实世界的测试是不可能的。因此,通过使用估计的方法参数将部分激光雷达点云重新投影到相机图像,在视觉上进行比较。如果外部参数准确,则重新投影的激光雷达点覆盖其对应的像素,否则,重新投影将发生位移。再预测的变化越多,说明外在因素的准确性越低。
图4给出了实际测试的结果。红色的圆圈是KITTI校准场景的重新投影,它使用棋盘。多边形和KITTI定标方法的漂移比Box定标方法和提出的定标方法的漂移更明显。这意味着外部物质的质量较低。重新投影的盒子校准似乎更准确。然而,提出的方法仍然比其他方法表现得更好。从本质上说,尽管完全自动化流程存在缺陷,但所提议的方法在实际测试中给出的结果与最佳SoA方法相似。
D.运算时间
就运算时间而言,本文算法的瓶颈是基于ransac的球面和椭圆拟合(详见II-A节和II-B.2节),主要取决于RANSAC的迭代次数。即使在最坏的情况下,也不会超过几分钟,这与基于表I的其他全自动方法相媲美。本文提出的校准算法其他部分只包含基本的和快速的算法,他们的时间要求低于一秒。
四、结论
介绍了一种新的自动标定方法。它使用球体来进行激光雷达和相机校准。根据激光雷达点云和图像分别计算球体的中心。在激光雷达点云中。采用RANSAC和LSQ回归算法对椭圆中心进行鲁棒性确定。采用Edee检测方法对相机图像中球体的轮廓进行检测,然后将椭圆拟合到边缘点上。球的中心由椭圆参数确定,因为球的大小是已知的。Ultümately时,激光雷达和相机对的外部参数通过点配准得到。该方法在合成数据和真实数据上都进行了测试。我们的方法最大的优点是它是全自动操作的。实验结果表明,该方法与现有的SoA方法相比具有较强的竞争力,并且在大多数情况下实现了较低的错误率。实际测试结果表明,所提出的校准方法优于其他校准方法。
【自动驾驶之心】全栈技术交流群自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D感知、多传感器融合、SLAM、高精地图、规划控制、AI模型部署落地等方向;
加入我们: 自动驾驶之心技术交流群汇总!
自动驾驶之心【知识星球】想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D感知、多传感器融合、目标跟踪)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!