【只谈干货】单目相机的内外参标定

本教程所使用标定工具为一个9x7的棋盘格,单格尺寸123mm。

1. 内参标定

1.1 借助ROS中的usb_cam功能包,具体实现如下:

  • 安装usb_cam功能包
    $ sudo apt-get install ros-kinetic-usb-cam
  • 安装标定功能包
    $ sudo apt-get install ros-kinetic-camera-calibration
  • 启动摄像头
    $ roslaunch usb_cam usb_cam-test.launch
  • 启动标定包
    $ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.123 image:=/usb_cam/image_raw camera:=/usb_cam
    注:8x6为棋盘格的角点个数,0.123为单格尺寸(单位m)
  • 标定程序启动后会看到一个可视化界面,右上角的x, y, size, skew下面的进度条代表的着该方向/尺度/角度下的样本数量;
  • 不断移动标定板,当样本数量满足标定要求后,下方的calibrate会变成绿色;
  • 点击calibrate,系统会卡住一段时间,计算完成后,下方的save会变成绿色;
  • 点击save,标定结果会储存到计算机下的tmp文件夹中。

1.2 使用matlab中的camera calibrator工具

2. 外参标定

一般来说,外参都是相对另一参考系而言的。我们这里可以将其放在机器人的中心或者汽车的后轴中心上,定义前进方向为x轴正方向,y轴朝左,z轴朝上,形成一个右手系。

  • 将棋盘格平放在地面上,格线与x轴对齐;
  • 在棋盘格上选出至少8个相机视野内可以看到的点;
  • 记录下这8个点的像素坐标;
  • 量出其中一个点在选定参考系下的x, y, z坐标,通过单格尺寸计算出其余7个点的三维坐标;
  • 利用OpenCV中的solvePnP函数即可计算出相机相对选定参考系的旋转向量和平移向量。
    https://docs.opencv.org/3.4/d9/d0c/group__calib3d.html#ga549c2075fac14829ff4a58bc931c033d
    在这里插入图片描述

to be continue…

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值