《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读

OpenCalib是上海AI实验室开发的一款开源的自动驾驶传感器标定工具箱,其中包含了这一领域的一整套自动驾驶相关标定方法。

传感器的精确标定是自主车辆多传感器感知与定位系统的前提条件。传感器的内参数标定是获取传感器内部的映射关系,外参数标定是将两个或多个传感器转换为一个统一的空间坐标系。大多数传感器在安装后都需要进行标定,以保证传感器测量的准确性。为此,我们提出了OpenCalib,一个包含丰富的各种传感器标定方法的标定工具箱。OpenCalib针对不同的应用场景,提供手动标定工具、自动标定工具、工厂标定工具和在线校准工具。同时,为了评估标定精度,进而提高标定算法的精度,我们发布了相应的基准数据集。

论文地址:link
代码地址:link

引言

自动驾驶技术近年来已成为业界和学术界最受欢迎的技术之一。作为一个复杂的系统,它需要众多的模块协同工作。不同的传感器各有优点和缺点,融合多个异构传感器成为获得鲁棒、准确的感知和定位能力的关键。IMU(惯性测量单元)、GNSS(全球导航卫星系统)、LiDAR(光探测和测距)、相机、毫米波雷达和车轮速度计是自动驾驶系统中最常用的传感器。

IMU是一种能够在短时间内提供高置信度的相对位移和航向角变化的惯性导航传感器。众所周知,GNSS可以为车辆提供米级精度的绝对定位。然而GNSS信号的质量是不能一直被保证的。因此,在自动驾驶领域,GNSS的输出一般与IMU和汽车的传感器(如车轮速度表、方向盘角度传感器等)融合在一起。

在众多主流传感器中,摄像头的应用范围相对较广,成本相对较低。相机具有提取环境详细信息的强大能力。除颜色外,它还能提供纹理和对比数据,可靠识别道路标记或交通标志,准确检测和识别静止和移动物体。因此,无论采用哪种传感器方案,一般都采用相机。依靠强大的处理器、算法和神经网络对图像进行处理的技术已经比较成熟。尽管有这么多的优势,但在自动驾驶感知系统中,摄像头并不能独领风骚。这不仅是因为它需要良好的照明环境,在雪、雾、黑暗等恶劣环境下,相机的可靠性是有限的;也因为它得到的数据或图像是二维的,没有直接的深度值信息,算法获得的信息深度不够准确。

激光雷达具有精度高、测距距离远、实时性好、采集信息丰富等突出优点。同时,它具有较好的环境适应性,不受光线的影响。然而,激光雷达的成本相对较高,一般昂贵。另一方面,它缺乏颜色信息,不足以准确地探测到能够产生反射或透明的物体。采集到的数据需要极高的计算能力,扫描速度相对较慢。

毫米波雷达也是一种技术相对成熟的环境传感器。毫米波雷达由于批量生产,价格相对低廉,对周围车辆的探测精度高,对某些材料敏感。同时反应迅速,操作方便,能适应恶劣天气。而毫米波雷达的分辨率相对较低。它不能判断被识别物体的大小,也不能感知行人,它不能准确地模拟周围所有的障碍物。

由于单传感器的优点和缺点,多传感器融合系统的目的是提高信息冗余和信息互补性,从而充分保证自动驾驶的安全性。

前一段介绍了自动驾驶中各个传感器的优缺点以及多传感器融合的必要性,然而,如果你想要一个好的融合结果,这些不同的传感器需要精确地标定。一辆汽车上安装有多个传感器,它们之间的坐标关系需要通过传感器标定来确定。因此,传感器标定是自动驾驶的基本要求。

传感器标定可分为两部分:内参数标定和外参数标定。内部参数决定了传感器内部的映射关系。例如,相机的固有参数是通过焦距和镜头畸变来标定的。利用陀螺仪和加速度计的零偏差、比例因子和安装误差对IMU的内禀参数进行了标定。激光雷达的内在参数是激光发射器内部坐标与激光雷达坐标装置之间的转换关系。外部参数决定了传感器与外部坐标系之间的转换关系,包括旋转和平移的6个自由度参数。

在自动驾驶的研究和开发中,传感器之间的外部参数标定是常见的问题。由于获得的数据类型不同,在不同传感器之间进行标定时,最大的问题是如何测量出最好的。因此,由于传感器对的不同,使校准误差最小化的目标函数也不同。因此,由于传感器对的不同,使标定误差最小化的目标函数也不同。外部标定方法一般可分为无目标标定方法和基于目标标定方法。前者在自然环境中进行,约束少,不需要特定的目标;后者需要一个特殊的控制域,并有一个地面真实目标。

