【三维重建】Ubuntu16.04安装Colmap+OpenMVS注意事项(踩坑记录)

最近实验室在搞三维重建的项目,要在服务器上安装Colmap+OpenMVS环境,参考github、博客、官网给出较为完整的安装流程。
注意安装之前确保服务器上没有安装anaconda,否则在编译时会找anaconda的路径而报错。

先说一下各项依赖的版本:
1.colmap-3.5
2.ceres-slover 1.4.1
3.eigen3.3.7
4.cmake3.13
5.opencv-4.5.2
6.vcglib
7.openMVS

1.安装Colmap

按照官网安装http://colmap.github.io/install.html

1)相关依赖

#git 和 cmake单独安装,这里安装的cmake版本为3.5.1,版本较低会编译报错
sudo apt-get install \
    build-essential \
    libboost-program-options-dev \
    libboost-filesystem-dev \
    libboost-graph-dev \
    libboost-system-dev \
    libboost-test-dev \
    libeigen3-dev \
    libsuitesparse-dev \
    libfreeimage-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    libglew-dev \
    qtbase5-dev \
    libqt5opengl5-dev \
    libcgal-dev

2)qt5

sudo apt-get install libcgal-qt5-dev

3)Install Ceres Solver:

https://ceres-solver.googlesource.com/ceres-solver
【三维重建】Ubuntu16.04安装Colmap+OpenMVS注意事项(踩坑记录)
【三维重建】Ubuntu16.04安装Colmap+OpenMVS注意事项(踩坑记录)

sudo apt-get install libatlas-base-dev libsuitesparse-dev
# git clone https://ceres-solver.googlesource.com/ceres-solver
# 手动下载1.14版本,解压
cd ceres-solver
# git checkout $(git describe --tags) # Checkout the latest release
mkdir build
cd build
cmake .. -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF
make -j
sudo make install

4)编译Colmap

git clone https://github.com/colmap/colmap.git
cd colmap
# git checkout dev
mkdir build
cd build
cmake ..
make -j
sudo make install

2.安装OpenMVS

按照github教程安装
https://github.com/cdcseacave/openMVS/blob/master/BUILD.md

1)安装依赖

sudo apt-get update -qq && sudo apt-get install -qq 
# 手动安装更高版本的cmake
sudo apt-get -y install libpng-dev libjpeg-dev libtiff-dev libglu1-mesa-dev
main_path=`pwd` # 具体路径

2)Eigen(Required)

git clone https://gitlab.com/libeigen/eigen.git --branch 3.3.7
mkdir eigen_build && cd eigen_build
cmake . ../eigen
make && sudo make install
cd ..

3)Boost (Required)

sudo apt-get -y install libboost-iostreams-dev libboost-program-options-dev libboost-system-dev libboost-serialization-dev

4)OpenCV(Required),注意使用高版本

# sudo apt-get -y install libopencv-dev 
# 这里安装的opencv版本较低,为2.4.9,在编译OpenMVS时会报opencv相关的错误
# 可以查看issue:https://github.com/cdcseacave/openMVS/issues/614

报错信息cv::Matx_DivOp’ has not been declared

[ 3%] Building CXX object libs/Common/CMakeFiles/Common.dir/CUDA.cpp.o
In file included from /home/bjfu/software/openMVS/libs/Common/Common.h:176:0,
from /home/bjfu/software/openMVS/libs/Common/CUDA.cpp:8:
/home/bjfu/software/openMVS/libs/Common/Types.h:1488:70: error: ‘cv::Matx_DivOp’ has not been declared
TMatrix(const TMatrix<TYPE,m,n>& a, const TMatrix<TYPE,m,n>& b, cv::Matx_DivOp) : Base(a, b, cv::Matx_DivOp()) {}
^
/home/bjfu/software/openMVS/libs/Common/Types.h: In constructor ‘SEACAVE::TMatrix<TYPE, m, n>::TMatrix(const SEACAVE::TMatrix<TYPE, m, n>&, const SEACAVE::TMatrix<TYPE, m, n>&, int)’:
/home/bjfu/software/openMVS/libs/Common/Types.h:1488:95: error: ‘Matx_DivOp’ is not a member of ‘cv’
TMatrix(const TMatrix<TYPE,m,n>& a, const TMatrix<TYPE,m,n>& b, cv::Matx_DivOp) : Base(a, b, cv::Matx_DivOp()) {}
^

5)CGAL (Required)

# 这两个依赖前面已经加过了
sudo apt-get -y install libcgal-dev libcgal-qt5-dev

6)VCGLib (Required)

git clone https://github.com/cdcseacave/VCG.git vcglib

7)#Ceres (optional)

# 前面已经安装好了

8)GLFW3 (Optional)

sudo apt-get -y install freeglut3-dev libglew-dev libglfw3-dev

9)OpenMVS

git clone https://github.com/cdcseacave/openMVS.git openMVS
mkdir openMVS_build && cd openMVS_build
cmake . ../openMVS -DCMAKE_BUILD_TYPE=Release -DVCG_ROOT="$main_path/vcglib"

#If you want to use OpenMVS as shared library, add to the CMake command:
-DBUILD_SHARED_LIBS=ON

#Install OpenMVS library (optional):
make -j2 && sudo make install

参考博客:
https://blog.csdn.net/X_kh_2001/article/details/83690094
https://segmentfault.com/a/1190000022276314
https://www.cnblogs.com/gtx159/p/10825877.html

上一篇:用cmake在win10配置colmap


下一篇:Error: Cannot find definition for package colmap.