Colmap+3DGS复现过程

前言

基于Ubuntu20.04系统运行Colmap生成稀疏点云,并通过自带的gui可视化。将Colmap估计的点云位姿整理成3DGS输入数据格式,进一步渲染,得到纹理细腻的三维重建场景,在Windows使用预编译的SIBR_gaussianViewer_app.exe进行可视化。

1. 安装Colmap

项目地址:https://github.com/colmap/colmap.git

1. 使用git把项目拉下来:
git clone https://github.com/colmap/colmap.git

2. 环境配置:[官方文档](https://colmap.github.io/install.html)
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 libtiff-dev
# 安装CUDA依赖
sudo apt-get install -y nvidia-cuda-toolkit nvidia-cuda-toolkit-gcc

3. 编译项目包
cd colmap
mkdir build
cd build
cmake .. -GNinja DCMAKE_CUDA_ARCHITECTURES=61  # 查看自己的显卡指定CUDA架构,我的是1050ti,对应61
ninja
sudo ninja install

4. 可视化界面
colmap -h
colmap gui

显卡的CUDA架构对应的编号查询:cuda-gpuscuda-legacy-gpus
在gui中先进行特征提取、匹配(用时较长)、然后再开始重建、稠密重建。点击file>Export model导出计算得到的3D模型数据(cameras.bin,images.bin, points3D.bin,project.ini)用来放到3DGS中作为输入数据。
​​​​​​
​​​​
编译过程报错:

1. CMake版本太低:
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  CMake 3.17 or higher is required.  You are running version 3.10.2
解决方法:安装更高版本的CMake,到[官网](https://cmake.org/files/v3.18/)下载安装包
下载的是cmake-3.18.3

# 查看cmake版本
cmake --version 
# 解压编译
tar xf cmake-3.18.3.tar.gz
# 若有权限锁则修改权限
sudo chmod -R 777 cmake-3.18.3
cd cmake-3.18.3
sudo apt-get install libssl-dev build-essential 
# 编译安装
./bootstrap
./configure
make
sudo make install
cmake --version
# 将可执行文件重新复制到对应路径下
sudo cp installed_app/cmake-3.18.3/bin/cmake /usr/bin/

57张照片,训练了72min。

其他的报错

2. 运行3DGS

项目地址:https://github.com/graphdeco-inria/gaussian-splatting

2.1 下载CUDA

CUDA版本在11.8以上,保证CUDA和pytorch版本配套即可,我的版本是12.2,对应的pytorch是2.2.0 参考教程
下载CUDA11.8

# 查看是否安装CUDA
nvcc -version
# 没有安装的话则手动安装,先下载runfile
sudo chmod +x cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

涉及到安装驱动包的选项,按空格取消,即用本来安装好的显卡驱动。检查是否安装好及环境配置参考

2.2 配置CuDNN

因为服务器之前已经配置过了,这里没有安装。

2.3 编译3DGS

官方数据集:下载

1.创建目录拉取git源码
# 一定要用--recursive,否则submodules文件夹下面是空的
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive

2. 创建conda环境
# 注意先换源,阿里云或清华源,否则下载不了
conda env create --file environment.yml -n my_3dgs  # -n 表示创建一个my_3dgs的环境
# 启动环境
conda activate my_3dgs
# 如果这里安装报错的话,就按照environment.yml里面用conda或者pip手动安装(如果用pip,列表中的pytorch=1.12.1要改为torch==1.12.1,python和pip可以不用下)先安装dependencies再安装pip部分。

3. 训练模型
# 如果用官方的数据集,就在上文下载。数据集格式是:myimg下有两个文件夹,一个是images/,装的是采集的原图像;一个是sparse/0/,装的是colmap生成的点云的配置。
python train.py -s ~/DataSet/tandt_db/tandt/truck -m ~/DataSet/output --iterations=6000 

3DGS输入图像的文件夹格式:

根据不同迭代次数生成文件夹:

57张照片迭代6000次,用了五分钟左右。

  1. 可视化
    在windows上用官方直接编译好的.exe文件对训练结果进行可视化。官方github有链接:可视化下载
    将训练时的数据images、训练后的数据output拷贝到viewer文件夹中,然后修改output/cfg_args文件中的路径:
model_path='~\viewer\output'    # 最好设置成绝对地址
source_path='~\viewer\images'

在bin/目录下打开终端,运行:

.\SIBR_gaussianViewer_app.exe -m ~\viewer\output

重建效果:

SIBR_gaussianViewer各个组件的功能

posted @ 2025-06-16 17:14  soffiya  阅读(1275)  评论(0)    收藏  举报