目前与传感器标定相关的开源项目有一些,如Kalibr、Autoware[1]等,具体校准类型的开源项目更多,如用于激光雷达和IMU校准的lidar align。OpenCV[2]也提供了一些校准工具。然而,针对不同的自动驾驶应用场景,目前还没有一个完整的标定工具箱。因此,我们结合以往的校准研究和项目经验,将各种自动驾驶校准工具集成到一个校准工具箱中。

这项工作的贡献如下:
1)我们提出了OpenCalib,一个用于自动驾驶的多传感器校准工具箱。该工具箱可用于不同的标定场景,包括手动标定工具、自动标定工具、出厂标定工具和在线标定工具。
2)我们在工具箱中提出了许多新的标定算法,如各种基于道路场景的自动标定方法。对于工具箱中的工厂标定,我们提出了针对多种标定板板类型的更鲁棒的识别算法,标定板识别程序消除了OpenCV[2]库依赖。
3)为了对标定性能进行测试,我们引入了一个基于Carla[3]的合成数据集,在该数据集中我们可以得到标定结果的真实值。在未来,我们将进一步开源校准标定数据集。
4)我们在GitHub上开源工具箱代码以造福社区。开源代码是v0.1版本,我们将在未来的版本中继续引入更多最先进的校准算法。

相关工作

研究人员提出了许多方法来解决多模型传感器的标定问题。根据观测的场景,这些校准方法大致分为基于目标的和无目标的(有人工目标和无人工目标)方法。根据人机交互的程度,又进一步分为人工方法和自动方法。此外,研究人员还提出了一些在线标定方法,主要是基于运动估计的基于运动的方法和基于深度学习的方法。

A. Target-based Method
在传感器标定过程中,基于目标的标定方法被广泛应用。基于目标的方法通常需要标定目标,如棋盘、多边形棋盘,这两种传感器模式都可以很容易地检测。此外,基于目标的方法可以利用目标的先验知识,提高校准结果。有目标的方法比无目标的方法更精确。传感器的内参定标通常采用目标法。目前常用的摄像机内参标定方法是张氏方法[4]采用棋盘格标定。除了棋盘图案外,还有常见的圆形网格[5]来标定摄像机内参。一些激光雷达的内参标定方法是通过一个盒子[6]或一个平面壁面来完成的[7]。多传感器之间的外部标定通常采用基于目标的方法,如工厂标定、标定室标定等。Zhang et al.[8]基于棋盘格求解外部参数,并通过最小化激光点到棋盘格平面的重投影误差来细化参数。Yan等人[9]提出了一种基于目标的四圆孔棋盘格联合标定方法。Wang等人[10]通过金属面板进行毫米波雷达-摄像机标定。Peršić等人[11]提出了一种适用于激光雷达和毫米波雷达的互补标定目标设计。

B. Target-less Method
在某些情况下,基于目标的方法是不切实际的,导致了无目标方法的发展。无目标法比有目标法更方便,因为不需要特定的目标。这些方法利用环境特征来匹配传感器数据的对应关系。根据信息提取方法的不同,多传感器在线标定的研究方向可分为边缘配准[12]、互信息[13]和分割[14]、[15]三种方法。Barazzetti等人[16]只使用nat场景进行相机内参标定。Levinson等人[12]提出了一种通过对环境中物体的边缘特征进行对齐的在线外参标定方法。一些方法利用道路特征实现多传感器的自动标定。Ma等人利用道路场景中的线特征对激光雷达和相机的外参进行标定。Wei等人[17]利用道路场景中的道路特征标定了多个激光雷达的外参。Gong等人[18]提出了一种使用城市和室内环境中常见的三面体目标的方法。Pandey等人[19]使用激光雷达测量的反射强度和相机的强度值进行外参标定。类似的,Taylor等[20]通过对互信息进行归一化,最大化图像与LIDAR点的梯度相关性来进行LIDAR-camera标定。

