Image Sculpting: Precise Object Editing with 3D Geometry Control

通过结合3D几何和图形工具来编辑2D图像。Image Sculpting 将 2D 对象转换为 3D,直接在3D空间中编辑目标,然后高保真的渲染为2D图像。

Prob.Def

input: one image,manipulation of the objects and their orientations in 3D
space

output:a high-quality edited 2D image

背景和相关工作

  1. 生成图像编辑:现有方法仅限于 2D 空间,通常依赖于文本指令:Prompt-to-Prompt [24]、Plug-and-Play [76]、InstructPix2Pix [10]、Imagic [34] 和 Object 3DIT [47] 然而,更具体的指令,如“将物体抬起 5 厘米并旋转 42 度”,不太可能成功,因为当前的生成模型无法仅通过文本提示来满足此类详细请求。

  2. 基于 2D 的交互式生成图像编辑方法,ControlNet [87] 包含额外的条件输入,例如深度 [61]、姿态 [11] 和边缘 [83],用于可控生成。为了实现更直观的交互,DragGAN [54] 使用户能够使用 GAN 在对象上拖动控制点,并且类似的技术已应用于扩散模型 [39, 70]。然而,这些方法大多局限于 2D,并且在需要更复杂的平面外转换的任务中面临挑战。EG3D [12] 和 StyleNeRF [21] 等 3D 感知生成模型已经探索了这一方向。OBJect-3DIT [47] 是我们论文的基线,它研究了使用语言指令的 3D 感知编辑。如 DragGAN [54]、FreeDrag [39] 和 DragDiffusion [70],展示了通过潜在空间中的过渡来改变对象部分的能力。尽管如此,它们也有其局限性:1) 它们可以完成基本的变形,但结果并不完全可预测,通常会导致结果与用户的意图不一致;2) 这些潜在变换在 2D 特征空间内运行这本身就限制了他们表示 3D 变换和准确处理遮挡的能力;3) 他们缺乏物理感知,这使得纳入外部约束(如骨骼结构)变得复杂。

  3. 形状变形:

    1. 空间变形 较早且仍然广泛使用的方法是将体积翘曲函数 f : R→ R 应用于 3D 域的所有点 [66]。这种方法可以应用于显式(三角形或多边形网格)或隐式表示。可以使用晶格 [66]、笼子上的顶点 [31] 或神经场 [17] 来参数化该映射。这些方法的局限性是它们不知道物体的形状,这使得它们在复杂的铰接物体上使用更具挑战性 [9]

    2. 形状感知变形 形状感知变形提供了一组链接到对象曲面的控件。在计算机辅助设计 (CAD) 中,一小部分控制点使用样条补丁定义光滑表面 [18]。尽管具有灵活性和质量,但从 3D 模型或 NeRF 中提取样条补丁是一个具有挑战性和开放性的问题 [7]。基于偏微分方程 (PDE) 的方法模拟物体的变形,将其表示为体积可变形的固体 [72] 或薄橡胶壳 [75]。通过移动表面上选择的手柄 [8] 来施加引导变形的力,使其使用直观,并且需要最少的用户交互。

    3. 线性混合蒙皮最流行的变形方法是线性混合蒙皮 [30],它将空间变形函数定义为一组由形状感知标量函数加权的仿射变换的混合平均值,通常使用基于表面上的 PDE 解 [29] 或手动编辑的方法计算。这种方法提供了完全的控制和灵活性,因为仿射变换可以附加到点、笼的顶点或骨架中的线段 [6]。

    4. 我们的方法:我们可以使用这些算法中的任何一种来精确控制形状变形,从而精确控制渲染的图像。

步骤:

  1. 首先通过反渲染过程将输入图像转换为纹理化的3D模型。采用了零样本单图像重建模型 (Zero-1-to3 [41])

  2. 该模型通过创建骨架和计算蒙皮权重来为交互变形做准备。

  3. 用户可以通过修改骨架来对模型进行变形,从而得到初始的粗略图像。 such as As-Rigid-As-Possible(ARAP) [75] and linear-based skinning [45]

  4. 开发了一种从粗到细的增强方法:使用改进的特征注入技术为了精化编辑后的图像,将粗略的渲染Ic转化为噪声xcT。然后将自注意力图Act和特征图fct从初始图像去噪过程中注入到增强图像去噪步骤中。

