本文将介绍如何在有Nvidia GPU的服务器上使用meshroom进行3D重建,服务器没有GUI界面,但可以使用命令行。本教程不需要你有服务器的root权限。
参考教程
https://www.instructables.com/id/Run-Photogrammetry-in-the-Cloud/www.instructables.com原教程中的一些文件需要科学上网才能看到,并且不灵活
环境搭建
你需要一台有Nvidia显卡的服务器,并且已经配置好了CUDA,一般用于深度学习的服务器即可。
一、下载meshroom
wget -N https://github.com/alicevision/meshroom/releases/download/v2019.1.0/Meshroom-2019.1.0-linux.tar.gz
tar xzfv Meshroom-2019.1.0-linux.tar.gz
二、下载meshroom提供的图片
先用官方示例中的图片进行测试,如果重建成功了说明环境搭建成功了,我已经把图片准备好了,你们可以从百度网盘进行下载,有三个文件夹,可以先选mini3里面的图片进行测试。
提取码:av5lpan.baidu.com三、运行脚本进行重建
import
新建一个script.py文件,将上面的代码复制进行,代码中的一些需要注意的地方:
- /home/lilinye/reconstruct/Meshroom-2019.1.0/ 需要更改为你自己服务器上Meshroom的路径
- input参数为你需要重建的图片的目录
- output参数为重建结束后保存obj文件、mtl文件和纹理图片的路径
在终端输入下面命令来运行,如果你的服务器上有多个GPU,请使用CUDA_VISIBLE_DEVICES来设置还有显存的那个GPU来计算深度。
python script.py --input=mini3 --output=output --project=project.mg
重建的时间根据服务器的性能而决定,在我使用的Tesla V100 16G显存、Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz 40核CPU的服务器上,mini3的重建耗时10分钟左右,full的重建估计要一天多
四、将重建结果下载回本地进行查看
重建结果一共有三个文件,用meshlab打开texturedMesh.obj来查看重建结果