跳转至

PixGS: Pixel-Space Diffusion for Direct 3D Gaussian Splat Generation

会议: ECCV 2026
论文: ECCV 原文
领域: 3D 视觉
关键词: 3D 高斯泼溅、像素空间扩散、流匹配、文本到 3D、图像到 3D

一句话总结

PixGS 把 3DGS 的每个高斯属性排布成多视角「属性图像」,用预训练像素空间扩散模型(PixNerd,约 4500 万张图像先验)以流匹配方式直接去噪这组属性张量,配上 2 倍超分渲染监督、深度/法线与多尺度 LoG 正则以及三阶段训练课程,在单卡 A100 上约 1 秒完成文本或图像条件的 3DGS 生成,并在 T3Bench 与 GSO 上同时超过 DiffSplat、TRELLIS、GaussianCube、LGM、DreamGaussian 等基线。

研究背景与动机

从文本或单图生成 3D 内容目前大致走三条路,各有各的卡点。优化式方法(DreamFusion 系的 SDS、DreamGaussian)借用 2D 扩散的视觉丰富度逐场景优化 3DGS,不需要 3D 真值数据,但每个 prompt 都要重新优化,速度极慢,而且常出过平滑几何和「Janus」式的多视角不一致;3D-native 方法(TRELLIS、GaussianCube、DiffusionGS)直接从几何数据里学 3D 分布,推理快、几何一致性好,但被 3D 数据集的规模死死限制——3D 语料比 web 级图像语料小几个数量级,因此必须靠极大的模型容量去硬扛纹理和拓扑,泛化性也差;重建式两阶段方法(多视角 2D 扩散 + 独立重建器,如 LGM、InstantMesh)先用 SyncDreamer/MVDream 生成多视角一致图,再交给重建器映射到 3D,问题在于重建器把生成的图当作固定真值,视角之间哪怕只差一点透视或纹理,累积到重建阶段就变成明显的 floaters。最近 DiffSplat 想绕过这条「先出图再重建」的弯路,把 3DGS 排布成结构化的 2D 属性张量、微调预训练 latent diffusion 直接生成 splat,视角一致性和 2D 先验都拿到了。但它的代价很具体:整条管线需要三个相互依赖的模型——3DGS 重建器、把属性压进 latent 的 VAE、以及 latent 扩散模型——三者必须依次收敛好,训练既贵又脆,工程开销大;为了省掉扩散训练中反复解码高斯显存开销,还得额外训一个从零开始的轻量解码器,系统复杂度再上一级。

这里真正的矛盾是:想同时要 2D 扩散的强先验、结构化表示的视角一致性、以及「不经过有损压缩」的表达力,但这三样在 latent 路线下是互斥的。latent 是压缩后的表示,模型在训练时永远看不到自己最终要交付的高斯属性,高频细节在编解码往返中被抹掉,解回来就是伪影;而级联训练又让每一级的误差向下累积,最终质量被「每一级各自的容量」这一乘积项锁死。与此同时,图像生成领域自己已经给出了另一条路:PixNerd、PixelFlow、PixelDiT 这些像素空间扩散模型证明了不要 VAE、直接在像素流形上学速度场也能出高保真结果,办法是用大 patch 换计算效率、再用 patch-specific 的坐标条件神经场把高频细节补回来。既然高斯属性张量本来就长得像图像(连续量、按像素排布、多通道),这条路完全可以平移过来。

本文的做法就是做这个平移:放弃 latent,把「4 个视角 × 每个高斯 12 个属性」的张量直接当作像素流形来扩散,每个时间步都在真正的 splat 属性层面上做预测和正则化,并把重建器降级成一个只负责启动收敛的伪标签来源。核心 idea:把高斯属性张量当作多通道像素流形直接做流匹配去噪,用一个继承 2D 图像先验的单阶段模型取代「重建器 + VAE + latent 扩散」的级联管线,再用渲染级多任务监督(2 倍超分外观 + 深度法线 + 多尺度 LoG)把生成质量从伪标签上限中解放出来。

方法详解

整体框架

