DEX: Deep EXpectation of apparent age from a single image
這個論文我們使用深度學習解決了在靜態人臉圖像中面部年齡的估計。我們的卷積神經網絡使用了VGG-16結構,並在用於圖像分類的ImageNet的數據集上預訓練。除此之外,由於面部年齡的注釋圖像數量的限制,我們探究了微調帶有可用年齡的爬取的網絡人臉圖片的好處。我們從IMDB和Wikipedia上爬取了0.5百萬張名人的圖片,並公布出來。這是目前為止最大的用於年齡檢測的數據集。我們提出了將年齡回歸問題作為一個伴隨着一個softmax期望值細化的深度分類問題 ,並展示了在CNNs的直接回歸訓練上的改進。我們提出的方法,Deep EXpectation(DEX)of apparent age,首先在圖像中將人臉檢測出來,然后在該截取圖像上,從一個以20個網絡為整體的網絡上抽取該圖像的CNN預測值。該DEX的CNNs網絡先在爬取來的圖像上微調,然后再在有面部年齡注釋的提供的圖片上微調。DEX沒有使用明顯的面部特征點。DEX在參加ChaLearn LAP 2015挑戰賽的面部年齡估計的115支隊伍中獲得了第一名,明顯優於人類參考的年齡結果
1. Introduction
在機遇單一人臉圖像的年齡估計中有很多研究[1.3.6]和幾個大的數據集[1,9,11]。相反,面部年齡的估計,即被別人感知的年齡,仍然在開始階段。ChaLearn Looking At People 2015的組織者提供了迄今為止已知的最大的帶着面部年齡注釋的圖像數據集之一,被稱為LAP數據集,並用其挑戰視覺社區
該工作的目標是通過深度學習從單一人臉圖像開始學習面部年齡估計。我們的選擇受到了在通過深度學習加速的領域如圖片分類[2,8,12]和目標檢測[5]最近的進展的激勵。
我們的卷積神經網絡使用VGG-16結構,並在用於圖像分類的ImageNet的數據集上預訓練。在這方面,我們從學習來從圖像中區別目標類別的表征中受益。如我們下面的實驗所示,該表征沒能力實現好的年齡估計。在帶有面部年齡估計的訓練數據上微調CNN是為了得益於CNN表征能力的必需步驟。因為帶有面部年齡估計的人臉圖片的稀少,我們探究了在可用的(生物學的,真實的)年齡條件下,通過爬行的互聯網人臉圖像進行微調的好處。從IMDB和Wikipedia網站上爬取的524230張人臉圖組成了我們新的數據集——IMDB-WIKI數據集。一些圖像顯示在圖一中:
該數據集是公開可用的,是用於生物年齡預測的最大的數據集
當年齡來自一個連續范圍的值時,年齡估計是一個回歸問題。我們不僅是使用CNNs的回歸訓練,還訓練CNNs用於年齡值在101個年齡標簽[0,1,...100]的分類。我們提出了將年齡回歸問題作為一個伴隨着一個softmax期望值細化的深度分類問題 ,並展示了在CNNs的直接回歸訓練上的改進
我們提出的方法,Deep EXpectation(DEX)of apparent age,可見圖2:
首先在圖像上檢測人臉,然后從一個20個網絡的整體上抽取該截取人臉的CNN預測值。DEX在ImageNet上預訓練,在我們的IMDB-WIKI數據集上微調獲得模型,然后應用在LAP圖像上。DEX在參加ChaLearn LAP 2015挑戰賽的面部年齡估計的115支隊伍中獲得了第一名,明顯優於人類參考的年齡結果
我們的主要貢獻如下:
IMDB-WIKI數據集,是最大的用於生物年齡預測的數據集
一種新的回歸公式,通過跟着期望值細化的深度分類網絡實現
DEX體系,ChaLearn LAP 2015挑戰賽的面部年齡估計中的冠軍
在第二部分通過描述人臉檢測和面部年齡預測組件來介紹了我們的方法DEX。第三部分描述了數據集(包括我們新提出的用於年齡估計的IMDB-WIKI數據集)、實驗以及討論了我們的方法和其在ChaLearn LAP 2015挑戰賽上的性能。第四部分是總結
2. Proposed method (DEX)
我們提出的DEX方法就是沿着圖二的管道實現的。下面我們將提供每一步的細節,以及最后CNNs 的整體。
2.1. Face Detection
對於訓練和測試圖像,我們運行Mathias et al.[10] 現成的人臉檢測方法去獲得人臉的位置
為了對齊人臉,我們不僅在原來的圖像上運行人臉檢測器,還在-60度到60度的區間中,以5度為增加單位對圖像進行旋轉來檢測。對於一些倒着的或旋轉角度為90度的圖像,我們還會在-90度、90度和180度的角度上運行人臉檢測,因為有限的計算資源,我們僅使用旋轉圖片的離散集。然后取出這些人臉中檢測得分最強的那一個,並根據其之前的位置將其旋轉為正對的樣子
對於少數的圖像(概率小於0.2%),人臉檢測器不能找到人臉。在這些例子中我們只能取整個圖像作為輸入。在最后的LAP測試集中,該准則僅用於一個圖像
然后我們將擴展人臉大小,並在其上下左右填充40%的邊緣。添加該上下文信息將會提供預測的精確度。如果人臉基本上已經占據所有的圖像,那么我們就會使用其邊界的最后一個像素來進行填充。這將會保證所有截取出來的人臉總是在圖像的相同位置
最后的結果將會被壓縮成256*256像素大小,用其作為深度卷積網絡的輸入
2.2. Face Apparent Age Estimation
面部人臉檢測是通過應用一個深度卷積神經網絡到從上面處理步驟中得到的檢測人臉中實現的。我們的方法使用了VGG-16[13]結構,其在ImageNet挑戰賽上獲得了令人矚目的成績
2.2.1 Deep learning with CNNs
我們所有的CNNs都從預訓練於用於圖像分類的ImageNet數據集的VGG-16結構開始的。然后該CNNs將會在我們的IMDB-WIKI數據集中進行微調。當為了回歸進行訓練時,為了回歸年齡,輸出層將被更改為只有一個單一的神經元;當為了分類進行訓練時,輸出層將會采用101個輸出神經元,這與從0-100的自然數字相關,即用於年齡類別變遷的離散年份
2.2.2 Expected Value
年齡檢測可以被看作是一個基於塊的回歸,或者是作為一個帶有多個離散值標簽的離散分類。類別數量越多,回歸信號的離散誤差越小。在我們的例子中,這是一個年齡的一維回歸問題,從連續信號([0,100])中采樣。
我們可以通過大量增加類的數目,從而更好地逼近信號,並結合神經元的輸出來恢復信號,從而改進年齡回歸的分類公式。增加類別的數量需要每一類別都有足夠的訓練樣本,因為樣本的不足或不均勻將增加訓練年齡分布的過擬合及有類別不能正確訓練的可能。在一系列初步實驗后,我們決定使用101個年齡類。為了增加預測的准確性,如上圖2所示,我們如下計算了一個softmax的預測值E:
O={0,1, ..., 100}是101維的輸出層,表示softmax的輸出概率,oi 屬於O。yi表示與每個類i相關的離散年齡
即當我們使用CNNs網絡得到預測結果,並使用softmax計算得到該圖像為每個類別的概率之后,將每個類別的概率乘以每個類別的值得出最后的年齡精確結果,而不是一個概率最大結果
2.2.3 Ensemble of CNNs
在IMDB-WIKI數據集中微調后,我們將進一步在20個不同的ChaLearn LAP數據集[4]分片中微調最后的網絡。在每個分片中使用90%作為訓練數據,10%作為驗證數據。該分片是分別為每個年齡類別隨機選擇的,比如在訓練中的年齡分布總是相同的。然后我們將會在一個ChaLearn LAP數據集的增強版本上訓練20個網絡,即同時為每個圖像添加10個增強版本(增加數據的方法)。每個增強都是將圖片隨機旋轉的圖像- 10◦到10◦,調整它- 10%到10%的大小和放縮到0.9至1.1的原始大小。在將數據分成訓練和驗證數據集后才進行該增強,用以保證兩個數據集中沒有重疊。然后每個網絡將會被訓練,我們將會挑選其中驗證集性能最好的權重,然后繼續訓練的到最終的20個網絡。
最后年齡的預測值就是將圖像輸入訓練在稍微不同分割數據上的20個網絡中,然后求20個網絡的到的結果的平均值
3. Experiments
在部分我們將從首次從我們的實驗中介紹數據集和評價指標。然后將提供我們DEX方法的實現細節,描述是要步驟和討論結果
3.1. Datasets and evaluation protocol
3.1.1 IMDB-WIKI dataset for age prediction
為了有好的性能,通常大的CNN結構都需要大的訓練數據集。由於公開可用的人臉圖像數據集都是小型到中型的大小,很少有超過成千上萬張圖片的,而且經常沒有年齡信息,因此我們決定收集一個大的名人數據集。為了該目標,我們獲取了IMDB網站(www.imdb.com)上最出名的100000個演員列表,並自動爬取他們的檔案出生日期、圖片和注釋。我們移除沒有時間戳(即照該圖片的日期)的圖片,以及一張圖片上有多個高分人臉檢測的圖片(可見如2.1部分)。假設該單一人臉圖像能夠顯示演員,並且圖片的時間戳和出生日期是正確的,我們就能夠計算出該圖片人臉的生理(真實)年齡。當然,我們不能保證賦值的年齡信息的准確性。這是因為錯誤的時間戳,許多圖片都是電影的劇照,可能延長制作時間,因此會導致時間戳不准。總之我們從IMDB中獲得了461871張名人的人臉圖片
對於Wikipedia網站(en.wikipedia.org),我們從人物網頁中爬取了所有的外在圖片,並且根據應用在IMDB中的相同的准則去過濾這些圖像,最后得到62359張圖片。在表1中我們總結了發布的IMDB-WIKI數據集:
總之有524230張帶着爬取年齡信息的人臉圖像。這些圖像中的一部分(尤其是從IMDB中來的)包含了多個人臉,我們僅使用他們中第二個最強的人臉檢測分數在閾值下的圖像,否則很容易檢測到錯誤的人臉。為了使網絡對所有年齡層一視同仁,我們均衡了年齡分布,即我們隨機忽略了最常見年齡層的一些圖像。因此最后留給我們的CNNs的僅有260282張訓練圖像
3.1.2 LAP dataset for apparent age estimation
ChaLearn LAP數據集[4]使用兩個基於web的應用程序,一共包含4699張帶有年齡標簽的人臉圖像。每個年齡標簽都是至少10個獨立用戶的平均意見。因此,為每個年齡標簽提供了一個標准差σ。LAP數據集被分成2476張圖片用於訓練,1136張圖片用於驗證,1087張圖片用於測試。年齡分布在LAP數據集的三個集中都是一樣的。LAP最多覆蓋了20-40年的區間,而對於[0,15]和[65,100]區間,它每年的樣本數量較少。
3.1.3 Evaluation protocol
在我們的論文中,對結果要么通過使用標准MAE措施,要么使用ChaLearn LAP挑戰賽定義的ε-誤差來估計。
MAE : 標准平均絕對值誤差(MAE),即用估計年齡和真實年齡之間的絕對值誤差之間的平均值計算而來。請注意,該誤差並沒有捕獲標記為真實年齡的不確定性。但是ε-誤差方法包含了這一點。
ε-誤差 : LAP數據集圖像帶有通過多個用戶票選得到的平均年齡和年齡的標准差σ。LAP挑戰賽評估對每張圖片擬合票選的均值為μ,標准差為σ的正態分布:
在圖像級別中,圖像集的ε-誤差即上面介紹損失的平均值,ε最大值為1(最壞時),最小值為0(最好時)
3.2. Implementation details
pipeline過程被寫在Matlab中。CNNs被訓練在Nvidia Tesla K40C GPUs,使用的是caffe框架。人臉檢測並行運行在Sun Grid Engine,這對IMDB和Wikipedia圖像來說是至關重要的。
在IMDB和Wikipedia圖像中訓練網絡需要大概5天。在ChaLearn數據集中微調一個單一網絡需要3個小時。在每一個旋轉中測試人臉檢測需要1s。每張圖片和網絡的特征抽取需要200ms
開源代碼和IMDB-WIKI數據集公開在http://www.vision.ee.ethz.ch/~timofter/
3.3. Validation results
在實驗中我們注意到網絡中訓練於分類工作的softmax期望值比
- 訓練一個回歸器
- 在之前層的CNN特征上學習一個回歸器(SVR)
- 僅獲取最高概率的年齡神經元
這三種方法都要好
在表2中我們展示了不同設置和單一CNN的MAE和ε-誤差:
我們注意到最大的改進是因為在IMDB-WIKI數據集上額外的訓練(可見在MAE上有2到4年的減少)。當網絡為與在LAP數據集上的面部年齡估算值相關的年齡估計學習一個強有力的表征時,該結果與我們的期望相符。直接在LAP數據集的驗證集中為回歸訓練一個網絡將導致0.301的ε-誤差(MAE為3.531)。將其轉換為與整數年對應的101個輸出神經元{0,1,···,100}的分類公式后(即僅獲取最高概率),結果將改進為0.291的ε-誤差(MAE為3.349)。再添加上我們的softmax期望值細化后,我們將在LAP驗證集中得到最好的結果,0.278的ε-誤差(MAE為3.221)
質量結果可見圖3:
顯示了我們推薦的解決方案能夠在自然條件下和人類一樣預測人臉的面部年齡。這一部分是因為我們通過從大的IMDB-WIKI數據集中學習了如何在自然條件中描繪人臉
在圖4中:
顯示了一些失敗的例子,主要原因是:
- 檢測階段的失敗——要么是因為沒有人臉被檢測出來,要么就是檢測出了錯誤的人臉(即一個背景人臉)
- 極端條件和/或干擾,比如暗的圖像、眼睛和老照片
3.4. Looking at people (LAP) challenge
ChaLearn Looking at people(LAP)挑戰賽[4]在面部年齡檢測中包含兩個階段:開發(驗證)和測試階段
3.4.1 Development phase
對於開發階段,LAP數據集的訓練和驗證圖像已經發布了。雖然訓練圖片有面部年齡標簽,但是驗證標簽仍保持未知,直到第二階段的開始。團隊將驗證圖像上的結果提交給服務器,以獲得性能分數。驗證圖像的記分牌的演變如圖5所示:
為了繪制上面提到的記分牌,我們從比賽網站上抓取了分數。我們可以很容易地注意到,結果的質量平均隨着時間的推移而提高。
3.4.2 Test phase
對於測試階段,將發布驗證標簽,並授予對測試圖像的訪問權,但沒有測試標簽。參賽隊伍被邀請將測試圖像上的結果提交給競賽服務器。在測試結束后,主辦方公布了最終排名之前,這些分數將保持未知。我們的結果是使用帶有20個CNNs的完整集成的DEX、分類預測和期望值細化得到的。
3.4.3 Final ranking 最后排名
ChaLearn LAP挑戰賽[4]在面部人臉檢測的最后排名匹配在線驗證階段的計分板演化,可見表3:
最好的4個方法的ε-誤差都低於0.34,這是組織方在開發階段報告的人員參考性能。
注意我們是前6個隊伍中唯一沒有使用人臉特征點的隊伍。這說明我們相信當使用了特征點后,我們的DEX方法性能還會有所改進
4. Conclusions
我們處理了靜態人臉圖像的表觀年齡估計。我們提出的深度期望(DEX)方法使用卷積神經網絡(CNNs),並在ImageNet上預訓練VGG-16結構。此外,我們抓取了互聯網上可用年齡的人臉圖像,以創建迄今為止最大的公開數據集,並對我們的CNNs進行預訓練。此外,我們的CNN是根據表觀年齡標記的人臉圖像進行微調的。我們將年齡回歸問題作為一個深度分類問題,然后進行softmax期望值細化,並對CNNs的直接回歸訓練進行了改進。DEX綜合了20個網絡對裁剪后的人臉圖像的預測。DEX沒有明確使用人臉特征點。我們提出的方法贏得了ChaLearn LAP 2015年[4]表觀年齡估計挑戰賽冠軍(第一名),顯著優於人類參考性能(ε-誤差==0.34)。