← 返回 PaperDaily 前沿研究

北京理工大学与北大3D高斯泼溅:压缩100倍仍快12倍、峰值信噪比高1.3dB

论文基本信息 方法名称: 质心Voronoi高斯简化方法(CVT-GS) 原文标题: CVT-GS: Learning to Simplify 3D Gaussian Splatting with Centroidal Voronoi Tessellation 首次公开: 2026年9月8日 署名单位: 北京理工大学、北京大学 研究领域: 3D高斯泼溅场景简

论文基本信息

方法名称:质心Voronoi高斯简化方法(CVT-GS)

原文标题:CVT-GS: Learning to Simplify 3D Gaussian Splatting with Centroidal Voronoi Tessellation

首次公开:2026年9月8日

署名单位:北京理工大学、北京大学

研究领域:3D高斯泼溅场景简化

核心亮点:高斯数量压缩100倍时,质量对比局部成对合并方法高1.3 dB;全部设置汇总简化时间约快12倍

原论文:

https://arxiv.org/abs/2609.08730

龙哥导读

一个训练好的3D高斯场景,常常塞着几十万到数百万个小椭球。CVT-GS不再逐个判断“谁该删”,而是先把空间划成一批互相协调的区域,再让一个离线学好的轻量网络把每个区域合成一个新高斯。论文报告:高斯数量减少100倍时,质量对比局部成对合并方法高1.3 dB;约12倍速度优势来自论文全部场景与压缩设置的简化时间汇总。输出格式仍可交给标准三维高斯泼溅(3DGS)渲染器。

假设你已经花时间训练好一个三维场景:花园里的枝叶有层次,桌面反光自然,镜头换个角度也能实时渲染。然后你打开模型文件,发现里面躺着四百多万个高斯。放在工作站上没什么,换成手机、网页、头显或边缘设备,存储、传输、排序和渲染成本立刻一起冒出来。

最直觉的处理是删。问题也恰恰出在这里:删到只剩百分之一时,还可以谈“保留重要点”;删到千分之一时,很多局部根本不是少一点细节,而是直接没有代表者。CVT-GS真正改变的问题,不是“哪些高斯不重要”,而是“许多高斯怎样合成一个仍能工作的高斯”。

一、开场问题:为什么高斯多到必须认真做减法

三维高斯泼溅可以理解成一套“会投影的彩色半透明椭球”。每个高斯都有三维位置、三个方向上的尺度、旋转、透明度和外观系数。渲染时,它们投到屏幕上并按深度混合,最终组成照片般的画面。表示显式、渲染高效,是它走红的重要原因。

但高画质往往建立在数量上。论文指出,优质场景通常需要几十万到数百万个高斯。模型越大,磁盘和显存占用越高;跨网络传输更慢;每帧要投影、排序和混合的候选也更多。这里的“压缩”因此不只是把文件打包得更小,而是要减少真正参与场景表示的基本单元。

更麻烦的是,工程团队手里往往已有大量训练好的标准3DGS资产。重新训练、换一种专用表示、再为它改渲染器,成本很高。CVT-GS瞄准的是训练完成后的通用简化:输入标准高斯,输出仍是标准高斯,中间不为新场景微调网络。

二、旧方法为什么在强压缩下容易失守

先分清三件经常被混在一起的事。第一是渲染加速:例如图块局部深度高斯渲染方法(TileGS)不减少高斯数量,而是把同一批投影高斯按图块和局部深度重新组织,让像素更早结束无效遍历。它优化的是“这一帧怎样算得更快”,不是“场景最终留下多少高斯”。

第二是剪枝。基于不确定性的三维高斯剪枝方法(PUP-3DGS)会评估单个高斯的重要程度,在目标数量约束下优先保留贡献更大的部分。稳定掩码重要性剪枝方法(LinearMask-GS)也沿着重要性与稳定掩码思路做紧凑表示。剪枝适合清除冗余,但它的基本动作仍是保留或删除;压缩特别强时,低密度区域容易留下空洞。

