作者 | 陈大鑫
编辑 | 丛末
复制一位老人的胡子,把胡子粘贴到全部孩子的眉毛上。该如何实现这样的操作呢?
让我们从塔尖生树的问题说起。
如何在教堂的塔尖上生成一棵树?——当然是使用P图软件啦!
但是P图软件一次只能修改一张图片,难道就没有那种能一键无限张P图的软件吗?
近日,来自MIT朱俊彦团队的一篇论文《Rewriting a Deep Generative Model》就很巧妙地解决了这个问题,目前该论文已被接收为ECCV 2020 Oral,且代码已开源。
在这篇《重写深度生成模型》论文中,作者不是单独地对一张张图片进行编辑,而是很大胆地提出直接对深度网络的内部生成模型动刀编辑:
在这个规则编辑器中,深度生成模型G(z,w_0) 作为输入,这时模型的初始权重是 w_0,预训练模型G映射一个随机输入向量z到一个真实图像,将权重w_0改成w_1即可产生新的模型作为输出。
利用现有的模型能产生无限数量的图像,那么改变生成模型的规则就能让我们创造新规则下的无限张可改变图像。如下图所示,通过把塔尖的生成模型重写为“树”,一次操作即可在所有教堂的塔尖上都生成一棵树:
1 傻瓜式操作
那这么神奇的重写模型操作起来容易吗,够傻瓜式吗?
为了让读者更好地亲自编辑模型,作者特意创建了一个用户交互界面,共包含三部分。如下图黄色字体所示,左上角是规则选择器,左下角是目标选择器,右边是图像浏览器。
图像浏览器显示了从StyleGAN v2模型合成的教堂图像的样例:
想要改变模型,就要从规则选择器开始,每次选择一个教堂的塔尖,然后点击
把刚才选择的图像加入context区域:
点击
可以显示刚才选择过的图片,再点击一次则可取消显示:
下一步是指定模型重写规则,作者给用户提供了“复制-粘贴”操作来实现这一点。
首先是复制(Copy):在图像浏览器右下角选择一棵树,之后点击
,这样一棵树的模型规则就被复制了:
之后先选择一张图片,点击
进行粘贴,可以看出塔尖已经被替换成了树:
这时说明模型已经被成功复制粘贴了,之后点击交互页面右上方的
,就可以把“树”的模型规则粘贴到之前选择到context区域的三张图片上面了:
除了能把塔尖变成树之外,重写模型还能把塔尖的锥形变成圆顶:
既然重写模型操作这么方便,不如拿人脸来“开刀”--让人们“强颜欢笑":