最近咨询激光雷达和相机标定相关的内容比较多
由于半固态雷达低成本的优势,现在正在越来越多的得到应用。但是半固态雷达由于FOV比较小,同时现在传感器布置方案中的overlap很小,基于多激光匹配的方案容易出现标定结果的不稳定。因此跨视角联合标定在当前的智驾系统中拥有非常重要的意义。同样在不少L4方案中,同一辆车可能会同时出现机械式雷达和半固态雷达。由于不同雷达的成像原理的不同,它们往往也拥有不同的scan pattern,也因此需要一种通用的特征提取与关联方式。最后,当前智驾车辆普遍拥有多个相机,在没有产线的情况下相机和激光雷达的联合标定会非常费力,产线标定的精度也一般不能满足道路场景的需求。因此需要一款在自然场景下实现自动标定的方法。在这样的需求背景下,由MARS实验室于2021年发表并开源的MLCC是一款非常有竞争力的自然场景多激光,激光相机联合标定方式。这套标定方案具有非常理想的标定精度与鲁棒性。
多激光雷达跨视角联合标定
在MLCC中使用自适应提速化的方式提取平面特征,以八叉树的数据结构存储特征地图,并通过八叉树递归的方式构建点面误差作为局部地图一致性评价指标。下面将分别介绍特征地图的提取,存储与遍历;损失函数的构建;以及损失函数建立,简化以及解析形式的二阶近似的计算。
自适应体素化特征提取
评估地图一致性的一个直观方法就是看“静态的平面特征有多厚”。在MLCC中使用了自适应体素化方法进行平面特征提取,并通过提取的平面特征构建局部地图的一致性指标用于优化多激光雷达外参。
论文中展示的自适应平面体素特征,可以发现大块的平面被分割成大的体素,小块的平面也可以被分割出来(比如树叶),这极大提升了标定方案对场景的适应性
这种方法可以达到快速且精细的点云平面特征提取与关联,可以在很多路端场景下建立约束的同时,避免了频繁建立KD树搜索最近邻的造成的性能开销;此外这种方式还兼容了所有型号雷达的特征提取:只要是个测距准确的仪器,不管什么样的扫描形式都可以用这种方式实现特征的提取与关联,机械式-固态联合标定都可以搞定,保障了标定方案的通用性,真正做到“不挑场景,不挑雷达,不挑安装方式”。
优化问题与损失函数的构建:
下面将看到在三个阶段中,虽然各自优化问题的构建和优化的目标不一样,但是其实损失函数的简化与二阶近似是一样的,也就是说这三个阶段的优化其实是可以放在一个框架下进行的。
损失函数的简化与二阶近似
这样损失函数就可以被简化为一个跟点云和法向量无关,只和位姿有关的函数,大大缩小了优化的自由度,便于进行下一步的求导,二阶近似与优化。
简化后损失函数的二阶近似与优化
从式中我们可以看到,位姿的变化引起点云坐标的变化,从而引起局部地图一致性发生变化。因此根据链式求导法则,需要先对点云坐标求扰动,损失函数的二阶近似如下:
假设点坐标的covariance没有重数大于1的特征值,黑塞矩阵中的每一个元素表示为
xxx
其中
通过对损失函数的截取,就可以实现一阶段,二阶段和三阶段的优化。论文中并没有使用ceres等开源优化库进行优化,而是使用了一套自己写的LM进行优化。很大程度上降低了代码的可读性,如果有希望使用这套方案进行多激光联合标定的读者可能需要多琢磨琢磨代码。
激光相机联合标定
基于自适应体素特征的点云边缘提取
图像的边缘提取非常成熟,通过canny等方式就可以完成,原论文中也是这么做的。但是点云的边缘提取容易产生很多的outlier,影响后续标定的精度和稳定性。文中作者基于自适应体素的平面特征,提出了一个鲁棒的边缘特征提取方法:通过对比相邻体素的法向量,如果两个平面体素法向量的夹角超过某一阈值,就将这两个平面相交的部分提出作为一个edge。下图就非常直观得展示了这个过程和效果。
特征对应与优化问题构建
文中并没有给出,代码中直接通过构建ceres::AutoDiffCostFunction
进行自动求导和计算,具体可以看代码。
小结
这套方案给出的自适应体素的方法提取平面和边缘特征是非常实用,以及值得借鉴的。整套标定方案也具有很搞的精度和强鲁棒性。新上手也可以从中学习点云着色等操作,是一套非常值得深入研究的多传感器标定方案。这个但是这套方案不是7自由度,带temporal的标定,对多传感器时间同步要求比较高,而且对场景有点要求,比如那种都是地面点,两边没有约束的场景,就有可能跑飞,或者优化不出来,这个需要注意。