李仁旺,楊 柳,陳高曙,施 展
(1.浙江理工大學 機械與自動控制學院,浙江 杭州 310018;2.浙江理工大學 信息學院,浙江 杭州 310018;3.浙江中正智能科技有限公司,浙江 杭州 310061;4.浙江工業大學 計算機科學與技術學院,浙江 杭州 310023)
生物識別技術能夠依據生理特征或行為特征對人的身份進行識別驗證,包括面部識別、指紋識別、虹膜識別、聲音識別和筆跡識別等。生物識別技術因其便捷、快速和準確等優勢,已得到了廣泛應用。在生物識別技術中,指紋識別憑借其成本低與技術成熟等優勢,成為了最受歡迎的認證方式之一[1-3]。然而指紋識別容易受到偽造指紋的安全攻擊,且對于傳統的指紋識別系統,偽造指紋欺騙指紋識別系統并不困難[4-5]。常見的偽造指紋可以由各種材料制成,例如樹脂、明膠和塑料等,在這些材料的基礎上加入導電膏使之具備導電性,偽造指紋還可以獲得更多欺騙指紋識別系統的特征,因此需要使用指紋活性檢測技術來保護指紋識別系統。指紋活性檢測可以分為基于硬件的方法和基于軟件的方法。基于硬件的方法可以通過增加硬件傳感器獲取更多真實手指的信息,例如手指溫度[6]、皮膚電導率[7]、氣味[8]、出汗狀況[9]和脈搏血氧飽和度[10]等,這些信息雖然能夠更加準確地判斷指紋活性,但是增加了額外的硬件設備,提高了系統的總成本,實際部署受限。基于軟件的方法可以從獲取的指紋圖像中檢測指紋的特征信息,通過算法判斷指紋活性,不需要額外的硬件設備支持,同時隨著算法的更新可以很容易地進行更新迭代,因此筆者采用基于軟件的方法。基于軟件的方法一般從指紋圖像中提取手指的動態特征和靜態特征,識別真假指紋在這些特征上的細微差距,從而辨別出真實指紋與偽造指紋。指紋的動態特征包括出汗和皮膚變形等,這些一般都是復制品所不具備的特征,因此被用于檢測指紋活性。例如Marasco等[11]提出的一種指紋活性檢測方法可從單獨的指紋圖像中提取指紋形態和出汗狀況等多個特征,在測試結果中表現出很高的魯棒性。Moon等[12]提出一種根據表面粗糙度進行檢測的方法,通過真假指紋在表面粗糙度上存在的差異,使用小波分析來提取特征,從而檢測指紋活性。Yuan等[13]首先通過多尺度構建特征向量,然后使用主成分分析降低特征向量的維數,最后使用支持向量機分類器進行模型訓練,同樣取得了較好的表現。Sharma等[14]通過分析真假指紋脊谷結構的微小細節,構建了一個13維的特征向量,使用支持向量機、隨機森林和梯度增強樹分類器的技術,在LivDet 2009競賽的公開可用數據集上進行了測試,并取得了較好的表現。
指印是一種特殊的指紋,特指由手指蘸取油墨或印泥,在紙類介質上按壓而成的指紋圖像。指印一般在商業合同和法律文書中用作個人身份的證明,在社會生活中起著至關重要的作用。指印的研究與一般指紋的研究存在差異,由于指印的特殊性,通過指印無法獲取手指溫度、皮膚導電率等諸多真實手指的特征,因此眾多基于硬件的方法都不適用。同時指印是通過手指按壓介質產生的痕跡圖像,與掃描儀直接獲取的指紋圖像有所不同,導致利用傳統基于軟件的指紋活性檢測方法檢測指印活性的表現不佳。傳統的指紋活性檢測方法采用的特征通常是由研究者在訓練前就設計完成的,預設特征的方法可以簡化運算,使得模型整體也更具可解釋性。然而指印圖像與指紋圖像存在差異,為指紋圖像預設的特征不完全適用于指印圖像,且預設特征會使得圖像所包含的有用信息未被完全使用,這些因素均會導致指紋活性方法在指印活性檢測方面達不到預期效果。傳統的指印檢測往往采用專家人工識別的方法,應用范圍受專家人數的限制,準確率也非常依賴于專業人員的熟練度[15]。近年來,越來越多新的技術被應用到指紋的活性檢測中,其中深度神經網絡展現出了優秀的性能,為指印活性檢測提供了借鑒思路。例如Nogueira等[16]證實使用深度卷積神經網絡進行指紋活性檢測具有良好的準確性,并在2015年的指紋活性檢測大賽上獲得第1名。目前已經有許多基于深度卷積神經網絡的指紋活性檢測模型,例如LeNet-5[17],VGG[18]和GoogLeNet[19]等,且在準確率方面表現良好。傳統深度神經網絡模型雖然準確率高,但存在參數量大、內存占用高和模型復雜的問題,對設備的運算能力有較高的要求,在嵌入式設備等運算能力受限的場景中應用困難。因此,筆者構建了一種輕量級的神經網絡模型,在傳統神經網絡模型的基礎上取消了全連接層,用分通道的殘差結構替代卷積層,大幅減少了模型的參數量。實驗結果表明:筆者構建的神經網絡模型在準確率上表現優于傳統神經網絡模型,同時模型參數量大幅度減少,方便移植到嵌入式設備中。
指印活性檢測方法包含圖像預處理和構建神經網絡模型等步驟。首先,對采集到的原始圖像進行數據增強,從少量的原始圖像中獲取大量的可用圖像,增加數據集的數據量,從而提高模型訓練的性能,同時也能起到防止過擬合的作用;然后,構建應用于嵌入式設備中的輕量級神經網絡模型,對傳統的神經網絡模型進行改進,精簡網絡結構,降低網絡復雜度,減少參數量,使其能夠適用于運算能力受限的嵌入式設備場景;最后,將圖像數據導入筆者構建的輕量級神經網絡模型中,訓練并得到最終的判別模型。
以600 dpi的分辨率對帶有指印的紙張文件進行掃描,獲得原始圖像。在原始圖像上,選取200×200的窗口大小,以10像素的步長進行上下左右滑動,通過滑動窗口的方式生成多張固定大小的指印圖像。對進一步處理得到的指印圖像進行旋轉,分別按90°,180°,270° 3個角度旋轉生成3張不同的圖像,再對生成的圖像進行翻轉操作,增加可用的圖像數量。
在采用滑動窗口的策略時,從單張原始圖像中可獲取的可用圖像數計算式為
(1)
式中:N為生成的可用圖像數;Oh,Ow分別為原始圖像的像素高度和像素寬度;Eh,Ew分別為窗口的像素高度和像素寬度;Δh,Δw分別為滑動窗口在高度和寬度上的滑動步長。
筆者采集的原始圖像大小為500×300,依據式(1)計算可得:采用滑動窗口策略后可用圖像數為341,在此基礎上對圖像進行旋轉和翻轉操作,最終可用圖像數為341×4×2=2 728,即通過單張原始圖像可生成2 728張可用圖像。通過這一系列數據增強的方法,在有限的原始圖像基礎上生成大量可用的圖像,可以提高神經網絡泛化能力,有效防止模型過擬合。
傳統的卷積神經網絡在處理二分類任務時,首先會對導入的圖像進行一系列卷積池化操作;然后通過全連接層;最后在Softmax輸出層得到2個數值,即判斷真偽的概率。筆者對傳統的卷積神經網絡結構進行修改,取消全連接層,采用純卷積的結構,大幅度減少了模型的參數量,精簡了網絡結構。
為了有效降低網絡的復雜度,在深入分析各類網絡結構、復雜度的基礎上,采用由Gao等[20]提出的殘差結構Res2Net,并對其進行改進,進一步降低網絡的復雜度,減小網絡規模。在該殘差結構中,特征圖像經過1×1的卷積層后通道數調整為64,按每16個通道分為1組的策略將特征圖像分為4組,第1組的特征圖像不作處理,其余組的特征圖像分別經過3×3的卷積層以及1×1的卷積層,然后對其進行混合,最后全部通道的特征圖像經過1×1的卷積層調整通道數后輸出,殘差結構如圖1所示。

