Press "Enter" to skip to content

极少的样本实现极逼真的变形,“AI造假神术”驱动的换脸模型有望颠覆时尚界

在人工智能“造假”领域有着三大“邪术”: “AI 换脸术”Deepfake 、“无中生有术”StyleGAN,和“造假神术”CycleGAN 与 StarGAN 。其中,“造假神术”大小通吃:大,可以让你把风景照随意变成大师的油画;小,可以让你按心情给自拍换个造型,染个头发,改个表情。这便是“图像风格迁移”。

 

但是,如绝大多数机器学习领域一样,人工智能“造假”的成本可不低。一个成熟的模型是由大量训练数据“喂”出来的。训练样本不够,模型吐出来的只能被称为“半成品”。

 

近日,英伟达的研究科学家刘洺堉等人,发明了一个称为 FUNIT (Few-shot Unsupervised Image-to-image Translation)的小样本非监督图像转换模型,只需少量样本(几张照片),就能将一张新图片中的一些姿势、五官分布等特征转换到这些样本图上。 赋予AI 可以媲美人类的“脑补”能力:“看几眼”新物种,便能“推测”出新物种某些(与新图片一致的)动作姿势,就像有人第一眼看到独角兽,便能想象它怎样奔跑。

 

 

图 | 输入吐舌歪头杀的金毛以及两张模型训练集中未出现过的新动物图像,输出吐舌歪头杀的新动物(来源:Ming-Yu Liu, et al./ nvidia)

 

对比其他非监督图图转换,FUNIT 一枝独秀,不仅秀在所需目标样本极少,而且秀在适用广,输入两张图像,从二狗子到猫主子,从小野豹到虎大爷,无不乖巧听话被转换。

 

FUNIT 模型框架

 

与其他各种“造假”模型一样,FUNIT 的本质也是生成对抗网络(GAN),但它改进了传统 GAN 的结构,并推出了一个独特的网络框架。模型由两部分组成:条件图像生成网络(Conditional image generator)和多任务对抗判别网络(Multi-task Adversarial Discriminator criminator)。

 

首先是条件图像生成网络,它的功能类似传统 GAN 中的 G,既生成网络。它的输入为一张“内容图”和一组“类别图”,输出则会在结构上与内容图类似,但在类别上与类别图一样,实现图像风格转移。

 

 

举个例子:如果内容图为一只张嘴吐舌的狗,而类别图是小狐狸的正脸与侧脸,输出的便是张嘴吐舌的小狐狸。

 

训练时,条件图像生成网络在内容图和类别图上进行如此的转换,而测试时,类别图是训练集中从未出现的图像(即未见过的动物),期望输出未见过动物的新动作。

 

在具体结构上面,条件图像生成网络是由内容编码器(Content encoder)、类别编码器(Class encoder)、解码器(Decoder)三部分组成。

 

内容编码器含有 4 个二维卷积层和 2 层残差网络,将内容图像映射成内容编码。

 

类别编码器含有 5 个二维卷积层和 1 个均值池化,分别将每个类别图像进行向量化,再取均值作为类别编码。

 

解码器含有多个自适应实例标准化残差网络(AdaIN Residual Blocks),即残差网络模型利用 AdaIN(Adaptive Instance Normalization)做归一化层。AdaIN 是风格迁移模型中的一个手段,本质是对 Instance Normalization(实例标准化)的改进,可以进行任意风格的图像迁移。

 

除此之外,解码器还存有多个卷积层,将内容编码做仿射变换(即风格迁移,仿射变换的参数由类别编码经过全连接层变换得到),得到具有内容图像特征的类别图像类似图。通俗来讲,编码解码后实现了将豹哥(抽取类别图像猎豹面部特征)转换成大眼卖萌的猎豹(内容图像是大眼卖萌狗子)。

 

 

图 | 小样本图像转换网络模型的三个子模型结构(来源:Ming-Yu Liu, et al./ nvidia)

 

