开源了!英伟达最新换脸AI:一狗生万物,并不需要多少数据 | Demo可玩耍

308 阅读3分钟
原文链接: zhuanlan.zhihu.com
圆栗子 发自 凹非寺
量子位 报道 | 公众号 QbitAI


英伟达家的新AI,可以把视频里的一只金毛,迅速变成猫鼬。

重点是,不用多少数据。只要给AI看两张猫鼬的静态图:



在看到这两张图之前,AI从来没有见过猫鼬这种动物,训练集里没有。

AI没见过的动物还有很多,只要给它一两张照片熟悉一下,就可以把金毛换成它们的脸。

比如,凶猛的大型猫科动物:



这样说来,金毛的亲戚如哈士奇等辈,更加不在话下:



虽说同是图到图的翻译,同是无监督,这只AI和马变斑马的前辈非常不同。前辈只能在自己见过的动物之间做翻译。训练的时候,看过许多马,也看过许多斑马;

而英伟达的新选手,相当于训练中从没见过斑马。训练集里没有的动物,只要测试的时候能看到一两张图,就够了。

小样本学习 (Few-Shot Learning) 算法,对训练数据的要求大大大大大大降低了。

团队把算法开源了,还上线了一键换脸Demo。所以,先玩耍一下再讲原理。

错误与正确的打开方式

在下鸡冻地尝试了Demo

第一题,把一只高冷的喵传了上去,用方框选中头部。


△ 鸣谢我司夏老司


于是,各种动物都获得了半侧面的冷峻


第二题,把一只雷布斯传了上去,也是半侧面:


意想不到,生成了贵族气息的半兽人



AI的艺术天分扑面而来,不过还是要郑重提醒各位:

Demo应用叫做宠物换脸 (PetSwap) ,请选择正确的打开方式,下面是正确示范。

第三题,冲破次元壁。去吧,大侦探皮卡丘:



大家都戴上了福尔摩斯的帽子,不过只有右上角的猎犬,解锁了性感的腮红

真是一个优雅又充实的早晨。

玩够,该看原理了。

为什么只要看一眼?

就像开头讲到的,这是一个小样本翻译器。它要把内容图 (Content Image) 如金毛,换成类别图 (Class Image) ,如哈士奇或者美洲狮



模型分为三个部分:

一是内容编码器 (Content Encoder) ,粉色部分。它把输入的内容图 (金毛) ,映射到一个内容潜码 (Content Latent Code) 上。

二是类别编码器 (Class Encoder) ,绿色部分。先把每张类别图 (哈士奇) 映射到一个潜码上。然后取个平均,就得到整个类别的潜码了。

三是解码器 (Decoder) ,蓝色部分。先把类别潜码映射到adaIN参数上,然后把内容潜码做个解码,来生成翻译的结果图。

训练的时候,数据集里有金毛也有哈士奇。AI就在这些见过的类别之间,修炼换脸技能:



可是,训练集里没有美洲狮。测试的时候,要生成美洲狮怎么办呢?

秘密就在这里:当类别图和内容图长得一样的时候,就让模型生成一个重构 (Reconstruction) 。

这样,只要在测试的过程中,临时看一张美洲狮 (或者几张) ,就能把没见过的瞬间变为见过的。AI把训练集里的狗,翻译美洲狮,也就不难了:



大功告成。

你也快去玩啊

这样 (优) 秀的AI,你一定也想调教一下。

代码、Demo、论文,都在这里了:

Demo传送门:
https://nvlabs.github.io/FUNIT/petswap.html

论文传送门:
https://arxiv.org/abs/1905.01723

代码传送门:
https://github.com/nvlabs/FUNIT/

主页传送门:
https://nvlabs.github.io/FUNIT/

量子位 · QbitAI

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

戳右上角「+关注」获取最新资讯↗↗

如果喜欢,请分享or点赞吧~比心❤