楊國亮 張雨
[摘要]針對年齡估計算法中使用單一標簽編碼方式的問題,提出一種基于高斯分布的標簽分布取代原有的編碼方式,通過這種方式,一張人臉圖像不僅可以用于它本身年齡的學習,也可用于其相鄰年齡的學習。設計一種與之相適應的卷積神經(jīng)網(wǎng)絡,通過標簽的概率分布與輸出的類別概率之間的KL距離對網(wǎng)絡進行訓練,網(wǎng)絡結構較小,所需訓練時間更短,即使在訓練圖片數(shù)量有限的情況下依然能保證較好的準確率。
[關鍵詞]年齡估計;卷積神經(jīng)網(wǎng)絡;標簽分布
[中圖分類號]TP 39141[文獻標志碼]A[文章編號]10050310(2018)01005906
Facial Age Estimation Method Based on Convolutional
Neural Network
Yang Guoliang, Zhang Yu
(School of Electrical Engineering and Automation,Jiangxi University of Science and Technology,
Ganzhou Jiangxi 341000,China)
Abstract: Aiming at the problem of singlelabel coding method in facial age estimation, label distribution based on Gaussian distribution is proposed to replace the original coding method. In this way, a face image can be used not only for its own age learning, but also for its adjacent age learning. A convolutional neural network is proposed to train the network by the KullbackLeibler divergence distance between the label distribution and the probability of the output.The network is small and needs shorter training time, even in the case of limited number of training images can still guarantee a better accuracy rate.
Keywords: Age estimation; Convolutional neural network; Label distribution
0引言
人臉包含性別、年齡、表情和身份等重要信息,尤其在現(xiàn)代社交平臺和娛樂互動的驅(qū)動下,人臉年齡估計已成為一個極具發(fā)展?jié)摿Φ那把丶夹g,也是人機互動和計算機視覺的重要研究領域。然而人臉年齡估計也是計算機視覺的難點所在,主要包含以下4點原因:第一,獲取的人臉圖片中存在大量的干擾,如表情、光照、姿態(tài)和遮擋等,尤其現(xiàn)在拍攝的人臉圖片存在大量的背景干擾;第二,每個人臉存在較大的個體差異,隨著年齡的增長人臉發(fā)生變化的模式各不相同,如有些人臉型變化比較大,有些人皺紋增長的比較快,雖然共性相似但是因個體不同而千變?nèi)f化,因此給年齡估計算法提出了很高的要求;第三,年齡具有一定的時序性,相近年齡的人臉特征存在一定的關聯(lián),因此不能把年齡估計看作一種簡單的分類問題,將每個年齡作為一個單一標簽存在一定的不合理性;第四,現(xiàn)在基于卷積神經(jīng)網(wǎng)絡的年齡估計傾向于使用越來越大的網(wǎng)絡結構,這就需要大量的訓練圖片和訓練時間,限制了研究的實用性。
1相關工作
人臉年齡估計問題一般當作回歸問題或者分類問題來處理。在回歸問題中,通過使用經(jīng)典的回歸方法如支持向量回歸(Support Vector Regresion,SVR)或偏最小二乘法(Partial Least Squares,PLS)直接回歸年齡值。Guo等[1]采用基于核函數(shù)的偏最小二乘算法(Kernel Partial Least Squares,KPLS)回歸進行年齡估計,該方法在降低特征維度的同時學習人臉老化的過程并且可解決多任務問題。在分類問題中,Geng等[2]提出的將年齡看做模式子空間或多重子空間,方法是將一個個體的所有人臉圖片按照年齡從小到大的順序排成一個序列,并用主成分分析法提取人臉的特征向量,再將提取的特征向量按年齡從小到大的順序組合成描述該人臉年齡特征的年齡模式空間。
北京聯(lián)合大學學報2018年1月
第32卷第1期楊國亮等:基于卷積神經(jīng)網(wǎng)絡的人臉年齡估計方法
近年來隨著深度學習的快速發(fā)展,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)被廣泛應用于計算機視覺領域。相比于傳統(tǒng)的人工提取特征的方法,卷積神經(jīng)網(wǎng)絡不需要一定的先驗知識,輸入訓練圖片就可以自動學習圖像特征并且具有很強的魯棒性。Levi等[3]使用少量訓練圖片在一個5層的CNN模型上取得了較好的準確率,但年齡是被分為多個年齡段,不能預測年齡的準確值。Wang等[4]將CNN當作一個特征提取器,提取CNN各卷積層的特征并且將其融合后,再訓練SVR以達到年齡估計的目的?;贑NN的年齡標簽的編碼方式一般是單一標簽或多標簽,但是這樣有很大的弊端,單一標簽忽略了相近年齡的信息,而簡單的多標簽賦予多個標簽相同的權值,不符合人臉變化的特性。
本文的相關工作包括:1) 使用標簽分布的方式對人臉圖像的年齡標簽進行編碼;2) 提出一種結構小、識別率高的卷積神經(jīng)網(wǎng)絡。
2年齡估計
21年齡估計框架
根據(jù)對現(xiàn)有年齡估計算法[5]的總結并結合本文的方法,年齡估計分為3個主要步驟:人臉圖像預處理、特征提取和訓練年齡估計模型。卷積神經(jīng)網(wǎng)絡作為一個特征提取器可以自適應地提取人臉年齡的相關特征,本文主要對圖像預處理和訓練卷積神經(jīng)網(wǎng)絡這2部分做了相關的工作,估計框架如圖1所示。
22改進的卷積神經(jīng)網(wǎng)絡
本文選擇較小的網(wǎng)絡結構,因為過大的網(wǎng)絡[67]容易過擬合而較小的網(wǎng)絡更容易收斂,在樣本數(shù)量較小時也可以進行訓練并達到良好的測試效果。整個網(wǎng)絡只有4個卷積層和2個全連接層,和現(xiàn)在較為流行的大型網(wǎng)絡結構(如VGGNet和ResNet[8]等)相比大大減少了網(wǎng)絡參數(shù)。后2個卷積層使用的是GoogleNet[9]的Inception模塊,在同等特征圖數(shù)量的情況下可以降低計算量,通過不同尺度大小的卷積核可以更多的提取人臉圖像特征,并且對由不同大小卷積核(1×1,3×3,5×5)生成的特征圖具有一定的特征整合作用,對年齡估計的準確率有所提高。圖2從左至右分別為原始和改進的Inception模塊。
GoogleNet中的Inception模塊在每個卷積核前使用1×1的卷積進行降維,導致由不同尺度的卷積核生成的特征圖數(shù)量不相等。我們?yōu)榱吮WC各尺度的卷積核公平競爭采用相同數(shù)量的卷積核進行濾波[10],這樣網(wǎng)絡可以提取各尺度下的特征。在每個卷積操作后接1個下采樣以保證提取的特征圖大小相同,最后通過1個合并層將各特征圖串聯(lián)。
23基于標簽分布的標簽制作
人臉的年齡估計具有一定的特殊性,不能被作為一種簡單的分類問題來對待,然而對每張人臉圖像標記的單一標簽,已經(jīng)在無形中將年齡分為不同的類。而且年齡具有一定的時序性和關聯(lián)性,比如一張19歲的人臉圖像和一張20歲的人臉圖像,在年齡特征上具有較高的相似性,將其作為不同的標簽來進行分類存在不合理性,圖3是MORPH數(shù)據(jù)
受此觀察的啟發(fā),本文提出的基本思想是在學習特定年齡的人臉圖像的同時學習相鄰年齡的圖像,通過引入新的編碼方法[12]來實現(xiàn),即將標簽分布分配給每個圖像,而不是使用單一標簽對人臉圖像進行標注。標簽分布涵蓋一定數(shù)量的鄰近年齡,代表每個年齡描述面部外觀的程度。使用合適的標簽分布訓練的網(wǎng)絡不僅能夠?qū)W習其本身年齡的人臉圖像,而且能夠?qū)W習其鄰近年齡的人臉圖像特征[1314]。
我們將人臉圖像的年齡記為A,A={1,2,…,a},第b張人臉圖像的標簽分布為Lb=(l1b,l2b,…,lab),假設該人臉的年齡為c∈A,該年齡及其相鄰年齡分布為
{c-2,c-1,c,c+1,c+2},那么該人臉圖像的標簽分布為:
lcib=Z×e-(ci-c)22σ2 ,(1)
即均值為c,標準差為σ的離散高斯分布,Z是歸一化因子使式(1)滿足ai=1lcib=1,對于年齡分布以外的年齡段,我們令lcib=0。由此可以看出,中心年齡的年齡特征描述程度最高,隨著年齡與中心年齡差值的增加,年齡特征描述程度逐漸降低。
在訓練卷積神經(jīng)網(wǎng)絡階段,使用KL距離來計算標簽分布與一次前向傳播生成的類別概率之間的差異,表達式為:
DP||Q=iPilogPiQi 。(2)
其中P為年齡標簽分布,Q為網(wǎng)絡一次前向傳播計算的類別概率,再通過反向傳播以達到訓練網(wǎng)絡的目的。
3實驗與分析
31實驗數(shù)據(jù)集
本文在MORPH數(shù)據(jù)集[11]和FGNET數(shù)據(jù)集[15]上進行實驗,MORPH數(shù)據(jù)集共有55 134張彩色人臉圖像,年齡范圍為16~77歲,大部分的人臉圖像年齡分布在20~40歲年齡段,60歲以上的人臉圖像數(shù)量較少。FGNET數(shù)據(jù)集包含了1 002張人臉圖像,年齡范圍為0~69歲,數(shù)據(jù)集圖像較少,尤其50歲以上有些年齡甚至沒有數(shù)據(jù)。
將兩個數(shù)據(jù)集進行融合以彌補部分年齡段圖像缺乏的情況,然而融合后的數(shù)據(jù)集各年齡段的人臉圖像數(shù)量不均衡,未成年和老年的數(shù)量較少,不利于網(wǎng)絡的訓練和年齡估計的準確率,因此本文將部分年齡段的人臉圖像進行擴增。首先將原始的人臉圖像像素縮放到256×256,再從圖像的4個邊角和正中間裁剪出5張像素大小為224×224的圖片,這樣1張圖片就擴充為5個樣本,在測試階段,擴增樣本的最終年齡取5張樣本測試結果的平均值。
32網(wǎng)絡初始化與訓練
實驗中使用的卷積神經(jīng)網(wǎng)絡基于Caffe框架[16]實現(xiàn),顯卡型號為GTX1070、顯存為8G。由于網(wǎng)絡的初始化較慢,本文使用IMDBWIKI訓練集[17]進行預訓練,該數(shù)據(jù)集含有50多萬張圖片,但是存在錯誤年齡標簽和人臉圖像不匹配的情況,因此篩選其中的10萬張圖片進行預訓練并得到初始模型,本文的實驗部分均是在該初始模型上微調(diào)進行的。
本文訓練卷積神經(jīng)網(wǎng)絡使用的是梯度下降法,動能系數(shù)為09,權值衰減系數(shù)為0000 5。其中,權值衰減系數(shù)是卷積神經(jīng)網(wǎng)絡的重要參數(shù),可以有效降低訓練學習過程的錯誤率,權值更新如式(3)和(4)所示:
vi+1=09vi-0000 5·ε·wi-ε〈Lw|wi〉Di,(3)
wi+1=wi+vi+1,(4)
其中i為迭代索引,v是動能系數(shù),ε是學習率。初始訓練時學習率設置為001,隨著迭代次數(shù)的增加逐漸降低學習率。
33年齡估計評價指標
在年齡估計的研究中采用的評價指標主要采用平均絕對誤差(Mean Absolute Error,MAE),平均絕對誤差是指估計年齡和真實年齡差值的絕對值的平均,表達式為:
MAE=1NNi=1|yi-y′i|,(5)
其中,yi和y′i分別是人臉圖像的真實年齡和估計年齡,N是測試樣本的總數(shù)。該評價指標可以直觀反映出估計值與真實值偏離的程度。
累積指數(shù)(CS)是另一種年齡估計評價指標,反映在不同誤差下年齡估計的準確率,計算如式(6)所示。e是真實年 齡與預測年齡差值的絕對值,l是差值閾值,Ne≤l是測試樣本中真實年齡與預測年齡差小于l的樣本數(shù)量,N是測試樣本總數(shù)。
CSl=Ne≤lN×100%。(6)
34實驗分析與評價
本文在MORPH數(shù)據(jù)集、FGNET數(shù)據(jù)集以及二者融合的數(shù)據(jù)集上展開實驗,分別使用CS和MAE評價指標對實驗效果進行評估,同時和近幾年具有代表性的人臉年齡估計算法進行對比。
341實驗1
首先在融合的數(shù)據(jù)集上進行實驗,在保持各年齡段樣本數(shù)量和男女比例相近的情況下隨機抽取其中的10000張,其中8000張訓練樣本和2000張測試樣本。使用累積指數(shù)對實驗結果進行對比,年齡的差值閾值設置為0~5,結果如圖4所示。
從圖4可以看出,在使用了標簽分布的基礎上,年齡估計的準確率比單一標簽的編碼方式明顯提高,并且隨著年齡差值閾值的增大,準確率的提升更加明顯。因此可以得出,使用標簽分布的方法可以提高年齡估計的準確率。
在以上實驗訓練的基礎上,不再使用融合數(shù)據(jù)集的測試樣本,而是使用MORPH數(shù)據(jù)集作為測試樣本,對比本文方法和年齡估計具有代表性的方法的實驗結果,如圖5所示。本文方法的準確率明顯高于傳統(tǒng)的支持向量回歸(Support Vector Regresion,SVR)和支持向量機(Support Vector
Machine,SVM)的方法,相比Wang等[4]簡單地將年齡作為單一標簽的編碼方法,本文使用的標簽分布方法能夠?qū)W習相近年齡的特征,并且不需要提取CNN特征圖再訓練,在年齡誤差閾值較小時準確率略高于其他方法,隨著年齡誤差閾值的增大,準確率明顯高于其他方法。
342實驗2
從融合的數(shù)據(jù)集中隨機選取50 000張作為訓練樣本,使用標簽分布的方法對卷積神經(jīng)網(wǎng)絡進行訓練,在測試階段分別使用MORPH和FGNET數(shù)據(jù)集進行測試,并使用平均絕對誤差對實驗結果進行評價,表1對比了本文方法和近幾年具有代表性算法的MAE值。相比文獻[18]超平面排序的方法,本文的標簽編碼方式更為簡單;相比文獻[19]使用局部二值特征學習的方法,本文基于深度學習
的方法更具有通用性,可以自學習人臉的年齡特
征;與文獻[20]使用融合的網(wǎng)絡結構相比,本文的CNN模型更為精簡且需要的計算量更小。
4結束語
本文優(yōu)化了人臉圖像數(shù)據(jù)集的年齡標簽,通過標簽分布對人臉圖像進行標注,摒棄了原有單一標簽的方法。人臉隨著年齡的增長會發(fā)生一系列的變化,然而這個變化是一個緩慢而平穩(wěn)的過程,相近年齡的人臉特征具有很大的相似性,傳統(tǒng)的單一標簽將每個年齡分為一個單獨的類別對于年齡這樣的回歸問題存在很大的不合理性。提出的標簽分布方法可以有效解決該問題,不僅可以用于本身年齡的學習還可以用于相近年齡的學習,同時本文使用了一個較小的改進型卷積神經(jīng)網(wǎng)絡,結合標簽分布的方法,即使在訓練樣本較少時依然保證較高的準確率。本文只是對相近年齡的相似性進行了學習,忽略了相近年齡的差異性,接下來的工作將對這方面進行研究。
[參考文獻]
[1]Guo G, Mu G. Simultaneous dimensionality reduction and human age estimation via kernel partial least squares regression[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2011:657-664.
[2]Geng X, Zhou Z H, Smithmiles K. Automatic age estimation based on facial aging patterns[J]. IEEE Transactionson Pattern Analysis & Machine Intelligence, 2007, 29(12):2234-2240.
[3]Levi G, Hassncer T. Age and gender classification using convolutional neural networks[C]// Computer
Vision and Pattern Recognition Workshops. IEEE, 2015:34-42.
[4]Wang X, Guo R, Kambhamettu C. Deeplylearned feature for age estimation[C]// Applications of Computer Vision. IEEE, 2015:534-541.
[5]Eidinger E, Enbar R, Hassner T. Age and gender estimation of unfiltered faces[J].IEEE Transactions on Information Forensics & Security, 2014,9(12):2170-2179.
[6]Parkhi O M, Vedaldi A, Zisserman A. Deep face recognition[C]// British Machine Vision Conference.2015:41.
[7]Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[J]. Communications of the Acm, 2012, 60(2):1097-1105.
[8]He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]// Computer Vision and Pattern Recognition. IEEE, 2016:770-778.
[9]Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]// Computer Vision and Pattern Recognition. IEEE, 2015:1-9.
[10]Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural networks by preventing coadaptation of feature detectors[J]. Computer Science, 2012, 3(4):212-223.
[11]Ricanek K, Tesafaye T. MORPH: a longitudinal image database of normal adult ageprogression[C]//International Conference on Automatic Face and Gesture Recognition. IEEE, 2006:341-345.
[12]Hu Z, Wen Y, Wang J, et al. Facial age estimation with age difference[J].IEEE Transactions on Image Processing A Publication of the IEEE Signal Processing Society, 2017, 26(7):3087-3097.
[13]Yang X, Gao B B, Xing C, et al. Deep label distribution learning for apparent age estimation[C]// IEEE International Conference on Computer Vision Workshop. IEEE, 2015:344-350.
[14]Geng X, Ji R. Label distribution learning[C]// IEEE, International Conference on Data Mining Workshops. IEEE Computer Society, 2013:377-383.
[15]Panis G, Lanitis A, Tsapatsoulis N, et al. Overview of research on facial ageing using the FGNET ageing database[J]. Iet Biometrics, 2016, 5(2):37-46.
[16]Jia Y, Shelhamer E, Donahue J, et al. Caffe: convolutional architecture for fast feature embedding[C]//Proceedings of the 2014 ACM International Conference on Multimedia.New York:ACM, 2014:675-678.
[17]Rothe R, Timofte R, Gool L V. DEX: deep expectation of apparent age from a single image[C]// IEEE International Conference on Computer Vision Workshop. IEEE, 2015:252-257.
[18]Chang K Y, Chen C S, Hung Y P. Ordinal hyperplanes ranker with cost sensitivities for age estimation[C]// Computer Vision and Pattern Recognition. IEEE, 2011:585-592.
[19]Lu J, Liong V E, Zhou J. Costsensitive local binary feature learning for facial age estimation[J]. IEEE Transactions on Image Processing, 2015, 24(12):5356-5368.
[20]Liu H, Lu J, Feng J, et al. Groupaware deep feature learning for facial age estimation[J]. Pattern Recognition, 2016, 2(4):101-112.
(責任編輯白麗媛)