?

Kinect驅動的人臉動畫合成技術研究

2015-02-20 08:15李俊龍章登義
計算機工程 2015年3期
關鍵詞:朝向臉部人臉

李俊龍,章登義,黃 珺

(武漢大學a.計算機學院;b.測繪遙感信息工程國家重點實驗室,武漢430079)

Kinect驅動的人臉動畫合成技術研究

李俊龍a,章登義a,黃 珺b

(武漢大學a.計算機學院;b.測繪遙感信息工程國家重點實驗室,武漢430079)

三維人臉動畫合成技術可以應用于虛擬現實、角色控制等多個領域。為此,提出一種基于Kinect的人臉動畫合成方法。人臉跟蹤客戶端利用Kinect對用戶的臉部表情進行跟蹤識別,得到人臉表情動畫參數,通過socket發送給人臉動畫合成服務器,由人臉動畫合成服務器查找基于MPEG-4標準的人臉動畫定義表,控制人臉模型的變形,從而實時合成與用戶表情相對應的三維人臉動畫。實驗結果表明,該方法能夠在滿足實時性要求的條件下合成高質量的三維人臉動畫,同現有技術相比,結構簡單、容易部署且具有較好的可擴展性。

Kinect驅動;人臉跟蹤;人臉動畫;合成;MPEG-4標準

1 概述

具有真實感的三維人臉動畫合成技術是計算機圖形學領域研究的重要問題,準確而高效的人臉動畫合成廣泛地應用于諸如電影制作、游戲娛樂和醫療研究等多種領域。通用的人臉動畫合成方法是先建立人臉模型,然后基于人臉模型進行動畫合成控制,最流行的動畫合成控制方式是基于表演驅動的方法[1]。這種方法通過對真人的臉部表情進行捕捉,驅動人臉模型產生相應的臉部表情。傳統的人臉表情跟蹤技術是基于人臉特征點標記的技術[2],這種方法精度較好,但是設備一般比較昂貴,并且需要復雜的操作;目前采用較多的是基于視頻處理的技術[3],這種方法不需要對人臉進行標記,但是需要每個用戶在使用前進行校準,且僅利用2D圖像數據對人臉模型進行匹配,容易受到光照變化的影響,需要針對光照條件進行特殊處理。

Kinect是微軟在2010年推出的體感游戲設備,它既能夠獲取彩色圖像數據,也能獲取較為精確的深度數據,為人臉表情跟蹤提供了新的方法。文獻[4]提出了利用Kinect進行實時人臉動畫合成的方法,該方法主要利用深度數據進行人臉模型匹配,具有較好的魯棒性和有效性,缺點是在新用戶使用時要對用戶的特定模型進行手動校正和參數設置,

文獻[5]對此進行了改進,不需要手動設置過程,但這些方法采用的動畫合成方式均為關鍵臉部表情融合法,這種方法實現起來較為復雜且非常耗時[6]。

本文提出利用Kinect進行人臉動畫合成的方法,不需要針對特定用戶進行校準設置[7],采用符合MPEG-4人臉動畫標準的參數驅動法以及客戶-服務器系統模式。

2 系統框架

如圖1所示,Kinect驅動的人臉動畫合成系統采用客戶端-服務器模型,分為2個部分:

(1)人臉表情捕獲客戶端通過Kinect獲取RGB圖像和深度圖像,再利用Kinect SDK對圖像中的人臉進行跟蹤,識別用戶臉部表情信息,得到臉部表情動畫參數,通過socket發送給人臉動畫合成端。

(2)人臉動畫合成服務器端對指定網絡端口進行監聽,一旦有客戶端建立連接,就接收數據,然后根據MPEG-4人臉動畫標準,控制三維人臉模型產生變形從而實時合成相應的人臉動畫,再利用OpenGL進行渲染。

圖1 人臉動畫合成系統流程

選擇客戶端-服務器模型不僅可以降低系統耦合性使系統的實現更為簡單,而且能夠實現平臺的獨立性,更重要的是能夠使系統具有可擴展性。由于本系統采用的是基于MPEG-4人臉動畫標準的動畫合成技術,因此,人臉動畫合成端只要符合這一標準,都可以進行人臉動畫的合成,它并不一定必須是PC程序,可以是Android APP[8],甚至是支持WebGL的瀏覽器[9]。

3 人臉表情捕獲客戶端

Kinect能夠采集RGB彩色圖像和深度數據,彩色圖像最大支持1 280×960像素分辨率,深度圖像最大支持640×480像素分辨率。本文利用Kinect獲取用戶的人臉部表情參數,其流程如下:

