在多传感器信息融合技术中,相机和3D激光雷达在其特性高度互补的前提下得到了快速发展和广泛应用。在许多基于相机和3D激光雷达的应用中,相机内参以及相机和3D激光雷达外参的联合标定是后期检测、跟踪和SLAM技术的重要基础。随着算法的更新和迭代,标定的准确性、速度和范围都有所提高,但仍缺乏对相机和3D激光雷达标定的系统和全面的调查。本文首先介绍了两种传感器的性能比较和应用现状;其次,介绍了标定过程、标定目标的选择和标定模型的建立;然后根据分类,介绍了摄像机内部参数标定和联合外部参数标定的原理和算法;最后,总结并给出了相机和3D激光雷达标定的未来发展!
以无人车和机器人为代表的地面无人平台由于其自主性、灵活性和体积小,在侦察、安全检查和防爆任务中具有广阔的应用前景。近年来,出现了许多关于无人平台环境感知和场景理解的研究,在众多关键技术中,获取目标姿态信息是无人平台实现目标感知和环境场景理解的关键前提,如图1所示。
现阶段,大多数无人平台采用“激光雷达+视觉摄像头”解决方案,以实现完整的环境感知。其中,激光雷达在目标表面获得高精度、离散的三维点云数据,受环境影响较小,具有良好的鲁棒性;视觉摄像机可以获得高分辨率、高质量的二维视觉信息,在环境感知和目标检测方面具有很大的优势。由于相机和激光雷达的信息具有高度互补性,融合两者不仅可以克服单一传感器在环境感知方面的缺点,还可以获得更丰富的目标观测数据,提高其环境感知的准确性,如图2和表I所示。
由于激光雷达数据点稀疏,视觉相机分辨率高,激光雷达和视觉相机的联合校准是实现两者融合的基础环节。为了响应激光雷达和视觉相机的联合校准,已经提出了各种标定方法。然而,这些方法大多是根据实际需要进行的,因此没有系统的解决方案,并且缺乏开源校准数据集,各种方法也不统一,很难为研究人员提供明确的参考。在此基础上,本文总结了近年来激光雷达与单相机联合标定的先进标定方法。本文将重点讨论联合标定系统构建、标定板设计、标定参数求解等基本问题,如图3和图4所示。
标定系统的构建
一个典型的标定系统可以分为以下步骤:首先根据要求选择激光雷达、视觉相机和标定板,然后根据一定的方法建立标定目标在不同坐标系中的转换关系,最后求解转换矩阵。其中,标定板的选择、坐标系转换关系的建立、标定方程的求解是关键环节。
图5显示了基于标定板的激光雷达和相机联合标定所涉及的四个主要坐标系!像素坐标系(u,v),相机坐标系,图像平面坐标系(x,y),激光雷达坐标系。
相机和激光雷达的联合标定通常包括两部分:内部参数标定和外部参数标定。内部参数标定主要解决摄像机CCD传感器本身畸变和安装的影响;外部参数标定主要用于建立两个传感器之间的坐标转换方程。如图6所示,这是相机和激光雷达联合校准的流程图!
标定板的选择根据标定对象和提取的特征点而不同,标定可以通过两种方式进行:基于目标的标定或无目标标定。基于目标的标定通常使用特定的标定板以便于算法提取特定的特征点,而无目标标定方法通常直接使用环境中的材料或结构特征来提取和匹配以实现标定,以增加标定的范围和便利,如图7所示。
1)Target-based Calibration
基于目标标定的特点是在标定过程中使用特定形式的标定板。这样,特征点易于捕获,所需算法简单,计算能力小。但缺点也很明显:一是必须在使用传感器之前对其进行标定,而且不能进行实时标定。另一个是二维平面板(如棋盘)需要获得清晰的对应关系,这不仅使得最终的标定精度严重依赖于3D和2D特征点,还需要人工干预!
二维标定板
二维标定板通常取决于特定的标定目标,最常用的是棋盘。张[1]首先提出了一种棋盘标定板,通过具有多个姿态的棋盘来估计二维激光雷达和相机之间的参数。Ranjith Unnikrishnan等人[2]基于Zhang提出的相机和2D激光雷达的标定方法,提出了3D激光雷达和相机外部参数的标定方法,如图8所示。
然而,由于激光雷达的纵向光束之间的距离大且采集分辨率低,很难通过边缘提取来保证精确顶点的精度。Lyu[3]手动调整棋盘在激光点云中的位置,以便扫描线可以扫描到棋盘的顶点,但这将增加标定过程的时间和复杂性。
同样为了解决点云边缘拟合不准确的问题,康国华等人[4]使用点云中心的粗配准来实现点云的整体精细配准。从另一个角度来看,除了输出三维点云的坐标信息,激光雷达还可以带回反射强度信息。[5] 对不同材料的激光雷达反射强度设置阈值,以获得激光雷达点云,并在此基础上设计了一种新的标定板。
ArUco标记是一种特殊的编码模式,便于检测和纠正标签本身的错误。霍尔等人提出了一种用于由多个单元组成的实验装置的校准板。方法[6]使用ArUco标记计算相机坐标系中标定板的角点,激光雷达点提取拟合的边缘线,然后可以计算激光雷达相机的外部参数。在实际应用中,这种方法与棋盘中的激光雷达一样,包括不稳定的边缘提取和线拟合算法,这将给校准带来很大的误差。此外,由于需要多个标定板,该方法更加复杂。为了增加激光雷达点云的可提取特征,出现了一个空心标定板。Dong等人[7]和Zhung等人[8]的工作有些相似,他们在黑白棋盘的中心构造了一个空心圆孔,并将圆孔的中心校准为特征点。然而,由于激光雷达点云没有明显的特征,因此只能从整个圆孔点云近似计算中心的坐标,如图9所示。
最近,黄强等人[9]提出了一种基于可重构标定板的激光雷达和视觉传感器的联合标定方法,使用类似条形码的方法来自动识别激光雷达的特征点,并添加了相机验证机制,以减轻标定过程中相机识别不稳定导致的错误。
三维标定板
三维标定板的目的是更好地帮助激光雷达找到特征点,从而更好地匹配特征点。当背景不纯净时,上一节中提到的中空平板可能会导致像素混合,周世辉等人[10]分析了平面空心标定板产生的混合像素误差,设计了一种特殊的网格状标定板,并基于特征点匹配方法实现了工业相机和激光雷达的高精度联合校准,以实现像素级图像融合效果。蔡怀宇等人[11] 设计了具有梯度深度信息、平面角度信息和位置信息的标定板(BWDC)。该方法不仅从一维提取特征,而且有效地利用了激光雷达提取三维信息的能力。然而,这对标定板的设计和制造精度提出了很高的要求,增加了成本和误差。如图10所示。
Pusztai等人[12]使用具有三个垂直边的长方体作为标定对象,通过提取长方体的边缘来估计长方体的3D顶点,并将其与从图像中提取的2D顶点进行匹配,这种方法是通用的,因为它可以用于普通的盒子。类似地,Xiaojin Gong等人[13]提出了基于任意三面体的3D激光雷达相机的外部标定。由于用于标定的三面体目标可以是正交或非正交的,这通常出现在结构化环境中,因此它具有广泛的应用。
2)Targetless Calibration
无目标标定不需要人工标定目标,在线标定更方便,但精度低,鲁棒性差。例如,当遇到需要在线标定的情况时,固定传感器的相对位置会因机械振动而改变,其标定参数也会随着时间而变得不准确。由于大多数融合方法对标定误差极为敏感,其性能和可靠性受到严重损害。此外,大多数标定过程需要从头开始,因此手动连续更新校准参数既麻烦又不切实际,为了摆脱标定板的限制,并通过自然场景实现在线标定,研究人员进行了大量研究!
其中一些方法使用RGB纹理和激光雷达反射率之间的相关性,一些方法提取图像和激光点云中的边缘[17]或线特征[18]进行相关性测量。Castorena等人[19]使用深度和强度边缘的自然对齐结合高斯混合模型进行标定,并获得了一种自动、无目标、完全数据驱动的全局匹配优化方法。这些方法需要相对精确的初始参数,否则很容易陷入局部极值,因此,用于自识别场景的无目标标定方法通常用于微调外部参数。还有一些基于里程计的轨迹配准[20],时间序列视觉帧的密集点云和激光点云的配准[21],甚至还有基于深度学习的方法[22]、[23]。这些方法不仅高度依赖于环境,还受到视觉或激光里程计精度的影响,目前的技术精度低,不具有普遍性,需要进一步研究和开发。
3)标定方程建立
在相机传感器获取过程中,为了确定空间物体表面上的点的三维几何位置与其在图像中的对应点之间的关系,必须建立相机成像的几何模型。
(1) 三维坐标转换:摄像机坐标系到激光雷达坐标系的转换,公式如下:
(2) 二维坐标转换:从像素坐标系到图像坐标系的转换,公式如下:
(3) 基于针孔成像原理的坐标转换:摄像机坐标系到图像坐标系的转换,公式如下:
(4) 合并转换:激光雷达坐标系到像素坐标系的转换如图11所示进行组合和推导,公式如下:
参数求解
1)相机内参
为了简化计算,假设了一个线性理想针孔相机,如图12中的a所示。但实际由于相机镜头精度和装配过程的偏差,相机成像不可避免地引入了失真。真实图片和两个常见相机图片的失真如图13所示,导致图像失真,如图12中的b所示。
内部参数是视觉测量的重要校准参数之一,它反映了计算机图像坐标中空间点与成像点之间的精确对应关系,如图14所示。
传统的摄像机校准方法。传统的相机标定方法使用具有已知结构和高精度的标定目标或三维标定场作为空间参考对象。在建立世界坐标系之后,获得每个特征点的空间坐标,根据空间点和图像点之间的对应关系,建立了相机内部参数的约束条件。最后,通过优化算法获得内部参数,在相机内部参数的计算中,使用最广泛的方法是张正友方法[24]。受张正友方法的启发,许多开源库函数,如OpenCV、ROS、matlab和一些工具箱[25][26]都使用这种方法进行开发和标定!
相机自标定方法。相机自标定方法是指使用包含由相机捕获的重叠场景的一组图像来建立对应关系的过程,在不依赖于标定参考对象的情况下完成几何校准。由于只使用其自身的约束,因此它与摄影机和周围环境之间的相对运动状态无关,它具有更高的灵活性,适用于因条件恶劣而无法使用校准目标的情况。使用绝对二次曲线和极线变换的特性来求解Kruppa方程的相机自校准方法[27]、[28]、[29]。这种直接求解Kruppa方程的方法在求解过程中优化参数过多,容易陷入局部最优。当图像噪声较大时,校准精度会降低,鲁棒性会变差,用分层逐步标定方法代替。它使用投影校准作为基础,选择某一图片作为标准,并执行投影对准,从而减少未知数。然后使用非线性优化算法来解决所有未知问题[30]。另一个分支是基于主动视觉的相机自标定技术,主动视觉系统是指将摄像机精确安装在可控平台上。主动控制相机按照指定的运动轨迹完成照片拍摄,最后使用相机运动参数确定内部参数[31]、[32],它的缺点是对实验设备的要求更高,对模型参数的限制更大,并且抗噪声能力较差。
基于消失点标定的方法。20世纪90年代以来,国内外大量学者开始研究基于消失点标定的方法。几何上,世界直线的消失点是通过平行于直线并穿过相机中心和图像平面的光线的交点获得的,因此,消失点仅取决于直线的方向,与其特定位置无关[33]、[34]、[35]。消失点标定方法不需要对象控制点,而是使用相机自身参数之间的约束关系来建立模型。这大大提高了标定的灵活性,实现了实时在线标定,并具有广泛的应用。其缺点是鲁棒性差和精度低,因为在大多数基于消失点标定的方法中,相机中的方位角元素是通过单个图像的消失点来校准的,而传统的消失点标定算法需要三组场景中相互正交的平行线。然而,由于噪声等因素的影响,它在实际应用中常常受到限制。相机的内部参数和失真参数是相机的固有参数,出厂后通常是固定的。因此,许多制造商现在直接提供相机的内部出厂时的参数。同时,随着相机设计的内部优化,其失真控制越来越好。这也是内部参数标定算法研究和更新缓慢的原因!
2)外参求解
从数据选择方法来看,可分为手动标定解决方案和自动标定解决方案。手动标定是早期开发和使用的第一种标定方法,它以其简单有效的操作和高精度而深受标定人员的喜爱。然而,随着科学技术的发展,图像和点云中的数据量巨大,导致劳动力成本急剧增加。单一的手动标定已不能满足人们对速度、自动化和鲁棒性的需求,自动标定已应运而生,如图15所示,激光雷达中相机的外部参数根据不同的原理进行标定!
手动外部参数标定
对于相机激光雷达外部参数标定,校准对象可以提供准确的几何尺寸信息,手动操作可以提供准确匹配信息。最常用的方法是使用棋盘来确定一系列用于校准的3D点对。例如,Dhall[36]等人手动选择3D点并使用最小二乘法解决问题,Scaramuzza[37]等人提出了一种快速标定方法,该方法不依赖于标定对象,而是基于点特征。作者从相机图像和激光雷达点云中手动选择一系列具有不连续深度的对应点来解决问题。手动camera-激光雷达有多种标定方法。不同的方法在不同的具体应用场景中达到了高精度,对于需要实时在线标定的系统,手动标定的主要问题是过度依赖人工操作,以及特殊的标定对象,这严重降低了自主性和智能性。
自动外部参数标定
随着智能应用的迫切需求,近十年来诞生了大量相机激光雷达外部参数的自动标定方法。这些方法分为基于特征匹配的方法、基于互信息的方法,基于运动的方法和基于深度学习的方法。
a) 基于特征匹配的标定方法
基于特征匹配的方法通过选择特征点并基于标定板获得上述两个系统中特征点的坐标,根据特征匹配,直接获得激光雷达坐标系与相机像素坐标系之间的转换关系,然后通过求解标定矩阵转换方程或使用监督学习等方法来计算转换矩阵以及内部和外部参数,目前基于激光雷达点云边缘提取的特征匹配方法主要分为间接法和直接法两种。
间接法:大多数方法将激光雷达点转换为图像,然后执行边缘提取。Wang等人[39]使用Canny算法提取图像的边缘,并使用边界检测器从3D激光雷达点云生成距离图像,建立点云数据和距离图像之间的对应关系。通过像素对应合并2D图像和3D点云数据,以获得具有3D信息的边缘图像。通常,相机的分辨率和点云是不同的,这种方法可能会引入一些错误。
直接法:在图像中,灰度值突然变化的地方形成了图像的边缘,这种变化称为图像梯度。基于图像边缘的特征,Xia等人[40]提出了3D点云梯度的概念,然后基于用于快速边缘提取的激光雷达点云。该拟合方法可以提取更多的边缘特征,具有较高的精度,并且对点的密度不敏感。
b) 基于互信息的标定方法
基于互信息的方法的主要思想是在相机图像和激光雷达点云中找到相关变量。通过计算相机图像的灰度值与相关变量(例如激光雷达的反射率或激光雷达反射的角度)之间的相互信息,然后最大化互信息以优化校准外部参数。Pandney等人[41]认为,激光雷达点云的反射率与相机图像的灰度值之间存在很强的相关性,通过核密度估计方法计算反射率和灰度值的概率。最后,通过Barzilai-Borwein最速下降法计算互信息并优化外部参数。Taylor等人[42]认为,与相机图像点对应的3D点的法线与相机之间的角度将影响反射强度,通过计算激光雷达点云的反射率和对应于相机图像点的上述角度之间的相互信息来执行校准。可以看出,当两个传感器执行紧密的数据融合时,两个传感器之间的精确外部参数尤为重要。由于激光雷达点云的稀疏性,无法直接提取散射在校准板角落的激光雷达点,这将带来更大的误差,也将导致精确的拐角计算。因此,基于直接提取的反射强度特征点的激光雷达相机外部标定方法可以有效地补偿这一问题。然而,基于互信息的方法的效果与传感器所在环境中目标物体的材料和反射率有关,并且容易受到诸如光照条件和天气变化等因素的干扰。
c) 基于运动的标定方法
基于运动的方法通常从连续运动数据或多视图数据中求解外部参数。首先,分别计算相机和激光雷达的运动,然后通过手眼标定来解决相机和激光雷达的直接外部参数。Taylor[43]等人提出了一套标定方法,可应用于由激光雷达、相机和导航传感器组成的任何系统。作者首先登记每个传感器的连续帧,然后使用连接以校准外部参数。Ishikawa[44]等人使用KLT跟踪器跟踪激光雷达在图像平面上的投影点,并通过投影误差不断优化缺少3D比例的平移向量,取得了比泰勒更准确的结果。赵[45]使用相机的前后帧图像重建城市场景3D并计算姿态变化,并计算激光雷达点云的前后帧ICP,以获得点云的空间变化。同时,有许多研究通过关键帧和运动恢复结构等技术实现了无人机和激光雷达点云上的图像配准。例如,Nedevschi等人[46]使用特征匹配来检测车辆行驶过程中传感器的偏移。该方法通过对图像执行距离变换来找到图像中的边缘,同时,将激光雷达点云转换为距离图像。根据边缘信息建立目标函数。该方法可以消除车辆运动过程中产生的漂移,并自动调整外部参数。
可以看出,基于运动的方法适合于求解标定参数和大规模场景的初始值。但是基于运动的方法的主要缺点是单眼相机的运动缺乏3D尺度信息,而且在姿态估计和数据本身之间存在很大的误差,准确度需要突破。由于可以通过立体视觉恢复比例问题,因此大大简化了标定问题,因此,这种方法更适用于立体摄像机。
d) 基于深度学习的校准方法
随着近年来深度学习的快速发展。自动驾驶中的各种感知任务可以通过深度学习实现并表现良好,激光雷达和摄像头的外部参数标定也可以通过神经网络进行预测。Schneider[47]等人提出了第一种将深度学习应用于标定问题的方法,通过RegNet神经网络分别提取相机图像和激光雷达点云,然后进行回归。Ganesh Iyer[48]和其他人设计了一个几何监督的深度网络,可以实时自动估计3D LiDAR和2D相机之间的6-DoF刚体变换。其中,CalibNet减少了对校准目标的需求,从而大大节省了校准工作。最近,Kaiwen Yuan等人[49]提出了一种基于RGGNet的激光雷达相机标定方法。该方法考虑黎曼几何,并使用深度生成模型学习隐式公差模型。该方法既考虑了标定误差,又考虑了误差范围内的公差,取得了较好的标定效果。对于深度神经网络,不需要预先提取图像和激光雷达点云的特征来建立两个数据的映射和连接。相反,它直接交给神经网络中的节点,以找到潜在的关系。对于标定问题,监督学习显然是不够的。很难直接获得外部参数的真实值,并且很难提供可靠且可观的训练集。因此,无监督学习或半监督学习更适合于外部参数标定问题。然而,现有算法对使用条件要求更高,大量的训练是巨大的计算量,而泛化能力亟待提高。
参考
[1] Review of a 3D lidar combined with single vision calibration.