§ 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"