(1)初始化Kinect參數并啟動Kinect設備。如果采用1 280×960像素分辨率采集RGB圖像,則 Kinect本身的幀率降至10 f/s,并且在人臉跟蹤環節消耗更多CPU時間,無法達到實時性要求,因此,初始化設置Kinect以較低的640×480像素分辨率進行圖像獲取;

(2)獲取Kinect拍攝的RGB圖像和深度圖像;

(3)判斷上一幀是否成功捕獲人臉,如果否則轉到步驟(4),如果是則轉到步驟(5);

(4)調用Kinect SDK中IFTFaceTracker類對象中的StartTracking方法在RGB圖像中進行人臉跟蹤,這一方法耗費較多CPU資源,因為在其內部實現中要對整幅圖像進行人臉搜索和匹配,完成后轉到步驟(6);

(5)調用IFTFaceTracker類對象的Continue Tracking方法進行人臉跟蹤,這一方法需要用到上一幀人臉跟蹤的結果,但是消耗的CPU資源相對較少,完成后轉到步驟(6);

(6)得到人臉跟蹤的結果并輸出,轉到步驟(2)。

整個流程如圖2所示。

圖2 Kinect人臉表情捕獲流程

Kinect SDK人臉跟蹤核心算法首先使用主動外觀模型(Active Appearance Model,AAM)算法[9]作為二維人臉跟蹤器,在RGB圖像上識別人臉所在的位置,然后將計算模型擴展到深度數據上,利用改進的極大相似度可變模型適配算法[7],進行三維人臉跟蹤。

通過跟蹤能夠獲取一個基于Candide-3模型[11]的參數化人臉網絡、11個臉部形狀單元(Shape

Unit,SU)、6個臉部動畫單元(Animation Unit,AU)和3個人臉朝向的角度[12],如圖3和圖4所示。SU描述的是臉部的個性化特征信息,比如嘴的寬度、下巴的寬度、眼睛的寬度以及兩眼之間的距離等。而AU是對用戶臉部關鍵部位動作的描述,取值范圍是-1~1,通過指定不同值的組合,可以構造不同的人臉表情動畫。人臉朝向角度取值范圍是-180°~180°。

圖3 捕獲的3個人臉朝向角度示意圖

圖4 Kinect人臉捕獲得到的6個AU

得到人臉表情參數后,客戶端通過socket將所獲取到的人臉表情參數發送給人臉動畫合成服務器端,由服務器端完成三維人臉動畫的合成與渲染。

4 人臉動畫合成服務器端

4.1 MPEG-4人臉動畫標準

人臉是人最重要的外部特征,在通信交流過程中起著重要的作用。MPEG-4對三維人臉動畫定義了一個國際標準[13]。該標準定義了人臉定義參數(Facial Definition Parameter,FDP)和人臉動畫參數(Facial Animation Parameter,FAP),并提供了一套以FDP和FAP為參數的人臉動畫實現框架。這種方法通用性強,數據量小,運算復雜度低,在人臉動畫領域得到廣泛的應用。在MPEG-4人臉動畫標準中,實現人臉動畫的核心是人臉動畫定義表,它定義了利用FAP對人臉網格進行變形控制的方式和參數[14]。

4.2 3D人臉模型

要合成3D人臉動畫,首先要建立一個靜態的3D人臉模型。為了有效地與MPEG-4人臉動畫標準相結合,并且使得人臉動畫合成盡可能簡單,本文采用專業人臉建模軟件FaceGen生成精細的3D人臉模型,如圖5所示。模型由3個部分組成:(1)內部由7 895個頂點和7 684個多邊形組成的3D人臉網格;(2)最外層的皮膚紋理;(3)其他附屬部分紋理,如頭發、眼睛、舌頭和牙齒。

圖5 3D人臉模型的組成

4.3 人臉動畫定義表的建立

通過Kinect所獲取的人臉表情動作參數是基于Candide-3模型的AU,而Candide-3模型與MPEG-4人臉動畫標準兼容[11],因此,本文的人臉動畫合成采用基于MPEG-4人臉動畫原理實現的AU驅動的人臉動畫合成方法,構造人臉動畫定義表是動畫合成的關鍵。

對于每一個AU,人臉動畫定義表定義:(1)AU控制哪些人臉特征點;(2)AU對特征點的影響因子是多少;(3)該特征點會對周圍哪些網格頂點產生影響。以AU0為例,AU0指示的是上嘴唇提升的程度,取值范圍從-1~1。AU0對MPEG-4人臉動畫模型中編號為8.1,8.5,8.6,2.2,2.7,2.6的6個特征點產生影響,如圖6(a)所示,分別定義AU0對這幾個特征點產生影響的影響因子。再以編號為8.1的特征點為例:(1)指定特征點在人臉網格上的位置;(2)指定這一特征點周圍受影響的其他網格頂點,如圖6(b)所示。其他特征點依次進行設置,設置完成后進行預覽測試并調整。