C. Motion-based Method
基于运动的方法将传感器的外参标定问题视为手眼标定问题。该方法不需要传感器之间的视场重叠,通常对初始值具有较好的鲁棒性,但精度较低。只要传感器有里程表信息,这个问题就可以转化为求解齐次线性方程组的问题[22]。这个问题有不同形式的解,如四元数形式[23],对偶四元数形式[24],螺旋运动和螺旋轴形式[25]。不同形式的解对应同一种方法,但与其他形式的解只能获得旋转标定参数相比,对偶四元数形式可以额外获得平移标定参数[26]。但是,这些方法没有充分考虑测量的不确定度,导致校准精度容易受到传感器噪声的影响。Dornaika等人[27]将旋转和平移统一为非线性优化框架。Strobl等[21]引入了欧几里得群,该群考虑了旋转和平移的相对误差。Huang等人[28]等最近的工作将Gauss-Helmert模型应用于运动约束的求解,并同时优化相对运动估计和传感器的外部参数,使其对传感器噪声和外部参数的初始值具有很强的鲁棒性。
时间标定也是基于运动的方法的一个重要组成部分。一般有三种时间标定方法,包括硬件同步、双向通信的软件同步和单向通信的软件同步。我们的时间标定属于第三种方法,它有两种方法完成,一种是利用各传感器的测程数据,一种是通过优化解获得时间标定,另一种是通过数据关联获得标定结果。Paul等人[30]提出了一种统一的方法,使用批量、连续时间、最大似然估计来确定传感器之间的固定时间偏移。Qin等人[31]提出了一种新的IMU和摄像机时间标定算法。不同于其他算法——通过将速度和角速度乘以时间差来补偿相机姿态或IMU姿态的算法。该算法假设特征点在短时间内在图像平面上以匀速运动,将IMU与摄像机之间的时间延迟,转换为特征位置在图像平面上的延迟,简化残差函数。Qiu等人[32]通过运动相关分析提出了一种新的时间标定方法。

D. Learning-based Method
近年来,深度学习网络在处理2D和3D计算机视觉任务,如定位、目标检测和分割方面显示出了有效性。还有一些工作将深度学习应用于传感器标定任务,特别是适应相机和激光雷达校准问题。Schneider等人[33]提出了用于激光雷达相机标定的第一个深度卷积神经网络RegNet,该网络通过基于监督网络的回归到标定参数,直接推断外部参数。为了进一步引入空间信息并消除内因子的影响,Iyer等人提出了一种几何监督网络CalibNet,通过减小密集的光度误差和密集的点云距离误差来实现激光雷达-相机标定。RGGNet[35]考虑黎曼几何,利用深度生成模型学习隐式容差模型用于LiDAR-camera标定。
相比之下,用于内参标定问题的基于学习的方法要少得多。DeepCalib[36]提出了一种基于cnn的宽视场摄像机内标定方法,该方法具有自动生成的大规模内标定数据集。由于摄像机固有标定问题中空间关系不够直观和精度要求高,基于学习的方法优势不明显。除了用于传感器标定的端到端深度学习网络,还可以将一些相关视觉任务的工作作为标定过程的关键划分,如消失点检测[37]、汽车方向预测[38]和相机姿态估计[39][43]。
尽管基于学习的方法利用深度学习的优势进行空间特征提取和匹配,在模型训练后无需人类交互,但这些方法仅限于对某些传感器的标定,特别是相机和激光雷达。与非学习方法相比,大多数基于学习的方法稳定性较差,精度较低,而精度在标定任务中至关重要。因此,深度网络一般不用于多传感器标定问题。

方法

在本节中,我们详细介绍了我们的标定工具箱,包括手动标定工具、自动标定工具、工厂标定工具和在线标定工具。

A. Manual Target-less Calibration Tools

手动标定是自动驾驶汽车最简单的一种标定方法。虽然与其他方法相比,该方法的原理和完成过程较为简单,但只要用户在这些方法上花费足够的时间,就可以得到精度高、可靠性高的标定结果。早期的人工标定方法依靠靶样棋盘或普通盒子,标定程序往往在定制的标定室中进行。然而,对于小型自动驾驶公司和个人用户来说,这种复杂的设置成本很高。

因此,我们的标定工具箱为用户提供了四种自动驾驶车辆在无目标和任意道路场景下的手动标定工具。显然,具有树木、交通标志等强烈且易于识别的特征的道路场景将会带来更好的标定结果。外部参数可在图1左侧的控制面板中进行调节,也可将表一、表二所示的键盘作为控制输入实现标定,如图1所示为标定良好的场景示例。下面将详细介绍这四种标定工具。

1.LiDAR to camera calibration

整个标定过程是通过调优内、外部参数,将三维LiDAR点云与道路场景中的图像进行对齐。除了这些参数外,调整和点大小的更新步骤也可以在面板中进行调整。值得一提的是,IntensityColor按钮可以将显示模式切换为强度图显示模式,OverlapF filter按钮可以消除0.4m深度内的重叠LiDAR点。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第1张图片

2.LiDAR to LiDAR calibration

该标定过程是通过只调整外部参数来实现源点云与目标点云之间的三维点云配准。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第2张图片

3.Radar to LiDAR calibration

标定过程与激光雷达对激光雷达的标定过程基本相同,但需要对二维雷达点云和三维激光雷达点云进行配准。因此,需要调优的参数会更少。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第3张图片

