来自Motion(SfM)的隧道式结构?

时间:2013-05-06 17:09:51

标签: opencv 3d computer-vision 3d-reconstruction

我有一个非常具体的应用程序,我想尝试从动作结构来获得3D表示。目前,我从运动结构中找到的所有软件/代码样本都是这样的:“从各个角度拍摄的固定物体,以创建3D”。这不是我的情况。

在我的情况下,相机正在走廊中间移动并向前看。有时,相机可以向其他方向看(左,右,上,下)。相机永远不会回头或回头看,它总是向前移动。由于走廊很小,几乎所有东西都是可见的(没有隐藏的地方)。走廊有时会很长。

我已经尝试了这个software并且它在我的特定情况下不起作用(但它在正常使用时非常棒)。有没有人可以建议我一个可以满足我特定需求的图书馆/软件/工具/论文?或者你有没有需要实现这样的东西?欢迎任何帮助!

谢谢!

2 个答案:

答案 0 :(得分:4)

您在谈论什么样的走廊?您的目标是什么样的精确度?

先验,我不明白为什么你的走廊是从不同角度拍摄的固定物体。如果你只是向前看并且你无法获得许多不同的场景视图,你的重建质量可能会受到影响,但标准方法仍然有效。你确定你使用的程序没有因为图片质量,安排或其他原因而失败吗?

如果你必须自己进行重建,我会从第一开始 1)校准相机
2)不对你的图像进行分类
3)后续图像对中的匹配特征点
4)为每个图像对提取3D点云

然后,您可以相对于彼此定向点云,例如通过两个后续云之间的ICP。如果您的数据集中没有任何闭环(因为您的相机只是向前移动),更复杂的方法可能不会产生太大差异。

OpenCV和Point Cloud Library应该是这些步骤所需的一切。可视化可能更麻烦,但漂亮的图片毕竟是你在商业软件中付出的代价。


编辑(2017/8):在此期间我没有做过这方面的工作,但我觉得这个答案缺少一些部分。如果我今天必须回答它,我肯定会建议查看最近看到很多活动的关键字monocular SLAM,尤其是因为带有摄像头的无人机。值得注意的是,LSD-SLAM是开放源代码,可能不会像功能缺失的视图那样容易受到攻击,因为它直接针对强度进行操作。甚至似乎approaches combining inertial/odometry sensors都有图像匹配算法。

祝你好运!

答案 1 :(得分:1)

FvD是正确的,因为您的走廊是一个静态物体。您的场景是相同的,并且在多个视图中移动并对象和拍摄图像。您的视图不会被安排为提供对象的360度视图。

我看到您在之前的评论中提到数据来自视频?在这种情况下,问题很可能是相机校准。相机校准告诉SfM算法相机的内部参数(焦距,主点,镜头失真等)。在没有相关知识的情况下,VSfM中的捆绑器使用来自图像的EXIF数据的信息。但是,我不认为视频存储任何EXIF信息(不是100%肯定)。结果,我认为整个算法运行时焦距信息不好,无法解决方向问题。

您可以从视频中提取几帧并查看是否有任何EXIF信息吗?