COLMAP 摄影测量:重建只给出点云,没有网格

COLMAP photogrammetry: Reconstruction gives only point cloud, no mesh

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

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

为了获得一致的曝光,我购买了一个名为 ProMovie+ 的 iPhone 应用程序,它可以在曝光锁定的情况下以 4K 拍摄,但会根据需要聚焦在主体上。 (iPhone 的内置 AE/AF 锁定功能曾导致很多照片失焦,但该应用解决了这个问题。)

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

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

这是我最终得到的结果:

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

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

很明显我做错了什么,因为 COLMAP 没有为我生成任何接近于此的东西。一旦我得到一个从 COLMAP 导出到 MeshLab 的 .ply 文件,当我调高“点大小”滑块时,我可以区分顶点中的颜色。

但它只显示顶点颜色,而且由于我的几何体上没有面,所以我被卡住了,不知道是否可以生成面或完全使用此 3D 数据。

更新: 我发现 a much better tutorial 比我一直关注的其他人要多。它详细解释了稀疏重建是过程的第一部分,密集重建是第二部分。不幸的是,COLMAP 的开发人员没有提供在没有 CUDA 的情况下执行密集重建的方法,因此做得不太好。

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

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

更新 #2:尝试安装 VSFM 进行密集立体重建,但没有提供安装程序,所以我必须构建它。这是进展情况:

VSFM application failed to build, halting.

是的,你没看错,这是一个稀疏点云。您可以使用密集匹配算法将稀疏点云传输到 CMVS and PMVS2. COLMAP actually offers export function for these libraries explained here 中。如果您需要有关此 ID 的帮助,建议试一试并提出一个新问题。

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

如果你想要一个可以处理稀疏和密集重建的 SfM 管道 OpenSfM (python) is a good bet. It is all open-source and easy to follow. Another good open-source tools but requires a bit more of a learning step is Micmac。 Micmac 非常适合高质量结果,但与 OpenSfM 相比很难遵循。

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

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