第三才是多对一合并。局部成对高斯合并方法(NanoGS)与CVT-GS都属于训练后简化,也都试图让多个旧高斯变成更少的新高斯。区别在于,NanoGS更接近局部成对处理;CVT-GS先从整个场景出发分配固定数量的空间支持单元,再用共享网络一次预测每个单元的新代表。

这三条路线并不互斥。TileGS可以在一个已简化场景上继续优化栅格执行;属性量化和熵编码也可以接在CVT-GS输出之后。关键是别把结果混读:渲染器少走步骤、模型删掉点、多个点合成一个点,解决的是三层不同成本。

三、Figure 1:从四百万个高斯到一批空间“小区”

Figure 1把整条方法链压在一张图里。左侧是已经训练好的标准3DGS场景,彩色椭球密密麻麻。第二块把这些高斯中心交给几何感知的质心Voronoi划分。第三块在每个单元内先算一个参考高斯,再由高斯单元合并网络(MergeNet)预测残差。最右侧把所有新高斯重新放回场景,直接形成简化后的标准3DGS。

论文Figure 1:从左到右依次是原始高斯场景、质心Voronoi空间支持单元、参考高斯与MergeNet残差预测、简化后的标准高斯场景。训练阶段用局部可微渲染对齐单元前后的图像块;部署到新场景时网络参数保持不变。

先看第二块为什么重要。若随手给每个输出高斯找一群最近邻,各个小组会彼此独立:有的区域重复覆盖,有的区域无人负责,有的小组甚至横跨两个不相连表面。质心Voronoi划分(CVT)则让全部单元在同一个场景级目标下竞争空间,固定预算被整体协调。

可以把它想成给城市划服务片区。不是每个快递站自己抓一批最近住户,而是全城一起调整边界:人口密、需求高的地方划得更细;稀疏区域允许片区更大;每个站最后尽量处在自己片区的“重心”。这里的“需求”由高斯位置和透明度共同表达。

图中第三块也不是把单元里最显眼的旧高斯原样留下。系统先用确定性统计做一个稳定起点,再让网络只预测需要修正的部分。空间划分回答“谁和谁应该一起合”,MergeNet回答“合完以后那个新高斯应该长什么样”。

四、公式直觉:N、ρ和M到底控制了什么

论文先把目标写得很明确。N是原始高斯数量;ρ读作“rho”,是希望保留的比例;M是最终输出数量。三者关系是:M = ceil(ρ × N)。ceil表示向上取整,作用只是确保结果是整数,并避免乘积不是整值时少分配一个高斯。

例如N为1,000,000,ρ为0.01,M就是10,000,相当于数量减少100倍。若ρ降到0.001,M只剩1,000,相当于减少1000倍。用户指定的不是一个模糊“尽量压小”,而是一个严格预算:最后就只能由M个新高斯覆盖原来N个高斯承担的外观。

这里容易出现一个口径误区:数量减少100倍对应ρ=0.01,而ρ=0.001对应数量减少1000倍。标题里的“压缩100倍”采用论文摘要重点报告的设置;方法本身还测试了更极端比例,但不能把某个比例上的优势自动套到所有数据集和所有设置。

CVT的能量直觉也不复杂:把每个旧高斯到所属单元中心的平方距离乘上透明度,再对全场景求和。距离远,说明一个新高斯要“张得很开”才能接住这些成员;透明度高,说明它对画面贡献更大,不应轻易被粗糙代表。优化目标就是让总负担尽量小。

算法交替做两步:先把每个高斯分给最近的单元中心,再把中心移动到本单元成员的透明度加权质心。论文部署时运行五轮Lloyd迭代。它不是用CVT直接生成最终外观,而是先把“一个输出高斯该负责哪片空间”分得更合理。

五、单元特征:先造一个可信的参考高斯

一个CVT单元里的成员数量不固定,形状也千差万别。直接把所有绝对坐标和属性塞给网络,会让同一个网络同时面对毫米级物体、房间级场景和不同朝向,学习难度很大。论文先为每个单元构造参考高斯,相当于建立本地坐标系。

参考位置是成员位置的透明度加权平均;参考外观也是加权平均。参考协方差同时考虑每个旧高斯自身的体积,以及它与单元中心之间的空间分布,再从特征值和特征向量得到尺度与旋转。这样既看“每个椭球本来多大”,也看“整群椭球铺成什么形状”。

