李仁旺,楊 柳,陳高曙,施 展
(1.浙江理工大學(xué) 機械與自動控制學(xué)院,浙江 杭州 310018;2.浙江理工大學(xué) 信息學(xué)院,浙江 杭州 310018;3.浙江中正智能科技有限公司,浙江 杭州 310061;4.浙江工業(yè)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,浙江 杭州 310023)
生物識別技術(shù)能夠依據(jù)生理特征或行為特征對人的身份進行識別驗證,包括面部識別、指紋識別、虹膜識別、聲音識別和筆跡識別等。生物識別技術(shù)因其便捷、快速和準(zhǔn)確等優(yōu)勢,已得到了廣泛應(yīng)用。在生物識別技術(shù)中,指紋識別憑借其成本低與技術(shù)成熟等優(yōu)勢,成為了最受歡迎的認證方式之一[1-3]。然而指紋識別容易受到偽造指紋的安全攻擊,且對于傳統(tǒng)的指紋識別系統(tǒng),偽造指紋欺騙指紋識別系統(tǒng)并不困難[4-5]。常見的偽造指紋可以由各種材料制成,例如樹脂、明膠和塑料等,在這些材料的基礎(chǔ)上加入導(dǎo)電膏使之具備導(dǎo)電性,偽造指紋還可以獲得更多欺騙指紋識別系統(tǒng)的特征,因此需要使用指紋活性檢測技術(shù)來保護指紋識別系統(tǒng)。指紋活性檢測可以分為基于硬件的方法和基于軟件的方法?;谟布姆椒梢酝ㄟ^增加硬件傳感器獲取更多真實手指的信息,例如手指溫度[6]、皮膚電導(dǎo)率[7]、氣味[8]、出汗?fàn)顩r[9]和脈搏血氧飽和度[10]等,這些信息雖然能夠更加準(zhǔn)確地判斷指紋活性,但是增加了額外的硬件設(shè)備,提高了系統(tǒng)的總成本,實際部署受限?;谲浖姆椒梢詮墨@取的指紋圖像中檢測指紋的特征信息,通過算法判斷指紋活性,不需要額外的硬件設(shè)備支持,同時隨著算法的更新可以很容易地進行更新迭代,因此筆者采用基于軟件的方法。基于軟件的方法一般從指紋圖像中提取手指的動態(tài)特征和靜態(tài)特征,識別真假指紋在這些特征上的細微差距,從而辨別出真實指紋與偽造指紋。指紋的動態(tài)特征包括出汗和皮膚變形等,這些一般都是復(fù)制品所不具備的特征,因此被用于檢測指紋活性。例如Marasco等[11]提出的一種指紋活性檢測方法可從單獨的指紋圖像中提取指紋形態(tài)和出汗?fàn)顩r等多個特征,在測試結(jié)果中表現(xiàn)出很高的魯棒性。Moon等[12]提出一種根據(jù)表面粗糙度進行檢測的方法,通過真假指紋在表面粗糙度上存在的差異,使用小波分析來提取特征,從而檢測指紋活性。Yuan等[13]首先通過多尺度構(gòu)建特征向量,然后使用主成分分析降低特征向量的維數(shù),最后使用支持向量機分類器進行模型訓(xùn)練,同樣取得了較好的表現(xiàn)。Sharma等[14]通過分析真假指紋脊谷結(jié)構(gòu)的微小細節(jié),構(gòu)建了一個13維的特征向量,使用支持向量機、隨機森林和梯度增強樹分類器的技術(shù),在LivDet 2009競賽的公開可用數(shù)據(jù)集上進行了測試,并取得了較好的表現(xiàn)。
指印是一種特殊的指紋,特指由手指蘸取油墨或印泥,在紙類介質(zhì)上按壓而成的指紋圖像。指印一般在商業(yè)合同和法律文書中用作個人身份的證明,在社會生活中起著至關(guān)重要的作用。指印的研究與一般指紋的研究存在差異,由于指印的特殊性,通過指印無法獲取手指溫度、皮膚導(dǎo)電率等諸多真實手指的特征,因此眾多基于硬件的方法都不適用。同時指印是通過手指按壓介質(zhì)產(chǎn)生的痕跡圖像,與掃描儀直接獲取的指紋圖像有所不同,導(dǎo)致利用傳統(tǒng)基于軟件的指紋活性檢測方法檢測指印活性的表現(xiàn)不佳。傳統(tǒng)的指紋活性檢測方法采用的特征通常是由研究者在訓(xùn)練前就設(shè)計完成的,預(yù)設(shè)特征的方法可以簡化運算,使得模型整體也更具可解釋性。然而指印圖像與指紋圖像存在差異,為指紋圖像預(yù)設(shè)的特征不完全適用于指印圖像,且預(yù)設(shè)特征會使得圖像所包含的有用信息未被完全使用,這些因素均會導(dǎo)致指紋活性方法在指印活性檢測方面達不到預(yù)期效果。傳統(tǒng)的指印檢測往往采用專家人工識別的方法,應(yīng)用范圍受專家人數(shù)的限制,準(zhǔn)確率也非常依賴于專業(yè)人員的熟練度[15]。近年來,越來越多新的技術(shù)被應(yīng)用到指紋的活性檢測中,其中深度神經(jīng)網(wǎng)絡(luò)展現(xiàn)出了優(yōu)秀的性能,為指印活性檢測提供了借鑒思路。例如Nogueira等[16]證實使用深度卷積神經(jīng)網(wǎng)絡(luò)進行指紋活性檢測具有良好的準(zhǔn)確性,并在2015年的指紋活性檢測大賽上獲得第1名。目前已經(jīng)有許多基于深度卷積神經(jīng)網(wǎng)絡(luò)的指紋活性檢測模型,例如LeNet-5[17],VGG[18]和GoogLeNet[19]等,且在準(zhǔn)確率方面表現(xiàn)良好。傳統(tǒng)深度神經(jīng)網(wǎng)絡(luò)模型雖然準(zhǔn)確率高,但存在參數(shù)量大、內(nèi)存占用高和模型復(fù)雜的問題,對設(shè)備的運算能力有較高的要求,在嵌入式設(shè)備等運算能力受限的場景中應(yīng)用困難。因此,筆者構(gòu)建了一種輕量級的神經(jīng)網(wǎng)絡(luò)模型,在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上取消了全連接層,用分通道的殘差結(jié)構(gòu)替代卷積層,大幅減少了模型的參數(shù)量。實驗結(jié)果表明:筆者構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型在準(zhǔn)確率上表現(xiàn)優(yōu)于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型,同時模型參數(shù)量大幅度減少,方便移植到嵌入式設(shè)備中。
指印活性檢測方法包含圖像預(yù)處理和構(gòu)建神經(jīng)網(wǎng)絡(luò)模型等步驟。首先,對采集到的原始圖像進行數(shù)據(jù)增強,從少量的原始圖像中獲取大量的可用圖像,增加數(shù)據(jù)集的數(shù)據(jù)量,從而提高模型訓(xùn)練的性能,同時也能起到防止過擬合的作用;然后,構(gòu)建應(yīng)用于嵌入式設(shè)備中的輕量級神經(jīng)網(wǎng)絡(luò)模型,對傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型進行改進,精簡網(wǎng)絡(luò)結(jié)構(gòu),降低網(wǎng)絡(luò)復(fù)雜度,減少參數(shù)量,使其能夠適用于運算能力受限的嵌入式設(shè)備場景;最后,將圖像數(shù)據(jù)導(dǎo)入筆者構(gòu)建的輕量級神經(jīng)網(wǎng)絡(luò)模型中,訓(xùn)練并得到最終的判別模型。
以600 dpi的分辨率對帶有指印的紙張文件進行掃描,獲得原始圖像。在原始圖像上,選取200×200的窗口大小,以10像素的步長進行上下左右滑動,通過滑動窗口的方式生成多張固定大小的指印圖像。對進一步處理得到的指印圖像進行旋轉(zhuǎn),分別按90°,180°,270° 3個角度旋轉(zhuǎn)生成3張不同的圖像,再對生成的圖像進行翻轉(zhuǎn)操作,增加可用的圖像數(shù)量。
在采用滑動窗口的策略時,從單張原始圖像中可獲取的可用圖像數(shù)計算式為
(1)
式中:N為生成的可用圖像數(shù);Oh,Ow分別為原始圖像的像素高度和像素寬度;Eh,Ew分別為窗口的像素高度和像素寬度;Δh,Δw分別為滑動窗口在高度和寬度上的滑動步長。
筆者采集的原始圖像大小為500×300,依據(jù)式(1)計算可得:采用滑動窗口策略后可用圖像數(shù)為341,在此基礎(chǔ)上對圖像進行旋轉(zhuǎn)和翻轉(zhuǎn)操作,最終可用圖像數(shù)為341×4×2=2 728,即通過單張原始圖像可生成2 728張可用圖像。通過這一系列數(shù)據(jù)增強的方法,在有限的原始圖像基礎(chǔ)上生成大量可用的圖像,可以提高神經(jīng)網(wǎng)絡(luò)泛化能力,有效防止模型過擬合。
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)在處理二分類任務(wù)時,首先會對導(dǎo)入的圖像進行一系列卷積池化操作;然后通過全連接層;最后在Softmax輸出層得到2個數(shù)值,即判斷真?zhèn)蔚母怕省9P者對傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進行修改,取消全連接層,采用純卷積的結(jié)構(gòu),大幅度減少了模型的參數(shù)量,精簡了網(wǎng)絡(luò)結(jié)構(gòu)。
為了有效降低網(wǎng)絡(luò)的復(fù)雜度,在深入分析各類網(wǎng)絡(luò)結(jié)構(gòu)、復(fù)雜度的基礎(chǔ)上,采用由Gao等[20]提出的殘差結(jié)構(gòu)Res2Net,并對其進行改進,進一步降低網(wǎng)絡(luò)的復(fù)雜度,減小網(wǎng)絡(luò)規(guī)模。在該殘差結(jié)構(gòu)中,特征圖像經(jīng)過1×1的卷積層后通道數(shù)調(diào)整為64,按每16個通道分為1組的策略將特征圖像分為4組,第1組的特征圖像不作處理,其余組的特征圖像分別經(jīng)過3×3的卷積層以及1×1的卷積層,然后對其進行混合,最后全部通道的特征圖像經(jīng)過1×1的卷積層調(diào)整通道數(shù)后輸出,殘差結(jié)構(gòu)如圖1所示。
圖1 分通道殘差結(jié)構(gòu)示意圖Fig.1 The image of sub-channel residual structures
對殘差結(jié)構(gòu)的參數(shù)量進行分析,傳統(tǒng)卷積層的參數(shù)量計算式為
Pnum=Kh×Kw×Cin×Cout+Cout
(2)
式中:Pnum為卷積層的總參數(shù)量;Kh為卷積核高度;Kw為卷積核寬度;Cin為卷積層輸入的特征通道數(shù);Cout為卷積層輸出的特征通道數(shù)。
由式(2)可知:當(dāng)卷積核大小不變、輸入特征通道數(shù)與輸出特征通道數(shù)相同時,卷積層的參數(shù)量會隨著特征圖像通道數(shù)的增加而平方增長,因此減少特征圖像通道數(shù)可以有效減少參數(shù)量,對特征圖像進行分組處理就是一個有效降低參數(shù)量的解決方案。
筆者提出的殘差結(jié)構(gòu)中,先采用1×1的卷積層將大的通道數(shù)轉(zhuǎn)化為64個通道,然后進一步分為4組,每組只有16個通道,通過降低組內(nèi)的通道數(shù)可大幅度降低整體的參數(shù)量。假定特征圖像的輸入通道數(shù)量為256,輸出通道數(shù)同樣為256,那么傳統(tǒng)卷積層中的參數(shù)量為256×256×9+256=590 080,而如果采用筆者提供的分通道卷積殘差結(jié)構(gòu)代替卷積層,那么該殘差結(jié)構(gòu)所需的參數(shù)量為256×64×1+64+(16×16×9+16)×3+(16×16×1+16)×2+64×256×1+256=40 592,可以看到使用分通道卷積殘差結(jié)構(gòu)將明顯降低整體參數(shù)量,僅為原有參數(shù)量的6.88%。
為提高殘差結(jié)構(gòu)的表達能力,在分通道卷積殘差結(jié)構(gòu)的基礎(chǔ)上采用混合的策略,分組后第3組的特征圖像會與通過卷積層后的第2組特征圖像混合,同樣第4組的特征圖像會與通過卷積層后的第3組特征圖像混合,這增加了各通道之間的信息傳遞能力,提高了殘差結(jié)構(gòu)整體的性能。對該殘差結(jié)構(gòu)進行分析,考慮到殘差塊在參數(shù)全置零時應(yīng)當(dāng)輸出為零,以保證經(jīng)過殘差結(jié)構(gòu)處理后特征圖像不發(fā)生改變,而原殘差結(jié)構(gòu)在混合時采用直接連接,這使得參數(shù)全置零時第2,3組的輸出不為零,影響殘差結(jié)構(gòu)的性能。筆者采用該殘差結(jié)構(gòu)的同時對其結(jié)構(gòu)進行改進,采用1×1的卷積層取代原有的直接連接,這使得殘差結(jié)構(gòu)能夠較好地實現(xiàn)不改變輸入這一特性,同時添加的改進部分參數(shù)量極少,不影響整體參數(shù)量級,并且1×1的卷積層實現(xiàn)了數(shù)據(jù)的更多運算可能,從而使得殘差結(jié)構(gòu)具有更好的性能。
為避免過擬合,在卷積層后添加BN層與Leaky ReLU層,其中BN層可以減小訓(xùn)練數(shù)據(jù)分布的差異,而Leaky ReLU層與一般的ReLU層相比區(qū)別在于可以輸出負值,保證了在任意輸入情況下都存在輸出,可以擁有更多的輸出可能,同時還能避免使用傳統(tǒng)ReLU層可能出現(xiàn)的神經(jīng)元無法激活的問題。考慮到殘差結(jié)構(gòu)應(yīng)當(dāng)可以輸出負值的殘差,在最后輸出的卷積層處調(diào)整了BN層與Leaky ReLU層的位置,將其置于卷積層之前,以增大殘差結(jié)構(gòu)最終輸出值的值域范圍,有助于提高殘差結(jié)構(gòu)的性能。
筆者采用的殘差結(jié)構(gòu)對輸入通道數(shù)和輸出通道數(shù)沒有要求,同時結(jié)構(gòu)也與神經(jīng)網(wǎng)絡(luò)其余部分無關(guān),因此該殘差結(jié)構(gòu)可替換任意卷積層,在任意神經(jīng)網(wǎng)絡(luò)中都可以使用,起到降低參數(shù)量的作用。筆者構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型中用該殘差結(jié)構(gòu)代替了大部分的3×3卷積層,從而實現(xiàn)減少總參數(shù)量、構(gòu)建輕量級神經(jīng)網(wǎng)絡(luò)模型的目標(biāo)。
對卷積層與全連接層之間參數(shù)量的區(qū)別進行分析,卷積層由于采用卷積核實現(xiàn)了共享權(quán)重,其參數(shù)量與卷積核大小、輸入輸出通道數(shù)相關(guān),而與特征圖像的尺寸無關(guān),因此其參數(shù)量與全連接層參數(shù)量相比更小。假定輸入通道數(shù)為3,輸出通道數(shù)為64,特征圖像尺寸為32×32,則全連接層的參數(shù)量為3×30×30×64×30×30=155 520 000,而采用卷積層的參數(shù)量為64×64×9+64=36 928,可以看到全連接層的參數(shù)量遠遠大于卷積層所需的參數(shù)量,這會導(dǎo)致運算緩慢、過擬合以及對設(shè)備運算能力要求過高等問題。因此筆者構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型中取消了全連接層,采用了純卷積的結(jié)構(gòu),降低了參數(shù)量,實現(xiàn)了網(wǎng)絡(luò)結(jié)構(gòu)的輕量化。
筆者構(gòu)建的輕量級神經(jīng)網(wǎng)絡(luò)模型整體由Conv1~6層、Res層、Maxpool層和SoftMax層等組成(表1),整個網(wǎng)絡(luò)說明如下:1) Conv1,Conv2均為卷積核大小為3×3的卷積層,其作用是向下采樣,生成合適通道數(shù)的特征圖;2) Conv3,Conv4,Conv5均為卷積核大小為1×1的卷積層,其作用是調(diào)整通道數(shù)量;3) Res層為筆者提出的分通道殘差結(jié)構(gòu),在網(wǎng)絡(luò)中多個殘差結(jié)構(gòu)疊加使用,確保網(wǎng)絡(luò)具有足夠的深度;4) Maxpool層為最大池化層,可將特征圖的大小縮小一半,降低運算量;5) Conv6為卷積核大小為1×1的卷積層,其作用是調(diào)整通道數(shù)量,與Maxpool層搭配使用,從而取代全連接層,降低整體的參數(shù)量;6) SoftMax層將最終輸出轉(zhuǎn)換為概率;7) 所有卷積層均采用了BN層與Leaky ReLU層,用于防止梯度消失。
表1 神經(jīng)網(wǎng)絡(luò)完整結(jié)構(gòu)Table 1 The complete structure of neural network
目前尚沒有公開可用的指印數(shù)據(jù)集,為此筆者建立了一個指紋數(shù)據(jù)集用于實驗分析,以驗證筆者模型的有效性。筆者建立的數(shù)據(jù)集包含兩個子數(shù)據(jù)集:無筆跡簽名的指紋圖像集和有筆跡簽名的指紋圖像集。無筆跡簽名的指紋通過真實手指和偽造指紋膜蘸取印油或印泥后在不同材質(zhì)的紙張上按壓而成。有筆跡簽名的指紋獲取過程則在上述操作的基礎(chǔ)上增加一個步驟,即使用不同類型的筆在紙張上指紋按壓的部位簽字,從而模擬現(xiàn)實生活中簽字并按壓指紋生成的紙張文件。所有原始圖像均采用文檔掃描儀掃描獲取,掃描儀型號為愛普生Perfection V12,分辨率為600 dpi。在原始圖像的基礎(chǔ)上,選取200×200的窗口大小,以10像素的步長進行上下左右滑動,生成多張固定大小的指印圖像。
指紋數(shù)據(jù)集中的圖像分別來自真實手指與偽造指紋膜。偽造指紋膜的材料包括導(dǎo)電硅膠、硅色木膠、透明硅膠和白乳膠,部分采集到的指紋如圖2所示,圖2中上下兩行分別為無簽名指印和有簽名指印,從左到右依次為真手指、導(dǎo)電硅膠、膚色硅膠、透明硅膠和白乳膠。訓(xùn)練集和測試集以4∶1的比例進行劃分,具體數(shù)量如表2所示。為了保護指紋提供者的隱私,所有指紋僅用于算法研究。
圖2 部分指紋示意圖Fig.2 A partial fingermark image
表2 指紋數(shù)據(jù)集Table 2 Fingermark data set
本研究實驗環(huán)境硬件配置:Intel core i7-7700HQ處理器,內(nèi)存為16 GB,GPU型號NVIDIA GeForce GTX 1060,筆者算法實現(xiàn)基于版本號為1.1.0的Pytorch框架。采用批量為64個樣本的隨機梯度下降來訓(xùn)練模型,初始學(xué)習(xí)率設(shè)置為0.001,衰減指數(shù)為0.9。
在筆者模型中,設(shè)置多個評價指標(biāo),包含樣本(真實指紋和偽造指紋)的正確分類率、模型的參數(shù)文件大小以及模型的計算量大小。其中:樣本的正確分類率即識別準(zhǔn)確率,在本研究中設(shè)定檢測閾值為0.5,模型計算的概率結(jié)果大于閾值則視為分類為真實指紋,反之則視為分類為偽造指紋。
將訓(xùn)練數(shù)據(jù)集中的指印圖像順序打亂,重新隨機排列后導(dǎo)入神經(jīng)網(wǎng)絡(luò)模型進行訓(xùn)練。每個指印圖像都為其設(shè)置相應(yīng)的標(biāo)簽:真實指印的標(biāo)簽設(shè)置為1,偽造指印的標(biāo)簽設(shè)置為0。通過訓(xùn)練后,神經(jīng)網(wǎng)絡(luò)模型可以依據(jù)輸入的測試圖像計算出識別概率,將計算的概率結(jié)果與預(yù)先設(shè)定的檢測閾值相比較,即可對輸入的測試圖像進行分類。所有實驗均采用這一流程進行。
首先,對筆者模型的性能進行評估,在無筆跡簽名的指紋圖像集測試樣本和有筆跡簽名的指紋圖像集測試樣本上分別進行測試,測試結(jié)果如表3所示。由表3可知:筆者模型在不同的子數(shù)據(jù)集上都取得了令人滿意的識別準(zhǔn)確率,說明筆者模型在準(zhǔn)確率方面具有良好的性能表現(xiàn)。
表3 筆者模型在不同數(shù)據(jù)測試集上的識別準(zhǔn)確率Table 3 The recognition accuracy of this model on different data test sets
然后,測試筆者模型在面對不同材質(zhì)的偽造指紋攻擊時的性能表現(xiàn),結(jié)果如表4所示。由表4可知:在常見的幾種不同材質(zhì)偽造指紋攻擊中,筆者模型都達到了良好的識別檢測效果,說明筆者模型對常見的偽造指紋均具有很高的識別準(zhǔn)確率,能有效抵御大部分的偽造指紋安全攻擊。
表4 筆者模型在不同材質(zhì)偽造指紋上的識別準(zhǔn)確率Table 4 The accuracy of this model on different material fingerprint identification
最后,將筆者模型與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型的性能進行對比,選取AlexNet和Resnet34作為對比模型,分別從準(zhǔn)確率、參數(shù)量和參數(shù)文件大小3個方面進行比較,測試結(jié)果如表5所示。由表5可知:筆者模型的識別準(zhǔn)確率比AlexNet和Resnet34傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型更高,同時筆者模型在參數(shù)量和參數(shù)文件大小方面明顯有著更好的表現(xiàn)。結(jié)果表明:筆者模型改進了網(wǎng)絡(luò)結(jié)構(gòu)、縮小了整體的網(wǎng)絡(luò)規(guī)模、大大減少了參數(shù)量、降低了運算量,能以較小的參數(shù)量達到較高的性能。
表5 筆者模型與其他模型的性能比較Table 5 The performance comparison between this model and other models
指印在司法鑒定中起著重要的作用,而偽造指紋攻擊則會對其安全性造成巨大威脅,因此采用指印活性檢測技術(shù)是一種重要的防御手段。目前,在指印活性檢測上表現(xiàn)較好的深度神經(jīng)網(wǎng)絡(luò)存在參數(shù)量大和模型結(jié)構(gòu)復(fù)雜等缺陷,對設(shè)備的運算能力要求高。為解決這一問題,筆者提出了一種指印活性檢測方法。在傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上進行修改,取消了全連接層,加入了分通道的殘差結(jié)構(gòu)代替原有的卷積層,構(gòu)建了一個可應(yīng)用于嵌入式設(shè)備的輕量級神經(jīng)網(wǎng)絡(luò)模型。筆者建立了數(shù)據(jù)集,并在建立的數(shù)據(jù)集上進行了實驗分析。實驗結(jié)果表明:筆者模型的準(zhǔn)確率高于其他模型,整體的準(zhǔn)確率達到了96.22%,同時筆者模型在網(wǎng)絡(luò)結(jié)構(gòu)大小上表現(xiàn)更加優(yōu)秀,能以較小的參數(shù)量達到較高的性能。未來,將進一步研究如何優(yōu)化網(wǎng)絡(luò)的結(jié)構(gòu)以及提高模型的識別準(zhǔn)確性。