圖1 分通道殘差結構示意圖Fig.1 The image of sub-channel residual structures
對殘差結構的參數量進行分析,傳統卷積層的參數量計算式為
Pnum=Kh×Kw×Cin×Cout+Cout
(2)
式中:Pnum為卷積層的總參數量;Kh為卷積核高度;Kw為卷積核寬度;Cin為卷積層輸入的特征通道數;Cout為卷積層輸出的特征通道數。
由式(2)可知:當卷積核大小不變、輸入特征通道數與輸出特征通道數相同時,卷積層的參數量會隨著特征圖像通道數的增加而平方增長,因此減少特征圖像通道數可以有效減少參數量,對特征圖像進行分組處理就是一個有效降低參數量的解決方案。
筆者提出的殘差結構中,先采用1×1的卷積層將大的通道數轉化為64個通道,然后進一步分為4組,每組只有16個通道,通過降低組內的通道數可大幅度降低整體的參數量。假定特征圖像的輸入通道數量為256,輸出通道數同樣為256,那么傳統卷積層中的參數量為256×256×9+256=590 080,而如果采用筆者提供的分通道卷積殘差結構代替卷積層,那么該殘差結構所需的參數量為256×64×1+64+(16×16×9+16)×3+(16×16×1+16)×2+64×256×1+256=40 592,可以看到使用分通道卷積殘差結構將明顯降低整體參數量,僅為原有參數量的6.88%。
為提高殘差結構的表達能力,在分通道卷積殘差結構的基礎上采用混合的策略,分組后第3組的特征圖像會與通過卷積層后的第2組特征圖像混合,同樣第4組的特征圖像會與通過卷積層后的第3組特征圖像混合,這增加了各通道之間的信息傳遞能力,提高了殘差結構整體的性能。對該殘差結構進行分析,考慮到殘差塊在參數全置零時應當輸出為零,以保證經過殘差結構處理后特征圖像不發生改變,而原殘差結構在混合時采用直接連接,這使得參數全置零時第2,3組的輸出不為零,影響殘差結構的性能。筆者采用該殘差結構的同時對其結構進行改進,采用1×1的卷積層取代原有的直接連接,這使得殘差結構能夠較好地實現不改變輸入這一特性,同時添加的改進部分參數量極少,不影響整體參數量級,并且1×1的卷積層實現了數據的更多運算可能,從而使得殘差結構具有更好的性能。
為避免過擬合,在卷積層后添加BN層與Leaky ReLU層,其中BN層可以減小訓練數據分布的差異,而Leaky ReLU層與一般的ReLU層相比區別在于可以輸出負值,保證了在任意輸入情況下都存在輸出,可以擁有更多的輸出可能,同時還能避免使用傳統ReLU層可能出現的神經元無法激活的問題。考慮到殘差結構應當可以輸出負值的殘差,在最后輸出的卷積層處調整了BN層與Leaky ReLU層的位置,將其置于卷積層之前,以增大殘差結構最終輸出值的值域范圍,有助于提高殘差結構的性能。
筆者采用的殘差結構對輸入通道數和輸出通道數沒有要求,同時結構也與神經網絡其余部分無關,因此該殘差結構可替換任意卷積層,在任意神經網絡中都可以使用,起到降低參數量的作用。筆者構建的神經網絡模型中用該殘差結構代替了大部分的3×3卷積層,從而實現減少總參數量、構建輕量級神經網絡模型的目標。
對卷積層與全連接層之間參數量的區別進行分析,卷積層由于采用卷積核實現了共享權重,其參數量與卷積核大小、輸入輸出通道數相關,而與特征圖像的尺寸無關,因此其參數量與全連接層參數量相比更小。假定輸入通道數為3,輸出通道數為64,特征圖像尺寸為32×32,則全連接層的參數量為3×30×30×64×30×30=155 520 000,而采用卷積層的參數量為64×64×9+64=36 928,可以看到全連接層的參數量遠遠大于卷積層所需的參數量,這會導致運算緩慢、過擬合以及對設備運算能力要求過高等問題。因此筆者構建的神經網絡模型中取消了全連接層,采用了純卷積的結構,降低了參數量,實現了網絡結構的輕量化。
筆者構建的輕量級神經網絡模型整體由Conv1~6層、Res層、Maxpool層和SoftMax層等組成(表1),整個網絡說明如下:1) Conv1,Conv2均為卷積核大小為3×3的卷積層,其作用是向下采樣,生成合適通道數的特征圖;2) Conv3,Conv4,Conv5均為卷積核大小為1×1的卷積層,其作用是調整通道數量;3) Res層為筆者提出的分通道殘差結構,在網絡中多個殘差結構疊加使用,確保網絡具有足夠的深度;4) Maxpool層為最大池化層,可將特征圖的大小縮小一半,降低運算量;5) Conv6為卷積核大小為1×1的卷積層,其作用是調整通道數量,與Maxpool層搭配使用,從而取代全連接層,降低整體的參數量;6) SoftMax層將最終輸出轉換為概率;7) 所有卷積層均采用了BN層與Leaky ReLU層,用于防止梯度消失。

