1

我正在研究视觉里程计,并观看了 Cyrill Stachniss 教授的视频录制,这些视频可作为 YouTube 2015/16 Playlist about Photogrammetry I & II 获得。

首先,如果我想创建自己的数据集(如 VO 的 KITTI 数据集或牛津校园数据集),我用相机拍摄的图像的属性应该是什么。它们只是图像吗?或者,它们是否有一些特殊的属性?也就是说,如何使用单目或立体相机创建自己的数据集。

谢谢你。

4

2 回答 2

2

如果你想用你的数据集对一些视觉里程计算法进行基准测试,你肯定需要你的相机的内在参数以及它的姿势。

  • 正如@f4f 回答中所说,内在校准通常是使用您倾斜和旋转的棋盘的一些图像完成的(参见opencv)。这将为您提供焦距、光学中心等参数,以及失真系数,这取决于您的相机。

  • 在每一帧获取相机的姿势(即外部参数)可能更棘手。通常使用来自附加传感器(跟踪系统、IMU、GPS 等)的信息来获得地面实况。你可以看看:TUM RGB-D SLAM Dataset和相应的论文。他们解释了他们如何使用运动捕捉系统来获得真实姿势。

  • 记录相机帧的采集时间也很有趣(每帧一个时间戳)。

创建自己的视觉里程计数据集并非易事。如果你只是想“为了好玩”创建一个数据集或做一些实验,并且如果你只有一个相机可用,我会说你可以尝试一些已知效果很好的方法(如 ORB-SLAM)。这将为您提供相机姿势的良好近似值(您可能必须手动修复未知比例)。

于 2019-11-04T08:14:21.957 回答
2

要从图像中获取外在参数和内在参数,您必须拥有一组来自不同视图的已知形状的图像。这不是一件容易的事,通过常见的 CV 库/解决方案有一个内置的相机校准实用程序(我必须处理 OpenCV 库和 Matlab CV 包,它们通常是相同的)。通常它是用一个黑白棋盘或其他简单的几何图案。

然后使用已知的相机参数,您可以操作自己的数据集。

Matlab 相机标定参考

OpenCV 相机标定教程

于 2019-11-04T07:29:18.120 回答