鬼畜栗 发自 凹非寺
量子位 出品 | 公众号 QbitAI

用生成对抗网络 (GAN) 制造表情,本不是什么新玩法。

△PPT表情包举栗

不过,从前的GAN只会生成一些互无关联的表情。这样,即便做成动图,也拥有浓厚的PPT风韵。

它们的表情包技能,是不完整的。

GANimation可不一样,能给图像里的人类,生成连续变化的表情,让他们身不由己地动起来。

GAN能生成连续表情了,让你笑成一张动图 |ECCV·开源-深度学习中文社区

听名字也能感受到,新选手的动画属性。于是,在下把这一串进行中的围笑,做成了动图。

△ 笑一秒

生动的假笑,是在完全无监督的环境里炼成的,不需要变化前变化后这样成对的数据来训练。

GANimation入选了ECCV 2018的Oral环节。评审里面,肯定有一小撮心系Gif事业的人类。

表情的渐变

那么,来看一下GANimation是如何让面部表情,发生连续变化的。

首先,观察神经网络结构,这里当然要包含一个生成模型 (G) 和一个判别模型 (D) 。

GAN能生成连续表情了,让你笑成一张动图 |ECCV·开源-深度学习中文社区

生成模块是双向工作的,既可以给输入的图像,做出想要的表情,也可以从做好的表情出发,回到输入的样子。

所以,把动图做成双向播放,不只是为了顺滑的效果哟。

△ 机智的我

然后,重点来了。

能让表情发生变化的,是一些名为动作单元 (Action Unit, AU) 的东西。它来自前人发明的面部动作编码系统(FACS)。

GAN能生成连续表情了,让你笑成一张动图 |ECCV·开源-深度学习中文社区
△ 不同的AU,负责不同的肌群

每个AU各司其职,比如AU25 (右二) 可以让人开口闭口 ,AU45 (右一) 决定睁眼闭眼。

如此一来,不同情感的表达,动用的AU也不同。比如,一个面无表情的少女变得恐惧,调动的是AU1、2、4、5、7、20和26这七个。

GAN能生成连续表情了,让你笑成一张动图 |ECCV·开源-深度学习中文社区

如果要连续变化呢?有个参数叫α,负责调节AU的激活程度,只要一点一点激活,表情就会不知不觉地改变了。

所有AU,都可以从0开始逐渐激活到1,0表示不变,1表示变动最大。

还以恐惧的少女为栗,从有点吓到慢慢变成吓得不轻,就是那七个AU的激活程度在慢慢变化。

单独调vs同时调

再来看一次这张图,这是每个AU单独调节的效果。

GAN能生成连续表情了,让你笑成一张动图 |ECCV·开源-深度学习中文社区

而上文出现过 (除喵之外) 的动图,还有即将出现的两幅动图,都是同时调节多个AU,生成的动态表情。

两种操作相比,后者难度更大,按照论文作者的说法,是“挑战模型的极限”。

不过,团队依然对GANimation的训练成果表示满意。毕竟,用人类照片喂养的AI,连阿凡达都不怕。

与人类脸部相异只是其一。除此之外,改变面部表情的操作,对阴影渲染的要求很高,而阿凡达又处在非自然的光照条件之下,难度升级。

考验叠加的情形之下,GANimation依然表现稳定,实属不易。

△ 被夸到害羞

研究人员说,复杂情况下不乱阵脚,依靠的是注意力机制 (Attention Mechanism) ,即每个AU有不同的职责。

以上就是连续表情的生成。那么,为动图而生的AI,在不连续的任务里表现如何?

其实,上文出镜的恐惧少女,是GANimation同许多对手比赛的一个片段,比赛内容便是生成互不相干的表情。

它最强的对手,是一路璀璨的StarGAN。不过……

GAN能生成连续表情了,让你笑成一张动图 |ECCV·开源-深度学习中文社区

StarGAN生成的表情,跟原图相比,清晰度的损失比较大。

而GANimation生成的少女,大多是相对清晰的少女。

可能StarGAN的作品,与原图更像同一个人,但在相似度分辨率之间,GANimation也算找到了一种比较理想的取舍。不分胜负。

△ 已为您生成:离散的夜王

其他选手,不论看分辨率还是相似度,都基本属于陪练了。

颜艺是百年大计

当然,GANimation也是有局限性的。

GAN能生成连续表情了,让你笑成一张动图 |ECCV·开源-深度学习中文社区

比如,输入图像的表情比较极端的时候,注意力机制的权重分配会出现一些问题,然后发生上图的惨状。

不过,路还长。再说,极端表情本身已经是表情包了嘛。

最后介绍一下,论文作者来自加泰罗尼亚理工大学,以及俄亥俄州立大学哥伦布分校。

GAN能生成连续表情了,让你笑成一张动图 |ECCV·开源-深度学习中文社区

ECCV Oral论文传送门:
arxiv.org/pdf/1807.0925

开源代码:
github.com/albertpumaro

GAN能生成连续表情了,让你笑成一张动图 |ECCV·开源-深度学习中文社区
△大家来找茬

欢迎大家关注我们的专栏:量子位 - 知乎专栏

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI· 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态