COLMAP是一种通用的运动结构(SfM)和多视图立体(MVS)管道,具有图形和命令行界面。它为有序和无序图像集合的重建提供了广泛的功能,常见的基于nerf算法均需要colmap来计算位姿。源代码可在GitHub上获得。
博主参考官方教程进行配置。
这里有个很坑爹的bug,因为可能存在路径冲突,因此需要将anaconda3/anaconda3的文件名称暂时修改成其他如anaconda31等,让系统找不到该路径,防止编译过程中出现路径冲突!!!!!!!!!!!!
完成COLMAP安装再将文件名复原。
可以参考博主的博文【ubuntu18.04深度学习环境配置详细教程】
CUDA安装完成
nvcc -V
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
sudo apt-get install \
git \
cmake \
ninja-build \
build-essential \
libboost-program-options-dev \
libboost-filesystem-dev \
libboost-graph-dev \
libboost-system-dev \
libeigen3-dev \
libflann-dev \
libfreeimage-dev \
libmetis-dev \
libgoogle-glog-dev \
libgtest-dev \
libsqlite3-dev \
libglew-dev \
qtbase5-dev \
libqt5opengl5-dev \
libcgal-dev \
libceres-dev
在Ubuntu18.04下,CGAL的CMake配置脚本已损坏,还必须安装CGAL Qt5软件包:
sudo apt-get install libcgal-qt5-dev
可能需要安装的依赖
sudo apt-get install libatlas-base-dev libsuitesparse-dev
建议建一个colmap的目录,将Ceres的库位置与后续COLMAP的库位置都放在一起。
git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver
mkdir build
cd build
cmake .. -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF
make -j24
sudo make install
/usr/include/glog/logging.h:638:9: error: ambiguous overload for ?operator<<? (operand types are ?std::ostream {aka std::basic_ostream<char>}? and ?std::nullptr_t?)
解放方法:因为下载的glog版本太老导致无法正常安装ceres-solver,可以尝试使用一个较新的glog版本。
# 首先先卸载原始的glog
sudo apt-get remove libgoogle-glog-dev
# 解压
tar -zxvf glog-0.6.0.tar.gz
cd glog-0.6.0
mkdir build
cd build
cmake ..
make -j 24
sudo make install
# 与Ceres库在同一目录
git clone https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
cmake ..
make -j24
sudo make install
cmake过程中可能出现的问题:
在colmap/文件内修改CMakeLists.txt内容:
set(CMAKE_CUDA_ARCHITECTURES "70")
colmap -h
colmap gui
尽可能简单、详细的介绍Ubuntu18.04环境配置COLMAP详细教程。