前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二次元萌妹高清舞姿随心变,换装只需一瞬间 | 又是GAN立功了

二次元萌妹高清舞姿随心变,换装只需一瞬间 | 又是GAN立功了

作者头像
量子位
发布2018-07-24 11:29:08
1K0
发布2018-07-24 11:29:08
举报
文章被收录于专栏:量子位量子位
夏乙 允中 发自 凹非寺 量子位 出品 | 公众号 QbitAI

全身·高清·二次元·妹子·跳舞·视频,已经可以全自动生成了!换身衣服只需一瞬间,妹子的姿势嘛,全由你决定。

形象和舞姿,大致是这样的:

这里还有个比GIF图丰富(一点点)的视频版:

视频内容

少年们别激动,西斯卡尼擦干鼻血听量子位继续介绍。

这次造福群众的,是日本游戏公司DeNA。他们在官方网站上详细介绍了如何运用生成对抗网络(GAN)制造会跳舞的512×512像素卡通妹子,这里有一个比较直观的视频:

视频内容

谷歌大脑研究员David Ha看见这项研究,在Twitter上热情推荐还嫌不够,又跑去Reddit上发了个链接。Reddit机器学习版用户反响热烈,不到一天时间就点了180多个赞。

沙发区网友为这项研究脑补了非常重大的意义:

离waifu生成又进一步,技术真好!

甚至有志存高远的好少年评价说:

绅士们(gentlemen, not hentai),我入行机器学习为的就是这个啊!

怎么实现?

好了,现在我们进入正题:这是怎么实现的?

DeNA把这项任务叫做“全身高分辨率卡通人物生成”。他们所用的模型,叫PSGAN,这个名字和Photoshop毫无关系,全称是渐进式结构条件生成对抗网络(Progressive Structure-conditional Generative Adversarial Networks)。

生成跳舞卡通妹子的PSGAN,有两大能力:

一是控制妹子的外观风格,在我们所看到的研究结果里,约等于妹子穿什么。这个任务是通过插入与服装特征相对应的隐藏值来完成的。

二是让妹子的姿势符合输入的姿势信息。对于固定的隐藏值(服装特征),一组连续的姿势信息就能让妹子动起来。

实现这两大能力的关键,就是让GAN学习带有结构条件的图像表示,这里的结构条件就是指姿势信息,也就是上图中的人体关键点图示。

在训练过程中,PSGAN需要学会根据姿势信息生成妹子,还要逐步提升图像的分辨率。

PSGAN所用的生成器和鉴别器结构、训练阶段设计、损失函数等,基本上来自英伟达那个18天生成高清明星脸的研究,也就是Karras等人发表在ICLR 2018上的论文:

Progressive Growing of GANs for Improved Quality, Stability, and Variation 作者:Tero Karras, Timo Aila, Samuli Laine, Jaakko Lehtinen PDF:https://arxiv.org/pdf/1710.10196.pdf 代码:https://github.com/tkarras/progressive_growing_of_gans

当然,也并不是直接拿来用。PSGAN在每个分辨率上都添加了相应分辨率的姿势图,用来给生成器和鉴别器提供结构条件。

有了这一点小改动,每种分辨率上的生成器和鉴别器训练就都是以结构为条件的了,渐进式训练更加稳定。

上图是PSGAN的生成器(G)和鉴别器(D)架构,白色方块代表分辨率为NxN的可学习卷积层,而灰色方块,代表着用于结构条件的分辨率为NxN的不可学习下采样层,负责把姿势信息的分辨率缩减到NxN。

训练数据集

要想模型好,数据少不了。

对于PSGAN,需要什么样的数据集?答案是:成对的图像和关键点坐标。

为了构成这样的数据集,这里使用了由Unity合成的原始Avatar Anime-Character数据集,以及由Openpose探测关键点而形成的DeepFashion数据集。

Avatar Anime-Character数据集

为PSGAN构建数据集,需要满足三个要求:

1、姿态多样性。

为了生成平滑、自然的动画,需要准备各种各样不同的姿势。

2、训练图像的数量。

通过使用Unity生成的3D建模角色形象(Avatar),无需任何手动注释就可以获得大量具有关键点贴图的合成图像。

3、背景消除。

我们将背景颜色设置为白色,并且消除掉不必要的信息,以免对图像生成产生负面影响。

我们将一个角色形象的几个连续动作分解为600个姿势,并且捕捉每个姿势的关键点。同时也对79种服饰进行了同样的处理,总共获得了47400张图像。我们还基于3D模型的骨骼位置获取了20个关键点。

下图显示了训练数据的样本。动漫角色(第一行)和姿势图片(第二行)。

DeepFashion数据集

PSGAN利用姿态信息在图像生成网络上加入结构条件。我们使用Openpose从没有关键点注释的图像中提取关键点坐标。关键点的数量是18个,关键点检测少于10个的案例会被舍弃。关少的关键点会填入-1,其他关键点设置为1。

指日可待

当然,这个跳舞妹子生成器现在还不够成熟。作者也承认,脸还只有一张,姿势也就那么几套,哪够少年们欣赏。

所以他们的下一步,就是试着把PSGAN搬到更多条件下。更厉害的是,前面提到的Avatar Anime-Character数据集,也打算开放出来。

如果你也关注这项研究的后续,可以和我们一起关注濱田晃一的Twitter(@hamadakoichi)。

DeNA官网没有列出研究的参与者,不过从发Twitter的热情程度来看,这家公司的研究工程师濱田晃一显然是作者(之一)。

除了DeNA的作者(们)之外,Google也有大神对这个研究表现出了浓厚的兴趣。

在Google负责Tensorflow.js的Nikhil Thorat看到这个项目之后,迅速艾特了那位把估计人体姿势的PoseNet放到TensorFlow.js上的小哥Dan Oved,商量着要把这个动画少女生成器也弄到posenet上去。

期待他的愿望早日实现,期待posenet上的PSGAN更加简单好上手~

如果你现在就迫不及待想自己训练一个……可以试试参考上文提到的Progressive Growing of GANs,再配合DeNA介绍的训练方法。不过,自己搞定数据集可能难度不低。

DeNA原文:http://dena.com/intl/anime-generation/

waifu生成,指日可待。(/≧▽≦)/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 怎么实现?
  • 训练数据集
  • 指日可待
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档