大叔也能“變”萌妹?1張動(dòng)漫頭像就可以,說話唱歌樣樣行
還能讓二次元老婆“說話”
蕭簫 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào) QbitAI
只需要1張動(dòng)漫頭像,就能讓你的二次元老婆“開口說話”:
甚至可以像虛擬主播一樣搖晃腦袋唱歌:
不僅如此,動(dòng)漫頭像還能模擬你的口型和頭部動(dòng)作,實(shí)時(shí)“唱”出想要的效果來(作者親自上場):
簡直是老二刺螈玩家的福音。而且,不想露面的主播,也有了新的免費(fèi)“虛擬主播”可選擇。
那么,這是用的什么原理,讓模型能達(dá)到這樣的效果?
用3D模型,讓2D頭像動(dòng)起來
這個(gè)模型最核心的思想,就是將圖片和姿態(tài)參數(shù)輸入系統(tǒng),來“改變”輸入圖片中動(dòng)漫人物的姿態(tài)。
聽起來非常簡單,但實(shí)際上并不容易實(shí)現(xiàn)。其一,對(duì)應(yīng)的數(shù)據(jù)集不好找;其二,網(wǎng)絡(luò)的體系結(jié)構(gòu)和訓(xùn)練不容易搭建。
而且,作者也沒能如愿找到多姿態(tài)的2D動(dòng)漫角色數(shù)據(jù)集。
怎么辦?
經(jīng)過思考,作者選擇采用大量3D模型(約8000個(gè))對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,因?yàn)檫@些3D模型的參數(shù),是可控的。
除此之外,也還需要設(shè)計(jì)模型注釋,以“圈”出模型的頭部、發(fā)型和配飾等“需要旋轉(zhuǎn)”的地方。
而動(dòng)漫人物經(jīng)過變化的眼睛和嘴型,也需要單獨(dú)提取出來,用于考慮各種人物表情的變化。
根據(jù)3D人物的實(shí)際動(dòng)畫效果,就能設(shè)計(jì)出對(duì)應(yīng)的網(wǎng)絡(luò)了:從人物最主要的兩個(gè)動(dòng)作,即改變表情和旋轉(zhuǎn)臉部,來讓人物“動(dòng)起來”。
也就是說,首先需要控制眼睛和嘴張開的程度,然后,再想辦法讓動(dòng)漫人物的頭部“轉(zhuǎn)起來”。
先是改變表情。這一步驟相對(duì)簡單,只需要找到一個(gè)張嘴、睜眼的動(dòng)漫頭像,就能用算法,讓主角眨眼睛、改變嘴型。
但控制臉部旋轉(zhuǎn)的算法,則要更復(fù)雜一些,因?yàn)榘殡S著臉部轉(zhuǎn)動(dòng)的,雖然只有頭部,但還要連同發(fā)型和配飾一同轉(zhuǎn)動(dòng)。
作者進(jìn)一步改進(jìn)算法后,控制面部旋轉(zhuǎn)的網(wǎng)絡(luò)模型,變得更加細(xì)化了一些:
首先找到需要旋轉(zhuǎn)的部分、完成旋轉(zhuǎn),然后將輸出圖像的顏色控制與輸入像素對(duì)應(yīng),最后將效果進(jìn)行結(jié)合。
從人物的晃頭、前后擺動(dòng)來看,效果還是非常不錯(cuò)的。
不過,這還不是作者想要的模型,畢竟虹膜和眉毛還不能變化。
在對(duì)算法進(jìn)行優(yōu)化后,最新的模型,不僅能惟妙惟肖地做出生氣、厭惡、沮喪的表情來,還能改變瞳孔和眉毛的形狀,人物看起來也更逼真了。
效果如何?
應(yīng)用到單張2D頭像上的效果,還是挺能打的:
不僅能通過視頻人臉檢測,實(shí)時(shí)模擬人物的口型和表情:
還能用已有的視頻人物控制它“說話”、“唱歌”,化身“虛擬主播”:
不過,單從3D模型的渲染效果來看,偶爾會(huì)出現(xiàn)一些失誤,需要適當(dāng)進(jìn)行調(diào)整。
例如……這位黃發(fā)少年身上的劍,就會(huì)“隨頭移動(dòng)”:
盡管頭部的旋轉(zhuǎn)已經(jīng)非常完美,不過,本該在背后的劍,卻也隨著頭部轉(zhuǎn)動(dòng)了起來……
作者本人也提到了這些細(xì)節(jié),而且也指出,對(duì)于某些發(fā)型比較特殊的動(dòng)漫人物來說,的確會(huì)出現(xiàn)不那么完美的情況。
例如,隨著頭部轉(zhuǎn)動(dòng),出現(xiàn)辮子被“割斷”的情況:
不過,這些也都還是細(xì)節(jié)上的問題。
作者表示,數(shù)據(jù)集也需要重點(diǎn)關(guān)注:他找的動(dòng)漫頭像,基本都是人物頭像。
也就是說,如果訓(xùn)練數(shù)據(jù)與角色外觀差異較大(例如獸人),就會(huì)出現(xiàn)這種情況:
如果你是獸人玩家,可能還需要自行準(zhǔn)備數(shù)據(jù)集,再訓(xùn)練一個(gè)模型出來。
作者介紹
Pramook Khungurn,本碩畢業(yè)于MIT,博士就讀于康奈爾大學(xué)計(jì)算機(jī)科學(xué)系,目前在谷歌日本(Google Japan)工作,專注于渲染算法和外觀建模的研究。
讀書期間,他也有不少計(jì)算機(jī)系的論文發(fā)表在SIGGRAPH等頂會(huì)上。(而且,還擁有比滿分更高的GPA)
項(xiàng)目地址:
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/