4.Radar to camera calibration

对于Radar和camera的标定,因为Radar是一个二维设备,所以在安装过程中我们尽量使其与地面平行。对于相机,我们需要找到它与地面对应的单应矩阵。然后我们在图像和鸟瞰视图上可视化它,当在两幅图像上显示对齐时,我们可以认为标定完成了。图4显示了如何计算相机对地单应性矩阵,在左右车道各选择两个点。图5为Radar在图像中的投影结果和鸟瞰图。鸟瞰图上的平行线表示车道线的方向。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第4张图片《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第5张图片

B. Automatic Target-based Calibration Tools

1.Camera calibration

目前业界常用的摄像机标定方法是张氏方法[4]。Zhang的方法通过放置在不同姿态下的标定板提取棋盘的角点,计算出摄像机的内在参数和畸变参数。针孔模型通常用于相机内参定标,但针孔模型只是相机投影过程的简化模型[44]。实际的相机镜头组比较复杂,没有绝对的光学中心点[45]。由于摄像机内部结构复杂,缺乏一种有效的相机内参定标定量评价方法。
由于每个相机镜头的畸变程度不同,这种畸变可以通过相机标定来校正,从而生成校正后的图像。校正后的图像对于后续的感知或与其他传感器的联合标定至关重要。因此,有必要建立一种定量的畸变评价方法,以保证畸变校准的准确性。我们基于Tang[46]的方法开发了一个定量评估相机失真的程序。该方法是一种易于实现的、自动化的相机畸变评估方法。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第6张图片失真评价指标由鱼线和半透明纸组成。失真参数评价流程图如图6所示。首先,用相机捕捉目标的图像,目标填充整个图像。然后利用相机标定参数对图像进行去畸变,得到校正后的图像。然后,线段检测算法利用Canny描述符[47]提取校正后的图像中的直线段。由于使用了NMS (Non-Maximum suppression),使得线段不连续,采用线性插值的方法得到一条连续的直线。均方根距离和最大距离是评价失真参数质量的测量指标。

2.LiDAR to camera calibration

基于目标的激光雷达和相机标定方法是通过观测人工标定的目标放置在传感器系统的前方,同时通过两个传感器获得特征点的位置。对于激光雷达和相机的标定,现有的方法一般是先标定相机的内参,再标定相机和激光雷达的外参。如果在第一阶段没有正确标定相机内参,那么要对相机外部参数进行精确标定就不容易。为了解决现有方法中相机内参标定不准确对激光雷达对相机外部参数的影响,提出了一种联合标定方法。具体的细节请参考[9]。
我们设计了一种新的标定板图案,如图7所示,其中包含一个用于标定摄像机内参数的棋盘格和几个用于定位激光雷达点云的圆孔。首先采用张氏方法[4]标定摄像机的初始内参和板摄像机的初始外参。然后根据这些参数和标定板的尺寸计算出图像上的二维圆心点。通过提取圆心在激光雷达中的位置,利用激光雷达相机标定参数将圆心三维点投影到图像平面上。计算的二维点和投影的二维点形成多个二维点对。我们利用这些点对之间的欧氏距离来细化校准参数。同时,在优化过程中加入了对棋盘格角点的三维-二维重投影的约束。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第7张图片整个标定过程的目的是在满足棋盘格角约束的情况下实现激光雷达点云与图像更好的对齐,这也是关键的评价标准之一。我们的标定板上的棋盘角的数量远远超过圆孔的数量。因此,为了平衡两种损失函数的影响,激光雷达-相机对准误差的权重要大于板-相机对准误差的权重。

C. Automatic Target-less Calibration Tools

1.IMU heading calibration

IMU航向标定的目的是纠正IMU与车辆之间朝向的安装误差。因此,我们只对IMU的偏航角偏移量进行标定,以实现定向对齐,记为γ偏移量。我们从每个时间戳的行驶路线得出车辆的方向为γ gd。标定结果为测得的IMU偏航角与估计的驱动方向的偏移量。
基于传感器定位数据,采用b样条方法平滑行驶路径。并且不使用一次行车的所有数据,只选取直线行车路线进行后续标定。通过去除驾驶方向快速变化的数据,如u型转弯,我们可以得到实时真实偏航角的精确近似。当然,为了提高标定精度,我们建议可以直接记录直线数据进行校准,如图8所示。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第8张图片

2.LiDAR to camera calibration

