kalibr 进行相机单目、双目标定全流程

一、部署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))

 

三、开始相机标定:

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查看生成好的文件

kalibr 进行相机单目、双目标定全流程_第1张图片

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三个文件,结果解析请查看官方文档。

 

你可能感兴趣的:(linux,docker)