3d gaussian splatting笔记(paper部分翻译)

本文为3DGS paper的部分翻译。

基于点的𝛼混合和 NeRF 风格的体积渲染本质上共享相同的图像形成模型。 具体来说,颜色 𝐶 由沿射线的体积渲染给出:
在这里插入图片描述

其中密度 𝜎、透射率 𝑇 和颜色 c 的样本是沿着射线以间隔 𝛿 𝑖 采集的。 这可以重写为

在这里插入图片描述

典型的基于神经点的方法通过混合与像素重叠的 N 个有序点来计算像素的颜色 𝐶:
在这里插入图片描述

其中 c 𝑖 是每个点的颜色,𝛼 𝑖 是通过评估一个2D 高斯,用协方差 Σ 乘以学习的每点不透明度。

从等式2,3 可以清楚地看到成像模型是相同的。 然而,渲染算法却有很大不同。 NeRF 是隐式表示空/占用空间的连续表示; 需要昂贵的随机抽样才能找到等式2中的样本。 随之而来的噪声和计算开销。 相比之下,点是一种非结构化、离散的表示形式,它足够灵活,可以像 NeRF 一样创建、破坏和位移几何图形。 这是通过优化不透明度和位置来实现的,同时避免了完整体积表示的缺点。

最近的一种方法使用点通过径向基函数方法来表示辐射场。 他们在优化过程中采用点修剪和致密化技术,但使用体积光线行进并且无法实现实时显示速率。
在人体表演捕捉领域,3D 高斯已被用来表示捕捉到的人体。最近,它们已与体积光线行进一起用于视觉任务。 神经体积基元已在类似的背景下被提出。 虽然这些方法启发了我们选择 3D 高斯作为我们的场景表示,但它们专注于重建和渲染单个孤立对象(人体或面部)的特定情况,从而产生深度复杂度较小的场景。 相比之下,我们对各向异性协方差的优化、交错优化/密度控制以及用于渲染的高效深度排序使我们能够处理完整、复杂的场景,包括室内和室外的背景,并且具有较大的深度复杂性。

输入是一组静态场景的图像,以及由 SfM校准的相应摄像机,这会产生稀疏点云作为副作用。 从这些点出发,我们创建了一组 3D 高斯(第 4 节),由位置(均值)、协方差矩阵和不透明度 𝛼 定义,这允许非常灵活的优化机制。 这会产生 3D 场景的相当紧凑的表示,部分原因是高度各向异性的体积片可用于紧凑地表示精细结构。 辐射场的方向外观分量(颜色)通过球谐函数 (SH) 表示。 我们的算法继续通过 3D 高斯参数的一系列优化步骤来创建辐射场表示(第 5 节),即位置、协方差、𝛼 和 SH 系数与高斯密度自适应控制的操作交织在一起。 我们方法效率的关键是我们基于图块的光栅化器(第 6 节),它允许各向异性图块的𝛼混合,通过快速排序尊重可见性顺序。 快速光栅化器还包括通过跟踪累积的 𝛼 值

### 实现 3D Gaussian Splatting 的准备工作 为了在 Ubuntu 上成功实现 3D Gaussian Splatting (3DGS),需要确保操作系统环境已经准备好并安装必要的依赖项。对于 Ubuntu 22.04 版本,建议按照以下指南操作。 #### 安装基础软件包 首先更新系统的软件源列表,并安装一些基本工具和库: ```bash sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install build-essential cmake git wget unzip pkg-config libopencv-dev python3-pip -y ``` #### 设置 Python 和 PyTorch 环境 由于 3D Gaussian Splatting 需要使用到 PyTorch 进行模型训练与推理,因此需先确认 CUDA 版本再选择合适的 PyTorch 版本来安装[^1]。可以通过命令 `nvcc --version` 来查看当前 GPU 所支持的 CUDA 版本号。接着通过 pip 工具来安装对应版本的 PyTorch 及其扩展组件 torchvision: ```bash pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117 ``` 这里假设使用的 CUDA 是 11.7 版本;如果不是,则应调整 URL 中 cu 后面的部分以匹配实际的 CUDA 版本。 #### 获取项目代码 从 GitHub 下载官方提供的 3D Gaussian Splatting 源码仓库: ```bash git clone https://github.com/graphdeco-inria/gaussian-splatting.git cd gaussian-splatting ``` #### 编译 C++ 组件 进入克隆下来的目录后,编译所需的 C++ 插件模块: ```bash mkdir build && cd build cmake .. make -j$(nproc) ``` 这一步骤会生成执行文件和其他必需的支持文件。 #### 准备数据集 如果打算测试自采集的数据集,在此之前还需要做额外的工作来处理这些原始图像序列或者点云数据,使其能够被算法所接受。具体方法可以参见相关文档说明[^3]。 #### 测试运行 最后,尝试启动示例程序验证整个流程是否正常工作: ```bash python3 main.py --config configs/example.yaml ``` 以上就是在 Ubuntu 平台上部署 3D Gaussian Splatting 技术的大致过程概述。需要注意的是,不同硬件配置可能会遇到不同的兼容性和性能优化问题,所以在实践中可能还需进一步调试参数设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值