一、部署kalibr环境(docker)步骤:
参考链接:Installation · ethz-asl/kalibr Wiki · GitHub
Docker操作知识:Docker攻略:从安装到入门到进阶 | Dockerfile调优 | 镜像分层 | 容器生命周期/5种网络模式 |跨宿主机通信_血煞长虹的博客-CSDN博客
部署kalibr步骤如下:
1.拉取镜像
2.创建container
3.进入container
docker start $containerID
docker attach $containerID
运行以后即可进入container内部
二、制作自己的标定数据
1.使用标定板采集N个摄像头的视频标定数据,采集数据时要注意:
(1)保证至少两个摄像机能同时拍摄到标定板。
(2)标定板尽可能在各个角度进行移动,需保持光线良好,避免反光。
(3)相邻相机的距离不能太远,否则两台相机同时捕捉到有效画面较少。
(3)拍摄时,标定板的角度请尽量避免较大程度的倾斜.
2.将采集好的视频数据进行对齐,并输出成图片,要注意:
(1)如果使用高帧率的摄像机,在裁剪视频时务必谨慎使用剪辑工具,原因是:大部分剪辑工具导出的视频帧率有限。
(2)对于使用高帧率摄影机采集的数据,转成图片时要进行适当的下采样。否则,在后续制作bag包时文件会很大。若使用五个相机,每个相机3400张图像左右,生成bag文件大小约为33GB。
3.制作数据文件夹,要注意图像的摆放形式以及命名格式:
(1)要求:
1.每个摄像头的图片需时间对齐且数量相同;
2.图片的命名为19位时间戳,不同相机的时间戳要保证对应相同。
(2)数据命名结构
/File -/cam0 --1629888091000000001.png --1629888091000000002.png -/cam1 --1629888091000000001.png --1629888091000000002.png -imu.csv |
其中imu.csv为可选项目
时间戳命名示例:
timestamp_19 = 1629888091000000000
image_name="{}.png".format(int(timestamp_19+1e+9* saved_image_num))
文章来源地址https://www.toymoban.com/news/detail-486128.html
三、开始相机标定:
1.进入container,运行以下指令
source /catkin_ws/devel/setup.bash
2.运行以下指令生成bag文件,--folder 为制作好的数据路径
rosrun kalibr kalibr_bagcreater --folder datset-dir/. --output-bag awsome.bag
可用rosbag info $filename查看生成好的文件
3.开始多目相机标定
参考链接:
Multiple camera calibration · ethz-asl/kalibr Wiki · GitHub
具体步骤如下:
(1)准备好上一步生成的bag文件。
(2)制作一个target.yaml文件,该文件存储了标定板的相关信息。如果标定板使用官方的直接下载对应的yaml文件即可,如果是自己命令行生成的则需要自己写一个target.yaml文件)。
(3)根据自己实际情况选择参数并输入命令。本文使用的是5个摄像头,april的官方yaml文件,运行命令为:(若要进行单个相机内参估计,输入一个相机即可)
rosrun kalibr kalibr_calibrate_cameras --target /data/video_image/april.yaml --bag /data/video_image/target_502.bag --models pinhole-radtan pinhole-radtan pinhole-radtan pinhole-radtan pinhole-radtan --topics /cam0/image_raw /cam1/image_raw /cam2/image_raw /cam3/image_raw /cam4/image_raw --dont-show-report |
4.完成标定后会得到yaml、txt、pdf三个文件,结果解析请查看官方文档。文章来源:https://www.toymoban.com/news/detail-486128.html
到了这里,关于kalibr 进行相机单目、双目标定全流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!