陳飛玥,朱玉蓮,陳曉紅
(1.南京航空航天大學計算機科學與技術學院,江蘇 南京 211106)(2.南京航空航天大學公共實驗教學部,江蘇 南京 211106)(3.南京航空航天大學理學院,江蘇 南京 211106)
人臉識別是目前應用最為廣泛的生物特征識別技術之一. 它在安全驗證、銀行系統(tǒng)、人機交互等領域均有廣泛的應用. 一般來說,人臉識別主要包括3個步驟:人臉檢測、特征提取和人臉分類. 人臉檢測是將人臉區(qū)域從整個圖像中分割出來,以便進行后續(xù)特征提取;特征提取是從每個人臉圖像中提取最具鑒別能力的特征;而人臉分類則是基于提取的特征來判別未知人臉圖像是否屬于某個人,或者屬于哪個人. 本文的工作為特征提取和分類.
人臉識別也是計算機視覺中最具挑戰(zhàn)性的問題之一. 因為人臉圖像中不可避免地存在著不同的光照、姿態(tài)表情等變化,還可能出現(xiàn)不同程度的遮擋,從而出現(xiàn)大的類內(nèi)變化和小的類間變化的情況,進而影響識別任務的性能. 為了克服這個問題,人們提出了許多基于局部特征的提取算法,典型的算法包括Gabor特征[1]、局部二值模式(LBP)[2]、尺度不變特征變換(SIFT)[3]和方向梯度直方圖(HOG)特征[4]. 這些特征提取算法在一些特定的任務中取得了巨大的成功,但由于它們都是手工設計的特征,因此不能簡單地應用于其他新任務. 根據(jù)“沒有免費午餐定理”,一個高性能的算法必須利用數(shù)據(jù)的先驗知識,因此,從數(shù)據(jù)本身來學習特征(基于學習的特征提取算法)成為彌補手動特征局限性的一種可行算法[5-6].
在基于學習的特征提取算法中,卷積神經(jīng)網(wǎng)絡(CNN)[6]近年來受到了廣泛的關注. CNN通常由多個網(wǎng)絡層組成,而每一網(wǎng)絡層又由卷積濾波層、非線性處理層和特征池化層組成. 在過去的幾年中,基于CNN體系結(jié)構,各種卷積神經(jīng)網(wǎng)絡的變體如ResNet[7]、DeepFace[8]、FaceNet[9]等,相繼被提出. 然而,基于CNN的網(wǎng)絡結(jié)構通常非常復雜,如ResNet[7]的層數(shù)高達152,這導致了大量的結(jié)構參數(shù)(如濾波核參數(shù))需要調(diào)整,這個過程非常耗時,而且復雜的網(wǎng)絡結(jié)構通常需要一些額外的訓練技巧才能獲得良好的性能. 此外,復雜的網(wǎng)絡結(jié)構通常需要大量的訓練數(shù)據(jù),才能保證通過深層網(wǎng)絡獲取對光照、表情等變化魯棒的特征.
為了解決上述問題,一些研究者將注意力放在了簡化訓練過程上,典型的例子就是主成分分析網(wǎng)絡(PCANet)[10]. PCANet可視為CNN的簡化版本,在PCANet中,卷積層的濾波核通過PCA算法來學習;非線性處理層使用最簡單的二值化哈希編碼,而最后的特征則通過直方圖統(tǒng)計來表示. 盡管PCANet模型簡單,但在某些圖像識別領域取得了和CNN可比擬的性能[10]. 鑒于PCANet的成功,人們在PCANet的基礎上做了各種改進[5,11-12]. 例如,Xi等[11]提出了一種用于人臉識別的局部二值模式網(wǎng)絡(LBPNet);Lei等[5]提出了堆疊人臉圖像描述符;Li等[12]則提出了基于RGBD(紅、綠、藍、深)圖像的人體手勢識別網(wǎng)絡SAE-PCA. 本文將研究如何在訓練樣本有限的情況下,使用PCANet提取到包含更豐富的有用的特征以實現(xiàn)性能的進一步提升.
PCANet及上述PCANet的改進方法在構建卷積濾波核時只使用PCA的前k個最大的特征值對應的特征向量.也就是說,只考慮了k個最大特征值對應的特征向量,而丟棄了剩余的特征向量. 實際上,被丟棄的特征向量中也存在一部分有用的辨別信息,丟棄它們會損失這部分辨別信息. 避免信息損失的一個簡單方式是盡量多地使用PCA中的特征向量去構建卷積核,然而這樣的操作將導致計算量及最后獲得的特征維數(shù)大大增加. 最近,一種稱為DenseNet[13]的卷積神經(jīng)網(wǎng)絡模型被提出. DenseNet的核心是每一層的輸入均來自前面所有層的輸出,并且通過特征的并行連接來實現(xiàn)特征重用,進而在參數(shù)更少的情況下獲取比CNN更好的性能. 受DenseNet成功的啟發(fā),本文嘗試將組合思想引入到PCANet中,對不同層次的特征信息進行融合,并相應地提出了基于多層特征融合的PCANet(PCANet_dense)模型. 與PCANet中只將第1層的輸出反饋到第2層不同,PCANet_dense首先將原始圖像特征和網(wǎng)絡第1層的輸出特征進行信道級的級聯(lián),然后將級聯(lián)后的結(jié)果作為網(wǎng)絡第2層的輸入,因此PCANet_dense比PCANet利用了更多的特征信息. 另外,本文也將PCANet_dense擴展到3層網(wǎng)絡結(jié)構中(在實驗中將其命名為PCANet_dense3),即在保留PCANet_dense前兩層結(jié)構的基礎上,將第1層與第2層的輸出進行級聯(lián),然后將級聯(lián)的結(jié)果作為第3層的輸入. 為了驗證所提方法的有效性,本文使用CMU PIE人臉數(shù)據(jù)庫學習網(wǎng)絡模型,并在3個人臉數(shù)據(jù)庫(ORL、AR和Extended Yale B)上進行實驗. 實驗結(jié)果表明,相對于PCANet,本文提出的PCANet_dense和PCANet_dense3不僅對光照、遮擋具有更強的魯棒性,同時也適用于表情和姿態(tài)變化的測試圖像.
本節(jié)將詳細描述基于多層特征融合的PCANet的網(wǎng)絡層次結(jié)構和訓練流程.
和PCANet相似,PCANet_dense也包含1個輸入層、2個卷積層和1個輸出層(如圖1所示).
圖1 PCANet_dense結(jié)構示意圖(其中?和?分別是信道級聯(lián)和卷積運算)Fig.1 The illustration of structure of PCANet_dense(? and ? is channel-wise concatenation and convolution operation,respectively)
(1)
(2)
式中,*為卷積符號.很明顯,對于每一個輸入圖像,經(jīng)過第1層卷積后,能得到L1個輸出映射.
(3)
(4)
(5)
PCANet_dense雖只是2層的網(wǎng)絡模型,但同PCANet一樣,它很容易擴展到3層或更多層. 在此,通過在PCANet_dense的基礎上添加第3層卷積層,給出PCANet_dense的3層版本(PCANet_dense3). 簡單地說,PCANet_ dense3在學習第3層卷積前,將第1層和第2層的輸出進行信道級聯(lián),然后將級聯(lián)后的結(jié)果作為第3層的輸入. PCANet、PCANet_dense和PCANet_ dense3的流程簡單比較如圖2所示.
圖2 PCANet、PCANet_dense和PCANet_dense3流程概述Fig.2. Overview of PCANet,PCANet_dense and PCANet_dense3
為了評估文中所提方法的有效性,本文在人臉識別任務上進行了實驗. 實驗中PCANet、PCANet_dense和PCANet_dense3使用CMU PIE人臉數(shù)據(jù)庫學習網(wǎng)絡模型,FaceNet選用已在VGGFace2訓練好的模型. 實驗分別在ORL、AR和Extended Yale B數(shù)據(jù)集上對PCA、FaceNet、PCANet、PCANet_dense和PCANet_dense3進行性能比較.
CMU PIE數(shù)據(jù)庫包含68個人不同姿勢、不同照明條件和不同拍攝條件下共41 368張圖像. 本文使用的是1個子集,其僅包含68個人正面姿勢的圖像,并將所有圖像分辨率調(diào)整為100×82. 在實驗中,各項基本參數(shù)的設置如下:對于PCA算法,選取前95%的主成分作為特征表示;對于PCANet、PCANet_dense和PCANet_dense3,每層濾波核的大小均為5×5;而濾波核的數(shù)目均為 8;所有實驗用歐氏距離最近鄰分類器進行分類.
ORL數(shù)據(jù)庫是劍橋大學AT&T實驗室收集的人臉圖像數(shù)據(jù)集,包括來自40個人的400張人臉圖像,每個人有10張圖像,所有圖像分辨率為112×92. 對每個人來說,10張照片在不同的時間拍攝并包含面部表情(睜眼、閉眼、微笑、中性)、面部細節(jié)(戴眼鏡或不戴眼鏡)和人臉尺度等變化(最多10%左右). 此外,所拍攝的圖像允許臉部傾斜和旋轉(zhuǎn)達20°. 在實驗中,分別從每個人的圖像中隨機選取5、6、7和8幅人臉圖像形成訓練集,其余圖像作為測試集,實驗重復10次,取平均作為最后的結(jié)果. 實驗結(jié)果如表1所示.
表1 ORL數(shù)據(jù)集的識別率Table 1 Recognition rates on ORL dataset
由表1可以看出:(1)PCANet_dense比PCANet具有更好的性能,特別是當訓練樣本數(shù)足夠多時(7個或8個),PCANet_dense分別獲得97.5%和100%的識別準確率,相對于PCANet的95.53%和98.75%,PCANet_dense至少提高了1%,這說明對不同層的特征進行組合是有效的;(2)PCANet_dense3在所有情況下都優(yōu)于PCANet_dense;在每類6個訓練樣本時,PCANet_dense3取得了98.33%的準確率,比PCANet_dense高了2.7%,這說明增加PCANet_dense的層數(shù),更有利于性能的提升;(3)FaceNet在ORL數(shù)據(jù)集上表現(xiàn)得非常優(yōu)秀,在所有情況下均獲得了100%的識別率. 這主要是因為:①FaceNet是通過大量樣本訓練得到的真正的深度網(wǎng)絡(深度可達447);②ORL中的圖像受姿態(tài)、光線和遮擋等影響較少. 雖然PCANet_dense3在ORL上并沒有獲得與FaceNet可比擬的性能,但值得說明的是,PCANet_dense3僅僅是一個3層網(wǎng)絡,如果增加層數(shù)將會進一步提高整體的性能.
AR人臉數(shù)據(jù)庫是一個非常具有挑戰(zhàn)性的數(shù)據(jù)庫,它由126個人(70名男性和56名女性),每人26張共計3 000多張正面圖像組成. 每人的照片在間隔2周的2個不同的時間段(session)拍攝. 圖3顯示了AR數(shù)據(jù)庫中的一些樣本,每個session中的圖像從左到右的詳細信息為:第1張中性表情、第2-4張表情大幅變化、第5-7張照明變化、第8-10張為太陽鏡遮擋、第11-13張為圍巾遮擋. 本文使用了包含100個人(50名男性和50名女性)共2 600張圖像的子集,并將原始圖像的大小調(diào)整為66×48. 實驗選擇session 1的所有圖像進行訓練,并將session 2圖像根據(jù)變化類別的不同分為4個測試子集(Exps:session 2第2-4張;Illum:session 2第5-7張;Sunglass:session 2第8-10張;Scarf:session 2第11-13張),以便測試在不同圖像變化下的性能.
圖3 AR數(shù)據(jù)庫上某個人的樣本Fig.3 Some samples of one person from AR database
圖4列出了不同方法在4個子集上的識別準確率. 從圖4可以看出:(1)在Exps和Illum測試子集上,所有對比方法均獲得了較好的性能. 尤其是FaceNet達到了99.67%的識別性能;本文提出的PCANet_dense和PCANet_dense3也達到了99%的性能,高于PCANet的實驗結(jié)果. (2)在Sunglass和Scarf測試子集上,PCA和FaceNet模型的準確率相對于Exps和Illum明顯下降. 例如在Scarf子集上,由于人臉圖像受到嚴重遮擋,PCA的識別率只有18.00%,FaceNet也僅達到91.67%的識別性能;而PCANet_dense和PCANet_dense3分別取得了 97.00%和98.67%的準確率,不僅高于PCA和FaceNet,比PCANet也提升了至少2.67%. 這說明我們提出的方法對受遮擋的人臉圖像數(shù)據(jù)表現(xiàn)得更為魯棒.
圖4 AR數(shù)據(jù)集上各模型的識別率Fig.4 Recognition rates of each model on AR dataset
Extended Yale B數(shù)據(jù)集包含了38個人的2 414張正面照片. 所有的圖像都是在實驗室控制的各種光線下拍攝的. 因此,該數(shù)據(jù)集主要用來測試算法對光照的魯棒性. 實驗中,將原始圖像大小從192×168調(diào)整為48×42,并參考文獻[14]中的策略,根據(jù)光源方向的角度(即光照方位角)大小將整個數(shù)據(jù)集分成5個不相交的子集(subset 1-subset 5). 從圖5所示的部分樣本可看出從subset 1到subset 5圖像的光照方位角逐漸增大. 實驗選擇子集subset 1進行訓練,其余4個子集(subset 2-subset 5)分別進行測試. 實驗的結(jié)果如表2所示.
圖5 Extended Yale B數(shù)據(jù)集的子集示例Fig.5 Overview of subsets of Extended Yale B dataset
表2 Extended Yale B數(shù)據(jù)集的識別率Table 2 Recognition rates on Extended Yale B dataset
從表2可以看到:(1)同PCA、FaceNet和PCANet相比,PCANet_dense和PCANet_dense3在性能上都有一定提升. 尤其是PCANet_dense3,在subset 5上達到了98.03%的準確率,比PCANet多了5%;而PCA和FaceNet在subset 5上只取得了3.51%和33.68%的準確率. (2)FaceNet對光線變化的魯棒性極不理想,這主要是因為在使用VGGFace2數(shù)據(jù)集學習FaceNet網(wǎng)絡模型時并沒有考慮光線等變化對圖像干擾的問題. (3)當測試樣本的光照方位角較小時,如subset 2,所有對比方法都取得了比較好的效果,識別準確率都在94%以上;隨著光照方位角逐漸增大,所有方法的準確率都出現(xiàn)了不同程度地下降. 從subset 2到subset 5,PCA、FaceNet和PCANet的識別率分別下降了約93%、60%和7.2%;而文中提出的PCANet_dense3下降幅度僅為2%,遠低于其他方法. 說明PCANet_dense3對于識別受嚴重光照變化影響的人臉圖像具有很好的魯棒性.
由公式(5)可知,每張輸入圖像最終得到的特征表示向量,其維度與網(wǎng)絡的卷積核個數(shù)和分塊個數(shù)B有關. 在上述實驗中,PCANet、PCANet_dense和PCANet_dense3這3種方法的卷積層都采用了相同的卷積核大小與個數(shù),輸出層分塊個數(shù)也相同. 然而,PCANet_dense3是3層結(jié)構,與2層結(jié)構的PCANet和PCANet_dense相比在總體上產(chǎn)生了更多的卷積核,因此,PCANet_dense3所提取的特征維數(shù)肯定大于后兩者. 本節(jié)將在AR數(shù)據(jù)集上進行實驗,以討論在最終特征維數(shù)盡量不變的情況下(相對于PCANet_dense)PCANet_dense3的性能. 在輸出層分塊個數(shù)相同的前提下,設PCANet(或PCANet_dense)網(wǎng)絡的2層濾波核個數(shù)分別為L1和L2,PCANet_dense3中每層濾波核個數(shù)分別為L3、L4和L5,若要保證PCANet_dense3的特征維數(shù)盡量不變只需滿足關系L1?(L3+1)L4+1且L2=L5即可. 設PCANet與PCANet_dense的參數(shù)為:L1=L2=8,因此PCANet_dense3的參數(shù)可為:L3=2,L4=2,L5=8. 實驗均在AR數(shù)據(jù)集上進行建模和訓練,相應的結(jié)果如表3 所示.
表3 維度限制下AR數(shù)據(jù)集的識別率Table 3 Recognition rates under dimensional constraints on AR dataset
從表3中的數(shù)據(jù)可知,降低每層的濾波核個數(shù)的確影響PCANet_dense3的性能,但相對于2層的PCANet和PCANet_dense,整體性能仍然有提升,這也說明了在不增加特征維數(shù)的情況下增加PCANet的層數(shù)對性能的提高是有效的. 另外,根據(jù)3種不同網(wǎng)絡的卷積核個數(shù)可以推算出,PCANet、PCANet_dense和PCANet_dense3最終所產(chǎn)生的特征維數(shù)是8∶9∶7,這說明PCANet_dense3實際是以偏低的維度取得了表3 中展現(xiàn)出的性能. 在實際應用中,可以考慮放寬特征維度限制,選擇合適的卷積核數(shù)以提高PCANet_dense3的性能.
本文在PCANet的基礎上,結(jié)合DenseNet的思想,通過融合不同層的特征提出了PCANet_dense模型. 該模型的核心是每個卷積層的輸入為前兩層輸出的級聯(lián)特征(當模型僅有2層時,第2層輸入為第1層輸出與輸入層的級聯(lián)特征),因此相對于PCANet而言,該模型使用了更多的特征信息. 本文分別構建了2層和3層PCANet_dense模型,并在人臉識別任務上進行了實驗. 實驗結(jié)果表明,所提出的模型均取得了較好的效果,尤其當測試圖像包含嚴重遮擋或受到嚴重光照干擾的時候,文中的方法獲得了比PCANet、FaceNet等更為魯棒和穩(wěn)定的性能.