激光雷达和相机的精确标定是自动驾驶中最常见的标定之一。单目视觉感知系统以较低的成本获得了令人满意的性能,但不能提供可靠的三维几何信息。相机-激光雷达融合感知是为了提高性能和可靠性。相机与激光雷达融合的前提和假设是相机与激光雷达的精确标定,包括相机的内参和相机与激光雷达的外参。在对激光雷达和相机进行精确标定后,由于车辆长期运动以及温度等其他因素的影响,所标定的参数会逐渐变得不准确。由于感知融合算法对标定参数的准确性非常敏感,这可能会严重降低感知融合算法的性能和可靠性。此时,通过标定室或手动重新标定都是非常麻烦和不切实际的,所以我们开发了一种工具,可以在道路场景中自动标定激光雷达和相机。这个方法的具体细节可以在我们之前的工作[15]中找到。提出了一种常见道路场景下激光雷达和相机外参标定方法。该方法完全自动化,效率和准确度也较高。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第9张图片首先,利用激光雷达和相机采集一组道路场景数据,然后分别从图像和点云中提取车道线和路标等线性特征;如图9所示,我们利用BiSeNet-V2[48]从图像中提取车道线和道路杆,利用强度和几何方法从点云中提取。然后,设计代价函数来细化初始外部标定参数,确保误差在可接受的范围内。在从图像和点云中提取直线特征后,我们提出了几个代价函数,在给定外部参数(r, t)的情况下,衡量图像和点云之间的相关性。与[14]类似,我们对mask应用了一个反向距离变换(IDT),以避免后续优化过程中出现重复的局部极大值。
图10为mask与图像的标定投影结果
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第10张图片

3.LiDAR to IMU calibration

激光雷达和IMU的标定也是自动驾驶常用的标定方法之一,其标定精度对激光雷达测绘定位模块有很大影响。通常,在对激光雷达的外部参数进行标定时,通过判断激光雷达的局部映射是否良好来判断标定精度。标定过程是通过滑动窗口构造的局部映射来求解从激光雷达到IMU的外部参数。该标定工具是基于[49]开发的。通过最小化协方差矩阵的特征值,使特征点分布在局部映射的同一边缘线或平面上。该方法通过最小化协方差矩阵的特征值来最小化特征点到特征平面或边缘线的距离之和,并进行优化以达到从激光雷达到IMU的外部参数标定的目的。BA算法[49]使每个平面特征点到平面的距离最小。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第11张图片建议按照图11收集数据。标定现场有以下几点要求:
a)确保地面足够平整;
b)确保周围有足够的特征,如墙壁、车道线、杆子、静止的车辆等;
c)校准后的车辆按照图11所示轨迹循环3次,车速保持在10km/h;D)尽量不要让周围有动态物体,如车辆等。
图12为LiDAR到IMU映射的特征提取结果

4.LiDAR to LiDAR calibration

在自动驾驶中,激光雷达发挥着重要的作用。激光雷达可以实时获取周围环境的三维结构信息。一般可以在自动驾驶中构建高精度的地图、定位、障碍物检测、跟踪和预测。在无人驾驶汽车上安装单一激光雷达,有时无法覆盖汽车周围区域或不能满足盲区监测的需要。
因此,有必要适当增加激光雷达的数量,以增加可见距离。多台激光雷达的数据融合需要对多台激光雷达坐标系进行外部参数标定,以获得各坐标系的精确旋转平移参数,为后续数据处理提供依据。基于我们之前的工作[17],我们开发了一种多激光雷达标定工具。
两种激光雷达的外部标定分为地平面对准和非地特征点配准两步进行。首先,从地面和非地面点云中提取和分割出点云;然后,利用地面法线对地面进行配准,得到横滚角、俯仰角和z轴平移量作为初始外部参数。然后遍历变换后的非地面点云的偏航角,计算两激光雷达最近点的距离,得到最小距离的偏航角。随后,通过常规迭代最近点(NICP)[50]和基于八叉树的优化,继续提高标定精度。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第12张图片如图13所示,采用基于八叉树的优化方法将位姿误差最小化。一开始,有两个点云P C包裹在一个立方体o C中,然后我们利用基于八叉树的方法将立方体平均切成八个更小的立方体。

D. Factory Calibration Tools

工厂标定通常是汽车生产的最后一道工序。标定设备主要由多个标定板和四轮定位组成。车辆四轮定位完成后,开始标定,通过标定板计算传感器之间的位姿关系,我们提供了六种类型的标定板,标定板识别程序消除了对OpenCV[2]库的依赖。该算法在不同环境下的识别性能都很高。

1.Calibration Board Setup Tools