PixGS 是一个单阶段模型:输入是文本提示或一张参考图(外加相机位姿),输出是一组 3D 高斯。整条推理路径上没有 VAE、没有 latent、也没有第二个生成阶段——模型直接在一张「属性图」上做去噪,而这张属性图的每个像素恰好就是一个高斯。表示上它沿用 Splatter Image / DiffSplat 的思路:一个 \(V_{in}\) 个视角、每个视角 \(H\times W\) 的网格,每个像素存 12 个高斯参数(颜色 3 + 尺度 3 + 旋转四元数 4 + 不透明度 1 + 深度 1,该拆分由 \(g_i\in\mathbb{R}^{12}\) 反推,⚠️ 以原文为准),于是整份 3D 资产就是一个 \(V_{in}\times g\times H\times W\) 的张量,本质上是把一组多视角图像的 RGB 三通道换成高斯属性通道。尺寸 \(g\) 的属性图不是渲染出来的 RGB 图,而是「每个像素自带一个高斯」的属性底板;位置不直接回归,而是由该像素的深度 \(d\) 与像素坐标 \(u\) 通过相机内外参反投影得到,\(x=R^\top K^{-1}[u\,|\,d]-t\),这样才能让网络只在一个 \(H\times W\) 的规则网格上做图像式的预测。

生成模型以 PixNerd 为骨架,继承约 4500 万张图像上预训练的 2D 先验,在 Flow Matching 框架下学一个速度场,把高斯噪声张量推到数据张量;为给几何线索,噪声张量的通道里再拼上每个视角的 Plücker 坐标(相机射线),于是总通道数变成 \(c=g+d_{pl}\)。扩散在 patch 层面做(\(16\times16\) 的 patch 展平成 token),transformer 之后由每个 patch 自己的小 MLP 逐像素解码速度;跨视角一致性靠多视角注意力和多视角 RoPE2d 来保证。训练侧则叠了渲染级的多任务监督——在 2 倍分辨率上渲染做外观损失、用渲染深度与法线做几何损失、用多尺度 LoG 做高频损失——并用三阶段课程把伪标签的引导作用限制在启动阶段。推理时一次去噪过程即可得到最终高斯,单卡 A100 约 1 秒。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["文本提示 / 参考图 + 相机位姿"] --> B["像素空间扩散直接去噪<br/>高斯属性张量,无 VAE"]
    B --> C["多视角注意力 + 多视角 RoPE2d<br/>跨视角 token 全局交互"]
    C --> D["3DGS 资产(≈1 s)"]
    C -.->|训练期监督| E["渲染级多任务监督<br/>超分外观 + 深度法线 + LoG"]
    E --> F["三阶段训练课程 + 旋转正则"]
    F -.->|更新生成模型| B

关键设计

1. 像素空间扩散直接去噪高斯属性张量:用 2D 图像先验换掉 VAE 与级联管线

DiffSplat 那一类方法把高斯属性压进 latent 再扩散,代价有两条很硬的。第一条是训练组织:重建器、VAE、latent 扩散三级必须依次收敛,前一级没训好后一级就没有意义,整套系统又贵又脆;第二条更本质——latent 是压缩表示,模型从来看不见自己最终要交付的高斯属性,高频信息在编解码往返里被丢掉,解回来就是细节伪影,而最终质量又被「每一级容量」的乘积锁死。PixGS 直接把概率路径定义在高斯属性张量本身上:数据张量 \(G_1\) 与噪声张量 \(G_0\) 之间做线性插值得到 \(G_t=tG_1+(1-t)G_0\),模型学的是从噪声指向数据的常数速度 \(G_1-G_0\)