方法

  1. 执行 3D 重建以获得其 3D 模型

    1. 使用 SAM [35] 从输入图像中分割选定的对象。在此基础上,我们使用分数蒸馏采样 (SDS) [58] 训练 NeRF。

    2. NeRF 到 3D 模型我们使用 threestudio [22] 中的实现将 NeRF 体积转换为网格。

  2. 获得 3D 模型后,用户可以手动构建骨骼,并通过旋转骨骼进行交互式实现目标姿势。网格变形会影响对象的顶点位置,但不会影响用于纹理映射的 UV 坐标;因此此过程会在对象变形后使映射在对象上的纹理变形。

  3. 从粗到细的生成增强

    1. 研究初步阶段:一种方法是使用主题驱动的个性化技术,如 DreamBooth [64]。它们旨在保留输入中的关键细节,但可能会损害编辑的几何体。或者,可以使用 SDEdit [46] 等图像到图像的转换方法来保留编辑后的几何图形,但这可能会破坏与原始图像的纹理一致性。这种二分法在我们的初步研究中很清楚,如图 4 所示。SDEdit 可以保留几何体,但无法准确复制纹理。另一方面,DreamBooth 产生了高保真输出,但难以有效地保留纹理和几何体。

    2. 我们使用 DreamBooth 在一个输入参考图像上微调扩散模型。为了保持几何结构,我们采用了一种特征和注意力注入技术 [76],该技术最初是为语义布局控制而设计的。此外,我们通过 ControlNet [87] 整合了来自 3D 模型的深度数据。我们发现这种集成对于最大限度地减少增强过程中的不确定性至关重要。

      1. One-shot Dreambooth:使用一些图像微调预先训练的扩散模型,用于主体驱动的生成。最初的 DreamBooth 论文 [64] 已经表明,它能够利用语义类先验来生成对象的新视图,而只给出主体的几个正面图像。在我们的应用程序中,我们只使用一个示例来训练 DreamBooth,即输入图像。

      2. Depth Control使用深度 ControlNet [87] 来保留用户编辑的几何信息。深度图直接从变形的 3D 模型渲染,无需任何单目深度估计。对于背景区域,我们不使用深度图。此深度图用作空间控制信号,指导最终编辑图像中的几何图形生成。

      3. Feature Injection仅仅依靠深度控制是不够的——尽管它可以在一定程度上保留几何体,但它仍然难以进行局部、更细致的编辑,例如捕捉南瓜眼睛的特定形状为了更好地保留几何结构,我们使用特征注入。如图 3 所示,此步骤从粗渲染图像的 DDIM 反转 [74](使用 DreamBooth 微调、深度控制扩散模型)开始,以获得反转的潜在值。在每个去噪步骤中,我们对粗略 任- 的倒置潜伏物进行去噪

典型生态项目

  1. ThreeStudio:提供3D重建和渲染的基础工具,Image Sculpting项目借用了其部分代码。

  2. Zero-1-to-3:用于从单张图像生成3D模型的工具,Image Sculpting使用其进行3D重建。但是文章中不是nerf的方法?

  3. DreamBooth:用于模型微调的开源项目,帮助Image Sculpting实现纹理细节的捕捉。

局限性

作者提出的

  1. 对单视图三维重建质量的依赖。

  2. 网格变形通常需要一些手动作才能进行模型绑定。

  3. 输出分辨率不及工业渲染系统,可以结合超分辨率方法。

  4. 缺少背景灯光的调整,破坏了场景的真实感,可以从集成动态(再)照明技术中获益。

我的问题:

如何绑定骨架和生成weight,然后重新编辑出一个新的模型:其实是通过一个blender进行编辑的