COLMAP 安装记录

安装colmap报错

[ 55%] Building CXX object src/CMakeFiles/colmap.dir/estimators/generalized_relative_pose.cc.o
[ 58%] Building CXX object src/CMakeFiles/colmap.dir/estimators/homography_matrix.cc.o
[ 58%] Building CXX object src/CMakeFiles/colmap.dir/estimators/pose.cc.o
/home/a609/software/colmap-master/src/estimators/pose.cc: In function ‘bool colmap::RefineAbsolutePose(const colmap::AbsolutePoseRefinementOptions&, const std::vector<char>&, const std::vector<Eigen::Matrix<double, 2, 1>, std::allocator<Eigen::Matrix<double, 2, 1> > >&, const std::vector<Eigen::Matrix<double, 3, 1> >&, Eigen::Vector4d*, Eigen::Vector3d*, colmap::Camera*, Eigen::Matrix6d*)’:
/home/a609/software/colmap-master/src/estimators/pose.cc:239:37: error: ‘qvec_data’ was not declared in this scope
  239 |     SetQuaternionManifold(&problem, qvec_data);
      |                                     ^~~~~~~~~
/home/a609/software/colmap-master/src/estimators/pose.cc:304:52: error: ‘qvec_data’ was not declared in this scope
  304 |     std::vector<const double*> parameter_blocks = {qvec_data, tvec_data};
      |                                                    ^~~~~~~~~
/home/a609/software/colmap-master/src/estimators/pose.cc:304:63: error: ‘tvec_data’ was not declared in this scope
  304 |     std::vector<const double*> parameter_blocks = {qvec_data, tvec_data};
      |                                                               ^~~~~~~~~
/home/a609/software/colmap-master/src/estimators/pose.cc:304:72: error: could not convert ‘{<expression error>, <expression error>}’ from ‘<brace-enclosed initializer list>’ to ‘std::vector<const double*>’
  304 |     std::vector<const double*> parameter_blocks = {qvec_data, tvec_data};
      |                                                                        ^
      |                                                                        |
      |                                                                        <brace-enclosed initializer list>
make[2]: *** [src/CMakeFiles/colmap.dir/build.make:696:src/CMakeFiles/colmap.dir/estimators/pose.cc.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:604:src/CMakeFiles/colmap.dir/all] 错误 2
make: *** [Makefile:136:all] 错误 2

一种解决办法:

github 地址 下载 colmap-dev 而不是 colmap-master,尝试后问题解决

官网安装步骤(Linux):

最好安装 7.X 版本以上的 CUDA

1. 安装需要的包

看其他教程,还需要安装 Eigenceres-solver

我安装的 3.3.7 版本的 Eigen 和 1.14.0 版本的 ceres-solver

sudo apt-get install \
    git \
    cmake \
    ninja-build \
    build-essential \
    libboost-program-options-dev \
    libboost-filesystem-dev \
    libboost-graph-dev \
    libboost-system-dev \
    libboost-test-dev \
    libeigen3-dev \
    libflann-dev \
    libfreeimage-dev \
    libmetis-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    libsqlite3-dev \
    libglew-dev \
    qtbase5-dev \
    libqt5opengl5-dev \
    libcgal-dev \
    libceres-dev

2. 配置和编译 COLMAP:

cmake .. 这一句后面的 '86' 是显卡的算力
根据 CPU 线程数决定 make 后面加不加参数
英伟达官网 查显卡算力,找到 CUDA-Enabled GeForce and TITAN Products 这一行

在这里插入图片描述

git clone https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
cmake .. -DCMAKE_CUDA_ARCHITECTURES='86'
make -j8
sudo make install

3. 编译过程:

-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found installed version of Eigen: /usr/lib/cmake/eigen3
-- Found required Ceres dependency: Eigen version 3.3.7 in /usr/include/eigen3
-- Found required Ceres dependency: glog
-- Found installed version of gflags: /usr/lib/x86_64-linux-gnu/cmake/gflags
-- Detected gflags version: 2.2.2
-- Found required Ceres dependency: gflags
-- Found Ceres version: 1.14.0 installed in: /usr/local with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, SchurSpecializations, OpenMP, Multithreading]
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: program_options filesystem graph system unit_test_framework 
-- Found Eigen3: /usr/local/include/eigen3 (Required is at least version "2.91.0") 
-- Found Eigen
--   Includes : /usr/local/include/eigen3
-- Found FreeImage
--   Includes : /usr/include
--   Libraries : /usr/lib/x86_64-linux-gnu/libfreeimage.so
-- Found FLANN
--   Includes : /usr/include
--   Libraries : /usr/lib/x86_64-linux-gnu/libflann.so
-- Found LZ4
--   Includes : /usr/include
--   Libraries : /usr/lib/x86_64-linux-gnu/liblz4.so
-- Found Glog
--   Includes : /usr/include
--   Libraries : /usr/lib/x86_64-linux-gnu/libglog.so
-- Found SQLite3
--   Includes : /usr/include
--   Libraries : /usr/lib/x86_64-linux-gnu/libsqlite3.so
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so   
-- Found Glew
--   Includes : /usr/include
--   Libraries : /usr/lib/x86_64-linux-gnu/libGLEW.so
-- Found Git: /usr/bin/git (found version "2.25.1") 
-- Using header-only CGAL
-- Targetting Unix Makefiles
-- Using /usr/bin/c++ compiler.
-- Found GMP: /usr/lib/x86_64-linux-gnu/libgmp.so  
-- Found MPFR: /usr/lib/x86_64-linux-gnu/libmpfr.so  
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.48")  
-- Boost include dirs: /usr/include
-- Boost libraries:    
-- Using gcc version 4 or later. Adding -frounding-math
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- The CUDA compiler identification is NVIDIA 11.3.109
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc - skipped
-- Detecting CUDA compile features
-- Detecting CUDA compile features - done
-- Found Qt
--   Module : /usr/lib/x86_64-linux-gnu/cmake/Qt5Core
--   Module : /usr/lib/x86_64-linux-gnu/cmake/Qt5OpenGL
--   Module : /usr/lib/x86_64-linux-gnu/cmake/Qt5Widgets
-- Found CGAL
--   Includes : /usr/include
--   Libraries : CGAL
-- Build type not specified, using Release
-- Enabling SIMD support
-- Enabling OpenMP support
-- Disabling interprocedural optimization
-- Enabling CUDA support (version: 11.3.109, archs: 86)
-- Enabling GUI support
-- Enabling OpenGL support
-- Disabling ccache support
-- Disabling profiling support
-- Enabling CGAL support
-- Configuring done
-- Generating done
-- Build files have been written to: /home/a609/software/colmap-dev/build

终端输入 colmap gui,可以看到 colmap 界面

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值