3DGS核函数的局限性
三维高斯点渲染(3D Gaussian Splatting, 3DGS)因其高效的基于点的三维渲染方法而备受关注,该方法通过连续的点群紧凑地表示场景。尽管3DGS取得了显著的成功,但它在具有复杂纹理和精细细节的高频区域仍然存在局限性,其中伪影(如模糊和漂浮的原语)会降低渲染质量。
为了解决这些问题,许多方法被开发出来,例如,通过动态位置调整和基于图的优化改进场景结构,使用2D圆盘或基于网格的结构增强几何表示,通过神经网络或视觉惯性里程计处理模糊训练图像,利用多尺度高斯点渲染和Mip滤波提高渲染一致性,以及通过Pixel-GS等方法优化密度控制。这些改进提升了细节捕捉和视觉质量,但在需要高频细节和锐利过渡的区域,伪影仍然存在。
3DGS的核函数设计的局限性:高斯核是伪影的主要原因之一,它限制了方法的有效性。如图1所示,高斯核生成的椭球具有软边界,增加了前景和背景原语之间分离的复杂性,从而导致模糊的漂浮原语和过度平滑。相邻点群之间的混合使得过渡模糊,限制了3DGS在高频细节捕捉方面的能力。
3D线性点渲染(3D Linear Splatting, 3DLS)[1]通过将高斯核替换为线性核来提升高频细节的捕捉能力。与高斯核相比,线性核的有限支持显著减少了相邻原语之间的干扰,从而实现了更锐利的过渡和更精确的重建。为了进一步增强3DLS的性能,我们还引入了两种互补技术:分布对齐(Distribution Alignment, DA)和自适应梯度缩放(Adaptive Gradient Scaling, AGS)。在从一种核分布过渡到另一种时,基准扩展的差异可能会影响分布覆盖。DA通过将线性核的扩展与基于高斯的方法对齐,确保与现有3DGS框架的兼容性并提升重建保真度。此外,核函数的改变会影响梯度计算,从而影响训练的稳定性。AGS通过在细节保留和计算效率之间取得平衡,稳定了训练过程,使3DLS能够有效捕捉精细细节、锐利过渡和高频内容。
在三个基准数据集上验证了3DLS的性能。实验表明,该方法在视觉保真度和精确度方面均达到当前最先进水平。此外,3DLS在帧率上相比3DGS提高了30%,并且内存开销极小,非常适合用于实时应用场景,如交互式渲染和虚拟现实。
主要贡献:
-
提出了3D线性点渲染(3DLS),一种新颖的方法,通过用线性核替代高斯核改善高频区域的渲染质量,为基于点渲染的核函数设计提供了新视角。
-
提出了分布对齐(DA),通过与高斯核对齐的扩展改善3DLS与现有框架的整合。
-
提出了自适应梯度缩放(AGS),增强了3DLS的训练稳定性,并在细节保留和计算效率之间实现平衡。
-
通过基准数据集进行了广泛实验,展示了定性和定量的改进,包括帧率提高30%。
具体方法
尽管三维高斯点渲染(3DGS)在表示连续平滑表面方面非常有效,但在捕捉高频区域(如精细细节和复杂纹理)时存在挑战。这些局限性源于高斯核的固有平滑特性,导致模糊和漂浮伪影,特别是在包含复杂细节的场景中。为了克服这些问题,我们提出了3D线性点渲染(3D Linear Splatting, 3DLS),通过用线性核替代高斯核,更有效地捕捉高频细节,并增强渲染清晰度。
以下是我们方法在现有3DGS框架中的集成过程(如图2所示):
-
将高斯核替换为线性核以提升细节捕捉能力。
-
引入分布对齐(Distribution Alignment, DA),以确保点的全面覆盖并与现有框架兼容。
-
应用自适应梯度缩放(Adaptive Gradient Scaling, AGS),以支持稳定的训练过程并提升收敛性能。
核函数的转换
基于3DGS的基础公式,我们引入了核函数替换过程。主要思想是用线性核替代高斯核,同时对现有的参数进行最小改动,以保留原框架的数学结构。这样可以无需更改累积和混合操作。首先,将高斯核用马氏距离(Mahalanobis distance)进行重新表达:
尽管高斯核的指数衰减有助于表面平滑混合,但它也抑制了高频信息,导致边缘模糊和细节丢失。为了解决这一限制,我们将指数衰减替换为线性衰减函数:
线性核通过对马氏距离 的线性衰减,集中每个点群的影响范围。受控的衰减方式更有效地保留高频细节,减少混合伪影,并生成比高斯核更清晰的重建效果。
在线性核的二维投影中,表达式为:
通过保留原3DGS框架的数学结构,线性核可以无缝集成到现有管线中。这种替代不需要更改累积和混合操作,但显著提高了高频区域的渲染效果,从而实现更锐利的过渡、更高的视觉保真度以及更快的渲染速度。
训练优化
虽然线性核在捕捉高频细节方面具有显著优势,但其独特的衰减行为在训练过程中引入了一些挑战。具体来说,与高斯核相比,线性核的覆盖范围较窄,这可能会限制对大型结构的表示能力。此外,线性核的梯度幅度分布较为均匀,可能导致不稳定的训练动态和较慢的收敛速度。为了应对这些问题,我们提出了两种优化策略:分布对齐(Distribution Alignment, DA)和自适应梯度缩放(Adaptive Gradient Scaling, AGS),以确保线性核能够稳定且高效地融入3DGS框架。
分布对齐
用线性核替换高斯核后,核的扩展范围变得较窄,这可能会降低对大型结构的表示能力,同时增加遗漏高频细节的风险。为了解决这一问题,我们引入了一个对齐因子 ,以调整马氏距离(Mahalanobis Distance):
对齐因子 通过扩展线性核的影响范围,使其覆盖与高斯核相当的面积。这种调整确保了线性核既能在高频区域渲染出锐利的边缘和复杂的纹理,同时在低频区域保留必要的覆盖范围,避免细节丢失。
图3(a)展示了不同 值对线性核扩展的影响。较小的 值导致核的影响范围更集中,而较大的 值(例如 )可以使线性核的覆盖范围与高斯核一致,从而实现对高频和低频区域的统一处理。
将 融入马氏距离计算中,可确保在保留线性核独特特性的同时,与高斯核实现平滑的过渡。这种对齐方法不仅增强了高频细节的捕捉能力,还避免了计算效率的显著下降,使线性核能够无缝融入现有的3DGS框架。
自适应梯度缩放
虽然线性核能够提供比高斯核更锐利的衰减特性,但其均匀的梯度幅度分布可能在训练过程中引发不稳定性。具体而言,这些均匀的梯度可能导致远离核中心的点对参数更新产生过大的影响,从而减缓收敛速度并降低训练效率。
为了解决这一问题,我们提出了**自适应梯度缩放(AGS)**策略。AGS通过根据马氏距离动态调整梯度幅度,降低远离核中心点的影响力,从而实现更稳定的参数更新。梯度缩放函数定义为:
其中, 表示点到核中心在二维空间中的马氏距离。
在加入梯度缩放后,对参数 的更新公式变为:
其中, 是缩放因子,用于降低远离核中心的点对优化的影响。
图3(b)对比了原始梯度与经过缩放的梯度曲线。原始线性核的梯度在其支持范围内保持恒定,而经过AGS调整后,梯度随着点到核中心距离的增加而逐渐衰减。这种调整使得远离中心的像素对优化过程的影响力减弱,从而提升训练动态的稳定性。
效果验证
实验证明,AGS显著改善了训练过程的稳定性和渲染质量。通过调整梯度幅度,AGS不仅有效避免了过大的梯度更新可能引起的训练震荡或过冲,还使模型能够更可靠地收敛。此外,AGS在保持高频细节的同时,解决了线性核在优化过程中的潜在挑战。
总而言之,自适应梯度缩放通过增强训练稳定性和优化效率,进一步提升了3DLS的性能,展现了细致的优化设计如何在不牺牲理论合理性或计算效率的前提下,显著改善模型表现。
实验效果
总结一下
3D线性点渲染(3DLS)通过解决传统3DGS方法中的核心局限性,提升了三维重建的保真度。通过采用线性核,3DLS能够以卓越的精确度捕捉高频细节,在多个数据集上实现了优越的性能。广泛的实验表明,3DLS在视觉保真度和细节重建方面超越了现有方法,尤其是在复杂纹理和精细细节的场景中。此外,3DLS在渲染速度上实现了显著提升,同时对内存的需求较低,非常适合对性能要求较高的应用。这些发现突出了核函数设计在基于点渲染中的重要性,为未来研究自适应和混合核以进一步提高保真度和效率铺平了道路。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。