在项目中需要做Lidar-Camera的外参标定。调研了下经典的基于标定板的标定方法,论文名称为《2023-Joint Camera Intrinsic and LiDAR-Camera Extrinsic Calibration》。原文代码地址为:github代码地址
摘要
对于激光雷达与相机的标定,现有的方法一般是先标定相机的本征参数,然后再标定激光雷达和相机的外参参数。如果在标定的第一步没有正确标定好相机的本征参数,则很难对激光雷达-相机的外参参数进行准确的标定。由于相机内部结构复杂,且目前缺乏有效的相机本征参数标定的量化评价方法,在实际标定中,外参参数标定的精度往往会因相机本征参数的微小误差而降低。如下图所示。
针对现有方法的问题,作者提出了一种基于目标的相机内参与激光雷达-相机外参联合标定方法。设计了一种新的标定板图案,在棋盘格周围添加四个圆孔,用于定位激光雷达位姿。然后,在棋盘格和圆孔特征的重投影约束下,设计了一个代价函数,用于求解相机内参、畸变因子以及激光雷达-相机外参。
相关工作
外参标定用于估计不同传感器坐标系之间的刚体变换。根据辅助设备的要求,外参标定可分为两类:基于目标(target-based,基于各类标定板)的标定和无目标(target-less)的标定。其中,无目标方法通常利用场景中的自然环境特征(例如线条),通过求解几何约束来推导出外参。
论文里提出的target-based的标定方法的整体流程图如下:
1. 校准目标的设计
标定目标设计的关键因素如下,基于这些关键因素,作者设计了上图2所示的标定板。
a. 只要点云与图像的配准精度越高,标定的内外参数就可以认为越准确。
b. 好的标定目标应满足以下特性:(i)可在所有相关传感器中检测到;(ii)可提取用于定位的可观察特征。
c. 基于激光雷达和相机的工作原理,点云的边缘、图像中的角点等深度不连续特征因其能够准确且稳健地检测而被广泛用作校准特征。
d. 圆形目标比矩形目标更易于检测,因为它们可以与水平和垂直方向上的多个 LiDAR 扫描交互,而不会丢失边缘信息。
2. 校准目标的检测
基于目标的校准的第一步是在每个传感器帧中定位校准的空间位置。LiDAR 传感器返回 3D 位置,而相机返回目标的彩色 2D 图像。作者采用了OpenCV 库进行棋盘格检测。对于 LiDAR 数据,作者通过生成点云 来定位每个孔的中心,该mask具有与校准目标相同的几何结构。首先通过带有方向约束的RANSAC平面拟合分割出校准目标平面
。之后,我们按照[24](待补充)中描述的网格搜索方法,在LiDAR坐标系
中找到
和
的最佳匹配。这里我们不是在6自由度上搜索,而是关注相对于校准板平面的yaw角(旋转)和x、 y(平移)。
图4展示了匹配过程的原理,在完全对齐的情况下,最少数量的点会落入圆孔中,从而可以确定每个圆孔中心在中的三维位置。我们的方法只需要三维点云的坐标,无需使用额外的强度和环ID信息,生成的掩模固定了圆孔之间的相对位置,大大提高了中心检测的鲁棒性和准确性。最终,每个标定板都可以获得LiDAR坐标系下四个圆孔的中心点。
标定数据采集过程与相机本征标定数据采集类似。如图11所示,为保证标定精度,需要在图像的每个区域采集棋盘格角点特征和圆孔特征。实际应用中,可以同时放置多个标定板在不同姿态位置,这样只需采集一帧数据即可完成标定。与无标靶标定方法相比,该方法保证了所有图像区域点云和像素的配准,在保证近点特征配准足够精确的同时,也保证了远点配准的精度。该方案主要用于标定室或产线标定。在标定板环境搭建固定后,可用于大量自动驾驶车辆的激光雷达到相机的本征和外参标定。
3. 联合优化过程
1) 圆心二维点计算:对于提取的LiDAR三维圆心点,需要在图像上获取对应的二维点。首先通过棋盘格角标定相机本征参数K、畸变因子以及标定板-相机本征参数。根据标定板的尺寸,获取每个标定板的四个圆心点
,其中B表示标定板的坐标系。然后通过K和T将变换后的点
投影到相机像平面上。
添加畸变因子后,投影点的实际像素位置为:
2)目标:通过上述过程,获得以标定板上的圆为中心的多组3D-2D点对S。标定目标是通过内在和外在参数将LiDAR点云与相机图像对齐。因此,为了将点云与图像对齐,我们最小化以下目标函数:
其中 、
表示从 LiDAR 到相机的外部参数。
是联合优化前棋盘格计算出的圆心像素坐标(即根据棋盘格方法标定得到的相机内外参以及棋盘格上圆心在棋盘格坐标系的位置,计算得到圆心在图像上的像素坐标)。
是 LiDAR 坐标系中检测出的圆的 3D 点。
3) 约束:上述最小化受一系列约束条件约束。在确保激光雷达与图像对准的同时,还需要棋盘格对相机固有参数的约束。棋盘格角点的三维点位于标定板的坐标系{B}中。对于相机固有参数,约束条件如下:
其中 表示棋盘格坐标系上的各角点
经过投影到图像后的像素坐标点,
是opencv实际检测到的棋盘角点像素点。
4) 非线性解:旋转矩阵使用九个向量来描述三个自由度的旋转,这本身就存在冗余。此外,旋转矩阵必须是行列式为1的正交矩阵。这些约束增加了估计或优化旋转矩阵时的求解难度。表示旋转矩阵的更好方法是使用角轴旋转向量。在我们的实现中,我们提供了一个不准确的初始激光雷达相机外部参数作为初始化,并使用Ceres求解器求解标定优化方程。
实验
作者在下表中定量比较了 LiDAR-camera 外部校准的平均值与地面实况。
实际使用效果
实际使用效果上有几个缺点:
- 需要制作专门的标定板,在车间环境里比较适用,对于项目现场哦的标定需求,实现起来起来比较困难。
- 在远距离下的坐标系转换表现不太好。