0

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

在我的例子中,摄像机在走廊中间移动并向前看。有时,相机可以看向其他方向(左、右、上、下)。相机永远不会后退或回头,它总是向前移动。由于走廊很小,几乎所有东西都可以看到(没有隐藏点)。走廊有时会很长。

我已经尝试过这个软件,但它在我的特定情况下不起作用(但在正常使用时非常棒)。有人可以向我推荐一个可以针对我的特定需求的库/软件/工具/论文吗?或者你是否曾经需要实现类似的东西?欢迎任何帮助!

谢谢!

4

2 回答 2

4

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

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

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

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

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


编辑(2017/8):我还没有在此期间工作,但我觉得这个答案缺少一些部分。如果我今天必须回答这个问题,我肯定会建议研究关键词单眼 SLAM,它最近出现了很多活动,尤其是因为带有摄像头的无人机。值得注意的是,LSD-SLAM是开源的,可能不像它直接在强度上运行那样容易受到特征剥夺视图的影响。甚至似乎有将惯性/里程计传感器与图像匹配算法相结合的方法。

祝你好运!

于 2013-05-07T05:03:24.207 回答
1

FvD 是正确的,因为您的走廊是一个静态对象。您的场景是相同的,并且四处移动和对象并从多个视图中获取图像。您的视图只是没有安排来提供对象的 360 度视图。

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

能不能从视频中提取几帧,看看有没有EXIF信息?

于 2013-05-11T00:13:45.467 回答