开源最前线(ID:OpenSourceTop) 猿妹编译

链接:pkhungurn.github.io/talking-head-anime/


最近,一档停播了8年的王牌综艺《主持人大赛》火爆全网,一开播每一期都能上热搜:


动态表情合成制作(一张自拍就能生成专属3D形象)(1)


这档节目里撒贝宁是节目主持人,康辉与董卿则担任节目点评嘉宾,这三个可都是央视的颜值门面担当,想要不火都难,而且参赛嘉宾都是万里挑一的顶级选手,参赛画面堪称神仙打架。


除此之外,本次主持人大赛的大众评审采用的是3D虚拟形象,只需要大众评审的一张自拍照,就可以生成专属自己的3D虚拟形象,实现的效果你体会一下:


动态表情合成制作(一张自拍就能生成专属3D形象)(2)


这项技术其实是借助人工智能系统塑造出来的,最近,日本一位酷爱 Vtubers的粉丝结合了此前发表的多项 GAN 工作制作了两个动漫人物生成器的工具,也可以实现比上面3D虚拟形象,而且是动漫人物效果。


作者很喜欢VTubers,于是就将它和深度神经网络系统整合在一起,用户只要输入一个面部图像,就能生成相应角色的动漫人物,它的效果展示如下所示:



首先是一个基于GUI的单图动漫人脸表情生成器,从视频中可以看出该生成器具有多个参数可以控制动漫人物的面部表情,头部转动幅度,你还可以自由选择动漫人物形象,自定义以上参数。



接着就是实时模仿人脸表情,这点实现效果和主持人大赛中的大众评委可以说区别不大,它是通过摄像头获取人脸表情,然后由系统生成实时动态表情输出,下面就是输入奥巴马某段视频生成的效果:



其实要创建一个这样的项目并非一件易事,作者也细心对其进行详细的介绍,下面我们就一起来看看吧:


这个项目最开始要解决的问题是:给定一个动漫人物的脸部图像和一个“姿势”,生成另一个相同角色的图像,以使其脸部根据姿势而变化。脸部表情变化是一个6维向量。三个组件控制所述面部特征,并且具有在所述闭合间隔值,其中两个组件控制眼睛的张闭如下图所示:


动态表情合成制作(一张自拍就能生成专属3D形象)(3)


还有一个组件是控制嘴巴的闭合,参数变化如下:


动态表情合成制作(一张自拍就能生成专属3D形象)(4)


其他三个组件控制头的旋转方式:


动态表情合成制作(一张自拍就能生成专属3D形象)(5)


系统的输入和输出如下图所示:


动态表情合成制作(一张自拍就能生成专属3D形象)(6)


接着就是数据集的问题,虽然EmotioNet是具有所需注释类型的大型人脸数据集,但目前它还没有动漫角色的数据集,于是,作者自己生成了一个数据集,他从 MikuMikuDance 上下载了约8000个3D动画模型。


动态表情合成制作(一张自拍就能生成专属3D形象)(7)


我根据3D人物模型的动画效果来设计模型。将其拆解为两个步骤:第一个是改变面部表情(face morpher),控制眼睛和嘴巴张开的程度,第二个面部旋转(face rotator),两个模型相互独立,第二个模型是第一个模型的输入输出。


动态表情合成制作(一张自拍就能生成专属3D形象)(8)


对于面部表情模型,作者使用了Pumarola等人在他们的ECCV 2018论文中使用的生成器架构。面部旋转器要复杂得多。作者使用两种算法,在单一网络中实现人脸旋转,从而产生两个输出。


动态表情合成制作(一张自拍就能生成专属3D形象)(9)


此外,为了创建训练数据集,作者从Niconi Solid和BowlRoll等网站下载了大约13,000个MMD模型。光是下载模型就花了作者两个月的时间,最后还要进行筛选,最终剩下前面说的大约8000个模型。并将这些模型分为三个子集,以便可以使用它们来生成训练,验证和测试数据集。这三个数据集的数值细分如下:


动态表情合成制作(一张自拍就能生成专属3D形象)(10)


这些数据都是自动生成的,不过也需要花费16个小时才完成。


如果你想更详细了解这个项目,可通过该地址查看:pkhungurn.github.io/talking-head-anime/,只要输入一张2D图像就能生成如此逼真的动漫人物图,这个项目你粉了么?

,