何建輝,胡春龍,束 鑫
(江蘇科技大學 計算機學院,江蘇 鎮江 212100)
面部年齡估計指通過人臉面部圖像對人的真實年齡進行預測,是目前計算機視覺、生物特征識別領域的一個熱點課題。現實中年齡信息的獲取難度較高,且普遍依賴于個人隱私信息的讀取,面部年齡識別技術能夠避免這一敏感問題,并且擴展應用在各種服務領域[1]。面部年齡估計過程主要包含兩個部分:特征提取和估計方法。基于深度學習的特征提取方法能夠在像素級上捕捉人臉圖像中的特征信息,相比傳統的手工特征提取方法更具魯棒性,因此深度卷積神經網絡(Convolutional Neural Network,CNN)已經在年齡估計任務中的特征提取部分占據絕對位置。年齡估計任務的關鍵在于如何提取年齡標簽間的順序性和模糊性,即年齡標簽間存在著明顯的序數關系,并且標簽越近,人臉特征越相似。在分類和回歸方法中常用的年齡標簽表示方式如one-hot 編碼和回歸值難以體現出復雜的類間關系,因此將年齡估計任務簡單地劃分為分類任務或者回歸任務的研究方法并不嚴謹。標簽分布學習(Label Distribution Learning,LDL)的目標是預測一組年齡分布,通過標簽的概率表示重新表達標簽,這種方式不僅能夠準確地表示標簽,同時可以建立起標簽間的關系,從而更好地利用標簽的模糊性。
標簽的分布方式是LDL 的一個重要組成部分,要獲取真實的標簽分布,理論上需要對同類樣本進行大量的標記,然而目前絕大部分年齡數據集的樣本數量都不具備上述條件,因此通常使用特殊的分布函數對目標分布進行擬合。高斯分布被廣泛應用在許多基于標簽分布的年齡估計任務[2-3]中,概率整體分布在均值μ附近,并且大約99.73%的分布集中在(μ-3σ,μ+3σ)區間。因此通過調整標準差σ,可以獲得大量不同模糊程度的年齡分布。然而高斯年齡分布同樣存在部分問題,因為高斯函數的曲線具有明顯的對稱性,而距離相等的其他標簽對真實標簽的貢獻并非完全一致。而且研究[1]表明,人臉的老化趨勢具有階段性,因此各個年齡階段的老化模式可能對真實的年齡分布產生不同的影響。
基于以上思想,本文設計了一種多峰分布(Multi-Peak Distribution,MPD)年齡編碼,并基于MPD 年齡編碼提出了一個多任務年齡估計方法MPDNet(MPD Network),主要工作如下:
1)為提取年齡標簽的相關性和模糊性,并擬合真實年齡分布的集中性、多階段和非對稱等特性,提出一種MPD 年齡編碼;
2)將LDL 和回歸學習相結合提出一種深度多任務方法。多任務學習的共享信息表征有助于緩解LDL 訓練目標與測試目標不一致的影響,同時減少訓練數據不平衡對年齡回歸的影響;
3)提出一個高度精簡的輕量化特征提取網絡,在保證特征提取能力的同時減少了網絡參數,使得網絡的訓練時間大幅縮短,在一定程度上減少了網絡對大樣本數據集的依賴。
隨著大量訓練數據集的出現和計算能力的提高,近年來CNN在圖像分類、語義分割、目標檢測等各個領域中都展現出了最先進的性能。在年齡估計任務上,CNN 所學習到的年齡特征相較于傳統手工制作的特征描述符更具魯棒性,因此在非受限環境下,CNN 的準確率更高。大多最先進的年齡估計方法都采用如VGGNets(Visual Geometry Group Networks)[4]和殘差網絡(Residual Network,ResNet)[5]等大規模CNN 架構作為基礎進行特征提取。Rothe 等[6]在數據增強后的大規模數據集IMDB-WIKI 上訓練了20 個VGG-16 網絡集合,并計算出預測的平均值作為估計年齡,該方法在第一屆ChaLearn LAP挑戰賽上獲得了第一名。第二年的ChaLearn LAP 挑戰賽冠軍發現特定年齡組的個性化特征提取才是提高預測精度的關鍵,于是集成了兩個VGG-16 網絡,其中一個僅用于估計[0,12]歲兒童的表觀年齡[7]。Zhang 等[8]基于多任務的思想,將性別作為輔助信息引入年齡估計,并采用了RoR(Residual network of Residual network)進行特征提取,實驗結果表明層次更深的RoR 效果比VGGNets 更好。雖然這些網絡在年齡估計中取得了較好的效果,但也具有龐大的網絡和大量的參數。隨著移動端和嵌入式設備需求的不斷增加,一些小內存的輕量級網絡被提出,例如采用深度可分離卷積代替標準卷積從而減少參數和計算量的DenseNet[9]和MobileNet[10]等。但減少網絡參數并不意味著必須使用更輕量的卷積方式,大量的研究表明,在年齡估計任務中使用標準卷積設計的輕量化網絡同樣可以達到良好的性能[11-14]。
根據年齡標簽的處理方式不同可以將年齡估計方法劃分為分類、回歸、排序和分布學習四種。傳統方法將年齡估計視為分類或回歸問題。Liu 等[15]提出了AgeNet,該網絡采用一個22 層的GoogLeNet[16]作為特征提取器,分別進行分類和回歸的端到端訓練,最后通過融合兩個網絡的預測結果進行表觀年齡的估計,測試精度超過分類或回歸的單一任務。李大湘等[17]關注到年齡估計中存在的代價敏感問題,通過為每個年齡類設置不同的誤分類代價,進一步優化了年齡估計的分類方法。而在基于排序的方法中,研究的重心在于提取年齡標簽間的序數關系。Niu 等[18]將年齡估計問題轉化為一系列二分類子問題,并構建了一個多輸出CNN 來集中解決這些分類子問題。為了提取不同標簽樣本的判別性特征,Chen 等[19]訓練了一系列基礎網絡,然后聚合所有基礎網絡的二進制輸出,完成最終的年齡預測。
另一種流行的年齡編碼方式為標簽分布學習,為了提取標簽間的模糊性,它將年齡標簽值轉化為一組概率分布并通過優化它與真實分布間的差異進行年齡預測。Gao 等[20-21]預先對每個年齡標簽進行高斯分布編碼,然后使用KL(Kullback-Leibler)散度度量網絡預測的年齡分布與先驗高斯分布之間的差異。年齡估計任務的最終目標是預測一個具體的年齡值,為了解決標簽分布學習中訓練目標和測試目標不一致的問題,Gao 等[21]對標簽分布的結果進行回歸學習,提出了DLDL(Deep Label Distribution Learning)框架。為了獲得更精確的年齡分布,Zhang 等[14]則通過減小標簽分布的范圍,僅采用兩點分布將年齡標簽轉化為兩個節點的概率表示,同時使用級聯網絡對多尺度的圖片進行訓練,充分利用了人臉的上下文信息。李睿鈺等[22]認為基于先驗的分布學習在正確刻畫標簽相關性上可能存在誤差,于是提出在訓練階段調整假設空間使網絡自動生成具有特征約束的年齡分布。Pan 等[23]則從損失函數的設計出發,提出了一種新的損失函數Mean-Variance Loss。該損失函數通過均值損失來懲罰估計的年齡分布與真實年齡的差值,通過方差損失懲罰估計的年齡分布方差,確保分布集中。最后將均值方差損失和Softmax 損失聯合嵌入到CNN 中進行年齡估計,并在多個數據集上驗證了該方法優于最先進的年齡估計方法。
多任務學習[24-27]的目的是利用多個相關任務中的有用信息來幫助提高所有任務的泛化性能,與標簽分布學習中常用的級聯網絡不同,多任務學習的子網絡只共享部分結構,并且單個任務的預測結果不會相互干擾。Niu 等[18]和Tan等[28]選擇將有序回歸問題轉化為一系列二值分類子問題,并使用多個CNN 分別進行解決,其中每個CNN 輸出對應一個二分類任務,所有子任務共享相同的特征層。不同之處在于Tan 等[28]在年齡分組中編碼了相鄰年齡之間的關系,即相鄰年齡被分組為同一組。此類方法只修改單個CNN 的輸出層構建多輸出網絡,其中每個輸出判斷輸入圖像是否屬于相應年齡組,因此這類多任務學習網絡更像一個整體的回歸模型,仍然存在訓練數據不均衡和數據分布異構的問題。為了獲取更豐富的年齡特征,Xing 等[29]和Yi 等[30]將性別和種族等額外信息引入年齡估計任務,迫使網絡學習更細粒度的年齡特征表示。但實驗結果表明,引入性別、種族等其他標簽與單任務網絡相比,精度的提高并不顯著。原因是只有當多個任務緊密相關時,深度多任務學習才能帶來多個任務性能的共同提升。
基于標簽分布學習的年齡估計方法[21,23,31]采用單高斯分布生成真實標簽對應的概率分布,高斯分布的概率密度函數定義為:
在上述方法中,通常將參數μ設置為標簽值yn,將標準差σ設置為分布模糊程度的可調參數。
單高斯分布的概率密度函數曲線具有對稱性,但不同年齡段人臉的衰老過程顯然不符合這一性質,并且受后天因素(如環境、化妝等)影響,樣本的真實年齡和圖像呈現的表觀年齡間存在偏差,人臉相比真實年齡會顯得更年輕或者更老。因此,為了減小真實年齡標簽轉化為年齡分布的誤差,本文首先針對樣本標簽的表觀年齡分布進行建模。
為了約束表觀年齡偏移的區間,本文以K為單位將年齡軸劃分為若干年齡組,定義真實標簽所在年齡組的第一個標簽值為峰值gi(i表示第i個年齡組),并作為該年齡組更年輕的表觀年齡代表:
因此gi+1則為該年齡組更老偏向的表觀年齡代表,結合兩種偏移模式的綜合表達,構造了特定標簽的表觀年齡分布,稱為雙峰年齡分布Gd:
α為其中一個偏移模式對整體分布的影響因子,由兩個峰值點到標簽的距離決定:
可以證明Gd仍然滿足分布的性質:
最后引入以真實標簽值為峰值點的基本分布,構成了具有原始標簽相關性和標簽個性化的多峰分布Gt:
其中:β是用于控制單個高斯分布權重的可調整參數。為了使分布集中在標簽值附近,對于兩個分布,本文采用了不同的方差值。
對Gt分布中每個年齡組進行積分,可以獲得具有階段信息的真實年齡概率分布,其中i表示第i個年齡組:
式(8)中,本文按照年齡組對年齡標簽進行了粒度為K的粗略分布,這種粗粒度的分布能夠盡可能多地提取類間信息,但同時對標簽的精確表達具有一定的影響,因此本文引入回歸學習,并構建了一個多任務學習框架,如圖1 所示。

