登龙web
这是个人第 111 篇原创算法
今天在家总结了下标定 ZED 相机的步骤,方便开学后直接开整。
编程
1、准备工做
-
一个 8x6 的棋盘标定板,边长 10.8 cm,由于标定用的是内部角点,因此实际打印出是 9x7 大小 -
保证一个 5m X 5m 的无遮挡环境 -
一个发布了左右图像到 ROS 中的双目相机 -
标定板连接: -
http://wiki.ros.org/camera_calibration/Tutorials/StereoCalibration?action=AttachFile&do=view&target=check-108.pdf
2、编译和安装驱动
# rosdep 用来安装指定包的依赖项
rosdep install camera_calibration
# 编译 ROS 标定工具
rosmake camera_calibration
3、发布图像主题
确保双目相机图片主题已经发布到 ROS 中,使用下面的命令查看:微信
rostopic list
查看是否有 ZED 的 left 和 right 的 image_raw 主题:app
/my_stereo/left/camera_info
/my_stereo/left/image_raw
/my_stereo/right/camera_info
/my_stereo/right/image_raw
/my_stereo_both/parameter_descriptions
/my_stereo_both/parameter_updates
/my_stereo_l/parameter_descriptions
/my_stereo_l/parameter_updates
/my_stereo_r/parameter_descriptions
4、启动 ROS 标定工具
键入启动指令运行 Python 标定脚本,添加标定板和图像主题参数:编辑器
rosrun camera_calibration cameracalibrator.py --approximate 0.1 --size 8x6 --square 0.108 right:=/my_stereo/right/image_raw left:=/my_stereo/left/image_raw right_camera:=/my_stereo/right left_camera:=/my_stereo/left
参数解释以下:工具
-
--approximate:摄像机校准器能够处理时间戳不彻底相同的图像,当前设置为 0.1 秒,意思是只要时间戳差小于 0.1 秒,标定程序就能够正常运行。 -
--size:标定板内角点大小 8x6 -
--square:标定板边长 0.108,单位 m -
right:右相机图像主题 -
left:左相机图像主题 -
right_camera:右相机 -
left_camera:左相机
启动界面以下,把棋盘格放到相机视野中,标定过程当中 X,Y,Size 会不断变化:flex

5、开始标定
5.1 水平拿着标定板
确保手拿着标定板长的这一边,不要拿反了:url

5.2 移动标定板
为了获得好的标定结果,须要在相机视野里面移动标定板,标定板位置以下:spa
-
X 轴标定:移动到视野的最左边,最右边 -
Y 轴标定:移动到视野的最上方,最底部 -
倾斜标定:改变标定板的角度,斜着拿 -
Size 标定:移动标定板充满整个相机视野 -
X,Y 和 Size 一块儿标定:保持标定板倾斜启动到视野的最左,最右,最上,最下
一些标定画面以下:

5.3 标定结果
当你移动标定板使得标定程序有了足够的数据计算标定矩阵时,程序中的标定按钮「CALIBRATE」就会变亮,而后点击便可生成标定结果:

侧边栏会出现标定精度和尺寸:
-
epi 为标定精度,当前为 0.16 像素 -
dim 为标定尺寸,当前为 0.108 米
在终端会生成左右图像的标定矩阵,这里截取左右相机的内参矩阵 K 和畸变矩阵 distortion:
Left:
K = [425.19601412158482, 0.0, 308.29689772295882, 0.0, 426.02702697756899, 223.53789948448997, 0.0, 0.0, 1.0]
Right:
K = [425.18741896821433, 0.0, 323.8787136811938, 0.0, 426.46867413824884, 226.19589833365407, 0.0, 0.0, 1.0]
[narrow_stereo/left]
distortion
-0.314202 0.091935 0.001295 -0.001620 0.0000
[narrow_stereo/right]
distortion
-0.305505 0.082701 0.001967 -0.001641 0.0000
而后点击侧边栏的「SAVE」按钮保存标定结果到 /tmp/calibrationdata.tar.gz
,至此双目相机内参标定完成!
厦大研一工科男,与你分享编程,AI 算法等技术干货!精品文章创做不易,谢谢关注,欢迎在看。

点击阅读原文,查看更多优质文章!
本文分享自微信公众号 - 登龙(DLonngv)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。