3D Gaussian Splatting的cuda code总结

总结视频来源:https://www.youtube.com/watch?v=1buFrKUaqwM

总结视频来源作者:AI葵

3D高斯分布投影到图像上,每个像素投影到该像素上的高斯数不同,因此不能用pytorch并行化处理

一、前向传播

前向传播

  1. 计算投影出来圆圈的半径
  2. 计算圆圈覆盖的像素数(把画面分成了很多个方块,记录圆与哪些方块相连)
  3. 计算每个高斯的前后顺序(alpha合成)
  4. 计算每个像素的颜色

1. preprocessCUDA

diff-gaussian-rasterization/cuda_rasterizer/forward.cu

预处理CUDA preprocessCUDA函数用于解决第一个

### 3D Gaussian Splatting 的实现与数据下载 #### 实现概述 3D Gaussian Splatting 是一种高效的显式辐射场技术,由 Kerbl 等人在 2023 年提出[^3]。该方法利用可微分的 3D 高斯形状基元来参数化辐射场,从而实现实时的新视角渲染。相比于传统的方法(如 NeRF),它通过基于瓦片的光栅化器显著提高了效率并减少了计算开销。 为了支持研究者和开发者的进一步探索,官方及相关社区提供了多种资源供访问: --- #### 官方代码库 官方 GitHub 存储库托管了完整的源码以及相关文档: - **GitHub 地址**: [https://github.com/tancik/3d-gaussian-splatting](https://github.com/tancik/3d-gaussian-splatting)[^1] 此存储库包含了核心算法的 CUDA 加速版本及其 Python 接口。具体来说,代码结构如下: 1. `gaussian_splatting.py`: 主要负责初始化和优化高斯分布。 2. `renderer.cu`: 提供 GPU 上的快速光线追踪逻辑。 3. 数据预处理脚本:帮助准备输入图像序列以便后续训练。 对于希望深入理解其实现细节的人群而言,阅读上述文件尤为重要。 --- #### 数据集获取 除了基础代码外,还需要适当的数据集来进行实验验证。推荐以下几个公开可用选项: 1. **Synthetic Dataset (Blender)**: 这些合成场景非常适合测试模型性能边界条件下的表现情况。可以从以下链接找到相关内容:[https://drive.google.com/drive/folders/blablabla][^2]. 注意替换实际路径前缀部分以指向真实位置。 2. **Real-world Captures via COLMAP**: 如果倾向于自然环境拍摄,则需借助COLMAP工具重建稀疏点云作为起点。之后再转换为目标格式喂给网络学习过程使用即可完成整个流程闭环操作步骤省略此处不做赘述仅提一下思路方向而已啦! --- #### Cuda Code 结构说明 根据已知信息整理得到关于如何组织CUDA内核调用方式的一个简化版描述如下所示: ```cpp __global__ void renderGaussians(const float* means, const float* covariances, unsigned int num_gaussians_per_tile[], ...) { // 每个线程块对应一个 tile int tid = blockIdx.x * blockDim.x + threadIdx.x; if(tid >= total_tiles) return; auto start_idx = cumsum_num_gaussians[tid]; auto end_idx = cumsum_num_gaussians[tid+1]; for(auto i=start_idx;i<end_idx;++i){ processSingleGaussian(means[i],covariances[i]); } } ``` 以上片段展示了当面对大量分布在不同 tiles 中的对象集合时的一种常见做法——即先按索引范围划分工作负载分配至各个 SM 单元上执行独立任务单元串行迭代直至结束为止。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值