簡介:這是一篇17年的CVPR,作者提出使用現有的人臉識別深度神經網絡Resnet101來得到一個具有魯棒性的人臉模型。
原文鏈接:https://www.researchgate.net/publication/311668561_Regressing_Robust_and_Discriminative_3D_Morphable_Models_with_a_very_Deep_Neural_Network
摘要
主要說了兩個部分:第一部分,三維人臉模型還沒有廣泛應用到人臉識別等領域,主要原因是同一個對象的不同照片生成的人臉模型差異較大,也就是不夠魯棒;或者不同對象生成的人臉模型又太接近,也就是人臉模型太泛化,沒有區分度。第二部分,就是作者的主要貢獻,其一是解決了訓練數據匱乏的問題,其二,用CNN做三維人臉重建,提高了人臉識別的准確率。
介紹
主要還是圍繞前面提到的兩個問題,一是人臉模型沒有區分度,二是人臉模型不夠魯棒。
如圖所示,3DDFA得到的就是一張大眾臉,沒有特色,作者的方法就比較接近潘大大了。
針對上述問題,作者就說了,我們能解決上面的兩個問題。我們用一個深度卷積神經網絡去回歸3DMM形狀參數(Note:只是形狀!),然后就可以得到3維人臉形狀了,至於紋理參數是直接從照片中得來的,這不是作者關注的重點。另外,作者還解決了訓練數據集不夠的問題,用多張照片去生成3維人臉模型,作為Ground Truth,這個后面會提到。
相關工作
此處略去n個字~,論文里闡述了以往做3維人臉建模的一些方法。一句話總結:俱往矣~。
Regressing 3DMM parameters with a CNN
作者認為,之前沒有將CNN用在三維人臉建模方面,主要是因為從二維圖像重建三維人臉模型,我們需要回歸高維的形狀參數,這就要求非常深的網絡,而訓練非常深的網絡又需要大量的訓練數據,很尷尬,已知的三維人臉模型的訓練集小的可憐。那怎么辦呢?追古溯今,作者淘到了一個好方法,利用一個對象的多姿態人臉圖片可以生成准確率相當高的三維人臉形狀[30],然后把生成的模型作為訓練集,ko一個問題;那魯棒性和區別性的人臉形狀怎么解決呢?借鑒二維空間中的深度卷積神經網絡模型,而且模型還是現成的~。
Generating training data
首先,利用中科院的CASIA WebFace dataset,借鑒[30]的方法。500k的單張圖片,每一個都估計一個3DMM,后續還會繼續進行處理。估計方法如下:
利用BFM,使用Vetter等人的三維人臉重建公式:
參數說明請看原文,我們要求的其實就是α和β。對[8][33]的方法做了一點改變,給定一張圖片,用他們的方法可以得到一個近似的形狀參數α*和紋理參數β*,這里作者用了CLNF來做人臉檢測,得到68個人臉關鍵點,求得該張圖片的置信度(后面會用到),將得到的關鍵點用來初始化估計人臉模型的姿態,該姿態用六個自由度表示:
然后再優化3DMM的形狀,紋理,姿態,光照和顏色,利用[33]的方法解決定位誤差。 一旦損失函數收斂,就得到的形狀參數和紋理參數,這就是圖像I得到的3DMM估計,雖然這個過程計算量大,但它只是用在生成數據中,不會影響算法效率。
根據最近的工作[30],我們將每個對象的多個3DMM(包含形狀和紋理)估計進行池化,也就是每個對象的多張照片對應得到的3DMM估計,進行加權求和,最后一個對象只有一個3DMM估計,池化公式如下:
ωi是前面CLNF求到的置信度。
Learning to regress pooled 3DMM
上一個步驟結束之后,一個對象會有多個不同角度的照片,但只有一個3DMM估計。現在我們要用這些數據去學習一個函數,使同一個對象的不同照片得到的3DMM特征向量是相同的。為此,我們引入了一個深度神經網絡ResNet,修改了它的最后一層全連接層,使輸出為198維的3DMM特征向量γ,用池化的3DMM估計作為真實標注,讓網絡去學習。
The asymmetric Euclidean loss
由構造函數可知,3DMM向量屬於多元高斯分布,均值在原點處,代表了均值人臉,就是那個人臉形狀和紋理重建公式,因此,在訓練期間,如果使用標准的歐拉損失函數來最小化距離,會使得到的人臉模型太泛化,沒有區別性。
作者就提出了一個非對稱歐拉損失,使模型學習到更多的細節特征,使三維人臉模型具有更多的區別性,公式如下:
效果還不錯:
Network hyperparameters
就是介紹一下訓練的時候,一些超參數的設置,具體參看原文。下面這個圖是對整個流程的總結,分三個部分,每一部分,上面都已經做了解釋:
Discussion: Render-free 3DMM estimator
3DMM參數直接通過對輸入圖像的回歸得到,沒有進行紋理渲染的優化,我們主要是得到准確的形狀,因此在估計3DMM時也更快。
Parameter based 3D-3D recognition
對得到的3維人臉模型進行評價,看它是否是屬於同一個對象。
3D-3D recognition with a single image(???)
用3DMM參數γp作為人臉特征的描述子。因為不同的關鍵點常常表示不同的人臉外觀,應用PCA方法,從上面的訓練數據集(得到68個關鍵點的那個)中學習,使估計的參數接近人臉關鍵點。最后用余弦相似度量判斷兩個人臉三維模型是否相似。(沒搞懂,還望指教。。。)
3D-3D recognition with multiple-image
對於多圖像,首先使用上面的等式2對3DMM參數進行池化,此時權重都是相等的。對於每個對象的視頻,我們會池化得到一個3DMM,然后他們的多張圖像,也是池化得到一個3DMM,再對這些3DMM進行一次池化,反正最后一個對象,一個3DMM。
Face alignment
作者說了,我們就用了二維圖像的人臉標准框,其他的特征點檢測,人臉對齊都沒用。但我們方法對未對齊的人臉也很魯棒??,也很省時。。。
Experimental results
自由發揮了,溜了~~~
初來乍到,還望各位大佬多多指教!
參考:
知乎:https://zhuanlan.zhihu.com/p/24316690
[30]M. Piotraschke and V. Blanz. Automated 3D face reconstruction from multiple images using quality measures. In Proc. Conf. Comput. Vision Pattern Recognition, June 2016.
[33]S. Romdhani and T. Vetter. Estimating 3D shape and texture using pixel intensity, edges, specular highlights, texture constraints and a prior. In Proc. Conf. Comput. Vision Pattern Recognition, volume 2, pages 986–993, 2005.
[8]V. Blanz and T. Vetter. Face recognition based on fitting a 3d morphable model. Trans. Pattern Anal. Mach. Intell., 25(9):1063–1074, Sept 2003.