本文经自动驾驶之心公众号授权转载,转载请联系出处。
相机标定任务是很多高级功能的上游,无论是深度学习方案或是传统方案都非常依赖相机标定精度,今天就为大家盘点下相机内参标定常用的工具箱。
1)OpenCV标定工具箱
opencv这个不用多说了,支持多种相机模型标定(pinhole、Kannala Brandt、Mei)
链接:https://docs.opencv.org/4.x/dc/dbb/tutorial_py_calibration.html
2)事件相机内参、标定工具 E-Calib
一种快速、稳健、准确的事件相机机校准工具
链接:https://github.com/mohammedsalah98/E_Calib
3)OcamCalib(Ocam模型)
链接:https://sites.google.com/site/scarabotix/ocamcalib-omnidirectional-camera-calibration-toolbox-for-matlab
4)Kalibr
支持pinhole、FOV、等距模型、双球模型、Extended Unified等标定!
Kalibr是一个解决以下标定问题的工具箱:
- 多摄像机标定:具有非全局共享重叠视场的摄像机系统的内参和外参校准,支持各种相机模型;
- 视觉惯性标定(CAM-IMU):相机系统IMU的空间和时间校准以及IMU固有参数标定;
- 多惯性标定(IMU-IMU):IMU相对于基本惯性传感器的空间和时间校准以及IMU固有参数;
- Rolling Shutter Camera 标定:完整内参标定;
链接:https://github.com/ethz-asl/kalibr
5)ROS camera calibration
自动提示靶标摆放位置,camera_calibration将与满足标准ROS相机接口的任何相机驱动程序节点一起工作!支持pinhole、fisheye等相机标定!
链接:http://wiki.ros.org/camera_calibration
6)CameraCalibration
支持pinhole、Kannala Brandt,集合了相机标定相关的多个脚本工具,便于完成完整的车载环视相机标定流程 各代码文件均可单独使用,此外也提供了外部接口以供调用!
链接:https://github.com/dyfcalid/CameraCalibration
7)Basalt
Basalt支持相机、IMU和运动捕捉校准,视觉惯性里程计和测绘,模拟环境,用于测试系统的不同组件!
链接:https://github.com/VladyslavUsenko/basalt-mirror?tab=readme-ov-file
8)OpenCalib
OpenCalib工具箱可用于校准IMU、激光雷达、相机和雷达等传感器。
链接:https://github.com/PJLab-ADG/SensorsCalibration/tree/master
9)Matlab自带内参标定
Matlab自带的工具箱,校准单相机或立体相机,并使用针孔和鱼眼摄像头模型估计相机的内部、外部和失真参数!
链接:https://www.mathworks.com/help/vision/camera-calibration.html
10)通用相机模型
可标任意相机、镜头, repo包含一个用于精确几何相机校准的工具,它支持通用相机型号的校准,几乎适用于所有相机,并允许高度准确的校准。该工具还支持校准固定摄像设备,此外还支持为Intel D435或Occipital Structure Core等立体相机估计准确的深度图像。
链接:https://github.com/puzzlepaint/camera_calibration
11)BabelCalib
论文链接:BabelCalib: A Universal Approach to Calibrating Central Cameras,支持任意中心投影相机模型。BabelCalib是一个校准框架,可以估计所有类型的中央投影相机的相机模型,校准功能强大且完全自动。BabelCalib提供具有附加失真的针孔相机模型,以及全方位相机和折反射装置。支持的摄影机模型列在解算器目录下,BabelCalib支持由一组校准板组成的校准目标,即多个平面目标。该方法与标定板上的图案类型无关。它对不准确定位的角点、外围检测和遮挡目标具有鲁棒性。
链接:https://github.com/ylochman/babelcalib