githup:https://github.com/cdcseacave/openMVS
最近在ubuntu18.04上配置OpenMVS运行环境时踩了很多坑,在这期间查阅了很多资料和博客,于是想对安装过程进行总结,方便自己反复查阅以及分享经验避免大家重复踩坑。
博主是用docker在ubuntu18.04容器中安装的OpenMVS,已经打包成docker的镜像文件分享给大家。
# 查看ubuntu版本号
lsb_release -a
安装前的准备:安装cmake、git 、gcc 和g++
apt-get源修改参考
# 更新apt库,更新软件列表
sudo apt-get update
# 安装git,用于从Github上克隆项目到本地
sudo apt-get install git
# 安装cmake,用于程序的编译
sudo apt-get install cmake
# 安装gcc和g++,安装c和c++编译器
sudo apt-get install gcc g++
# 建立一个MVS的文件夹
mkdir MVS && cd MVS
sudo apt-get update -qq && sudo apt-get install -qq
# 安装图像格式的相关库
sudo apt-get -y install git cmake libpng-dev libjpeg-dev libtiff-dev libglu1-mesa-dev
ubuntu18.4建议源码eigen3.4及以上版本安装(不能使用eigen3.2),或者通过git下载:
# 通过git下载Eigen3.4源码,需要科学上网
git clone https://gitlab.com/libeigen/eigen.git --branch 3.4
mkdir eigen_build && cd eigen_build
cmake . ../eigen
make && sudo make install
cd ..
sudo apt-get -y install libboost-iostreams-dev libboost-program-options-dev libboost-system-dev libboost-serialization-dev
sudo apt-get -y install libopencv-dev
# 查询OpenCV版本
pkg-config --modversion opencv
# 查询OpenCV库
pkg-config --cflags opencv
# 查询头文件目录
pkg-config --libs opencv
sudo apt-get -y install libcgal-dev libcgal-qt5-dev
# 通过git下载vcglib源码,需要科学上网
git clone https://github.com/cdcseacave/VCG.git vcglib
# 通过git下载OpenMVS源码,需要科学上网
git clone https://github.com/electech6/openMVS_comments.git openMVS
mkdir openMVS_build && cd openMVS_build
# /path to vcglib/vcglib"改为自己的vcglib的路径:Vcglib的父级目录/vcglib
cmake . ../openMVS -DCMAKE_BUILD_TYPE=Release -DVCG_ROOT="/path to vcglib/vcglib"
# 生成OpenMVS库文件,j4线程数量,根据电脑性能选择合适的数字
sudo make -j4 && sudo make install
编译过程中可能出线的问题:
解决方案(参考):
使用git回退vcglib版本,回退到以前提交时间为2020年对应的历史版本即可(ubuntu18.04下亲测有效)。
# 进入vcglib项目根目录下,使用命令git log,找到需要返回的commit id,按Q键退出
cd vcglib && git log
# 彻底回退到某个版本,本地的源码也会变为指定版本的内容
git reset --hard 88f12f212a1645d1fa6416592a434c29e63b57f0
git log后查看历史提交内容:
git reset --hard变为指定版本的内容:
安装编译完成
测试数据集百度云链接,提取码:4oz5
OpenMVS 可执行文件生成在openMVS/openMVS_build/bin/里面
安装Meshlab
# 安装依赖并更新
sudo apt --fix-broken install
sudo apt-get update
sudo apt-get upgrade
# 用apt-get安装meshlab
sudo apt-get install meshlab
# 将数据集移动到openMVS_build目录下并重命名为data
mv /root/Downloads/OpenMVS测试数据集 /root/MVS/openMVS_build/data
# 在openMVS_build目录下执行如下命令:-w 设置的是数据的路径 -i 是输入的文件名 -o是输出的文件名
./bin/DensifyPointCloud -w /root/MVS/openMVS_build/data -i scene.mvs -o test_dense.mvs
在数据集data目录下生成test_dense.mvs文件,用Meshlab打开test_dense.mvs:
曲面重建```
./bin/ReconstructMesh -w /root/MVS/openMVS_build/data -i test_dense.mvs -o test_mesh.mvs
在数据集data目录下生成test_mesh.ply文件,用Meshlab打开test_mesh.ply:
网格优化
./bin/RefineMesh -w /root/MVS/openMVS_build/data -i test_mesh.mvs -o test_refinemesh.mvs
在数据集data目录下生成test_refinemesh.ply文件,用Meshlab打开test_refinemesh.ply:
纹理贴图
./bin/TextureMesh -w /root/MVS/openMVS_build/data -i test_refinemesh.mvs -o test_texture.mvs
在数据集data目录下生成test_texture.ply以及test_texture.png文件,用Meshlab打开test_texture.ply:查看test_texture.png文件:
尽可能简单、详细的介绍OpenMVS的安装流程以及解决了安装过程中可能存在的问题。后续会根据自己学到的知识结合个人理解讲解OpenMVS的原理和代码。