[读论文] Edit One for All: Interactive Batch Image Editing

Abstract

近年来,图像编辑取得了显着进步。随着人工控制的增加,现在可以以多种方式编辑图像; 从在文本中指定要更改的内容,到以基于点的交互式方式直接向上拖动图像的内容。但是,大部分重点仍然是一次编辑单个图像,是否以及如何同时编辑大批量图像仍未得到充分研究。为了最大限度地减少编辑过程中的人工监督,本文提出了一种以 StyleGAN 为媒介的交互式批量图像编辑的新方法。给定用户在示例图像中指定的编辑(例如,使面部正面),我们的方法可以自动将该编辑转移到其他测试年龄,这样无论它们的初始状态(姿势)如何,它们都达到相同的最终状态(例如,都面向正面)。广泛的实验表明,使用我们的方法进行的编辑具有与现有的单个图像编辑方法相似的视觉质量,同时具有更高的视觉一致性并节省大量时间和人力

1. Introduction

paper: [2401.10219] Edit One for All: Interactive Batch Image Editing
code: WisconsinAIVision/edit-one-for-all: ✏️ Edit One for All: Interactive Batch Image Editing (CVPR 2024)

2. Related Work

3. Approach

我们的重点是研究一种图像编辑过程,该过程通过编辑图像的某个属性,使该属性达到期望的状态;例如,将侧面朝向的面部姿态旋转到正面(属性=面部姿态,值=正面)

从这个角度出发,我们解释了我们的批量即时编辑框架,它可以分为两个阶段:

  1. 用户编辑图像 I 0 I_0 I0 (如使用 DragGAN)以获得编辑后的图像 I 0 ′ I^\prime_0 I0 。在 section 3.1 中描述了如何捕捉这种用户编辑 I 0 → I 0 ′ I_0\rightarrow I^\prime_0 I0I0,以便将相同的编辑应用于新图像

  2. 接下来,我们在 section 3.2 中描述了对于任意新图像,如何通过自动调整编辑的强度来应用所建模的编辑,使得该图像中属性的值与 I 0 ′ I^\prime_0 I0 的一致(例如,无论初始姿势如何,任何面部在编辑后都朝向正面)

3.1 Modeling the User Edit

我们从一张图像 I 0 I_0 I0 开始。该图像可以是真实图像或生成图像。无论哪种情况,我们都会在 StyleGAN2 模型 G G G W W W 空间中获得它的潜在表示,使得 I 0 = G ( w 0 ) I_0=G(w_0) I0=G(w0) 。用户借助图像编辑框架(例如 DragGAN 或 InstructPix2Pix)编辑 I 0 I_0 I0 以操作其一个或多个属性。该编辑在 W W W 空间中映射为 w 0 → w 0 ′ w_0\rightarrow w^\prime_0 w0w0 因此,可以恢复得到编辑后的图像

现在,给定用户编辑 I 0 → I 0 ′ I_0\rightarrow I^\prime_0 I0I0 我们希望以一种可以推广到新图像的方式捕捉该编辑;即,应用该编辑将改变新图像中的相同属性。这时,GAN 尤其是 StyleGAN 的一个很有用的特性就派上用场了。已有研究表明,可以在学习的 W W W 空间中发现具有这种属性的方向(使用有监督和无监督的方法)。特别地,可以找到全局一致的方向 Δ w \Delta w Δw。将全局一致方向定义如下:对于任意 w w w,沿 Δ w \Delta w Δw 的移动会:

  1. 改变相同的属性

  2. 变化量相同

为了使用户编辑可以应用于其他图像,我们需要将其捕捉为一个全局一致的方向。表示该编辑的简单方法是在 W W W 空间中用简单的差值来表示: Δ w = w 0 ′ − w 0 \Delta w=w^\prime_0-w_0 Δw=w0w0。然而这并不总是产生相同的变化。因此,我们的目标是通过 W W W 空间中的一个方向来表示 I 0 → I 0 ′ I_0\rightarrow I^\prime_0 I0I0 编辑,使其更好地满足全局一致方向的属性。受到 LARGE 的启发提出一个关于这些方向的数学视角。

