Python实战社群

Java实战社群

长按识别下方二维码,按需求添加

扫码关注添加客服

进Python社群▲

扫码关注添加客服

进Java社群

萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI

只需要1张动漫头像,就能让你的二次元老婆“开口说话”:

甚至可以像虚拟主播一样摇晃脑袋唱歌:

不仅如此,动漫头像还能模拟你的口型和头部动作,实时“唱”出想要的效果来(作者亲自上场):

简直是老二刺螈玩家的福音。而且,不想露面的主播,也有了新的免费“虚拟主播”可选择。

那么,这是用的什么原理,让模型能达到这样的效果?

用3D模型,让2D头像动起来

这个模型最核心的思想,就是将图片和姿态参数输入系统,来“改变”输入图片中动漫人物的姿态。

听起来非常简单,但实际上并不容易实现。其一,对应的数据集不好找;其二,网络的体系结构和训练不容易搭建。

而且,作者也没能如愿找到多姿态的2D动漫角色数据集。

怎么办?

经过思考,作者选择采用大量3D模型(约8000个)对网络进行训练,因为这些3D模型的参数,是可控的。

除此之外,也还需要设计模型注释,以“圈”出模型的头部、发型和配饰等“需要旋转”的地方。

而动漫人物经过变化的眼睛和嘴型,也需要单独提取出来,用于考虑各种人物表情的变化。

根据3D人物的实际动画效果,就能设计出对应的网络了:从人物最主要的两个动作,即改变表情旋转脸部,来让人物“动起来”。

也就是说,首先需要控制眼睛和嘴张开的程度,然后,再想办法让动漫人物的头部“转起来”。

先是改变表情。这一步骤相对简单,只需要找到一个张嘴、睁眼的动漫头像,就能用算法,让主角眨眼睛、改变嘴型。

但控制脸部旋转的算法,则要更复杂一些,因为伴随着脸部转动的,虽然只有头部,但还要连同发型和配饰一同转动。

作者进一步改进算法后,控制面部旋转的网络模型,变得更加细化了一些:

首先找到需要旋转的部分、完成旋转,然后将输出图像的颜色控制与输入像素对应,最后将效果进行结合。

从人物的晃头、前后摆动来看,效果还是非常不错的。

不过,这还不是作者想要的模型,毕竟虹膜和眉毛还不能变化。

在对算法进行优化后,最新的模型,不仅能惟妙惟肖地做出生气、厌恶、沮丧的表情来,还能改变瞳孔和眉毛的形状,人物看起来也更逼真了。

效果如何?

应用到单张2D头像上的效果,还是挺能打的:

不仅能通过视频人脸检测,实时模拟人物的口型和表情:

还能用已有的视频人物控制它“说话”、“唱歌”,化身“虚拟主播”:

不过,单从3D模型的渲染效果来看,偶尔会出现一些失误,需要适当进行调整。

例如……这位黄发少年身上的剑,就会“随头移动”:

尽管头部的旋转已经非常完美,不过,本该在背后的剑,却也随着头部转动了起来……

作者本人也提到了这些细节,而且也指出,对于某些发型比较特殊的动漫人物来说,的确会出现不那么完美的情况。

例如,随着头部转动,出现辫子被“割断”的情况:

不过,这些也都还是细节上的问题。

作者表示,数据集也需要重点关注:他找的动漫头像,基本都是人物头像。

也就是说,如果训练数据与角色外观差异较大(例如兽人),就会出现这种情况:

如果你是兽人玩家,可能还需要自行准备数据集,再训练一个模型出来。

作者介绍

Pramook Khungurn,本硕毕业于MIT,博士就读于康奈尔大学计算机科学系,目前在谷歌日本(Google Japan)工作,专注于渲染算法和外观建模的研究。

读书期间,他也有不少计算机系的论文发表在SIGGRAPH等顶会上。(而且,还拥有比满分更高的GPA)

项目地址:
https://pkhungurn.github.io/talking-head-anime/

参考链接:
https://www.cs.cornell.edu/~pramook/
https://www.reddit.com/r/MachineLearning/comments/lafy8i/rp_talking_head_anime_from_a_single_image_2_more/

程序员专栏 扫码关注填加客服 长按识别下方二维码进群

近期精彩内容推荐:  

 几句话,离职了

 中国男性的私密数据大赏,女生勿入!

 为什么很多人用“ji32k7au4a83”作密码?

 一个月薪 12000 的北京程序员的真实生活 !

在看点这里好文分享给更多人↓↓

