系统环境
ubuntu20 ,cuda11.8 ,也安装了anaconda。因为根据colmap的官方文档说的,如果根据apt-get安装的话,默认是非cuda版本的,而我觉得既然都安装了cuda11.8了,自然也要安装cuda版本的colmap。
安装步骤
整体的安装步骤就是参考的官方文档:https://colmap.github.io/install.html
- 安装依赖
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
注意这里是安装了ceres这个非线性优化库了,所以也就没必要再自己手动去源码安装。
如果apt-get的时候遇到问题了,可以参考这篇博客:https://www.cnblogs.com/gooutlook/p/17682885.html
我在安装这些依赖的时候没有遇到问题,所以直接下一步。
- 克隆代码
git clone https://github.com/colmap/colmap.git
cd colmap
- 在编译之前根据文档的提示,需要在CMakeLists中设置参数来使cuda生效。
就是下面这段原话:
Or, manually install latest CUDA from NVIDIA’s homepage. During CMake configuration specify CMAKE_CUDA_ARCHITECTURES as “native”, if you want to run COLMAP on your current machine only, “all”/”all-major” to be able to distribute to other machines, or a specific CUDA architecture like “75”, etc.
所以在CMakeLists中添加一句:
set(CMAKE_CUDA_ARCHITECTURES "native")
结果如下:
然后就可以继续下面的编译安装。
- 编译安装
mkdir build
cd build
cmake .. -GNinja
ninja
sudo ninja install
在cmake的时候需要注意,如果你是安装了anaconda的话,还需要将anaconda的路径从当前终端去掉,否则很多库会被anaconda覆盖而造成版本不一致报错。具体参考我的这篇博客:anaconda与ros联合使用
在ninja的时候会等待一点时间:
结果:因为前面的依赖安装很顺利,所以比较轻松的安装好了colmap。
- 测试
colmap gui
打开可以用于3D高斯训练的数据集:File->Import model->data->train->spase->0
可以看到稀疏的火车点云。
结束
主要是安装依赖的时候,按照官方文档去装,注意配置cmakelist和消去anaconda的影响,就可以装上colmap。