传感器标定(一)摄像头内参标定

一、使用ROS进行手动标定安装

1、安装 image-view &usb_cam ⽤于驱动相机

cpp 复制代码
sudo apt-get install ros-melodic-image-view
sudo apt-get install ros-melodic-usb-cam

2、查看系统视频设备

v4l2-

ctl -d /dev/video0 --all 查询所有相机具体的参数包括width和height

cpp 复制代码
ls /dev/video*
ls /dev/camera*
v4l2-ctl -d /dev/video0 --all

3、修改配置文件

cpp 复制代码
roscd usb_cam
cd launch
sudo gedit usb_cam-test.launch
cpp 复制代码
<launch>
<node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
<!-- modify the video device to your device -->
<param name="video_device" value="/dev/video0" />
<!-- modify the size of your device -->
<param name="image_width" value="1920" />
<param name="image_height" value="1080" />
<param name="pixel_format" value="yuyv" />
<param name="camera_frame_id" value="usb_cam" />
<param name="io_method" value="mmap"/>
</node>
<node name="image_view" pkg="image_view" type="image_view" respawn="false"
output="screen">
<remap from="image" to="/usb_cam/image_raw"/>
<param name="autosize" value="true" />
</node>
</launch>

4、开启相机

启动有warning例如提⽰校准配置⽂件 head_camera.yaml not found ,这个是正常的,我们标定
完后才会⽣成这个配置⽂件。

cpp 复制代码
roslaunch usb_cam usb_cam-test.launch

5、根据棋盘格修改参数

  • ⼀个是size参数为棋盘格⻆点数量⽐如 8x9=72 个格⼦的棋盘格,⻆点个数为 7x8=63 个,size
    参数就要写 7x8 ;
  • 另外⼀个参数为square,传⼊的参数为棋盘格⼀个小格⼦的宽度(注意单位为m);
  • image:=/usb_cam/image_raw 标定当前订阅图像来源⾃名为 /usb_cam/image_raw 的
    topic;
  • camera:=/usb_cam 为摄像机名。
cpp 复制代码
rosrun camera_calibration cameracalibrator.py --size 7x6 --square 0.05 image:=/usb_cam/image_raw camera:=/usb_cam

6、图像采集

相机数据采集的过程需要分为两组互相配合,⼀组使⽤ROS程序进⾏采集;另⼀组⼿持棋盘格,在图像

视野范围内进⾏操作和移动。⽰例使⽤的标定板为 7×6 个 50mm×50mm ⼤小的标准棋盘格进⾏。注意,这

⾥的7×6指的是有横向7个⻆点(而⾮格⼦)与纵向6个⻆点。

  • ⼿持棋盘格要求:

    每次采集尽量保持稳定,最终成像光线适中,图像清晰;

    ⼿持棋盘格时不能对棋盘格进⾏遮挡,不能离开相机视野范围内;

    采集图像类型需要丰富多样,包含:近距离图像、中距离图像、远距离图像、左右倾斜图像、

    上下倾斜图像、轻微旋转图像、较⼤旋转图像、相机靠近左视野边缘图像、相机靠近右视野边

    缘图像等;采集有效图像的数量在50张左右。

  • 界⾯中的 X , Y , size , skew 的含义:

    X :表⽰标定板在视野中的左右位置。

    Y :表⽰标定板在视野中的上下位置。

    size :标定板在占视野的尺⼨⼤小,也可以理解为标定板离摄像头的远近。

    skew :标定板在视野中的倾斜位置

  • 标定实操技巧:

    在相机视野范围内且能识别棋盘格的前提下,左右、上下和前后移动范围尽可能⼤⼀些,将有助于更快

    地满⾜ X , Y , Size 的要求;边移动边扭转标定板,可以更快完成 Skew 。当 X 、 Y 、 Size 、 Skew 四个

    都变成绿⾊,然后就可以看到 CALIBRATE 这个按钮变成⻘⾊,表明已经采到⾜够多的图⽚数据可供标定

    了。

7、开始标定

点击 CALCULATE 进⾏标定会稍微有点卡顿,不要担⼼后台正在进⾏标定,标定完成后观察当前的相机界

⾯,

如果相机成像完全正常了,则说明标定成功了,在终端界⾯会有对应的参数 D K R P :

另外,点击标定界⾯右下⾯的 SAVE 和 COMMIT 按钮,可保存标定完成后的⽂件到路径

/tmp/calibrationdata.tar.gz 。

相关推荐
qq_5260991321 小时前
工业视觉时代,图像采集卡如何重构数据采集
图像处理·数码相机·计算机视觉·自动化
码农xo1 天前
android 设备实时传输相机采集的视频到电脑pc端 通过内网wifi 方案
android·数码相机·音视频
PHOSKEY1 天前
3D工业相机从点云数据到五轴点胶运动轨迹的转化技术
数码相机·3d
Pyeako1 天前
基于Qt和PaddleOCR的工业视觉识别报警系统开发
人工智能·python·深度学习·数码相机·opencv·ocr·pyqt5
中达瑞和-高光谱·多光谱1 天前
光谱相机选购指南:核心参数全解析
数码相机
XuanTao772 天前
【分享】Lightroom高级版⭕Ai图片剪辑 天空修补
数码相机·计算机网络·网络安全·软件工程·软件构建
飞睿科技2 天前
UWB技术推动户外直播摄像跟随应用演进
嵌入式硬件·数码相机·目标跟踪·uwb·相机云台
yeflx2 天前
从3D到2D:相机投影的完整解析
数码相机·3d
格林威2 天前
工业相机彩色图像采集:为什么我的图是绿色的?附海康/Basler/堡盟相机设置
开发语言·人工智能·数码相机·opencv·计算机视觉·c#·工业相机
没学上了2 天前
Gige多相机高速拍照模式补充
数码相机