二次元的正确打开方式

本文 GitHub //github.com/Jack-Cherish/PythonPark 已收录,有技术干货文章,整理的学习资料,一线大厂面试经验分享等,欢迎 Star 和 完善。

一、前言

大家好,我是 Jack 。

去年发表的“Talking Head Anime”大家都看过了吧?

最近,这位谷歌工程师对算法进行了升级,“Talking Head Anime 2”效果更好

只需要一张 PNG 二次元角色图片,就可以生成虚拟偶像,生成带面部表情捕捉的 Vtuber 角色。

作者亲自上场,动漫头像根据作者的口型和头部动作实时“演唱”。

老规矩,今天就教大家怎么玩!

二、算法原理

算法的核心思想是:给定某个动漫人物的一张人脸图像和六轴的姿态信息(Pose),生成同一人物的另一张人脸图像。

通过实时控制六轴的姿态信息(Pose),来达到实时控制动漫人物的效果。

ai-2-4.jpg

整个过程分类两个步骤:

  • 第一步:改变面部表情,即控制眼睛和嘴的开闭程度。

  • 第二步:人脸旋转。

每一步都使用单独的一个网络,并将第一个网络的输出作为第二个网络的输入。

第一个网络为人脸变形器,第二个网络为人脸旋转器。

ai-2-5.png

为了获得更好的面部动作,作者本次升级将姿态维度增加到了 42 维

同时在人脸变形器中增加了眉毛、眼睛、嘴巴形变器。

ai-2-6.png

眉毛变形器:可以分割出眉毛,并控制眉毛扭曲的形状。

ai-2-7.png

眼睛和嘴巴变形器的网络也是类似操作。

ai-2-8.png

更具体的原理,详见作者的论文:

//pkhungurn.github.io/talking-head-anime-2/

三、算法测试

“Talking Head Anime 2”还没有开源,不过应该马上就有了。

着急,可以先玩一玩“Talking Head Anime”,效果也很不错,同时也算为第二代做环境的准备了。

项目地址:

//github.com/pkhungurn/talking-head-anime-demo

第一步:配置开发环境。

依赖不多,使用 Anaconda 配置安装下即可。

ai-2-9-1.png

这里有详细的环境配置教程:《一劳永逸的 Python 开发环境搭建

第二步:下载代码和权重文件。

一共四个权重文件,下载好并它们放在工程目录的 data 目录下。

ai-2-10.png

我将代码和权重文件,进行了打包,可以直接下载使用(提取码:jack):

//pan.baidu.com/s/1MlBYx2EhyZgRoD7nXWayBA

第三步:运行程序。

Python;toolbar:false">python app/manual_poser.py

超级简单,运行效果:

ai-2-11.gif

四、总结

很期待第二个优化版本,效果绝对更好!

真实人脸也是可以这样控制的,只是需要的维度更多,数据更多。

现在各种虚拟主播已经登场了,在直播领域上线了不少相关产品,后续这类技术会做的越来越好。

三次元的人脸模型驱动也将不在话下。

我是 Jack,我们下期见。

文章首发链接:

//mp.weixin.qq.com/s/dsI4wyRddYzmZoZrg1oV6w