AI绘画可控性研究与应用清华美院课程的文字稿和PPThttps://mp.weixin.qq.com/s?__biz=MzIxOTczNjQ2OQ==&mid=2247484794&idx=1&sn=3556e5c467512953596237d71326be6e&chksm=97d7f580a0a07c968dedb02d0ca46a384643e38b51b871c7a4f89b38a04fb2056e084167be05&scene=21#wechat_redirectGAN“家族”又添新成员——EditGAN,不但能自己修图,还修得比你我都好 - 知乎作者 | 莓酊,链接: GAN新成员EditGAN 欢迎关注 @机器学习社区 ,专注学术论文、机器学习、人工智能、Python技巧首先想让大家猜一猜,这四张图中你觉得哪张是P过的?小编先留个悬念不公布答案,请继续往下看。 生…https://zhuanlan.zhihu.com/p/435400695StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery 阅读笔记 - 知乎论文:StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery code: https://github.com/orpatashnik/StyleCLIP 效果: 由于StyleGAN、StyleGAN2在生成图像上的优秀表现,越来越多的paper基于styleGAN来对图像…https://zhuanlan.zhihu.com/p/368134937https://ai.plainenglish.io/draggan-an-interactive-point-based-manipulation-technique-for-deep-generative-models-343c9be6cf6ehttps://ai.plainenglish.io/draggan-an-interactive-point-based-manipulation-technique-for-deep-generative-models-343c9be6cf6eAI 图像编辑技术 DragGAN 问世,该技术有哪些亮点功能值得关注? - 知乎出品人:Towhee 技术团队 作者:张晨DragGAN介绍合成满足用户需求的视觉内容往往需要对生成对象的姿势、…https://www.zhihu.com/question/602358712/answer/3045167594

DragGAN主要还是应用于图像编辑领域,在图像编辑领域之前有代表性的可控生成的作品包括editgan和styleclip,前者是通过分割图去定点控制生成图,后者是通过文本来实现控制,DragGAN将控制的方式变成了人工交互,通过点移动的方式,draggan的理论框架:点在图像空间中的移动对应于GAN的潜在空间中的移动,利用这一观察结果,制定了一个优化问题,旨在最小化用户输入和生成的图像之间的差异,该优化问题通过一种基于梯度的方法解决,该方法调整GAN的latent code以匹配用户的输入。DragGAN包括三个步骤,初始化:将用户输入映射到GAN的潜在空间中,跟踪涉及跟踪用户输入点在图像上的移动,优化涉及调整GAN的latent code已匹配用户输入。

1.abstract

生成对象的姿态、形状、表情和布局通常需要灵活和精确的可控性,现有的方法通过手动注释的训练数据或3D模型获得GAN的可控性,本文控制GAN的方式,即以用户交互的方式控制图像中的点,以精确达到目标点(sam中提供了点,框,mask和text),为了实现这一点,draggan由两个部分组成,1.基于特征的运动监督,驱动控制点向目标位置移动,2.一种新的点跟踪方法。

2.introduction

理想的可控图像合成应具备以下特点:1.灵活性,能够控制生成物体的不同空间属性,包括位置,姿态,形状,表情和布局;2.精度,它应该能高精度的控制空间属性;3.普遍性:能用于不同的对象类别,但不局限于某个特定类别。

文本引导合成,在空间属性编辑上,文本引导缺乏精度和灵活性,无法将对象移动特定数量的像素,本文允许用户在图像上点击任意数量的处理点和目标点,目标是驱动处理点达到相应的目标点,这种基于点的操作允许用户控制歌各种空间属性,并且与对象类别无关。

GAN的高保真,EditGAN不是对条件分布进行建模,而是通过寿险建模图像和分割图的联合分布,然后计算与编辑分割图相对应的新图像来实现定性编辑。UserControllabeLT。扩散模型在文本输入下可以实现丰富的图像,然后文本无法对图像进行细致的控制,因此受到高级语义编辑的限制。

DragGAN解决了两个问题,1.监督处理点向目标点移动,2.跟踪点移动。我们的技术建立在一个关键的观察上,即GAN的特征空间足够有区别性,可以实现运动监督和精确点跟踪,具体而言,通过一种shifted feature patch loss优化latent code,每次优化都会使处理点跟接近目标,在特征空间中执行最近邻搜索来进行点跟踪,这个过程不断重复,直到handle点到达目标点,还允许用户选择特定的区域进行编辑,不依赖任何额外的网络,在大多数情况下,在单个RTX 3090上一张图只需要几秒,其实也挺慢的。与传统的应用于图像上的变形warm操作不同,draggan的变形操作是作用在latent code上的,再通过latent code反演(生成器)到图像上。

在视频中跟踪点的方法是通过连续帧之间的光流估计来实现。RAFT通过迭代计算估计光流,PIPs考虑了做个帧之间的信息,更好的处理长距离跟踪。本文在GAN生成的图像上进行点跟踪时,不需要任何神经网络,GAN的特征空间具有足够的区分度,可以通过特征匹配来简单的实现跟踪。

