面捕:《Real-time Facial Animation on Mobile Devices》

《Real-time Facial Animation on Mobile Devices》
作者:Yanlin Weng, Chen Cao, Qiming Hou, Kun Zhou
來源:浙大
時間:2014

0 Abstract

  本文提出了一種高性能的,可實時運行在移動設備上的面部動畫系統(facial animation system)。新穎的迴歸算法可直接從2D的視頻圖像中迴歸出人臉運動參數(facial motion parameters)

  相較文獻【1】(也是本團隊論文)採用的人臉形狀迴歸算法(facial shape regression algorithm)(分2步:首先回歸出3D關鍵點,然後計算頭部姿態和表情係數)相比,本文直接回歸出頭部姿態(head poses)和表情係數(expression coefficients),大大減少了迴歸目標的係數維度,顯著提高了跟蹤過程性能,同時保持了跟蹤精度

  收集不同光照下的訓練數據,並訓練處出特定用戶的迴歸器(user-specific regressor),使得設備可以有效地適應頻繁多變的光照環境

1 Introduction

  面捕技術常常基於特殊設備,如人臉標記點,結構光,相機陣列等,顯然這種法式在使用有些束縛;隨着移動設備的普及,基於單攝像頭的人臉動畫系統將在視頻聊天,社交網絡,網絡遊戲等諸多應用中發揮重要作用

  根據怎樣從視頻中提取人臉特徵,跟蹤算法分爲2類主流:優化類和迴歸類(optimization based and regression-based)
  基於優化的方法總能得到特徵和圖像表現之間的擬合能量相匹配誤差,如文獻【9,10】的AAM(Active Appearance Model)方法;迴歸算法如文獻【13】直接回歸關鍵點,不用形狀模型,通過最小化訓練集的對其誤差
  這些方法都嘗試找到一個通用的方法來跟蹤面部特徵,但是它們都沒有產生令人滿意的結果,特別是在面對非正面和誇張表情時

  文獻【2】提出了基於Kinect,利用深度和顏色信息的實時人臉動畫系統,但它適用於室內環境且依賴深度攝像頭
  文獻【1】,見上,提出的3D形狀迴歸,可以適應於剛性變換( rigid transformation)和非剛性blendshape係數(non-rigid blendshape coefficients),可以映射向任何數字化頭像(digital avatar)

2 Facial Motion Regression

  本文人臉運作參數迴歸算法是在文獻【1】的3D人臉形狀迴歸算法基礎上的延展;文獻【1】中迴歸目標是3D人臉形狀,本文是人臉運動參數(描述剛性和非剛性人臉運動)

2.1. Training Data Preparation

1)Image capturing and labelling
  首先:採集60張預定義的用戶人臉姿態和表情
  然後:75個特徵點,可以用文獻【13】中的模型自動標記+手動修正,如下圖


在這裏插入圖片描述

2)User-specific blendshape generation
  利用這些帶標籤的數據和FaceWarehouse數據集,可以提取User-specific blendshape(B)和相機內參intrinsic matrix (Q),通過最小化能量函數:


在這裏插入圖片描述

  參數Q,Wid,Wexp,Mi爲未知參數,求解方法見文獻【1】,相機內參Q


在這裏插入圖片描述

   expression blendshapes{Bi}


在這裏插入圖片描述

3)Motion parameter recovery
  基於blendshape和相機內參,可以恢復3D人臉mesh,然後針對每張圖,最小化3D特徵定點的投影誤差,求解出人臉運動參數


在這裏插入圖片描述

  其中,α\alpha爲46維的表情係數,這裏要求生成的blendshape係數與預先定義的表情係數一致,所有增加正則化項αα2||\alpha - \alpha^* ||^2
  剛性變換矩陣M包括一個4D旋轉4元素向量R和3D變換向量,共計46+4+3=53D向量


在這裏插入圖片描述

2.2. Training Set Construction

  對每張訓練圖像IiI_i來說,都有與之相匹配的運動參數向量XigX_i^g(motion parameter vector),而這裏的參數向量由上述的3部分組成,訓練中並對樣本進行數據增強


在這裏插入圖片描述

  將增強的數據標記爲:XijcX_{ij}^c,則訓練數據可表示爲:(Ii,xi,xic){(I_i,x_i,x_i^c)}

2.3. Regressor training

  對於N個訓練樣本,基於圖像IiI_i像素訓練xix_ixicx_i^c到的運動參數迴歸函數;採用的是2級boost迴歸算法(two-level boosted regression algorithm),如


在這裏插入圖片描述

  第1級,從當前運動參數xicx_i^c中重建3D關鍵點,並採用像素構建外觀向量(appearance vector)
  第2級,基於外觀向量,更新當前運動參數xicx_i^c,以最小化xix_ixicx_i^c的誤差

1)Appearance vector generation
  第1級中,我們需要在人臉mesh網格中隨機生成p點,並用它們採樣圖像;每個點表示爲:索引-偏移對(kpdpk_p,d_p),在這裏,kp表示關鍵點索引,dp表示偏移量;根據經驗,我們隨機選擇kp,具體見文獻【1】
  對每個訓練樣本,首先對靜止姿態(rest pose),即沒有旋轉和變換,重建3D關鍵點:Sic={sikc}S_i^c = \left \{s_{ik}^c\right\},通過


在這裏插入圖片描述

  再通過變換3D點,並通過映射函數變換點到圖像空間:


在這裏插入圖片描述

  然後根據Up值,構建外觀向量


在這裏插入圖片描述

  對單個Vi,生成p2p^2個索引對特徵

  第2級中,根據Vi,同累加法構建一組弱迴歸器,使得xix_ixicx_i^c的誤差最小化;爲了訓練這些弱迴歸器,需要有效選擇特徵,從p2p^2個索引對特徵中。

2)Feature selection
  特徵選擇與迴歸目標高度相關,首先隨機生成53D向量Y,然後對個樣本,計算誤差向量δxi=xixic\delta x_i = x_i - x_i^c,再將誤差向量投影到Y得到一個標量,最後選擇與該標量高度相關的索引對
  在這裏由於,53D向量中三者,處於不同量級,所以不能同等對待,根據經驗,本文爲其設置不同權重:


在這裏插入圖片描述

3)Fern construction
  重複F次選擇F個索引對特徵,對每個特徵,在外觀向量區間值中,設置隨機閾值;特徵和閾值被用來構建原始迴歸起,稱爲:fern
  對每個fern,計算F個索引對特徵和閾值,並鑑定它們屬於特徵空間的那個bin;對每個bin,對屬於該bin的訓練數據表示爲Ωb\Omega_b,然後嘗試尋找偏移量使得xix_ixicx_i^c的誤差最小化,表示爲:


在這裏插入圖片描述

  並用這個偏移量跟新xicx_i^c

2.4. Runtime Regression

  利用最後一節訓練的人臉運動迴歸器,可以實時計算視頻幀II的人臉運動參數,從前一幀的迴歸結果xx'開始,從訓練集中找到與xx'相似的運作參數作爲迴歸的初始參數
1)Initial parameters
  與訓練相似,首先重建3D關鍵點向量S={sk}S' = \left\{s_k'\right\},它基於前一幀參數向量vv'


在這裏插入圖片描述

2)Appearance vector
  與訓練相似

3)Fern passing
  與訓練相似,詳見算法流程:


在這裏插入圖片描述

3 Handling Lighting Changes

  


在這裏插入圖片描述

4 Experimental Results

  


在這裏插入圖片描述

5 Conclusion

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章