单目相机的内外参标定
本教程所使用标定工具为一个9x7的棋盘格,单格尺寸123mm。
内参标定
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工具外参标定
一般来说,外参都是相对另一参考系而言的。我们这里可以将其放在机器人的中心或者汽车的后轴中心上,定义前进方向为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…
备注:
点击下面链接,进入奥比中光开发者社区,了解更多3D视觉技术信息:
https://developer.orbbec.com.cn/
或扫描下方二维码,进入奥比中光开发者社区:
相关文章
- iOS相机和相册扫码
- 虚幻引擎学习之路:相机图像后处理
- 相机成像与校正原理:将外部世界进行降维
- 相机校正与相机内参、外参
- osg设置相机参数,包括初始位置
- 基于FPGA的双目相机目标深度图像提取实现——详细版
- 基于toolbox_calib工具箱的相机标定matlab仿真
- 相机内参和相机外参和标定
- swift-判断是否已获得相机、相册权限
- iOS 判断是否有权限访问相机,相册
- swift调用相机和相册
- 相机激光雷达联合标定
- SwiftUI 人工智能教程之图像识别植物或花朵通过图片和相机
- flutter系列之:在flutter中使用相机拍摄照片
- 【巨人的肩膀上制造世界】——3——Unity3D实用插件之Post Processing Stack,更便捷的设置相机滤镜!
- Unity 屏幕特效 之 分屏之 斜角(对角线) 分屏渲染不同相机画面功能的简单实现
- 【Unity3D】相机跟随
- 你以为 Snapchat 做的是社交,但它却说自己是一家相机公司
- IOS开发之小实例--使用UIImagePickerController创建一个简单的相机应用程序
- 【机器视觉】——相机标定降低重投影误差方法