3.方法

stylegan,一个512维latent code通过mapping network被映射到一个中间潜在编码w,再将w送到生成器的不同层中来控制不同的属性。stylegan是后续几乎所有的可控图像编辑的pipeline,因为在产生的潜空间w被送入到不同生成器的层中认为可以改变生成图像的对应属性,stylegan的两个最主要的贡献,1.产生了latent space w,2.将w放入到生成器中每层结构中,真实数据不是高斯,输入是高斯,很难匹配起来,w是隐变量空间,可以是任意的空间,更好的匹配真实数据。

3.1 interactive point-based manipulation

红色是处理点,蓝色是目标点,运动监督,使用handle点向目标点移动的损失来优化latent code w,经过一次优化,得到一个新的latent code w‘和一个新的图像I‘,更新会导致图像中物体轻微移动,从复现代码看,是进行一次梯度优化就进行一次点追踪,运动监督仅将每个控制点向其目标移动一小步,但确切步长不知道,取决于复杂的优化过程,或者理解成使用梯度优化从w中找到一个合适的路到w',而w’即是图像上满足要求的图,找到了分布中和图对应的映射关系,损失之所以在图像层面是因为好算,在图像层面通过F,即生成器就可以拿到对应点的特征值,对应点特征值相减来控制点的不变形,前提就是点的不变性在隐空间中有对应关系,而stylegan的隐空间其实学到了很好的和原图对应的映射关系。更新控制点的位置以跟踪物体上的相应点,如果没有准确跟踪,在下一步运动监督中就会产生错误的监督,点追踪其实和运动监督不同的是,运动监督更新点后只计算loss,用隐形latent生成更好的图像,不更新点,且实际计算loss时,也不是只取一个点,而是以该点为中心,r=3,在点追踪中,取r=12,并且进行点更新,优化通常需要30-200次迭代。

3.2 motion supervision

不依赖任何额外网络,关键思想是生成器的中间特征非常具有区分性,选择latent的前6组,并且在计算loss时,通过双线性差值恢复到原图,损失函数:

损失函数很简单,qi表示移动前原图所在点,qi+di表示移动后原图上点,F即是生成器函数,F(qi)是在qi点处产生的特征值,在前向时只会给latent一个梯度回传,后半部分是考虑mask之外的不要动,但实际并不一定,也会因为GAN产生新东西。

3.3 point tracking

使点变得更精准。

3.4 Implementation Details

生成能力来源于stylegan2,但是stylegan2是在特定场景数据中进行训练和生成的,FFHQ(人脸,1024x1024)、AFQCat(猫,512x512)、SHHQ(自然风景、城市风景、人类图像)、LSUN Car(汽车,256x256)、LSUN Cat、Landscapes HQ(风景图,山、沙漠和海洋)、microscope(显微镜下图)、Lion、Dog、Elephant。

代码:

wrapped_model=ModelWrapper()->
sample_z=torch.randn([1,512])->
latent,noise=wrapped_model.g_ema.prepare([sample_z])->
sample,F=wrapped_model.g_ema.generate(latent,noise)->
on_drag->
model:wrappped_model,
points:target:[887,484],handle:[721,493],
state:latent:1x18x512,noise:17,F:,sample:1x3x1024x1024
size:2014,
mask:
max_iters:20->
drag_gan->
r1,r2,lam,d=3,12,20,1->
F0=F.detach().clone()->1x128x1024x1024
latent_trainable=latent[:,:6,:].detach().clone().requires_grad_(True)->1x6x512
latent_untrainable=latent[:,6:,:].detach().clone().requires_grad_(False)->1x12x512
optimizer=torch.optim.Adam([latent_trainable],lr=2e-3)->
for iter in range(max_iter)->
optimizer.zero_grad()->
latent=torch.cat([latent_trainable,latent_untrainable],dim=1)->1x18x512
sample2,F2=g_ema.generate(latent,noise)->sample2:1x3x1024x1024,F2:1x128x1024x1024
pi,ti=handle_points[i],target_points[i]->[721,493],[887,484]
di=(ti-pi)/torch.sum((ti-pi)**2)->[0.0060,=0.0003]for qi in neighbor(int(pi[0]),int(pi[0]),r1)->[718,490]
f1=bilinear_interpolate_torch(F2,qi[0],qi[1]).detach()->
f2=bilinear_interpolate_torch(F2,qi[0]+di[0],qi[1]+di[1])->
loss+=FF.l1_loss(f2,f1)->
loss+=((F2-F0)*(1-mask)).abs().mean()*lam->
loss.backward()->
optimizer.step()->sample2,F2=gma.generate(latent,noise)->
pi=handle_points0[i]->
f0=bilinear_interpolate_torch(F0,pi[0],pi[1])->
f2=bilinear_interpolate_torch(F2,qi[0],qi[1])->
v=torch.norm(f2-f0,p=1)->
handle_points[i][0]=minx->
handle_points[i][1]=miny->