工厂标定需要建设标定生产线,标定生产线通常由四轮定位和各种标定板组成。标定板的姿态与车辆传感器安装的位置和角度有关,因此我们开发了一种工具来自动生成标定板放置的最佳位置和角度。同时,该工具还可以根据车辆的传感器方案生成标定板有效的放置位姿范围。此外,如果生产线环境已经确定,该工具还可以自动判断车辆的传感器方案是否适合当前的标定设置。工具操作界面如图14所示。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第13张图片

2.Calibration board detection

本文主要介绍了可用于生产线上的五种标定板的角点检测过程。五种校准板为棋盘、圆板、竖板、aruco标记板和圆孔板。

对于生产线上的棋盘(水平校准板)(一般为2.5米宽),角点检测过程首先选择初始阈值对图像进行自适应二值化处理。然后对每个黑色块四边形进行扩张操作,分离出每个黑色块四边形的连接。因为图像边缘没有棋盘格的角,所以图像的边缘被设置为白色。遍历图像设置黑为0、白255,如果它在8个区域是黑色的,这是为了得到黑色块的边缘线。然后通过区域约束、矩形判断、正方形判断等一系列过滤条件过滤出棋盘候选区域,对候选正方形聚类得到粗糙的角点,最后对检测到的角点进行结构化判断。例如是否形成面积相同的等腰直角三角形,判断两点的斜率等,输出最终的角点检测结果。图15和图16分别为棋盘格标定板的检测过程和检测结果。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第14张图片

圆形标定板可以非常精确,因为所有的像素都可以用圆的外围,减少了图像噪声的影响。以及在多个角点检测缺失的情况下,被裁剪的点信息可以用于不完整的角点补全,而不影响标定过程。标定过程首先对标定图像进行自适应阈值二值化,然后检测标定二值图像的轮廓,从图像轮廓集合中提取圆,得到多圆集合。通过判断轮廓像素到轮廓中心的距离,如果最大距离和最小距离的差值满足阈值,则认为该轮廓是一个圆。圆圈中心点的颜色记录检测圆圈是黑色还是白色。通过Ransac提取所有圆心的线段,提取垂直直线,根据坡度范围得到垂直直线。根据四种约束滤波条件,得到黑圆的线段(1;两条线段应该是平行的。2. 对应的黑圆半径也是类似的。3.对应的黑圆在对面直线上的投影是重合的。4. 两条线段间距和黑圆半径大小限制)决定了标定板中心的位置。平行的黑线很好地固定了图案的位置。根据黑圆半径,预测白圆半径和线段上的圆间距,最后得到标定板上所有圆的圆心。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第15张图片
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第16张图片

垂直板对于多个弯角漏检也很稳健。首先对标定图像进行灰度化处理,然后对图像中所有的角点进行检测,通过随机选取点建立包含角点的直线模型。根据点的密度对各线模型进行聚类和分段,然后找出三条平行线和等距线的组合。对于每个直线组合,将左右直线上的角点投影到中间直线上,通过投影直线上的角点与标定板的图案特征之间的距离进行筛选和分割,得到正确的角点。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第17张图片
ArUco标记板的角点检测过程首先对RGB图像进行灰度化处理,然后采用局部自适应阈值的方法绘制图像二值化。然后,通过连通域搜索找到候选轮廓,并根据边缘数量限制的过滤条件筛选轮廓;然后,完成基于轮廓点集的多边形拟合。在此筛选后对凸四边形的角点进行排序,防止了交叉排序的发生。过滤掉太近的四边形。然后,通过径向变换从四边形中提取出外矩形,对图像进行二值化,阈值为127,对图像进行裁剪得到QR码区域,并对QR码进行6*6网格剖分。区域,编码对应的QR码区域,匹配基库中的QR码码本,识别对应的QR码id,获取标定板上的角坐标。

《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第18张图片
圆孔板的角点检测过程主要依靠标定板上的模式匹配来提取圆。首先,根据标定板的尺寸,设计了圆孔的几何匹配掩模;然后进行二维搜索匹配,最终得到洞中点云数量最少的圆和圆心。根据标定板的位置对点云进行ROI滤波,得到标定板附近的点云。采用带方向约束的RANSAC算法提取标定板平面。根据标定板的大小预设标定板盒,然后提取二维盒并在点云中拟合。所述孔掩模的初始位置由所述掩模相对于所述盒子的大小得到。在初始位置附近进行蒙版二维搜索。最后,得到蒙版上点数量最少的圆心坐标。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第19张图片
AprilTag是一种视觉参考系统,可用于各种任务,包括增强现实、机器人和相机校准。AprilTag检测可以计算出标定板的精确3D位置、方向和相对于相机的id。AprilTag[51]库是用C语言实现的,没有外部依赖。该库可以很容易地包含在其他应用程序或移植到嵌入式设备。

