皮克斯技术指导辞职读博:研究AI设计怪物,从《游戏王》卡牌开始
梦晨 发自 凹非寺
量子位 报道 | 公众号 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
皮克斯技术指导辞职读博:研究AI设计怪物,从《游戏王》卡牌开始相关推荐
- 辞职读博:研究AI设计怪物,从《游戏王》卡牌开始
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 梦晨 发自 凹非寺 量子位 报道 | 公众号 QbitAI 让AI画 ...
- 惊叹!中科院学霸和本硕博985在读博士的AI进阶之路
今天给大家推荐一个技术大佬:Sophia Sophia毕业于中科院,现在任某上市公司担任AI算法工程师:Sophia带领了本硕博985的大佬开了个公众号,与读者分享一些深度学习.机器学习.图像解译.人 ...
- 想要入坑机器学习?这是MIT在读博士的AI心得
从科研社区中汲取营养 找论文 AI 领域的论文可以在 arXiv 上找到和发布.现在的论文数量非常令人振奋.社区中的许多人降低了从噪声中分辨出信号的难度.Andrej Karpathy 开发了 arX ...
- 我在哥大读博的五年,万字总结
点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...
- 热议:老公今年已经34周岁想读博,以后做科研,怎么办?
有网友提问:我们有一个三岁儿子,在某一线城市,家庭年收入大概50万,我的年收入在二十七八万左右.房子每个月贷款8000,如果他读博我们的收入基本是要减半,而且孩子慢慢长大,教育也是一笔比较大的花销,好 ...
- 热议:老公今年已经 34 周岁,现在想读博,以后做科研,是否应该支持他读?...
点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐ 点击领取全栈资料:全栈资料 有网友提问:我们有一个三岁儿子,在某一线城市,家庭年收入大概50万,我的年收入在二十七八万左右.房子每个月贷款8 ...
- 热议:老公今年已经 34 周岁,事业一直不太顺利,现在想读博,以后做科研,是否应该支持他读?...
来自:知乎 链接:https://www.zhihu.com/question/494041798 有网友提问:我们有一个三岁儿子,在某一线城市,家庭年收入大概50万,我的年收入在二十七八万左右.房子 ...
- 热议:老公今年已经34周岁,事业一直不太顺利,现在想读博,以后做科研,是否应该支持他读?...
有网友提问:我们有一个三岁儿子,在某一线城市,家庭年收入大概50万,我的年收入在二十七八万左右.房子每个月贷款8000,如果他读博我们的收入基本是要减半,而且孩子慢慢长大,教育也是一笔比较大的花销,好 ...
- 业界 | 皮克斯经典动画电影怎样炼成?离不开数学、模型和算法
Pixar用技术带领动画师摆脱简单多边形的束缚,用几何学把故事描述得更加完美. Tony DeRose在纽约数学博物馆讲厅的坐席间不断穿梭.他身着花哨的带扣T恤,一身Pixar员工的标准打扮,横竖看起 ...
最新文章
- awk截取字符命令_Linux运维基础技能: 脚本编程与Linux命令
- asp连接mysql视频_asp连接mysql数据库详细实现代码
- c# 读取txt方法
- 安全狗深圳主题沙龙会:企业如何打造云安全堡垒
- 《剑指Offer》62:圆圈中最后剩下的数字(约瑟夫环)
- 为何不精通C? 03 深入剖析声明
- 三个等于号===和两个等于号==的区别
- 静态变量和实例变量的区别。
- 我的世界服务器氪金系统怎么做,[经济]PPRMB销售系统 1.3.1 —— 地图扫码自动到账,氪金系统如此简单[全版本]...
- react 把前后台的axios请求放在一起_可靠React组件设计的7个准则之SRP
- java变量-是否区分大小写?
- 面试题 MySQL的慢查询、如何监控、如何排查?
- PHP静态方法中调用非静态方法
- java iterator遍历map_使用Iterator输出map,遍历map集合
- matlab程序设计题题库及答案,matlab程序设计例题及答案
- 企业管理软件系统的重要性
- 请问,“什么知识才是值得学习的?”
- 打印机共享怎么设置?如何设置打印机共享?
- JetBrains公司旗下开发工具简介
- 音乐:《班得瑞》音乐项目, 喜欢听他们的歌
热门文章
- 解决微信二次分享失败--后面被加上from=singlemessageisappinstalled=0的解决方案
- Freescale 车身控制模块(BCM) 解决方案
- 在1 MB RAM中排序100万个8位数字
- UTF-8,UTF-16和UTF-32
- SpringBoot系列: RestTemplate 快速入门
- github建站之路
- QuickBI助你成为分析师-数据建模(一)
- 使用自定义色系美化JfreeChart图表
- 一元三次方程求解matlab_初中数学最全函数/方程【实际应用题】分类详解提升必学必练!...
- jvm类加载过程_JVM知识点——深入理解JVM的类加载