首页 文章详情

OpenCalib:为自动驾驶设计的多传感器标定工具箱

3D视觉工坊 | 563 2022-12-30 18:36 0 0 0
UniSMS (合一短信)

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

来源自动驾驶专栏 
点击进入—>3D视觉工坊学习交流群
  • 论文链接:https://arxiv.org/pdf/2205.14087.pdf
  • GitHub链接:https://github.com/PJLab-ADG/SensorsCalibration

方法

在本章节,我们介绍我们标定工具箱的细节信息,包括手动标定工具、自动标定工具、工厂标定工具和在线标定工具
A.手动的无标定物体的标定工具
手动标定是自动驾驶车辆标定方法中最简单的类型。尽管与其它方法相比,其原理和实现过程相当简单,但是用户需要在这些方法上花费足够时间才能够获得高精度和高可靠性的标定结果早期的手动标定方法依赖于标定物体,如棋盘格标定板或者普通箱子,标定过程通常在定制化的标定间中执行。然而,这种复杂的装置对于小型的自动驾驶公司和个体用户而言是成本高昂的
因此,我们的标定工具箱为用户提供在无标定物体和任意道路场景中用于自动驾驶车辆的四种手动标定工具。显然,包含明显且较好识别的特征(如树和交通标志)的道路场景将产生一个更好的标定结果。外参能够在用户友好的控制面板的左边进行调整,如下图所示,或者表格I和表格II中键盘作为控制输入来实现标定。较好标定场景的例子如下图所示。四种标定工具将在如下部分进行详细介绍。
1)激光雷达到相机标定:整个标定过程是通过调整内参和外参将道路场景中3D激光雷达点云和图像对齐。3D点云被表示为激光雷达坐标系中,接着点根据下式被转换到相机坐标系中:
其中,表示旋转参数以及表示平移参数,它们一起形成外参。接着,通过一个投影函数被投影到图像平面:
其中,为相机内参,它由相机特性(例如焦距和透镜畸变)定义,并且通过Zhang的方法标定。除了这些参数之外,调整的更新步骤和点尺寸也能够在面板上调节。值得一提的是,IntensityColor按钮能够从显示模式切换到强度地图显示模式,以及OverlapFilter按钮是用于消除0.4m深度内重叠的激光雷达点。
2激光雷达到激光雷达标定:这个标定过程是通过调整仅外参来实现原始点云和目标点云之间的3D点云配准原始点云被表示为,而目标点云被表示为,接着两个点云之间的刚体变换能够被表示为:
3雷达到激光雷达标定标定过程与激光雷达到激光雷达标定几乎相同,但是它实现2D雷达点云和3D激光雷达点云之间的配准。因此,需要调整更少的参数,损失一个自由度。
4)雷达到相机标定:对于雷达和相机的标定,由于雷达是一个两维的装置,因此我们在安装过程中保持它与地面平行。对于相机,我们需要找到它与地面对应的单应性矩阵。接着,我们在图像和鸟瞰图上可视化它,并且当两张图像显示对齐时,我们认为标定完成。下图展示如何计算相机到地面的单应性矩阵,在左右车道线上各选择两个点。
下图展示雷达在图像上和鸟瞰图上的投影结果。鸟瞰图上的平行线表示车道线方向。
B.自动的基于标定物体的标定工具
1)相机标定工业上通常使用的相机标定方法为Zhang的方法Zhang的方法通过放置在各种位姿的标定板来提取棋盘格标定板的角点,并且计算相机的内参和畸变参数。当标定相机内参时通常使用针孔模型,但是针孔模型仅为相机投影过程的简化模型。实际的相机镜头模组更为复杂,并且没有绝对的光学中心点。由于相机复杂的内部结构,因此缺乏一种有效的用于相机内参标定的定量评估方法
由于每个相机镜头的畸变程度不同,镜头畸变能够通过相机标定校正,从而生成畸变校正后的图像。畸变校正后的图像对之后感知或者与其它传感器联合标定而言至关重要。因此,有必要开发一种畸变的定量评估方法,以保证畸变标定的精度。我们基于Tang的方法开发用于相机畸变定量评估的程序。该方法容易实现,并且是一种执行相机畸变评估的自动化过程。
用于畸变评估的标定物体由钓鱼线和半透明纸组成。畸变参数评估的流程图如下图所示。
首先,相机被用于捕获标定物体的图像,并且标定物体占据整张图像。这张图像通过相机标定参数去畸变以获取畸变校正后的图像。接着,线段检测算法使用Canny描述子在畸变校正后的图像中提取直线段。由于非极大值抑制(NMS)的使用,因此线段是不连续的,并且使用线性插值来获取连续的直线。在高斯采样之后,获取了很多线性采样点。最终,通过最小二乘方法获取拟合后的直线。根据公式(4)和公式(5),获取采样点到拟合直线的均方根距离和最大误差距离。回归线能够表示为。假设给定条直线。
均方根距离和最大距离为用于评估畸变参数质量的测量指标
2)激光雷达到相机标定基于标定物体的激光雷达和相机标定方法依赖于观测放置在传感器系统前方的人工标定物体,同时通过这两种传感器来获取特征点的位置。对于激光雷达和相机的标定,现有的方法一般首先标定相机内参,并且接着标定激光雷达和相机的外参。如果在第一阶段没有正确标定相机内参,那么就很难精确地标定激光雷达和相机的外参。为了解决现有方法中相机内参不精确标定对于激光雷达到相机外参的影响,我们提出一种联合标定方法。如果想要了解具体的细节,请参考我们之前的工作(https://arxiv.org/pdf/2202.13708.pdf)。
我们设计一种新型的标定板模式,如下图所示,它包含一个用于相机内参标定的棋盘格标定板和若干个用于定位激光雷达点云的圆形孔洞
我们首先通过Zhang的方法标定相机初始内参和标定板到相机的初始外参。接着,从这些参数和标定板尺寸计算图像上的2D圆孔中心点。通过提取激光雷达点云中圆孔中心的位置,我们能够通过激光雷达到相机的标定参数将圆孔中心3D点投影到图像平面上。计算的2D圆孔中心和投影的2D圆孔中心形成多组2D点对。我们使用这些点对之间的欧氏距离来优化标定参数。同时,棋盘格标定板角点的3D-2D点重投影约束被加入到优化过程
整个标定过程旨在通过满足棋盘格标定板角点约束以实现激光雷达点云和图像之间更好的对齐效果,这也被认为是重要的评估标准之一。我们标定板上棋盘格角点的数量比圆形孔洞的数量多很多。因此,激光雷达到相机对齐误差的权重要大于标定板到相机对齐误差的权重,从而平衡两种损失函数的影响。总而言之,我们最小化如下的目标函数:
其中,表示标定板的棋盘格角点重投影误差,表示标定板的圆孔中心的重投影误差。在我们的实验中,被设置为1,被设置为60。能够通过如下公式计算:
其中,表示投影的像素坐标点,为实际检测到的像素点。
其中,表示投影的像素坐标点,为实际计算的像素点。
C.自动的无标定物体的标定工具
1)IMU朝向标定:IMU朝向标定旨在纠正IMU和车辆之间的前向安装误差。所以,我们仅标定IMU的偏航角偏移量来对齐方向,表示为。我们从行驶路径的每个时间戳获得车辆的方向,记为估计的行驶方向和测量的IMU偏航角之间的偏移量即为标定结果
我们基于传感器定位数据应用b-spline方法来平滑行驶路线。此外,不是一次行驶过程中所有的数据都被使用,仅挑选出直线行驶路径用于如下标定。通过删除其中驾驶朝向快速变化的数据(例如U型弯),我们能够得到实时的真实偏航角的精确近似。标定公式描述如下:
其中,为直线段路径集合。当然,为了提高标定精度,建议用户能够直接记录直线段数据用于标定,如下图所示。
2激光雷达到相机标定:激光雷达和相机之间的精确标定是自动驾驶中最常见的标定之一。基于单目视觉的感知系统以低成本实现令人满意的性能,但是没有提供可靠的3D几何信息。相机-激光雷达的融合感知是为了提高性能和可靠性相机和激光雷达融合的前提和假设是相机和激光雷达之间的精确标定,包括相机内参以及相机和激光雷达之间的外参。在激光雷达和相机被精确标定之后,由于车辆长期运动和其它因素(例如温度)的影响,标定参数将逐渐变得不精确。由于感知融合算法对标定参数的精度非常敏感,因此这能够严重降低感知融合算法的性能和可靠性。这时,通过标定间或者手动进行重新标定是复杂且不切实际的,所以我们开发一套工具在道路场景下自动标定激光雷达和相机。这个方法的具体细节能够在我们之前的工作(https://arxiv.org/pdf/2103.04558.pdf)中找到。该工作提出一种在常见道路场景中标定激光雷达和相机外参的方法。这种方法完全自动化,并且它的效率和精度也相对较高。
首先,由激光雷达和相机采集一组道路场景数据,并且接着从图像和点云中分别提取线特征,例如车道线和道路标志。如下图所示,我们通过BiSeNet-V2从图像以及通过强度和几何方法从点云中提取车道线和道路电线杆。
随后,设计一种代价函数用于优化初始外参标定结果,并且确保误差位于可接受的范围内。来在电线杆的像素和来自车道线的像素能够直接从类别标签“pole”和“road lane”中获取。结合分割结果,我们能够获取像素坐标的两个二进制掩码,定义如下:
从图像和点云提取线特征后,我们提出若干代价函数,在给定外参的情况下,衡量图像和点云的相关性。我们对掩码应用逆距离变换(IDT),以避免在之后优化中的重复局部极大值。最终生成的高度图定义如下:
然后,我们提出投影代价函数,这代表的投影像素与它们在图像上对应掩码之间的一致性。定义如下:
符号表示通过投影的像素位置获取高度值。中点的数量,并且被用于平衡电线杆和车道线之间的代价值。这个代价函数值越大,来自这两种数据的匹配越好。下图展示掩码和图像的标定投影结果。
3)激光雷达到IMU标定激光雷达和IMU的标定也是自动驾驶中常用的标定之一,并且它的标定精度对于激光雷达建图和定位模块具有很大的影响。一般而言,当标定激光雷达到IMU的外参时,通过判断激光雷达的局部建图是否良好来判断标定精度。标定过程是通过滑动窗口构建的局部地图来求解激光雷达到IMU的外参。这个标定工具是基于Liu等人的工作(https://arxiv.org/pdf/2010.08215.pdf)开发的。通过最小化协方差矩阵的特征值,将特征点分布到局部地图中相同的边缘线或者平面上。该方法通过最小化协方差矩阵的特征值来最小化特征点到特征平面或者边缘线的总距离,并且通过优化来实现激光雷达到IMU的外参标定的目的。BA算法最小化每个平面特征点到平面的距离,其计算公式如下:
其中,为窗口帧需要优化的点被投影到局部地图中。为某些特征(边缘线、平面)上的点。为平面法向量。优化的特征点位置和特征法向量(方向向量)能够被写成位姿的函数,所以仅位姿需要被优化。自适应的体素能够加速搜索特征提取,即在网格中的点属于相同的边缘线或者平面是未知的情况下,从1m开始迭代地划分网格。在该方法中,激光雷达在世界坐标系下任意时刻的位姿能够被获取,并且需要的粗略初始外参能够通过如下公式计算:
由于偏移量对系统的影响将随时间增加而逐渐增大,因此我们使用局部建图优化来进一步纠正它。滑动窗口中的第一帧表示为帧,并且当前帧表示为帧。众所周知,在时刻和时刻的IMU坐标系到世界坐标系的位姿变换关系为,激光雷达到IMU的位姿变换矩阵表示为,根据坐标系链式规则,激光雷达坐标系在时刻和时刻之间的变换关系能够通过如下公式获取:
根据该公式构建局部地图。在构建局部地图之后,进一步搜索从帧到后续帧的每个激光雷达点云帧和局部地图之间的对应关系。
本文建议根据下图来采集数据。它对标定场景有一些要求:a)确保地面足够平坦;b)确保周围有足够的特征,例如墙、车道线、电线杆、固定车辆等;c)待标定车辆根据下图轨迹循环行驶三次,并且车速保持在10km/h;d)尽量周围没有动态物体,例如车辆等
下图展示激光雷达到IMU映射的特征提取结果。
4)激光雷达到激光雷达标定在自动驾驶中,激光雷达扮演着重要的角色。激光雷达能够实时获取周围环境的三维结构信息,它一般能够在自动驾驶中构建高精度地图、定位、障碍物检测、跟踪以及预测。在自动驾驶车辆上安装单个激光雷达有时不能够覆盖车辆周围区域,或者无法满足盲区监测需求。因此,有必要适当地增加激光雷达的数量来增大可视范围。多激光雷达的数据融合需要多激光雷达坐标系的外参标定以获取每个坐标系的精确旋转和平移参数用于后续的数据处理。我们基于之前的工作(https://arxiv.org/pdf/2203.03182.pdf)开发一套用于多激光雷达标定的工具。
两个激光雷达之间的外参标定由两步实现:地平面对齐和非地面特征点配准。首先,从地面和非地面点云中提取并分割点云。接着,使用地面法向量进行地面配准来获取横滚角(roll)、俯仰角(pitch)和z轴平移作为初始外参。然后,考虑被转换的非地面点云的偏航角(yaw),并且计算两个激光雷达的最近点距离以获取最小距离对应的偏航角。随后,通过NICP方法和基于八叉树的优化来继续提高标定精度
在粗标定中,我们发现激光雷达能够容易地采样道路上的大量地平面信息。因此,我们算法的第一步是通过利用这一特性进行粗配准。假设包含最多点的最大平面被认为是地平面
其中,和表示平面厚度的阈值地平面被用于将副激光雷达地平面和主激光雷达地平面对齐:
其中,分别表示旋转轴、旋转角、主激光雷达法向量和副激光雷达法向量。变换矩阵能够通过罗德里格斯公式计算。值得注意的是,当被估计的俯仰角(pitch)/横滚角(roll)和实际的俯仰角(pitch)/横滚角(roll)之间的差值为时,会发生极端的情况。因此,该方法需要检查在标定后是否的大多数点落在地平面上。通过上述步骤,能够粗略估计下一步为的标定。代价函数能够简化为:
参数的数量由6下降为3。更重要的是,能够忽略地面点。
在优化标定过程中,我们采用NICP,它是一种迭代最近点(ICP)算法的变体,并且能够实现比ICP更好的性能。我们假设由于点云的稀疏性,点云特征并不明显,并且很难提取。NICP通过包含每个点的法向量来丰富点的特征,并且扩展每个点的感受域。此外,我们使用基于八叉树的优化来继续最小化位姿误差,如下图所示。
最初,两组点云被包含在一个立方体中。我们接着利用基于八叉树的方法将立方体等分成8个更小的立方体。
其中,表示父立方体,以及表示的子立方体。等分的过程迭代地重复进行以获取更多且更小的立方体。我们标记包含点的立方体为蓝色,以及不包含点的立方体为绿色,如上图所示。它们被进一步用符号表示。的体积计算如下:
其中,表示的数量。当小立方体的边长足够短时,我们能够近似被点云占据的空间体积为蓝色立方体的体积当两组点云精确对齐时,点云占据的空间体积达到最小,并且同时蓝色立方体的体积达到最小。所以问题能够被转化为:
考虑到当前位姿与正确位姿接近,我们通过扫描参数的作用域来继续优化上述公式。

本文仅做学术分享,如有侵权,请联系删文。


点击进入—>3D视觉工坊学习交流群


干货下载与学习

后台回复:巴塞罗自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

3D视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
2.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
3.国内首个面向工业级实战的点云处理课程
4.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
5.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
6.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
7.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

8.从零搭建一套结构光3D重建系统[理论+源码+实践]

9.单目深度估计方法:算法梳理与代码实现
10.自动驾驶中的深度学习模型部署实战
11.相机模型与标定(单目+双目+鱼眼)
12.重磅!四旋翼飞行器:算法与实战
13.ROS2从入门到精通:理论与实战
14.国内首个3D缺陷检测教程:理论、源码与实战
15.基于Open3D的点云处理入门与实战教程
16.透彻理解视觉ORB-SLAM3:理论基础+代码解析+算法改进

重磅!粉丝学习交流群已成立

交流群要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、ORB-SLAM系列源码交流、深度估计、TOF、求职交流等方向。
扫描以下二维码,添加小助理微信(dddvisiona),一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿,微信号:dddvisiona

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看,3天内无条件退款
高质量教程资料、答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~  


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter