【问题标题】:Pipeline for generating a 3D Pointcloud out of feature matches用于从特征匹配中生成 3D 点云的管道
【发布时间】:2018-06-13 10:21:02
【问题描述】:

我目前正忙于从同一对象的不同图像重建对象的项目。

到目前为止,我已经使用 AKAZE 特征计算了每个图像的特征匹配。

现在我需要导出相机参数和 3D 点坐标。

但是,我有点困惑。在我看来,我需要相机参数来确定 3D 点,反之亦然。

我的问题是如何一步获得 3D 点和相机参数?

我还研究了http://scipy-cookbook.readthedocs.io/items/bundle_adjustment.html 提供的捆绑调整方法,但您需要初步猜测相机参数和 3D 坐标。

有人可以参考伪代码吗?或者有适合我的管道?

提前致谢

【问题讨论】:

  • 您在从事 StereoVision 工作吗?如果您需要从立体对(即 2 张图像)重建 3D 点云,我可以为您提供帮助
  • 看一下运动中的结构。 This tutorial 给出了它如何在 Matlab 中工作的想法。您需要将其翻译成 OpenCV 指令。
  • @Sunreef 我浏览了教程,我也得到了第二步需要一个相机矩阵来获取 [relativeOrientation,relativeLocation] = relativeCameraPose(M,cameraParams,inlierPoints1,inlierPoints2) 的问题跨度>
  • @Employee 你好,实际上我得到了 50 张物体的图像,所以我会使用矩阵表示法或捆绑调整来放大立体对。
  • 您将无法避免这种情况。 cameraParams 是内部参数,例如焦距、畸变系数。你需要以某种方式得到那些。它们有时可以在图像元数据中找到。

标签: opencv computer-vision multiview structure-from-motion


【解决方案1】:

由于您似乎是这方面的新手,我强烈建议您首先使用交互式工具来获得解决相机运动和结构所涉及问题的直觉。试试Blender:它是免费的,您可以在 YouTube 上找到大量关于如何使用它进行匹配移动的视频教程:示例12

【讨论】:

  • 我使用 vsfm、remove3D、meshRecon 和 openMVS 创建了一些管道。我尝试在 openSFM 中使用我自己的功能,但格式不起作用。我创建了 sift 格式的文件,还计算了匹配以使ccwu.me/vsfm/doc.html 的管道工作。这就是为什么我想实现自己的点云生成,然后使用表面侦察从我的点云创建表面模型。如果您对可能出现错误的地方有一些想法,我会为您提供帮助。 stackoverflow.com/questions/50753567/…
【解决方案2】:

看看 VisualSFM (http://ccwu.me/vsfm/)。它是此类任务的交互式工具。它会让您了解使用哪些算法。

Richard Szeliski (http://szeliski.org/Book/) 的 Computer Vison 书籍将提供理论背景。

【讨论】:

  • 正如我在上面所写的,我知道通常需要哪些步骤,问题来自一个具体的实现,以摆脱筛选功能并使用 AKAZE,因为这些功能为我的问题提供了更好的结果。但我无法在 sfm 管道中使用我自己的功能。 stackoverflow.com/questions/50753567/…
猜你喜欢
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 2013-09-30
  • 1970-01-01
  • 2018-03-18
  • 2021-08-24
  • 2013-07-31
  • 1970-01-01
相关资源
最近更新 更多