顧乃林,申閆春
(1.宿遷學(xué)院法政學(xué)院,江蘇 宿遷 223800;2.北京信息科技大學(xué)計算機學(xué)院,北京 100192)
近年來,隨著虛擬現(xiàn)實和增強現(xiàn)實技術(shù)的不斷發(fā)展,以及在影視和娛樂游戲行業(yè)的廣泛應(yīng)用,“虛擬人”的概念也逐漸被廣大用戶所認(rèn)可。“虛擬人”是指根據(jù)真實的人臉和人體運動特點構(gòu)建的虛擬角色,可以通過運動捕捉設(shè)備捕捉演員的形體動作,以及面部捕捉設(shè)備獲取人的面部表情和肌肉運動,并映射到虛擬人的臉部和身體上,從而產(chǎn)生電影特效或者游戲中所需的動畫效果。隨著實時重建和圖形渲染技術(shù)水平的逐年提高,越來越多的從業(yè)者和用戶都希望在影視和游戲作品中看到極其真實的面部表情,甚至與實際拍攝的畫面進行虛實融合,達到以假亂真的水平。
而虛擬演播室也是近幾年發(fā)展起來的一種獨特的電視和線上節(jié)目制作技術(shù)。它的本質(zhì)是將計算機生成的虛擬三維場景與攝像機現(xiàn)場拍攝的人物或者影像進行實時的數(shù)字化合成,使虛擬人物與實際背景(以及實際人物與虛擬背景)能夠正確疊加,同步變化,以獲得完美的合成畫面效果。
本文研究把基于運動捕捉和面部捕捉的虛擬角色與虛擬演播室技術(shù)相結(jié)合,構(gòu)建真實數(shù)據(jù)驅(qū)動的實時角色模型重建和渲染系統(tǒng),并與真實攝像機拍攝的畫面進行疊加,讓真實的人與“虛擬人”同臺進行表演。這一技術(shù)手段極大地豐富了影視和電視節(jié)目的表現(xiàn)力,可以直接應(yīng)用在電視或者網(wǎng)上直播活動中,并且已經(jīng)在春晚中得以應(yīng)用。在實現(xiàn)過程中,本文著重研究了低成本和高實時性的面部捕捉和重建方法,并且與傳統(tǒng)的面部捕捉技術(shù)進行了多方面的比較;同時,還針對虛擬角色在虛擬演播室中的合成方法和效果做了針對性的研究和實際應(yīng)用。
面部動作捕捉(Facial Motion Capture),是運動捕捉技術(shù)的一部分。面部捕捉是使用機械裝置、傳感器、相機等設(shè)備來記錄人類面部肌肉和表情動作,然后,將它轉(zhuǎn)換為一系列參數(shù)數(shù)據(jù)的過程??梢詷?gòu)建虛擬人面部,并將基于面部捕捉得到的參數(shù)數(shù)據(jù)傳遞給虛擬人的面部骨骼和蒙皮系統(tǒng),從而重現(xiàn)實際的人臉表情和動作。
由于人臉的肌肉構(gòu)成比較復(fù)雜,有各種各樣的微表情呈現(xiàn)方式,因此很難像處理全身運動捕捉的情形一樣,將身體簡單地劃分為四肢和軀干的數(shù)個關(guān)節(jié),再分別進行數(shù)據(jù)監(jiān)測。
圖1 采用68個面部標(biāo)記點的面部捕捉模型
一種比較常見的方式是通過傳感器設(shè)備記錄一些典型的面部標(biāo)記點(landmark),例如:眉毛、眼框、鼻翼、鼻孔、嘴唇、面頰等。然后,通過這些標(biāo)記點的參數(shù)數(shù)據(jù)來驅(qū)動虛擬人臉。一個典型的面部標(biāo)記系統(tǒng)可能會包含幾十到幾百個標(biāo)記點,這也對數(shù)據(jù)采集和計算系統(tǒng)提出了很高的要求,并且,很難具備泛化應(yīng)用和實時計算的能力。
本文選擇使用基于IBUG數(shù)據(jù)集構(gòu)建的68個標(biāo)記點人臉模型,如圖1所示。標(biāo)記點主要集中在人臉輪廓線、眼框、鼻翼和鼻孔,以及內(nèi)外嘴唇部分,因此,對于眨眼和嘴說話的動作,以及需要用到這些主要器官的表情有很好的識別和參數(shù)化的能力。對于臉頰上的一些微表情動作,這個人臉模型并不能很細(xì)膩地表現(xiàn)出來。不過對于虛擬演播室以及直播類的需求來說,通常也不需要捕捉和使用到更復(fù)雜的表情動作。
目前,比較流行的人臉捕捉方案是在演員的臉上,直接繪制或者粘貼具有顯著顏色區(qū)別的標(biāo)記點,然后,通過多臺光學(xué)攝像機來識別標(biāo)記點,進而求得人臉的表情運動參數(shù)。如圖2所示。
圖2 基于標(biāo)記點的光學(xué)相機捕捉
因為演員的表演動作可能比較豐富,運動速度較快,所以需要配置全局快門的光學(xué)相機,并且必須具備高分辨率、高幀速率的特性,同時,對多個相機進行幀間同步來確保識別結(jié)果的準(zhǔn)確性。
這類光學(xué)相機系統(tǒng)通常來自O(shè)ptiTrack或者Vicon等專業(yè)廠家,它的配置和標(biāo)定過程十分繁瑣,需要花費大量的時間進行準(zhǔn)備工作,而且價格很貴。另外,因為需要在演員的面部直接進行繪制或者粘貼操作,因此,對演員和面捕團隊的專業(yè)性也有很高的要求,普通人很難未經(jīng)訓(xùn)練就能參與其中表演。
一種常見的低成本面部捕捉技術(shù)是使用RGBD相機來實現(xiàn),即:帶有深度信息的攝像頭設(shè)備。典型的RGBD相機,例如:Microsoft Kinect和Kinect2,這類設(shè)備本身已經(jīng)具備了人臉識別和實時三維網(wǎng)格的能力。它將識別得到的人臉RGB像素與深度圖像素結(jié)合,得到人臉的實時三維網(wǎng)格模型,如圖3所示。
圖3 Kinect計算得到的人臉三維網(wǎng)格模型
基于這個簡化的實時網(wǎng)格模型,可以直接貼圖并構(gòu)建虛擬角色的面部網(wǎng)格,從而快速實現(xiàn)面部捕捉和模型重建的需求。但是,Kinect設(shè)備本身的分辨率和幀速率都比較有限,并且,要求設(shè)備與被測物體或人體有一定的距離,否則,無法正確檢測深度。再加上Kinect設(shè)備對于強光環(huán)境比較敏感,更適合極客團隊進行快速原型驗證,并不適合用于影視拍攝或者虛擬演播室環(huán)境中應(yīng)用。
本文提出一種新的實時面部捕捉方案,它具備成本低廉、安裝和調(diào)試過程方便、識別效率高、結(jié)果穩(wěn)定等特點,并且,已經(jīng)在實際項目中得到了充分的論證和應(yīng)用證明。
該方案僅使用市面上通用攝像頭設(shè)備即可實現(xiàn),將攝像頭安裝到頭盔上,并正視表演者的面部,以達到實時面部捕捉和計算重建的目的。
為了達到足夠理想的識別速度和識別效果,建議使用Flir的工業(yè)攝像頭設(shè)備。這款攝像頭的價格在千元左右,支持全局快門,可以拍攝高速運動的物體,畫面分辨率為1280x1024,幀速率約為50FPS,這已經(jīng)完全滿足后端算法的需求。攝像頭與頭盔的連接方式,如圖4所示。
圖4 面捕方案的頭盔和攝像頭連接方式
頭盔后端通過有線連接接入到隨身的迷你PC,將攝像頭畫面?zhèn)鬟f給后端程序進行運算和實時參數(shù)捕捉。迷你PC設(shè)備的CPU配置不應(yīng)低于Intel i5。后端程序的執(zhí)行流程,如圖5所示。
圖5 面部捕捉執(zhí)行流程圖
采用較為流行的多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)(Multi-task convolutional neural network,簡稱為MTCNN),同時進行人臉區(qū)域檢測與人臉標(biāo)記點檢測工作。
該神經(jīng)網(wǎng)絡(luò)模型在工作過程中,首先對輸入圖像的尺寸進行多次縮放,構(gòu)建多級圖像金字塔。然后將圖像金字塔數(shù)據(jù)傳遞到第一級粗糙的全卷積網(wǎng)絡(luò)中,簡稱為Pnet。
Pnet通過自帶的人臉分類器判斷某張輸入圖像的某個區(qū)域是否是人臉,同時,使用邊框回歸和自帶面部標(biāo)記點的定位器來提供人臉區(qū)域的初步評估結(jié)果,這個模塊最終會輸出很多張區(qū)域子圖像,其中包含了可能含有人臉和人臉標(biāo)記點的內(nèi)容。
這些區(qū)域圖像被傳遞給第二級的卷積神經(jīng)網(wǎng)絡(luò),它會對所有的輸入窗口進行更為嚴(yán)格的篩選。這一級網(wǎng)絡(luò)簡稱為Rnet。它可以檢測并拋棄大部分的錯誤輸入,然后,再次使用邊框回歸和面部標(biāo)記點定位器,進行人臉區(qū)域和標(biāo)記點的檢測,最終輸出較為可信的人臉子區(qū)域。
所有Rnet的輸出結(jié)果將被輸入到第三級更復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò)中,簡稱為Onet。它的主要職責(zé)是根據(jù)可信的人臉子區(qū)域,細(xì)化和計算得到精確的人臉包圍矩形坐標(biāo)和標(biāo)記點坐標(biāo)。和之前的Pnet以及Rnet相比,Onet擁有更多特征的輸入數(shù)據(jù),以及更復(fù)雜的網(wǎng)絡(luò)模型,因此,也具有更好的性能,這一級的數(shù)據(jù)輸出也就是最終的網(wǎng)絡(luò)模型輸出結(jié)果。
MTCNN算法的執(zhí)行流程,如圖6所示。它的三級神經(jīng)網(wǎng)絡(luò)復(fù)雜度從低到高,計算結(jié)果從粗糙到精確,但是,計算消耗的時間和資源也是從少到多。結(jié)合多線程的編程方法,可以并行處理上一幀圖像的Onet和當(dāng)前幀圖像的Pnet與Rnet過程,從而優(yōu)化了整個網(wǎng)絡(luò)的執(zhí)行效率,在較低配置的系統(tǒng)上也可以運行,因此,非常適用于面捕頭盔加隨身的迷你PC的應(yīng)用場景。
圖6 MTCNN識別流程圖
獲取人臉的標(biāo)記點(landmark)信息之后,使用SFM人臉參數(shù)模型(Surrey Face Model)來實現(xiàn)標(biāo)記點到人臉模型的擬合變換。SFM模型屬于3D變形模型(3D Morphable Models,簡稱為3DMM)的一種,它包含參數(shù)化生成的三維形狀、參數(shù)化的反照率模型,以及模型系數(shù)的相關(guān)概率密度,這些形狀和反照參數(shù)共同描述一張臉的信息。
SFM模型本身是通過大量3D掃描人臉運算得到的PCA模型,因此,包含較少的參數(shù)來描述復(fù)雜的人臉變形效果。它提供多種分辨率的三維人臉網(wǎng)格模板,包括:頂點、法線和紋理坐標(biāo)信息。本文在SFM模型中,采用3448點的模板數(shù)據(jù),同時也被提供給美術(shù)人員進行虛擬人頭的制作。SFM模型的模板類型、頂點數(shù)和三角面數(shù)量如表1所示。
表1 SFM模板模型的精細(xì)級別
為了確保人臉映射效果的實時性和準(zhǔn)確性,需要為美術(shù)人員提供特殊工具,來確保美術(shù)人員編輯輸出的新模型頂點ID不會發(fā)生變化,因此,也不需要重新計算其三角面索引信息。除此之外,美術(shù)人員可以對虛擬模型的頂點位置布局和紋理進行充分的自由發(fā)揮,構(gòu)建具有鮮明特色的虛擬人臉模型,并且仍然可以被面捕系統(tǒng)的輸出參數(shù)直接控制。
將人臉標(biāo)記點映射到SFM人臉模型的過程,也就是計算模型PCA參數(shù)的過程,之后可以使用這組PCA參數(shù)從模板直接采樣得到新的人臉網(wǎng)格模型,并且仍然是3448個頂點數(shù)。假設(shè)SFM模型的形變參數(shù)向量組用α來表示,人臉標(biāo)記點的總數(shù)用N來表示,則有如下的擬合公式
E表示成本函數(shù),它的值越低,則擬合的效果越好。y表示齊次坐標(biāo)系下的2D標(biāo)記點坐標(biāo),yp表示3DMM模型的對應(yīng)頂點投影到當(dāng)前2D坐標(biāo)系后的坐標(biāo)。而σ是每個標(biāo)記點的可選方差值。通過線性最小二乘法的解算,可以得到當(dāng)前人臉2D標(biāo)記點對應(yīng)的PCA參數(shù),進而實現(xiàn)人臉模型的實時采樣和驅(qū)動過程。
采用Unity引擎來構(gòu)建虛擬演播室軟件環(huán)境。該系統(tǒng)支持三維場景模型的導(dǎo)入,常見攝像機接口和圖像的輸入,角色的數(shù)據(jù)驅(qū)動控制,以及綠幕摳像合成等功能。如圖7所示。
圖7 虛擬演播室系統(tǒng)實時渲染界面
使用上述面部捕捉頭盔系統(tǒng),可以將演員的面部運動和表情實時映射到虛擬演播室系統(tǒng)中。來自頭盔攝像頭的圖像數(shù)據(jù)通過USB接口輸入到隨身的迷你PC進行解算,然后將結(jié)果標(biāo)記點數(shù)據(jù)通過TCP協(xié)議傳遞給虛擬演播室系統(tǒng),再進行實時的SFM模型擬合。擬合結(jié)果直接應(yīng)用于實時導(dǎo)入的虛擬人臉并精確控制其頂點運動。如果輸入的虛擬人臉不是基于SFM模型制作的話,那么輸入的面捕數(shù)據(jù)將無法直接使用。
有關(guān)“虛擬人”身體運動捕捉方面,直接采用諾亦騰的慣性動捕方案。慣捕數(shù)據(jù)通過本機的TCP或者UDP服務(wù)器傳遞給虛擬演播室系統(tǒng),并直接控制虛擬人的實時動作。
面捕系統(tǒng)的實時工作場景如圖8所示,虛擬演播室系統(tǒng)實地測試效果如圖9所示。
圖8 面捕系統(tǒng)的實時工作場景
圖9 虛擬演播室畫面與電視臺監(jiān)控畫面
該方案在實際運行過程中,識別效果穩(wěn)定,隨身PC的系統(tǒng)資源消耗保持在較低程度。系統(tǒng)運行過程中持續(xù)進行了500秒的資源監(jiān)測,具體監(jiān)測結(jié)果如表2所示。
表2 面部捕捉系統(tǒng)運行數(shù)值監(jiān)測
本文研究了一種基于單攝像頭的人臉實時捕捉和參數(shù)化重建方法,它采用MTCNN并行多任務(wù)神經(jīng)網(wǎng)絡(luò)實現(xiàn)人臉的標(biāo)記點坐標(biāo)精確識別,然后,將標(biāo)記點數(shù)據(jù)代入到SFM人臉模型,通過一個標(biāo)準(zhǔn)的人臉模板(3448點)和一系列PCA參數(shù)來描述和實時采樣生成。通過擬合公式得到當(dāng)前標(biāo)記點對應(yīng)的參數(shù)組,生成實時的三維人臉模型,并且直接與預(yù)先設(shè)計和構(gòu)建的虛擬人臉數(shù)據(jù)進行映射,實現(xiàn)虛擬人臉的表情和運動同步效果。
本方法解決了虛擬演播室應(yīng)用中常見的人體和人臉捕捉與重建的特征識別數(shù)據(jù)量大、計算耗時長、識別準(zhǔn)確率較低、易于導(dǎo)致跟蹤失敗等問題,并且成本很低,效率較高,在幾乎所有的操作系統(tǒng)平臺和迷你PC硬件平臺上都可以使用。實踐證明,該方法在電視臺的虛擬演播室系統(tǒng)應(yīng)用中得到良好反饋。不足之處是該方法在微表情的呈現(xiàn)上還存在改進空間,以便與影視級的光學(xué)捕捉系統(tǒng)相媲美,這是因為所使用的人臉標(biāo)記點數(shù)量較少,且主要分布在五官部位,臉頰等缺乏圖像特征的位置上沒有標(biāo)記點對應(yīng)??梢赃M一步改善這一問題,研究更好的人臉識別算法,直接采用臉上繪制或粘貼標(biāo)記點的方法,再結(jié)合SFM模型進行擬合,這是下一步需要研究和改進的方向。