表1 神經網絡完整結構Table 1 The complete structure of neural network
目前尚沒有公開可用的指印數據集,為此筆者建立了一個指紋數據集用于實驗分析,以驗證筆者模型的有效性。筆者建立的數據集包含兩個子數據集:無筆跡簽名的指紋圖像集和有筆跡簽名的指紋圖像集。無筆跡簽名的指紋通過真實手指和偽造指紋膜蘸取印油或印泥后在不同材質的紙張上按壓而成。有筆跡簽名的指紋獲取過程則在上述操作的基礎上增加一個步驟,即使用不同類型的筆在紙張上指紋按壓的部位簽字,從而模擬現實生活中簽字并按壓指紋生成的紙張文件。所有原始圖像均采用文檔掃描儀掃描獲取,掃描儀型號為愛普生Perfection V12,分辨率為600 dpi。在原始圖像的基礎上,選取200×200的窗口大小,以10像素的步長進行上下左右滑動,生成多張固定大小的指印圖像。
指紋數據集中的圖像分別來自真實手指與偽造指紋膜。偽造指紋膜的材料包括導電硅膠、硅色木膠、透明硅膠和白乳膠,部分采集到的指紋如圖2所示,圖2中上下兩行分別為無簽名指印和有簽名指印,從左到右依次為真手指、導電硅膠、膚色硅膠、透明硅膠和白乳膠。訓練集和測試集以4∶1的比例進行劃分,具體數量如表2所示。為了保護指紋提供者的隱私,所有指紋僅用于算法研究。

