3D Gaussian Inpainting with Depth-Guided Cross-View Consistency¶
会议: CVPR 2025
arXiv: 2502.11801
代码: https://peterjohnsonhuang.github.io/3dgic-pages
领域: 3D视觉 / 场景编辑 / 3D Gaussian Splatting
关键词: 3D Inpainting, Object Removal, Cross-View Consistency, Depth-Guided Mask, 3DGS
一句话总结¶
提出3DGIC,通过深度引导的跨视角一致修复框架实现3D高斯场景中的物体移除与修补——利用渲染深度图从其他视角发现被掩码区域中的可见背景像素来精化修补掩码,再用参考视角的2D修补结果通过3D投影约束其他视角的一致性,在SPIn-NeRF数据集上FID和LPIPS全面超越现有方法。
背景与动机¶
3D场景修补(物体移除后填补空洞)是VR/AR编辑的核心需求。主要挑战在于跨视角一致性——对多视角图像分别做2D修补会产生不一致内容。现有方法面临两个问题:(1) 直接用SAM生成的物体掩码作为修补掩码,但掩码区域中可能包含从其他视角可见的背景像素,将这些已知区域交给2D修补器会引入不一致内容;(2) 对每个视角独立做2D修补,缺少视角间的几何约束。
核心问题¶
如何在3D高斯场景中实现物体移除后的高保真、多视角一致的3D修补?关键挑战:(1) 精确确定每个视角中"真正需要修补"的区域(排除从其他视角可间接观察到的背景);(2) 确保修补内容在所有视角间几何一致。
方法详解¶
整体框架¶
两阶段流程: 1. 深度引导修补掩码推断:利用渲染深度图将各视角的背景像素投影到其他视角,逐步缩小修补掩码,使之仅包含所有视角都不可见的区域 2. 修补引导的3DGS精化:选择修补掩码最大的视角作为参考视角,做2D修补后通过3D投影为其他视角提供跨视角一致的监督
关键设计¶
-
深度引导修补掩码推断:对视角\(\xi_1\)的掩码\(M_1\),将其他视角\(\xi_2\)的背景像素\(I_2^B\)通过深度\(D_2\)投影到3D空间,再投影回\(\xi_1\)。落在\(M_1\)内的像素说明“这个区域从\(\xi_2\)可以看到背景”,直接从掩码中移除。遍历所有视角后,最终的精化掩码\(M_1'\)仅包含所有视角都看不到的真正遮挡区域。这是一个确定性过程,不需要学习。投影时使用z-buffer检查避免被遮挡点的误投影。
-
参考视角选择:选择精化后掩码最大的视角作为参考——因为该视角的2D修补能覆盖最大的3D空间,为其他视角提供最多的一致性信息。
-
跨视角一致性损失:参考视角的2D修补结果通过深度投影到3D点云\(P_1\),再投影回其他视角\(\xi_k\)作为修补区域的监督。用LPIPS感知损失度量渲染图像与投影结果的差异:\(\mathcal{L}_{cross} = \sum_k \mathcal{L}_{LPIPS}(I_k', I_k^P)\)
-
渲染+深度联合修补:不仅修补RGB图像,还同步修补深度图。使用LDM时将RGB和深度拼接在同一张1024×1024图中同时修补,确保几何和纹理一致。
-
骨干3DGS:结合Gaussian Grouping(语义分割,自动生成物体掩码)和Relightable Gaussians(更可靠的深度估计)。
损失函数 / 训练策略¶
$\(\mathcal{L}_{inpaint} = \mathcal{L}_{rgb} + \mathcal{L}_{depth} + \mathcal{L}_{cross}\)$ - \(\mathcal{L}_{rgb} = \|I_1' - I_1^{In}\|_1 + \mathcal{L}_{SSIM}\) - \(\mathcal{L}_{depth} = \|D_1' - D_1^{In}\|_1\) - 每500迭代重新做2D修补(使用渐进式DDIM步数减少策略) - RTX 3090,5000迭代/场景,PyTorch
实验关键数据¶
SPIn-NeRF数据集¶
| 方法 | 表示 | 2D修补器 | FID↓ | m-FID↓ | LPIPS↓ | m-LPIPS↓ |
|---|---|---|---|---|---|---|
| SPIn-NeRF | NeRF | LAMA | 49.6 | 153.4 | 0.31 | 0.053 |
| MVIP-NeRF | NeRF | LDM | 50.5 | 173.4 | 0.31 | 0.050 |
| Gaussian Grouping | 3DGS | LAMA | 44.7 | 132.5 | 0.30 | 0.037 |
| MALD-NeRF | NeRF | LDM | 44.9 | 113.5 | 0.26 | 0.031 |
| GScream | 3DGS | LDM | 38.6 | 101.6 | 0.28 | 0.033 |
| 3DGIC (LAMA) | 3DGS | LAMA | 41.7 | 102.4 | 0.28 | 0.032 |
| 3DGIC (LDM) | 3DGS | LDM | 36.4 | 96.3 | 0.26 | 0.028 |
LDM版本在所有4个指标上取得最优。LAMA版本(非扩散)也超过了使用LDM的MVIP-NeRF和MALD-NeRF。
消融实验(Bear场景)¶
- 仅原始掩码+无跨视角一致性→模糊、不一致
- 原始掩码+跨视角一致性→保真度提高但修改了可见背景
- 深度引导掩码+无跨视角一致性→背景保留好但修补区域模糊
- 完整方法→背景保留且修补一致
定性结果¶
- 在SPIn-NeRF的10个场景上保持了可见背景细节(如桌上的插座),修补区域跨视角一致
- 在360°场景(Figurines, Counter, Kitchen, Bear)上也表现良好,处理了大范围视角变化
- 掩码精化后平均掩码面积减少30-60%,说明大量"需要修补"的区域实际从其他视角可见
效率分析¶
- 掩码精化阶段仅需几何运算,耗时可忽略(<1s/场景)
- 整体优化5000迭代在RTX 3090上约15分钟/场景,与GScream相当
亮点¶
- 掩码精化的核心洞察:SAM生成的物体掩码包含了其他视角可见的背景——用深度投影将这些区域"救回",让修补器只处理真正需要填补的区域,从源头提升一致性
- 确定性+学习的组合:掩码精化是确定性几何操作(无需训练),3DGS优化是学习过程——两者互补
- 与2D修补器解耦:框架兼容LAMA(非扩散)和LDM(扩散)等不同修补器,即使用较弱的修补器也能超越强baseline
- 深度联合修补:同时修补RGB和深度制确保几何一致性
局限性 / 可改进方向¶
- 依赖渲染深度图的准确性——稀疏视角下深度不可靠,掩码精化失效
- SAM对小物体的分割可能不准确
- 参考视角选择为启发式(最大掩码),未考虑修补难度或纹理复杂度
- 每500步重新做2D修补增加了计算开销(每次DDIM采样~10s)
- 多物体同时移除场景未讨论——掩码重叠时深度投影可能出现歧义
- 室外大规模场景的深度估计噪声更大,掩码精化效果待验证
- 没有用户研究(perceptual quality)评估
与相关工作的对比¶
- GScream:用参考视角深度预测+跨视角特征一致性。3DGIC额外做掩码精化,不修改可见背景
- MALD-NeRF:用LoRA微调扩散模型做场景特定修补。3DGIC不需要微调扩散模型,更轻量
- Gaussian Grouping:用"black blurry hole"提示GroundedSAM检测修补区域,常误检。3DGIC直接用深度投影确定性精化
- SPIn-NeRF:需要人工标注掩码。3DGIC全自动(用SAM+深度引导)
启发与关联¶
- 深度引导掩码精化的思路可推广到其他需要跨视角一致编辑的任务(如texture editing、relighting)
- "从其他视角恢复被遮挡区域"的确定性过程类似于传统的image-based rendering- 将RGB和深度拼接在同一张图中联合修补的做法简单但有效,避免了额外的深度修补模型
- 掩码精化本质是跨视角信息融合的前处理,可拓展到video inpainting中用帧间光流做类似操作
评分¶
- 新颖性: ⭐⭐⭐⭐ 深度引导掩码精化这个insight简单但有效,跨视角投影约束的设计合理
- 实验充分度: ⭐⭐⭐⭐ SPIn-NeRF+多个360°场景+消融+定性对比
- 写作质量: ⭐⭐⭐⭐ 问题定义清晰,方法步骤图示直观
- 价值: ⭐⭐⭐⭐ 3D场景物体移除是实用需求,掩码精化的思路有通用性