Ubuntu20.04 3DGS复现全流程

[复制链接]
发表于 2026-10-6 11:52:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

3D 高斯泼溅(3D Gaussian Splatting,简称 3DGS)这两年很热,核心想法是用大量可优化的 3D 高斯点表示场景,训练后渲染速度快、画质好。要在自己机器上跑通这套流程,环境比普通深度学习项目更折腾:既要 CUDA 与显卡驱动对得上,又要 COLMAP 版本达标,还有一堆子模块要单独编译。本文以 Ubuntu 20.04 + RTX 3090 Ti + CUDA 11.8 为例,把从环境准备到可视化出图的完整链路记录一遍。

一、环境准备

先列出一套验证过能跑的组合:

  • 操作系统:Ubuntu 20.04
  • 显卡:NVIDIA GeForce RTX 3090 Ti
  • CUDA:11.8
  • Python 环境:Anaconda3 管理
  • COLMAP:3.9 及以上(低于 3.8 后面跑 convert.py 会出问题)
  • 其余依赖:官方提供的虚拟环境里基本已配好

重点是 COLMAP 版本这条硬要求——它承担从图片帧恢复相机位姿与稀疏点云的工作,版本不对会直接卡在点云生成那一步。

二、安装 3DGS 代码

按官方仓库的说明安装即可。装好、虚拟环境配好之后,还有一步很容易漏:在项目目录下有两个子模块(diff-gaussian-rasterization 与 simple-knn),需要在仓库里下载下来并分别装上:

pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn

不装这两个子模块,训练阶段会直接报错退出,这是新手最常见的第一道坎。

三、复现流程

3.1 准备训练视频

准备一段围绕目标旋转拍摄的视频素材,在 gaussian-splatting 目录下建一个 data 文件夹,把视频放进去(例如放在 data 下的 ggbond 子目录)。

3.2 抽帧成图片

在 ggbond 目录下建 input 目录,用 ffmpeg 把视频按帧抽成图片放到里面。注意要在配置好的虚拟环境里执行,不进虚拟环境会报依赖错误。

ffmpeg -i 输入视频.mp4 input/%04d.png

3.3 生成点云

回到 gaussian-splatting 根目录,跑源码里的 convert.py,内部会调用 COLMAP 完成位姿估计与稀疏重建。

python convert.py -s data/ggbond

跑完后在对应数据目录下会生成 sparse 点云结构(相机参数、点云文件),这就是后续训练的输入。这一步耗时和图片数量强相关,几百张图一般几分钟到十几分钟。

3.4 开始训练

python train.py -s data/ggbond -m data/ggbond/output

训练结束后,数据目录下会多出 output 文件夹,里面存着训练产出的高斯参数与结果快照。训练时长取决于场景复杂度与迭代次数,小场景一般十几分钟到一小时。

3.5 可视化

Ubuntu 桌面下直接可视化涉及一套相对复杂的环境配置,更省事的做法是到 Windows 端用官方提供的 Viewer 工具看结果(Windows 机器需要有独立显卡,核显基本带不动)。

下载 Viewer 后把训练好的文件夹放进 viewers 目录,打开命令行执行启动命令。Windows 的路径分隔符是反斜杠,Linux 是正斜杠,跨平台操作时这里很容易写反导致启动失败。

四、常见问题

  • convert.py 报错:九成是 COLMAP 版本低于 3.8,升级到 3.9 及以上再试。
  • 训练即退出:子模块没装,按第二节把 diff-gaussian-rasterization 与 simple-knn 补上。
  • 显存溢出:降低迭代分辨率、减少每张图的批次、或者换更小场景先跑通。
  • 抽帧命令找不到 ffmpeg:系统没装 ffmpeg,先装再抽帧。
  • Viewer 起不来:多半是路径写反或训练产物目录放错位置,核对一遍目录结构。
  • 结果糊、有噪点:训练帧数不够或输入图片质量差(模糊、过曝),回炉重抽帧更划算。

五、实践建议

  • 先用一个小物件、几十秒的视频跑通全流程,别一上来就拍大场景。
  • 抽帧密度要适中:帧太多了训练慢、显存吃紧;太少则点云稀疏、重建质量差。一般每秒 2 到 5 帧起步试。
  • 拍摄时尽量保证目标周围有纹理特征,纯白墙面这类缺乏特征区的场景 COLMAP 恢复位姿容易失败。
  • 整个流程最耗时的其实是建点云与训练这两段的 GPU 与 CPU 时间,排期时留足余量。
  • 环境配置一定要留记录:Anaconda 环境、COLMAP 路径、子模块版本都要记下来,下次换机器能少踩一大半坑。

整体看,3DGS 复现的难度不在模型理解,而在环境拼装:CUDA、COLMAP、子模块、Viewer 四处任一处版本不合都会卡住。按「先把 COLMAP 和子模块这两个硬依赖确认好,再走抽帧 → 建点云 → 训练 → 可视化」的顺序推进,剩下的基本就是等它跑完。

qidao123.com企服评测-应用市场 编辑提示:本文为 3D 高斯泼溅复现流程的步骤整理,已移除原文中的所有外链、图片与视频来源信息;文中的版本号、路径、坐标为示例值,请以官方文档与实际环境为准。

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表