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