[讀論文]弱監(jiān)督學習的精確 3D 人臉重建:從單個圖像到圖像集
論文地址:Accurate 3D Face Reconstruction with Weakly-Supervised Learning:From Single Image to Image Set(https://arxiv.org/abs/1903.08527)
1. 摘要
最近,基于深度學習的 3D 人臉重構方法在質(zhì)量和效率方面都顯示出很好的效果。然而,訓練深度卷積神經(jīng)網(wǎng)絡通常需要大量數(shù)據(jù),而具有真實三維臉部形狀的臉部圖像卻很少。在本文中,作者提出了一種新穎的深度 3D 人臉重建方法。具有以下優(yōu)勢:
- 為弱監(jiān)督學習提供了一個魯棒的混合損失函數(shù),該函數(shù)考慮到了監(jiān)督的低層次和感知層次的信息。
- 通過利用來自不同圖像的互補信息進行形狀聚合,執(zhí)行多圖像重建。
作者認為該方法對遮擋和大幅度姿勢是快速、準確并且魯棒的。并且作者在三個數(shù)據(jù)集提供了全方位的實驗,系統(tǒng)地將本文的方法與 15 種最新的方法進行比較,并證明其最先進的性能。
2. 介紹
從無約束的二維圖像中真實地恢復人臉的三維形狀是一項具有挑戰(zhàn)性的任務,并有許多應用,如人臉識別、人臉媒體控制和人臉動畫。最近,對使用深度卷積神經(jīng)網(wǎng)絡(CNN)從單一圖像中重新構建三維人臉的熱度大增,以取代傳統(tǒng)方法所使用的復雜和高代價的優(yōu)化。由于真實的 3D 人臉數(shù)據(jù)稀缺,許多以前的方法求助于合成數(shù)據(jù)或使用通過傳統(tǒng)方法擬合的 3D 形狀作為替代形狀標簽。但是,它們的準確性可能會受到間隙差異問題或不完善的訓練標簽。
為了規(guī)避這些問題,一些研究人員提出了一些方法,通過無監(jiān)督或弱監(jiān)督的方式訓練沒有人臉形狀標簽的網(wǎng)絡模型,并取得了令人鼓舞的結(jié)果。無監(jiān)督學習的核心是一個可微的圖像形成程序,該程序通過網(wǎng)絡預測渲染人臉圖像,監(jiān)督信號來自于輸入圖像和渲染的對應物之間的差異。例如,Tewariet 等人和 Sengupta 等人使用像素級別光度差異作為訓練損失。為了提高魯棒性和表現(xiàn)力,Tewariet 等人提出了兩步重建方案,其中第二步使用神經(jīng)網(wǎng)絡產(chǎn)生形狀和紋理校正。Genova 等人提出通過使用從人臉識別網(wǎng)絡中提取的深層特征之間的距離來測量感知層面的人臉圖像差異。
作者在本文中的目標是通過弱監(jiān)督學習獲得準確的三維人臉重構。?作者發(fā)現(xiàn)使用像素級色彩的低層次信息可能會受到局部最小值問題的影響,在這種情況下,低誤差將得到不令人滿意的臉部形狀結(jié)果。?另一方面,只使用感知損失也會導致次優(yōu)的結(jié)果,因為它忽略了像素級與原始圖像信號的一致性。有鑒于此,作者提出了一個混合的損失函數(shù),該函數(shù)整合了這兩者,從而獲得了準確的結(jié)果。作者還提出了一種新的基于皮膚顏色的測光誤差注意策略,使方法對遮擋和其他具有挑戰(zhàn)性的外觀變化(如胡子和濃妝)具有進一步的魯棒性。作者使用一個現(xiàn)成的深度 CNN 來預測 3D MorphableModel(3DMM)的系數(shù),并在多個數(shù)據(jù)集上實現(xiàn)了精確的 3D 重構。
有了一個有效的 CNN 模型用于單幅圖像的三維人臉重建,作者進一步考慮基于 CNN 的人臉重建與圖像集的聚合問題。給出一個對象在不同的情況下日常捕捉到的的多張臉部圖像(例如,來自個人相冊集),利用多張圖像來構建更好的 3D 面部形狀是顯而易見的。為了在任意數(shù)量的圖像上應用深度神經(jīng)網(wǎng)絡,一種解決方案是將單幅圖像的重建結(jié)果聚合起來,最簡單的策略是對重建的形狀進行簡單地平均化。然而,這種原生策略沒有考慮輸入圖像的質(zhì)量(例如,如果某些樣本包含嚴重的遮擋)。它也沒有充分利用姿態(tài)差異來改進形狀預測。
在本文中,作者提出一種從多個圖像中學習三維人臉聚合并以無監(jiān)督的方式進行重建的方法。作者使用一個簡單的輔助網(wǎng)絡來產(chǎn)生回歸的三維模型系數(shù)的 "置信度分數(shù)",并通過基于置信度的聚合獲得最終的身份系數(shù)。盡管沒有使用明確的置信度標簽,但作者的方法會自動學習高質(zhì)量(尤其是高可見)的照片。此外,它可以利用差異來更好地融合互補的信息,學習到更準確的三維形狀。
總而言之:
- 作者提出了一種基于 CNN 的單圖像人臉重建方法,利用混合的圖像信息進行弱監(jiān)督學習。?并證明了將它們結(jié)合起來的優(yōu)勢,并在多個數(shù)據(jù)集上顯示了該方法的最佳準確性,大大超過了以前以完全監(jiān)督方式訓練的方法。此外,作者還表明,在低維的 3DMM 子空間,作者仍然能夠以可觀的幅度優(yōu)于現(xiàn)有采用 "無約束 " 3D 表示技術。
- 作者提出了一種新的形狀置信度學習方法,用于多圖像人臉重建聚合。置信度預測子網(wǎng)也是以一種無真實標簽的無監(jiān)督方式訓練的。作者的實驗表明,該方法明顯優(yōu)于簡單的聚合(例如,形狀平均)和一些啟發(fā)式策略。作者表示這是首次嘗試基于 CNN 的三維人臉重建和從無約束的圖像集中進行聚合的方法。
3. 模型和輸出
圖1. (a) 方法框架:包括一個用于端到端單圖像三維重建的重建網(wǎng)絡和一個用于基于多圖像重建的置信度測量子網(wǎng)。(b) 使用作者提出的混合級損失函數(shù)的單圖像訓練管道。且方法不需要任何地面真實的三維形狀來訓練。它只利用一些弱的監(jiān)督信號,如面部標志、皮膚面具和預先訓練好的人臉識別 CNN 。(c) 基于多圖像的重建的訓練管道。置信子網(wǎng)絡學習測量重建的置信度,以便在沒有任何明確標簽的情況下進行聚合。虛線箭頭表示網(wǎng)絡訓練的誤差反向傳播。
如圖1(a)所示,作者使用一個 CNN 來回歸 3DMM 人臉模型的系數(shù)。對于無監(jiān)督/弱監(jiān)督的訓練[49, 48],作者也對照度和臉部姿勢進行回歸,以實現(xiàn)分析性的圖像再生。模型和 CNN 輸出詳細說明如下:
3D Face Model:在3DMM中,臉部形狀 和紋理 可以由一個仿生模型表示[公式1]:
其中 和 是平均的臉部形狀和紋理; 和 分別是身份、表情和紋理的PCA 基數(shù),它們都以標準的去維度進行縮放;αβ 和 δ 是用于生成三維臉部的相應系數(shù)向量。作者采用 Basel2009 人臉模型來表示 和 ,并使用從 Face-Warehouse 建立的表情基數(shù) 。并且作者選擇了一個基數(shù)的子集,結(jié)果是 和 。作者排除了耳朵和頸部區(qū)域,最終模型包含 36K 個頂點。
照明模型(Illumination Model):作者假設人臉為朗伯斯表面( Lambertian surface),用球面諧波(Spherical Harmonics)近似場景光照。然后計算具有表面法線 和皮膚紋理 的頂點的輻射度 為:,其中 是球面諧波 SH 的基函數(shù), 是相應球面諧波 SH 聯(lián)合系數(shù)。作者選擇B=3波段,并假設單色光,使 γ。
相機模型:作者使用具有經(jīng)驗選擇的焦距的透視相機模型用于 3D-2D 投影幾何。3D 人臉姿勢 由旋轉(zhuǎn) 和平移 表示??傊?,要預測的未知數(shù)可以由向量 αβδγ 表示。在本文中,作者使用 ResNet-50 網(wǎng)絡,通過將最后一個全連接層修改為 239 個神經(jīng)元,來回歸這些系數(shù)。為了簡潔起見,作者把這個用于單幅圖像重建的修改后的 ResNet-50 網(wǎng)絡稱為 R-Net 。作者將在下一節(jié)中介紹如何訓練它。
4. 用于單幅圖像重建的混合弱監(jiān)督學習(Hybrid-level ?Weak-supervision ?for ?Single-Image Reconstruction)
給定一個訓練 RGB 圖像 ,作者使用 R-Net 回歸系數(shù)向量 ,利用它可以通過一些簡單的、可微的數(shù)學推導分析生成重建的圖像 。R-Net 是在沒有任何真實標簽的情況下進行訓練的,但通過評估 的混合損失,并對其進行反向傳播。
4.1 圖片層面損失( Image-Level Losses)
圖 2.未使用(第一行)和使用(第二行)作者的皮膚注意力掩膜進行訓練的結(jié)果比較
作者首先在低級信息上介紹損失函數(shù),包括單個像素顏色和稀疏 2D 標記點
4.1.1 魯棒的光度損失( Robust Photometric Loss)
首先,直接測量原始圖像和重建圖像之間的密集光度差異是很簡單的。在本文中,作者提出了一個穩(wěn)健的、對皮膚有感知的光度損失,而不是一個樸素的損失,定義為[公式2]:
其中, 表示像素索引, 是可以方便得到的重投影臉部區(qū)域, 表示 范數(shù), 是基于皮膚顏色的訓練圖像的注意力掩膜(attention mask),描述如下:
- Skin Attention:為了獲得對遮擋和其他具有挑戰(zhàn)性的外觀變化(如胡須和濃妝)的魯棒性,作者計算了每個像素的皮膚顏色概率。在皮膚圖像數(shù)據(jù)集上用高斯混合模型訓練一個樸素貝葉斯分類器。?對于每個像素 ,作者設 。作者在實驗中發(fā)現(xiàn)這樣一個簡單的皮膚感知損失函數(shù)在實踐中效果非常好,而并不需要人臉分割方法。圖 2 說明了使用作者的皮膚注意力掩膜的好處。還值得一提的是在方程中的損失:其為 2D 圖像像素上整合,而不是 3D 形狀頂點。
4.1.2 標記點損失( Landmark Loss)
作者還使用二維圖像上的人臉標記點作為弱監(jiān)督來訓練網(wǎng)絡。作者使用目前最準確的三維人臉對齊方法來檢測訓練圖像的 68 個標記點 。在訓練中,作者將重建的形狀的三維標記頂點投射到圖像上,得到 ,并計算出損失為[公式3]:
其中 ω 是 Landmark 權重,作者在實驗中把嘴巴內(nèi)的點和鼻子內(nèi)的點的權重設為 20 ,其他的設為 1 。
4.2 感知層損失(Perception-Level Loss)
圖 3. 僅使用圖像級損失(第一行)和同時使用圖像級和感知損失(第二行)進行訓練的結(jié)果比較。數(shù)字是光度誤差。較低的光度誤差并不能保證更好的形狀
雖然使用低級信息來測量圖像差異通常可以產(chǎn)生不錯的結(jié)果,但作者發(fā)現(xiàn)單獨使用它們會導致基于 CNN 的 3D 人臉重建的局部最優(yōu)問題。圖 3 顯示,作者僅使用圖像級損失訓練的 R-Net 生成的紋理更平滑,光度誤差比對比對手更低,但通過人眼查看比較所得的 3D 形狀卻不太準確。
為了解決上述問題,作者引入了一個感知層面的損失來進一步指導訓練。作者從一個預先訓練好的深度面部識別網(wǎng)絡中尋找弱監(jiān)督信號。具體來說,提取圖像的深度特征并計算余弦距離[公式4]:
??其中 表示深度特征編碼, 表示向量內(nèi)積。在這項工作中,作者使用內(nèi)部的人臉識別數(shù)據(jù)集訓練 FaceNet 結(jié)構,其中包含從互聯(lián)網(wǎng)上抓取的 50K 個對象的 3M 人臉圖像,并將其用作深度特征提取器。
圖 3 顯示,隨著感知損失的增加,紋理更加清晰,形狀更加寫實。實驗部分的定量結(jié)果也顯示了這種優(yōu)勢。
4.3 正則化(Regularization)
為了防止面部形狀和紋理退化,作者在回歸的 3DMM 系數(shù)上添加了一個常用的損失[公式5]:
這強制對平均面進行先驗分布。平衡權重根據(jù)經(jīng)驗設置為 ωα,ωβ 和 ωγ。
盡管 Basel 2009 3DMM 中的面部紋理是使用特殊設備獲得的,但它們?nèi)匀话恍┖姹宏幱埃ɡ?,環(huán)境光遮擋)。為了支持類似于恒定皮膚反照率,作者添加了一個展平約束來懲罰紋理貼圖方差[公式6]:
其中 是一個預定義的皮膚區(qū)域,覆蓋臉頰、噪聲和前額??偠灾琑-Net 損失函數(shù) 由兩個圖像級損失、一個感知損失和兩個正則化損失組成。在作者實驗中它們的權重被設置為 ?
5. 用于多圖像重建的弱監(jiān)督神經(jīng)網(wǎng)絡聚合(Weakly-supervised Neural Aggregation forMulti-Image Reconstruction)
考慮到一個主體的多張臉部圖像(例如,一本相冊),想要利用所有的圖像來建立更好的三維臉部形狀。由于姿勢和光線的變化,在不同條件下拍攝的圖像應該包含相互補充的信息。此外,使用一個圖像集進行重建,可以在一些單獨的圖像中獲得對遮擋和不良照明的進一步魯棒性。
在任意數(shù)量的無序圖像上應用深度神經(jīng)網(wǎng)絡并不簡單。 ?在這項工作中,作者使用一個網(wǎng)絡來學習對單幅圖像重建結(jié)果的信心或質(zhì)量的測量,并使用它來匯總各個形狀。具體來說,作者試圖生成一個矢量 ,其中的正元素用來衡量具有特征的形狀系數(shù) α 的可信度。**但作者不考慮其他系數(shù),如表情、姿勢和光照,因為它們在不同的圖像中是不同的,沒有必要融合。**作者還繞過了紋理,因為作者發(fā)現(xiàn)同一個對象的皮膚顏色在不同的室外場景圖像中會有很大的差異。設 是一個人的圖像集合,αβδγ 是 R-Net 對每個圖像j的輸出系數(shù)向量, 是每個 α 的置信度向量,作者通過逐個元素的形狀系數(shù)聚合得到最終形狀[公式7]:
其中 和 分別表示 Hadamard 乘積和除法。
接下來,作者將介紹如何訓練一個網(wǎng)絡,即 C-Net,在沒有標簽的情況下以弱監(jiān)督的方式進行預測。之后將介紹 C-Net 的結(jié)構。
5.1 無標簽訓練(Label-Free Training)
為了在圖像集上訓練 C-Net ,作者用 生成 的重建圖像集 ,其中 。作者將訓練損失定義為[公式8]:
其中 是作者在第4節(jié)中定義的混合級損失函數(shù),用 的 來評估。
這樣一來,誤差可以反向傳播到 α,然后進一步傳播到 C-Net 的權重,因為公式 7 是可微調(diào)的。C-Net 將被訓練成能夠產(chǎn)生盡可能與人臉圖集一致的聚合三維人臉形狀的置信度。圖 1(c) 說明了該管道。在多圖像訓練階段,損失權重 ω、ω 和 ω 分別被設置為 、 和 。
作者的聚合設計和訓練方案基于集合的人臉識別工作的啟發(fā)。然而使用標量質(zhì)量分數(shù)進行特征向量聚合,而作者為 3DMM 系數(shù)生成元素分數(shù)。在第 6.2.1 節(jié)中,作者展示了按元素得分產(chǎn)生了更好的結(jié)果,并分析了作者的網(wǎng)絡如何利用人臉姿勢差異來實現(xiàn)更好的形狀聚合。
5.2 Confidence-Net Structure
作者的 C-Net 設計為輕量級模型。由于 R-Net 能夠預測姿勢和光照等高層次信息,因此很自然地將其特征圖重用于 C-Net。在實踐中,作者從 R-Net 中獲取淺層和深層特征,如圖 1(a)所示。淺層特征可以用來衡量圖像的遮擋,例如遮擋。
具體來說,作者取 R-Net 第一個殘差塊 和全局池化后的特征輸出 作為 C-Net 的輸入。作者應用三個 卷積層, 個通道和步長 ,然后在 上使用全局池化層以獲得 。然后連接 和 ,并分別應用兩個具有 512 和 80 個神經(jīng)元的全連接層。最后,應用 sigmoid 函數(shù)使置信度預測 為正。作者的 C-Net 總共有 3M 個參數(shù),大約是 R-Net 的 大小
6. 結(jié)論
作者提出了一種基于 CNN 的單圖像人臉重建方法,該方法利用混合級圖像信息進行弱監(jiān)督學習,無需真實 3D 形狀。綜合實驗表明,作者的方法在準確性和魯棒性方面都大大優(yōu)于以前的方法。作者還提出了一種使用 CNN 的新型多圖像人臉重建聚合方法。在沒有任何顯式標簽的情況下,作者的方法可以學習測量圖像質(zhì)量并利用不同圖像中的互補信息來更準確地重建 3D 人臉
知識擴展:3DMM 介紹
3DMM 模型的關鍵在于一個平均的臉部模型和形變模型與照片的標記點匹配問 題。3DMM 將人臉分為形狀向量 S(Shape-Vector)和紋理向量 T (Texture-Vector)。形狀向量 S 包含了 坐標信息:
其中, 指的是模型的頂點數(shù)。同理,紋理向量 包含了 顏色信息:
通過以上的表示方法,構造由 個人臉模型組成的三維形變臉部模型,其中每一個都包含相應的 和 兩種向量,這樣在輸入一個新的人臉圖像后,可以用以下方式表示新的 3D 人臉模型:
其中
。由此可見,一個新的 3D 人臉模型可由數(shù)據(jù)庫中已有的臉部模型的線性組合來表示,新的 3D 人臉模型可表示為:
其中 。在模型參數(shù)化后,通過修改 和 就可構造新的 3D 人臉模型。為了從數(shù)據(jù)庫中 張人臉模型中提取出一個平均的臉部特征,3DMM 采用主成分分析法(PCA)提取出一個平均臉部模型。PCA 算法流程主要分為以下幾步:
- 計算 ;
- 中心化人臉數(shù)據(jù),求得 ;
- 分別計算協(xié)方差矩陣 ;
- 求得相應協(xié)方差矩陣的特征值和特征向量;
通過 PCA 算法后,新的臉部可以表示為:
以上 表示協(xié)方差 的特征值和特征向量, 表示協(xié)方差的 的特征值和特征向量。這個時候,系數(shù) 和 的概率分別表示為:
其中 分別為 協(xié)方差矩陣的特征值,而 m - 1表示從個樣本中提取不相交子空間的特征向量的數(shù)量為 m-1,例如論文采用的開源版本 BaselFaceModel2009(BFM09),共采集了200個人臉樣本數(shù)據(jù),得到的特征向量數(shù)量為199個。對于采用PCA 分析目的是為了得到個互不相交的子空間,這樣在進行修改時,可以達到只修改一部分子空間即一部分的臉部特征,而避免了對其他子空間進行影響。以上介紹了三維形變模型3DMM基本數(shù)學推導過程,在實際使用的時候還需對面部表情以及相關的臉部特征進行特殊處理。
