来玩变脸啊!逆天神器!OpenAI可逆生成模型Glow逆袭GAN!

温馨提示

图像生成在 GAN 和 VAE 诞生后得到了很快的发展,现在围绕 GAN 的论文十分火热。在计算机视觉顶会 CVPR 2018 上甚至有 8% 的论文标题中包含 GAN!

生成模型只能受限于 GAN 和 VAE 吗?近日著名人工智能研究组织OpenAI另辟蹊径,发布了其最新工作成果——Glow,一种基于流的生成模型。

玩法一:用Glow与其他人脸图像融合,毫无违和感啊!

你最想上传谁和谁的照片?

玩法二:用Glow模型控制人脸图像属性

加了胡子的Hinton,笑容调到最高,看起来更加硬朗!

Glow的作者在此之前已经基于流的生成模型提出过NICE [1] 和 RealNVP [2],Glow 是在这两个模型基础上加入可逆 1 x 1 卷积进行的扩展。

Glow可以使用相对较少的数据,快速生成高清的逼真图像,具有GAN和VAE所不具备的精确操作潜在变量、需要内存少等优势。

Glow支持高效采样,并且可以自动学习图像中的属性特征,比如人的五官。

下图是使用Glow操纵两名研究人员面部图像的属性。模型在训练的时候并没有给出眼睛、年龄等属性标签,但Glow自己学习了一个潜在空间,其中某些方向对应胡须密度,年龄,发色等属性的变化(真是机智啊,可以用来预测自己留胡子好不好看了)

人脸混合过度的效果十分流畅:

下图使用30,000个高分辨率面部数据集进行训练后,Glow模型中的样本可以冒充真人照片了!你能看出下图是否是真人吗?

再放大来看,这个效果至少是不输给GAN的:

Glow模型生成一个256 x 256的样本,在NVIDIA1080 Ti GPU上只需要大约130ms。使用 reduced-temperature模型采样结果更好,上面展示的例子是温度0.7的结果。

Glow模型

Glow 的模型框架:

Glow实验

实验最初是比较 Glow 和 RealNVP,反转操作上 NICE 采用反转,RealNVP 采用固定随机排列,Glow 采用可逆 1 × 1 卷积,并且耦合方式也影响实验的效果,文章比较了加性耦合层和仿射耦合层的性能差距。通过在 CIFAR-10 数据集的平均负对数似然(每维度的比特)来衡量不同操作的差距,其中所有模型都经过 K = 32 和 L = 3 的训练,实验效果如下图:

可以从上图看出,Glow 采用的方法都取得了较小的平均负对数似然,这说明了在实验上是优于其他几个模型的。

为了验证 RealNVP 和Glow 整体的框架下的差距,实验进一步扩展,比较了CIFAR-10,ImageNet 和 LSUN 数据集上两者的差距,在相同预处理下得到的结果如下:

正如上面表格所显示的,模型在所有数据集上实现了显着的改进。 

在高分辨率图像的生成上,Glow 使用了 CelebA-HQ 数据集,数据集包含 3 万张高分辨率的图片。在高分辨率下,多尺度的丰富可能会让得到的潜在变量具有更多的图像细节。试验中采用了退火算法来优化实验,在退火参数 T=0.7 时候,合成的随机样本如下图:

可以看到合成的图像质量和合理性都比价高,为了对潜在变量插值生成图像,实验以两组真实图片为依据,插值中间的过渡,生成的结果如下:

从上图能看出整体的过渡还是相当顺畅的,这也是Glow 在潜在变量精确推断的优势所在,这样的实验结果也是让人惊喜的!

为了生成更多含语义的图像,文章利用了一些标签来监督训练,对于不同人脸属性合成的图像如下:

退火模型对提高生成也是很重要的环节,文章对比了不同退火参数 T 下的实验效果,合理的 T 的选择对于实验效果还是很重要的。

为了说明模型深度(多尺度)的意义,文中对比了 L=4 和 L=6 的效果,可以看出多尺度对于整体模型的意义很大。

训练基于流的生成模型操纵属性的简单代码:

最后再来一波蜜汁变脸,没看够的朋友戳文末视频吧~

论文链接:

https://d4mucfpksywv.cloudfront.net/research-covers/glow/paper/glow.pdf

项目代码(TensorFlow):

https://github.com/openai/glow

[1]. NICE: Non-linearindependent components estimation" Laurent Dinh, David Krueger, YoshuaBengio. ArXiv 2014.

[2]. Density estimationusing Real NVP. Ding et al, 2016.

(0)

相关推荐