3D-GSW: 3D Gaussian Splatting for Robust Watermarking¶
会议: CVPR 2025
arXiv: 2409.13222
代码: https://kuai-lab.github.io/cvpr20253dgsw/
领域: 3D视觉 / 数字水印 / 3D Gaussian Splatting
关键词: Watermarking, 3D-GS, Frequency-Guided Densification, Gradient Mask, DWT
一句话总结¶
提出3D-GSW,首个专为3D Gaussian Splatting设计的鲁棒数字水印方法,通过频率引导致密化(FGD)移除冗余高斯并在高频区域分裂高斯来增强鲁棒性,结合梯度掩码和小波子带损失保持渲染质量,在Blender/LLFF/Mip-NeRF 360数据集上同时实现了最优的水印鲁棒性和渲染质量。
背景与动机¶
3D Gaussian Splatting凭借实时渲染和高质量正成为3D内容创建的主流表示。随着商业化使用增加,版权保护成为紧迫需求。现有NeRF水印方法(如WateRF、CopyRNeRF)不能直接应用于3D-GS,因为:(1) 预训练3D-GS包含大量冗余高斯,导致水印嵌入计算开销大且嵌入不鲁棒(对渲染无贡献的高斯也可能携带水印信号,导致信号弱);(2) 显式表示的参数结构不同于NeRF的隐式网络权重。
核心问题¶
如何在3D-GS模型中嵌入鲁棒的数字水印,使得从任意视角渲染的图像都能提取出正确的水印消息,同时对图像攻击(噪声、裁剪、JPEG压缩等)和模型攻击(移除/克隆高斯、参数加噪)保持鲁棒,且不降低渲染质量和实时渲染速度?
方法详解¶
整体框架¶
Fine-tune预训练3D-GS来嵌入水印。流程:预训练3D-GS → FGD预处理(移除冗余高斯+高频区域分裂高斯)→ 构建梯度掩码 → 微调优化(消息损失+重建损失+LPIPS损失+小波子带损失)→ 水印3D-GS。提取时:渲染图像 → DWT变换取LL2子带 → 预训练HiDDeN解码器提取消息。
关键设计¶
-
频率引导致密化(FGD):分两阶段。阶段1:通过辅助损失函数度量每个高斯对渲染质量的贡献\(V_\pi\),移除贡献极小(\(V_\pi < 10^{-8}\))的冗余高斯(约减少28%),使剩余高斯都对渲染有显著影响,从而嵌入的水印更鲁棒。阶段2:对渲染图像分patch做DFT,选择高频强度最大的top-K%的patch,其中贡献较小的高斯分裂为更小的高斯,增强高频细节的渲染质量。移除的高斯远多于分裂的,总计减少了总数,提升了渲染FPS。
-
梯度掩码:FGD处理后的3D-GS已有高渲染质量。微调时需最小化参数变化。设计指数衰减梯度掩码\(z = \frac{1}{e^{|\theta|^\beta}}\)(归一化后),对参数值大的高斯传递更小的梯度。\(\beta=4\)实现最佳精度-质量平衡。不对位置\(\mu\)做掩码(梯度本身就接近零)。
-
小波子带损失:FGD在高频区域做了修改,需要保护高频细节。用DWT分解渲染图像和原图,只对高频子带{LH, HL, HH}计算L1损失,专门增强高频区域的渲染保真度。
-
DWT低频子带水印嵌入:将渲染图像做2级DWT,取LL2(低频)子带送入预训练的HiDDeN解码器提取消息。低频子带对图像攻击(JPEG压缩、噪声等)更鲁棒。
损失函数 / 训练策略¶
$\(\mathcal{L}_{total} = \lambda_{rec}\mathcal{L}_1(I_w, I_o) + \lambda_{lpips}\mathcal{L}_{LPIPS} + \lambda_w\mathcal{L}_{wavelet} + \lambda_m\mathcal{L}_{BCE}(M, M')\)$ \(\lambda_{rec}=1, \lambda_{lpips}=0.2, \lambda_w=0.3, \lambda_m=0.4\)。Adam优化,2-10个epoch。HiDDeN解码器在COCO上预训练后冻结。
实验关键数据¶
渲染质量与水印准确率(32-bit,三数据集平均)¶
| 方法 | Bit Acc↑ | PSNR↑ | SSIM↑ | LPIPS↓ |
|---|---|---|---|---|
| StegaNeRF+3D-GS | 93.15 | 32.68 | 0.953 | 0.049 |
| WateRF+3D-GS | 93.42 | 30.49 | 0.956 | 0.050 |
| 3D-GSW w/o FGD | 94.60 | 34.27 | 0.975 | 0.047 |
| 3D-GSW (Ours) | 97.37 | 35.08 | 0.978 | 0.043 |
图像攻击鲁棒性(32-bit)¶
| 攻击 | StegaNeRF | WateRF | 3D-GSW |
|---|---|---|---|
| 无攻击 | 93.15 | 93.42 | 97.37 |
| 高斯噪声 | 54.48 | 73.85 | ~90+ |
| JPEG压缩 | 73.28 | 80.58 | ~95+ |
| 裁剪40% | 75.87 | 82.32 | ~90+ |
模型攻击鲁棒性(32-bit)¶
| 攻击 | StegaNeRF | WateRF | 3D-GSW |
|---|---|---|---|
| 移除20%高斯 | 60.24 | 80.58 | 87.99 |
| 克隆20%高斯 | 75.56 | 82.32 | 89.87 |
| 参数加噪 | 61.82 | 73.85 | ~90+ |
效率(Mip-NeRF 360, 64-bit)¶
| 方法 | 嵌入时间 | FPS | 存储 |
|---|---|---|---|
| WateRF+3D-GS | 6h 47m | 56.65 | 833.89MB |
| StegaNeRF+3D-GS | 58h 56m | 56.65 | 833.89MB |
| 3D-GSW | 21m 03s | 72.68 | 640.21MB |
消融实验要点¶
- FGD:移除后bit accuracy下降~3%,加入后还提升了FPS(+28% on Mip-NeRF 360)和减少存储
- 梯度掩码:去掉后PSNR从35.08降到33.26(-1.82),渲染质量显著下降
- 小波子带损失:去掉后PSNR从35.08降到33.56(-1.52),高频细节退化
- 全部去掉:PSNR降到29.96,质量崩溃
- DWT level 2最优:level 1/3/4的bit accuracy或PSNR均不如level 2
亮点¶
- 频率引导的高斯管理:FGD同时解决了三个问题——减少冗余提升效率、增强水印鲁棒性、通过高频分裂保持渲染质量,一箭三雕
- 指数衰减梯度掩码:巧妙处理3D-GS参数中的零值问题(普通掩码会除以零),同时保证参数变化最小化
- 兼顾模型攻击和图像攻击:首次系统评估了对3D-GS模型本身的攻击(移除/克隆高斯、参数加噪),比仅考虑图像后处理的方法更全面
- 效率优势巨大:嵌入时间从数小时降到21分钟,FPS提升28%,存储减少23%
局限性 / 可改进方向¶
- 预训练解码器需要为每种bit长度单独训练(但只需训练一次)
- 对3D-GS压缩攻击不鲁棒——所有方法在压缩后都丢失水印(bit accuracy降到~50%),这是辐射场水印研究的共同挑战
- 仅嵌入二进制消息,未扩展到嵌入图像等多模态信息
- 依赖固定的HiDDeN架构作为解码器
与相关工作的对比¶
- WateRF:NeRF水印SOTA,在DWT低频嵌入消息。3D-GSW继承了DWT思路但针对3D-GS特性增加了FGD和指数梯度掩码,渲染质量高4.6 dB PSNR,bit accuracy高4%
- StegaNeRF:隐写术方法,优先不可见性而非鲁棒性。应用于3D-GS后对各种攻击极脆弱,且嵌入时间极长(59小时 vs 21分钟)
- CopyRNeRF:NeRF水印先驱,仅支持隐式NeRF,无法处理显式3D-GS
启发与关联¶
- FGD的"先清理冗余再做任务"的策略可推广到3D-GS的其他fine-tuning场景(如风格迁移、编辑)
- 频率域分析3D-GS贡献的思路值得在3D-GS压缩/剪枝研究中借鉴
评分¶
- 新颖性: ⭐⭐⭐⭐ 首个专为3D-GS设计的水印方法,FGD设计有创意
- 实验充分度: ⭐⭐⭐⭐⭐ 三数据集+三种bit长度+图像&模型攻击+效率分析+丰富消融+失败案例+4D扩展
- 写作质量: ⭐⭐⭐⭐ 方法描述清晰,公式推导完整
- 价值: ⭐⭐⭐⭐ 解决了3D-GS商用的版权保护实际需求,但压缩攻击的软肋限制了部分应用