参考透明度使用1 − ∏(1 − αᵢ)。白话解释:先算所有成员都没有遮住光线的联合概率,再用1减掉它。多个半透明层叠在一起时,这比简单把透明度相加更合理,也不会轻易超过有效范围。

随后,每个成员都改写成“相对参考高斯”的描述:位置先转到参考旋转坐标系,再除以参考尺度;大小使用对数尺度差;旋转写成相对四元数;外观写成相对残差;同时保留自身透明度和归一化权重。

这一步的价值类似先把不同尺寸、不同朝向的零件摆正,再交给同一把量具。网络看到的不再是“这个场景在世界坐标哪里”,而是“单元内部各成员相对共同参考怎样分布”。因此同一个MergeNet才有机会跨场景、跨压缩比复用。

六、MergeNet:不从零捏高斯,只做残差更新

MergeNet接收一个成员集合。它先用共享的小型多层感知机逐个编码成员,再用三种池化把可变长度集合压成固定长度代码:平均池化抓整体统计,最大池化保留最突出的响应,透明度加权池化更关注视觉贡献大的成员。

因为池化与成员排列无关,所以单元里高斯的输入顺序不会改变结果。这一点很重要:空间集合没有天然“第一、第二、第三”的顺序,网络若依赖文件排列,换一次导出顺序就可能产生不同输出。

解码器不直接从空白生成全部参数,而是预测参考高斯的残差。位置在本地坐标系里更新;尺度在对数域更新;透明度在logit域更新;旋转用四元数增量复合;外观系数做加法修正。这样更容易保证输出参数有效,也让大小差异很大的单元使用相近的学习尺度。

训练监督来自局部可微渲染。对一个单元,系统用相同渲染器和相同裁剪窗口,分别渲染原始成员集合与预测出的单个高斯。损失包含像素绝对误差、结构相似性差异,以及横纵方向的图像梯度一致性。前两项看颜色和结构,梯度项专门提醒网络别把边缘和纹理抹平。

这里必须分清训练和部署。MergeNet使用前向采集场景、合成物体和室内扫描三类数据构建的场景单元,离线训练3万步;测试四个基准时使用同一个检查点。新场景只做质心Voronoi划分和一次网络前向,不更新网络参数,也不做场景专属恢复训练。

所谓“无需优化”指部署新场景时不再训练或微调,不等于整个方法从未训练。它把昂贵的学习成本提前做一次,再把每个新场景的简化变成几何分组加批量前向预测。

七、Figure 2:garden越压越狠,差距从哪里冒出来

Figure 2选的是论文使用的无界真实场景数据集里的garden。原始场景有4,207,352个高斯。ρ分别取0.1、0.01和0.001时,输出约为420,736、42,074和4,208个。也就是说,横向列从较温和简化一路走向极端简化,每向右一步,单个输出高斯都要承担更多旧高斯的信息。

论文Figure 2:garden场景在三档简化比例下的对比。逐列向强压缩观察,可重点看花瓶轮廓、植物放射状细叶、桌沿和背景枝叶;传统剪枝或局部缩减方法在强压缩下更易出现黑洞、散点和结构缺失。

先看左侧较弱压缩。大多数方法还能保住花盆、桌面和背景的大体布局,因为四十多万个高斯仍有足够覆盖能力。此时差别主要藏在细叶是否连贯、桌边是否稳定、背景纹理有没有提前变糊,肉眼不会像极端压缩那样戏剧化。

到中间的100倍数量缩减,剪枝和选择路线开始暴露“覆盖预算”问题:植物细枝更容易断,桌面与背景出现散点或暗斑。NanoGS保住了较多整体结构,但植物、桌面和背景容易趋向模糊,说明局部合并虽然比纯删除更耐压,仍可能把复杂纹理平均掉。

最右侧只剩约4208个高斯时,任何方法都不可能复制原始四百多万个高斯的全部细节。真正要比较的是谁先崩、崩在哪里。CVT-GS的花瓶外轮廓、放射状叶片、桌沿和后景植被仍更连贯;其他方法更常见黑洞、缺块和大面积涂抹。

