VSLAM 算法的输入分析(四)

299 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第5天,点击查看活动详情

现实世界的照片通过像素元素组成,存储在计算机一段连续的磁盘或内存空间中。程序可以通过二维数组调用该段内存,代表数学模型中的矩阵来描述一张图像。

在 SLAM 领域,KITTI数据集是一个常用的公开SLAM数据集,用户可以在The KITTI Vision Benchmark Suite (cvlibs.net)注册并下载所需的数据集。

对于一个健壮的 VSLAM 算法,只有支持已有的公开权威数据集才可以和其他算法进行对比和改变。因此,分析已有的公开数据集,我们可以知道将要开发的算法需要哪些参数入口。

KITTI数据集中的文件格式

calib.txt

以 sequence_14 中的cablix.txt里的内容为例


P0: 7.188560e+02 0.000000e+00 6.071928e+02 0.000000e+00 0.000000e+00 7.188560e+02 1.852157e+02 0.000000e+00 0.000000e+00 0.000000e+00 1.000000e+00 0.000000e+00\
P1: 7.188560e+02 0.000000e+00 6.071928e+02 -3.861448e+02 0.000000e+00 7.188560e+02 1.852157e+02 0.000000e+00 0.000000e+00 0.000000e+00 1.000000e+00 0.000000e+00\

上述文件当中,PX代表相机编号,0表示左边灰度相机,1表示右边的灰度相机。程序根据对应的公式,按照calib.txt参数解出相机投影矩阵,便可以得到相机内参。

pose.txt

在pose目录下,包含00.txt - 10.txt,每个文件包含 Nx12个表格

1.000000e+00 9.043678e-12 2.326810e-11 1.110223e-16 9.043683e-12 1.000000e+00 2.392370e-10 1.110223e-16 2.326810e-11 2.392370e-10 9.999999e-01 4.440892e-16
9.999979e-01 5.029439e-04 -1.992554e-03 -4.401991e-02 -5.051663e-04 9.999992e-01 -1.115047e-03 -2.505185e-02 1.991992e-03 1.116052e-03 
……

通过位姿的变化,我们可以直接绘制相机的路线图。

image文件夹

iamge文件夹下包含数据集中的实际图片。 origin_img_v2_5b86b426-a1cb-4217-99de-85878492784g.png 这两张图片在很短的时间内拍下,所以并无太大差别,但通过程序的识别,我们可以了解到相机的前进的方向和位姿的变化。 origin_img_v2_68205f82-5b7a-4004-9147-3535ecfe6a7g.png