https://zhuanlan.zhihu.com/p/404762012
▊ 1. target-based方法
一般就是使用标定板,可以是一块普通的矩形板,可以添加视觉效果(比如棋盘格,ArUco),可以在矩形板上镂空出特定形状。
1.0 CamLaserCalibraTool (2004c)
1.2 cam_lidar_calib (2010c)
来自密歇根大学,ROS / C++实现。
第二种方法是基于3D-3D correspondence,与方法一主要区别是图像中特征的提取。通过采用ArUco二维码,可直接计算出角点在相机坐标系的3D坐标,然后利用ICP求解外参。
该方法的3D角点提取方式比较独特。基于点云反射强度和chessboard颜色模式的相关性,利用一个chessboard model来拟合(匹配)分割的点云,从而利用chessboard model的角点位置表示chessboard点云中角点位置。
1.6 Matlab Lidar Toolbox (2018m)
target-based方法,使用了chessboard, 理论上采集一个pose就可以求解。特征提取分别自动提取chessboard在相机和激光雷达坐标系的平面和边缘信息,利用line correspondence (direction constraint + point to line constraint)和plane correspondence (normal constraint + point to plane constraint)进行标定。
该开源代码也实现了Matlab Lidar Toolbox (2018m)参考论文中点云边缘提取的方法:
1)先ransac拟合平面
2)找到每条scanline的端点(边缘点)
3)将标定板点云投影到拟合平面
4)拟合每条scan line
5)将边缘点投影到拟合的scan line
6)用ransac拟合边缘,去除边缘点粗差
1.8 livox_camera_lidar_calibration(2020c)
Livox官方提供的Lidar-Camera标定代码,图像和点云都是手动标点。
1.9 ACSC (2020p)
来自北航,python实现,针对固态激光雷达Livox.
提出多帧点云集成精化算法(temporal-spatial-based geometric feature refinement)和基于反射强度分布的角点估计方法(reflectance intensity distribution-based 3D corner estimation )。自动提取2D和3D角点,然后用基于Ransac的PnP求解。
1.11 autoware
采用标定板的方法 (calibration_tookit, autoware1.10之后没有)
最新版只有autoware_camera_lidar_calibrator, 直接手动选点的方法,在下文介绍。
使用标定板结果更准确一些,但是操作不方便。
1)需要手动grab多个关键帧
2)使用glviewer显示点云,不好调整视角
3)需要手动选择平面点云
▊ 2. targetless方法
2.1 apollo
是基于自然场景的targetless方法,不需要手动标记,但是需要较准确初值。
2.4 livox camera calib (2020c)
来自香港大学。分别提取点云和图像中的边缘特征,然后匹配特征,最后优化求解最佳外参来更好地对齐点云边缘和图像边缘。
文章知识点与官方知识档案匹配,可进一步学习相关知识OpenCV技能树OpenCV中的深度学习图像分类11187 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!