这个定义带来三重好处。其一,\(G_t\) 的每个通道就是真实的高斯属性(不透明度、尺度、旋转、颜色、深度),所以模型在每一个时间步都在预测真正要交付的参数,训练时可以直接对其施加 splat 级的渲染与几何正则,而不是对一个中间 latent 施加;其二,没有 VAE 就没有编解码误差,也不再有压缩容量这个上限,几何与纹理细节的保真度只受模型自身能力约束;其三,输入输出都是「图像状」张量,可以直接复用在大规模图像语料上预训练好的像素扩散权重,不必像 DiffusionGS 那样从零学视觉语义——这正是它能在小 3D 语料上仍然泛化的原因。为把 2D 先验用起来,条件注入也要一并解决:文本条件沿用原本的文本编码器路径;图像条件论文比较了两种做法,一是视角拼接,把参考图 RGB 通道用 \(1\times1\) 卷积投到属性维 \(g\)、配上参考相机的 Plücker 坐标,作为一个额外「视角」沿视角维拼进噪声张量;二是图像提示适配器,用 DINO-v2 提特征、用 AdaLN 按参考 Plücker 缩放平移注入视角信息、再把图像嵌入投到文本嵌入维度后前置到文本 token 之前。实验显示两者几乎打平(PSNR 30.36 vs 30.31),视角拼接参数更省(1.2B vs 1.4B),作者把它归因于沿视角轴拼接保留了参考图的 2D 空间结构,跨视角注意力更直接。反推回高斯的方式也很直接:在 \(t=1\) 处得到 \(\hat G_1\),每个像素的 12 个数就是一个高斯的属性,深度与像素坐标反投影出中心,旋转在前向里 L2 归一化、其余属性 clamp 到合法范围,再交给 3DGS 光栅化渲染。

2. 多视角注意力与多视角 RoPE2d:让不同视角的 patch 在同一个坐标系里互相看见

属性张量虽然把多视角塞进了同一个张量,但标准像素扩散是在单个视角内部做注意力的:patch 化之后 token 序列是 \(X\in\mathbb{R}^{(B\cdot V_{in})\times L\times D}\),如果把视角维折进 batch,各个视角就是互不相干的独立样本,各画各的,等于把「先生成多视角图再重建」那条路的视角不一致问题原封不动地搬了进来——floaters 的根源。

作者从注意力和位置编码两处入手。注意力上,把 token 序列在计算前重排成 \(\mathbb{R}^{B\times(V_{in}\cdot L)\times D}\),于是任意一个 patch 都能注意到同一物体所有视角的所有 patch,视角间的信息交换变成显式的。位置编码上,原本的 RoPE2d 只在一个视角的 \(H\times W\) 网格上分配坐标;这里把 \(V_{in}\) 个视角视为一张高分辨率合成图里空间对齐的若干分块,把 RoPE2d 的坐标流形放大到虚拟分辨率 \((\frac{V_{in}}{2}H)\times(\frac{V_{in}}{2}W)\)(⚠️ 原文的写法如此;从「排成一张合成图」的语义看更像是把 \(V_{in}\) 个视角排成二维网格、\(V_{in}=4\) 时即 \(2\times2\),以上述虚拟分辨率计,具体形式以原文为准),在 \(V_{in}\cdot L\) 个 token 上分配互不重复的位置编码。这样 transformer 学到的相对空间关系不只在一个视角内成立,而是跨整个多视角集合成立:同一个 3D 点在不同视角的投影位置,在位置编码层面就落在同一个坐标系的不同坐标上,几何一致性因此有了显式的归纳偏置,而不必靠后处理去对齐。

这里还有一个和 PixNerd 一脉相承、容易被忽略的细节:transformer 的输出并不直接是像素值,而是先给每个 patch 算出一个 patch 专属 MLP 的权重 \(\mathcal{W}^n_v=\text{Linear}(\text{SiLU}(X^n_v))\),再由这个局部 MLP 对 patch 内每个像素坐标 \((v,i,j)\) 解码速度,输入是坐标编码与噪声输入在通道上的拼接。也就是说 transformer 只负责 patch 粒度的全局推理,逐像素的高频细节交给坐标条件神经场去补——这是大 patch 像素扩散不掉高频的关键,也是它能直接套用到高斯属性上的原因。

3. 渲染级多任务监督:2 倍超分外观损失 + 深度法线 + 多尺度 LoG 高频正则

