二次元的正確打開方式

本文 GitHub //github.com/Jack-Cherish/PythonPark 已收錄,有技術乾貨文章,整理的學習資料,一線大廠面試經驗分享等,歡迎 Star 和 完善。

一、前言

大家好,我是 Jack 。

去年發表的「Talking Head Anime」大家都看過了吧?

最近,這位Google工程師對演算法進行了升級,「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