周洪成 ,韋 靜,2,牛 犇
1.金陵科技學(xué)院 電子信息工程學(xué)院,江蘇 南京 211169;2.鹽城工學(xué)院 機械工程學(xué)院,江蘇 鹽城 224002
唇紋除了作為身份識別工具和法庭證據(jù)外,還可以用于刑事偵查,作為生物特征識別信息的來源[1]。唇紋特征信息豐富,包括直線型、曲線型、分叉型、網(wǎng)狀型和不規(guī)則型等紋理特征,而且唇紋隱蔽性好,不易被復(fù)制和仿造,具有唯一性、永久性和穩(wěn)定性的特點,是人類身份識別的重要生物特征。唇紋識別作為新興的生物特征識別技術(shù),與其他的生物識別技術(shù)相比具有識別率高、識別時間短、用戶接受度高、非接觸式采集等優(yōu)勢[2]。
在科學(xué)技術(shù)不斷創(chuàng)新和發(fā)展的背景下,唇紋識別技術(shù)得到了快速發(fā)展,國內(nèi)外學(xué)者相繼提出了唇紋識別算法。Bhattacharjee 等[3]提出了一種統(tǒng)計分析方法,將測試樣本數(shù)據(jù)集和參考樣本數(shù)據(jù)集與閾值進(jìn)行比較和匹配,獲得了96%的識別率。Wrobel等[4]通過提取嘴唇截面進(jìn)行比較的方法來進(jìn)行唇紋識別,對45張唇紋圖像進(jìn)行實驗得到85.1%的識別率。2015 年Wrobel 等[5]又提出基于唇紋分叉分析的識別方法,在120 張唇紋數(shù)據(jù)集上獲得了77%的識別率。許穎[2]提出基于改進(jìn)Gabor特征提取的唇紋識別方法。2018年Wro?bel 等[6]引入唇紋皺紋分析,建立基于唇紋皺紋模式的分類識別,在350 張唇紋圖像上得到了92.73%的識別率。Sandhya 等[7]構(gòu)建了基于機器學(xué)習(xí)算法的唇紋識別系統(tǒng),采用支持向量機、K 近鄰、集成分類器和神經(jīng)網(wǎng)絡(luò)等分類算法進(jìn)行實驗,最終集成分類器在120 張圖像數(shù)據(jù)集上取得了97%的識別率。上述識別算法雖已獲得了較好的識別效果,但算法中存在圖像預(yù)處理過程復(fù)雜、特征提取算法效率較低等問題,導(dǎo)致識別周期較長,識別率較低。
隨著信息技術(shù)的發(fā)展,深度學(xué)習(xí)逐漸受到廣大研究者的關(guān)注,卷積神經(jīng)網(wǎng)絡(luò)得到了快速發(fā)展,并成功地應(yīng)用于計算機視覺和自然語言處理等領(lǐng)域。近年來,基于卷積神經(jīng)網(wǎng)絡(luò)模型的圖像識別方法在各類生物特征識別領(lǐng)域都取得了較大的成功和快速的發(fā)展,如人臉識別[8]、掌紋識別[9]、指紋識別[10]、步態(tài)識別[11]等,所以將卷積神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于唇紋識別技術(shù)領(lǐng)域是未來研究的重點。
卷 積 神 經(jīng) 網(wǎng) 絡(luò)(convolutional neural net?works, CNN)是一種包含卷積運算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)包括卷積層、池化層和全連接層。作為深度學(xué)習(xí)代表算法之一,卷積神經(jīng)網(wǎng)絡(luò)具有表征學(xué)習(xí)能力,能夠按照其階層結(jié)構(gòu)對輸入圖像進(jìn)行平移不變分類,并可應(yīng)用于圖像分類任務(wù)的圖像特征提取,不需要再設(shè)計復(fù)雜的算法提取特征。通過卷積運算操作進(jìn)行圖像特征提取,池化層進(jìn)行下采樣操作,降低數(shù)據(jù)維度,減少網(wǎng)絡(luò)訓(xùn)練參數(shù),全連接層則用于解決分類問題。
普通神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)包括輸入層、隱藏層和輸出層。隱藏層的神經(jīng)元之間以全連接的形式連接,這樣會造成網(wǎng)絡(luò)訓(xùn)練時參數(shù)量過多,網(wǎng)絡(luò)訓(xùn)練效果不佳。卷積神經(jīng)網(wǎng)絡(luò)與普通神經(jīng)網(wǎng)絡(luò)的區(qū)別在于,其卷積層中一個神經(jīng)元與部分的鄰層神經(jīng)元連接。卷積層具有局部連接和共享權(quán)值的特性,大幅降低了網(wǎng)絡(luò)訓(xùn)練參數(shù)。網(wǎng)絡(luò)訓(xùn)練過程中卷積核與輸入圖像的不同區(qū)域作卷積運算,通過學(xué)習(xí)得到合理的權(quán)值并不斷更新,最后提取到不同的特征信息。卷積層的核心是使用不同尺寸的卷積核對圖像進(jìn)行卷積運算,提取圖像中的特征信息,常用的卷積核大小包括3×3、5×5和7×7。
當(dāng)卷積層提取了圖像的特征信息,下一步是利用這些特征信息進(jìn)行分類識別。理論上能夠直接使用所提取的特征來訓(xùn)練分類器,但會面臨大量參數(shù)計算的挑戰(zhàn),并且網(wǎng)絡(luò)模型容易產(chǎn)生過擬合現(xiàn)象。為解決這個問題,在卷積層的下一層使用池化層處理卷積層的輸出結(jié)果,即計算圖像一個區(qū)域上某個特定特征的最大值或平均值,也稱下采樣操作。常見的池化操作包括平均值池化、最大值池化、重疊池化和空金字塔池化。由于最大值池化操作的表現(xiàn)較好,所以在深度卷積神經(jīng)網(wǎng)絡(luò)中使用較多,圖像區(qū)域的大小由下采樣窗口的大小決定,常用的有2×2和3×3。
通過使用若干個卷積層和池化層交替連接,完成特征提取的工作,使得卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練參數(shù)大幅度降低,不僅減少了參數(shù)計算量,還能夠縮短訓(xùn)練時間、提高特征的魯棒性。全連接層的作用是連接提取的所有特征,全連接層將卷積層和池化層提取特征后輸出的特征圖中的特征信息進(jìn)行整合,映射為固定長度的一維特征向量,該特征向量包含了輸入圖像的所有特征組合信息,再將特征向量輸出至分類器用于圖像分類。
實驗涉及多分類問題,因此所選取的分類器為Softmax,將其放在卷積神經(jīng)網(wǎng)絡(luò)的全連接層作為網(wǎng)絡(luò)結(jié)構(gòu)的一部分。Softmax 層的工作原理是針對全連接層輸出的一維向量x,計算該向量屬于第j類的概率值,再將其歸一化處理,保證概率值和為1,輸出結(jié)果即表示x屬于某一類的最大概率值。Softmax 函數(shù)如式(1)所示,將輸入圖像所屬類別的最大概率值輸出。
式中,xj表示分類器上一層輸出單元的輸出;j表示類別數(shù);k為總的類別數(shù);而fj(x)表示當(dāng)前元素的指數(shù)與所有元素指數(shù)和的比值。經(jīng)過公式計算將多分類輸出數(shù)值轉(zhuǎn)化為相對概率,計算出一維向量x屬于第j類的概率值,并在指數(shù)域歸一化映射為[0,1]之間的概率值,最大的概率值輸出就是所屬的類別。
2012 年Krizhevsky 等[12]提出的AlexNet 網(wǎng)絡(luò)在ImageNet 大賽上獲得了冠軍,使得深度學(xué)習(xí)受到了廣泛關(guān)注。為提升網(wǎng)絡(luò)模型的實用性,本文借鑒了該網(wǎng)絡(luò)結(jié)構(gòu),搭建一個輕量型卷積神經(jīng)網(wǎng)絡(luò)LNet-6(lightweight network-6),它包含6 個卷積層(C1~C6)、5 個池化層(M1~M6)、2 個全連接層(FC1、FC2)和一個Softmax 層。在卷積層與池化層之間添加了批量歸一化層,使訓(xùn)練和測試數(shù)據(jù)同分布,提高模型的泛化能力和穩(wěn)定性。使用ReLU激活函數(shù)解決梯度消失和梯度爆炸的問題,加快網(wǎng)絡(luò)的訓(xùn)練收斂速度,使用該網(wǎng)絡(luò)模型對唇紋數(shù)據(jù)集進(jìn)行特征提取和分類識別。與經(jīng)典的深度卷積神經(jīng)網(wǎng)絡(luò)模型相比,該模型具有參數(shù)計算量少、模型文件小和可移植性強等特點,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。卷積層和池化層交替連接構(gòu)成特征提取器,采用5×5大小的卷積核,池化層的下采樣窗口大小設(shè)置為2×2,通道數(shù)就是卷積核的數(shù)量,也是輸出結(jié)果特征圖的個數(shù)。該網(wǎng)絡(luò)結(jié)構(gòu)的各層詳細(xì)參數(shù)如表1所示。
表1 網(wǎng)絡(luò)各層結(jié)構(gòu)信息Table 1 Information on the structure of each layer of the network
圖1 LNet-6網(wǎng)絡(luò)結(jié)構(gòu)Fig. 1 LNet-6 network structure
基于LNet-6的唇紋識別算法詳細(xì)描述如下:
由于采集的圖像均是RGB 三通道的彩色圖像,卷積運算過程是多通道卷積,固定輸入圖像大小為244×244。
C1層使用8個5×5大小的卷積核,以步長為1滑動卷積核窗口計算,提取圖像的特征信息,得到8 張240×240 的特征圖;M1 層使用最大值池化操作對圖像特征信息進(jìn)行數(shù)據(jù)處理,降低網(wǎng)絡(luò)訓(xùn)練參數(shù),保證特征的尺度不變性,提高算法的性能和魯棒性,下采樣的窗口大小為2×2,以步長為2 從左往右、從上往下的順序滑動采樣窗口,該過程既不參與權(quán)值更新也不改變通道數(shù),輸出結(jié)果為8 個120×120 的特征圖;卷積層與池化層輸出特征圖的計算過程分別如下式所示:
式中,O1、O2分別表示卷積層和池化層的輸出大?。籌表示輸入大??;K為卷積核大??;P為填充值;S為步長;Ps則是下采樣窗口的大小。可以根據(jù)公式計算每一層的輸出結(jié)果。
C2層則使用32個5×5大小的卷積核,設(shè)置邊緣填充方式為Same,經(jīng)過卷積運算后輸出32 張120×120 的特征圖;M2 層的下采樣操作與M1 層處理過程相同,將卷積層的輸出結(jié)果映射為32個60×60 的特征圖;C3 層增加了卷積核數(shù)量,使用64 個5×5 大小的卷積核,以步長為1、邊緣填充方式為Same進(jìn)行卷積運算,輸出64個60×60的特征圖;M3層將卷積層提取的特征映射為64張30×30的特征圖。不斷增加卷積核數(shù)量,使網(wǎng)絡(luò)能夠提取更多的唇紋特征信息;C4 層和C5 層各項參數(shù)相同,都采用128 個5×5 大小的卷積核,輸出結(jié)果都是128 個30×30 的特征映射;M4 層則是以2×2的采樣窗口將卷積層的輸出結(jié)果轉(zhuǎn)換為64張15×15的特征圖;而C6層使用了64個卷積核,邊緣填充方式為Same,也得到了64 張15×15 的特征圖;通過M5層的下采樣操作,以步長為2滑動采樣窗口,將上一層輸出的特征圖映射為一個7×7×64的二維特征矩陣。
全連接層FC1將上一層輸出的二維特征矩陣平鋪成一個7×7×64 的一維特征向量,采用Drop?out方法[13]隨機丟棄了部分神經(jīng)元,使其中的一部分神經(jīng)元失活,將其中的2 048 個神經(jīng)元進(jìn)行一個全連接,即輸出特征圖單元數(shù)為2 048。FC2 層輸入的神經(jīng)元個數(shù)為2 048,輸出2 048 個特征圖單元。使用Softmax 分類器作為輸出層,將2 048個節(jié)點映射為40個分類標(biāo)簽對應(yīng)的概率值。
實驗基于TensorFlow 框架,在Pycharm 2020平臺上運行,所用硬件設(shè)備的系統(tǒng)版本為Win?dows 10,處理器則是Intel? Core(TM) i7-7500U,顯卡為NVIDIA GeForce 930MX,運行內(nèi)存8 GB。由于接觸式采集方法的用戶接受度較低,且獲取的圖像質(zhì)量取決于按壓力的大小和方向,易受人為因素影響,對識別結(jié)果會產(chǎn)生一定程度的影響。因此,實驗使用的唇紋數(shù)據(jù)集是由作者拍攝的,采用了非接觸式采集方式獲取圖像,每張圖像都是在自然光照條件下拍攝的。該數(shù)據(jù)集來自40 位志愿者,每名志愿者采集了30 張唇紋圖像,分別保存至帶有分類識別標(biāo)簽的文件夾下。通過簡單的數(shù)據(jù)增強方法如旋轉(zhuǎn)、加噪聲、鏡像、模糊和改變圖像亮度等,擴充該數(shù)據(jù)集。實驗采用了旋轉(zhuǎn)、鏡像、加入高斯噪聲和增加圖像亮度的方法,將1 200 張唇紋圖像擴充為8 000 張的數(shù)據(jù)集,每個志愿者都有200 張圖像。訓(xùn)練集將用于訓(xùn)練唇紋識別模型,而測試集則用于檢測模型的識別率。圖2 所示為該數(shù)據(jù)集的部分唇紋圖像。
圖2 部分唇紋圖像Fig. 2 Part of the lip-print images
實驗將8 000 張唇紋圖像按照一定的比例隨機地分為訓(xùn)練集和測試集,并在數(shù)據(jù)集輸入網(wǎng)絡(luò)訓(xùn)練前,統(tǒng)一將唇紋圖像等比例縮小為244×244大小。分類識別標(biāo)簽使用one-hot編碼格式,隨機打亂標(biāo)簽數(shù)據(jù)。然后將已建立的唇紋數(shù)據(jù)集輸入LNet-6網(wǎng)絡(luò),使用Adam 優(yōu)化算法訓(xùn)練,設(shè)置網(wǎng)絡(luò)中的各項參數(shù)進(jìn)行網(wǎng)絡(luò)模型訓(xùn)練和測試。數(shù)據(jù)集的劃分和學(xué)習(xí)率的選取都將會影響模型的識別效果,多次調(diào)整網(wǎng)絡(luò)的參數(shù)訓(xùn)練模型,并使用可視化函數(shù)繪制出測試集識別率的分布圖,觀察分析實驗結(jié)果以達(dá)到預(yù)期的識別率。因此,研究各因素對模型識別性能的影響,進(jìn)行了如下實驗。
3.2.1 學(xué)習(xí)率對模型識別性能的影響
在使用梯度下降算法優(yōu)化網(wǎng)絡(luò)訓(xùn)練時,學(xué)習(xí)率是一項重要的參數(shù),實驗將固定其他各項參數(shù),設(shè)置不同的學(xué)習(xí)率進(jìn)行訓(xùn)練,分析學(xué)習(xí)率對識別性能的影響,最終得到最佳的識別模型??紤]硬件設(shè)備的內(nèi)存資源,避免輸入數(shù)據(jù)太大降低訓(xùn)練速度,將數(shù)據(jù)集以8∶2 的比例隨機分為訓(xùn)練集和測試集。網(wǎng)絡(luò)訓(xùn)練迭代次數(shù)epoch 設(shè)置為50,批量大小batch 設(shè)置為80,即每一步將輸入80張圖片進(jìn)行訓(xùn)練,保持其他各項參數(shù)。選擇不同的學(xué)習(xí)率進(jìn)行訓(xùn)練,得到如表2所示的結(jié)果,訓(xùn)練時間為完成一次訓(xùn)練所用的時間,識別時間則是模型每一步預(yù)測的時間,識別率是使用模型預(yù)測的最后10次迭代的識別準(zhǔn)確率計算的平均值。
表2 不同學(xué)習(xí)率的識別結(jié)果Table 2 Recognition results with different learning rates
3.2.2 數(shù)據(jù)集的劃分對模型識別性能的影響
為研究數(shù)據(jù)集的劃分對模型的識別性能的影響,按照不同的比例劃分?jǐn)?shù)據(jù)集,分別使用常用的9∶1、8∶2 和7∶3 的比例劃分為訓(xùn)練集和測試集。學(xué)習(xí)率設(shè)置為0.000 1,訓(xùn)練次數(shù)為50,batch大小為80且保持其他參數(shù)不變,將不同大小的數(shù)據(jù)集輸入網(wǎng)絡(luò)進(jìn)行訓(xùn)練。識別率選取最后10 次預(yù)測準(zhǔn)確率的平均值,得到的實驗結(jié)果如表3所示。
表3 不同比例劃分?jǐn)?shù)據(jù)集的識別結(jié)果Table 3 Recognition results for different scaled data sets
3.2.3 比較不同卷積神經(jīng)網(wǎng)絡(luò)的識別效果
比較不同網(wǎng)絡(luò)結(jié)構(gòu)對唇紋數(shù)據(jù)集的識別性能,實驗選取了AlexNet、VGG[14]、GoogLeNet[15]和ResNet[16]等經(jīng)典的深度卷積神經(jīng)網(wǎng)絡(luò),使用9∶1劃分的數(shù)據(jù)集訓(xùn)練識別模型,將學(xué)習(xí)率的大小設(shè)置為0.000 1,訓(xùn)練次數(shù)為50,batch 大小為80,其余各項參數(shù)保持不變。輸入數(shù)據(jù)集進(jìn)行網(wǎng)絡(luò)模型訓(xùn)練,加載模型并輸入測試集識別,識別率選取最后10次預(yù)測準(zhǔn)確率的平均值,不同網(wǎng)絡(luò)的識別結(jié)果如表4所示。
表4 不同網(wǎng)絡(luò)的預(yù)測識別結(jié)果Table 4 Prediction recognition results of different networks
由表2 和表3 的實驗結(jié)果可以看出,不同的學(xué)習(xí)率對模型識別效果影響較大,當(dāng)使用較大學(xué)習(xí)率時,測試集的準(zhǔn)確率都有所下降,模型泛化能力較低且不穩(wěn)定;不同的比例劃分?jǐn)?shù)據(jù)集對模型的識別效果影響甚微,當(dāng)數(shù)據(jù)集以9∶1 比例劃分和學(xué)習(xí)率為0.000 1 時識別效果達(dá)到了最佳,在測試集數(shù)據(jù)中獲得了97.97%的平均識別率。
從表4 中可以看出,與其他深度卷積神經(jīng)網(wǎng)絡(luò)模型識別結(jié)果相比,基于LNet-6 網(wǎng)絡(luò)的訓(xùn)練和識別時間較短,模型文件較小,模型的平均識別率較高。通過比較不同網(wǎng)絡(luò)模型的識別效果發(fā)現(xiàn),深度卷積神經(jīng)網(wǎng)絡(luò)對唇紋數(shù)據(jù)集的識別率相對較低,且耗費了大量的計算資源,難以將模型應(yīng)用到實際的終端設(shè)備。
通過分析上述實驗結(jié)果發(fā)現(xiàn),基于LNet-6 的識別模型對唇紋圖像的識別效果較好,不僅簡化了唇紋圖像前期預(yù)處理過程,還避免了設(shè)計復(fù)雜的特征提取算法,結(jié)合特征提取和分類過程,實現(xiàn)了自動地提取唇紋特征和分類。
本文提出的基于卷積神經(jīng)網(wǎng)絡(luò)的唇紋識別算法,為唇紋識別技術(shù)提供了一種新的思路,與傳統(tǒng)的識別算法相比,其優(yōu)勢在于可以直接輸入采集的原始唇紋圖像,簡化了圖像預(yù)處理過程;實現(xiàn)了自動提取唇紋特征信息,克服了人工設(shè)計算法進(jìn)行特征提取困難的問題;通過網(wǎng)絡(luò)訓(xùn)練獲得輕量型唇紋識別模型,解決存儲空間的限制,滿足速度的要求,提升網(wǎng)絡(luò)的實用性,精簡復(fù)雜的深度學(xué)習(xí)模型使其能夠高效地在移動端運行;實驗設(shè)置了不同的學(xué)習(xí)率進(jìn)行網(wǎng)絡(luò)訓(xùn)練,分析和對比學(xué)習(xí)率對識別性能的影響,最終在測試集上獲得了97.97%的識別率。進(jìn)一步的研究將會從以下幾個方面進(jìn)行:(1)采集唇紋圖像,建立包含更多人的數(shù)據(jù)集;(2)結(jié)合遷移學(xué)習(xí)的優(yōu)勢,使用預(yù)訓(xùn)練模型對數(shù)據(jù)集分類識別,提升識別效率;(3)進(jìn)一步改進(jìn)算法和優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),提高模型的泛化能力和識別率,并使用高性能GPU 訓(xùn)練識別模型,縮短模型預(yù)測識別的時間。