Ubuntu 编译安装Colmap

本文详细描述了在Ubuntu22.04环境下使用gcc/g++9.5和cmake3.22编译Colmap3.9时遇到的库依赖问题,包括Anaconda影响、CMAKE_CUDA_ARCHITECTURES设置以及Ceres-Solver的安装与集成,确保编译流程顺利进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 编译环境:
    • Ubuntu 22.04
    • gcc & g++ :9.5
    • cmake :3.22
    • 一些必要的库:
      • sudo apt-get install cmake libeigen3-dev libboost-all-dev libfreeimage-dev libsuitesparse-dev libgoogle-glog-dev libgflags-dev libgtest-dev
        sudo apt-get install libmetis-dev
  • Colmap 3.9:
    • https://github.com/colmap/colmap.git
      cd colmap
      mkdir build
  •  注意:
    • 到这一步,就需要进行编译,编译过程容错很低,我遇到的问题是anaconda目录中的lib文件和系统文件调用的冲突问题,解决:
      • anaconda安装路径中的lib文件夹整个复制到随便一个备份区域,这是为了不让编译colmap的过程受到anaconda系统环境变量的影响;
    • 这里有一个问题,就是要设置CMAKE_CUDA_ARCHITECTURES,在colmap文件夹下,编辑CMakeLists.txt,加入这个名命令(43行)(加入了就行,具体几行没那么重要)

 

    • 还有一个问题是:
    • 为了防止这个问题的发生,要:
      • 编辑 colmap/src/colmap/exe/sfm.cc,在文件开头(或者说是在include boost头文件之前)加入这段:
        • #define BOOST_BIND_GLOBAL_PLACEHOLDERS
  • 同时在Ubuntu中安装Ceres Solves

    • sudo apt-get install cmake git
      
      git clone https://github.com/ceres-solver/ceres-solver.git
      cd ceres-solver
      
      mkdir build
      cd build
      
      cmake ..
      make -j$(nproc)
      sudo make install
      
  • 以上步骤都是为了确保对Colmap的整个编译流程顺利进行。
  • 之后:进入之前在colmap目录中建立的build目录
    • cd build #进入build文件夹
      cmake .. 
      make -j$(nproc)
      make install

  • 大功告成
### 如何在Ubuntu 24.04上安装Colmap #### 准备工作 确保系统已更新至最新状态并安装必要的依赖项。对于Ubuntu 24.04,建议先执行以下命令来获取最新的软件包列表以及升级现有程序到其最新版本: ```bash sudo apt update && sudo apt upgrade -y ``` #### 安装依赖库 根据官方文档说明[^1],需要预先配置一些基础环境变量和工具链支持。具体操作如下所示: - 更新APT源并安装基本构建工具: ```bash sudo apt install software-properties-common ``` - 添加GPG密钥及PPA仓库以便后续能够顺利下载所需资源: ```bash wget https://raw.githubusercontent.com/colmap/colmap/master/scripts/linux/install_dependencies.sh chmod +x install_dependencies.sh ./install_dependencies.sh ``` 上述脚本会自动处理大部分前置条件设置工作。 #### 下载与编译COLMAP源码 从GitHub克隆项目仓库,并按照指示完成本地化定制过程。考虑到不同发行版之间的差异性,在此推荐采用最稳定的方式来进行编译部署: - 获取最新版COLMAP源代码 ```bash git clone --recursive https://github.com/colmap/colmap.git ~/colmap cd ~/colmap ``` - 创建临时文件夹用于存放编译产物并将当前路径切换至此处继续下一步骤: ```bash mkdir -p build && cd build ``` - 使用CMake生成对应的Makefile文件,这里指定了安装位置为`/usr/local`: ```bash cmake .. ``` 如果遇到任何错误提示,则可能是因为缺少某些特定组件;此时可以参照报错信息补充相应缺失部分后再试一次。 #### 执行编译指令 当一切就绪后就可以正式开始编译流程了。利用多线程加速整个过程可有效缩短等待时间: ```bash make -j$(nproc) ``` 这一步可能会花费较长时间视乎机器性能而定,请耐心等候直至结束。 #### 正式安装 最后通过管理员权限将刚才产生的二进制文件复制到指定目录内即可实现全局可用的目标: ```bash sudo make install ``` #### 验证安装成果 为了确认是否成功完成了全部步骤,可以通过简单的测试案例验证功能正常与否: ```bash colmap --version ``` 若能正确显示版本号即代表此次安装顺利完成!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值