只做流匹配,本质上是在拟合伪标签的分布。而模型的输出直接就是高斯属性,属性上的小误差——尤其是不透明度接近 0 的背景高斯——会渲染成持续存在的 floater;同时伪标签本身来自一个能力有限的重建器,纯分布匹配等于把最终质量的上限锁死在重建器上。更实际的问题是数值稳定性:早期迭代里属性噪声很大,直接施加渲染损失会因为坐标/颜色/不透明度越界、旋转不是单位范数而产生不可靠梯度,训练直接炸成 NaN(消融表里「仅流匹配 + 外观损失」那一行正是 NaN)。

论文因此补了三类作用在可微渲染结果上的监督。外观损失把预测的高斯张量在 \(2H\times2W\)(属性网格分辨率的两倍)上渲染,RGB 用 MSE + LPIPS、轮廓 mask 用 MSE,对 \(V\) 个监督视角取平均;选 2 倍分辨率而不是原生分辨率是这节最关键的一步——原生网格的分辨率上限同时也是高斯密度上限,在 2 倍分辨率上做比较等于把监督信号的空间密度翻了几倍,给出更密的梯度,逼模型把高斯密度集中到真正的物体表面上、并恢复超出基础网格分辨率的高频细节,顺带压掉那些低不透明度的背景伪高斯。几何损失用渲染深度与渲染表面法线监督,把隐式的几何约束写进目标函数。高频损失用多尺度 Laplacian of Gaussian(LoG):对渲染图与 GT 图分别做多个标准差 \(\sigma\) 的高斯模糊再取拉普拉斯,逐尺度比较差异,尺度权重取 \(\omega_\sigma\propto\sigma^2\),用来平衡锐利特征与渲染噪声的相对贡献。LoG 在这里的作用是把「高频对齐」显式写进损失,缓解扩散模型常见的过平滑;论文的可视化显示加上 LoG 之后文字、细结构这类高频内容的边界和纹理明显更锐利。

4. 三阶段训练课程与旋转范数正则:先学分布,再学生成质量

伪标签很好用(GSRecon 的输出本身就落在合法的高斯属性分布上,能让模型快速收敛),但它终究是重建器的输出,一直依赖它就把上限锁住了;而 GT 渲染监督虽然直接对应最终质量,却不能一上来就用——早期属性分布还不对,渲染损失会把训练直接打崩。这两个约束指向同一个解法:把训练过程切成有先后的三段。

第一阶段 5 万次迭代只用流匹配拟合伪标签,让模型先学会「合法的高斯长什么样」;第二阶段流匹配与 GT 渲染监督并用,作为过渡;第三阶段 15 万次迭代只用 GT 监督,是耗时最长、也真正决定最终质量的一段。论文反复强调伪标签只用于启动收敛和提高稳定性、不决定最终质量——这一点在消融中被直接验证:把 GSRecon 换成更弱的 LGM 伪标签,GSO 上的最终表现几乎不变(PSNR 21.15 vs 21.21),代价只是多约 10% 的训练量;而课程本身的收益也很明确,从第二阶段切到第三阶段后 PSNR 从 30.36 涨到 31.15、LPIPS 从 0.022 降到 0.019。

除了课程,还额外需要一个显式的旋转范数正则。扩散目标本身学不会「四元数必须是单位范数」这条约束,虽然前向里做了 L2 归一化和属性 clamp,但这些操作会与网络输出产生偏差、让渲染损失的梯度不再可靠;加一个把旋转范数往 1 拉的惩罚项之后,数值不稳定问题消失——消融里正是这个正则把 NaN 那一行救回到 30 量级的收敛。课程还带来一个附带的效率收益:第一阶段结束后背景高斯的不透明度已被压到接近零,论文把第二、三阶段单次迭代时间的缩短归因于此。

损失函数 / 训练策略

⚠️ 缓存里的 PDF 公式提取损坏严重(运算符与范数丢失),下列公式按正文文字描述与标准形式重建,权重取值原文正文未给出,一律以原文/附录为准。

流匹配损失让模型预测从噪声指向数据的常数速度:

