§ 2.2 相机标定 (彩色相机+IR相机 )
注意事项
Dabai / Dabai Pro与Gemini /Gemini Pro 不需要进行相机标定,可以直接从上位机导出的
.ini
文件。从相机的Flash读取固件中的相机内参等信息。
1. 准备工作
1.1 制作标定板
在源码文件夹
06.相机标定板-Radon
里有两个尺寸标定板的PDF文件:
-
Radon相机标定板_A4纸打印_格子尺寸17.6mm.pdf
-
Radon相机标定板_A2纸打印_格子尺寸36mm.pdf
标定板越大越好,根据自己的需要选择不同的尺寸,因为Astra分辨率比较低,因此下面以A2纸版本的标定板为例进行讲解。
将
Radon相机标定板_A2纸打印_格子尺寸36mm.pdf
打印到A2纸张上,选择无边距打印+实际尺寸。正常情况下,打印出来的格子尺寸就是36mm 。
1.2 修改标定板参数
修改
config/caliboard.yaml
为实际值。
# 标定板配置文件
caliboard : # 标定板
row : 9 # 行数
column : 14 # 列数
ceil_size : 36 # 格子的尺寸,单位mm
type: "radon" # 标定板类型
注:只需要修改
ceil_size
,将其修改为实际测量尺寸。
2. 相机标定 (彩色相机)
2.1 采集标定板图像
标定板比较大,因此选择张贴到墙面上,移动相机拍摄所需的标定图像。
指定标定板图像的存储路径为
data/<相机型号>/rgb_camera/caliboard
。采集前,请先将
data/<相机型号>/rgb_camera/caliboard
文件夹里的图像删除。
2.1.1 Astra Pro RGB相机 标定板图像采集
采集Astra Pro彩色相机的标定板图片。
Windows
python test_astra.py --video_mode "color" --img_path "data/Astra Pro/rgb_camera/caliboard"
Ubuntu
python3 test_astra.py --video_mode "color" --img_path "data/Astra Pro/rgb_camera/caliboard"
选中图像窗口,按
S
键保存图像,采集40-50张图像。
2.1.2 Astra S RGB相机 标定板图像采集
采集Astra S彩色相机的标定板图片。
Windows
python test_astra.py --video_mode "color" --img_path "data/Astra S/rgb_camera/caliboard"
Ubuntu
python3 test_astra.py --video_mode "color" --img_path "data/Astra S/rgb_camera/caliboard"
采集步骤见
2.1.1
2.2 相机标定
2.2.1 Astra Pro RGB相机标定
参数默认是按照Astra Pro的RGB相机设置的,可以直接执行相机标定脚本。
Windows
python test_camera_calibration.py
Ubuntu
python3 test_camera_calibration.py
输出日志
python .\test_camera_calibration.py pybullet build time: Nov 24 2021 13:15:19 检测到50张标定图像 相机内参 intrinsic [[602.005 0. 333.335] [ 0. 600.856 233.002] [ 0. 0. 1. ]] 畸变参数 distortion [[ 0.023 0.498 -0.004 -0. -1.483]]
完整的相机标定脚本
python test_camera_calibration.py --config_path "config/caliboard.yaml" --img_folder "data/Astra Pro/rgb_camera/caliboard" --save_path "config/Astra Pro/rgb_camera"
2.2.2 Astra S RGB相机标定
Windows
python test_camera_calibration.py --config_path "config/caliboard.yaml" --img_folder "data/Astra S/rgb_camera/caliboard" --save_path "config/Astra S/rgb_camera"
Ubuntu
python3 test_camera_calibration.py --config_path "config/caliboard.yaml" --img_folder "data/Astra S/rgb_camera/caliboard" --save_path "config/Astra S/rgb_camera"
3. 相机标定 (IR相机)
注意事项
红外相机一般是不需要标定的,只标定RGB相机即可。
如果你想获得IR相机坐标系下的点云,则需要进行IR相机的相机标定。
反之,如果你只是需要获取RGB相机下的点云,则不需要对IR相机进行标定。
3.1 采集标定板图像
将Astra 3D相机的红外投影仪遮挡住。Radon标定板比较大,因此选择张贴到墙面上,移动相机拍摄所需的标定图像。
是否在样本采集的时候打开红外补光灯 ?
如果是白天,室内光照充足的情况下,可以不使用补光灯,但是需要打开直方图均衡开关。
如果是晚上,红外光线过于微弱,想要获取清晰的红外图像,则需要使用红外补光灯。
但是如果你所使用的标定板表面材质反光,且红外补光灯又是电光源的情况下,反射会比较厉害,拍摄的图像没办法正确识别其中的角点。因此在这个情况下,建议在白天光线条件好的时候采集样本。
指定标定板图像的存储路径为
data/<相机型号>/ir_camera/caliboard
。采集前,请先将
data/<相机型号>/ir_camera/caliboard
文件夹里的图像删除。
3.1.1 Astra Pro IR相机 标定板图像采集
Windows
python test_astra.py --video_mode "ir" --equal_hist=true --img_path "data/Astra Pro/ir_camera/caliboard"
Ubuntu
python3 test_astra.py --video_mode "ir" --equal_hist=true --img_path "data/Astra Pro/ir_camera/caliboard"
选中图像窗口,按
S
键保存图像,采集40-50张图像。
3.1.2 Astra S IR相机 标定板图像采集
Windows
python test_astra.py --video_mode "ir" --equal_hist=true --img_path "data/Astra S/ir_camera/caliboard"
Ubuntu
python3 test_astra.py --video_mode "ir" --equal_hist=true --img_path "data/Astra S/ir_camera/caliboard"
3.2 相机标定
3.2.1 Astra Pro IR相机标定
执行相机标定脚本
Windows
python test_camera_calibration.py --config_path "config/caliboard.yaml" --img_folder "data/Astra Pro/ir_camera/caliboard" --save_path "config/Astra Pro/ir_camera"
Ubuntu
python3 test_camera_calibration.py --config_path "config/caliboard.yaml" --img_folder "data/Astra Pro/ir_camera/caliboard" --save_path "config/Astra Pro/ir_camera"
输出日志:
> python test_camera_calibration.py --config_path "config/caliboard.yaml" --img_folder "data/Astra Pro/ir_camera/caliboard" --save_path "config/Astra Pro/ir_camera" pybullet build time: Nov 24 2021 13:15:19 检测到58张标定图像 相机内参 intrinsic [[584.336 0. 323.739] [ 0. 583.84 240.568] [ 0. 0. 1. ]] 畸变参数 distortion [[-0.101 0.376 -0.002 0.002 -0.442]]
3.2.2 Astra S IR相机标定
Windows
python test_camera_calibration.py --config_path "config/caliboard.yaml" --img_folder "data/Astra S/ir_camera/caliboard" --save_path "config/Astra s/ir_camera"
Ubuntu
python3 test_camera_calibration.py --config_path "config/caliboard.yaml" --img_folder "data/Astra S/ir_camera/caliboard" --save_path "config/Astra s/ir_camera"