3.Camera calibration

汽车生产线批量标定的方法称为工厂标定。当车辆售出后,由于其他原因导致ADAS设备无法正常工作时,需要对相机进行售后标定。通常,摄像机的标定包括摄像机灭点的标定和摄像机对地单应矩阵的标定,以及摄像机-车外部参数的标定。经过校准的消失点是与车身对齐的平行线的视觉交点。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第20张图片

出厂标定时,标定板与摄像机位置固定。出厂标定前,需要将被标定的车辆与四个轮子对齐。四轮对中后,固定标定板相对于车身中心的坐标,然后使用摄像机识别标定板并进行标定。然后得到相机相对于车身坐标的位姿,通常用PnP算法求解[52]。下面主要介绍消失点的标定方法和相机对地单应矩阵的标定方法。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第21张图片
由于我们寻找的消失点是平行于车身坐标的平行线的交点,那么消失点的计算方法为摄像机通过校准板的直线,如图25所示,这条直线保持与车身平行。由标定板的单应矩阵,以及相机相对于标定板中心的水平和垂直偏移量。

如下图所示,我们根据标定板的实际尺寸和检测到的角点得到标定板到摄像机的单应矩阵,再根据标定板到地面的距离得到A点和B点,如下图所示,然后将AB点和消失点连接起来,因为A- vp和B- vp是平行线,所以横坐标相同,并通过测距公式得到坐标,再根据像素坐标和世界物理坐标得到4个点的坐标。我们可以解出地面相对于相机的H矩阵。在[53]之后,通过f x和f y(相机固有)、H C和vp I可以得到相机的测距结果。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第22张图片

4.LiDAR calibration

如图24所示。检测到激光雷达圆心的三维坐标,同时知道标定板相对于车身坐标的位置。因此,我们可以通过三组非共线点对得到激光雷达相对于车身坐标的位姿。因此在求解时对位移参数进行约束,通过优化方法得到多对点。

5.After-sale calibration

售后标定可以像生产线标定一样放置校准板,但比较复杂。另一种是使用一些环境特性进行标定。然后本节将介绍使用环境特性进行相机售后标定。如图所示,首先我们需要两个与车身平行的参考对象,如车道线或其他参考对象。

另一种方法是放置4个参考点来模拟两条平行线。平行线上有4个点(左边2个,右边2个)根据这四个选择点,可以拟合两条直线,然后计算这两条直线的角点作为消失点。单应矩阵的计算方法可以通过eq.(25)等相机测距模型计算出实际物理坐标,然后进行计算。但该方法存在一个缺点,即横摇角的影响会导致横向物理距离的计算存在误差。

为了修正这一误差,我们引入了侧倾角评估线。用户拖动两个点使直线比地面短。横摇角度可以通过使垂直距离相同的直线平行来确定。我们可以通过横摇角度修正相机模型的误差,最后计算出所选4个像素的真实物理距离,然后计算出从相机到地面的单应矩阵。我们的工具操作界面和需要输入的信息如图27所示。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第23张图片

如果需要验证标定的准确性,可以将所选点的实际测量距离与距离测量结果进行比较。如果差异很小,则认为标定是合格的。

E. Online Calibration Tools

传统的标定方法往往采用离线的形式,需要手持标定板进行一系列操作,费时费力。在线标定法是指在系统运行之初或系统运行过程中完成标定,该方法不需要手持标定板,也能保证足够的精度。

因此,我们的标定工具箱为用户提供了三个在线标定工具,用于车辆行驶过程中的自动标定。同样,具有强大且易于识别的特征的道路场景,如树木和交通标志,将导致更好的标定结果。下面就来介绍一下我们在线标定的原理。

1.Camera to IMU calibration

摄像机与IMU之间的在线标定包括时间标定和外部标定。在在线标定过程中,需要一组图像帧数据和车辆行驶过程中的IMU测量数据。在第一组帧上,我们使用轨迹相关方法进行时间校准[32]。在得到时间标定结果后,我们利用该结果进行数据对齐。下一步是旋转标定,最后一步是平移标定。

2.Lidar to IMU calibration

Lidar对IMU的在线标定类似于Camera对IMU的在线标定,我们利用LOAM的前端作为Lidar测程,然后将Lidar数据与IMU数据进行对齐,最后采用类似的方法得到Lidar对IMU的在线标定结果。

3.Radar to Carcenter calibration

本课题主要对雷达的偏航角进行标定。该问题分为粗略标定、静态目标识别和曲线拟合三个步骤。

F. Calibration Benchmark Datasets

