拜登:不会同意一项既保
让GAN再次伟大!拽一拽关键点就能让狮子张嘴大象转身,汤晓鸥弟子的DragGAN爆火,网友:R.I.P. Photoshop
来源:量子位
这两天,一段AI修图视频在国内外社交媒体上传疯了。
不仅直接蹿升B站关键词联想搜索第一,视频播放上百万,微博推特也是火得一塌糊涂,转发者纷纷直呼“PS已死”。
怎么回事?
原来,现在P图真的只需要“轻轻点两下”,AI就能彻底理解你的想法!
小到竖起狗子的耳朵:
大到让整只狗子蹲下来,甚至让马岔开腿“跑跑步”,都只需要设置一个起始点和结束点,外加拽一拽就能搞定:
不止是动物的调整,连像汽车这样的“非生物”,也能一键拉升底座,甚至升级成“加长豪华车”:
这还只是AI修图的“基操”。
要是想对图像实现更精准的控制,只需画个圈给指定区域“涂白”,就能让狗子转个头看向你:
或是让照片中的小姐姐“眨眨眼”:
甚至是让狮子张大嘴,连牙齿都不需要作为素材放入,AI自动就能给它“安上”:
如此“有手就能做”的修图神器,来自一个MIT、谷歌、马普所等机构联手打造的DragGAN新模型,论文已入选SIGGRAPH 2023。
没错,在扩散模型独领风骚的时代,竟然还能有人把GAN玩出新花样!
目前这个项目在GitHub上已经有5k+ Star,热度还在不断上涨中(尽管一行代码还没发)。
所以,DragGAN模型究竟长啥样?它又如何实现上述“神一般的操作”?
拽一拽关键点,就能修改图像细节
这个名叫DragGAN的模型,本质上是为各种GAN开发的一种交互式图像操作方法。
论文以StyleGAN2架构为基础,实现了点点鼠标、拽一拽关键点就能P图的效果。
具体而言,给定StyleGAN2生成的一张图像,用户只需要设置几个控制点(红点)和目标点(蓝点),以及圈出将要移动的区域(比如狗转头,就圈狗头)。
然后模型就将迭代执行运动监督和点跟踪这两个步骤,其中运动监督会驱动红色的控制点向蓝色的目标点移动,点跟踪则用于更新控制点来跟踪图像中的被修改对象。
这个过程一直持续到控制点到达它们对应的目标点。
不错,运动监督和点跟踪就是我们今天要讲的重点,它是DragGAN模型中最主要的两个组件。
先说运动监督。在此之前,业界还没有太多关于如何监督GAN生成图像的点运动的研究。
在这项研究中,作者提出了一种不依赖于任何额外神经网络的运动监督损失(loss)。
其关键思想是,生成器的中间特征具有很强的鉴别能力,因此一个简单的损失就足以监督运动。
所以,DragGAN的运动监督是通过生成器特征图上的偏移补丁损失(shifted patch loss)来实现的。
如下图所示,要移动控制点p到目标点t,就要监督p点周围的一小块patch(红圈)向前移动的一小步(蓝圈)。
再看点跟踪。
先前的运动监督会产生一个新的latent code、一个新特征图和新图像。
由于运动监督步骤不容易提供控制点的精确新位置,因此我们的目标是更新每个手柄点p使其跟踪上对象上的对应点。
此前,点跟踪通常通过光流估计模型或粒子视频方法实现。
但同样,这些额外的模型可能会严重影响效率,并且在GAN模型中存在伪影的情况下可能使模型遭受累积误差。
因此,作者提供了一种新方法,该方法通过最近邻检索在相同的特征空间上进行点跟踪。
而这主要是因为GAN模型的判别特征可以很好地捕捉到密集对应关系。
基于这以上两大组件,DragGAN就能通过精确控制像素的位置,来操纵不同类别的对象完成姿势、形状、布局等方面的变形。