文章目录
- 前言
- 坑
-
- 坑一
- 坑2
- 坑3:BLAS library
- 坑4: glog
- 总结安装过程
-
- 1、依赖库的安装
- 2、编译seres-solver2.2.0
- 3、编译glog0.6.0
- 4、编译colmap 3.11.1
- 附录知识
-
- 1、自己编译的文件一般路径
- 2、带有cuda版本的colmap需要比较高版本的cmake
- 3、参考路径
- 4、安装新的cmake,又不和系统冲突
- 结果
前言
colmap常用于多视图重建,即利用多个相机多个视图 或单个相机多个视图重建3D信息,获取相机内外参,其构建的点云是3DGS\\4DGS 多视角渲染的初始化条件。但官方仅提供windows系统的cuda版本,如果linux/ubuntu要安装cuda版本用于加速重建,或密集重建,需要自己编译。由于自己在此踩了比较多的坑,因此记录一下。
坑
坑一
服务器直接apt install colmap 安装的是CPU版本,可以进行稀疏重建,但不能密集重建,密集重建需要GPU版本
# 密集重建
colmap patch_match_stereo
colmap stereo_fusion

坑2
qt.qpa.xcb: could not connect to display :0
官方问题链接:
https://github.com/colmap/colmap/issues/2312 https://github.com/colmap/colmap/issues/1431
坑3:BLAS library
需要使用比较高等级的cmake
坑4: glog
升级cmake 使用自己的cmake版本,出现这个问题
需要切换glog到兼容版本,且安装seres-solver2.2.0 版本问题,glog0.6.0 seres-solver2.2.0 都要自己编译 。colmap用的cmake版本不能太低,用的4+ 可参考官方链接:
https://github.com/colmap/colmap/issues/3091 
总结安装过程
1、依赖库的安装
sudo apt-get install \\
git \\
cmake \\
ninja-build \\
build-essential \\
libboost-program-options-dev \\
libboost-graph-dev \\
libboost-system-dev \\
libeigen3-dev \\
libfreeimage-dev \\
libmetis-dev \\
libgoogle-glog-dev \\
libgtest-dev \\
libgmock-dev \\
libsqlite3-dev \\
libglew-dev \\
qtbase5-dev \\
libqt5opengl5-dev \\
libcgal-dev \\
libceres-dev \\
libcurl4-openssl-dev \\
libmkl-full-dev
2、编译seres-solver2.2.0
git clone https://github.com/ceres-solver/ceres-solver.git
cd ceres-solver
git checkout 2.2.0 (兼容 Colmap)
mkdir build && cd build
cmake .. -DBUILD_EXAMPLES=ON -DBUILD_TESTING=ON
make -j$(nproc)
sudo make install
3、编译glog0.6.0
# 安装 glog v0.6.0(兼容 Colmap)
git clone -b v0.6.0 https://github.com/google/glog.git
cd glog && mkdir build && cd build
# cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
cmake .. -DBUILD_EXAMPLES=ON -DBUILD_TESTING=ON
make -j$(nproc)
sudo make install
4、编译colmap 3.11.1
git clone –branch 3.11.1 https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
cmake .. -DCMAKE_CUDA_ARCHITECTURES=86 #指定cuda算力8.6,使用native应该也行,参考https://developer.nvidia.com/cuda-gpus
ninja
sudo ninja install
附录知识
1、自己编译的文件一般路径
/usr/local/bin/colmap
如果编译错了,自己这里也要删除
2、带有cuda版本的colmap需要比较高版本的cmake
升级到较新的 CMake 版本也可以解决这个问题。我怀疑 CMake 3.22 可能与较新的 CUDA 架构/编译器不兼容。 https://github.com/colmap/colmap/issues/3415
3、参考路径
https://colmap.github.io/install.html https://www.cnblogs.com/milton/p/18810762 https://github.com/colmap/colmap/issues/3091 #版本!
4、安装新的cmake,又不和系统冲突
官网下载sh,安装,然后bashrc上添加路径和别名
nano ~/.bashrc
alias cmake4='/path/to/cmake/bin/cmake'
结果
编译成功colmap-gpu版本! 




