【工具】【算法】三维重建工具colmap服务器(ubuntu)编译cuda版本

文章目录

前言

colmap常用于多视图重建,即利用多个相机多个视图 或单个相机多个视图重建3D信息,获取相机内外参,其构建的点云是3DGS\4DGS 多视角渲染的初始化条件。但官方仅提供windows系统的cuda版本,如果linux/ubuntu要安装cuda版本用于加速重建,或密集重建,需要自己编译。由于自己在此踩了比较多的坑,因此记录一下。

坑一

服务器直接apt install colmap 安装的是CPU版本,可以进行稀疏重建,但不能密集重建,密集重建需要GPU版本

bash 复制代码
# 密集重建
colmap patch_match_stereo
colmap stereo_fusion

坑2

qt.qpa.xcb: could not connect to display :0

官方问题链接:

https://github.com/colmap/colmap/issues/2312

https://github.com/colmap/colmap/issues/1431

坑3:BLAS library

需要使用比较高等级的cmake

坑4: glog

升级cmake 使用自己的cmake版本,出现这个问题

需要切换glog到兼容版本,且安装seres-solver2.2.0

版本问题,glog0.6.0 seres-solver2.2.0 都要自己编译 。colmap用的cmake版本不能太低,用的4+

可参考官方链接:

https://github.com/colmap/colmap/issues/3091

总结安装过程

1、依赖库的安装

bash 复制代码
sudo apt-get install \
    git \
    cmake \
    ninja-build \
    build-essential \
    libboost-program-options-dev \
    libboost-graph-dev \
    libboost-system-dev \
    libeigen3-dev \
    libfreeimage-dev \
    libmetis-dev \
    libgoogle-glog-dev \
    libgtest-dev \
    libgmock-dev \
    libsqlite3-dev \
    libglew-dev \
    qtbase5-dev \
    libqt5opengl5-dev \
    libcgal-dev \
    libceres-dev \
    libcurl4-openssl-dev \
    libmkl-full-dev

2、编译seres-solver2.2.0

bash 复制代码
git clone https://github.com/ceres-solver/ceres-solver.git
cd ceres-solver
git checkout 2.2.0 (兼容 Colmap)
mkdir build && cd build
cmake .. -DBUILD_EXAMPLES=ON -DBUILD_TESTING=ON
make -j$(nproc)
sudo make install

3、编译glog0.6.0

bash 复制代码
# 安装 glog v0.6.0(兼容 Colmap)
git clone -b v0.6.0 https://github.com/google/glog.git
cd glog && mkdir build && cd build
# cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
cmake .. -DBUILD_EXAMPLES=ON -DBUILD_TESTING=ON
make -j$(nproc)
sudo make install

4、编译colmap 3.11.1

bash 复制代码
git clone --branch 3.11.1 https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
cmake .. -DCMAKE_CUDA_ARCHITECTURES=86 #指定cuda算力8.6,使用native应该也行,参考https://developer.nvidia.com/cuda-gpus
ninja
sudo ninja install

附录知识

1、自己编译的文件一般路径

/usr/local/bin/colmap

如果编译错了,自己这里也要删除

2、带有cuda版本的colmap需要比较高版本的cmake

升级到较新的 CMake 版本也可以解决这个问题。我怀疑 CMake 3.22 可能与较新的 CUDA 架构/编译器不兼容。

https://github.com/colmap/colmap/issues/3415

3、参考路径

https://colmap.github.io/install.html

https://www.cnblogs.com/milton/p/18810762

https://github.com/colmap/colmap/issues/3091 #版本!

4、安装新的cmake,又不和系统冲突

官网下载sh,安装,然后bashrc上添加路径和别名

bash 复制代码
nano ~/.bashrc
alias cmake4='/path/to/cmake/bin/cmake'

结果

编译成功colmap-gpu版本!

相关推荐
一楼的猫3 小时前
从工具链视角对比:番茄作家助手 vs 第三方写作辅助方案
java·服务器·开发语言·前端·学习·chatgpt·ai写作
武子康3 小时前
调查研究-138 全球机器人产业深度调研报告【01 篇】:市场规模、竞争格局与商业化成熟 2026
服务器·数据库·ai·chatgpt·机器人·具身智能
xhbh6664 小时前
代理ARP (Proxy ARP) 是如何实现跨网段通信的?在Linux下如何配置?
服务器·网络·智能路由器·端口映射·映射
神奇椰子5 小时前
[特殊字符] 服务器搭建网站完整教程
运维·服务器
SEO_juper6 小时前
CDN 地域节点优化:匹配 GEO 信号,提升加载速度
服务器·ai·php·seo·cdn·geo·谷歌优化
神奇小梵6 小时前
关于finalshell的使用
linux·服务器·网络
dog2506 小时前
解析几何的现代范式-算力,拟合与对偶
服务器·开发语言·网络·线性代数·php
happymade7 小时前
全网拓扑自动发现与服务器全维度监控的技术实践
linux·运维·服务器·网络·zabbix·路由器·prometheus
小小菜鸟,可笑可笑7 小时前
Ubuntu 系统安装搜狗输入法 & 使用英文标点
ubuntu
cui_ruicheng7 小时前
Linux网络编程(五):基于UDP实现DictServer
linux·服务器·网络·udp