大叔也能“变”萌妹?1张动漫头像就可以,说话唱歌样样行相关推荐

  1. 二次元萌妹在电车上顺拐啾咪为哪般?

    金磊 博雯 发自 凹非寺 量子位 | 公众号 QbitAI 走进现世的二次元萌妹,会是什么样子? 瞧~下面这位长着一对精灵耳.在地铁上摇摇晃晃的妹子: 举手投足间无不散发着可爱俏皮的气息. 然鹅-- ...

  2. input限制文字个数但是输入中文时会被切断_Python文字转换语音,让你的文字会「说话」抠脚大汉秒变撒娇萌妹...

    APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为语音来获取信息. 我们用 Python 能否实现文字转语音呢,可以的,百度有个语音接口,可 ...

  3. 华人打造二次元老婆生成器!尔康容嬷嬷成萌妹,图像视频都能变 | Demo可玩

    杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 当你的女朋友变身二次元,是什么样子? 小声说:没有女朋友. 搞错了,再来! 你下一个二次元老婆,可能是真人生成的! 即便是容嬷嬷本嬷,也能瞬 ...

  4. Python文字转换语音,让你的文字会「说话」,抠脚大汉秒变撒娇萌妹

    APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为语音来获取信息. 我们用 Python 能否实现文字转语音呢,可以的,百度有个语音接口,可 ...

  5. Python文字转换语音,抠脚大汉秒变撒娇萌妹

    APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为语音来获取信息. 我们用 Python 能否实现文字转语音呢,可以的,百度有个语音接口,可 ...

  6. 用Python把文字转换成语音,抠脚大汉秒变撒娇萌妹,想想不寒而栗

    我们能否用 Python 能否实现文字转语音呢,可以的,百度有个语音接口,可以在 Python 中直接调用,甚至提供了多种声音选择,当然可以选择萌妹子的声音.嘿嘿- 安装百度接口 通过 pip 命令直 ...

  7. 电子漫画系列更新10张!古老的示波器,USB hub萌妹,超级酷的焊接壁画

    作者:晓宇,排版:晓宇 微信公众号:芯片之家(ID:chiphome-dy) 1.电子漫画系列更新,古老的示波器,USB hub萌妹,超级酷的焊接壁画,几个焊板子的妹子,还有SMT插件的漫画简图,最后 ...

  8. python 文字转语音 带情感_Python文字转换语音,让你的文字会「说话」抠脚大汉秒变撒娇萌妹...

    APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为语音来获取信息. 我们用 Python 能否实现文字转语音呢,可以的,百度有个语音接口,可 ...

  9. python说话语音代码_Python文字转换语音,让你的文字会「说话」,抠脚大汉秒变撒娇萌妹...

    APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为语音来获取信息. 我们用 Python 能否实现文字转语音呢,可以的,百度有个语音接口,可 ...

最新文章

  1. 还找不到想要的文章吗?公众号搜索方法大全
  2. micropython比c_选择C/C++还是选择MicroPython来开发?(第0章-第三节)
  3. python3 乱序函数 shuffle 简介
  4. SQLite数据库管理工具(SQLiteStudio)v3.1.1
  5. zerodivisionerror什么意思python-python里的raise是什么意思
  6. php钩子原理和实现
  7. python长整型字节数_Python将整数转换为16字节字节
  8. 前端学习(2179):vue-router-router的由来和vue-router
  9. SpringBoot集成Spring Security(二)注册 、密码加密、修改密码
  10. 数据科学 IPython 笔记本 8.8 直方图,分箱和密度
  11. linux之移动或重命名文件:mv
  12. 第2章:Maven的安装/2.1 Window下的安装
  13. 安卓中fragment的使用全解
  14. FreeRTOS 教程指南 学习笔记 第六章 中断管理(二)
  15. 在IDEA中调试JavaScript代码
  16. 有向图(3.基于十字链表的c++实现)
  17. 这个“忽悠”马云10亿的男人,还了阿里5000亿,今天当选为院士!
  18. ADO 笔记 ——关于RecordCount
  19. Android使用文件管理器打开指定文件夹,浏览里面的内容
  20. yolov4中的route和shortcut层

热门文章

  1. html5 汽车广告,车身广告常见的五种制作方法
  2. 如何重新开启小米平板的USB计算机连接功能
  3. 大数据揭示优质创业公司的十个数字特征
  4. PHP phpqrcode生成带颜色二维码方法封装
  5. Mybatis懒加载
  6. Excel 突显光标所在行列
  7. 随机游走matlab,从Matlab到Python的一维随机游走
  8. Slow HTTP Denial of Service Attack | 如何证明
  9. 《民法典》实施后,婚后父母出资购房归属问题
  10. GCC Libquadmath库介绍