圖6 人臉動畫定義表的建立

用類似方法可以定義其他AU對人臉模型產生的影響,從而構建人臉動畫定義表。

4.4 人臉動畫的合成

人臉動畫合成服務器端有2個工作線程,一個server線程負責監聽指定端口,接收數據,另一個render線程負責進行人臉動畫合成和渲染??蛻舳藦腒inect捕獲的人臉表情參數以動畫幀的形式不斷地傳送給服務器,每一幀包含一個人臉表情對應的6個AU參數和3個人臉朝向的角度。當server線程接收到一幀數據時,將數據交給render線程,render線程對這一幀的每一個AU依次進行處理,查找人臉動畫定義表,對受AU影響的模型上的頂點及其影響區域內的其他點的新位置進行計算,從而獲得與該表情動作對應的模型新結構。

特征點及其影響區域內其他點的移動用升余弦函數(Raised Cos Function)進行計算,如下式所示。

其中,Δvp代表特征點影響區域內的點p需要在AU運動方向上移動的歐拉距離;dp代表點p到特征點的距離;dmax代表特征點影響區域內的最遠點到特征點的距離;ω代表特征點受AU影響的影響因子;au代表AU的值。每一組網格頂點的運動方向與該AU的運動方向相同。

利用模型的三角網格結構實現真實紋理的映射,最后將得到的3個人臉旋轉角度轉換成旋轉矩陣,從整體上對人臉模型的朝向進行變換,再基于OpenGL進行人臉模型的渲染,產生最終的人臉動畫。

5 實驗結果與分析

系統基于Kinect SDK 1.7用VS2010實現,實驗環境為intel i5 4570處理器,3.2 GHz主頻,4 GB內存,Windows 7操作系統。

5.1 人臉朝向角度對人臉跟蹤的影響

Kinect SDK所使用的AAM算法對圖像中人臉的朝向角度有一定的要求,而且2個核心函數StartTracking和ContinueTracking受人臉朝向角度的影響也不同,人臉跟蹤是否成功對人臉動畫產生較大影響。本文對人臉3個朝向角度對人臉跟蹤的影響進行測試,得到如表1所示的數據。

表1 人臉朝向角度對2個核心跟蹤函數的影響

從表1可以看出,StartTracking函數對人臉角度要求較為嚴格,而ContinueTracking函數對人臉角度要求會寬松一些。因此,在人臉跟蹤開始階段,應盡量減小臉部朝向角度,即盡量正對Kinect,而在跟蹤進行過程中,可以有較大臉部朝向角度的表情動作。

5.2 人臉跟蹤對光照變化的適應性

為了驗證本系統對光照變化的適應性,在不同光照條件下進行了實驗,如圖7所示??梢钥闯?在不同的光照條件下,人臉跟蹤客戶端仍然能夠較好地對人臉進行跟蹤和識別,獲取的人臉表情參數并沒有明顯的不同,對不同的光照條件具有較好的適應性。

圖7 不同光照條件下的人臉跟蹤情況

5.3 人臉動畫合成結果

圖8為頭部不同朝向角度下的人臉動畫,圖9為表現憤怒表情和驚訝表情的人臉動畫。

圖8 不同朝向角度下的人臉動畫

圖9 表現憤怒表情和驚訝表情的人臉動畫

實驗表明,本文方法可以較好地對人臉表情進行跟蹤并合成較高質量的人臉動畫,平均合成時間為每秒24幀,基本能夠達到實時性要求。系統的限制主要來源于人臉表情捕獲部分,因為Kinect是被設計用來捕獲人全身肢體的運動,所獲取的圖像中臉部的大小約為160×160像素,因此,對臉部的細節和非常微小的動作還無法有效地進行捕捉。

6 結束語

本文對利用Kinect合成三維人臉動畫的方法進行研究。首先實現了基于Kinect的人臉表情動作捕捉,其次實現了基于MPEG-4的三維人臉動畫,最后通過實驗對該方法進行了驗證。本文方法簡單高效、實時性強,容易部署且具有較好的可擴展性,能夠應用于虛擬現實、遠程會議、游戲娛樂等多種領域。下一步將針對文獻[15]所述自動化建立個性化人臉模型的過程進行更深入的研究。

[1]徐先良,沈縈華,費廣正,等.計算機人臉建模和動畫技術綜述[J].北京廣播學院學報:自然科學版,2006, 12(1):10-18.

[2]Le B H,ZhuMingyang,DengZhigang.Marker OptimizationforFacialMotionAcquisitionand Deformation[J].IEEE Transactions on Visualization and Computer Graphics,2013,19(11):1859-1871.