圖1 多任務學習網絡Fig.1 Multi-task learning network
在分布學習任務流中,人臉圖像通過表1 所示的輕量級網絡進行多階段的特征提取,然后采用一個全連接層構建的分布層輸出預測分布,通過縮小和MPD 轉化的先驗分布間的差異來確保預測分布的準確性。

表1 輕量級特征提取網絡結構Tab.1 Lightweight feature extraction network structure
本文采用KL 散度作為兩個分布間差異的度量。KL 散度的計算公式為:
在回歸任務流中,本文使用了多階段年齡回歸,采用由粗到細的回歸策略,通過3 個全連接層構成的回歸層分別計算特征提取網絡每個階段下的預測概率pi。最后結合3 個階段的預測計算最終的預測年齡值:
其中:V表示整個年齡段;S表示粗粒度的階段數;F表示每個粗粒度下細粒度的組數表示階段s下第f組的概率。對于回歸任務的損失函數,本文采用最常用的評估指標平均絕對誤差(Mean Absolute Error,MAE),確保訓練目標與測試目標一致:
多任務學習框架下完整的損失函數如下:
其中:λ是一個平衡兩個任務權重的超參數,通過調整λ可進一步促進多任務學習的互補效果。
所有實驗均運行在NVIDIA A100 40 GB 平臺上,內存共計16 GB。
本文采用以下兩個人臉年齡數據集進行網絡訓練:
MORPH[32]:MORPH 是目前最受歡迎的年齡估計任務基準數據集之一,分為Album I 和Album Ⅱ兩部分。Album I 包含1 724 張人臉圖像,年齡范圍為[15,68]歲,其中男性圖像1 430 張,女性圖像294 張;Album Ⅱ包含了在同一環境下拍攝的55 134 張人臉圖像。本文將Album Ⅱ進行隨機劃分,其中80%作為訓練集,20%作為測試集。
MegaAge-Asian[33]:該數據集收集了40 000 張亞洲人的面部圖像,年齡范圍為[0,70]歲。這些圖像大多在非受限條件下拍攝,因此背景、光照、姿勢、表情等差異較大。本文使用了3 945 張圖像進行測試,其余圖像用于訓練。
目前面部年齡估計研究通常使用平均絕對誤差(MAE)和累積分數(Cumulative Score,CS)來評估方法的性能。MAE 定義為實際年齡與預測年齡之間的平均距離,數值越小表示預測性能越好:
其中:yi和分別表示真實標簽和預測年齡值。
CS 指標主要關注方法在一定誤差內的預測準確率,計算公式為:
其中:Ne≤j表示估計絕對誤差不超過j的測試圖像的數量,N是測試圖像的總數,年齡估計任務中常用的閾值j主要為3 和5。
實驗中,本文將輸入的圖像與人臉對齊并裁剪,將其大小調整為112×112,然后在將圖像輸入到網絡之前對圖像進行翻轉、旋轉和隨機擦除等預處理。初始學習率設為0.002,動量和權重衰減分別為0.9 和0.000 1,batchsize 設為128。學習率每80 個epoch 下降到原來的1/10,共訓練240 個epoch。年齡組長度K=10,MPD 中的σ1=5,σ2=2.5。
3.3.1 MORPH數據集上的定量實驗
為了評估網絡的預測精確度,本文選擇目前主流的年齡估計方法在多個方面進行對比,并根據方法中的網絡參數量劃分為輕量級和重量級,實驗結果如表2 所示。可以看到,本文方法的MAE 達到2.67,在輕量級方法中僅弱于CEN(Coupled Evolutionary Network)[34]的1.91 和LRN(Label Refinement Network)[35]的1.90;然而CEN 和LRN 均采用知識蒸餾技術,將上一個網絡作為新的學習對象,這需要大量的額外訓 練。ORCNN(Ordinal Regression CNN)[18]、SSR-Net(Soft Stagewise Regression Network)[13]、C3AE[14]等方法都采用了一個輕量級網絡進行特征提取,然而ORCNN 僅關注年齡特征間的序數關系,SSR-Net 和C3AE 則注重年齡特征的模糊性,都沒有將兩種特性聯系起來。輕量級方法中沒有對年齡標簽進行任何處理的DenseNet[9]和MobileNet[10]效果表現不佳,這說明年齡估計的精確度關鍵在于構建更符合年齡老化模式的估計方法。同時和參數多達幾百倍的重量級方法相比,MPDNet 甚至超過了DEX(Deep EXpectation)[6]和RankingCNN(Ranking CNN)[19]。Posterior[33]、MV(Mean-Variance)[23]、DLDL[21]、BridgeNet[36]、DORFs(Deep Ordinal Regression Forests)[37]等方法雖然精度更高,但存在網絡參數龐大、訓練時間長、存儲空間消耗大等缺點,而本文方法訓練時間短、占用空間小,更易部署在移動端,因此同樣具有競爭力。