这张图支持的不是“压得再狠都毫无损失”,而是当每个输出高斯必须代表越来越大一群成员时,全局协调支持区域,比独立删点或局部配对更晚失去场景覆盖。

八、Figure 4:chair告诉我们,合并最怕丢掉什么

Figure 4换成论文使用的合成物体数据集里的chair。与花园不同,椅子是边界清晰、曲面规则、背景简单的合成物体。这样的场景更容易看出轮廓漂移、细杆断裂、孔洞闭合和高频纹理消失,也能避免复杂背景把注意力带走。

论文Figure 4:chair合成场景的逐级简化对比。观察各列从弱到强压缩的变化,可重点检查椅背镂空、扶手与椅腿细杆、座面边缘和纹理连续性;CVT-GS在强压缩下更能维持完整轮廓。

弱压缩时,椅子的主体都在,区别集中在细长结构。扶手、椅腿和椅背开口只占少量像素,却对三维形状辨识非常关键。如果重要性评分偏向大面积颜色贡献,这些细杆很容易在“平均看起来还不错”的同时被提前牺牲。

压缩继续增强后,剪枝常见的问题是断:一根连续椅腿变成几段,镂空边缘缺口扩大。过度平均的合并则容易糊:开口被填平,扶手与靠背粘在一起,纹理从有方向的结构变成均匀色块。这两种失败分别对应覆盖不足和代表能力不足。

CVT先约束每个支持单元的空间跨度,参考协方差再描述单元整体形状,MergeNet用渲染损失修正外观。三层设计共同作用,因而在椅背、细杆和轮廓处更稳。它保住的不是每一个旧点,而是让新高斯继续承担“这块形状为何可辨认”的关键结构。

九、定量指标:12倍与1.3 dB应该怎样读

实验覆盖四类标准数据:合成物体、无界真实场景、大型真实采集和室内场景。评价同时看峰值信噪比、结构相似性、感知距离和端到端简化时间。

峰值信噪比通常越高越好,偏向像素误差;结构相似性越高越好,关注亮度、对比度和结构;感知距离越低越好,更接近人眼对特征差异的判断。三项一起看,是为了避免“像素均值不错,但纹理已经糊成一片”的情况。

在ρ=0.01,也就是高斯数量减少100倍的设置,CVT-GS四个基准平均峰值信噪比(PSNR)为21.32 dB。相比最相关的训练后、无需新场景训练的NanoGS,平均高1.30 dB;论文摘要同时报告简化速度约快12倍。全文把所有场景和压缩比汇总后,给出的速度倍率是12.3倍。

把倍率展开更容易理解。CVT-GS在所有场景与比例汇总的端到端时间上,比NanoGS快12.3倍,比最优传输聚合方法快3.1倍;补充比较显示,相比轻量高斯剪枝方法和不确定性剪枝方法分别快7.2倍和7.0倍。原因不是省掉了空间划分,而是划分完成后,全部输出高斯可由共享网络批量一次前向产生。

但不要把摘要结论扩大。1.30 dB对应100倍数量缩减下的平均对比,12倍来自与特定先进基线的汇总速度比较;不同数据集、不同ρ、不同基线的差距并不相同。这篇论文最稳妥的结论是质量—速度权衡整体领先,不是每一格实验都固定“快12倍、高1.3 dB”。

十、消融与可信度:真正扛住强压缩的是哪一环

消融实验很有说服力,因为它没有只在一个漂亮场景上挑图,而是对四个基准取平均,并在三档ρ下分别拆部件。完整模型在每档都最好,且压缩越强,关键部件被拿掉后的损失越明显。

先把CVT换成局部k近邻分组。平均PSNR在ρ=0.1、0.01、0.001时分别下降0.88、1.65、2.53 dB。最极端比例下,感知距离从0.481恶化到0.677。说明输出预算宽松时,随手找邻居还能凑合;一个输出要吞下大量输入时,支持区域是否全局协调越来越重要。

