当前位置: 首页 > news >正文

3D Gaussian Splatting部分原理介绍和CUDA代码解读

本系列旨在帮助无CUDA代码经验的读者、以及3DGS的初学者理解代码逻辑。

3D GS论文原文链接:https://arxiv.org/abs/2308.04079

论文笔记链接:【论文笔记】3D Gaussian Splatting for Real-Time Radiance Field Rendering

【论文笔记】A Survey on 3D Gaussian Splatting 这篇综述的第3章也有详细介绍3D GS的方法。

官方代码链接:可微栅格化的CUDA代码(本系列文章介绍的代码均在此repo内);3D GS完整代码


系列文章地址及简介(点击蓝色文字即可跳转原文;内容均为本人原创,有误之处敬请指出):

  • 3D Gaussian Splatting部分原理介绍和CUDA代码解读(一)——3D/2D协方差和高斯颜色的计算
    • 介绍了3D和2D协方差矩阵的计算原理,以及通过球面谐波系数计算2D高斯颜色的过程。
    • 涉及forward.cu文件中的computeCov3DcomputeCov2DcomputeColorFromSH三个主要函数。
  • 3D Gaussian Splatting部分原理介绍和CUDA代码解读(二)——栅格化开始时的预处理
    • 介绍了3DGS渲染前的预处理步骤,主要包括计算2D高斯坐标、逆协方差、以及与每个高斯相交的tile数量等操作。
    • 涉及forward.cu文件中的preprocessCUDA函数,以及裁剪空间与NDC坐标等概念。
  • 3D Gaussian Splatting部分原理介绍和CUDA代码解读(三)——栅格化
    • 介绍了栅格化中高斯投影后的渲染准备流程,包括高斯的复制、排序和tile范围确定。
    • 涉及rasterizer_impl.cu文件中CudaRasterizer::Rasterizer::forward函数。
  • 3D Gaussian Splatting部分原理介绍和CUDA代码解读(四)——渲染(栅格化的核心)
    • 介绍了3DGS渲染的原理和细节。
    • 涉及forward.cu文件中的renderCUDA函数,以及线程、线程块和线程网格的相关知识。
  • 3D Gaussian Splatting部分原理介绍和CUDA代码解读(五)——渲染部分的反向传播
    • 介绍了反向传播梯度计算方式,以及渲染时的反向传播解析梯度计算。
    • 涉及backward.cu文件中的renderCUDA函数。
  • 3D Gaussian Splatting部分原理介绍和CUDA代码解读(六)——高斯协方差投影与求逆的反向传播
    • 推导了损失函数对2D/3D协方差的梯度,以及通过2D协方差对3D均值的梯度公式。
    • 涉及backward.cu文件中的computeCov2DCUDA函数,以及标量函数在求导过程中,矩阵为中间变量时的常用公式及证明方法。
  • 3D Gaussian Splatting部分原理介绍和CUDA代码解读(七)——高斯均值投影与2D高斯颜色计算的反向传播
    • 推导了损失函数通过2D均值和SH函数对高斯3D均值的梯度,以及对SH系数的梯度。
    • 涉及backward.cu文件中的preprocessCUDAcomputeColorFromSH两个主要函数。
  • 3D Gaussian Splatting部分原理介绍和CUDA代码解读(八)——3D协方差计算的反向传播 & 其它知识
    • 推导了损失函数对高斯3D尺度向量和归一化旋转四元数的梯度,并介绍了python与CUDA代码的连接相关知识。
    • 涉及backward.cu文件中的computeCov3D函数,以及pytorch中自定义反向传播的方法。

相关文章:

  • grafana/loki 设置日志保留时间
  • C++的vector中emplace_back() 与 push_back() 的区别
  • 高防 CDN 的防护功能有哪些?从基础防护到智能防御的全面解析
  • redis高级进阶
  • 记录 Flink jdbc、mysql-cdc 连接 mysql8 碰到的适配问题
  • Leetcode刷题记录22——滑动窗口最大值
  • AI Agent Protocols:现状、挑战与未来展望
  • 耐高低温抗金属RFID标签种类和应用场景
  • 【全国产化】基于飞腾 FT2000+/64 核的服务器主板设计与实践
  • LVGL -窗口操作
  • 【MCP Node.js SDK 全栈进阶指南】高级篇(3):MCP 安全体系建设
  • Unity-Shader详解-其三
  • 前端防护利器:disable-devtool 使用指南 - 保护你的Web应用安全
  • 本地知识库工具FASTGPT的安装与搭建
  • Java中final关键字的作用?
  • 信息学奥赛一本通 1454:山峰和山谷
  • 优化PCB Via Stub系列(1):一次学会利用层叠设计降低Via Stub损耗
  • MySQL数据库全面详解:从基础到高级应用
  • ref 和$refs
  • 已知条件概率,反推设计值
  • 普京发表声明感谢协助俄军收复库尔斯克州的朝鲜军人
  • 人社部:就业政策储备充足,将会根据形势变化及时推出
  • 加拿大今日大选:房价、印度移民和特朗普,年轻人在焦虑什么?
  • 当隐身13年的北小京决定公开身份 ,专业戏剧评论依然稀缺
  • 理想汽车副总裁刘杰:不要被竞争牵着鼻子走,也不迷信护城河
  • 女儿被偷拍后,一个父亲的战斗