人工智能咨询培训老师叶梓 转载标明出处
尽管在3D重建和生成方面取得了显著进展,但3D编辑仍然是一个较少研究的领域。来自伦敦大学学院、Alan Turing 研究所和 Meta 的研究团队提出了一种名为ReplaceAnything3D(RAM3D)的新型文本引导的3D场景编辑方法,该方法能够实现场景中特定对象的替换。
RAM3D模型通过自然语言提示从用户那里替换场景中当前的对象为新内容。比如戴上VR头盔并尝试重新设计自己的客厅。用户可以替换当前的沙发为时尚的新设计,添加一些郁郁葱葱的绿色植物,或移除杂物以创造更宽敞的感觉。该方法包括四个关键步骤:1)使用LangSAM和文本提示检测并分割要擦除的对象。2)为了擦除对象,提出了一种文本引导的3D修复技术来填充被移除对象遮挡的背景区域。3)使用类似的文本引导的3D修复技术生成与输入文本描述相匹配的新对象。主要是为了使对象的质量最小化。4)将新生成的对象无缝合成到训练视图中的修复背景中,以获得编辑后的3D场景的一致多视图图像。然后可以训练NeRF [26]以获得编辑场景的3D表示,用于新视角合成。
![](https://i-blog.csdnimg.cn/direct/08fd103d419d4cd9ab78640092940297.png)
方法
我们首先需要了解其训练数据集的构成。这些数据集由一系列图像组成,每张图像都对应一个特定的相机视点。另外每个图像都伴随一个文本提示,这个文本提示描述了用户希望在场景中替换的对象。这个过程的目标是修改这些图像中的被掩码对象,使其与另一个文本提示匹配,这个提示描述了用户希望替换成的新对象。这样做的目的是确保在所有视图中,替换后的对象都能与场景的其他部分保持一致性。
![](https://i-blog.csdnimg.cn/direct/f1c9eef26f9e4e3bb97658a37a832610.png)
整个编辑过程分为两个主要阶段:擦除阶段和替换阶段。在擦除阶段,系统首先需要完全移除被掩码的对象,并在背景中填充被遮挡的区域。这一步骤是通过优化RAM3D模型的参数来实现的,这些参数隐式地表示了修复后的背景场景。为了进行这一阶段的训练,系统会使用LangSAM技术,这是一种文本引导的图像分割方法,它可以根据文本提示检测并分割出需要擦除的对象。一旦检测到对象,就会生成一个掩码,然后扩展这个掩码以形成一个光晕区域,这个区域包含了原始掩码周围的像素。
在每个训练步骤中,系统会随机选择一张图像、相应的相机视点、掩码和光晕区域,并将这些作为输入提供给RAM3D模型。模型的任务是在这些输入的基础上,计算出训练损失。具体来说,RAM3D模型会在从相机视点发出的射线上渲染出隐式3D表示,这些射线穿过掩码和光晕区域的可见像素。这样做的目的是生成一个修复后的背景场景,这个场景在视觉上与原始场景的背景部分相匹配。
为了确保生成的背景场景尽可能接近真实,使用了多种损失函数来指导训练过程。其中包括HiFA损失,这是一种基于潜在扩散模型的损失,用于优化3D场景的参数。此外,还有重建损失和VGG特征损失,这些损失函数确保生成的图像在视觉上与原始图像的背景部分相匹配。深度正则化损失则用于确保场景的深度信息与预期一致。
在替换阶段,系统的目标是将新对象添加到修复的场景中。为此,RAM3D模型会优化前景神经场的参数,以渲染新对象,并将其与背景合成。这一过程确保新对象不仅在视觉上与背景融合,而且在所有视图中都保持一致性。
另外为了处理内存限制,提出了一种名为BubbleNeRF的表示方法。这种方法仅模拟受编辑操作影响的场景部分,而不是整个场景。这使得RAM3D模型能够更高效地处理局部场景编辑,而不需要对整个场景进行重新渲染。
通过这种方法,RAM3D模型能够学习如何在保持场景一致性的同时,有效地擦除并替换场景中的对象。这种方法不仅适用于简单的对象替换,还能够处理更复杂的场景编辑任务,如添加新对象或完全移除对象。最终,这种方法为3D场景编辑提供了一种强大且灵活的工具,使得用户可以根据需要轻松地修改3D场景。
擦除阶段
在ReplaceAnything3D模型(RAM3D)的实现中,擦除阶段是一个关键步骤,它负责从场景中移除用户指定的对象,并以一种在多个视图中都能保持一致性的方式修复背景区域。这个阶段的目标是确保在移除对象后,场景的其余部分看起来仍然自然和连贯。
![](https://i-blog.csdnimg.cn/direct/1f87a8713107469bb9234b25300812a1.png)
为了实现这一目标,模型首先需要优化一组参数,这些参数被称为RAM3D参数。这些参数隐式地表示了修复后的背景场景,即在移除指定对象后,背景应该呈现的样子。优化这些参数是为了让模型学会如何填充被移除对象所遮挡的区域,同时保持场景的整体一致性。
在预处理步骤中,模型使用LangSAM技术和文本提示来获取数据集中每幅图像的掩码
。掩码定义了需要被移除的对象在图像中的区域。为了更好地处理对象周围的区域,模型还会扩展这些掩码,生成光晕区域
,这些区域覆盖了原始掩码周围的像素。
在训练过程中,模型会在每个步骤中随机选择一张图像 、相应的相机视点
、掩码
和光晕区域
,并将它们作为输入。这些输入被用来计算训练损失,指导模型如何更好地进行背景修复。RAM3D模型会在从相机视点 v 发出的射线上渲染出隐式3D表示
,这些射线穿过掩码 m 和光晕区域 ℎ(也就是BubbleNeRF区域)的可见像素。
为了确保修复的背景在视觉上与原始场景相匹配,模型使用了一系列损失函数。这些损失函数包括HiFA损失 ,它基于潜在扩散模型来优化3D场景的参数。重建损失
确保模型输出的图像与原始图像的背景部分相匹配。VGG特征损失
使用预训练的VGG-16网络的特征来评估模型输出和原始图像之间的一致性。深度正则化损失
则确保模型输出的深度信息与预期一致。
替换阶段
在ReplaceAnything3D模型(RAM3D)的替换阶段,核心任务是将用户通过文本提示 描述的新对象添加到已经修复的背景场景中。这一阶段的目标是确保新添加的对象不仅在视觉上与背景融合,而且在多个视图中都能保持一致性。
为了实现这一目标,模型需要优化一组新的参数,即前景神经场 。这些参数负责渲染新对象的图像
。在渲染过程中,RAM3D模型会体积渲染掩码像素,这些像素定义了新对象在场景中的区域。通过这种方式,模型能够生成新对象的外观,使其看起来像是自然地存在于场景中。
在合成新对象和背景时,模型采用了一种特殊的技术来增强前景和背景的分离。具体来说,在每 k 个训练步骤中,模型会将背景图像 替换为一个具有随机采样RGB强度的常数值RGB张量。这种随机背景增强的策略有助于引导模型的蒸馏过程,确保
只包含新对象的密度信息,而不是背景的信息。这有助于避免新对象与背景混合在一起,从而提高合成效果的自然性和清晰度。
在计算损失函数时,模型使用了 HiFA 损失 ,这是一种基于潜在扩散模型的损失函数,用于优化3D场景的参数。在替换阶段,损失函数的条件是
与文本提示
相匹配,确保新对象的生成符合用户的描述。
![](https://i-blog.csdnimg.cn/direct/b98462340d8f4c87825e3b2ce73d8401.png)
训练最终的NeRF
在替换阶段完成后,模型会进入训练最终的NeRF阶段。在这个阶段,模型会利用在替换阶段生成的新对象和修复的背景区域,创建一个新的多视图数据集。这个数据集包含了编辑后的场景的多个视图,可以用于训练新的NeRF模型。通过这种方式,模型能够学习如何从新的视角合成编辑后的场景,从而为用户提供一个完整的3D场景表示。
训练新的NeRF模型时,可以选择任何适合的变体和框架。这个过程的目的是创建一个能够从不同视角渲染编辑场景的3D表示。这样,用户不仅可以在原始视图中查看编辑后的场景,还可以从新的视角探索场景,增加了场景的互动性和沉浸感。
结果
在定性比较中,研究人员将RAM3D与其他几种方法进行了对比,这些比较主要集中在几个关键的视觉效果上。
Instruct-NeRF2NeRF的局限性:这种方法在处理新对象与原对象差异较大的情况下表现不佳。例如,当尝试将一个复杂的中心装饰品替换为一个菠萝或棋子时,Instruct-NeRF2NeRF无法很好地保持场景的整体结构和细节。这种局限性导致了在进行局部编辑时,场景的整体外观可能会发生显著变化,这并不是用户所期望的。
Blended-NeRF的局限性:尽管Blended-NeRF专注于合成全新的对象,但它并没有考虑到新对象与周围场景的融合。这导致合成的对象在视觉上可能显得过于饱和,与场景的其他部分不协调。这种不协调可能会影响用户对场景整体美观度的感知。
尽管如此,RAM3D在处理更复杂的光照效果,如前景和背景对象之间的阴影时,仍然能够取得与这些方法相媲美的结果。这表明RAM3D在处理复杂光照和细节方面具有优势。
![](https://i-blog.csdnimg.cn/direct/5bc03192a3f44da5bc27053635ff6be8.png)
尽管3D场景编辑是一个高度主观的任务,研究人员还是提供了一些定量的指标来评估不同方法的性能。这些指标包括CLIP文本-图像方向相似度和CLIP方向一致性。
CLIP文本-图像方向相似度:这个指标衡量的是生成的图像与文本提示在语义上的相似度。在与Instruct-NeRF2NeRF和Blended-NeRF的比较中,RAM3D在这一指标上得分最高。这表明RAM3D生成的图像更符合用户的文本描述,能够更好地捕捉文本提示中的语义信息。
CLIP方向一致性:这个指标衡量的是生成图像在不同视角下的一致性。尽管Blended-NeRF直接优化了图像与生成对象的CLIP嵌入与目标文本提示之间的相似度,但它在这一指标上的得分仍然低于RAM3D。这可能是因为Blended-NeRF在合成新对象时,没有充分考虑到场景的整体一致性。
Instruct-NeRF2NeRF的结果:尽管Instruct-NeRF2NeRF在某些编辑任务上表现不佳,但它在方向一致性得分上却高于RAM3D。这可能是因为Instruct-NeRF2NeRF在完全失败的编辑任务中,仍然能够保持一定的一致性,尽管这种一致性是以牺牲细节和真实感为代价的。
在ReplaceAnything3D的应用范畴内,对象移除和添加是两个重要的功能,它们扩展了模型的实用性,超越了单纯的对象替换。在进行对象添加之前,模型能够执行对象移除和背景修复的操作。研究人员展示了其擦除阶段的有效性。这些比较主要通过定性分析来进行,展示了模型在处理不同场景时的能力。
![](https://i-blog.csdnimg.cn/direct/1be89548945f4c56b5609c648491258c.png)
模型还允许用户根据自己的需求添加新的对象到3D场景中。如图9所示,这些新对象不仅能够自然地融入场景,还能保持现实的光照和阴影效果,这增强了场景的真实感和沉浸感。这种能力使得ReplaceAnything3D不仅限于编辑现有场景,还能够根据用户的创意和需求,创造出全新的场景内容。
![](https://i-blog.csdnimg.cn/direct/85f0dd498eb14ec0a886568068111a39.png)
ReplaceAnything3D的一个显著特点是它的个性化编辑功能。除了使用文本提示来引导场景编辑,该模型还支持用户通过添加或替换自己的资产来个性化3D场景。这一过程的第一步是使用Dreambooth技术对目标对象的多张图像进行微调,以此来预训练修复扩散模型。微调模型使得模型能够更好地理解和生成用户特定的对象。
![](https://i-blog.csdnimg.cn/direct/9a6b0a9cddff44ca8e9154aaa3a2c0c0.png)
完成微调后,这个模型被集成到RAM3D中,从而允许用户在3D场景中进行对象替换。如图10所示,微调后的模型能够精确地将目标对象添加或替换到新的场景中。这种个性化编辑的能力为用户提供了极大的灵活性,使他们能够在3D场景中实现更加定制化的视觉表达。
在ReplaceAnything3D模型的消融研究中,研究人员通过对比不同的模型变体来深入理解各个组件的贡献。
组合前景/背景结构:研究人员首先探讨了使用单一NeRF模型同时模拟背景和新对象的方法。这种模型没有将擦除和替换阶段分开处理,而是试图在一个统一的框架中完成所有任务。然而,这种方法在背景重建质量上存在不足,导致了比采用分离阶段的RAM3D版本更低的重建质量。这种对比表明,分离的擦除和替换阶段对于生成高质量的场景至关重要。
背景增强训练策略:另一项重要的消融研究是关于背景增强训练策略的效果。通过使用随机背景增强,模型能够更好地分离前景对象和背景。如果没有这种增强,模型在分离前景和背景的alpha图时会遇到问题,导致背景模糊和出现视觉上不连贯的浮动物。这一发现强调了背景增强在生成清晰、一致场景中的重要性。
![](https://i-blog.csdnimg.cn/direct/0047aec6b084422b94774ed899b80d25.png)
展示了前景/背景结构和背景增强训练策略的优势
尽管该模型在3D场景编辑中表现出色,但其擦除和替换的方法可能会移除原始对象的重要结构信息,限制了其在仅修改对象属性(如外观或几何形状)时的应用。未来的改进方向包括扩展到其他3D表示形式,如3D高斯斑点,以提高编辑的灵活性和效率;解耦几何和外观的表示,实现更细粒度的控制;解决多面问题,采用提示去偏见方法或在多视图数据集上预训练的模型;以及开发摊销模型以加速对象替换过程。这些改进将进一步提升模型的实用性和响应速度,使其成为3D场景编辑的强大工具。
论文链接:https://arxiv.org/abs/2401.17895