本文 GitHub https://github.com/Jack-Cherish/PythonPark 已收录,有技术干货文章,整理的学习资料,一线大厂面试经验分享等,欢迎 Star 和 完善。
一、前言
大家好,我是 Jack 。
去年发表的「Talking Head Anime」大家都看过了吧?
最近,这位谷歌工程师对算法进行了升级,「Talking Head Anime 2」效果更好!
只需要一张 PNG 二次元角色图片,就可以生成虚拟偶像,生成带面部表情捕捉的 Vtuber 角色。
作者亲自上场,动漫头像根据作者的口型和头部动作实时「演唱」,作者的完整视频:
老规矩,今天就教大家怎么玩!
二、算法原理
算法的核心思想是:给定某个动漫人物的一张人脸图像和六轴的姿态信息(Pose),生成同一人物的另一张人脸图像。
通过实时控制六轴的姿态信息(Pose),来达到实时控制动漫人物的效果。
整个过程分类两个步骤:
- 第一步:改变面部表情,即控制眼睛和嘴的开闭程度。
- 第二步:人脸旋转。
每一步都使用单独的一个网络,并将第一个网络的输出作为第二个网络的输入。
第一个网络为人脸变形器,第二个网络为人脸旋转器。
为了获得更好的面部动作,作者本次升级将姿态维度增加到了 42 维。
同时在人脸变形器中增加了眉毛、眼睛、嘴巴形变器。
眉毛变形器:可以分割出眉毛,并控制眉毛扭曲的形状。
眼睛和嘴巴变形器的网络也是类似操作。
更具体的原理,详见作者的论文:
https://pkhungurn.github.io/talking-head-anime-2/
三、算法测试
「Talking Head Anime 2」还没有开源,不过应该马上就有了。
着急,可以先玩一玩「Talking Head Anime」,效果也很不错,同时也算为第二代做环境的准备了。
项目地址:
https://github.com/pkhungurn/talking-head-anime-demo
第一步:配置开发环境。
依赖不多,使用 Anaconda 配置安装下即可。
这里有详细的环境配置教程:《一劳永逸的 Python 开发环境搭建》
第二步:下载代码和权重文件。
一共四个权重文件,下载好并它们放在工程目录的 data 目录下。
我将代码和权重文件,进行了打包,可以直接下载使用(提取码:jack):
https://pan.baidu.com/s/1MlBYx2EhyZgRoD7nXWayBA
第三步:运行程序。
1 | python app/manual_poser.py |
超级简单,运行效果:
四、总结
很期待第二个优化版本,效果绝对更好!
真实人脸也是可以这样控制的,只是需要的维度更多,数据更多。
现在各种虚拟主播已经登场了,在直播领域上线了不少相关产品,后续这类技术会做的越来越好。
三次元的人脸模型驱动也将不在话下。
我是 Jack,我们下期见。
文章持续更新,可以微信公众号搜索【JackCui-AI】第一时间阅读,本文 GitHub https://github.com/Jack-Cherish/PythonPark 已经收录,有大厂面试完整考点,欢迎 Star。
2021年2月22日 下午1:20 沙发
import torch
ModuleNotFoundError: No module named ‘torch’
老师我遇到问题了 下载完GIThub 按照教程搭建好环境 做到第三步的时候提示我这个, 它的意思是没有模型名字叫“torch”的文件 请问我想的对吗 怎么解决
2021年2月24日 上午11:03 1层
@小菜P 先配置开发环境。
2021年2月24日 下午12:23 2层
@Jack Cui 老师 我在搭建环境的时候遇到下面的报错情况是什么意思 希望老师抽空解答一下
2021年2月24日 下午6:59 3层
@小菜P 别贴那么长的代码,你就是环境没有配置,没有python基础嘛?
https://cuijiahua.com/blog/2020/10/dl-basics-1.html
把第三方库安装好!
2021年3月10日 下午10:12 板凳
嘴巴动不了哎,老师这个是本来就动不了还是,还是说我调试的哪里不对啊。