再拿掉MergeNet,只使用确定性参考统计。平均PSNR分别下降1.95、3.01、4.23 dB,是多数设置里最大的退化。参考均值与协方差能给出稳定几何起点,却无法靠几条统计量还原单元内部复杂的颜色、边缘和形状残差。

透明度过滤的影响较小但持续存在。论文在CVT前滤掉透明度低于0.1的高斯,但最终M仍按原始N计算。去掉过滤后,平均PSNR下降约0.76至0.86 dB。低透明度高斯并非永远没用,但让它们参与空间分配,会占用有限支持单元的注意力。

实验协议也值得肯定。各方法使用相同训练好的3DGS输入、相同目标数量、渲染器、评价器和硬件;简化后立即评价,不允许某个方法额外微调恢复画质。这让比较更接近“拿到旧资产后,谁能更快交付一个可用小模型”。

十一、工程落地:它适合接在哪条生产线上

第一类场景是已有大量标准3DGS资产,需要按设备能力生成多档版本。云端保留原始高质量模型,边缘设备拿ρ=0.1或0.01版本;弱网预览再使用更小版本。因为输出仍是标准高斯,不必为每一档资产维护一套专用渲染器。

第二类场景是交付速度比极限恢复更重要。传统方法若要针对每个场景继续优化,批量处理成本会随着资产数量增长。CVT-GS把网络训练前置,部署只做低透明度过滤、五轮空间松弛、单元特征构造和一次MergeNet前向,更适合自动化资产流水线。

第三类场景是组合优化。CVT-GS先减少高斯数量,之后仍可量化属性、做熵编码,或换用更快的栅格执行方式。近期一项事件驱动动态高斯方法也在减少高斯和结构成本,但它解决的是低帧率运动重建;CVT-GS针对训练好的静态场景做后处理简化。共同点是3D高斯落地正在从“能不能渲染”转向“结构预算怎样付得起”。

实际接入时,团队仍应按自己的画质目标选ρ,而不是盲目追求最小数量。物体轮廓、细线、文字、反射、高频植被和薄结构对简化非常敏感;最好建立代表性场景集,同时看平均指标、局部放大图、渲染帧率、显存和加载时延。

真正的工程价值不是“把模型压到最小”,而是用可预测的时间,生成仍能被现有系统消费的多个成本档位。标准格式兼容,让这篇工作比另起炉灶的紧凑表示更容易进入已有工具链。

十二、局限:快而通用,不代表没有代价

第一,方法依赖离线训练好的MergeNet。测试时不更新参数是优势,但跨到训练分布差异很大的场景,能否继续稳定合并,需要更多验证。论文训练单元来自前向采集、合成物体和室内扫描数据,测试覆盖四个常见基准,这个范围很扎实,却还不能代表所有工业扫描、极端反光、透明材质或超大户外资产。

第二,当前空间划分主要依据三维中心、透明度和欧氏距离。两个几何位置很近、但属于不同表面或不同语义部件的高斯,理论上仍可能落入同一支持单元。参考协方差和渲染监督可以缓解,却不能保证复杂薄片、交叉结构和遮挡关系永远被完美分开。

第三,极端简化必然丢信息。Figure 2和Figure 4说明CVT-GS比基线更晚出现孔洞和模糊,不是说明4208个高斯能无损替代四百多万个高斯。ρ越小,单个代表承担的表面、颜色和方向越复杂,任何单高斯表达都会碰到容量上限。

第四,实验在单张英伟达4090显卡、PyTorch 2.8和英伟达12.8版并行计算环境上完成。端到端时间包括加载场景到写出结果,这比只报网络前向更实在;但换硬件、实现、场景规模和磁盘条件,绝对时间与倍率都可能变化。

它最适合被理解为高质量、快速、标准格式兼容的后处理器,而不是所有3DGS压缩问题的终点。论文也把更强MergeNet和动态4D表示列为后续方向。

十三、龙哥点评:优秀之处不在“又一个压缩网络”

龙哥觉得,这篇工作最值得学的不是某个网络层,而是问题重写。很多压缩方法从单个高斯出发问“重要不重要”;CVT-GS先承认极端压缩下删除不够用,再把任务改成固定预算下的空间责任分配与多对一合并。问题一旦改对,CVT、参考统计和残差网络才自然串起来。

