Automatic Online Calibration of Cameras and Lasers 论文阅读
本文介绍了一种用于自动驾驶中相机和激光雷达在线联合标定的方法,是在线联合标定的开山之作。
本文使用了一个基本的假设,即点云深度不连续与图像边缘对齐,文中的具体阐述是:其他条件相同的情况下,使用精确校准时,激光数据中的深度不连续点应该比不使用精确校准时时更加频繁的投射到图像边缘上。基于本假设,文中提出了一些方法来解决在线标定中的问题。这篇文章做出了两种贡献:
- 提出一种概率检测算法,可以实时,高可靠地判断传感器是否准确标定
- 提出一种连续标定算法,针对缓慢的外参漂移,在线更新外参
针对第二点,文中说虽然实时解决具有任意差初始化的校准任然不可行,但是我们可以从已经校准好的参数进行跟踪,当出现微小扰动时可以进行跟踪和校准。
方法介绍
图像信息处理
- 首先使用边缘检测算法检测图像边缘,得到图像边缘图,本文使用该像素与周围8像素差值的最大绝对值
- 使用图像逆距离变换赋予非边缘像素以获得每一个像素的边缘度。

激光雷达信息处理
每条扫面线单独考虑,计算每一条扫描线中激光点与它左右点的不临近度,过滤不临近度小于30cm的,剩下的点组成一个新的点云用于之后的处理。

错误校准检测
$X{p}^{f}$代表激光点云中最后过滤剩下的点云,$D{i, j}^{f}$代表图像数据处理中的深度不连续度,下标i,j是不连续点投影到图像中对应的像素点下标。
对于每一个校准C都会有有一个$J{C}$与之对应。校准C是一个六维变量,我们选择其几个维度附加微小的扰动,可以得到附加扰动后的$J{C}$,虽然$J{C}$不是一个凸函数,但是对于任意一个比较好的校准参数,周围应该是凸性质的。根据这个假设,我们可以计算周围的几个抽样值,如果扰动得到的值都比原来的差,那么变量$F{C}$应该为1,如果比原来的好应该为0。如此我们测试得到的数据图为:

可以看到,窗口为9帧的时候区分度更加明显。
对于很多帧我们可以画出直方图:

横轴为$F_{C}$的值,竖轴为出现的频次。注意右边上下两个图的范围。
我们可以使用正太分布来拟合得到的数据,然后使用公式$P(\text { calibrated })=\frac{e^{-.5\left(x-\mu{1}\right)^{2} / \sigma{1}^{2}}}{e^{-.5\left(x-\mu{1}\right)^{2} / \sigma{1}^{2}}+e^{-.5\left(x-\mu{2}\right)^{2} / \sigma{2}^{2}}}$来计算校准C是正确校准的概率。
在线错误校准纠正
上面介绍了如何判断一个校准是否是比较好的校准,下面介绍如何进行实时校准。文中说虽然对于差度比较大的校准进行实时校准是不太可能的,但是对于一些差度比较好的校准是可行的,还可以对较好的校准进行跟踪。文中提出的方法是对随机抽样的结果使用贪心算法,重复找到最优解。
实验结果
在线错误校准检测
在九帧窗口上实验,对于0.25度和10cm误差成功率是100%,对于0.1度成功率为90%,也可以通过增加窗口大小来提升成功率,但是代价是实时性会下降。
在线错误校准纠正
yaw轴跟踪的比较好,误差为0.06度,pitch轴和roll轴跟踪的稍微差一点,为0.12度。总体来说效果还是比较好的。
