皮克斯技术指导辞职读博:研究AI设计怪物,从《游戏王》卡牌开始

百家 作者:量子位 2021-09-04 16:42:06
梦晨 发自 凹非寺
量子位 报道 | 公众号 QbitAI

让AI画人脸见得多了,要是让AI画个幻想中的怪物又如何?

来看几个,先是人形的:

再来个兽形的:

还有诡异到说不出来属于什么型的:

你可能会问,这很难吗?

毕竟现在用GAN生成人脸都能以假乱真,生成怪物只要“瞎画”就行了,又不需要像谁。

一位从皮克斯辞职又跑去读博的小哥Vavilala,最近就在研究让AI辅助人类原画师设计怪物这件事。

他的答案是:难,但不是同一种难。

如今的GAN比如英伟达的StyleGAN2,在生成怪物任务上存在一个大问题:

只擅长改变画面的风格,但里面的怪物在人类看起来还是同一种。

他开始思考,如何才能让AI创造出新的怪物?

关键在控制噪声

让AI生成怪物图像,首先要面对问题是数据集变了。

像StyleGAN系列所用的高清人脸数据集FFHQ里面,有7万张人脸照片,而且都是大致朝向正面的大头照。

虽然人的性别年龄肤色表情不一样,但好歹整体结构是相同的,都是一个鼻子两个眼。

小哥用的怪物数据集是从YGOPRODeck上获取的卡牌游戏《游戏王》中的1万多张插画,其中可以算怪物的有6800张,这里面的怪物可是什么样都有。

怪物的图片资源本来就少还要分成不同种类,全身画像在姿势上差异也很大,相当于是稀疏型数据集

数据集变了,算法也要相应的改变。

先看看StyleGAN系列原版的算法。

StyleGAN一代继承自ProGAN,采用渐进式训练,从4x4分辨率开始,每层训练到稳定再将分辨率翻倍,直到1024x1024。


来自Towards Data Science

4x4到32x32分辨率层的特征能改变姿势、发型、脸型、五官等能识别一个人身份的粗粒度特征

从64x64到1024x1024分辨率层就只能调整一下皮肤的颜色和皱纹斑点等细节特征了。

同时StyleGAN系列又靠在每个分辨率层的卷积后添加噪声获得更丰富多样的面部特征,增强图像的质量。

在初代StyleGAN论文中有这样一个实验:

如下图所示,(a)是在所有层添加随机噪声,(b)是无噪声,(c)是只在64x64分辨率及以上的层添加噪声,(d)是只在4x4到32x32分辨率的层添加噪声。

从结果可以看出,对于生成人脸来说需要在所有层上添加噪声。

高分辨率层的噪声能够增加脸上和背景物体上的细节(a、c对比b、d),低分辨率层噪声又控制头发的卷曲看起来不那么夸张(a对比c)

小哥在用游戏王数据集训练的StyleGAN2上做了同样的实验。

结果发现,噪声对于生成怪物来说同样重要,但又有所不同。

用无噪声方法生成的怪物图像在FID分数上惨不忍睹(越小代表生成的图像质量越好)

在所有层加入噪声会好一些,而只在32x32分辨率以上的层加入噪声效果会更好。

这是因为稀疏型的怪物数据集特征太杂太多,画面还是全身的,噪声改变一点点很容易就面目全非。

等一下,这难道不就创造了新的怪物么?

仔细看上图,生成的几种怪物质量并不算高,容易出现不完整的特征和几种不同类型的特征胡乱拼凑。

修改噪声得到的图像还不可控,因为噪声是随机生成的,不同噪声对最终结果的影响也是不可解释的。

去掉低分辨率层的噪声这个方法,可以减少噪声对怪物图像粗粒度特征的影响,获得高质量图像图像的同时也保留了通过改变噪声获得随机细节的能力。

现在有了适用于生成怪物的魔改版StyleGAN2,最开始那个问题,让AI设计出新的怪物要怎么做?

其实还是靠去掉低分辨率层的噪声,这么一个简单的改动就能解决。

可控的创新

还是先看一下之前的做法。

StyleGAN2的后续研究中,阿尔托大学提出了PCA方法(Principal Component Analysis,主成分分析)

通过PCA可以在隐空间中找到代表某种特征变化的方向,沿着特定方向修改隐变量(latent variables)能做到独立可控制的修改人脸特征。

如果在生成怪物任务上沿用在所有分辨率层添加噪声的训练方法,PCA的效果又不行了。

此时改变隐变量反倒成了对风格的修改,怪物看起来还是同一种。

改了,但没完全改。

在低分辨率层不添加噪声的训练方法再次发挥了作用。

少了低分辨率层噪声的干扰,PCA方法更容易找出有意义的修改方向,让AI在中间一列原图的基础上设计出新的怪物。

还提出实用Workflow

另外值得一提的是,这位小哥不愧是在大公司实际业务上锻炼过又回到学术界的,写论文不忘了探讨一下如何打造方便一线设计师操作的工作流程。

比如将魔改版StyleGAN2部署到A100上推理时间平均可达0.05秒,能满足即时操作的要求。

再用Streamlit工具可以用很少代码创建交互式的图形界面,用滑块一类的控件方便地调整参数。

论文最后展示了使用GAN中常见的截断技巧(Trunction)、风格混合和PCA方法结合,是怎么一步步设计出新的怪物的。

论文一作Vaibhav Vavilala来自伊利诺伊大学厄巴纳-香槟分校。

他的导师是CV大牛David Forsyth,《计算机视觉:一种现代方法》的作者。

论文地址:
https://arxiv.org/abs/2108.08922

参考链接:
[1]StyleGAN 
https://arxiv.org/abs/1812.04948
[2]StyleGAN2 https://arxiv.org/abs/1912.04958
[3]PCA https://arxiv.org/abs/2004.02546
[4]https://towardsdatascience.com/progan-how-nvidia-generated-images-of-unprecedented-quality-51c98ec2cbd2

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

「智能汽车」交流群招募中!

欢迎关注智能汽车、自动驾驶的小伙伴们加入社群,与行业大咖交流、切磋,不错过智能汽车行业发展&技术进展。加好友请务必备注您的姓名-公司-职位 哦~



点这里

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接