项目仓库
Readme中对于安装顺序和版本要求描述有误,根据作者对于反馈的回复,项目必须使用以下版本构建:
ceres-solver 2.1.0
。更新版本(2.2.0)
不可用。
colmap 3.8
,使用由ceres-solver 2.1.0
构建的CUDA版本,而不是colmap 3.9.1
。
pyceres v1.0
,使用由ceres-solver 2.1.0
构建的CUDA版本。
pycolmap 0.4.0
,使用由ceres-solver 2.1.0
构建的CUDA版本。
hloc 1.4
,使用由ceres-solver 2.1.0
构建的CUDA版本,而不是hloc 1.5
。
Ceres
# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse (optional)
sudo apt-get install libsuitesparse-dev
准备构建、测试、安装:
tar -zxf ceres-solver-2.1.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-2.1.0
make -j3
make test
make install
安装完成后运行以下示例测试是否正常运作。
bin/simple_bundle_adjuster ../ceres-solver-2.2.0/data/problem-16-22106-pre.txt
COLMAP
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
配置和编译COLMAP:
cd colmap
mkdir build
cd build
cmake .. -GNinja
ninja
sudo ninja install
若报错ptxas fatal : Value 'sm_30' is not defined for option 'gpu-name'
,表明CUDA 架构设置有问题,在COLMAP的CmakeLists.txt中添加一行:
set(CMAKE_CUDA_ARCHITECTURES 30 35 37 50 52 60 61 62 70 72 75 80 86 89)
完成后可通过命令行或GUI运行:
colmap -h
colmap gui
尽管文档中提到了为了CUDA支持需要安装nvidia-cuda-toolkit等包,但是我实际后续因此可能产生问题。可以姑且无视。
PIXSFM
安装依赖,已包括指定版本的pycolmap
+pyceres
sudo apt-get install libhdf5-dev
git clone https://github.com/cvg/pixel-perfect-sfm --recursive
cd pixel-perfect-sfm
pip install -r requirements.txt
hloc
下载1.4版本
cd Hierarchical-Localization-1.4/
pip install -r requirements.txt
pip install -e .
安装pixsfm
cd ../
pip install -e . # install pixsfm in develop mode