[3]Cao Chen,WengYanlin,LinS,etal.3DShape Regression for Real-time Facial Animation[J].ACM Transactions on Graphics,2013,32(4).

[4]Weise T,Bouaziz S,Li H,et al.Realtime Performancebased Facial Animation[J].ACM Transactions on Graphics,2011,30(4).

[5]Li Hao,Yu Jihun,Ye Yuting,et al.Realtime Facial Animation withOn-the-flyCorrectives[J].ACM Transactions on Graphics,2013,32(4).

[6]Li B,Zhang Q,Zhou D,et al.Facial Animation Based on Feature Points[J].Telkomnika Indonesian Journal of Electrical Engineering,2013,11(3):1697-1706.

[7]Cai Qin,Gallup D,Zhang Cha,et al.3d Deformable Face Tracking with a Commodity Depth Camera[C]// ProceedingsofEuropeanConferenceonComputer Vision.Berlin,Germany:Springer,2010:229-242.

[8]Lin H,Jia J,Wu X,et al.Talking Android:An Interactive, Multimodal and Real-time Talking Avatar Application on Mobile Phones[C]//Proceedings of Conference on Signal and Information Processing Association.Washington D.C., USA:IEEE Press,2013:1-4.

[9]Benin A,Cosi P,Leone G R.A webGL Talking Head for Mobile Devices[C]//Proceedings of International Working Conference on Advanced Visual Interfaces.New York,USA:ACM Press,2012:788-789.

[10]Zhou M,Liang L,Sun J,et al.AAM Based Face Tracking with Temporal Matching and Face Segmentation[C]// Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C.,USA:IEEE Press, 2010:701-708.

[11]Ahlberg J.Candide-3-anUpdatedParameterisedFace[EB/OL].(2001-01-12).http://www.icg.isy.liu.se.

[12]Zhang Zhengyou.MicrosoftKinectSensorandIts Effect[J].IEEE MultiMedia,2012,19(2):4-10.

[13]Nack F,Lindsay A T.Everything You Wanted to Know About MPEG-7.1[J].IEEE MultiMedia,1999,6(3): 65-77.

[14]Jiang Dalong,Li Zhiguo,Wang Zhaoqi,et al.Animating 3-D Facial Models with MPEG-4 Facedeftables[C]// Proceedings of the 35th Annual Simulation Symposium.Washington D.C.,USA:IEEE Press,2002:395-400.

[15]Hara T,Kubo H,Maejima A,et al.Fast-accurate 3D Face Model Generation Using a Single Video Camera[C]// Proceedings of the 21st International Conference on Pattern Recognition.Washington D.C.,USA:IEEE Press, 2012:1269-1272.

編輯 顧逸斐

Research on Synthesis Technology of Facial Animation Driven by Kinect

LI Junlonga,ZHANG Dengyia,HUANG Junb
(a.School of Computer;b.State Key Laboratory of Information Engineering in Surveying, Mapping and Remote Sensing,Wuhan University,Wuhan 430079,China)

The technique of 3D human facial animation can be applied in a wide range of fields such as virtual reality, avatar control and so on.This paper proposes a real-time facial animation system based on Kinect.In this system,facial expression parameters are inferred by facial tracking client with Kinect and sent to the facial animation synthesizing server through socket.The server looks up FaceDefTables based on MPEG-4 facial animation standard to control the morphing of 3D face model.3D facial animations which emulate expressions of the user are then generated in real time.Experimental results show that the method can rebuild quality realistic 3D facial animations in real time.Compared with existing technologies,this system with simple structure is easy to deploy and is also extendibility.

Kinect driven;facial tracking;facial animation;synthesis;MPEG-4 standard

李俊龍,章登義,黃 珺.Kinect驅動的人臉動畫合成技術研究[J].計算機工程,2015,41(3):237-241.

英文引用格式:Li Junlong,Zhang Dengyi,Huang Jun.Research on Synthesis Technology of Facial Animation Driven by Kinect[J].Computer Engineering,2015,41(3):237-241.

1000-3428(2015)03-0237-05

:A

:TP37

10.3969/j.issn.1000-3428.2015.03.044

教育部博士點基金資助項目(20120141120006);武漢科技計劃基金資助項目(2013010501010146)。

李俊龍(1988-),男,碩士研究生,主研方向:計算機視覺;章登義,教授;黃 珺,碩士研究生。

2014-05-16

:2014-06-22E-mail:v6543210@126.com

猜你喜歡
朝向臉部人臉
臉部美容須知
朝向馬頭的方向
朝向馬頭的方向
有特點的人臉
一起學畫人臉
烏龜快跑
三國漫——人臉解鎖
長得象人臉的十種動物
朝向坐標
3D打印技術助英男子重獲完整臉部
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合