在三維動(dòng)畫(huà)和視頻領(lǐng)域,精細(xì)地還原面部表情一直是很大的難點(diǎn)。這不僅僅是因?yàn)槊娌縿?dòng)作十分復(fù)雜,而且細(xì)節(jié)很多。更重要的是,人對(duì)面部表情傳遞的信息非常敏感,三維模擬表情中細(xì)微的不自然都會(huì)被人識(shí)別出來(lái)。為了解決這一難題,傳統(tǒng)的影視界嘗試了很多方法,其一是掃描一個(gè)人大量不同的表情,再由藝術(shù)家修正并制做出很精細(xì)的表情,然后再借助這些表情進(jìn)行插值計(jì)算,來(lái)獲得其他的表情;其二是使用動(dòng)作捕捉設(shè)備,如影片阿凡達(dá)就采用了類似的方法,這種方法可以快速捕捉面部預(yù)先指定的100多個(gè)標(biāo)識(shí)點(diǎn),記錄它們的細(xì)微變化,但是這100多個(gè)點(diǎn)以外的細(xì)節(jié)信息就需要藝術(shù)家手動(dòng)去添加了。為了降低手動(dòng)繪圖的工作量,提高三維動(dòng)畫(huà)的制作效率、精細(xì)度和真實(shí)性,最近微軟亞洲研究院的研究員們和美國(guó)德州AM大學(xué)的教授合作,開(kāi)發(fā)了“High Fidelity Facial Animation Capturing”技術(shù),該技術(shù)有效地解決了傳統(tǒng)技術(shù)存在的問(wèn)題。
這項(xiàng)技術(shù)能夠?qū)崿F(xiàn)以下幾個(gè)目標(biāo),首先在速度方面,它能夠提供很高的捕捉幀速率,可以捕捉到面部運(yùn)動(dòng)的每個(gè)細(xì)節(jié)動(dòng)作以及表情快速的變化;另外,在空間上,這項(xiàng)技術(shù)要能夠盡可能多地還原3D面部的幾何細(xì)節(jié);同時(shí)這項(xiàng)技術(shù)不僅僅能夠提供表情的捕捉和回放功能,還能夠?qū)崿F(xiàn)二次編輯,也就是說(shuō)視頻和動(dòng)畫(huà)的制作者可以根據(jù)這些素材制作全新表情。
在制作設(shè)備方面,High Fidelity Facial Animation Capturing技術(shù)使用了傳統(tǒng)面部和運(yùn)動(dòng)捕捉上最常用的兩種設(shè)備——三維掃描儀和運(yùn)動(dòng)捕捉設(shè)備。三維掃描儀能夠捕捉靜態(tài)人臉上十分精細(xì)的面部特征,但是它速度很慢,捕捉一個(gè)完整的人臉畫(huà)面要幾秒的時(shí)間,而且人必須在這個(gè)時(shí)候保持靜止;而運(yùn)動(dòng)捕捉設(shè)備能夠捕捉快速運(yùn)動(dòng)物體上的信息,并且能夠生成在時(shí)間上非常精細(xì)的運(yùn)動(dòng)序列,但是它能提取的信息點(diǎn)十分有限,只能捕捉面部100多個(gè)點(diǎn)的運(yùn)動(dòng)規(guī)律。High Fidelity Facial Animation Capturing技術(shù)能將這兩種設(shè)備獲取的信息相結(jié)合,最終能夠生成快速、連續(xù)且十分精細(xì)的人臉表情。
尋找關(guān)鍵幀
High Fidelity Facial Animation Capturing技術(shù)使用了類似Flash等動(dòng)畫(huà)制作工具中所涉及的關(guān)鍵幀與過(guò)渡幀的概念,首先要找到能夠代表每一種表情的特征畫(huà)面,即關(guān)鍵幀,之后再想辦法通過(guò)關(guān)鍵幀生成過(guò)渡幀,并生成最終的表情變化視頻。因此,這一技術(shù)首先要解決的就是如何尋找出最能代表人臉面部特征的關(guān)鍵幀。
微軟亞洲研究院的研究員們首先使用運(yùn)動(dòng)捕捉設(shè)備捕捉人臉的各種表情和表情的變化,它可以拍攝并追蹤人臉上預(yù)先貼好的100多個(gè)標(biāo)識(shí)點(diǎn)。通過(guò)分析視頻最終能夠獲得面部這些標(biāo)識(shí)點(diǎn)的運(yùn)動(dòng)規(guī)律。在獲取視頻后,研究員們對(duì)視頻進(jìn)行處理,首先從整個(gè)視頻序列中抽取幾幀,并嘗試用這些幀的線性組合去計(jì)算和生成所有的幀,并驗(yàn)證計(jì)算后的誤差大小,如果誤差大則換用其他的幀再次進(jìn)行計(jì)算。在多次計(jì)算之后,將能夠找到幾個(gè)關(guān)鍵幀,這些幀能夠線性組合出與真實(shí)情況最為接近的結(jié)果,接下來(lái)在這幾幀的基礎(chǔ)上再嘗試加上一幀,再次進(jìn)行計(jì)算,檢驗(yàn)新加入的幀是否能使計(jì)算結(jié)果更加優(yōu)化。通過(guò)這樣一步步迭代和計(jì)算的方式,最終將能夠得到一組關(guān)鍵幀,這些關(guān)鍵幀的組合用于重構(gòu)人物表情,也就是人臉最具代表性的表情。
獲取關(guān)鍵幀之后,研究員們會(huì)讓剛才拍攝視頻的演員模仿每一個(gè)關(guān)鍵幀中的表情,并使用三維掃描儀對(duì)這個(gè)表情進(jìn)行高精度掃描,這樣就可以獲得每一個(gè)關(guān)鍵幀的高精度三維模型。這個(gè)三維模型與用三維繪圖軟件制作的模型沒(méi)有什么區(qū)別,每個(gè)模型都是由多個(gè)在三維空間中的坐標(biāo)點(diǎn)所組成,每個(gè)坐標(biāo)點(diǎn)都包括x、y、z三個(gè)坐標(biāo)上的數(shù)據(jù),而坐標(biāo)點(diǎn)越多則意味著三維面部模型越精細(xì)。
建立“軟骨骼”
盡管已經(jīng)要求演員盡量去模仿視頻關(guān)鍵幀中的表情,但是事實(shí)上是無(wú)法再次做出完全相同表情的,此時(shí)就需要使用一些技術(shù)手段來(lái)實(shí)現(xiàn)兩種數(shù)據(jù)對(duì)齊,也就是明確每個(gè)運(yùn)動(dòng)捕捉的點(diǎn)在掃描的三維人臉上的位置。研究員們會(huì)嘗試對(duì)表情畫(huà)面先進(jìn)行一定的旋轉(zhuǎn)和平移變化,保證兩個(gè)表情畫(huà)面大部分信息點(diǎn)可以對(duì)應(yīng)到一起。對(duì)應(yīng)完成后仍舊還會(huì)有少量的點(diǎn)存在微小不同。研究員們?cè)O(shè)立了一套面部變形的基本約束條件,在這個(gè)條件允許的范圍內(nèi),存在微小不同的標(biāo)識(shí)點(diǎn)可以做一定的變形,以實(shí)現(xiàn)對(duì)應(yīng)。經(jīng)過(guò)這樣的對(duì)應(yīng),我們就已經(jīng)知道了三維頭像上100多個(gè)標(biāo)識(shí)點(diǎn)準(zhǔn)確和真實(shí)的運(yùn)動(dòng)規(guī)律,這些標(biāo)識(shí)點(diǎn)的組合就像我們制作動(dòng)畫(huà)時(shí),給人物加入的“骨骼”那樣。骨骼可以決定整個(gè)身體的運(yùn)動(dòng)大規(guī)律,例如我們的膝蓋不能向后彎曲,而標(biāo)識(shí)點(diǎn)的組合則決定了整個(gè)面部的運(yùn)動(dòng)規(guī)律。
實(shí)現(xiàn)逐點(diǎn)對(duì)應(yīng)
在有了面部的基本“骨骼”之后,接下來(lái)要做的就是嘗試將三維面部模型上的每一個(gè)點(diǎn)都與其他模型上的點(diǎn)建立一一對(duì)應(yīng)關(guān)系。這也是High Fidelity Facial Animation Capturing技術(shù)與阿凡達(dá)等影片所采用的面部追蹤技術(shù)最大的區(qū)別之一,阿凡達(dá)影片在拍攝時(shí)只嘗試建立虛擬形象面部與演員100多個(gè)運(yùn)動(dòng)標(biāo)識(shí)點(diǎn)的對(duì)應(yīng)關(guān)系,以保證演員表情的整體特征能夠被遷移到新的三維模型上。但是三維模型面部的細(xì)節(jié)信息,如皺紋變化等都是由特效制作師繪制上去的。而微軟研究院的研究員則希望可以借助關(guān)鍵幀自動(dòng)生成每個(gè)過(guò)渡幀上的面部皺紋,這就需要將關(guān)鍵幀三維模型上的所有坐標(biāo)點(diǎn)都與其他模型進(jìn)行一一對(duì)應(yīng)。這樣我們就能知道,在某個(gè)皺紋產(chǎn)生時(shí),到底是哪個(gè)點(diǎn)該向外凸,而哪個(gè)點(diǎn)會(huì)向內(nèi)凹,借助這些點(diǎn)的運(yùn)動(dòng)規(guī)律即可生成細(xì)節(jié)豐富且十分真實(shí)的過(guò)渡幀。
當(dāng)然,研究員們可沒(méi)有心情通過(guò)手工的方法進(jìn)行一一對(duì)應(yīng),他們借助面部分區(qū)和傳遞算法來(lái)完成這一工作。首先借助已經(jīng)在三維面部模型上確定的100多個(gè)標(biāo)識(shí)點(diǎn),建立兩個(gè)不同表情三維面部模型的基礎(chǔ)對(duì)應(yīng)關(guān)系,也就是初始對(duì)準(zhǔn)。初始對(duì)準(zhǔn)之后,剩下的就是做每個(gè)坐標(biāo)點(diǎn)的細(xì)節(jié)對(duì)準(zhǔn)了,這需要根據(jù)人臉的運(yùn)動(dòng)特質(zhì)進(jìn)行分區(qū)域處理,每個(gè)面部都會(huì)被分為大概8個(gè)區(qū)域,而每個(gè)區(qū)域都有自己?jiǎn)为?dú)的變化特征。例如我們看到兩個(gè)不同的表情,其中眼部區(qū)域可能是完全不同的,但是在嘴部附近的區(qū)域可能區(qū)別不大。分區(qū)域之后,將每個(gè)三維面部關(guān)鍵幀的某一個(gè)區(qū)域都提取出來(lái)進(jìn)行獨(dú)立比較,在這個(gè)區(qū)域的一組關(guān)鍵幀中,總能找到兩個(gè)相對(duì)比較相似的關(guān)鍵幀,它們中的坐標(biāo)點(diǎn)可以使用算法找到一一對(duì)應(yīng)關(guān)系。之后再使用這兩個(gè)關(guān)鍵幀中的一個(gè)為基礎(chǔ),去尋找另外一個(gè)相似的關(guān)鍵幀區(qū)域,并再嘗試建立對(duì)應(yīng)關(guān)系。通過(guò)這種傳遞的方式,最終將能夠建立這個(gè)區(qū)域中所有關(guān)鍵幀坐標(biāo)點(diǎn)的對(duì)應(yīng)關(guān)系。最后,將每個(gè)區(qū)域拼合回原本的面部,就得到了每個(gè)三維面部關(guān)鍵幀之間的對(duì)應(yīng)關(guān)系了。
在微軟亞洲研究院研究員的規(guī)劃中,未來(lái)High Fidelity Facial Animation Capturing技術(shù)將從專業(yè)領(lǐng)域走向大眾。盡管目前這項(xiàng)技術(shù)使用的運(yùn)動(dòng)捕捉設(shè)備在影視業(yè)和娛樂(lè)業(yè)比較常見(jiàn),但對(duì)普通用戶來(lái)說(shuō)畢竟比較昂貴。而且捕捉前期的準(zhǔn)備工作和后期的計(jì)算工作仍舊相對(duì)比較繁重。未來(lái)研究員們希望面部捕捉能夠做到更加平民化,用戶可以使用相機(jī)或攝像頭來(lái)拍攝視頻,并使用隨處可得的計(jì)算設(shè)備快速實(shí)現(xiàn)面部信息的捕獲和計(jì)算。而且研究員們還將努力嘗試將這一技術(shù)應(yīng)用到人臉以外的其他事物的運(yùn)動(dòng)捕捉上。到時(shí),這個(gè)技術(shù)就能夠真正讓所有的普通用戶享受到它帶來(lái)的好處。
選擇標(biāo)識(shí)點(diǎn)
在選擇運(yùn)動(dòng)捕捉標(biāo)識(shí)點(diǎn)方面,實(shí)際上業(yè)內(nèi)已經(jīng)形成了一定的準(zhǔn)則。基本準(zhǔn)則就是對(duì)運(yùn)動(dòng)變化比較大的區(qū)域,就要盡量將標(biāo)識(shí)點(diǎn)貼的相對(duì)密一些。比如,眉毛和嘴角的區(qū)域就會(huì)相對(duì)密一些。另外,還要盡量讓所有的標(biāo)識(shí)點(diǎn)可以實(shí)現(xiàn)平均的分布。兩個(gè)條件都需要滿足,因此運(yùn)動(dòng)劇烈的區(qū)域需要多貼,而在其他區(qū)域則盡量均勻分布。在實(shí)際貼點(diǎn)的過(guò)程中,針對(duì)不同人的面部特征還要做一些調(diào)整。由于不同人的頭部骨骼和面部肌肉存在差異,因此在相同表情的時(shí)候,不同人的面部變化也會(huì)有所區(qū)別。
我們希望影視業(yè)、娛樂(lè)業(yè)未來(lái)可以使用到這樣的技術(shù),幫助他們簡(jiǎn)化現(xiàn)在的運(yùn)動(dòng)捕捉過(guò)程,得到高速率、高真實(shí)感的數(shù)據(jù)。在影視制作中使用該技術(shù)意味著大家在新的影視節(jié)目和游戲當(dāng)中能看到更真實(shí)的面部表情。
——童欣博士 微軟亞洲研究院網(wǎng)絡(luò)圖形組高級(jí)研究員
高效捕捉
借助High Fidelity Facial Animation Capturing技術(shù),捕捉并生成一個(gè)與真人極度近似的三維頭像僅需要1天左右的時(shí)間(使用目前主流配置的PC進(jìn)行計(jì)算)。
貼點(diǎn)
在進(jìn)行運(yùn)動(dòng)捕捉之前,首先需要在被捕捉人的臉上貼上100多個(gè)點(diǎn),貼點(diǎn)通常需要2.5個(gè)小時(shí)。熟練的技師則速度更快;
表情捕捉
接下來(lái)使用運(yùn)動(dòng)捕捉設(shè)備捕捉人臉的實(shí)時(shí)表情,用半小時(shí)左右即可完成多次重復(fù)捕捉,以滿足數(shù)據(jù)獲取的需要;
關(guān)鍵幀分析
接下來(lái)就需要根據(jù)捕捉的視頻進(jìn)行數(shù)據(jù)分析了,找出能夠代表被捕捉人表情特征的關(guān)鍵幀,這通常需要1個(gè)小時(shí);
表情掃描
被捕捉人需要模仿關(guān)鍵幀中的表情,并保持這個(gè)表情幾秒鐘,此時(shí)使用三維掃描儀捕捉每個(gè)表情的三維數(shù)據(jù),算上失敗重來(lái)的時(shí)間,總共需要半小時(shí);
計(jì)算并生成結(jié)果
接下來(lái)將這些前期獲取的數(shù)據(jù)輸入計(jì)算機(jī),由計(jì)算機(jī)根據(jù)預(yù)先編寫(xiě)的算法進(jìn)行計(jì)算并生成最終的結(jié)果,根據(jù)計(jì)算機(jī)性能差異的不同,這需要幾小時(shí)的時(shí)間。
通過(guò)這樣的制作過(guò)程,我們就可以得到一個(gè)人三維面部的精細(xì)運(yùn)動(dòng)模型,并能夠根據(jù)這個(gè)模型去制作和生成自己想要的各種表情和動(dòng)畫(huà)。