本文最后更新于:2025年6月12日 晚上

3D Gaussian Splatting 是3D 重建的划时代技术,本文记录官方代码的实践过程。

简介

3D Gaussian Splatting(3D高斯泼溅/3D高斯点染)是一种用于‌实时高质量新视角合成‌的突破性3D场景表示与渲染技术。其核心特点在于将三维场景表征为一系列带有可学习属性的3D高斯函数,并通过高效的光栅化方式进行渲染。

环境准备

工具安装

  • 操作系统 Ubuntu 22.04

  • Anaconda

  • Cuda 11.8

  • 安装 Colmap

  • 安装 ImageMagic

    1
    sudo apt install imagemagick

源码安装

  • 下载源码:

    1
    2
    # SSH
    git clone git@github.com:graphdeco-inria/gaussian-splatting.git --recursive

    1
    2
    # HTTPS
    git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
  • 安装 Python 环境:

    1
    2
    conda env create --file environment.yml
    conda activate gaussian_splatting
  • 安装 SIBR

    仓库中包含了 SIBR 的源码,在 SIBR_viewers 文件夹中

    先安装相关依赖, 再编译安装

    1
    2
    3
    4
    5
    6
    # Dependencies
    sudo apt install -y libglew-dev libassimp-dev libboost-all-dev libgtk-3-dev libopencv-dev libglfw3-dev libavdevice-dev libavcodec-dev libeigen3-dev libxxf86vm-dev libembree-dev
    # Project setup
    cd SIBR_viewers
    cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release # add -G Ninja to build faster
    cmake --build build -j24 --target install
  • 执行

    1
    2
    cd gaussian-splatting/SIBR_viewers/install/bin
    ./SIBR_remoteGaussian_app

    能显示如下界面表示安装成功。

数据准备

训练模型

这里以 MipNerf360 中 bicycle 数据为例训练 3D GS 模型

  • 复制 bicycle2 中的图片到特定的文件夹 <path_to_dataset>/input

    1
    2
    3
    4
    5
    <location>
    |---input
    |---<image 0>
    |---<image 1>
    |---...
  • 生成 Colmap

    1
    python convert.py -s <path_to_dataset>
  • 进行训练:

    1
    python train.py -s <path_to_dataset>

模型可视化

训练过程占用显存不断增加,我的显卡显存 12G,仅能支持训练到 8000 iter,默认在 7000 iter时保存模型,这里我们展示该模型效果

重建效果对比

3D 可视化

参考资料



文章链接:
https://www.zywvvd.com/notes/3d/gs/gaussian-splating-3d-in-action/gaussian-splating-3d-in-action/


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

3D Gaussian Splatting 官方源码实践记录
https://www.zywvvd.com/notes/3d/gs/gaussian-splating-3d-in-action/gaussian-splating-3d-in-action/
作者
Yiwei Zhang
发布于
2025年6月11日
许可协议