火眼金睛:教你怎么识别AI生成的假脸

1,369 阅读6分钟

大家先看两张图,猜猜下面这两个人是不是真的,答案后面揭晓。

2014年,机器学习研究者Ian Goodfellow提出了后来非常有名的“生成式对抗网络”(GAN)。之所以称之为“生成式”,是因为网络的输出并非对输入进行预测(比如是不是热狗),而是尽可能地模仿输入。这种网络包含两个相互博弈的神经网络,像“猫捉老鼠”一样对抗:一个尽力去忽悠另一个,让它相信自己生成的是真样本,而另一个则尽力去区分真假样本。

使用“生成式对抗网络”几乎能生成任何图片,其中就包括人脸。文章开头的那两张人脸就是用这种网络生成的,世界上并不存在这两个人

2014年GAN刚提出来时,它生成的人脸还很粗糙,一眼就能看出来真假:

但是后来随着不断对它改进,到了2017年10月份,GAN已经能生成非常逼真的人脸,很难辨认真假:

图:Karras等人提出的ProGAN生成的人脸

如果对于辨认真假脸的难度没有什么概念,可以先玩玩麻省理工的几个学生最近制作的一个小游戏。这个游戏的目的就是了解目前AI生成的人脸能否瞒过人类的眼睛。

打开游戏页面,简单填写你年龄和性别,提交后就能玩游戏了。

玩法就是页面上弹出一张人脸照片,显示一定时间后,就让你选择是“真”还是“假”,每一局猜6张照片。游戏一共有两关,第一关是显示整张人脸,第二关是把人脸的眼睛打上了码。其中每一关又分为5个难度,分别是让人脸显示5秒,2秒,1秒,0.5秒和0.25秒。

试玩了一下,发现其实还是挺难的,最好的成绩是6张中猜对了5个,最惨的一局全军覆没。从中也可以看出如今AI在人脸生成方面已经相当厉害了。

游戏传送门:

nikola.mit.edu/

其实要想正确识别出所有假脸也是有可能的,但是要找到技巧,哪些呢?我们下面就把它们分享给大家。

如今AI生成的人脸已能如此逼真,有没有办法能辨别出它们?机器学习专家Kyle McDonald总结了这几个秘诀。

  • 直发看起来像画上去的一样

这种现象在AI生成的直发里很常见,特别是长头发。虽然头发的细微部分很逼真,但整体来看头发过于直了,没有那种略微自然弯曲的感觉,看上去很像是有人拿刷子或调色刀往上面直愣愣抹了一道后的结果。如果见到这种头发有点怪异的人脸照片,就要留心了。

  • 背景文字难以辨认

人脸图像训练出来的GAN很难捕捉背景中结构复杂的信息。而且,GAN显示训练数据的原始版本与镜像版本两个版本,这意味着它们在为文字书写建模时存在困难,因此通常它只出现在一个方向上。所以如果人脸背景中的文字扭曲变形,基本就可以判定这是AI生成的结果。

  • 背景有点超现实主义风格

GAN之所以能生成如此逼真人脸的原因之一就是所有训练数据集中在了一起。这意味着当涉及到眼睛和耳朵的位置和渲染时,GAN的可变性很小。另一方面,人脸图像的背景里可能什么东西都有。GAN难以给所有内容建模,最后往往以一个大致模糊的背景将之概括,而不是复原真实的背景。因此,AI生成的人脸背景往往有点超现实主义风格。

  • 图像不对称

GAN很难处理图像中的长距离元素。虽然在训练AI的数据集,像耳环这样的元素常常成对出现,但在AI生成的图像中却很少这样。例如,现实中人眼一般看向同一个方向,眼球一般颜色一样(极少数异瞳情况例外),但AI生成的人眼,大部分看向的方向不一致,且眼球差异较大。另外耳朵也是一个重要指标,AI生成的假脸中,如果仔细看,会发现两只耳朵的大小甚至高度并不一致。

  • 牙口怪异

GAN擅长生成概括性画面,但目前仍难以处理像牙齿这样的半规则细节问题。有时GAN会生成错位的牙齿,或者以不寻常的方式拉伸或收缩每颗牙齿。以前在其它领域比如合成包含砖块的图像纹理时,也出现过此类问题。如果画面中人物的牙口看着很怪异,那么这是张假脸的可能性就很高。

  • 头发凌乱不堪

这是识别GAN生成的图像的最快方法之一。通常情况下,GAN会倾向于把头发缩成一团,在肩膀周围随机生成几缕头发,前额的头发凝结成几条。因为人类的发型变化很大,而且细节信息很多,因而成为GAN最难生成的地方之一。有些不是头发的地方常常会被GAN变成头发纹理。所以如果图像中的人脸很精致很整洁,但头发却跟丐帮弟子一样凌乱不堪,那多半这是个假脸。

  • 性别特征不正常

以前文所说的那个能生成好莱坞明星人脸的ProGAN为例,训练它的数据集包含了1万个明星的20万张图像。数据集中的人脸并没有出现脸上有毛、化浓妆的情况,但GAN却把不同性别的多个属性混合在了一起,比如上图中的人脸既有胡子,又戴耳环,明显不是正常的人脸。原因可能就是当前GAN还没有学习清楚人类的具体生物特征。所以如果有些人脸的性别特征紊乱,那就是假图没跑了。

  • 出现半规则噪声

AI生成的人脸有些部位会出现半规则的噪声,比如水平或垂直的条带状纹理。例如上图,这可能是神经网络想模仿衣服的纹理。在判断真假脸时,仔细查看图像的纹理也很重要。

  • 颜色溢出

如果仔细甄别AI生成的图像,会发现某些部位存在颜色溢出的问题,还带着彩虹色光晕,多出现在人物的衣领、脖子和眼白部位。

真实人脸示例

我们来看看一些真实人脸。瞧瞧背景中清晰的文字、两边一致的耳环、整齐的牙口、自然的发型,所以如果仔细看,真假脸的区别之处还是很多的。

以上就是辨别是否为AI生成的假脸的几种技巧,送你一双“火眼金睛”。现在可以再回头玩玩这个游戏,看看能不能拿满分。