?

基于深度卷積網絡的人臉年齡分析算法與實現

2016-10-25 15:47曹檑莫雅婷黃晨魏子涵
軟件工程 2016年8期
關鍵詞:卷積神經網絡深度學習

曹檑 莫雅婷 黃晨 魏子涵

摘 要:作為一種新興的生物特征識別技術,基于人臉圖像的年齡估計技術在目前已經成為計算機視覺、人機交互等領域的一個重要研究課題。2006年以來,深度卷積網絡在圖像識別、語音識別和自然語言處理等領域廣泛使用,取得了很好的效果。本文基于深度卷積網絡的人臉年齡分析算法,構建一個多層卷積神經網絡,通過卷積神經網絡獲取深度卷積激活特征,作為人臉年齡估計的特征,并利用支持向量機(SVM)的方法訓練年齡估計模型,得到年齡估計結果,在人臉識別權威數據集Morph上獲得了91.3%的正確率,同時也對比在了不同條件下對實驗結果的影響。

關鍵詞:深度學習;卷積神經網絡;年齡估計

中圖分類號:TP301 文獻標識碼:A

Abstract:As an emerging biometric technology,the age estimation based on facial images has become an important research topic in the field of computer vision,human computer interaction,etc.Since 2006,Deep Convolutional Neural Network has been widely used and obtained good effects in the field of image recognition,speech recognition,natural language processing,etc..In age estimation algorithm based on Deep Convolutional Neural Network,the paper constructs a multilayered convolutional neural network.Taking the deep convolutional activation features as the facial distinctions of age estimation, the paper applies Support Vector Machine(SVM) to train the age estimation model and acquire estimation results.The algorithm has obtained 91.3% accuracy in Morph,the authoritative facial recognition dataset.Meanwhile,the experiment results in different conditions have been compared.

Keywords:deep learning;convolutional neural network;age estimation

1 引言(Introduction)

人臉年齡分析算法是利用計算機技術根據人臉圖像隨年齡變化的規律進行建模,從而使機器能夠根據人臉圖像計算出人的大致年齡或所屬的年齡范圍。在很多領域,年齡信息作為人體的一種重要生物特征有著巨大的應用潛力[1-3]?;谌四槇D像的年齡估計技術作為一種新興的生物特征識別技術,目前已經成為計算機視覺、人機交互等領域的一個重要研究課題,近幾年關注年齡估計的研究越來越多。

深度卷積網絡作為一種有效的方法,將局部連接、權值共享和空間下采樣結合起來,可以簡化人臉特征提取流程,但是由于各種干擾條件,可能使得實驗結果不是很理想,本文實驗重點是探究側臉,圖像分辨率等因素對于實驗結果的干擾情況。

2 人臉圖像預處理與特征提?。‵ace image pretreatment

and characteristic picking-up)

基于人臉圖像的年齡估計系統是一種非常典型的機器學習系統,其流程如圖1所示。

2.1 預處理

獲取圖像的第一個步驟是人臉圖像預處理,其主要目的是消除圖像中的冗余信息,濾除各種干擾、噪聲,提高有關信息的可檢測性,從而提高識別的可靠性。這一過程采用的方法有五種:①灰度化;②旋轉圖片使兩眼連線處于水平位置;③將圖片按兩種方式進行裁剪(包括嘴和不包括嘴);④尺度歸一化,固定兩眼之間的距離及眼睛與鼻尖(包括嘴時)或眼睛與鼻子下端(不包括嘴)時的距離;⑤直方圖均衡化。

2.1.1 裁剪

裁剪包括嘴時:分別以雙眼連線中點、鼻尖的位置坐標作為參照中心,以兩眼連線距離及眼睛與鼻尖之間的距離作為參照大小,裁剪出一定大小的人臉圖像,裁剪示意圖如圖2所示。

裁剪不包括嘴時:分別以兩眼連線中點、鼻子下端坐標作為參照中心,以兩眼連線距離及眼睛與鼻子下端之間的距離作為參照大小,裁剪出一定大小的人臉圖像,裁剪示意圖如圖3所示。

2.1.2 灰度化

彩色圖像中的每個像素的值由紅、綠、藍三個通道上的值來決定,而灰度圖像的每個像素的值為亮度信息,存儲空間僅為彩色圖像的三分之一?;叶然梢詫⒉噬珗D片每個像素的RGB值轉化為灰度值,轉化公式如下:

其中,分別表示輸入的彩色圖像的紅、綠、藍三通道上的值,為輸出的灰度圖像對應的灰度值。

2.2 特征提取

