張國祥,孫運(yùn)卓
(湖北師范大學(xué) 物理與電子科學(xué)學(xué)院, 湖北 黃石 435002)
隨著社會(huì)的發(fā)展和科技的進(jìn)步,基準(zhǔn)數(shù)據(jù)庫的增大、高級網(wǎng)絡(luò)結(jié)構(gòu)和各種損失函數(shù)[1]的廣泛使用,基于深度學(xué)習(xí)的人臉識別技術(shù)取得了顯著的進(jìn)步,在某些基準(zhǔn)數(shù)據(jù)庫上的識別能力已經(jīng)超越了人類[2]。廣泛的應(yīng)用與日常生活中掃臉支付,火車站、機(jī)場入站口通過人臉識別進(jìn)站乘車等。然而,現(xiàn)實(shí)生活中的人臉識別時(shí)復(fù)雜的光線環(huán)境,不同姿態(tài)與表情,使得采集到的人臉圖像與注冊圖像存在極大差異,直接導(dǎo)致類內(nèi)距離大于類間距離,從而影響最終識別結(jié)果。
通過光照歸一化處理可以對不同光照圖像中人臉的灰度進(jìn)行歸一[3],可以較好地解決光照問題。因此,文中提出基于局部二值模式(LBP)的卷積神經(jīng)網(wǎng)絡(luò)(CNN)人臉識別方法,定義為LBP-HE-CNN首先利用直方圖均衡化[4](HistogramEqualization)將原人臉圖片進(jìn)行預(yù)處理,增強(qiáng)整幅圖片的動(dòng)態(tài)范圍,提高局部對比度而不影響整體,然后利用旋轉(zhuǎn)不變的LBP算子[5]對光照不敏感的優(yōu)點(diǎn)對處理過的圖片進(jìn)行特征采集,同時(shí)減輕CNN特征提取壓力,最后將采集到的特征作為CNN網(wǎng)絡(luò)[6]的輸入進(jìn)行訓(xùn)練,修改每一個(gè)卷積層卷積核數(shù)量和網(wǎng)絡(luò)層數(shù),得到本研究的最優(yōu)模型。通過與LBP、CNN、Fisherface[7]等方法在3組人臉數(shù)據(jù)集上進(jìn)行分類對比實(shí)驗(yàn),驗(yàn)證該方法的合理性。
直方圖均衡是一種增強(qiáng)圖像對比度(ImageContrast)的方法,其主要思想是將一副圖像的直方圖分布通過累積分布函數(shù)變成近似均勻分布,從而增強(qiáng)圖像的對比度。
(1)
其中ci指當(dāng)前灰度級經(jīng)過累積分布函數(shù)映射后的值,n是圖像中像素的總和,nj是當(dāng)前灰度級的像素個(gè)數(shù)。原圖像與灰度均衡化后的圖像分別如圖1、圖2所示。
圖1 原圖像
圖2 直方圖均衡化后圖像
原圖像和直方圖均衡化后圖像灰度直方圖如圖3、圖4所示:
圖3 原圖像灰度直方圖
圖4 直方圖均衡化后圖像灰度直方圖
對比圖1和圖2,可得經(jīng)過直方圖均衡化后的人臉圖像陰影部分得到了改善,整體圖像更亮,對比度更高,面部特征更清晰。對比圖3和圖4,可以看出原圖像灰度直方圖灰度分布范圍更集中,而均衡化后的圖像灰度分布更寬,更均勻。由此可得直方圖均衡化在一定程度上改善了光照問題。
LBP是較為常用的特征提取算法之一,其主要優(yōu)點(diǎn)為對光照有較強(qiáng)的魯棒性,原理簡單,容易實(shí)現(xiàn)。計(jì)算原理為給定一個(gè)3×3的正方形,以中心點(diǎn)的像素值為基準(zhǔn),將其鄰域八個(gè)點(diǎn)的像素值分別和其進(jìn)行比較,若大于中心點(diǎn)像素值則為1,反之則為零,將得到的值進(jìn)行順序組合得到一個(gè)8位二進(jìn)制編碼,轉(zhuǎn)為十進(jìn)制就是該點(diǎn)的LBP值。
(2)
(3)
式中,ic表示中心像素(xc,yc)的灰度值,in表示中心像素8鄰域內(nèi)的像素灰度值。圖5為8鄰域的LBP計(jì)算示例,將鄰域值和中心值進(jìn)行比較得到的二進(jìn)制編碼為10110110(順時(shí)針排列),LBP值為182.
圖5 LBP計(jì)算示例
傳統(tǒng)LBP方法在面對旋轉(zhuǎn)時(shí)魯棒性較低,因此選用圓形LBP算子用像素點(diǎn)的圓形鄰域來描述局部二進(jìn)制模式[8],這樣能夠增強(qiáng)對不同尺度的圖片進(jìn)行紋理結(jié)構(gòu)提取,如下面圖6所示。
圖6 圓形LBP算法鄰域
圖7 旋轉(zhuǎn)不變LBP算法的編碼方式
這樣可對于給定的中心點(diǎn)(xc,yc),其鄰域像素位置為(xp,yp),p∈P,(xp,yp)用如下公式計(jì)算:
(4)
其中,R是窗口半徑,p是采集的中心像素點(diǎn)周圍的第p個(gè)像素,P是采集的中心像素點(diǎn)周圍的像素點(diǎn)個(gè)數(shù)。由于不同的起點(diǎn)所產(chǎn)生的二進(jìn)制組合不同,得到的LBP值也各不相同,因此Maenpaa等人對傳統(tǒng)的LBP模式進(jìn)行了改進(jìn),提出了旋轉(zhuǎn)不變的LBP算子[9],對圓形鄰域進(jìn)行旋轉(zhuǎn)計(jì)算,對比此過程得到的每一組LBP值,將最小值作為該像素點(diǎn)的LBP值。
經(jīng)過以上的運(yùn)算后,旋轉(zhuǎn)不變LBP算法不僅擁有灰度不變,同時(shí)對圖像旋轉(zhuǎn)有了良好魯棒性。但由于計(jì)算過程中需要對每個(gè)像素點(diǎn)遍歷后進(jìn)行對比取最小值,因此面對較大數(shù)據(jù)量時(shí),該方法特征計(jì)算所需要的時(shí)間較長,識別效率較低。
卷積神經(jīng)網(wǎng)絡(luò)[9](Convolutionl Neurl Networks,CNN)[10]是一個(gè)具有層次結(jié)構(gòu)的多層感知器。如圖8所示:基礎(chǔ)的CNN網(wǎng)絡(luò)組成單元分別是輸入層、卷積層、激活層、池化層、全連接層以及輸出層。
圖8 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
卷積層的主要作用是對圖像進(jìn)行特征提取;激活函數(shù)的目的是增強(qiáng)原本線性數(shù)據(jù)的泛化能力,使之能擬合各種曲線。常用的有sigmod函數(shù)、tanh函數(shù)和relu函數(shù)[11~14],sigmod函數(shù)和tanh函數(shù)在一定程度上提高模型的非線性表達(dá)能力,但都存在梯度消失的情況。而relu函數(shù)不僅能解決梯度消失的問題且能大大提高模型的訓(xùn)練速度。因此本文選用relu函數(shù)作為激活函數(shù)。
池化層的目的是降低數(shù)據(jù)維度,該文采用最大池化方法,用給定區(qū)域內(nèi)的像素最大值代表該區(qū)域的整體特征,提高了計(jì)算效率;全連接層常見與最后一層,目的是把分布式特征映射到樣本標(biāo)記空間。全連接層的每一個(gè)節(jié)點(diǎn)的輸入是前幾層特征提取的結(jié)果值。添加損失函數(shù)是為了計(jì)算預(yù)測值的偏差大小,同時(shí)能夠與真實(shí)值對比,不斷調(diào)整網(wǎng)絡(luò)訓(xùn)練的方向,使之更貼近于理想值。
為了優(yōu)化損失函數(shù),提高模型對人臉特征的辨識能力,該文采用λ系數(shù)來平衡softmax損失函數(shù)與centerloss損失函數(shù)的方法,由文獻(xiàn)[15]結(jié)果知λ為0.03時(shí)不僅能夠提高人臉類間差距,還能夠降低人臉類內(nèi)差距。
(5)
人臉識別系統(tǒng)主要分為三大結(jié)構(gòu):人臉錄入、人臉訓(xùn)練以及人臉識別。其整體的結(jié)構(gòu)邏輯步驟如圖9示,在人臉識別系統(tǒng)首界面上選擇視頻識別或者人臉錄入后,便可進(jìn)行對應(yīng)選擇的后續(xù)訓(xùn)練模式和人臉識別模式。
圖9 人臉識別系統(tǒng)的整體邏輯步驟
首先,需要輸入錄入者的身份信息。信息錄入成功后,調(diào)用本地?cái)z像頭進(jìn)行人像采集。在此過程中,系統(tǒng)會(huì)將圖像轉(zhuǎn)換成灰度圖進(jìn)而簡化矩陣,這將有利于提高運(yùn)算的速度,進(jìn)而更快地識別出圖像中的人臉。隨后將抓拍檢測到的人臉圖像,并與錄入的信息保存到數(shù)據(jù)庫中。完成錄入后便可執(zhí)行訓(xùn)練模式或繼續(xù)進(jìn)行人臉錄入。
開始訓(xùn)練前,系統(tǒng)將采樣的100張人臉圖像作為數(shù)據(jù)進(jìn)行圖像訓(xùn)練。若收集到的圖像少于100張,則訓(xùn)練失敗。若被抓拍的人臉達(dá)到所對應(yīng)的要求,則系統(tǒng)將進(jìn)行訓(xùn)練模式。首先加載抓取成功的圖像并進(jìn)行灰度轉(zhuǎn)化,將圖像矩陣簡化,從而提高圖像的計(jì)算能力;再將其經(jīng)過直方圖均衡化調(diào)節(jié)灰度分布,增強(qiáng)圖像對比度。然后通過旋轉(zhuǎn)不變的LBP算法對數(shù)據(jù)進(jìn)行特征采集,將采集到的特征送入CNN網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,使機(jī)器更好地理解圖像的人臉,從而強(qiáng)化機(jī)器對人臉的識別。最后將訓(xùn)練的結(jié)果保存在相應(yīng)的文件中。
系統(tǒng)通過調(diào)用攝像頭對識別者進(jìn)行人臉匹配,識別出畫面中的人臉后,再將其人臉圖像與數(shù)據(jù)庫中的人臉信息進(jìn)行匹配,進(jìn)而確定其身份。若識別成功,則用綠框框選人臉并標(biāo)注出識別者的姓名;若識別失敗,則用紅框框選人臉并標(biāo)注為陌生人臉。
該文的實(shí)驗(yàn)數(shù)據(jù)集為三組不同人臉數(shù)據(jù),共同測試該文所提出的方法可行性與有效性。實(shí)驗(yàn)在PC機(jī)上進(jìn)行,配置為Intel Core i5-9500、Intel(R)UHD Graphies630和8 GB內(nèi)存。Colorferet包含了1 000多人的10 000多張照片,每個(gè)人包括了不同表情、光照、姿態(tài)和年齡的照片。FERET數(shù)據(jù)是美國軍方的FERET人臉數(shù)據(jù)庫,共1 400幅圖片。包括200個(gè)人,每人7幅,對應(yīng)不同的姿態(tài),表情和光照條件,圖像大小80×80.ORL數(shù)據(jù)是由英國劍橋的Olivetti研究實(shí)驗(yàn)室創(chuàng)建,共包含40個(gè)不同人的400張圖像,圖像大小92×112,此數(shù)據(jù)集下包含40個(gè)目錄,每個(gè)目錄下有10張圖像,每個(gè)目錄表示一個(gè)不同的人。三個(gè)數(shù)據(jù)集部分?jǐn)?shù)據(jù)樣例如圖10所示。
圖10 Colorferet數(shù)據(jù)、FERET數(shù)據(jù)、ORL數(shù)據(jù)樣例
網(wǎng)絡(luò)模型的性能影響因素主要包括學(xué)習(xí)率、卷積層中卷積核的個(gè)數(shù)和網(wǎng)絡(luò)層數(shù)等重要的網(wǎng)絡(luò)參數(shù)。合適的學(xué)習(xí)率能夠提高反向傳播時(shí)的模型的收斂速度,提高模型訓(xùn)練速度。根據(jù)已有研究[16],在實(shí)驗(yàn)中將Colorferet數(shù)據(jù)、FERET數(shù)據(jù)及ORL數(shù)據(jù)對應(yīng)的CNN 模型的學(xué)習(xí)率分別設(shè)置為0.001、0.01及0.001.
1)卷積核數(shù)量。第一步對比同一層中卷積核數(shù)量的改變是否會(huì)對模型訓(xùn)練結(jié)果產(chǎn)生影響,同時(shí)確定最優(yōu)卷積核數(shù)量。實(shí)驗(yàn)開始預(yù)設(shè)CNN模型的網(wǎng)絡(luò)結(jié)構(gòu)為2個(gè)卷積層、1個(gè)最大池化層和1個(gè)全連接層相組合,將第1個(gè)卷積層卷積核數(shù)量預(yù)設(shè)為4、8、16、32,逐一測試模型的識別準(zhǔn)確率,實(shí)驗(yàn)結(jié)果如表1所示,3組數(shù)據(jù)集中最優(yōu)測試結(jié)果加粗表示。從表1中可知,不同數(shù)據(jù)集最優(yōu)卷積核數(shù)量不同,因此后續(xù)模型測試時(shí)分別把Colorferet數(shù)據(jù)對應(yīng)的模型第一層卷積核數(shù)量設(shè)為8、FERET數(shù)據(jù)為16、ORL數(shù)據(jù)為8.
表1 不同卷積核數(shù)識別的準(zhǔn)確率
2)網(wǎng)絡(luò)層數(shù)。第二步調(diào)整不同網(wǎng)絡(luò)層數(shù),對比得出使模型分類精度最優(yōu)網(wǎng)絡(luò)層數(shù),在第一步的基礎(chǔ)上設(shè)定每組數(shù)據(jù)集卷積層所對應(yīng)的最優(yōu)卷積核的數(shù)量,改變網(wǎng)絡(luò)層數(shù)為3、5、7,測試此時(shí)模型的識別準(zhǔn)確率,3組網(wǎng)絡(luò)層數(shù)的測試結(jié)果如表2所示。從表2中可得,網(wǎng)絡(luò)層數(shù)并非越深越好,隨著網(wǎng)絡(luò)模型加深梯度消失的問題可能隨之而來,影響模型的識別準(zhǔn)確率,因此統(tǒng)一將Colorferet數(shù)據(jù)、FERET數(shù)據(jù)及ORL數(shù)據(jù)對應(yīng)的模型網(wǎng)絡(luò)層數(shù)設(shè)定為3.
表2 不同網(wǎng)絡(luò)層數(shù)識別的準(zhǔn)確率
為了更客觀地考量LBP-EH-CNN方法的識別準(zhǔn)確度,實(shí)驗(yàn)設(shè)計(jì)三種不同方法與之對照。將LBP-EH-CNN與傳統(tǒng)LBPH算法做對比,驗(yàn)證該算法識別準(zhǔn)確率。與傳統(tǒng)CNN做對比,驗(yàn)證旋轉(zhuǎn)不變LBP算子的特征采集能力。為了對比直方圖均衡化是否降低了模型對光照的敏感性,添加LBP-CNN作為對比方法之一。同時(shí)還增加了Fisherface與SVM經(jīng)典分類算法進(jìn)行對比。評價(jià)指標(biāo)采用20組人臉測試實(shí)驗(yàn)得到的準(zhǔn)確率取平均值。
表3為不同方法在三組數(shù)據(jù)集上的識別準(zhǔn)確率,最優(yōu)準(zhǔn)確率用加粗?jǐn)?shù)字表示,由表可得LBP-EH-CNN的識別準(zhǔn)確率要明顯優(yōu)于其余5種方法。綜上所述,實(shí)驗(yàn)結(jié)論為:
表3 不同方法識別的準(zhǔn)確率
1)LBP-CNN的組合識別準(zhǔn)確率比單獨(dú)LBP或CNN高,證明LBP與CNN組合后,能夠提高對模型的分類精度。而LBP-EH-CNN方法在復(fù)雜光線下的識別準(zhǔn)確率比LBP-CNN更高,證明了直方圖均衡化后的圖像可以提高模型對光照的魯棒性。
2)LBP-EH-CNN方法在三個(gè)數(shù)據(jù)集上的識別準(zhǔn)確率均優(yōu)于其他對比方法。對于Colorferet數(shù)據(jù),LBP-EH-CNN的平均識別準(zhǔn)確率為99.71%,相比LBP-CNN提高3.3%,相比LBP與CNN分別提高6.5%、5.86%;針對FERET數(shù)據(jù),LBP-EH-CNN的平均識別準(zhǔn)確率為99.78%,相比LBP-CNN提高2.7%,相比LBP與CNN分提高6.6%、5.86%;針對ORL數(shù)據(jù),LBP-EH-CNN的平均識別準(zhǔn)確率為99.15%,相比LBP-CNN提高2.3%,相比LBP與CNN或分別提高6.3%、7.02%.
本文提出一種復(fù)雜光線下的局部二值模式的人臉識別方法,利用直方圖均衡化后改善灰度分布,降低了光照對特征提取的影響,旋轉(zhuǎn)不變LBP對光照、姿態(tài)等變化同樣具有良好的魯棒性,將LBP采集到的特征作為CNN網(wǎng)絡(luò)的輸入進(jìn)行訓(xùn)練。結(jié)合certerloss與softmax作為損失函數(shù)不斷調(diào)整訓(xùn)練方向。在Colorferet、FERET、ORL數(shù)據(jù)集上進(jìn)行驗(yàn)證,由實(shí)驗(yàn)結(jié)果可知,該方法對復(fù)雜光線下的人臉特征能做到有效提取,增強(qiáng)了對光照的魯棒性,優(yōu)于現(xiàn)有其他方法。下一步將提高旋轉(zhuǎn)LBP的計(jì)算效率,深入改進(jìn)特征提取方法。