从代码上看,latent在梯度优化中是始终保持反向传播的,通过优化latent,在生成图上每次前进一个di,来实现运动监督。

stylegan2预训练数据集:

DragGAN:interactive point-based manipulation on the generative image manifold相关推荐

  1. 【ReID】Joint Discriminative and Generative Learning for Person Re-identification

    2019年CVPR的著名SOTA,现有方法中的生成模型pipeline与判别式re-id学习阶段保持相对分离,而作者反其道行之,提出了一种端到端地耦合ReID学习和图像生成的学习模型DG-Net.该包 ...

  2. CVPR 2018 paper list(论文列表)

    原文链接:http://cvpr2018.thecvf.com/program/main_conference 52 Embodied Question Answering Abhishek Das ...

  3. ECCV2022论文列表(中英对照)

    Paper ID Paper Title 论文标题 8 Learning Uncoupled-Modulation CVAE for 3D Action-Conditioned Human Motio ...

  4. cvpr2020 人脸检测与识别_就CVPR2020的来看,目前人工智能的研究热点有哪些进展?未来的研究趋势会有什么变化?...

    CVPR 主打视觉CV吧,从趋势来看,越来越的"红"方向,比如,自监督/半监督/弱监督/无监督.少样本/单样本/零样本.可解释性.对抗样本/安全.多模态.3D等等~ 个人对GAN比 ...

  5. 基于视觉的机器人抓取: 论文及代码(Vision-based Robotic Grasping: Papers and Codes)

    本文同步于微信公众号:3D视觉前沿,欢迎大家关注. 本文总结了基于视觉的机器人抓取的相关论文及代码,同步于 GitHub. 机器人抓取必需的信息是相机系下抓取器的6DoF位姿,包括抓取器的3D位置和抓 ...

  6. CVPR 2018 paper ---object detection

    转载:https://blog.csdn.net/qq_34848537/article/details/82968217 参考链接 CVPR 2018 论文解读集锦(9月27日更新) CVPR 20 ...

  7. 超100篇!CVPR 2020最全GAN论文梳理汇总!

    点击上方"机器学习与生成对抗网络",关注"星标" 获取有趣.好玩的前沿干货!  戳我,查看GAN的系列专辑~! 下述论文已分类打包好!共116篇,事实上仍有一些 ...

  8. 【今日CV 计算机视觉论文速览 第149期】Tue, 30 Jul 2019

    今日CS.CV 计算机视觉论文速览 Tue, 30 Jul 2019 Totally 77 papers ?上期速览✈更多精彩请移步主页 Interesting: ?MaskGAN人脸属性操作的新方法 ...

  9. CVPR 2018 paper

    CVPR 2018 参考链接 CVPR 2018 论文解读集锦(9月27日更新) CVPR 2018 open access Paperlist Embodied Question Answering ...

最新文章

  1. 漫画|小白到大神程序员的进阶,都是什么生活状态?
  2. 目标检测:Yolov5集百家之长
  3. 【洛谷4389】付公主的背包(生成函数,多项式运算)
  4. URAL1553 Caves and Tunnels 树链剖分 动态树
  5. 【转】.NET Core 可移植类库PCL Portable Class Library详解
  6. 由通知栏进入到应用的尝试
  7. Bootstrap 分页导航
  8. 罗永浩:如果没有特斯拉和马斯克 激动人心的电动车时代不会这么早的到来
  9. Expressbody-parser
  10. Java、JSP小区车辆停车管理系统
  11. 无线通信技术—LoRa
  12. 让浏览器下载的文件不再是锁定状态
  13. cs61b实验记录(八)project 3:BearMaps 基于OSM的伯克利地图web应用
  14. visual studio 2019 无法启动程序 系统找不到指定文件
  15. cisco anyConnect 不用每次输入密码的办法
  16. 读《啤酒与尿布》——大型超市购物篮中商品关联性分析
  17. Java学习(入门知识)
  18. 深度学习-【语义分割】学习笔记4 膨胀卷积(Dilated convolution)
  19. MFC-----CMap
  20. IOS:UIImage的剪切,尺寸缩小、压缩、添加水印

热门文章

  1. 计算机科学的常用软件,电脑必备的6款黑科技软件,每一个都堪称神器
  2. [东方博宜]整数运算11题
  3. 我在京东怎么做运营——电商思维下的产品运营及管理
  4. 论文系统Step1:从日志记录中提取特定信息
  5. 中国银联研究院 周雍恺:面向金融的软件定义网络安全探索
  6. 华为scp快充协议详解_连华为SCP快充都支持 台电双口充电头测试
  7. 关于调用微信朋友圈分享及参数
  8. CC1101和CC1310的参数配置的问题整理
  9. OMRON TIMER
  10. android修改猎豹浏览器,猎豹Android浏览器设计或编码缺陷导致远程拒绝服务漏洞 | wooyun-2015-0121433| WooYun.org...