\[\mathcal{L}_{\text{FM}}=\mathbb{E}_{t,\,G_0,\,G_1}\left\|v_\theta(G_t,t)-(G_1-G_0)\right\|^2,\qquad t\sim\mathcal{U}[0,1]\]

外观损失在 \(2H\times2W\) 分辨率上渲染后计算(\(I_v\)\(M_v\) 分别是可微渲染得到的 RGB 图与轮廓 mask):

\[\mathcal{L}_{\text{app}}=\frac{1}{V}\sum_{v=1}^{V}\Big(\mathcal{L}_{\text{MSE}}(I_v,I_v^{\text{GT}})+\lambda\,\mathcal{L}_{\text{LPIPS}}(I_v,I_v^{\text{GT}})+\mathcal{L}_{\text{MSE}}(M_v,M_v^{\text{GT}})\Big)\]

几何损失用渲染深度 \(D_v\) 与表面法线 \(N_v\) 监督,法线项取余弦距离:

\[\mathcal{L}_{\text{geo}}=\frac{1}{V}\sum_{v=1}^{V}\Big(\lambda_d\,\|D_v-D_v^{\text{GT}}\|+\lambda_n\,(1-\cos(N_v,N_v^{\text{GT}}))\Big)\]

多尺度 LoG 损失在渲染图上做,\(\mathcal{S}\) 是高斯核尺度集合、\(\Delta\) 是拉普拉斯算子、\(G_\sigma\) 是高斯核、\(\omega_\sigma\propto\sigma^2\)

\[\mathcal{L}_{\text{LoG}}=\frac{1}{V}\sum_{v=1}^{V}\left\|\sum_{\sigma\in\mathcal{S}}\omega_\sigma\Big(\Delta(G_\sigma*I_v)-\Delta(G_\sigma*I_v^{\text{GT}})\Big)\right\|_1\]

旋转范数正则把预测四元数 \(r\) 的模长往 1 拉:

\[\mathcal{L}_{\text{rot}}=\mathbb{E}\left[(1-\|r\|)^2\right]\]

总目标为四项加权和 \(\mathcal{L}_{\text{total}}=\lambda_f\mathcal{L}_{\text{FM}}+\lambda_a\mathcal{L}_{\text{app}}+\lambda_g\mathcal{L}_{\text{geo}}+\lambda_l\mathcal{L}_{\text{LoG}}\);注意原文列出总目标时并未显式并入 \(\mathcal{L}_{\text{rot}}\)(它是在训练方案一节单独引入的),是否合并以原文为准。训练数据方面,训练集为 G-Objaverse 与 G-Objaverse-XL Alignment(从 Objaverse / Objaverse-XL 中筛出的高质量子集,再按美学分数过滤,最终 50 万+ 个 3D 物体,每个渲染 38 个视角,文本描述来自 Cap3D);伪标签由微调过的 GSRecon 产出。正文未给出的关键超参包括各 \(\lambda\) 的取值、扩散采样步数、\(V_{in}\)\(H\times W\) 与 patch 化后的训练分辨率、LoG 的尺度集合 \(\mathcal{S}\)——⚠️ 均以原文/附录为准。

实验关键数据

评测分两条线:文本条件化用 T3Bench 的 300 个 prompt(分单物体、带环境、多物体三档),指标是 CLIP 相似度、CLIP R-Precision(ViT-B/32)与 ImageReward(人类偏好);图像条件化用 GSO 中随机挑的 300 个训练时未见过的物体,指标是与 GT 渲染比对的 PSNR / SSIM / LPIPS。消融实验统一在 G-Objaverse(265K 资产)上训练、在 G-Objaverse-XL Alignment 的 1000 个样本上评测。

主实验

文本条件化(T3Bench,↑ 越高越好;Latency 为 ↓):