第二个亮点是尊重现有生态。研究里很容易做出一种更紧凑、却必须配专用解码器的新表示。CVT-GS坚持输出标准3DGS,意味着资产管理、查看器、栅格器和后续压缩步骤都能继续使用。对于真实团队,少改一层基础设施,往往比多赢零点几分更值钱。

第三个亮点是把部署账算完整。MergeNet不是为每个场景重新学习,而是共享一次;简化时间从读取输入算到写出输出;比较也禁止方法专属恢复。真正可落地的效率,不是某个算子跑得快,而是从旧资产到可交付新资产的整条链更短。

当然,论文下一步最该补的是跨分布与结构敏感性。若能让支持划分感知表面方向、可见性或语义边界,再给MergeNet显式的失败置信度,生产系统就能知道哪些单元可以大胆合并,哪些区域需要保留更多预算。

十四、龙迷三问

第一问:既然输出还是标准高斯,能不能直接提高渲染帧率?
高斯数量减少通常会降低投影、排序与混合负担,也会减少存储和传输,但实际帧率还取决于屏幕覆盖、分辨率、渲染器实现与硬件。论文核心评价是简化画质和简化时间,不能把数量倍率直接等同于渲染帧率倍率。

第二问:为什么不让MergeNet顺便决定每个区域分几个高斯?
当前方法先固定M,再由CVT给每个单元分配一个输出,预算清楚、格式简单,也方便公平比较。若让单元动态分配数量,可能进一步照顾复杂区域,但会引入离散预算优化、负载不均和更复杂的训练目标。

第三问:普通开发者最该借鉴哪一点?
不是照搬CVT,而是先区分你的瓶颈在数据量、基本单元数量,还是执行顺序。文件大可以量化编码;高斯太多可以剪枝或合并;数量不变但渲染慢,可以优化栅格器。先对准成本层,方案才不会看似先进、实际治错病。

十五、总结:把“删谁”升级成“谁来代表这一片”

CVT-GS从一个很现实的矛盾出发:标准3DGS好用,却常靠海量高斯堆出质量;已有资产需要快速瘦身,又不想重新训练场景或替换渲染生态。它把原始N个高斯按目标比例ρ压到M = ceil(ρ × N)个,再用场景级CVT分配空间责任。

每个单元先由加权统计构造参考高斯,成员再转换为参考相对特征;MergeNet用三种池化汇总集合,预测位置、尺度、旋转、透明度和外观的残差;离线训练依靠局部可微渲染监督,部署新场景时不再更新网络。

四个基准的结果说明,这套“先合理分区、再学习合并”的路线在强压缩下更能保住覆盖和结构。100倍数量缩减时,论文报告相对先进后处理基线约快12倍、平均PSNR高1.3 dB;消融进一步表明,CVT与MergeNet缺一不可。

它给3D高斯压缩带来的核心启发是:预算极小时,不能只从个体重要性做减法,还要从全局空间结构重新安排代表权。这也是从论文指标走向真实部署时,值得团队带走的那一步。

本文基于龙哥读论文PaperDaily数据库及PaperMiner的MCP进行汇总整理。本文为论文解读与个人学习笔记,不构成任何论文审核意见,及对产品能力、安全性或商业可用性的保证。

end

转发文章 微博 X LinkedIn Facebook

读者留言

可直接以游客身份留言,也可注册读者账号。所有留言均需管理员审核后公开。

0 条已公开

还没有公开留言,欢迎留下你的看法。

游客可以直接留言;注册后可使用固定昵称和账号身份。 登录 免费注册
同一访问者每天最多提交 5 条。
龙哥读论文 · PaperDaily

本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。

LONGGE AI COMMUNITY

把每天读到的论文,变成长期积累

加入「龙哥读论文」知识星球,持续获取 AI 论文、资讯、开源项目、招聘与研究思路。

加入龙哥读论文微信群:添加微信 kangjinlonghelper,备注“研究方向 + 地点 + 学校/公司 + 昵称”。

龙哥读论文知识星球二维码 微信扫码加入知识星球