3DGS与NeRF的区别及3DGS优化全流程详解

发布时间:2026/9/24 17:00:00

3DGS与NeRF的区别及3DGS优化全流程详解 1. 3DGS与NeRF的区别NeRFNeural Radiance Fields和3DGS3D Gaussian Splatting是当前三维场景重建与渲染领域的两大主流技术它们在表示方式、渲染流程、性能和应用场景上存在显著差异。1.1 表示方式NeRF采用隐式神经表示。场景被建模为一个连续函数输入空间位置和观察方向输出该点的颜色和体密度。# NeRF隐式函数表示 (F_{\theta}(\mathbf{x}, \mathbf{d}) \rightarrow (\mathbf{c}, \sigma))3DGS采用显式3D高斯表示。场景由一组离散的、可学习的3D高斯椭球构成。每个高斯椭球由以下参数定义位置均值协方差矩阵控制椭球的形状和方向不透明度颜色通过球谐函数SH系数表示1.2 渲染流程NeRF基于体渲染Volume Rendering。沿相机光线采样多个点通过神经网络查询每个点的颜色和密度然后通过数值积分如分层采样合成最终像素颜色。体渲染公式其中为透射率。3DGS基于可微光栅化Differentiable Rasterization。将每个3D高斯椭球投影到2D图像平面形成2D高斯核然后通过alpha-blending按深度排序合成像素颜色。投影后的2D协方差矩阵其中为视图变换矩阵为投影雅可比矩阵。像素颜色合成公式alpha-blending其中为按深度排序后覆盖该像素的高斯集合。1.3 性能与特性对比特性NeRF3DGS表示方式隐式神经网络显式3D高斯集合渲染速度慢需多次网络前向快可微光栅化实时训练速度慢数小时至数天快数分钟至数小时显存占用较低网络参数较高存储大量高斯参数编辑性困难隐式表示容易显式可增删改高斯压缩性一般网络权重较好可量化、剪枝质量高连续细节好高近年已接近NeRF2. 3DGS优化全流程3DGS的优化是一个从稀疏点云初始化为起点通过可微渲染、损失计算、参数更新、自适应密度控制等步骤迭代优化的过程。2.1 初始化通常从运动恢复结构SfM得到的稀疏点云开始。每个点云点被初始化为一个各向同性的3D高斯位置点云坐标协方差初始为球体不透明度颜色SH系数初始为视图无关的漫反射颜色2.2 可微渲染与损失函数每一轮迭代对训练视图进行可微渲染得到预测图像并与真实图像比较计算损失。常用损失函数为L1损失与SSIM损失的加权和其中。2.3 参数优化使用梯度下降法如Adam更新所有高斯的参数位置协方差矩阵实际优化缩放和旋转四元数不透明度球谐系数协方差矩阵由缩放和旋转参数重建其中为由四元数转换的旋转矩阵。2.4 自适应密度控制这是3DGS优化的核心机制用于动态增加克隆/分裂或删除修剪高斯以更好地覆盖场景几何。克隆对于位置梯度大的高斯位于重建不足区域将其复制一份并沿位置梯度方向轻微扰动。分裂对于尺度过大协方差矩阵特征值过大的高斯将其分裂为两个更小的高斯以增加局部细节。修剪定期移除不透明度低于阈值如0.005或体积过小的高斯以控制总数。2.5 优化流程伪代码# 初始化 gaussians initialize_from_sfm(point_cloud) optimizer Adam(gaussians.parameters()) for iteration in range(max_iterations): # 1. 可微渲染 rendered_image differentiable_rasterization(gaussians, camera_pose) # 2. 计算损失 loss (1 - lambda) * L1_loss(rendered_image, gt_image) lambda * (1 - SSIM(rendered_image, gt_image)) # 3. 反向传播 loss.backward() optimizer.step() optimizer.zero_grad() # 4. 自适应密度控制每N次迭代执行 if iteration % density_control_interval 0: # 克隆梯度大的高斯 clone_gaussians_with_large_gradients(gaussians) # 分裂尺度过大的高斯 split_large_gaussians(gaussians) # 修剪不透明度过低的高斯 prune_opaque_gaussians(gaussians, threshold0.005) # 5. 重置不透明度可选避免饱和 reset_opacity(gaussians)2.6 收敛与输出优化完成后得到一组优化的3D高斯集合可用于实时渲染在新视角下通过光栅化快速生成图像。场景编辑直接修改、添加或删除特定高斯。压缩与传输对高斯参数
延伸阅读

更多相关文章

2026/9/22 23:18:07

Cocos Creator事件优先级机制详解:从捕获冒泡到Canvas仲裁

1. 项目概述:为什么事件优先级是Cocos交互的“交通规则”?在Cocos Creator里做UI或者游戏交互,你肯定遇到过这种头疼事:一个按钮明明在最上层,点击却没反应;或者滑动一个列表,结果底下的某个元素…

2026/9/22 9:08:32

小批量多品种难管?这套方案让车间告别“黑箱”

在苏州及周边,机械加工、精密零部件、工装夹具、自动化设备制造这些行业,有一个共同特点:订单来得多,但每单数量少,定制要求高,工序又长又杂。老板们常常面临一个局面——订单跑得飞快,可车间里…

2026/9/20 21:45:44

数据库范式详解:从1NF到3NF的实战指南

1. 数据库范式的前世今生第一次接触数据库范式是在大学二年级的数据库原理课上。记得当时教授在黑板上画了几个相互嵌套的圆圈,说这是"数据规范化的魔法阵"。十年过去了,这个"魔法阵"成了我日常数据库设计的必备工具。今天&#xff…

2026/9/24 16:56:36

WebBatchRequest 安装、使用教程

小记: ****进行子域名信息收集 发现了1k域名 这么多我可不会一个一个去请求吧 这太浪费时间了 所以就去找了这个工具**** 介绍: WebBatchRequest(Web批量请求器)是一款**轻量级的批量 HTTP 请求工具**,主要用于安全…

2026/9/24 16:56:36

go-errors/errors:为 Go 错误注入完整调用栈追踪的实战指南

人工智能AI AgentAgent 沙箱云原生容器运行时零信任 【免费下载链接】substrate Agent Substrate: the core system 项目地址: https://gitcode.com/GitHub_Trending/substrate7/substrate 点击查看 免费下载 导读 在 Go 服务中,error 是传递失败信息的…

2026/9/23 12:07:00

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/24 0:00:21

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:21

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:21

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码