方法 单物体 CLIP Sim 单物体 R-Pre 单物体 ImgReward 带环境 ImgReward 多物体 CLIP Sim 多物体 R-Pre Latency (s)
DiffSplat (SD-1.5) 30.63 78.50 -0.490 -1.063 27.62 69.25 1
DiffSplat (SD-3.5) 30.99 84.75 -0.196 -0.447 29.44 74.00 3
TRELLIS-L 28.77 68.50 -1.033 -1.604 26.28 48.00 5
GaussianCube 27.35 50.75 -1.521 -2.063 23.93 26.25 3
LGM† 29.96 78.00 -0.720 -1.772 27.07 51.00 6
DreamGaussian 24.78 37.75 -1.635 -1.953 23.97 28.50 47
PixGS(本文) 31.98 88.75 -0.171 -0.341 30.45 77.25 1

图像条件化(GSO,与 GT 渲染比对):

方法 PSNR↑ SSIM↑ LPIPS↓ Latency (s)
DiffSplat (SD-1.5) 19.57 0.810 0.159 1
DiffSplat (SD-3.5) 19.59 0.811 0.158 3
DiffusionGS 16.53 0.770 0.217 12
TRELLIS-L 17.70 0.797 0.172 6
LGM† 15.61 0.764 0.245 2
PixGS(本文) 21.21 0.842 0.123 1

消融实验

监督损失与训练课程(Tab. 4 / Tab. 5 合并,前者为逐项叠加、后者为课程阶段):

配置 PSNR↑ SSIM↑ LPIPS↓ 说明
\(\mathcal{L}_{\text{FM}}\) 16.04 0.708 0.496 只拟合伪标签分布,3D 一致性差、floater 严重
+ 外观损失 NaN NaN NaN 属性越界/旋转非单位范数,梯度炸成 NaN
+ 旋转范数正则 30.11 0.969 0.027 数值稳定性恢复,外观监督才生效
+ 几何损失 30.24 0.967 0.025 深度/法线监督,增益较小
+ LoG 损失 30.36 0.969 0.022 高频细节恢复,LPIPS 明显下降
Phase 2(流匹配 + GT 渲染监督) 30.36 0.969 0.022 数值与上一行完全一致
Phase 3(纯 GT 监督) 31.15 0.987 0.019 完整课程,决定最终质量

条件化范式与伪标签来源(两组独立实验;前者与后者分别在各自设置下评测,数字不可横比):

实验 配置 关键指标 参数量
条件化范式(PSNR/SSIM/LPIPS) 视角拼接 30.36 / 0.969 / 0.022 1.2B
条件化范式 图像提示适配器 30.31 / 0.977 / 0.023 1.4B
伪标签来源(GSO PSNR/SSIM/LPIPS) LGM 21.15 / 0.844 / 0.125 415M
伪标签来源 GSRecon 21.21 / 0.842 / 0.123 42M

关键发现

  • 最关键的发现是「光有流匹配不够」。仅流匹配时训练损失收敛得很漂亮,PSNR 却只有 16.04、LPIPS 0.496,可视化里是大量 floater;一旦把 GT 渲染监督接上,PSNR 直接跳到 30 量级。这说明把像素空间扩散搬到高斯属性模态上,难点不在于分布匹配本身,而在于属性空间缺少视觉语义的约束——损失在属性空间小,不代表渲染出来像东西。
  • 最脆的一环是旋转。去掉旋转范数正则直接上渲染损失会 NaN,加回正则立刻收敛到 30.11/0.969/0.027;这也从机理上解释了为什么必须用课程:早期属性越界时渲染梯度不可靠。
  • 各监督项贡献递减:旋转正则(把 NaN 救回来,是「能否训练」的门槛)> 外观损失(16.04 → 30 量级的主体)> 几何损失(+0.13 PSNR)≈ LoG(+0.12 PSNR,但把 LPIPS 从 0.027 压到 0.022)。LoG 的价值主要在感知指标和高频纹理上,只看 PSNR 会低估它。
  • 伪标签只该当启动器。Phase 2 → Phase 3 把 PSNR 从 30.36 拉到 31.15、LPIPS 从 0.022 降到 0.019;换更弱的 LGM 伪标签最终只差 0.06 PSNR(21.15 vs 21.21),代价是多约 10% 训练量。作者因此选了参数量小一个数量级(42M vs 415M)的 GSRecon。
  • 两种图像条件化范式几乎打平(PSNR 差 0.05、SSIM 差 0.008、LPIPS 差 0.001),说明「从参考图恢复视角相关外观」对注入方式不敏感,作者按参数效率选了视角拼接。
  • 速度是另一张牌:T3Bench 上 1 秒,与 DiffSplat SD-1.5 持平,快于 SD-3.5(3 s)、TRELLIS(5–7 s)、LGM(6 s)、DreamGaussian(47 s),且没有靠牺牲质量换速度。
  • 一处需要注意的例外:T3Bench「带环境」档的 CLIP R-Precision 上,DiffSplat SD-3.5 是 87.75、PixGS 是 87.25,本文反而略低;其余各项与两个数据集的整体趋势都是本文领先。另外 T3Bench 表与 GSO 表的数字不可横比(前者是对齐/偏好指标,后者是与 GT 的重建指标),而消融表的 PSNR 都在分布内子集上评测,能上 30 与 GSO 的 21 不是同一件事。

