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

来看几个,先是人形的:

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

再来个兽形的:

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

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

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

你可能会问,这很难吗?

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

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

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

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

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

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

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

关键在控制噪声

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

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

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

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

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

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

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

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

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

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

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

▲ 来自 Towards Data Science

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

可控的创新

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

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

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

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

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

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

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

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

改了,但没完全改。

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

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

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

还提出实用 Workflow

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

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

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

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

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

论文一作 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