邵定琴,張 乾,岳詩琴,范 玉
(貴州民族大學數(shù)據(jù)科學與信息工程學院,貴州 貴陽 550025)
人臉可以呈現(xiàn)出人的身份、性別、種族、年齡、表情和健康狀況等重要的個人信息[1]。生物特征識別技術(shù)中的年齡估計在安全監(jiān)控、商務顧客管理系統(tǒng)、人機交互、人臉識別、圖像與視頻檢索、刑事偵查等方面有著廣泛的應用潛力[1-3]。研究者們在人臉年齡估計領(lǐng)域做了大量的工作,Kwon等人[4]率先開展了基于人臉圖像年齡估計的研究。研究者們在這之后提出了一系列的年齡特征提取方法以及年齡估計模型。早期的人臉年齡估計技術(shù)大多是用手工提取特征方法提取形狀特征或紋理特征,并輸入到傳統(tǒng)的分類器或者回歸器中去估計年齡段或具體的年齡值。
Kwon等人[4]基于顱面提出人體測量學模型來提取面部幾何特征,并對面部的皺紋進行分析,進而獲得面部的紋理特征,最后融合幾何特征與紋理特征,將人臉圖像分為嬰兒、年輕人和老年人三類;Lanitis等人[5]使用主動外觀模型(Active Appearance Model,AAM)提取面部的幾何特征和紋理特征,并使用二次函數(shù)進行年齡估計;Guo等人[6]使用仿生學模型(Bio-Inspired Features,BIF)提取年齡特征,并用核偏最小二乘(kernel partial least squares,KPLS)回歸方法進行年齡估計;Fu等人[7]對人臉圖像進行流形分析,用多元線性回歸函數(shù)對流形數(shù)據(jù)進行擬合,并用于人臉圖像的年齡估計;趙軍等人[8]針對多數(shù)的年齡估計方法忽略人臉圖像的次要特征或同等對待面部的各個區(qū)域等問題,提出加權(quán)字典對學習方法在MORPH和FG-NET數(shù)據(jù)集上進行年齡估計;Guo等人[9]使用流形學習提取年齡特征,并使用支持向量回歸(Support Vector Regression,SVR)模型在FG-NET數(shù)據(jù)集上實現(xiàn)年齡回歸。
隨著統(tǒng)計學習方法的推進,深度學習領(lǐng)域也得到了快速發(fā)展[10]。近年來大量研究者使用深度學習模型對人臉圖像進行年齡估計,并獲得很好的估計效果,Lanitis等人[11]研究了二次函數(shù)、人工神經(jīng)網(wǎng)絡(Artificial Neural Networ-ks,ANN)、最短距離等分類器,在分層年齡的基礎上獲得更好的年齡估計結(jié)果;孟文倩[12]等人先使用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)提取人臉圖像的年齡特征,并使用主成分分析(Principal Component Analysis,PCA)方法對提取的年齡特征進行降維,之后使用SVR進行年齡估計;Yan等人[13]使用CNN來提取面部的年齡特征,并在支持向量機(Support Vector Machine,SVM)分類器上對提取的年齡特征實現(xiàn)年齡組分類;Wang等人[14]使用CNN提取年齡特征,將融合網(wǎng)絡的各層特征輸入到SVR模型中進行回歸,得到人臉圖像的年齡估計值;Rothe等人[15-16]提出深度期望(Deep expectation,DEX)模型,該模型基于VGG-16基模型在ImageNet大型數(shù)據(jù)集上進行預訓練,再在IMDB-WIKI數(shù)據(jù)集進行微調(diào),最后使用softmax分類器進行年齡估計;Agustsson等人[17]提出深度殘差回歸模型,即殘差DEX模型,該方法進一步提高DEX在年齡估計任務上的性能;Zhang等人[18]探索年齡估計緊湊模型的局限性,針對AlexNet、VggNet、GoogleNet和ResNet等更大更深網(wǎng)絡模型,不利于嵌入式或移動端的問題,提出一種適合于低端移動設備和嵌入式平臺上的非常緊湊而高效的C3AE模型,在IMDB-WIKI數(shù)據(jù)集上預訓練模型,該模型在MORPH和FG-NET 數(shù)據(jù)集上獲得了比較好的估計效果;Shen等人[19]提出一種端對端的深度回歸森林(Deep regression forests,DRFs)模型,DRFs將RF的分割節(jié)點連接到CNN的全連接層,通過級聯(lián)學習分割節(jié)點上依賴于輸入數(shù)據(jù)分區(qū)和葉節(jié)點上的數(shù)據(jù)抽象來處理非均衡數(shù)據(jù)。張珂等人[3]提出多級殘差網(wǎng)絡來解決非受限條件下人臉年齡估計問題。
到目前為止,雖然人臉年齡估計的研究已經(jīng)取得了非常豐富的研究成果,但由于面部的年齡變化受諸多因素的影響,包括遺傳因素、心理因素、生活習慣和社會環(huán)境等影響因素使得個體之間存在較大的差異,增加了人臉年齡估計的挑戰(zhàn)性。為了提取更有表達能力的年齡特征,本文使用ResNet-50殘差網(wǎng)絡來解決非受限條件下的年齡特征提取問題,并使用SVR對提取的年齡特征進行年齡估計。在MORPH和FG-NET數(shù)據(jù)集上進行大量的實驗,則結(jié)果表明使用ResNet-50網(wǎng)絡提取的年齡特征更有效,并結(jié)合SVR算法進行人臉年齡估計具有很強的魯棒性。
研究員們已經(jīng)證明深度卷積神經(jīng)網(wǎng)絡(Deep Convolutional Neural Network,DCNN)在非受限條件下能獲得優(yōu)異的年齡估計效果。對于增加的網(wǎng)絡層數(shù)越多,獲取的圖像信息也就越多,這是毋庸置疑的,那為什么不直接通過增加網(wǎng)絡的層數(shù)來獲取圖像上更多的特征呢?事實上,網(wǎng)絡越深,網(wǎng)絡模型越難訓練,甚至會出現(xiàn)網(wǎng)絡模型退化的問題。He等人[20]為了解決隨著網(wǎng)絡層數(shù)增加而出現(xiàn)的退化問題,提出ResNet網(wǎng)絡結(jié)構(gòu)。ResNet-34和ResNet-50是最常用的兩種網(wǎng)絡結(jié)構(gòu),它們都是由一系列不同的殘差塊(residual block,RB)堆疊而來,即在原始的DCNN網(wǎng)絡結(jié)構(gòu)的卷積層中加入恒等映射(shortcut connection) 的殘差元,使得原H(X)變?yōu)镠(X)=F(X)+x。DCNN網(wǎng)絡結(jié)構(gòu)的每一層通??梢员硎緸閥=H(X),而殘差元RB中H(X)=F(X)+x,其中,F(xiàn)(X)=H(x)-x,稱F(X)為殘差,對應的網(wǎng)絡為殘差網(wǎng)絡。殘差網(wǎng)絡中每個殘差塊的結(jié)構(gòu)見圖1[20]所示,左邊平卷積結(jié)構(gòu)用來擬合H(X),而右邊RB用來擬合F(X),F(xiàn)(X)相較于H(X)更為簡單,可解決DCNN網(wǎng)絡結(jié)構(gòu)的深度問題以及DCNN模型的退化問題。殘差元數(shù)量的增加使得DCNN網(wǎng)絡的性能不斷地提升,且網(wǎng)絡模型也更加容易訓練。
ResNet-50的網(wǎng)絡結(jié)構(gòu)見圖2所示,從圖中可以看出ResNet-50的網(wǎng)絡結(jié)構(gòu)是任意兩個堆疊層采用殘差學習,在這兩個堆疊層中添加一個快捷連接構(gòu)成ResNet-50網(wǎng)絡的一個殘差元RB,這里將RB定義為
圖1 殘差塊的結(jié)構(gòu)
H=F(x,{Wi})+x
(1)
其中,x和H分別表示殘差元RB的輸入和輸出,函數(shù)F(x,{Wi})表示要學習的殘差映射,式(1)中要求x和F(x,{Wi})的維數(shù)必須相等。
倘若RB的輸入和輸出通道不相等時,需要在shortcut鏈接上執(zhí)行Ws線性投影
H=F(x,{Wi})+Q(x,{Wi})
(2)
輸入大小為224×224的圖像到ResNet-50網(wǎng)絡中,將大小為7×7的卷積核進行步長為2的卷積操作,并使用max-pooling對模型進行壓縮,再使用不同類型不同數(shù)量的RB塊對上一層的輸出結(jié)果進行恒等映射,最后使用mean-pooling再一次對模型進行壓縮,接著使用全連接層整合具有區(qū)分性的類別信息,以便使用softmax函數(shù)獲取分類結(jié)果。
基于人臉圖像的年齡特征提取指的是提取一些能表達臉部年齡變化的特征,比如在未成年人階段,臉部的年齡特征主要是人臉的五官比例在不斷變化,即是提取人臉的幾何特征或者形狀特征,屬于全局的年齡特征;而在成年階段臉部特征變化主要是皺紋隨著年齡的增長逐漸增多,在此階段應側(cè)重提取臉部的紋理特征,屬于局部的年齡特征。而部分研究者單獨只考慮形狀特征或者紋理特征,由于提取的特征不夠充分,導致年齡估計的效果不是很理想。近年來深度學習算法對圖像中的類別信息表現(xiàn)出強大的學習能力,故本文使用ResNet-50網(wǎng)絡模型來學習面部年齡特征。
圖2 ResNet-50網(wǎng)絡結(jié)構(gòu)
2.2.1 技術(shù)路線
基于人臉圖像的年齡估計是指在年齡與人臉圖像之間尋找一種規(guī)律,即在ResNet-50網(wǎng)絡模型提取的年齡特征與年齡之間找到一種數(shù)學規(guī)律,將這種數(shù)學規(guī)律表示成帶有數(shù)學符號的表達式,該表達式即為構(gòu)建的年齡估計模型。根據(jù)大量的研究,人臉年齡估計的技術(shù)研究主要分為三個階段:①圖像預處理,如對圖像進行灰度化,圖像數(shù)值、圖像大小進行歸一化;②年齡特征提取,現(xiàn)有提取人臉圖像特征技術(shù)比較多,傳統(tǒng)算法和深度學習算法都有能夠很好地描述年齡特征的變化;③年齡估計,現(xiàn)有的年齡估計方法中,年齡估計主要從分類或回歸兩個角度考慮,分類方面,通常是對年齡段或離散的年齡標簽值進行分類;回歸方面,通常把年齡看成一組連續(xù)的值。本文主要對面部特征提取方法和年齡估計模型進行研究,人臉年齡估計的研究路線見圖3所示。
圖3 人臉年齡估計技術(shù)路線
2.2.2 基于SVR的年齡估計
支持向量回歸(Support Vector Regression,SVR)[21]是SVM在回歸范疇上的推廣。其目的是構(gòu)建超平面函數(shù)F(x),使得最遠的樣本點到超平面的距離達到最小,通過引入核函數(shù)和損失函數(shù),將提取的特征轉(zhuǎn)化到高維空間中,以便尋求最優(yōu)的超平面。假定使用ResNet-50網(wǎng)絡模型提取人臉圖像的年齡特征向量為Xi=(x1,x2,…,xm),i=1,2,…,n,其中Xi表示第i個樣本的年齡特征向量,則建立SVR的訓練集為T={(X1,Y1),(X2,Y2),…,(Xn,Yn)},其中,Yi表示Xi對應人臉圖像的年齡標簽值,為了尋找面部與對應年齡之間的關(guān)系,建立年齡標簽與提取的年齡特征之間的函數(shù)為
age=F(X)
(3)
設使用SVR方法的線性回歸函數(shù)為
F(X)=〈W,X〉+b
(4)
該函數(shù)可以轉(zhuǎn)化為以下優(yōu)化問題
(5)
(6)
(7)
(8)
則非線性SVR回歸函數(shù)求解為
(9)
(10)
使用ε的不敏感損失函數(shù)用來度量SVR的預測準確度
(11)
為了評估ResNet-50_SVR模型對人臉圖像年齡估計的有效性,而人臉年齡數(shù)據(jù)庫是度量ResNet-50_SVR模型的一個基準。因此,年齡數(shù)據(jù)庫需要滿足高分辨率、年齡分布均衡以及跨越的年齡范圍和各年齡段的數(shù)據(jù)量盡可能的廣和多等要求。對于人臉圖像的年齡屬性來說,同一年齡不同對象的人臉圖像具有差異性,同一個對象不同年齡段的人臉圖像具有差異性等特點。為了驗證本文提出的殘差網(wǎng)絡回歸模型的性能,使用塞浦路斯大學采集的FG-NET數(shù)據(jù)集和北卡羅來納大學采集的MORPH數(shù)據(jù)集來進行評測。FG-NET數(shù)據(jù)集包含82個人的1002張圖像,年齡分布在0-69歲之間,F(xiàn)G-NET數(shù)據(jù)集的部分圖像實例見圖4所示;MORPH數(shù)據(jù)集包含13000個人的55000幅人臉圖像,其中包括42897幅黑人圖像、10736幅白人圖像、1753幅西班牙裔圖像、160幅亞洲人圖像、57幅印度人圖像和5幅其他種族的人臉圖像,MORPH數(shù)據(jù)集的部分圖像實例見圖5所示。FG-NET和MORPH數(shù)據(jù)集皆不是種族單一、背景簡單、直立正臉等理想條件下的人臉圖像,而是尺度多變、種族多類、遮擋、化妝、光照等非受限條件下的圖像。
圖4 FG-NET數(shù)據(jù)集中部分圖像實例
為了評價本文提出的ResNet-50_SVR模型對人臉圖像年齡估計的有效性,采用最常用的平均絕對誤差(Mean Absolute Error,MAE) 作為評價指標來度量年齡估計器的性能。平均絕對誤差是指真實的年齡標簽值與預測年齡之間絕對誤差的平均
圖5 MORPH數(shù)據(jù)集中部分圖像實例
(12)
其中,yi為人臉圖像的真實值,f(xi)為年齡估計器的預測值。
本文基于python語言中的keras框架和計算機視覺庫Opencv對ResNet-50_SVR模型進行編碼和驗證。首先,將ResNet-50網(wǎng)絡結(jié)構(gòu)在大型數(shù)據(jù)集ImageNet上進行預訓練,然后,在MORPH數(shù)據(jù)集中40148幅人臉圖像上進行微調(diào),并使用MORPH數(shù)據(jù)集中剩余11950張人臉圖像對微調(diào)后的模型進行驗證。每一幅人臉圖像通過ResNet-50網(wǎng)絡訓練得到一個128維的中間層特征向量。為了驗證ResNet-50網(wǎng)絡模型提取年齡特征的可靠性,使用PCA方法對ResNet-50模型提取的中間層特征進行降維,并將降維之后的特征在三維空間中進行可視化,ResNet-50中間層特征可視化圖見圖6所示,從圖中可看出ResNet-50中間層特征可視化圖呈現(xiàn)“W”型線,這條線在空間中連續(xù)且細長,說明對于任意一張人臉圖像都能很好地找到一個年齡對應的表征位置,如果這條“W”型線又粗又短,則在任意區(qū)域之內(nèi)出現(xiàn)的年齡值較多,此時年齡估計誤差較大。因此,這條“W”型線使得年齡分布在空間中細長的蔓延,當使用一張人臉圖像去測試時,在這條“W”型線上就能找到一個位置或者一個范圍與之相對應,說明使用ResNet-50網(wǎng)絡模型提取的年齡特征具有可靠性,故可使用該網(wǎng)絡提取的特征直接輸入到年齡估計器中,對人臉圖像進行年齡估計。本文使用SVR對ResNet-50網(wǎng)絡模型提取的年齡特征進行回歸,得到的回歸值即為對人臉圖像估計的年齡值。
圖6 ResNet-50提取的特征可視化圖
為了驗證本文提出的模型對人臉圖像年齡估計的有效性,將ResNet-50_SVR模型分別與Normal-CNN模型和ResNet-50模型對人臉圖像年齡估計的結(jié)果作比較。即在MORPH數(shù)據(jù)集上分別將Normal-CNN模型、ResNet-50模型和本文提出的ResNet-50_SVR模型進行模型訓練及驗證,圖7是ResNet-50_SVR和Normal-CNN在訓練過程中的MAE曲線圖,從圖中可以看出Normal-CNN在訓練40次之后,MAE基本持平,而ResNet-50_SVR雖起伏動蕩,但ResNet-50_SVR的MAE普遍低于Normal-CNN的MAE,即表明ResNet-50_SVR對人臉圖像的年齡估計誤差更小。驗證結(jié)果表明,本文提出的方法比普通的深度學習方法的性能更好。
圖7 CNN和ResNet-50_SVR損失曲線
表1 不同模型的實驗測試結(jié)果
表1是ResNet-50_SVR、Normal-CNN和ResNet-50分別在FG-NET數(shù)據(jù)集上的測試結(jié)果,從表中可以看出,Normal-CNN對人臉圖像年齡估計的MAE為5.3歲,Resnet-50的MAE為4.0歲,ResNet-50_SVR的MAE為3.5歲,若以Normal-CNN作為基準的估計模型,Resnet-50相對于Normal-CNN在年齡估計的任務上提升了24.53%,而Resnet-50_ SVR提升了33.96%。說明本文提出的ResNet-50_SVR模型對人臉圖像的年齡估計是有效的,且具有很好的估計結(jié)果。
針對非受限條件下的年齡估計任務,本文提出Resnet-50_SVR方法對人臉圖像進行年齡估計,并在FG-NET數(shù)據(jù)集上測試且估計效果較佳。但由于使用的MORPH數(shù)據(jù)集的年齡分布在16~77之間,在該數(shù)據(jù)集上進行微調(diào)時,暫未對缺少的年齡段進行微調(diào),故在FG-NET數(shù)據(jù)集上進行測試時,0~15歲之間的年齡估計結(jié)果還不夠精準。下一步考慮挑戰(zhàn)更大的數(shù)據(jù)集,或融合其它的數(shù)據(jù)集以提高人臉年齡估計模型的性能。