圖2 部分指紋示意圖Fig.2 A partial fingermark image

表2 指紋數據集Table 2 Fingermark data set
本研究實驗環境硬件配置:Intel core i7-7700HQ處理器,內存為16 GB,GPU型號NVIDIA GeForce GTX 1060,筆者算法實現基于版本號為1.1.0的Pytorch框架。采用批量為64個樣本的隨機梯度下降來訓練模型,初始學習率設置為0.001,衰減指數為0.9。
在筆者模型中,設置多個評價指標,包含樣本(真實指紋和偽造指紋)的正確分類率、模型的參數文件大小以及模型的計算量大小。其中:樣本的正確分類率即識別準確率,在本研究中設定檢測閾值為0.5,模型計算的概率結果大于閾值則視為分類為真實指紋,反之則視為分類為偽造指紋。
將訓練數據集中的指印圖像順序打亂,重新隨機排列后導入神經網絡模型進行訓練。每個指印圖像都為其設置相應的標簽:真實指印的標簽設置為1,偽造指印的標簽設置為0。通過訓練后,神經網絡模型可以依據輸入的測試圖像計算出識別概率,將計算的概率結果與預先設定的檢測閾值相比較,即可對輸入的測試圖像進行分類。所有實驗均采用這一流程進行。
首先,對筆者模型的性能進行評估,在無筆跡簽名的指紋圖像集測試樣本和有筆跡簽名的指紋圖像集測試樣本上分別進行測試,測試結果如表3所示。由表3可知:筆者模型在不同的子數據集上都取得了令人滿意的識別準確率,說明筆者模型在準確率方面具有良好的性能表現。

表3 筆者模型在不同數據測試集上的識別準確率Table 3 The recognition accuracy of this model on different data test sets
然后,測試筆者模型在面對不同材質的偽造指紋攻擊時的性能表現,結果如表4所示。由表4可知:在常見的幾種不同材質偽造指紋攻擊中,筆者模型都達到了良好的識別檢測效果,說明筆者模型對常見的偽造指紋均具有很高的識別準確率,能有效抵御大部分的偽造指紋安全攻擊。

表4 筆者模型在不同材質偽造指紋上的識別準確率Table 4 The accuracy of this model on different material fingerprint identification
最后,將筆者模型與傳統神經網絡模型的性能進行對比,選取AlexNet和Resnet34作為對比模型,分別從準確率、參數量和參數文件大小3個方面進行比較,測試結果如表5所示。由表5可知:筆者模型的識別準確率比AlexNet和Resnet34傳統神經網絡模型更高,同時筆者模型在參數量和參數文件大小方面明顯有著更好的表現。結果表明:筆者模型改進了網絡結構、縮小了整體的網絡規模、大大減少了參數量、降低了運算量,能以較小的參數量達到較高的性能。

表5 筆者模型與其他模型的性能比較Table 5 The performance comparison between this model and other models
指印在司法鑒定中起著重要的作用,而偽造指紋攻擊則會對其安全性造成巨大威脅,因此采用指印活性檢測技術是一種重要的防御手段。目前,在指印活性檢測上表現較好的深度神經網絡存在參數量大和模型結構復雜等缺陷,對設備的運算能力要求高。為解決這一問題,筆者提出了一種指印活性檢測方法。在傳統卷積神經網絡模型的基礎上進行修改,取消了全連接層,加入了分通道的殘差結構代替原有的卷積層,構建了一個可應用于嵌入式設備的輕量級神經網絡模型。筆者建立了數據集,并在建立的數據集上進行了實驗分析。實驗結果表明:筆者模型的準確率高于其他模型,整體的準確率達到了96.22%,同時筆者模型在網絡結構大小上表現更加優秀,能以較小的參數量達到較高的性能。未來,將進一步研究如何優化網絡的結構以及提高模型的識別準確性。