雷鋒網 AI 科技評論按,日前,美圖影像實驗室(MTlab, Meitu Imaging & Vision Lab)推出「10000 點 3D 人臉關鍵點技術」——利用深度學習技術實現 10000 點的人臉五官精細定位,該項技術可以在 VR 遊戲中構建玩家人臉的 3D 遊戲角色並且驅動,也可以應用於虛擬試妝試戴和醫療美容領域等。本文為美圖影像實驗室 MTlab 基於該技術為雷鋒網(公眾號:雷鋒網) AI 科技評論提供的獨家解讀。正文如下:
簡介
在計算機視覺領域,人臉關鍵點定位在視覺和圖形中具有廣泛的應用,包括面部跟蹤、情感識別以及與多媒體相關的交互式圖像視頻編輯任務。目前行業內常用的是 2D 人臉關鍵點技術,然而,2D 人臉點定位技術由於無法獲取深度信息,不能分析用戶的立體特徵,比如蘋果肌,法令紋等更加細緻的用戶信息,也無法分析出用戶當前的姿態和表情。為了能夠給用戶的自拍添加動畫效果,如面具、眼鏡、3D 帽子等物品,並且提供更加智能的 AI 美顏美型效果,需要一套特殊的感知技術,實時跟蹤每個用戶的微笑、眨眼等表面幾何特徵。因此,美圖影像實驗室 MTlab 研發人員研發了 10000 點人臉關鍵點技術,將面部圖像提升到三維立體空間,將用戶的姿態、臉型以及表情分解開來,實時跟蹤用戶當前的姿態、表情、五官特徵改變後的面部形態,調整後的圖像更加自然美觀。
基於 3DMM 的人臉關鍵點定位方法
1. 三維形變模型 (3DMM)
1999 年,瑞士巴塞爾大學的科學家 Blanz 和 Vetter 提出了一種十分具有創新性的方法——三維形變模型 (3DMM)。三維形變模型建立在三維人臉資料庫的基礎上,以人臉形狀和人臉紋理統計為約束,同時考慮了人臉的姿態和光照因素的影響,生成的人臉三維模型精度較高。
3DMM
如上圖所示 3DMM 的主要思想是:一張人臉模型可以由已有的臉部模型進行線性組合。也就是說,可以通過改變係數,在已有人臉基礎上生成不同人臉。假設建立 3D 變形的人臉模型由 m 個人臉模型組成,其中每一個人臉模型都包含相應的臉型和紋理兩種向量,這樣在表示新的 3D 人臉模型時,就可以採用以下方式:
其中表示平均臉部形狀模型,表示 shape 的 PCA 部分,表示對應臉型係數。
Blanz 和 Vetter 提出的 3DMM 雖然解決了人臉變形模型的表達問題,但其在人臉表情表達上依然存在明顯不足。2014 年時,FacewareHouse 這篇論文提出並公開了一個人臉表情資料庫,使得 3DMM 有了更強的表現力,人臉模型的線性表示可以擴充為:
在原來的臉型數據基礎上,增加了表情,表示對應的表情係數,係數讓實時表情 Tracking 成為了可能。
2. 美圖 MT3DMM 模型
為了能夠更加精細地刻畫不同人臉的 3D 形狀,並且適用於更廣泛的人種,MTlab 的研發團隊採用先進的 3D 掃描設備採集了 1200 個不同人物、每人 18 種表情的 3D 人臉數據,其中男女各半,多為中國人,年齡分布在 12~60 歲,模型總數超過 20000 個,基於這些數據,建立了基於深度神經網絡的 MT3DMM 模型。相比於目前主流的 3DMM 模型,MT3DMM 具有表情豐富,模型精度高,並且符合亞洲人臉分布的特點,是目前業界精度最高的 3D 人臉模型之一。
3DMM 模型,代表了一個平均臉,也同時包含了與該平均臉的偏差信息。例如,一個胖臉在一個瘦臉模型基礎上,通過調整五官比例可以得到胖臉模型。利用這種相關性,計算機只需要利用用戶的臉與平均人臉的偏差信息,就能夠生成專屬於用戶的 3D 模型。不僅如此,這些偏差還包括大致的年齡、性別和臉部長度等參數。但是,這樣也存在一個問題,世界上的人臉千變萬化,要將所有人臉與平均人臉的偏差都存儲下來,3DMM 模型需要集成大量面部的信息,然而目前的開源模型在模仿不同年齡和種族人臉方面的能力十分有限。
如下圖 BFM 的人臉數據基本都是外國人臉,跟亞洲人臉的數據分布存在差異;Facewarehouse 的數據主要是亞洲人臉,但是用 Kinect 掃描的模型則存在精度較低的問題;SFM 開源的數據只包含了 6 種表情,並且模型的精度較低,無法滿足我們的需求;LSFM 數據包含了較多的人臉數據,但是不包含表情,無法用於用戶表情跟蹤。
BFM 和 SFM 數據中的部分數據
掃描出來的模型雖然是高精度的模型,但是不包含具體的語義信息。因此,MTlab 的 3D 研發團隊專門為此開發了一套自動註冊算法,無需人工進行標定就可以對掃描模型進行精細化註冊,如下圖所示:
註冊流程
模型生成結果
最終,MTlab 將所有註冊好的 3D 模型組合成 MT3DMM 資料庫,用於 10000 點面部關鍵點定位。高精度的掃描模型也為開發其它功能提供了更多的可能。
3. 數據製作
為了能夠發揮深度學習的大數據優勢,需要給神經網絡提供大量的數據,MTlab 研發人員設計了一套高複雜度的數據製作算法,同時配合高精度的 MT3DMM 模型製作出大量的訓練數據。相比目前主流的訓練數據製作方法,MTlab 的訓練數據可以有效的解耦臉型,表情以及姿態信息,在進行精確的稠密點人臉定位的同時,進行 AR 特效以及精準的人臉表情驅動。
從上面的公式可以將人臉重建的問題轉化成求, 係數的問題,將我們參數化的 3D 人臉模型跟 2D 特徵點進行映射後,便可以用下面的公式對臉部進行擬合,具體求解過程如下:
這裡是三維模型投影到二維平面的點,P 為正交投影矩陣,R 為旋轉矩陣,為位移矩陣,這樣我們就可以將三維求解問題轉化成求解下面的能量方程:
這裡加了正則化部分,其中是 PCA 係數(包括形狀係數以及表情係數),表示對應的主成分偏差。
目前的 3D 重建算法大多都是將姿態,臉型以及表情參數一起優化,並不能將這三者獨立開來,為了能夠解耦姿態,表情,以及臉型之間的關係,MTlab 的數據包含了一個人同一姿態下的不同表情,以及同一表情下不同姿態的數據集,採用 Joint Optimization 策略來計算每個人的臉型,姿態以及表情參數,得到解耦後的參數數據可以真實反應出當前人臉的姿態信息,臉型信息以及表情信息,極大的豐富了應用場景。
4. 神經網絡訓練
傳統的 3D 人臉重建算法,不管是單圖重建、多圖重建還是視頻序列幀重建,都需要通過凸優化算法優化出所需要的參數,為了能夠讓算法在移動端實時運行,MTlab 研發人員採用深度神經網絡進行 End-to-End 學習,通過神經網絡強大的學習能力替代了凸優化過程的大量計算。通過研究分析目前移動端較快的網絡(SqueezeNet、Shufflenet V2、PeleeNet、MobilenetV2、IGCV3)的特性,MTlab 研發人員提出了一種適合移動端網絡,並且具備低功耗特性的 ThunderNet,配合 MTlab 研發的 AI 前向引擎和模型量化技術,在美圖 T9 上運行幀率達到 500fps。MT3DMM 神經網絡訓練的要點如下:
MT3DMM 整體流程
數據增益:為了適應 In-the-wild 圖像,需要讓算法對低解析度、噪聲、遮擋或包含運動和不同的光照場景下具有強魯棒性,MTlab 採用了海量的數據,並用算法擾動模擬了各種真實環境下的數據進行訓練。
網絡結構:使用了 MTlab 自研的 ThunderNet 網絡結構,在速度和精度上都超過了同規模的快速網絡,包括 SqueezeNet、Shufflenet V2、PeleeNet、MobilenetV2、IGCV3,並具有低功耗的特點。
損失函數:Loss 主要採用了參數 Loss、KeyPoints Loss、3D Vertexes Loss 以及 Texture Loss,並且用相應的權重去串聯它們,從而使網絡收斂達到最佳效果。實驗發現,參數 Loss 可以獲取更加準確的參數語意信息,KeyPoints Loss 可以使最終的稠密人臉點貼合人臉五官信息,3D Vertexes Loss 能更好地保留用戶臉部 3D 幾何信息,Texture Loss 則可以幫助網絡實現更好的收斂效果。
最終,在得到網絡輸出的參數後,MTlab 用 MT3DMM 模型解碼出相應的人臉 3D 模型,根據姿態以及投影矩陣就可以得到面部稠密人臉點。模型都是經過參數化後,每一個點都有其相對應的語義信息,可以通過修改 3D 模型對圖像進行相應的編輯。美圖手機上光效相機、個性化美顏檔案、3D 修容記憶、美顏立體提升、3D 姿態調整、App 萌拍動效、美妝相機萬聖節妝容、彩妝、Avatar 驅動等功能都採用了該項技術。
參考文獻
V. Blanz and T. Vetter. A morphable model for the synthesis of 3D faces. In Proceedings of the 26th annual conference on Computer graphics and interactive techniques, pages 187– 194, 1999.
Cao C, Weng Y, Zhou S, et al. Facewarehouse: A 3d facial expression database for visual computing[J]. IEEE Transactions on Visualization and Computer Graphics, 2014, 20(3): 413-425
Huber P, Hu G, Tena R, et al. A multiresolution 3d morphable face model and fitting framework[C]//Proceedings of the 11th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications. 2016.
Booth J, Roussos A, Zafeiriou S, et al. A 3d morphable model learnt from 10,000 faces[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 5543-5552.
Iandola F N, Han S, Moskewicz M W, et al. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and< 0.5 MB model size[J]. arXiv preprint arXiv:1602.07360, 2016.
Ma N, Zhang X, Zheng H T, et al. Shufflenet v2: Practical guidelines for efficient cnn architecture design[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 116-131.
Wang R J, Li X, Ling C X. Pelee: A real-time object detection system on mobile devices[C]//Advances in Neural Information Processing Systems. 2018: 1963-1972.
Sandler M, Howard A, Zhu M, et al. Mobilenetv2: Inverted residuals and linear bottlenecks[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 4510-4520.
Sun K, Li M, Liu D, et al. Igcv3: Interleaved low-rank group convolutions for efficient deep neural networks[J]. arXiv preprint arXiv:1806.00178, 2018.
雷鋒網特約稿件,未經授權禁止轉載。詳情見轉載須知。