写点什么

大象转身只需点点鼠标,爆火 DragGAN 原理浅析

作者:Zilliz
  • 2023-05-25
    上海
  • 本文字数:1489 字

    阅读完需:约 5 分钟

出品人:Towhee 技术团队 作者:张晨

DragGAN 介绍

合成满足用户需求的视觉内容往往需要对生成对象的姿势、形状、表情和布局进行灵活和精确的控制。 现有方法通过手动注释的训练数据或先前的 3D 模型获得生成对抗网络 (GAN) 的可控性,这通常缺乏灵活性、精确性和通用性。 这项工作研究了一种强大但探索较少的控制 GAN 的方法,即以用户交互的方式“拖动”图像的任何点以精确到达目标点,如下图所示。 为实现这一目标,本文提出了 DragGAN,通过 DragGAN,任何人都可以通过精确控制像素的位置对图像进行变形,从而操纵动物、汽车、人类、风景等不同类别的姿势、形状、表情和布局。定性和定量比较都证明了 DragGAN 在图像处理和点跟踪任务中优于先前方法的优势。

DragGAN 允许用户“拖动”任何 GAN 生成图像的内容。 用户只需点击图像上的几个 handle 点(红色)和目标点(蓝色),就可以移动 handle 点以精确到达其对应的目标点。 用户可以选择绘制灵活区域(较亮区域)的 mask,保持图像的其余部分固定。 这种灵活的基于点的操作可以控制许多空间属性,如姿势、形状、表情和跨不同对象类别的布局。

运动监督和 handle 跟踪

DragGAN 包含了两个子操作:

  • 基于特征的运动监督,驱动 handle 点向目标位置移动,

  • 一种新的点跟踪方法,利用判别生成器特征来保持定位 handle 点的位置。

理论上,GAN 的特征空间具有足够的判别性,可以实现运动监督和精确点跟踪。 具体来说,运动监督是通过优化隐空间编码(latent code)的偏移 patch loss 来实现的。 每个优化步骤都会使得 handle 点更接近目标; 然后通过特征空间中的最近邻搜索来执行 handle 点跟踪。 重复此优化过程,直到 handle 点达到目标。 DragGAN 还允许用户有选择地绘制感兴趣的区域以执行特定于区域的编辑。 由于 DragGAN 不依赖任何额外的网络,它实现了高效的操作,在大多数情况下在比如单个 RTX 3090 GPU 上只需要几秒钟。 这允许进行实时的交互式编辑会话,用户可以在其中快速迭代不同的布局,直到获得所需的输出。

  • 运动监督是通过生成器特征图上的偏移 patch loss 来实现的。图中红圈 patch 和蓝圈 patch 之间的差异,对于 latent code 求导,可以得到新的 latent code w'。图中红 patch 后加了".detach()",意思就是它是原图,是不变的,而蓝 patch 是通过新 latent code 出来的可变量,所以是通过它反传梯度。

  • 通过最近邻搜索对同一特征空间进行 handle 点跟踪。图中是中间那个图,在正方形区域内最近邻搜索原来 p 点的特征 f0,于是可以搜索到新的位置 p,即完成跟踪。这么做的原理是,GAN 的特征具有判别性,能很好地捕获了密集的对应关系,因此可以通过特征块中的最近邻搜索有效地执行跟踪。

遮罩(mask)的用处

将狗的头部区域遮盖后,其余部分几乎没有变化。 Mask 可以在交互时,确定图像中确定图像中的可变区域,这样可以消除歧义,让用户做到更加精准的控制。

总结

DragGAN 是一种用于直观的基于点的图像编辑的交互式方法。 方法利用预训练的 GAN 来合成图像,这些图像不仅能精确地遵循用户输入,而且还能保持真实图像的多样性。 与许多以前的方法相比,本文通过不依赖特定领域的建模或辅助网络来呈现一个通用框架。 这是通过使用两个主要步骤来实现的:一是 latent code 的优化,它可以进行运动监督,将 handle 点移向其目标位置,二是一个点跟踪方法,它有效地跟踪 handle 点的轨迹。 作者未来计划将基于点的编辑扩展到 3D 生成模型。

相关资料:

  • 官网展示:https://vcai.mpi-inf.mpg.de/projects/DragGAN/

  • 论文链接:https://arxiv.org/abs/2305.10973

  • 代码地址:https://github.com/XingangPan/DragGAN(官方版本,计划 6 月开源),https://github.com/Zeqiang-Lai/DragGAN(非官方版本)

用户头像

Zilliz

关注

Data Infrastructure for AI Made Easy 2021-10-09 加入

还未添加个人简介

评论

发布
暂无评论
大象转身只需点点鼠标,爆火 DragGAN 原理浅析_Towhee_Zilliz_InfoQ写作社区