王 敏
(武漢郵電科學研究院通信與信息系統(tǒng) 武漢 430070)
人臉識別問題涉及廣泛,涉及多方多面的知識,如圖像處理、計算機視覺、優(yōu)化理論等,與此同時,又與其他學科的研究領域產生密不可分的聯(lián)系,如認知學、心理學等。目前人臉識別技術已普及的在各個行業(yè)運用,如常用的支付寶APP、人臉門禁、人臉考勤系統(tǒng)、相親終端APP系統(tǒng)等。傳統(tǒng)的人臉識別主要有以下幾種:1)基于子空間的方法,人臉圖像屬于高維數(shù)據(jù),它包含了大量的冗余信息,而基于子空間的方法是通過將高維人臉圖像映射到低維子空間,不僅實現(xiàn)了圖像的降維,而且可以消除角度、人物的表情、光線、遮擋等因素的影響。最具代表性的子空間方法有Eigenface[2]和Fisherface[3]算法。2)基于模型的方法,通過對人臉進行二維或三維建模的方法,可以有效地對光照、姿態(tài)等變量進行建模,從而準確識別人臉?;谀P偷娜四樧R別可以分為以下三類:人臉對齊模型、可變人臉模型及人臉年齡模型。典型的人臉對齊模型包含了隱馬爾科夫模型[4],主動形狀模型(Ac?tive Shape Model,ASM)[5]和主動外觀模型(Active Shape Model,AAM)[6]。3)基于紋理的方法,需要從人臉圖像的高頻細節(jié)信息中提取出具有判別性的特征。方法利用了梯度信息,實現(xiàn)了算法對光照的魯棒性。另外梯度信息也可以與其他方法相結合,如PCA法[7]、SRC法[8]、子空間學習法[9]等。4)基于表達的方法,與前幾類基于特征的方法不同的是,基于表達的方法主要著眼于分類器的構建和訓練,利用現(xiàn)有的訓練樣本,找到距離測試圖片距離最近的類別。代表的方法有最近鄰特征線分類[10]、最近鄰特征平面分類器[11]和稀疏表達(SRC)[12]等方法。5)基于學習的方法,就是利用大量的訓練嚴格不,通過機器學習的方法來學習人臉識別模型。這類方法主要包括支持向量機(SVM)[13]、神經網絡(NN)[14]和提升方法(Adaboost)[15]等,其中 SVM 模型曾一度被廣泛研究并使用。近幾年來,隨著深度學習的火熱,卷積神經網絡在人臉識別問題上取得了突破性進展。
上述五類方法在限制性環(huán)境中(無光照、姿態(tài)、表情、遮擋、分辨率等因素影響)和訓練樣本充足的情況下,均可取得良好的識別效果,尤其是基于深度學習的人臉識別算法在標準數(shù)據(jù)集上對人臉的識別率甚至超過了人類。因此,本文提出一種基于改進的卷積神經網絡的人臉識別方法可以更好地提高其性能,提高其正確率。
人工神經網絡起源于20世紀40年代,第一個神經元模型是1943年McCulloch和Pitts提出的,稱為threshold logic,它可以實現(xiàn)一些邏輯運算的功能。直到2006年深度網絡(deep network)和深度學習(deep learning)的概念被提出來,神經網絡又開始煥發(fā)一輪新的生命。深度神經網絡通過一種可提取的數(shù)據(jù)深層特征的方式解決了經典多層神經網絡難以進行訓練的問題。根據(jù)目標函數(shù)的不同,目前已有多種深度網絡誕生,如深度受限玻爾茲曼機[16]、Autoencoder[17]、CNN[18]等。
卷積神經網絡是一個多層的神經網絡,每層有多個二維平面組成,而每個平面由多個獨立神經元組成。其基本結構如圖1所示。
圖1 卷積神經網絡的基本結構
如圖1所示,輸入圖像通過三個可訓練的濾波器C1和可加偏置進行卷積,濾波過程如圖1,卷積后在C1層產生三個特征映射圖,然后對特征映射圖中每組的四個像素再進行求和,加權值,加偏置,通過非線性激活函數(shù)對圖像進行多次非線性變換得到三個S2層的特征映射圖。這些映射圖再經過濾波得到C3層。這個層級結構再和S2一樣產生S4。最終,這些像素值被光柵化,并將一個向量輸入和傳統(tǒng)的神經網絡連接起來,得到輸出。
一般地,C層為特征提取層,每個神經元的輸入與前一層的局部感受野相連,同時提取該局部的特征,一旦該局部特征被提取后,它與其他特征的位置關系也隨之確定下來;S層是特征映射層,網絡的每個計算層由多個特征映射組成,每個特征映射為一個平面,平面上所有神經元的權值相等。
此外,由于一個映射面上的神經元連接的權重是固定的,因而減少了網絡自由參數(shù)的個數(shù),降低了網絡參數(shù)選擇的復雜度。卷積神經網絡中的每一個特征提取層都緊隨著一個用來求局部平均與二次提取的特征映射層,這種特有的結構使網絡在識別時對輸入樣本有較高的畸變容忍能力。
局部感知野,具體來說即是模擬人眼,在人眼看東西時,往往會聚焦在一個相對較小的局部區(qū)域通常認為人們對外部的認知是從局部區(qū)域到整體的,而在圖像中也是局部區(qū)域的那些像素之間的關系更為密切,而相距更遠的像素相互間關聯(lián)比較低??紤]到圖像像素點僅與相鄰區(qū)域存在聯(lián)系,CNN模型中的神經元采取了局部連接方式,即每一個神經元僅與其前層的輸入單元的局部區(qū)域連接,由于模型是深層的,因此可以在模型高層將感受不同局部的神經元結合從而得到圖像全局特征。
在CNN中,每一層的神經元都是共享權值的,因此每一個卷積核僅能提取到圖像的一種特征,通過在每一層中使用多個卷積核,可以有效地提取圖像的不同特征。權值共享可以帶來兩個好處,首先,模型參數(shù)大幅度減少,使得模型訓練更加容易;其次不同神經元都能對每種特征進行響應,二不用考慮該特征在圖像域中的位置。
在池化層中,CNN模型對特征圖進行了降采樣操作,通過平均池化或最大池化對特征圖進行聚合統(tǒng)計,減少了特征圖的尺寸,達到了降低數(shù)據(jù)量的目的,此外,池化操作也去除了特征圖中的部分噪聲,從而減少了過擬合現(xiàn)象。
總之,卷積網絡的核心思想是將局部感受野、權值共享(或者權值復制)以及池化操作這三種思想結合起來,讓CNN模型在減少參數(shù)的同時使得提取出的圖像特征具有位移不變性、尺度不變性、旋轉不變性等特性。
本文采用的人臉數(shù)據(jù)庫為LFW數(shù)據(jù)集(La?beled faces in the Wild)[20]由美國馬薩諸 塞大學(University of Massachusetts)阿姆斯特分校計算機視覺實驗室整理完成,用于研究費受限情形下的人臉識別問題,已成為學術界評價人臉驗證性最常用的數(shù)據(jù)集。LFW數(shù)據(jù)集中有5749個人,共有13323張不同的人臉圖片,LFW部分人臉樣本如圖2所示。其中的1680個人每人有兩張以上人臉圖片,而剩下4069人每人只有一張人臉圖片。圖像分辨率為250×250,以JPG格式存儲,絕大多數(shù)為彩色圖像,少數(shù)為灰度圖像。
圖2 LFW數(shù)據(jù)集
LFW原始圖片來自Yahoo News頻道抓取的新聞圖片和對應的標題信息,通過人臉定位(face de?tection)、人臉校準(face alignment)、人臉確認(face vertification)、人臉鑒別(face identification)進行人臉識別。由于數(shù)據(jù)集中所有圖片都采集于真實無約束環(huán)境條件,所以不同圖片的表情、姿態(tài)、光照和對齊具有很大差異。
本文的基本流程如圖3所示。本文提取特征過程如下:
1)預處理階段:通過人臉檢測和3D人臉校正,在歸一化到152×152像素大小;
2)通過卷積層C1:S2降采樣層對C1層的新特征矩陣進行采樣,采樣大小為3×3,跨步為2。C1包含32個11×11×3的濾波器(即卷積核),得到32張?zhí)卣鲌D;
3)通過另一個卷積層C3:S4為第二個下采樣層,同S2,采樣大小仍為3×3,跨步為2。C3包含16個9×9×16的3維卷積核。
圖3 人臉識別基本流程
本文采用基于檢測點的人臉檢測方法,通過LBP特征用SVR學習得到六個基準點,兩只眼睛中心、一個鼻子點、三個嘴上的點。如圖4所示。
圖4 人臉檢測
對檢測后的圖片進行二維裁剪,將人臉部分裁剪出來。找到一個3D模型,用這個3D模型把二維人臉crop成3D人臉。67個基點,然后Delaunay三角化,江三角化后的人臉轉換成3D形狀,變?yōu)橛猩疃鹊?D三角網,將三角網做偏轉實現(xiàn)人臉校準。如圖5所示。
圖5 人臉校準
經過人臉校準后,形成的圖像都是152×152的圖像。
本文會將對卷積神經網絡的參數(shù)進行大量的實驗對比分析,并選取最合適的參數(shù)構建一個能夠識別人臉的深度神經網絡。
1)池化方式
本文將分別為三種池化方式構建了不同的卷積神經網絡模型,為保證實驗數(shù)據(jù)的全面性,選取了LFW人臉庫中男女各1000幅圖像進行識別實驗,并對每組卷積神經網絡的實驗結果數(shù)據(jù)計算其平均值,并且記錄實驗平均所耗時間,最終得到的實驗數(shù)據(jù)如表1所示。
表1 池化方式對比表
由表1可知,最大池化模型和隨機池化模型在人臉識別的效果上優(yōu)于平均池化模型,隨機池化模型正確率略高于最大值池化,但是,在平均耗時上,隨機池化模型花費的時間明顯高于其他兩種,這是因為隨機池化的算法比較復雜,在訓練時間上浪費的比較多,由于本文的卷積神經網絡需要處理大規(guī)模的數(shù)據(jù),必然需要節(jié)省訓練時間,同時考慮到最大池化方式與隨機池化方式的識別率相差不大,所以本文構造的卷積神經網絡選取最大值池化方式。因此,綜合以上實驗分析,當卷積神經網絡使用最大值池化時,能夠使人臉識別更加精確并且高效。
2)權重衰減系數(shù)
在卷積神經網絡訓練中,為了防止過擬合、提高泛化能力,通常在損失函數(shù)中加入L2正則化項,即
其中的參數(shù)λ被稱為權重衰減系數(shù)(weight de?cay)。
本文將選取不同的權重衰減系數(shù),其他實驗條件都相同的情況下,來驗證人臉識別的正確率,實驗結果如表2所示。
由表2可知,當權重衰減系數(shù)為0時,準確率最高。本文將固定卷積層權重衰減系數(shù)設為0,測試其全連接層權重系數(shù)對比試驗。實驗結果如表3所示。
表3 全連接層權重衰減系數(shù)對比試驗
由表2、3可知,當卷積層的權重衰減系數(shù)設為0,而全連接層的權重系數(shù)設為0.01時,得到的效果最好。原因是全連接層更容易過擬合,需要一個更大的權重衰減系數(shù),而卷積層不容易過擬合,那么可以將系數(shù)設為0。
3)激活函數(shù)
神經網絡中有許多非線性激活函數(shù)可以選擇。本文將選擇sigmoid函數(shù)、tanh函數(shù)、ReLU函數(shù)、PReLU和ELU函數(shù)這五種函數(shù)進行對比。實驗除了激活函數(shù)不同外其他條件都相同。
表4 激活函數(shù)對比試驗
由表4可看出PReLU的效果均要高于其他激活函數(shù),因為它可以學習到更多的參數(shù),并且沒有出現(xiàn)過擬合的情況。
本文將卷積神經網絡運用到人臉識別當中,并在實驗中取得了良好的識別率。通過基于深度神經網絡模型在LFW人臉庫上的實驗,分別對池化的方式、權重衰減系數(shù)和激活函數(shù)的選擇進行了同一環(huán)境下的實驗,并且選取了適合人臉識別的參數(shù)與結構,從而優(yōu)化改進了卷積神經網絡,能夠較好地解決過擬合問題。雖然深度神經網絡在圖像處理方面有良好的識別效果,然而仍然存在一些不足,本文是基于單模型在LFW數(shù)據(jù)集上進行試驗,平均準確率達到97.17%,但是準確率還是不夠高,有很多初始參數(shù)的選擇還沒考慮到,這會對訓練產生很大的影響。下一步將基于上述問題進行進一步探索。