面部特征提取大致分為三個步驟:

(1)特征點定位

采用多尺度總和評估ASM方法,在采用一系列的特征點來描述之前,首先針對特定目標建立形狀模型之后,這稱為點分布模型,然后對形狀模型中的每個特征點,建立特征點附近的灰度模型,即建立模型和特征點匹配的過程。

(2)獲取形狀信息向量

對由上述過程得到的一組訓練樣本的特征點位置做主分量分析,得到的由前m維特征向量組成的矩陣,通過任意人臉形狀在特征空間的投影,即該測試樣本通過特征點的坐標向量在這m維主元空間上的投影,即可得到一組m維的表征形狀信息的向量。

(3)獲取紋理信息向量

通過將訓練樣本的特征點位置拉伸到平均位置,可去除形狀信息,此時,圖像的灰度信息只包含了訓練樣本的紋理信息,再對它做主向量分析,可以得到的由前維特征向量組成的矩陣,之后通過該測試樣本通過特征點的坐標向量在這維主元空間上的投影,即可得到一組維的表征紋理信息的向量。

3 深度卷積網絡(Convolutional neural network)

1989年Yan Lecun等人提出可以將BP成功用于訓練深度網絡的結構——CNN(Convolutional Neural Network)。2012年A.Krizhevsky[4-6]等將CNN構造成深度卷積神經網絡(Deep Convolutional Neural Network,DCNN)。在這個結構中,并不需要傳統的顯式特征提取,原始圖像的像素可以直接作為輸入數據,避免了在淺層學習結構人工提取圖像特征時帶來的局限性問題,這有利于分類的準確性的提高和模型的泛化能力的增強[7]。

3.1 卷積

3.1.1 定義

設、是上的兩個可積函數,作積分:

易證,對于所有的實數,上述積分是存在的。隨著的不同取值,我們定義一個新函數,稱為函數與的卷積,記為。

因為卷積與傅里葉變換之間有密切的關系,所以利用一點性質,即兩函數的傅里葉變換的乘積等于它們卷積后的傅里葉變換,可以使得傅里葉分析中許多問題的處理得到簡化。

利用由卷積得到的函數一般要比和都光滑這個性質。對于任意的可積函數,都可以簡單地構造出一列逼近于的光滑函數列,這種方法稱為函數的光滑化或正則化。

在數列、廣義函數以及測度中,卷積都有很好的應用。

已知兩個給定的數列和,其卷積就是數列,易得,數列的卷積與他們的生成函數的乘積相對應,這個事實使得許多和式變得易于計算,如果不是卷積,這些和式是很難處理的。

3.1.2 卷積定理

函數傅里葉變換的乘積是函數卷積的傅里葉變換。即,一個域中的乘積相當于另一個域中的卷積,例如時域中的乘積就對應于頻域中的卷積。

其中,F表示的是傅里葉變換,星號*表示卷積。

3.2 深度卷積網絡的基本理論

一個簡單的深度卷積網絡結構[7]如圖4所示。

在這個網絡中,第一層是輸入層,其后是若干個卷積層和下采樣層,最后所有匯到一個分類器。通常一個卷積層后面跟一個下采樣層。在深度卷積網絡中,局部連接和權值共享是一個可以降低計算的復雜性、減少網絡的訓練參數的重要特征。卷積運算得到的結果通過Sigmoid等激活函數的輸出達到這一層的特征圖,作為下一層的輸入。在下采樣層,將前一層對應的特征圖中相鄰若干個特征通過池化操作合并成一個特征,以減小特征的分辨率,從而實現對平移、縮放、扭曲的不變性。

3.2.1 卷積層和下采樣層

在上面描述的結構細節中,卷積神經網絡涉及的最重要的前向傳播運算是卷積層操作和下采樣[8]層操作,其詳細過程如下:

(1)卷積層操作

在一個卷積層中,可學習的卷積核將上一層的特征圖進行卷積,組合這些卷積運算,然后通過一個激勵函數就可以得到一個輸出特征圖,公式表達如下:

其中,表示第層的第個特征圖,表示激活函數,“*”表示卷積運算,代表選擇的輸入圖的集合,表示第層第個特征圖與第層第個特征圖連接之間的卷積核,表示第個特征圖對應的偏置項。

(2)下采樣層操作

在下采樣層,有個輸入圖,每個輸出圖都變小,也有個輸出圖,只是每個輸出圖都變小了,公式表達為:

其中,如表示下采樣函數,典型的操作就是對輸入圖像的不同大小的區域內的所有像素進行求和。表示第層第個特征圖對應的系數,為其對應的偏置項。