表2 在MORPH Ⅱ數據集上的實驗結果對比Tab.2 Comparison of experimental results on MORPH Ⅱ dataset
為進一步驗證多任務學習下多峰分布的有效性,針對式(7)和(12)中的參數β和λ進行消融實驗,實驗結果如圖2 和表3 所示。

圖2 參數β的消融實驗結果Fig.2 Ablation experimental results of parameter β

表3 參數λ的消融實驗結果Tab.3 Ablation experimental results of parameter λ
圖2 中,β=0 和10 分別代表雙峰分布和高斯分布,其余均為不同模糊程度的多峰分布。可以看出,僅使用高斯分布時的表現較差,當引入多階段分布后,增強了目標重要特征的準確表達,網絡能提取到更豐富的年齡類間信息,由圖2(k)、(a)和(f)可知,MAE 從2.83 分別下降到了2.75 和2.69,測試誤差下降了2.83%和4.95%。并且隨著多峰分布中單高斯分布比重在一定范圍內增加,MAE 的曲線波動逐漸減弱。在多個不同參數值下的MAE 測試結果波動較小,這體現了多峰分布具有較強的穩定性。
在表3 所示消融實驗結果中,當λ=0 時,網絡僅執行回歸任務,受到標簽信息不足的限制,網絡學習到的特征有限,因此性能明顯下降。而當λ為空,僅執行高斯分布學習任務并將分布對應期望值作為預測值時,雖然引入了更多的標簽類間信息,但模糊化的分布并非精準的數值,本身存在一定的誤差,因此預測性能同樣下降明顯。相反,多任務學習下的MPDNet 性能始終優于分布學習和回歸學習,同時進行回歸任務能夠有效降低年齡分布的期望值與真實年齡的差值,確保分布學習中訓練目標與測試目標一致從而提高分布的準確性。
綜上可知,采用多峰分布對年齡標簽進行重編碼,再結合標簽分布學習和回歸學習所構成的多任務學習網絡增強特征提取能力和類間信息交互,能夠有效提升網絡在MORPH Ⅱ數據集上的預測精度。
3.3.2 MegaAge-Asian數據集上的定量實驗
現有的大多數年齡估計數據集主要采集白人和黑人的人臉圖像,然而每個種族的人臉年齡特征并不完全相同,因此網絡提取的年齡特征可能并不完整。本文在Megaage-Asian 數據集上進行了補充實驗,以證明MPDNet 的魯棒性,實驗結果如表4 所示。可以看到,MPDNet 在CS(3)和CS(5)指標上分別達到了61.1%和81.2%。由于MegaAge-Asian 數據集來源于網絡爬取,人臉背景和光照都存在較大差異,因此對網絡特征提取能力要求更高,不同于MORPH Ⅱ數據集上的結果,參數更多的重量級方法顯然更具優勢。在輕量級方法中,MPDNet 與CEN 和LRN 在精度上同樣具有競爭力,并且MPDNet 在參數量上更具優勢。同時與重量級方法Posterior 相比,MPDNet 也獲得了與之相當的性能,這說明MPDNet 所提取的人臉年齡特征和類間相關信息在不同環境下同樣有效。

表4 在MegaAge-Asian數據集上的實驗結果對比Tab.4 Comparison of experimental results on MegaAge-Asian dataset
本文提出了一種用于年齡估計的多任務分布學習方法MPDNet,包含標簽分布擬合和回歸細化兩個過程。所提出的多峰分布年齡編碼擬合了年齡標簽特有的階段性和模糊性特征,有助于模擬真實標簽的準確分布。同時本文提出的輕量級網絡彌補了重量級網絡難以在移動端或嵌入式設備上部署的缺陷。在Moprh Ⅱ和Megaage-Asian 上的實驗結果驗證了MPDNet 的優越性,但該方法仍有改進的空間,例如在處理非受限條件(如背景、姿態、表情等)的人臉圖像時精度有所下降,我們未來將對此作一步的研究與討論。