多任务对抗判别网络的功能与传统GAN 中的 D,既判别网络类似。它需要判断图像是真实图像还是条件图像生成网络产生的转换图像。无论是哪种图像,判断失败都会加大惩罚,即加大损失函数,通过最小损失来逼生成网络的转换图像越来越逼真。

 

而与传统的判别网络不同,FUNIT 的判别模型为 Patch GAN discriminator,有 1 个卷积层和 10 个残差网络 ,和直接输出真伪的传统判别网络相比,Patch GAN 判别网络的输出是一个 NN 矩阵,每个矩阵元素代表对输入的某一图块的真伪判断。

 

训练与测试结果

 

FUNIT 模型在训练时会抽取内容图像的特征,生成具有该特征的他类动物。比如在训练过程中,将侧脸的狗子抽取,生成了长毛狗的侧脸。在模型足够泛化后进行测试时,仅用几张训练集中不存在的新图像作为类别图像(如猎豹),使用大眼卖萌汪的内容图像特征,便收获了猎豹的卖萌凝视。AI 此时便获得了“实用的想象力”,它凭借已看过的狗狗卖萌,在看几眼新动物——猎豹时,就知道猎豹的卖萌模样。

 

 

图 | FUNIT 模型训练过程和测试过程(来源:Ming-Yu Liu, et al./ nvidia)

 

在试验中,FUNIT 每次都可以使用极少的样本成功抽取特征,展现出可媲美人类的想象能力。

 

看见新狗子能知道它怎幺伸脖子,看见新猫咪能知道它怎幺伸舌头,看见新鸟知道它怎幺叉腿儿,即使训练集中从未出现,测试集出现类别图像 y1、y2 两张图,就能根据内容图 X,成功输出类似的图,可以说很强了。

 

 

图 | F UNIT 对小样本输入图像的成功动作转换,将输入的两张图像 y1、y2 赋予 x 的动作。(来源:Ming-Yu Liu, et al./ nvidia)

 

此外,FUNIT 还优于现有最佳的非监督图图转换模型StarGAN。

 

测试结果最右侧的 FUNIT 结果说明,即使训练集中没有目标图像(即以前没见过汪 y1,y2),当测试集中出现 y1,y2 时(即看见新汪),可以成功模拟出新汪内容图像(Input x)做的动作,而 StarGAN 在训练集中无新汪,即因为 FUNIT 也没见过新汪的 Fair(公平)结果时,输出图根本不是新汪在做动作。而 StarGAN 在训练集有新汪,即 Unfair(不公平)结果时,勉强输出了信息,但仍有点怪怪的,显然被 FUNIT 甩 n 条街。

 

 

图 | FUNIT 和训练集加入目标图像的 StarGAN、训练集未加入目标图像的 StarGAN 对比(来源:Ming-Yu Liu, et al./ nvidia)

 

介于 FUNIT 模型无需大量目标图像数据即可实现对内容图像的模拟,且泛化很强,它的使用前景极其广泛。想象一下,如果有一个拍你几张照片后,就能轻松把你的特征根据一张新照片进行替换的手机 APP,可以轻松模拟各种造型的美妆、服装、发型,哪些整容爱好者岂不是会爽翻天。

 

Demo 都准备好了,注意,图像包括但不限于犬科、猫科、植物花朵、炒面……但请考虑一下物种,本模型训练集主要是动物,请审慎尝试输入人类等其他物种图片。

 

大家快去试试吧! 地址:

 

https://nvlabs.github.io/FUNIT/petswap.html

 

-End-

 

参考:

 

https://arxiv.org/abs/1905.01723

 

https://arxiv.org/abs/1611.07004

 

https://arxiv.org/abs/1801.04406

 

https://arxiv.org/abs/1804.04732

 

video 介绍:https://www.youtube.com/watch?v=kgPAqsC8PLM

 

源代码:https://github.com/NVlabs/FUNIT

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注