Globally consistent direction. 假设 Δ g \Delta g Δg 是这样一个方向。结合一个偏置项 b b b 我们可以定义一个超平面,如下所示:

w ⋅ Δ g + b = 0 w\cdot\Delta g+b=0 wΔg+b=0

对于这样一个超平面,其法向量是一个全局一致的方向 Δ g \Delta g Δg,则任意点到该超平面的距离将与生成图像中实际的属性 y y y 线性相关:

y = a × ( w ⋅ Δ g ) + b y=a\times(w\cdot\Delta g)+b y=a×(wΔg)+b

这里, a a a b b b 是未知的线性系数。为简化起见,我们可以对编辑后的图像 I 0 ′ I^\prime_0 I0 设置 d = 0 d=0 d=0。由于原始的 Δ w \Delta w Δw 可能并不是全局一致的,我们的目标是通过优化找到一个不同的方向 Δ ∗ w \Delta^* w Δw,它可以产生类似的编辑效果,但更可能是全局一致的。我们将 Δ ∗ w \Delta^* w Δw 初始化为全零,并设计了两个目标函数来优化它:

  1. 首先,为了确保它产生与原始方向相似的效果,我们使用图像重构损失,使得新编辑生成的编辑图像与用户给定的原始编辑相匹配。

L i m g = ∣ ∣ G ( w 0 + Δ w ) − G ( w 0 + Δ ∗ w ) ∣ ∣ 2 \mathcal L_{img}=||G(w_0+\Delta w)-G(w_0+\Delta^* w)||_2 Limg=∣∣G(w0+Δw)G(w0+Δw)2

  1. 此外,用户可以提供真实的距离值 d d d,否则,我们将编辑图像到假设超平面的距离设为 0。我们约束学习到的 Δ ∗ w \Delta^*w Δw 遵循此属性,以提高可解释性。设置 b = 0 b=0 b=0。新方向应满足以下条件:当我们沿该方向遍历原始潜在编码 w 0 → w 0 + Δ ∗ w w_0\rightarrow w_0+\Delta^*w w0w0+Δw 时,生成的图像应位于由该方向定义的超平面上。通过最小化编辑点到超平面的距离来实现这一目标:

    L a t t = ∣ ( w 0 + Δ ∗ w ) ∗ Δ ∗ w ∣ \mathcal L_{att}=|(w_0+\Delta^*w)*\Delta^*w| Latt=(w0+Δw)Δw

3.2 Adjusting Editing Strength for New Images

给定优化后的 Δ ∗ w \Delta^*w Δw 和一些新的图像 I i I_i Ii,我们希望以如下方式进行编辑:

w i ′ = w i + α i n w^\prime_i=w_i+\alpha_in wi=wi+αin

其中, α i \alpha_i αi 是为每个图像单独计算的编辑强度, n = Δ ∗ w ∣ ∣ Δ ∗ w ∣ ∣ n=\frac{\Delta^*w}{||\Delta^*w||} n=∣∣Δw∣∣Δw,即单位向量。 α i \alpha_i αi 可以理解为 w i w_i wi 到超平面的距离:

α i = ( w 0 ′ − w i ) ⋅ n \alpha_i=(w^\prime_0-w_i)\cdot n αi=(w0wi)n

值得注意的是,通过这种方式计算 α \alpha α 有一个额外的好处。假设编辑过程的目标是旋转 n 张面孔并使它们正面朝向。完成后,所有的面孔都会变为正面,每个面孔的编辑强度都是通过上述公式计算得出的。假设用户现在想让这些面孔稍微向左转一些。为了做到这一点,用户不需要重新标注原始的训练示例并再次运行优化过程。以交互方式,他们只需缩放训练示例的 α \alpha α 以匹配所需的编辑,其他所有的 α 可以自动重新计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SP FA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值