Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Mani

110 阅读5分钟

Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Manifold

XINGANG PAN, Max Planck Institute for Informatics, Germany and Saarbrücken Research Center for Visual Computing,

Interaction and AI, Germany

AYUSH TEWARI, MIT CSAIL, USA

THOMAS LEIMKÜHLER, Max Planck Institute for Informatics, Germany

LINGJIE LIU, Max Planck Institute for Informatics, Germany and University of Pennsylvania, USA

ABHIMITRA MEKA, Google AR/VR, USA

CHRISTIAN THEOBALT, Max Planck Institute for Informatics, Germany and Saarbrücken Research Center for Visual

Computing, Interaction and AI, Germany

图片.png

主要由两部分组成:
1)基于特征的运动监测,以实现将控制点(handle points)移向目标位置(target position)。
2)一种新的点跟踪方法,该方法利用判别生成器特征来保证对控制点的定位。

1. INTRODUCTION

很多之前的方法都是通过以前的3D模型来获得了GANs的控制(来使用GANs),或者是依赖于手工标注的数据集来进行监督学习。因此,这些方法无法推广到一个新的对象类别(?),通常只能控制有限范围内的空间属性,或者对编辑过程几乎无法控制。

最近,文本导向的图片合成引起了人们的关注,但是,文本导向在编辑空间属性方面缺乏准确性和灵活性,例如,它不能将对象移动特定数量的像素。

UserControllableLT [Endo 2022]与我们的方法相近,与之相比,这篇文章研究的问题还有两个挑战:
1)我们考虑对多个点的控制,这在他们的方法中并没有被处理的很好。
2)我们需要将控制点精确地移向目标点,他们的方法也没有做到。

为了实现这种交互式的基于点的操作,我们提出了DragGAN,这解决了两个问题:
1)监督控制点移向目标点位。
2)追踪控制点,所以无论在编辑过程中的哪一步我们都能掌握控制点的位置。

2. RELATED WORK

2.1 Generative Models for Interactive Content Creation

Unconditional GANs.

Conditional GANs.

Controllability using Unconditional GANs.

3D-aware GANs.

Diffusion Models.

2.2 Point Tracking

为了实现对控制点的跟踪,一个显而易见的方法是光流法。

我们发现,GAN 的特征空间具有足够的判别能力,因此只需通过特征匹配就能实现跟踪。

尽管我们的方法很简单,但我们证明它优于最先进的点跟踪方法,包括 RAFT 和 PIP。

3. METHOD

Our study is based on the StyleGAN2 architecture

3.1 Interactive Point-based Manipulation

图片.png

Fig. 2.

如图二所示,每一次优化都包括两个子步骤:
1)运动监测
2)点跟踪

在运动监测中,(使处理点朝着目标点移动的)loss被用于优化潜向量 w\boldsymbol{w},经过一次优化步骤之后,会得到一个新的潜向量w\boldsymbol{w'}和一张新的图片I\mathrm{I'}。这次更新会使图片中的对象发生轻微移动。

需要注意的是,运动监测只是将每个控制点朝着目标点位移动了一小步的距离,但步长实际大小不知道。因为它受复杂的优化动态影响,因此对不同物体和部件的影响也不同。因此,我们还会更新控制点{pi}\left\{p_{i}\right\}的位置,来跟踪对象上的相对应的点。

3.2 Motion Supervision

In this work, we propose a motion supervision loss that does not rely on any additional neural networks.

我们的方法的关键在于,生成器的中间特征具有很强的辨别能力,因此一个简单的损失就足以监督运动。

图片.png

As shown in Fig. 3, to move a handle point 𝒑𝑖 to the target point 𝒕𝑖 , our idea is to supervise a small patch around 𝒑𝑖 (red circle) to move towards 𝒕𝑖 by a small step (blue circle). We use Ω1 (𝒑𝑖, 𝑟1) to denote the pixels whose distance to 𝒑𝑖 is less than 𝑟1, then our motion supervision loss is:
正如图三所示,为了将控制点pip_i移动到目标点tit_i,我们的想法是,监督一个pip_i周围的小块来朝着tit_i移动。 用Ω1(𝒑𝑖, 𝑟1)代表到pip_i的距离小于r1r_1的像素点的集合,然后我们的运动监督的loss为:

