"Regressing Robust and Discriminative 3D Morphable Models with a very Deep Neural Network" 解讀
簡介:這是一篇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.