3

我一直在尝试使用 COLMAP 从照片中生成 3D 网格,但我能得到的只是无用的点云。

我研究了各种 YouTube 教程,但我得到的结果与我看到的不同,主要是因为我永远无法获得实体 3D 网格。

为了获得一致的曝光,我购买了一款名为 ProMovie+ 的 iPhone 应用程序,它可以在锁定曝光的情况下以 4K 拍摄,但会根据需要聚焦于拍摄对象。(iPhone 内置的 AE/AF 锁定功能让许多镜头失焦,但该应用程序解决了这个问题。)

接下来,我从生成的 4K 视频中保存了静止的 PNG 图像。就源图像而言,一切似乎都具有足够高的质量。

最初每秒捕获 1 个 PNG 的素材。在没有得到好的结果之后,我尝试以不同的增量增加 FPS,甚至高达 30fps(这是我拍摄的,我认为这是矫枉过正)。所以我现在排除了帧数据不足的问题。一定有别的原因导致我的捕获量很差。

这是我最终的结果:

COLMAP 正在生成点云,但没有网格

相机位置用红色表示,由于我使用了很多数据帧(接近 500 个)以希望获得可用的结果,因此它显示为一条红色的大实线。你能看到点云中那个黄色的东西吗?这就是我试图捕捉的对象。看起来没什么大不了的...

我希望结果更像这样(取自视频教程):

使用 COLMAP 生成的 3D 网格

显然我做错了什么,因为 COLMAP 并没有为我产生任何接近这个的东西。一旦我得到一个从 COLMAP 导出到 MeshLab 的 .ply 文件,当我打开点大小滑块时,我可以区分顶点中的颜色。

顶点颜色在 MeshLab 中更明显,但我无法获得网格

但它只显示顶点颜色,由于我的几何图形上没有面,我被卡住了,不知道是否可以生成面或使用这个 3D 数据。

更新:我找到了比我一直关注的其他教程更好的教程。它详细解释了稀疏重建是该过程的第一部分,而密集重建是第二部分。不幸的是,COLMAP 的开发人员做了一些不好的事情,他们没有提供没有 CUDA 的情况下执行密集重建的方法。

密集立体重建需要 CUDA,但您的系统不支持该功能。

他们提供了一个糟糕的借口,即在 CPU 上执行此操作会很慢。我猜他们是在告诉我去买一台新电脑。

所以现在我正在研究是否有其他软件可以填补这个空白,或者是破解 COLMAP 以使用 CPU 的方法。

更新 #2:尝试安装 VSFM 以进行密集立体声重建,但没有提供安装程序,因此我必须构建它。进展顺利:

VSFM application failed to build, halting.
4

1 回答 1

3

是的,你是对的,这是一个稀疏的点云。您可以使用密集匹配算法将稀疏点云传输到CMVSPMVS2 等COLMAP 实际上为这里解释的这些库提供了导出功能。如果您需要有关此 ID 的帮助,建议您试一试并提出一个新问题。

一旦你有了密集的点云,如果 COLMAP 不提供网格划分算法,你可以考虑对点云进行网格划分。MeshLab是免费的,可用于此目的。

如果您想要一个可以处理稀疏和密集重建的 SfM 管道,OpenSfM (python) 是一个不错的选择。它都是开源的,易于理解。另一个很好的开源工具,但需要更多的学习步骤是Micmac。Micmac 非常适合高质量的结果,但与 OpenSfM 相比很难遵循。

根据我的经验,VisualSfM 是非常喜怒无常的,我从来没有运气好过。

最后一点……如果你想商业化,Agisoft PhotoScan非常棒。

于 2018-09-04T07:13:54.417 回答