亮点与洞察

  • 「属性图 = 像素流形」的表示同构是整个方法的支点。高斯属性本来就是连续量、本来就按像素排布,所以像素扩散的全套技术(patch 化、patch-wise 神经场、RoPE2d、预训练权重)可以近乎零改动地迁移过来。这个观察最值得借鉴:任何「预测一组按规则网格排布的连续 3D 基元参数」的任务,都可以先问一句「它是不是和图像同构」。
  • 大 patch + 坐标条件神经场解码:transformer 只在 patch 粒度推理、逐像素高频交给一个由 token 权重参数化的小 MLP 补。这是在不算力上做「无 VAE 像素扩散」的核心 trick,也是 PixGS 能把 PixNerd 直接搬到 3D 的原因。
  • 2 倍超分渲染监督:在属性网格两倍分辨率上算外观损失,等于用一个几乎免费的改动把监督信号的空间密度翻四倍,把「高斯该长在哪里」这个隐式决策变成显式梯度,还顺带压掉背景伪高斯。任何「预测结构化 3D 基元再渲染」的模型都能直接套。
  • 把经典边缘算子当正则项用:多尺度 LoG 本是经典边缘检测(Marr-Hildreth)的算子,这里当损失使,\(\omega_\sigma\propto\sigma^2\) 把尺度间贡献归一化,成本只是几次高斯滤波加拉普拉斯,但直接体现在 LPIPS 与高频纹理上。这是个很划算的「老工具新用法」。
  • 「弱监督启动强监督」的通用课程模式:先用便宜易得、保证落在合法参数域内的信号(伪标签)把模型推进合法域,再切到昂贵但正确的监督(GT 渲染)。凡是同时存在「合法参数域难以从零学起」和「正确监督在域外会梯度爆炸」的任务,这个三段式都可以直接抄。

局限与展望

  • 缓存中的全文没有 Limitations 一节,作者未明确列出局限(⚠️ 以原文/附录为准)。从消融设计看,模型仍需要一个手工微调过的 GSRecon 来产出伪标签以启动训练;虽然换个更弱的伪标签也不掉点,但「完全不要伪标签、直接上 GT 监督会怎样」这个更彻底的消融没有做,因此无法排除伪标签在收敛早期仍有不可替代的作用。
  • 评测范围偏窄:全部实验都是物体级(G-Objaverse 系与 GSO),图像条件化只有单图条件,文本条件化只有 T3Bench 的 300 个 prompt;没有场景级 / 多物体组合的定量分析,也没有与 2025 年之后更新的像素空间 3D 方法对比。
  • 关键细节缺失:缓存中没有 \(V_{in}\)\(H\times W\)、patch 训练分辨率、扩散采样步数、各损失权重 \(\lambda\)、LoG 尺度集合 \(\mathcal{S}\) 的取值。论文称「约 1 秒 / 单卡 A100」,但没给采样步数(NFE)与批设置,跨方法的 latency 比较只能当粗略量级看。
  • 表示层面的上限:\(V_{in}\) 个视角网格同时决定了高斯总数与覆盖范围,相机视野之外只能靠预测的深度偏移「泼」出去;相比 TRELLIS 那类稀疏体素表示,在需要覆盖完整 360° 复杂拓扑时是否受限,论文没有专门分析。另外 38 个固定视角渲染出来的伪标签与 GT 监督视图,是否足以覆盖开放场景中的任意视角,也不清楚。
  • 可改进方向:其一,把伪标签换成自监督式的「合法域预热」(例如用低权重的 GT 渲染直接跑几轮),彻底去掉对重建器的依赖,并顺便消融掉这个前提;其二,把超分渲染监督做成难度递增的课程(\(1\times\to2\times\to4\times\)),进一步提升高频上限;其三,LoG 的尺度权重 \(\omega_\sigma\propto\sigma^2\) 目前是固定的,可按材质/纹理频率自适应;其四,把同一套像素空间框架扩展到场景级与多物体组合生成。

