ubuntu安装colmap和pycolmap最新版2024

colmap和pycolmap作为重要的计算机视觉中相机定位,三维重建的重要工具,并且还在一直维护和更新,因此安装的方法也会随着版本更迭而改变,之前很多相关的教程都不太适用现在最新的版本了


前言

最近需要使用hloc项目,因此需要安装colmap,而直接通过 pip install pycolmap下来的不是gpu版本,进行三维重建时会非常的慢,因此需要从源码编译,具体github项目可见https://github.com/colmap/colmap在编译过程参考过很多之前的心相关教程,但多数较低版本的colmap以及pycolmap,现在已经不需要改anaconda名字或者自己安装ceres库等繁琐操作。在安装过程中也是遇到了各种形形色色的坑,花了好几天时间才完成,因此记录一下也方便大家避坑

一、安装前的准备

GPU版本的colmap需要cuda支持,因此需要下载自己GPU适配的cudatoolkit,python版本我这里用的是3.9(3.10我都也尝试过也可以),cudatoolkit我用的cudatoolkit11.8。
另外这里需要更新的cmake的版本,ubuntu自带的cmake版本为3.16,非常的古老,我们需要进行升级,不进行升级的话,编译pycolmap会报找不到python的解释器的错误,因此推荐大家自己从官网重新下一个高版本的,然后用软连接的方式,这样不需要删除自己之前的cmake版本,以免造成一并删除cmake编译的内容。这里我用的cmake版本为3.23.0,最近的版本都可以使用的。

二、安装和编译colmap

1.安装正确版本的colmap

从github上下载colmap项目

git clone https://github.com/colmap/colmap.git

由于默认分支下项目会编译出3.10版本的colmap(原因可见cmakelist中的“set(COLMAP_VERSION “3.10-dev”)”),而下载文档给的是针对3.9编译的并且按照3.10编译在后面编译pycolmap也会报版本不对的错误,因此我们需要切换git分支到3.9.1也只能是3.9.1(对于0.6.0的pycolmap来说)

cd colmap
git checkout e990364

2.编译colmap

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

这里如果遇到报错的话就更新下安装包,应该就不报错了

sudo apt update

之后就是使用cmake的过程了

cd colmap
mkdir build
cd build
cmake .. -GNinja
ninja
sudo ninja install

在执行ninjia时会遇到下面的报错,
这是我之前下载的错误的截图,当时cuda版本为10.1比较老

我们需要先根据自己的GPU类型确定算力,修改colmap文件夹下的CmakeList.txt文件,可以参考这位老哥解答的问题2
我的GPU是4060,属于40系列,因此算力为89。在cmakelist加入

set(CMAKE_CUDA_ARCHITECTURES "89")

然后再次执行就会发现不报错啦,最后可以输入

colmap gui

看到图像化界面就说明colmap安装成功
在这里插入图片描述

3.编译pycolmap

我选择的是0.6.0版本的pycolmap,然后也别忘记修改cuda的算力,方法同上,否则会报错

git clone https://github.com/colmap/pycolmap.git
cd pycolmap
git checkout 58ddb6d
python -m pip install .

最后就可以看到0.6.0的pycolmap安装成功啦
在这里插入图片描述


总结

现在想想自己花了好久的东西其实就这么点步骤,也是很简单的。反思了一下,主要是因为代码版本的问题以及cmake的版本问题导致我卡了好久,但最主要还是经验不足,比如之前一直在服务器上跑代码,没开远程桌面,编译的时候colmap gui老是报错,后来才明白远程服务器我就只有一个终端哪里给我跳出gui来呢,现在想想当时的问题也都很好笑,但当时就是没想到,也就当积累经验吧

  • 27
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值