图片.png

F(q)\mathbf{F}(\boldsymbol{q})表示F\mathbf{F}q\boldsymbol{q}点的的特征值,di=tipitipi2\boldsymbol{d}_i=\frac{\boldsymbol{t}_i-\boldsymbol{p}_i}{\|\boldsymbol{t}_i-\boldsymbol{p}_i\|_2}是从pi\boldsymbol{p}_{i}指向ti\boldsymbol{t}_{i}的单位向量(di=0ifti=pi)(\boldsymbol{d}_{i}=0 \mathrm{ if } \boldsymbol{t}_{i}=\boldsymbol{p}_{i})F0\boldsymbol{F_0}是初始图的对应的特征图。

由于qi+di\boldsymbol{q_i+d_i}这一部分不是整数,所以通过双线性插值来获得F(qi+di)\boldsymbol{F(q_i+d_i)}

重要的是,在使用这个loss进行反向传播时,梯度不会通过F(qi)\mathbf{F}(\boldsymbol{q}_i)进行反向传播,这意味着F(qi)\mathbf{F}(\boldsymbol{q}_i)的参数不会受到损失函数对于pi\boldsymbol{p_i}的梯度影响。这样的设计使得在优化过程中,pi\boldsymbol{p_i}只会向pi+di\boldsymbol{p_i+d_i}移动但不会反过来(but not vice versa)。

w\boldsymbol{w} can be optimized either in the W\mathcal{W} space or in the W+\mathcal{W^+} space, depending on whether the user wants a more constrained image manifold or not.

关于优化参数的选择,这里补充一些StyleGAN2的知识点StyleGAN2引入了一种名为W+ 空间的特殊潜码表示方式,相比传统的Z空间,W+ 空间中的潜码w具有更高的维度,并与生成器网络的层次结构相对应,使得在W+ 空间中进行优化更容易控制图像的各种特征和风格。因此,相较于传统的Z空间,W+ 空间在图像编辑方面具有更强的能力,W+ 空间的优化更能保持生成图像的一致性和连续性。

然而,由于W+空间的维度较高,优化过程中潜码w可能会偏离原始分布,导致生成的图像与期望结果之间存在较大差距,这可能会对图像编辑的质量和准确性产生影响。

通过实验证明,图像的空间结构属性主要受到W+ 前6层参数的影响,而其他参数仅对外观产生影响。基于这一观察,我们选择只更新W+前6层参数,将其他层保持固定,以保持外观不变但改变结构。这种优化方法会导致图像内容发生轻微移动,以达到所期望的编辑效果。

节摘自:zhuanlan.zhihu.com/p/640748168 如有侵权,烦请告知删除。

3.3 Point Tracking

our goal here is to update each handle point pi\boldsymbol{p_i} such that it tracks the corresponding point on the object.

We present a new point tracking approach for GANs.

GAN 的判别特征可以很好地捕捉到密集的对应关系,因此可以通过在特征补丁(feature patch)中进行近邻搜索来有效地进行跟踪。

令初始控制点的特征为fi=F0(pi)f_i=\mathbf{F}_0(\boldsymbol{p}_i),We denote the patch around pi\boldsymbol{p_i} as

Ω2(pi,r2)={(x,y)xxp,i<r2,yyp,i<r2}\Omega_{2}(\boldsymbol{p}_{i},r_{2})=\{(x,y)\mid|x-x_{\boldsymbol{p},i}|<r_{2},|y-y_{\boldsymbol{p},i}|<r_{2}\}

然后,被跟踪的点就会被获得通过搜索Ω2(pi,r2)\Omega_2(\boldsymbol{p}_i,r_2)fif_i的近邻。

图片.png

如此,pi\boldsymbol{p_i}便沿着对象完成了更新。对于多个处理的控制点,都是采用相同的方法处理。