这项由悉尼科技大学、百度公司以及阿德莱德大学联合完成的研究,于2026年6月以预印本形式发布,论文编号为arXiv:2606.30017,题为《Monte Carlo Energy Aggregation for Mobile 3D Gaussian Splatting》。感兴趣的读者可以通过该编号在arXiv平台查阅完整论文。
如果你曾经用手机打开过一个"沉浸式3D场景",却发现画面卡顿、发热严重,甚至根本打不开——那么这篇研究正是在解决这个让无数开发者头疼的问题。研究团队提出了一套名为Flux-GS的新方法,目标只有一个:让高质量的3D场景渲染真正跑在手机上,而且要快、要清晰、还要省空间。
要理解这件事为什么难,先得聊聊它背后的技术。
一、3D高斯泼洒:一种用"彩色气泡"描绘世界的技术
描绘一个3D场景,有点像用无数个半透明的彩色气泡来堆砌出一幅图画。每个气泡都有自己的位置、大小、朝向和颜色,当你从某个角度观察这堆气泡时,它们叠加在一起,就形成了你看到的画面。这就是"3D高斯泼洒"(3D Gaussian Splatting,简称3DGS)的核心思路——用数百万个椭球形的"高斯气泡"来表示一个场景,每个气泡携带颜色信息,可以实时渲染出逼真的画面。
这项技术在台式电脑上表现出色,每秒能渲染数十帧,画质细腻。然而一旦搬到手机上,麻烦就来了。研究团队在实验中发现了两个关键瓶颈,正是这两个问题让手机望而却步。
第一个瓶颈是"三阶球谐函数"。为了让每个气泡的颜色随观察角度变化而变化——比如金属表面在不同角度下的高光反射——3DGS使用了一种叫做"球谐函数"(Spherical Harmonics,SH)的数学工具来描述颜色。三阶球谐函数能描述非常复杂的颜色变化,但代价极高:每个气泡需要48个浮点数来存储颜色信息(16个系数乘以3个颜色通道)。当场景里有数百万个气泡时,光是颜色数据就能占掉整个模型存储量的81%,手机根本负担不起。
第二个瓶颈是"气泡数量太多"。现有的方法在训练过程中会不断"分裂"和"克隆"气泡来提高画质,但这个过程往往失控,最终产生远超必要数量的气泡。气泡越多,渲染越慢,存储越大,训练时间也越长。更糟糕的是,这种基于单视角的气泡生成策略容易"偏科"——它只顾着在某个特定视角下表现好看,换个角度可能就露馅了。
Flux-GS就是为了同时解决这两个问题而生的。整个研究可以用一个统一的比喻来理解:把3D场景渲染比作一场"艺术展览的布置工作"。布展时既要保证每件展品(气泡)的颜色效果足够好看,又要控制展品数量不要太多占地方,还要确保从展厅任何角度看过去都协调美观。Flux-GS做的,就是同时优化这三件事。
二、蒙特卡洛光谱能量聚合器:用"抽样投票"压缩颜色信息
第一个核心创新是蒙特卡洛光谱能量聚合器(Monte Carlo Specular Energy Aggregator,简称MC-SEA)。要理解它的工作原理,先得搞清楚一个关键问题:为什么不能直接把三阶球谐函数"截断"成一阶,来减少存储?
直接截断的问题在于,高阶球谐函数负责描述那些"尖锐"的高光效果——比如金属、玻璃、水面上的耀眼反光。这些视觉效果在角度上极为集中,就像舞台上的一束追光灯,能量都聚焦在一个方向。如果直接丢掉高阶信息,这束追光就消失了,画面会变得平淡无光。
研究团队的洞察是:虽然不能保留高阶球谐函数本身,但可以把它携带的"精华信息"提炼出来,用一个更紧凑的形式保存。这个精华信息有两个:高光有多强(能量大小),以及高光朝哪个方向(能量方向)。
具体做法分两步。第一步叫"球面均匀采样"——在一个球面上均匀随机撒下2048个点,每个点代表一个观察方向。第二步叫"蒙特卡洛聚合"——对每个气泡,用三阶球谐函数计算出这2048个方向上的颜色值,再减去用一阶球谐函数计算的颜色值,得到"残差"(也就是高阶信息额外贡献的那部分颜色)。然后把这些残差的正值部分汇总,算出两个统计量:一个是残差的平均强度(代表高光有多亮),另一个是残差强度乘以方向的平均值(代表高光朝哪里)。这两个数加在一起,就是对整个高阶颜色信息的一个极为紧凑的"摘要"。
之所以称之为"蒙特卡洛",是因为这种用随机抽样来估算积分的方法正是蒙特卡洛数值积分的核心思路——就像用随机投针来估算圆周率一样,通过足够多的随机样本,可以以相当高的精度近似一个复杂的积分。
有了这两个摘要数据之后,研究团队训练了一个小型神经网络,把"高光强度、高光方向、气泡的空间位置"作为输入,直接输出一阶球谐函数的系数。这样,三阶球谐函数的关键信息就被"翻译"成了一阶球谐函数能表达的形式,而且这个翻译过程只需要在训练结束后执行一次,推理时完全不需要再运行这个神经网络。
这个设计的精妙之处在于:它完全避免了以前方法(比如Mobile-GS)需要的"师生蒸馏"过程——先训练一个大模型,再把知识压缩到小模型里,这个过程极耗时间和资源。Flux-GS直接用数学手段提炼颜色信息,不需要大模型当老师,训练效率大幅提升。
三、属性条件化球谐增强模块:用气泡自身的特征来"补妆"
即便有了上述的信息提炼过程,从三阶压缩到一阶仍然不可避免地会损失一些颜色细节,毕竟两者的信息容量差了很多。为了弥补这部分损失,研究团队引入了第二个设计:属性条件化球谐增强模块(Attribute-Conditioned SH Enhancement)。
这个模块的思路很直觉:每个气泡损失的颜色细节,与它自身的几何特征高度相关。一个很扁平的气泡(代表一个平面)和一个很圆的气泡(代表一个蓬松表面),它们在颜色细节上的损失模式是不同的。既然如此,就可以根据气泡自己的属性——包括空间位置、大小、朝向、透明度,以及初步的颜色系数——来预测它需要多少"补妆",也就是颜色系数的修正量。
这个模块是一个四层的小型神经网络,激活函数使用ReLU,隐藏层神经元数量分别是128、64、32和12个,相当轻量。它的最后一层权重被初始化为全零,这个设计确保了训练刚开始时,模块输出的修正量为零,整个系统退化为标准的3DGS,随着训练进行再逐渐学会如何修正。
最重要的一点:因为这个神经网络只依赖气泡自身的固有属性,与观察角度无关,所以它预测出来的修正量是一个固定值,可以在推理开始前就算好,永久"烘焙"到气泡的颜色参数里。这意味着在实际渲染时,手机根本不需要运行这个神经网络,它的计算开销是零。
这与Mobile-GS的做法形成了鲜明对比。Mobile-GS使用了一个依赖观察方向的神经网络来增强颜色细节,但这个网络在每帧渲染时都必须实时运行,大大拖慢了渲染速度。Flux-GS通过把增强过程前移到推理前阶段,彻底绕开了这个开销。
四、多视角Alpha加权密化与剪枝策略:从全局视角管理气泡数量
解决了颜色表示的问题,研究团队转向了第二个瓶颈:如何控制气泡数量。
传统的3DGS在训练过程中会监测每个气泡在渲染中的"位置梯度"——如果一个气泡在当前视角下位置变化很大,说明这里拟合得不好,需要分裂成更多气泡来覆盖细节。但这个判断只基于当前这一张训练图片的视角,相当于展览布置员每次只站在一个固定位置评估效果。结果就是:从这个角度看起来需要更多气泡的地方,换个角度看可能根本不需要;而某些从其他角度很重要的区域,因为没被当前视角看到,就被忽略了。
Flux-GS提出的多视角Alpha加权密化与剪枝策略,从根本上改变了这个逻辑。
首先是"分层相机采样"。训练数据集包含很多张从不同角度拍摄的图片,但这些图片的分布可能并不均匀,有些角度拍了很多张,有些角度只有一两张。研究团队设计了一个方法,先估算出场景的中心点,然后把所有相机位置按照方位角和俯仰角划分成若干格子,从每个非空格子里随机选一张代表性图片。这样选出的6张图片能最大程度覆盖不同的观察角度,避免了评估时"偏听偏信"某个方向。
有了这组多视角图片,系统会渲染每张图片并计算逐像素的重建误差——也就是渲染结果和真实照片之间的差距。误差高的像素区域说明这里渲染得不好,是"展览效果差"的地方;误差低的区域说明渲染已经够好了,是"展览效果好"的地方。
接下来是关键步骤:把这些2D图像上的误差信息,"反投影"回3D空间,归因到具体的气泡上。每个气泡在渲染某个像素时,都会贡献一个Alpha值(透明度相关的权重,代表这个气泡对该像素颜色的贡献程度)。对于误差高的像素,气泡的Alpha贡献越大,说明这个气泡越应该为这里的渲染失败负责,它就越需要被分裂成更多气泡来改善效果。对于误差低的像素,气泡的Alpha贡献越大,说明这个气泡在一个已经渲染很好的区域贡献很大,它就更可能是多余的冗余气泡,可以考虑删除。
于是,研究团队对每个气泡分别计算了两个分数:一个是"重要性分数"(跨多视角、对高误差像素的Alpha贡献之和),另一个是"剪枝分数"(跨多视角、误差乘以Alpha对低误差像素的贡献之和)。分裂与克隆操作只针对重要性分数超过一定分位数阈值的气泡,而删除操作则针对透明度低于最小值且剪枝分数超过阈值的气泡。
这套机制的效果立竿见影。在消融实验中,如果去掉多视角密化策略,改回原版的单视角梯度方法,气泡数量会从约36万个飙升至137万个,存储空间从3.5MB暴增到16MB,渲染帧率从139帧/秒骤降到24帧/秒。多视角剪枝如果去掉,气泡数量也会增加约63%,渲染速度明显下降。
五、训练流程:三步走的"布展计划"
整个Flux-GS的训练分成清晰的三个阶段。前3000次迭代,系统使用完整的三阶球谐函数训练,目的是先让每个气泡的颜色表示足够丰富和准确,为后续的信息压缩打好基础。3000次迭代之后,蒙特卡洛光谱能量聚合器登场,一次性把三阶球谐函数的信息压缩转换为一阶表示,并用神经网络完成从"高光摘要+空间位置"到"一阶球谐系数"的映射。从这一刻起,系统就再也不回头使用三阶球谐函数了,后续所有迭代都在一阶球谐的框架内进行。同时,属性条件化球谐增强模块也在这个阶段启动,继续精细调整颜色表示。整个训练共进行30000次迭代,不需要任何预训练或蒸馏过程,总训练时间在一台RTX 4090显卡上约为11分钟,远比Mobile-GS的100多分钟快得多。
六、跨平台部署:让3D场景在浏览器里也能流畅运行
研究团队不仅解决了算法层面的问题,还专门开发了一套基于WebGL的渲染框架,让Flux-GS生成的3D场景能够直接在网页浏览器里实时运行,无需任何额外软件安装,在手机、电脑、平板上都能跑。
3D高斯渲染有个老大难问题:为了保证颜色叠加的正确性,所有气泡必须按照从近到远的顺序渲染,每帧都要重新排序。传统方案把排序放在GPU里做,会受到显示屏60帧或120帧刷新率的限制,渲染速度被硬生生卡住。Flux-GS的解决方案是把深度排序任务搬到Web Worker(一个在浏览器后台异步运行的线程)里,由CPU负责,而GPU专注于渲染。这样两个任务并行进行,打破了显示器刷新率对渲染帧率的限制。
七、实验结果:数字会说话
在Mip-NeRF 360、Tanks and Temples和Deep Blending三个标准数据集上,研究团队对Flux-GS与多个对比方法进行了全面测评,对比方法包括原版3DGS、Speedy-Splat、C3DGS、LocoGS和Mobile-GS。
在室内场景上,Flux-GS的PSNR(峰值信噪比,越高画质越好)达到30.22,原版3DGS为30.41,Mobile-GS为30.37,差距极小,完全在可接受范围内。而气泡数量方面,Flux-GS只用了22万个,Mobile-GS用了38万个,原版3DGS用了145万个。存储方面,Flux-GS室内场景只需2.1MB,Mobile-GS需要3.5MB,原版3DGS需要高达478MB。渲染速度方面,Flux-GS在搭载骁龙8 Gen 3的手机上达到147帧/秒,超过Mobile-GS的131帧/秒。训练时间方面,Flux-GS只需11分钟,而Mobile-GS需要86分钟,Speedy-Splat需要14分钟(但其画质和存储明显更差)。
室外场景的结论与室内类似:Flux-GS用0.48MB的存储(Mobile-GS为0.58MB)、132帧/秒的速度,实现了接近其他方法的画质。
在Tanks and Temples数据集上,Flux-GS的PSNR为23.27,略高于Mobile-GS的23.09和Speedy-Splat的23.08,同时存储只有2.4MB,渲染速度达到137帧/秒,训练只需11分钟。在Deep Blending数据集上,Flux-GS以1.9MB的极小存储达到29.73的PSNR,渲染速度158帧/秒,均处于对比方法中的最优或次优水平。
研究团队还对Flux-GS中各组件的贡献进行了消融实验。去掉蒙特卡洛光谱能量聚合器,PSNR从27.02下降到26.64;去掉属性条件化球谐增强模块,PSNR降到26.71;两者同时保留但去掉多视角密化,气泡数量激增,FPS跌至24,存储达16MB;去掉多视角剪枝,存储增加,速度下降。每个组件都有独立且互补的贡献。
此外,研究团队还探索了蒙特卡洛采样点数K对性能的影响。K从64增加到2048时,PSNR持续提升;超过2048后趋于饱和。最终选定K=2048作为默认配置。对于多视角密化的相机数量,从2个增加到6个时PSNR明显提升,气泡数量同步下降;超过6个后趋于稳定,因此选定6个相机视角。对于密化分位数阈值Q+,设为0.6时能在气泡数量和画质之间取得较好平衡;对于剪枝阈值Q-,设为0.1时效果最佳。
研究团队还进行了用户主观评测,邀请了30名志愿者对各方法的渲染视频进行评分。在Mip-NeRF 360数据集上,60%的用户更偏好Flux-GS,Mobile-GS获得20%,Speedy-Splat获得13%,3DGS获得7%。在Tanks & Temples数据集上,Flux-GS获得43%的偏好,Mobile-GS23%,两者Speedy-Splat和3DGS各获17%。在Deep Blending数据集上,Flux-GS获得53%,Mobile-GS30%,3DGS10%,Speedy-Splat7%。用户普遍认为Flux-GS渲染画面中的"漂浮物"和渲染瑕疵明显更少,这得益于多视角密化与剪枝策略对气泡质量的精准把控。
八、局限性与未来方向
研究团队坦诚地指出了Flux-GS的几个局限。压缩到一阶球谐函数后,对镜面级别的强烈镜面反射的描述能力有所下降——那种镜子或抛光金属上清晰可见的倒影,三阶球谐函数可以自然捕捉,一阶就比较吃力。另外,训练开始阶段的前3000次迭代仍然需要存储三阶球谐函数,这意味着训练期间的峰值内存消耗与标准3DGS相当,只有训练完成后的推理模型才真正轻量。多视角剪枝策略依赖采样的相机视角来评估气泡是否冗余,如果场景中存在只能从极少数特定角度看到的微小细节,而这些角度恰好没被采样到,相关气泡可能被错误剪掉。
在未来研究方向上,研究团队提出了几个值得探索的路径。将多视角指导引入基于码本(codebook)的压缩或熵编码,有望进一步压缩存储,使3D场景能通过低带宽网络即时流传输。将Flux-GS扩展到动态场景(4D高斯泼洒),并将多视角密化策略适配到时间维度上,是实现手机实时播放体积视频的潜在途径。
归根结底,Flux-GS回答的是一个既朴实又重要的问题:能不能让普通人口袋里的手机,也能流畅体验那些此前只有高端台式机才能驾驭的3D场景?从实验数据来看,答案已经相当接近"能"了。用不到2MB的空间装下一个完整的室外场景,以超过130帧每秒的速度在手机上渲染,同时保持与原版几乎相当的画质——这三件事同时做到,在这篇研究之前并没有一个令人满意的方案。Flux-GS通过对颜色信息的数学提炼(而非昂贵的知识蒸馏)、对训练过程推理过程的严格解耦(让神经网络增强零推理开销)、以及对气泡生命周期的多视角精准管理,系统性地打通了从高质量到轻量化的通道。
当然,镜面反射和极端视角的细节损失提醒我们,这条路还没有走到终点。但对于绝大多数日常场景——走进一个虚拟的博物馆、浏览一处远方的旅游景点、在手机上查看一件家具放在自己客厅里的样子——Flux-GS展示的能力已经足够实用。
有兴趣深入研究技术细节的读者,可以通过arXiv编号2606.30017查阅完整论文,研究团队也承诺会在项目主页公开代码,届时可以通过项目主页获取实验复现所需的全部资料。
Q&A
Q1:Flux-GS和Mobile-GS相比,主要优势在哪里?
A:Flux-GS相比Mobile-GS有三个核心优势。第一,训练速度快得多,Flux-GS大约只需11分钟,Mobile-GS需要100分钟以上。第二,Flux-GS用蒙特卡洛能量聚合代替了Mobile-GS的知识蒸馏,不需要先训练大模型再压缩,流程更简洁。第三,Flux-GS的颜色增强模块在推理时零开销,而Mobile-GS的增强模块需要实时运行神经网络,渲染速度因此受限。
Q2:球谐函数从三阶压缩到一阶,画质损失大吗?
A:从数据上看损失相当有限。在Mip-NeRF 360数据集室内场景上,Flux-GS的PSNR为30.22,原版三阶3DGS为30.41,差距不到0.2dB,在视觉上几乎难以察觉。主要会有明显差异的场景是包含强烈镜面反射的场景,比如镜子或高度抛光的金属表面,一阶球谐在这类场景下确实无法完整还原三阶的细节。
Q3:Flux-GS生成的3D场景怎么在手机上运行?
A:Flux-GS采用WebGL渲染框架,生成的3D场景可以直接在手机浏览器里打开,无需安装任何应用。研究团队还设计了一套异步排序机制,把气泡的深度排序放在后台线程里由CPU处理,GPU专注渲染,突破了手机屏幕120帧刷新率的限制,实测在骁龙8 Gen 3手机上能达到130至150帧每秒。
热门跟贴