3.2.2 卷積神經網絡的反向傳播

卷積神經網絡的參數求解形式同經典神經網絡一樣,采用梯度下降原則去更新參數,同樣,最關鍵的是求出代價函數對每個參數的偏導,然而經典神經網絡不一樣的是,卷積神經網絡涉及的連接個數是多于權值個數的,所以不能按經典神經網路的反向傳播算法計算每層的殘差及所需要的偏導,而這個區別主要是網絡的卷積層和下采樣層引起的,所以重點是研究卷積層和下采樣層的梯度計算過程。

(1)卷積層的梯度計算

假定每個卷積層后面都跟一個下采樣層,根據經典神經網絡的反向傳播算法,要想得到第層的每個神經元對應權值的梯度,就必須要首先求第層中每一個神經節點的殘差。

為了求這個殘差,必須先對下一層的節點(連接到當前層的感興趣節點的第層節點)的殘差求和(得到),然后乘以這些連接對應的權值(連接層第層節點和第層節點的權值),再乘以當前層的該神經元節點的輸入的激勵函數的導數值(也就是反向傳播公式中的求解),這樣也就可以得到當前層每個神經節點對應的殘差。

由于下采樣的存在,采樣層的一個神經元節點對應的殘差對應于上一層的輸出特征圖的一塊區域(下采樣窗口大?。?。因此,層中每個特征圖的每個節點只與層中的一個節點連接。上述的殘差其實是代價函數對每個神經元的偏導,所以特征圖中每個像素都有一個對應的殘差,也就組成了特征圖對應的殘差圖。為了有效計算層的殘差,需要上采樣下采樣層對應的殘差圖,然后將這個上采樣得到的殘差圖與當前層的特征圖的激勵值的偏導數逐元相乘。下采樣層特征圖的權值都取一個相同值,所以將上一步驟得到的結果乘就完成了第層殘差的計算。這個過程用公式描述為:

(2)下采樣層的梯度計算

下采樣的前向過程涉及的參數是每個特征圖對應的一個乘性參數和一個偏置項,若是求得此層的殘差圖,這兩個參數的梯度就很容易求得。在計算卷積核的梯度時需要找到輸入圖中哪個區域對應輸出圖中哪個像素,這里需要找到當前層的殘差圖中哪個區域對應下一層的殘差圖中的給定像素,這樣便能將殘差反向傳播回去,另外,需要乘以輸入區域與輸出像素之間的權值,公式表達為:

3.3 基于深度卷積網絡的人臉年齡估計算法

現在在人臉年齡估計中,主流的分類方式大部分都是基于統計特征[9]的,這就意味著在進行分辨前必須首先提取某些特征。然而,顯式的特征提取并不容易在一些應用問題中也并非總是可靠的。

基于深度卷積網絡的人臉年齡估計算法創新點主要著眼于特征提取部分,通過構建卷積網絡提取出一種新的更有效的隱式年齡估計特征——深度卷積激活特征,并在該特征的基礎上采用分類的方法利用支持向量機實現人臉的年齡估計。該算法具體的系統框架流程圖[10]如圖5所示。

4 實驗結果與分析

4.1 數據庫

年齡數據庫是年齡估計的基礎,是年齡估計性能評價的一個基準。作為年齡估計圖片庫,需要滿足三點要求:其一,覆蓋盡可能大的年齡區間,通常需要0到80歲;其二,對于各個年齡段的圖片數量要基本均等;其三,圖片質量盡量高。

4.1.1 FG-NET數據庫

FG-NET數據庫[11]的圖像年齡分布如表1所示。從表中可以看出,該數據庫覆蓋的年齡范圍較大,但各年齡段的圖片數量相差較大。并且由于圖片是通過掃描得到的,圖片質量不高。

4.1.2 Morph數據庫

Morph數據庫[7]包含Album1和Album2兩部分,其中Album2是目前為止公開的最大的人臉年齡估計數據庫,其年齡分布如表2所示。

4.1.3 其他主流數據庫

除了FG-NET和Morph兩大常用數據庫,還有很多其他的用于人臉年齡估計的數據庫。

(1)WebFace數據庫,是B.Ni等人在2009年再進行有關用圖像挖掘的方法進行人臉年齡估計的實驗是構建的。該數據庫的資源來自于網絡,利用了一系列有關于年齡的提問在Flicker和Google上采集的。該數據庫包含了77021張圖像,年齡跨度為1—80歲,是一個比較完備的數據庫。

(2)YGA數據庫,這個數據庫是Y.Gu等人構建的,包含八千張高分辨率的戶外人臉圖像,共涉及1600個亞洲對象,其中有男性800名,女性800名,年齡跨度為0—93歲,每一個人在同一個年齡段有約五張正臉圖像,雖然這個數據庫數量并不龐大,但是圖像的質量都非常好,有利于人臉年齡估計算法的研究。

(3)WIT-DB數據庫,即早稻田人機交互數據庫。這個數據庫由K.Ueki等人在2006年為研究人機交互技術所構建的人臉數據庫,數據庫一共包含26222張圖片,其中男性為14214張,女性為12008張,涉及5500個不同的日本對象。這些人臉圖像基本上都是自然表情,并且是在較為廣泛的光照條件下獲得,年齡范圍包括3—85歲。這個數據庫年齡跨度大,圖片質量好,是人臉年齡估計的較好數據庫之一。

4.2 實驗環境配置

實驗中硬件配置為Intel i7-6700處理器,主頻2.60 GHz,

8 GB內存,顯卡Nvidia GTX960。軟件配置為Linux Mint 17.3

(類似Ubuntu 14.04),Cuda6.5 GPU并行計算庫,網絡訓練工具采用Tensorflow。

4.3 在數據庫下的評測結果

本文主要是針對FG-NET和Morph兩大常用數據庫進行測試,從表3可知影響識別精度的各項因素。預處理操作十分重要,在正確率上提高巨大。其中側臉的影響最大,灰度和正確率影響較小。采用Morph數據集訓練后,精度上也有20%的提升。

5 結論(Conclusion)

本文對人臉年齡估計領域做了一個綜述,之后實現出一種簡單的卷積神經網絡來對比在不同的條件下的正確率。實驗結果顯示,即使在有限的數據支持下,本文方法依然能夠在實際場景中取得不錯的性能,同時,側臉圖片灰度不

同,圖片分辨率不同等條件對于年齡估計的正確率有重大影響,其中側臉對于正確率影響最大。

參考文獻(References)

[1] D Zhang,JJP Tsai.Machine Learning and Software Engineering[J].

Software Quality Journal,2014,11(2):87-119.

[2] BK Natarajan.Machine Learning[J].Machine Learning,2014:

207-214.

[3] MI Jordan,TM Mitchell.Machine Learning:Trends,Perspectives,and Prospects[J].Science,2015,349(6245):255-260.

[4] 張建明,等.深度學習的研究與發展[J].江蘇大學學報:自然科學版,2015,36(2):191-200.

[5] Abel-Rahnan E M,et al.Detecting Sirex Noctilio Grey-attacked and Lightning-struck Pine Trees Using Airborne Hyperspectral Data,Random Forest and Support Vector Machines Classifiers[J].IS-PRS Journal of Photogrammetry and Remote Sensing,2014,88:48-59.

[6] 孫志軍,等.深度學習研究綜述[J].計算機應用研究,2012,29

(8):2806-2810.

[7] Krizhevsky A,Sutskever I,Hinton G E.Image Net Classification with Deep Concolutional Neural Networks[C].NIPS,2012,1(2):4.

[8] 葉浪.基于卷積神經網絡的人臉識別研究[D].東南大學,

2015.

[9] 孫寧.人臉檢測綜述[J].電路與系統學報,2006,11(6):

104-108.

[10] 閆陳靜.人臉年齡估計算法的設計與實現[D].北京交通大學,2016.

[11] Bengio Y,et al.Greedy Layerwise Training of Deep Networks[C].Proceedings of 20th Annual Conference on Neural Information Processing Systems.Vancouver:Neural Information Processing System Foundation,2007:153-160.

作者簡介:

曹 檑(1995-),男,本科生.研究領域:軟件開發.

莫雅婷(1994-),女,本科生.研究領域:軟件開發.

黃 晨(1995-),男,本科生.研究領域:軟件開發.

魏子涵(1994-),女,本科生.研究領域:軟件開發.

猜你喜歡
卷積神經網絡深度學習
基于卷積神經網絡的車輛檢索方法研究
基于卷積神經網絡溫室智能大棚監控系統的研究
基于深度卷積神經網絡的物體識別算法
搭建深度學習的三級階梯
有體驗的學習才是有意義的學習
電子商務中基于深度學習的虛假交易識別研究
MOOC與翻轉課堂融合的深度學習場域建構
大數據技術在反恐怖主義中的應用展望
深度學習算法應用于巖石圖像處理的可行性研究
基于卷積神經網絡的樹葉識別的算法的研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合