相关工作与启发

  • vs DiffSplat:两者都用 Splatter Image 式的像素对齐高斯、都复用图像扩散先验,但 DiffSplat 在 latent 上扩散,需要重建器 + VAE + latent 扩散三级级联、还要额外训一个轻量解码器,误差逐级累积且质量被压缩容量封顶;PixGS 直接在属性张量上扩散,单阶段、无 VAE,代价是要自己微调 GSRecon 造伪标签。质量上 T3Bench 三档 prompt 的 CLIP Sim / R-Pre / ImageReward 基本全面领先(多物体档 R-Pre 77.25 vs 74.00),速度持平或更快。
  • vs DiffusionGS:同样是单阶段扩散生成 3DGS,但 DiffusionGS 用专用架构在合成 3D 视图上从零训练,丢掉了 2D 预训练先验,因而收敛慢、泛化差——GSO 上 PSNR 仅 16.53、LPIPS 0.217,且延迟 12 秒是最慢的。PixGS 的关键差异就是骨架直接初始化自 4500 万图像的像素扩散模型。
  • vs TRELLIS / GaussianCube:3D-native 路线,分别用稀疏体素 latent 与 3D UNet 学高斯分布,推理快、几何一致性好,但受 3D 数据规模限制;更具体的短板是 latent/体素表示不含显式的视角条件监督,因此在图像条件任务上复现不出参考图的空间朝向与透视(TRELLIS-L GSO PSNR 17.70)。PixGS 的属性张量天生带视角标签,参考视角对齐更强。
  • vs LGM / DreamGaussian:一个是多视角扩散 + 前馈重建的两阶段(还需要额外的条件多视角生成模型),一个是优化式(SDS + 渐进致密化)。共同问题是上游 2D 生成的多视角不一致会在下游放大成 floater,而且慢(T3Bench 上 LGM 6 秒、DreamGaussian 47 秒)。PixGS 不经过「生成图」这个中间态,直接从噪声到高斯,这也是它能同时拿到速度和质量的原因。

评分

  • 新颖性: ⭐⭐⭐⭐ 把像素空间扩散(PixNerd)搬到 3DGS 属性张量上并配套多视角注意力/RoPE 与渲染级监督,是一次很干净的表示同构迁移;但「属性图 + 2D 先验」这一路本身由 DiffSplat 开创,本文的核心增量是去掉 latent 与相应的训练方案。
  • 实验充分度: ⭐⭐⭐⭐ 文本(T3Bench)与图像(GSO)两条线、四组消融覆盖条件化/损失/课程/伪标签,比较完整;不足是缺场景级评测,且若干关键超参与采样步数未在正文给出。
  • 写作质量: ⭐⭐⭐⭐ 动机与方法的叙述清楚、消融组织有条理、结论克制;扣分在于缓存里公式提取损坏严重,且部分表格的评测设置需要读者自己推断。
  • 价值: ⭐⭐⭐⭐ 单阶段、约 1 秒、无 VAE 的 3DGS 生成管线对实际部署有直接意义,三阶段课程与超分渲染监督这两个组件可低成本迁移到其他 3D 生成任务。