在对当前主流的LiDAR、camera等传感器模型进行大量的评价实验和研究的基础上,我们建立了传感器特征集,包括自动驾驶传感器不同技术路线和模型的检测性能和特征表达。基于开源的自动驾驶仿真框架Carla平台[3],完成了传感器特征集到传感器仿真库的开发。以激光雷达为例,根据评估实验的结果,根据从实际数据中总结出的规律,模拟不同场景下传感器的检测性能、时序特性和线束分布。此外,天气条件对不同的LiDAR模型也会有不同的点损耗和噪声影响,这也会体现在模拟产生的点云数据中。在建立的传感器仿真库的基础上,完成不同标定场景下的多传感器数据仿真,最终生成标定基准数据集。

在仿真框架中,我们控制自我车辆在车道线、路灯、墙壁、汽车等具有明显周边参考的环境中沿特定轨迹行驶,同时记录特定标定所需的数据。不同传感器的数据生成频率也不同,如下表所示。为了保证数据的正常记录,仿真平台的系统频率应高于任何传感器的记录频率。多标定场景模拟示意图如下图所示。图中:
(a)为摄像机内参数标定仿真场景
(b)为在线标定仿真场景
©为雷达外部参数标定仿真场景
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第24张图片
仿真数据集的优点在于能够以极低的成本获取复杂场景下的多传感器数据,并能够提供高精度的真值来验证标定算法的准确性。我们生成了少量的数据,用于在模拟器中测试标定性能。未来,我们将在模拟器中生成大量的标定测试数据,形成标定基准数据集。

EXPERIMENTS

A. Experiment Settings

我们在真正的无人驾驶平台上进行了实验。采用的传感器包括Hesai Pandar64 LiDAR, Balser acA1920-40gc Camera不同fov (F OV = 30, FOV = 60, FOV = 120), Delphi ESR 2.5雷达和No- vAtel PP7D。为了更好地定性评价标定精度,我们还在仿真环境中进行了实验。所有模拟校准数据都是由Carla引擎[3]生成的,它在上一节的标定基准数据集中介绍过。

B. Quantitative Results

像手动标定工具,可根据可视化结果调整标定的外部参数。在此基础上,为了判断标定性能和标定参数是否可用,可以将不同的传感器进行融合,根据可视化效果判断标定是否准确。该方法更直观,且人工地传感器融合效果评估,避免了错误的标定参数。下面就为大家介绍一些标定工具的视觉判断效果。
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第25张图片
《OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving》论文解读_第26张图片
为了更好地可视化激光雷达对相机标定的性能,利用标定参数将点云投影到像面上。图29为LiDAR点云在图像上的投影结果。标定参数越精确,投影图像中点云与图像的物体对越对齐。

为了更好地直观地展示LiDAR对IMU标定的性能,图30中采用IMU位姿和LiDAR-IMU标定参数拼接多帧点云。标定参数越精确,测图效果越好。

为了更好地展示激光雷达对激光雷达定标的性能,图31中采用激光雷达-激光雷达标定参数拼接多帧点云。标定精度越高,同一目标对在不同激光雷达下的对准程度越高。

其他标定工具也类似,这里没有展示。

C. Qualitative Results

定量评估需要真值,而模拟环境可以提供非常精确的真值。此外,对不同场景下的多个标定进行一致性验证,可以判断标定方法的鲁棒性。因此,在缺乏真值的真实数据上,可以用一致性来评价标定算法的鲁棒性和标定参数的精度。
在未来,我们将通过模拟器生成大量的标定数据。我们将使用这些模拟数据来评估我们的校准算法的标定精度,我们也将开放数据。

V. CONCLUSIONS

传感器标定是自主系统及其组成传感器的基础。在进行传感器融合之前,必须正确地进行。精确的标定对于进一步的处理步骤是至关重要的,如传感器融合和实现算法的障碍检测,定位和映射,和控制。此外,传感器融合是自动驾驶应用中的重要任务之一,它将多个传感器获取的信息融合在一起,以减少单独使用传感器时的不确定性。
为解决自动驾驶汽车的传感器标定问题,我们提供了传感器标定工具箱OpenCalib。标定工具箱可以校准IMU、LiDAR、Camera和Radar等传感器。本文主要介绍了OpenCalib中一些标定工具的使用方法。如果你想知道具体的细节,你可以查看我们的开源代码。另外,我们的工具箱也有一些不足之处需要优化,我们将在未来继续优化我们的标定工具箱。

致谢

感谢上海AI实验室,提供了一套全面的传感器标定方法,再次贴上论文和源码地址:
论文地址:link
代码地址:link

你可能感兴趣的:(人工智能,机器学习,计算机视觉)