0


【环境搭建】使用openSfM+MVSNet重建稠密点云

本帖详细介绍了如何使用openSfM+MVSNet对真实采集的数据进行稀疏重建与稠密重建,并针对一些真实场景下可能遇到的问题进行了整理。

目录

1. 背景

随着近年来深度学习在3D视觉中的应用,传统的三维重建软件如colmap、openSfM、openMVS,都无时无刻不面临着新兴算法的挑战。传统算法虽然在应对不同数据集时的可靠性有一定保障,但在弱纹理区域、重复纹理区域一直表现不佳,同时,大规模场景重建的时间开销也逐渐被人所不容忍(尤其在深度学习的方法被引入之后)。因此,一个靠谱的pipeline是先使用传统算法进行稀疏重建,对所输入的图像进行位姿估计,然后将结果交给基于深度学习的算法,比如MVSNet系列,来进行深度图估计和稠密重建。

在此,我们不对重建算法本身进行介绍,只教大家如何一步一步跑通这个pipeline。

2. 数据采集

数据采集方面,我们只需要使用相机、手机、无人机,甚至遥感卫星,对想要重建的物体拍照就可以了。注意以下方面,有助于提升最终的重建质量:

  • 拍摄的照片尽可能清晰。
  • 照片与照片重叠的区域要大一些,如果场景很大,就尽可能多拍。
  • 如果设备是无人机之类的,可以获取相机参数,这对于稀疏重建很重要,省去了算法重新估算的麻烦。

3. 使用openSfM进行稀疏重建

环境搭建方面,硬件上无特殊要求,软件上可以参考openSfM的官方文档。

3.1 输入文件

交给openSfM的时候,image is all you need,把所有拍摄的一个场景的图片都放到一个images的文件夹里,就可以开始重建了。为了对后续稠密重建更友好,建议先对照片文件重新命名,因为openSfM会给文件直接加后缀jpg,也就是说如果你的图片是JPG,稀疏重建的记录会把文件名记录成JPG.jpg,所以不如我们先自己改好名字。

import os

defrename_files_to_jpg(folder_path):# Loop through all files in the folderfor filename in os.listdir(folder_path):# Split the filename and extension
        name, ext = os.path.splitext(filename)# Remove any periods from the name
        name = name.replace('.','')# Form the

本文转载自: https://blog.csdn.net/YuhsiHu/article/details/140649842
版权归原作者 YuhsiHu 所有, 如有侵权,请联系我们删除。

“【环境搭建】使用openSfM+MVSNet重建稠密点云”的评论:

还没有评论