§ 2.2 相机标定 (彩色相机+IR相机 )

1. 制作标定板

在源码文件夹里有两个尺寸标定板的PDF文件:

  • Radon相机标定板_A4纸打印_格子尺寸17.6mm.pdf
  • Radon相机标定板_A2纸打印_格子尺寸36mm.pdf

标定板越大越好,根据自己的需要选择不同的尺寸,因为Astra分辨率比较低,因此下面以A2纸版本的标定板为例进行讲解。

Radon相机标定板_A2纸打印_格子尺寸36mm.pdf 打印到A2纸张上,选择无边距打印+实际尺寸。正常情况下,打印出来的格子尺寸就是36mm 。

2. 相机标定 (彩色相机)

2.1 修改标定板参数

修改 config/rgb_camera/camera_calibration.yaml 为实际值。

#############################
## 相机标定的参数
#############################
caliboard :         # 标定板
  row : 9           # 行数
  column : 14       # 列数
  ceil_size : 36    # 格子的尺寸,单位mm
  type: "radon"     # 标定板类型
cali_img_source_path: 'data/rgb_camera/caliboard' # 标定图像的存储路径
cali_info_save_path : 'config/rgb_camera' # 相机标定信息存储路径

注:只需要修改 ceil_size ,将其修改为实际测量尺寸。

2.2 采集标定板图像

标定板比较大,因此选择张贴到墙面上, 移动相机拍摄所需的标定图像。

指定标定板图像的存储路径为 data/rgb_camera/caliboard 。采集前,请先将 data/rgb_camera/caliboard 文件夹里的图像删除。

python astra.py --video_mode "color" --img_path "data/rgb_camera/caliboard"

选中图像窗口,按 S 键保存图像,采集40-50张图像。

2.3 相机标定

执行相机标定脚本

python camera_calibration.py --config_path 'config/rgb_camera/camera_calibration.yaml'

输出日志

$ python camera_calibration.py --config_path 'config/rgb_camera/camera_calibration.yaml'

检测到50张标定图像
相机内参 intrinsic
[[522.423   0.    309.645]
[  0.    521.205 236.09 ]
[  0.      0.      1.   ]]
畸变参数 distortion
[[ 0.064 -0.333  0.    -0.     0.371]]

3. 相机标定 (IR相机)

3.1 修改标定板参数

修改 config/ir_camera/camera_calibration.yaml 为实际值。

#############################
## 相机标定的配置文件(IR相机)
#############################
caliboard :         # 标定板
  row : 9           # 行数
  column : 14       # 列数
  ceil_size : 36  # 格子的尺寸,单位mm
  type: "radon"     # 标定板类型
cali_img_source_path: 'data/ir_camera/caliboard' # 标定图像的存储路径
cali_info_save_path : 'config/ir_camera' # 相机标定信息存储路径

注:只需要修改 ceil_size ,将其修改为实际测量尺寸。

3.2 采集标定板图像

将Astra 3D相机的红外投影仪遮挡住。Radon标定板比较大,因此选择张贴到墙面上,移动相机拍摄所需的标定图像。

是否在样本采集的时候打开红外补光灯 ?

如果是白天,室内光照充足的情况下,可以不使用补光灯,但是需要打开直方图均衡开关。

如果是晚上,红外光线过于微弱,想要获取清晰的红外图像,则需要使用红外补光灯。

但是如果你所使用的标定板表面材质反光,且红外补光灯又是电光源的情况下,反射会比较厉害,拍摄的图像没办法正确识别其中的角点。因此在这个情况下,建议在白天光线条件好的时候采集样本。

指定标定板图像的存储路径为 data/ir_camera/caliboard 。在采集前,请先将 data/ir_camera/caliboard 文件夹里面的图像删除。

python astra.py --video_mode "ir" --equal_hist=true --img_path "data/ir_camera/caliboard"

选中图像窗口,按 S 键保存图像,采集40-50张图像。

3.3 相机标定

执行相机标定脚本

python camera_calibration.py --config_path 'config/ir_camera/camera_calibration.yaml'

输出日志:

python .\camera_calibration.py --config_path 'config/ir_camera/camera_calibration.yaml'

检测到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]]