Paper Reading: Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Manifold
Paper Reading 是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图表若未另外说明则均来自原文。
论文概况 | 详细 |
---|---|
标题 | 《Drag Your GAN: Interactive Point-based Manipulation on the Generative Image Manifold》 |
作者 | XINGANG PAN, AYUSH TEWARI, THOMAS LEIMKÜHLER, LINGJIE LIU, ABHIMITRA MEKA, CHRISTIAN THEOBALT |
发表会议 | ACM Special Interest Group on Computer Graphics(SIGGRAPH) |
发表年份 | 2023 |
会议等级 | CCF-A |
论文代码 | https://vcai.mpi-inf.mpg.de/projects/DragGAN/ |
作者单位:
- Max Planck Institute for Informatics, Germany
- Saarbrücken Research Center for Visual Computing, Interaction and AI, Germany
- MIT CSAIL, USA
- University of Pennsylvania, USA
- Google AR/VR, USA
研究动机#
以生成对抗网络(GANs)为代表的深度生成模型在合成随机真实感图像方面取得了前所未有的成功,在现实世界的应用中这种基于学习的图像合成方法的关键功能要求是对合成的视觉内容的可控性。理想的可控图像合成方法应该具有以下特性:
- 控制不同的空间属性,包括位置、姿势、形状、表情和所生成的对象或动物的布局;
- 精度:能够以高精度控制空间属性;
- 一般性:适用于不同的对象类别,但不限于某个类别。
很多方法通过先验的 3D 模型获得 GAN 的可控性,或依赖于手动注释数据进行监督学习。这些方法通常控制有限范围的空间属性或提供很少的控制编辑过程,不能推广到新的对象类别。最近文本引导的图像合成引起了关注,然而文本引导在编辑空间属性方面缺乏精确性和灵活性。
为了实现 GAN 的灵活、精确、通用的可控性,本文探索了一个强大的但较少被关注的基于点的交互式操作。具体来说,本文的模型允许用户点击图像上任意数量的操作点和目标点,这种基于点的操作允许用户控制不同的空间属性,并且对对象类别不可知。最接近的方法是 UserControllableLT,相比之下本文研究有两个更大的挑战:
- 考虑控制一个以上的点;
- 本文要求操作点精确地到达目标点。
文章贡献#
为了实现基于 GAN 的交互式的基于点的操作,本文提出了 DragGAN,它解决了监督手柄点向目标移动和跟踪手柄点两个子问题,以便在每个编辑步骤中知道它们的位置。本文模型是建立在 GAN 的特征空间具有足够的区分力以实现运动监督和精确点跟踪的特性之上的,运动监督通过优化潜在代码的移位特征损失来实现的。每个优化步骤导致操作点向目标移动,然后通过特征空间中的最近邻搜索来执行点跟踪。重复该优化过程,直到操作点达到目标。DragGAN 还允许用户选择性地绘制感兴趣的区域以执行特定于区域的编辑。由于 DragGAN 不依赖于任何附加网络,因此它实现了高效的操作,因此编辑速度很快。
本文方法#
本文的工作主要是为 GAN 开发一种交互式图像处理方法,用户只需点击图像即可定义几对控制点和目标点对图像进行编辑。本文使用的基础模型是 StyleGAN2 架构,它通过映射网络将 512 维潜在代码 𝒛∈N(0,I) 映射到中间潜在代码 w∈R512,将 w 输入到生成器 𝐺 以生成输出图像 I=𝐺(w)。在这个过程中 w 被多次复制,并发送到生成器 𝐺 的不同层,以控制不同级别的属性。也可以对不同的层使用不同的 w,此时的输入将是 w∈R𝑙×512=w+,其中 𝑙 是层数。
本文模型基于 PyTorch,使用步长为Adam 优化器对数据集的潜在代码进行优化,不同数据集使用不同的学习率。超参数设置为 𝜆=20,𝑟1=3,𝑟2=12,当所有控制点与目标点的距离不超过 𝑑 像素时停止优化过程,其中不超过 5 个柄点将 𝑑 设置为 1,否则设置为 2。
基于点的交互式操作#
图像处理管道的整体过程如下图所示,对于任意图像 I∈r3x𝐻×𝑊,用户将对一些控制点 {p𝑖=(𝑥𝑝,𝑖,𝑦𝑝,𝑖)|𝑖=1,2,...,𝑛} 和相应的目标点 {t𝑖=(𝑥𝑡,𝑖,𝑦𝑡,𝑖)|𝑖=1,2,...,𝑛} 进行操作,这些点的目标是移动图像中的对象,让用户通过控制点的语义位置(例如下图中的鼻子和下巴)达到相应的目标点。例如下图中红点为控制点,蓝点为目标点,以及中间可选的一个掩码表示可移动区域。
图像处理的方式以一种优化的形式实现,每个优化包括两个子步骤:运动监督和点跟踪。运动监督步骤使用一种强制处理点向目标点移动的损失来优化潜在代码,经过一个优化步骤即可得到了一个新的潜在代码 w' 和一个新的图像 I'。这个更新仅由将每个控制点移动一小步而产生,表现为图像中对象产生轻微移动。
接着进行点跟踪,也就是在运动监督后更新控制点 {p} 的位置以跟踪对象上相应的点,跟踪后根据新的控制点和潜在代码重复上述优化步骤,持续到控制点 {p} 到达目标点 {t} 的位置。在实验中通常需要 30-200 次迭代,用户可以在任何中间步骤停止优化。编辑完成后,用户可以输入新的控制点和目标点继续编辑,直到满意为止。
运动监督#
对于运动监督的实现,本文提出了一种不依赖于任何额外神经网络的运动监督损失。运动监督的关键思想是 StyleGAN 的隐空间特征和对应的生成图像间有良好的空间对应关系,可以通过编辑潜在编码实现对生成图像内容的可控修改。对于 StyleGAN2 的第 6 块之后的特征映射 F 在分辨率和区分性之间有很好的权衡,因此可以通过双线性插值调整 F 的大小得到与最终图像相同的分辨率。
具体的实现原理如下图所示,将控制点 pi 移动到目标点 ti 的想法是监督 pi 周围的一小块(红色圆圈)向 ti 移动一小步(蓝色圆圈)。
令 Ω1(pi,r1) 表示到 pi 的距离小于 r1 的像素点,则运动监督损失表示为如下公式。其中 di 是一个指向 ti 的单位向量,F0 是对应于初始图像的特征映射。损失函数主要实现了如下作用:对于每个控制点的起始位置为 p 和目标位置为 t,目标是将 p 邻域内点 q 的特征值 F(q) 更新为 F(q+d)。损失函数的第二项是希望编辑区域 M 外的图像内容保持不变,也就是在进行梯度回传时固定住 F(q) 然后对 F(q+d) 进行回传,这样就可以使图像中的点 p 运动到 t 了。通过仅对 W+ 的前六层进行更新,就能实现在编辑图像内容的同时保证了纹理细节不变。
点跟踪#
运动监督实现了对潜在编码 w 和生成图像 I 的更新,但此时并不能确定控制点 p 在经过优化后的落在图中的哪个位置。针对这个问题,本文的点跟踪步骤使用初始图像中的控制点对应的特征向量 ,与生成的图像中的控制点周围的特征向量进行匹配。以公式的形式表示为如下的式子,其中 fi=F0(pi),得到的匹配度最高的点作为新的控制点位置。这个过程通常通过计算控制点和周围像素的运动向量来实现,也可以使用其他技术如光流估计、特征匹配等。
论文利用了 GAN 生成器中间的特征映射来实现点跟踪,避免了使用其他额外的模型,可以提高效率并减少累积误差,同时在 GAN 图像中也有很好的鲁棒性。
实验结果#
数据集和实验设置#
实验使用在以下数据集上预训练的 StyleGAN2 模型(StyleGAN2 的分辨率如括号所示),分别是:FFHQ(512)、AFHQCat(512)、SHHQ(512)、LSUN Car(512)、LSUN Cat(256)、Landscapes HQ(256)、microscope(512)、Lion(512)、Dog(1024)、Elephant (512)。
对比的 baseline 使用了 UserControllableLT,它的设置与本文的方法最接近,虽然 UserControllableLT 不支持掩码输入但允许用户定义多个固定点。对于具有掩码输入的测试用例,在图像上采样一个 16×16 网格,并使用掩码外的点作为 UserControllableLT 的固定点,此外还将 RAFT 和 PIP 替换了点跟踪创建了两种方法的变体。
定性评估#
下图展示了展示了几种不同对象类别和用户输入的图像处理结果,主要用于将本文方法与 UserControllableLT 之间的定性比较。本文方法能准确地移动手柄点到达目标点,实现了多样化和自然的操纵效果,如改变动物的姿势、汽车的形状和景观的布局。反之 UserControllableLT 不能将手柄点移动到目标,并且经常导致图像中产生不期望发生的变化。
本文的点跟踪方法与 PIP、RAFT 方法之间的比较如下图所示,可见本文准确地跟踪狮子鼻子上方的手柄点,从而成功地将其驱动到目标位置。PIP 和 RAFT 中的跟踪点在操纵过程中产生了偏离,而且将错误的零件移动到目标位置。当不执行跟踪时,固定控制点在几步后很快开始驱动图像的另一部分,并且永远不知道何时停止,这无法实现编辑目标。
在真实的图像处理方面,对于一张给定的真实图像,可以应用 GAN 反演将其映射到 StyleGAN 的隐空间,然后分别编辑姿势、头发、形状和表情,如下图所示。
定量评估#
定量评估部分包括面部标志操作和配对图像重建。
面部标志检测#
在面部标志检测方面有现成的工具,因此将现成工具的标定作为真实的面部标志。具体来说就是使用在 FFHQ 上训练的 StyleGAN 随机生成两张人脸图像,并检测它们的面部标志,然后操纵第一图像的界标以匹配第二图像的界标。在操作之后检测最终图像的标志并计算到目标地标的平均距离(MD),最大优化步长设置为 100,结果取 1000 次测试的平均值,最终的 MD 分数反映了该方法可以将地标移动到目标位置的程度。同时使用 3 种不同数量的标志 1、5、68 进行评估,测试本文方法在不同数量的处理点下的鲁棒性。还包括编辑图像和初始图像之间的 FID 分数,作为图像质量的指标。
实验结果如下表所示,可见本文方法在不同数量的点都显着优于 UserControlableLT,本文的点跟踪方法比 RAFT 和 PIP 更精确,且保留了更好的图像质量。
效果如下图所示,可见本文方法能实现张开嘴并调整下巴的形状以匹配目标面部,而 UserControlableLT 未能做到。
配对图像重建#
首先令 I1 和 I2 为从两个潜码生成的 StyleGAN 图像,然后计算 I1 和 I2 之间的光流,并随机采样 32 个像素作为用户输入 U。目标是从 I1 和 U 重建 I2,实验报告了 MSE 和 LPIPS 并对 1000 个样本的结果进行平均,最大优化步长设置为 100。实验结果如下表所示,本文方法在不同的对象类别中优于所有基线。
消融实验#
此处调整了不同的参数,对 1 个标志点的面部标志检测的 MD 进行实验。实验结果如下表所示,在运动监控和点跟踪中,StyleGAN 第 6 个块之后的特征图表现最好,显示了分辨率和区分度之间的最佳平衡。
下表中为调整不同 r1 的实验数据,可以看到模型的性能对 r1 的选择不是很敏感,r1=3 的性能略好。
进一步讨论#
掩码的效果#
本文方法允许用户输入表示可移动区域的二进制掩码,效果如下图所示。当给图中的狗的头上加入掩码时,进行操作后其他区域几乎是固定的,只有头部移动。如果没有设置掩码,操作将移动整个狗的身体。这表明基于点的操作通常有多个可能的解决方案,GAN 将倾向于在从训练数据中学习的图像流形中找到最接近的解决方案,掩码可以帮助减少模糊性并保持某些区域固定。
分布外的操作#
前文展示的基于点的操作都是“分布内”操纵,也就是可以用训练数据集的图像分布内的自然图像来满足操作要求。下图展示了一分布外操作的效果,可以看出本文的方法具有一定的外部推理的能力,在训练图像分布之外创建图像,例如一个极度张开的嘴巴和一个巨大的轮子。
在某些情况下,用户可能希望始终将图像保持在训练分布中,并防止其达到此类分布外操作。实现这一点的一种潜在方法是向潜在代码中添加额外的正则化。
局限性#
本文方法尽管有一些分布外操作的能力,但整体的编辑质量仍然受到训练数据多样性的影响。如下图中的 (a) 所示,创建偏离训练分布的人类姿势可能导致变形。在无纹理区域中的控制点有时会在跟踪中遭受更多的漂移,如图 (B)、(c) 所示,因此本文建议尽可能选择纹理丰富的手柄点。
社会影响#
由于本文的方法可以改变图像的空间属性,因此可能被滥用来创建具有假姿势、表情或形状的真实的人的图像,因此任何使用本文方法的应用程序或研究都必须严格尊重人格权和隐私法规。
优点和创新点#
个人认为,本文有如下一些优点和创新点可供参考学习:
- 本文的方法充分地利用了 GAN 的原理和性质,通过对潜在编码的编辑,实现了对图像的有效微调;
- 在点跟踪方面,作者巧妙地利用了特征向量匹配的方式,将匹配度最高的点作为跟踪的点,避免了复杂的操作;
- 实验内容包括了定性和定量分析两部分,展示了很多图像编辑的图片,非常直观具体,从图像效果也体现了本文的编辑效果好。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2020-10-17 sqli-labs 通关指南:Less 11、12