3D Gaussian Splatting学习记录11.3

文章探讨了一种新的3D渲染技术,利用点云和高斯表达实现快速、高分辨率的实时渲染,同时强调了CUDA在GPU并行计算中的优势。文章对比了Python和CUDA在性能上的差异,并提及了其他点云相关方法如Point-NeRF和Plenoxels。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文细节

参考了论文讲解

  • 思想:就像泼溅(splatting)的水球(gaussian)。从已有的点云模型出发,以每个点为中心,建立可学习的3D高斯表达,用splatting 方法进行渲染,实现高分辨率的实时渲染,推动了NeRF加速方向的进展。
  • 优点:很快,很好的GPU,100FPS;效果很好,纹理细节,超过很多NeRF;显存占用小,方便实用;可以随机初始化点云,即可以不提供点云,在训练时进行点云的生长和修剪
  • COLMAP - 相机位姿 - 点云
  • 缺点:重建室内场景很差,因为技术比较原始,之后会有更多改进(可能是借鉴NeRF中的一些方法可能是新方法)。墙壁没有纹理,很难获取深度,所以重建出来从旁边看会有一团雾。反光的表面也重建的不好。
  • 可以应用到unreal engine,unity,polycam,luma AI等
  • 贡献:(1)各向异性,即各个方向看都不一样

  • 为什么要用CUDA:CUDA编程的最大意义在于可以加速,高效运行,因为python是解释型语言,CUDA是编译型语言,一般先天python就比CUDA要慢。这是AI的回答:

有的编程语言选择使用CUDA而不是Python的原因主要是因为CUDA提供了更直接的GPU并行计算支持,而Python作为一种高级编程语言,对于GPU的并行计算支持相对较弱。

虽然Python有一些库和框架(如TensorFlow、PyTorch)可以利用CUDA进行GPU加速,但是Python本身是解释性语言,相对于底层的CUDA,其执行效率较低。此外,Python的语法和动态类型特性也限制了其在性能密集型计算任务上的表现。

相比之下,CUDA是专门为GPU并行计算而设计的平台和编程模型。CUDA提供了底层的并行计算功能和优化工具,可以直接利用GPU的强大计算能力,从而在性能上有更大的优势。此外,CUDA提供了丰富的库函数和工具,简化了并行程序的编写和调试过程。

需要注意的是,Python作为一种通用的高级编程语言,拥有广泛的应用领域,特别是在数据处理、科学计算和机器学习等领域。对于这些领域的任务,Python具有较高的开发效率和灵活性,因此在选择编程语言时需要根据具体任务的需求来进行权衡和选择。

  • 其他方法:图片+深度预测,得到点云,再得到mesh
  • 相关方法:和Point-NeRF都是用到点云,但避开了对点云抽象特征的学习,且用splatting代替Point-NeRF的体渲染。Point-NeRF有些浪费了点云携带的精确几何信息,但本文可以最大程度用点云。Plenoxels用到体素、三线性插值、体渲染,抛弃MLP和隐式特征,用到更显式的球谐函数,思想类似,都是用传统高效的方法提高模型表达的下限,结合可微可学习思想拉高模型拟合的上限。

  • inputs:g_rgb 颜色(3)、g_points 3D位置(3)、g_scale 三轴长度(3)、g_rotation 旋转(4)、g_opacity 透明度(1)等
  • output:p_rgb 颜色(P, 3)

  • 反向传播回所有参与渲染的gaussian,链锁率,在backward.cu中 - “反向微分那里知道怎么回事就可以了,如果需要动这一块的时候再说,因为这一块梯度回传是已经完全写好了,可以理解为,这一块的代码已经打包成一个模块,可以和一般的深度学习模块是一样的,知道在哪是干什么的就可以了。”
  • 优化和自适应密度控制

  • tile-based光栅化

ps:一个很好的交互式学习网站:brilliant.org/cloud

### 实现 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值