ECCV`24 | 比现有方法快50倍!新加坡国立开源FlashSplat:简单&全局最优3D-GS分割求解器
文章链接:https://arxiv.org/pdf/2409.08270
项目链接:https://github.com/florinshen/FlashSplat
亮点直击
- 引入了一种全局最优的 3D Gaussian Splatting分割求解器,大大提高了将 2D 分割结果提升到 3D 空间的效率。
- 通过线性化简化了 3DGS 分割的过程,将 2D 到 3D 的分割任务转化为线性整数优化问题。该方法对二值分割和场景分割均有效。
- 在优化中引入了背景偏置,展示了在 3D 分割中对噪声的优越鲁棒性,证明了该方法在各种场景分割中的鲁棒性和高效性。
- 本文的方法具有显著的优化速度,能在 30 秒内完成整个过程,比现有方法快约 50 倍,同时确保给定 2D masks的全局最优性。
- 广泛的实验验证了本文方法在后续任务中的优越性,包括物体移除和修复,突显了其在 3D 数据处理和应用中的巨大潜力。
总结速览
解决的问题
- 现有方法在从2D mask中精确分割3D Gaussian Splatting(3D Gaussian Splatting, 3D-GS)时效率低下,通常依赖于迭代梯度下降法来给每个高斯分配一个唯一的标签,导致冗长的优化和次优解,效果欠佳。
提出的方案
- 提出了一种简单且全局最优的3D-GS分割求解器,通过线性规划的方式闭式求解最优标签分配。
- 核心思路在于,利用重建的3D-GS场景,2D mask的渲染可以视为与每个高斯标签的线性函数。
应用的技术
- 利用线性规划技术来解决标签分配问题,避免了迭代优化。
- 通过单步优化实现分割,并结合alpha混合特性。
- 在目标函数中加入背景偏置,增强抗噪性。
达到的效果
- 优化过程仅需30秒,比现有最优方法快50倍。
- 实验表明该方法在分割多种场景时高效、鲁棒,并在后续的任务如物体移除和修复中表现优越。
方法
本节首先深入探讨了3D Gaussian Splatting(3D GS)的渲染过程,重点关注基于块的光栅化和alpha混合。接着描述了如何将此过程表述为整数线性规划 (ILP) 优化,用于3DGS的分割,并证明该问题可以通过闭式形式求解。鉴于2D mask通常带有噪声,引入了一个软化的最优分配来减轻这些噪声影响。除了二值分割之外,还扩展了该方法以涵盖场景分割,从而实现3D场景中所有物体的分割。最后,提出了一种基于深度信息的2D mask渲染方法,将3D分割结果从新视角投影到2D mask上。
初步:3D Gaussian Splatting (3DGS) 的光栅化
将二值分割表述为整数线性规划
形式上,分割问题可以表述为一个具有平均绝对误差的整数线性规划 (LP) 优化:
从二值分割到场景分割
基于深度引导的新视角mask渲染
实验
数据准备
数据集。为了评估本文方法的有效性,从多个来源收集了3D场景数据:MIP-360 数据集、T&T 数据集、LLFF 数据集、Instruct-NeRF2NeRF 和 LERF 数据集,这些数据集用于定性分析。为了进行定量分析,使用了 NVOS 数据集。
2D mask生成与关联。在实验设置中,使用了 Segment Anything Models (SAM)来提取mask,因为 SAM 的分割输出在本质上是不依赖于语义的。在我们的框架中,需要进一步将这些2D mask进行关联。本文的方法分为两种不同的策略,分别针对二值分割和场景分割。
对于二值分割,其目标是隔离单个前景实体,我们首先在单个参考视图上标记点提示。这些点提示通过参考视图的相机姿态投影回3D空间,以找到其最近的具有最小正深度的3D高斯点。随后,这些点提示被投影到其他视图中,通过投影其对应的3D高斯点的中心来传播。利用这些关联的点提示,SAM 独立生成每个视图的二值mask。
对于场景分割,本文的方法首先使用 SAM 为单独视图生成实例mask。为了在3D场景中为每个2D物体分配唯一的ID,将多个视图视作视频序列。利用zero-shot 视频跟踪器,确保在不同视点间一致地关联和传播物体。
实施细节
3D 分割结果
下图 4 展示了二值和场景 3D 分割的结果。第一行展示了来自 LERF 数据集 的 Figurines 场景,第二行展示了来自 MIP-360 数据集 的 Counter 场景。在这两个场景中,应用了场景分割方法,为每个场景渲染了 2 个视图的 5 个分割对象(在真值图像中圈出),展示了本文的方法在使用 SAM 预测的实例mask进行场景分割的能力。此外,第三、第四和第五行展示了二值分割结果,其中第三行展示了来自 LLFF 数据集 的 Horns 场景,第四行展示了来自 T&T 数据集 的 Truck 场景,第五行展示了来自 MIP-360 数据集 的 Kitchen 场景。两个视图的分割对象被渲染,显示了本文方法在分割 3D 对象方面的能力。
对象移除
对象修复
在 3D 对象移除之后,对象修复旨在修正未观测区域的伪影,确保 3D 场景内的视图一致性。首先,在移除后渲染视图,并使用 Grounding-DINO识别每个视图中的伪影区域,这些区域通过视频追踪器在视图之间进行跟踪。然后,使用预训练的 2D 修复模型 生成修复的 2D 视图。随后,通过在原始对象位置附近引入 20 万个新的高斯来调整 3DGS 参数,同时保持背景高斯不变。微调过程中,使用物体mask外的 L1 损失来最小化背景影响,并在修复mask内使用 LPIPS 损失来确保场景的自然性和一致性。在下图 5 中展示了对象修复的结果,为每个场景渲染了三个视图。对象修复后,噪声和孔洞被减少,展示了本文的方法可以有效地将前景与背景在 3D 分割中分离开来。
定量比较
计算成本
本文对 FlashSplat 的计算效率与之前的 3DGS 分割方法进行比较,特别是 SAGA 和 Gaussian Grouping。在评估过程中,使用了 LERF 数据集 中的 Figurines 场景,并在单个 NVIDIA A6000 GPU 上进行测试。基线方法需要通过 30,000 次迭代的梯度下降优化,将 2D mask转化为与每个 3D 高斯相关的对象特征,从而导致显著的额外训练时间来优化 3D 场景。相比之下,本文的方法仅需计算集合 {Ai}e,这一过程大约需时 26 秒,使其速度大约比基线快 50 倍。对于单个 3D 对象的分割,这些基线方法需要进行网络前向传播,而 FlashSplat 通过 arg max 高效地确定最优分配,仅需 0.4 毫秒。此外,对 GPU 内存使用的分析显示,我们的峰值内存消耗仅为之前方法 SAGA的一半。
消融研究
噪声减少的效果。为了进一步阐明之前提到的 2D mask中的噪声,下图 6 的左列中提供了由 SAM 生成的 2D mask的可视化结果,涵盖了两个场景。此外,还在相应的视图中渲染了 3D 分割后的对象mask,显示了提供的 2D mask中的断裂区域已得到修复。这证明了本文的方法在生成 3D 分割时对 2D mask噪声的鲁棒性。
3D Segmentation with Fewer 2D Masks
结论
本文引入了一种针对 2D mask的 3D Gaussian Splatting分割的最优求解器,显著提升了将 2D 分割提升到 3D 空间的准确性和效率。通过将 3D-GS 中的 alpha 组合分解为每个高斯的总体贡献,这种求解器只需要单步优化来获得最优分配。它不仅将优化过程加快了约 50 倍,而且通过简单的背景偏差增强了对噪声的鲁棒性。此外,这种方法还扩展到场景分割,并能够在新视图上渲染mask。大量实验表明,该方法在场景分割任务中表现优越,包括对象移除和修复。我们希望这项工作能够促进未来 3D 场景的理解和操作。
本文转自 AI生成未来 ,作者:Qiuhong Shen等