王欣宇,周穎玥,2,李佳陽,孫 蕾
(1. 西南科技大學(xué)信息工程學(xué)院,四川 綿陽 621010;2. 西南科技大學(xué)特殊環(huán)境機(jī)器人技術(shù)四川省重點(diǎn)實(shí)驗(yàn)室,四川 綿陽 621010)
相比于密碼、鑰匙、身份證等傳統(tǒng)身份鑒別信息,人體生物特征因具有“隨身攜帶”、隨時(shí)隨地可用、不易遺忘和丟失等優(yōu)點(diǎn),使得金融、安防、日常出勤管理、個(gè)人物品保管等領(lǐng)域更青睞于通過生物特征進(jìn)行個(gè)人身份識別與驗(yàn)證[1]。相比于指紋和人臉等外部特征,手指靜脈屬于人體內(nèi)部結(jié)構(gòu),不易受到外部環(huán)境的影響,并且靜脈識別屬于活體識別,難以被復(fù)制,其安全等級更高[2]。同時(shí),由于手指靜脈脈絡(luò)分布的隨機(jī)性,使得不同個(gè)體之間手指靜脈脈絡(luò)分布存在差異性,即使是雙胞胎的靜脈分布特征也不相同,這就奠定了手指靜脈用于身份識別的基礎(chǔ)。
影響手指靜脈識別系統(tǒng)精度的主要因素為:采集到的靜脈圖像質(zhì)量好壞以及靜脈圖像特征提取是否有效,二者均是為了保障手指靜脈圖像中的特征能充分提取與表達(dá)。傳統(tǒng)靜脈圖像特征提取方法主要是通過人工設(shè)計(jì)特征提取算法,例如:提取血管結(jié)構(gòu)的標(biāo)志性特征(線性形狀、曲率、細(xì)節(jié)點(diǎn)等)來代表靜脈脈絡(luò)的特征[3];利用單維或多維的主分量分析方法尋找靜脈圖像或所提特征的低維表達(dá)[4],從而有效縮減了特征向量的維數(shù);利用靜脈圖像全局或局部的統(tǒng)計(jì)信息來表達(dá)圖像的特征,以局部二值模式(Local Binary Pattern, LBP)為典型代表[5];另外,一些在計(jì)算機(jī)視覺上廣泛應(yīng)用的尺度不變特征提取技術(shù)(Scale Invariant Feature Transform, SIFT)也被用于靜脈特征表達(dá)[6]。
得益于神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展,近年來計(jì)算機(jī)視覺中許多問題都借助于神經(jīng)網(wǎng)絡(luò)模型來自適應(yīng)地捕獲目標(biāo)圖像的有效特征,已有學(xué)者將典型的卷積神經(jīng)網(wǎng)絡(luò)模型用于手指靜脈識別問題中[7-9]。例如:陶志勇[7]等在AlexNet模型基礎(chǔ)上提出了Im-AlexNet模型并用于手指靜脈識別中,有效減小了模型參數(shù)量,提高了識別準(zhǔn)確率。但由于分類網(wǎng)絡(luò)輸出節(jié)點(diǎn)固定,使得識別系統(tǒng)只能識別有限數(shù)量的人群。Tang[8]和Xie[9]將度量學(xué)習(xí)應(yīng)用于手指靜脈識別中,Tang利用預(yù)訓(xùn)練模型作為教師網(wǎng)絡(luò),輕量級網(wǎng)絡(luò)作為學(xué)生網(wǎng)絡(luò),將兩者結(jié)合為一個(gè)孿生網(wǎng)絡(luò)結(jié)構(gòu),構(gòu)造對比損失(Contrastive Loss,CL)量化樣本對之間的距離,訓(xùn)練出的網(wǎng)絡(luò)性能良好。Xie研究了影響網(wǎng)絡(luò)識別率的因素,通過三元組損失(Triplet Loss,TL)訓(xùn)練得到最優(yōu)的哈希模型,取得較好的手指靜脈識別結(jié)果。雖然度量學(xué)習(xí)解決了分類網(wǎng)絡(luò)結(jié)構(gòu)的問題,但是CL以及TL對訓(xùn)練樣本的利用率還不夠高,導(dǎo)致模型效果欠佳。
為了克服上述方法存在的缺陷,基于度量學(xué)習(xí)的方法,提出采用基于平滑平均準(zhǔn)確度損失函數(shù)(Smooth Average Precision Loss, Smooth-AP)來訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的思路,有效提高了網(wǎng)絡(luò)識別手指靜脈圖像的性能。并且,構(gòu)建了如下的識別系統(tǒng):個(gè)人身份注冊時(shí),利用訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)將輸入的手指靜脈圖像轉(zhuǎn)變?yōu)槠鋵?yīng)的特征向量并存儲,從而完成個(gè)人身份數(shù)據(jù)庫的構(gòu)建;當(dāng)識別個(gè)人身份時(shí),利用網(wǎng)絡(luò)提取待識別手指靜脈圖像的特征,并通過與個(gè)人身份數(shù)據(jù)庫中已有的特征進(jìn)行匹配得到待識別人的身份。另外,為了保證網(wǎng)絡(luò)輸入端的手指靜脈圖像質(zhì)量達(dá)到一定要求,在圖像采集后加入了基于神經(jīng)網(wǎng)絡(luò)的圖像質(zhì)量判斷模塊,進(jìn)一步增強(qiáng)了整個(gè)手指靜脈識別系統(tǒng)的穩(wěn)定性和可靠性。
手指中動脈與靜脈相互伴行,動脈血中的血紅蛋白攜帶氧分子,而靜脈血中的血紅蛋白不攜帶氧分子。利用靜脈血中失氧的血紅蛋白吸收近紅外光(波長范圍為690~980nm)、同時(shí)手指中的其它組織不吸收近紅外光的特性來采集靜脈圖像,在采集到的圖像中顯現(xiàn)的暗條紋即為手指靜脈脈絡(luò)[10]。
現(xiàn)有的手指靜脈圖像采集方式分為透射式、反射式和側(cè)射式。透射式采集中,近紅外光源和圖像傳感器分別位于手指兩側(cè),使得成像裝置是密閉式裝置,避免了外界環(huán)境光的干擾;同時(shí)近紅外光從手指一側(cè)垂直穿過,近紅外光的反射和散射現(xiàn)象更少,所以使用透射式采集比另外兩種方式采集到的手指靜脈信息更多。
通過采集設(shè)備獲得的手指靜脈圖像中含有手指以外的背景信息,這些信息對于手指靜脈識別來說是無用信息,因此需要將圖像中的手指區(qū)域,即感興趣區(qū)域(Regin of Interest, ROI)預(yù)先提取[11]。同時(shí),采集圖像過程中可能出現(xiàn)由于手指按壓力度不當(dāng)、擺放位置不當(dāng)而導(dǎo)致靜脈紋路不清晰或圖像整體灰度過暗或過亮的現(xiàn)象[12]。為了篩查質(zhì)量過差的手指靜脈圖像,為后續(xù)識別提供可靠的圖像源,在圖像采集后增加了圖像質(zhì)量判別模塊。
2.2.1 手指靜脈圖像ROI提取
手指與背景之間在手指邊緣處得以明顯區(qū)分,通過Sobel邊緣檢測算子生成手指邊緣模板,在模板中取手指上邊緣的最低點(diǎn)和下邊緣的最高點(diǎn)獲得與圖片長邊平行的兩條線段,在原圖中裁剪出線段之間的區(qū)域即得到手指靜脈ROI,具體流程如圖1所示。
圖1 手指靜脈圖ROI提取流程
2.2.2 手指靜脈圖像質(zhì)量判斷
現(xiàn)有的手指靜脈圖像質(zhì)量評估方法中,基于手動設(shè)計(jì)的圖像質(zhì)量特征提取并融合的方法以及基于靜脈紋路檢測靜脈支路點(diǎn)個(gè)數(shù)的方法存在一定的不足,例如:手動設(shè)計(jì)圖像質(zhì)量特征提取算法需要組合特征、篩選有效特征等實(shí)驗(yàn)測
試,算法魯棒性有局限,而靜脈紋路中的靜脈支路點(diǎn)實(shí)際上很難被準(zhǔn)確檢測。所以本文通過訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)來自適應(yīng)地捕獲目標(biāo)圖像的質(zhì)量判別特征,所選網(wǎng)絡(luò)為輕量化的MobileNet-V2[13]。通過設(shè)置分類層為2個(gè)輸出概率,使得網(wǎng)絡(luò)具有判別圖像質(zhì)量為“高質(zhì)量”和“低質(zhì)量”的功能。
為了有效地提取靜脈圖像的特征,選擇ResNet-50作為特征提取模型。ResNet-50隸屬于ResNet類網(wǎng)絡(luò),通過直接將輸入信息繞道傳到輸出,保證信息的完整性,使網(wǎng)絡(luò)只需要學(xué)習(xí)輸入與輸出差別的那一部分,簡化了學(xué)習(xí)目標(biāo)和難度。同時(shí)將原ResNet-50最后的全連接層節(jié)點(diǎn)數(shù)設(shè)置為特征向量的維數(shù)N(例如:N=512),使網(wǎng)絡(luò)的輸出能作為靜脈圖像的特征向量,并對該層進(jìn)行歸一化處理,不僅加快了損失值的計(jì)算,而且加快了后續(xù)特征匹配環(huán)節(jié)的速度。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 ResNet-50網(wǎng)絡(luò)提取手指靜脈特征示意圖
在訓(xùn)練網(wǎng)絡(luò)時(shí),受文獻(xiàn)[14]啟發(fā),利用一種新穎的Smooth-AP損失函數(shù)來訓(xùn)練ResNet-50,其優(yōu)點(diǎn)在于:Smooth-AP以優(yōu)化特征向量排序的方式,使得損失值由排序隊(duì)列中的全部特征向量計(jì)算得出,相比以往的度量損失如“Contrastive Loss、Triplet Loss”,Smooth-AP損失函數(shù)不僅增多了單次訓(xùn)練中可比較的樣本,而且使得訓(xùn)練過程中對各樣本的關(guān)注度也不同,有利于減少特異性樣本的干擾,使網(wǎng)絡(luò)能更好地學(xué)習(xí)到靜脈圖像的特征。基于Smooth-AP的損失函數(shù)具體計(jì)算如下:
(1)
(2)
(3)
(4)
其中I{·}為單位階躍函數(shù),即
(5)
顯然,當(dāng)神經(jīng)網(wǎng)絡(luò)對手指靜脈圖像的特征提取能力越強(qiáng)時(shí),與vq同類別的樣本被排序得越靠前,APq值則越大。
為了利用APq構(gòu)造損失函數(shù),并且避免單位階躍函數(shù)給網(wǎng)絡(luò)訓(xùn)練時(shí)的反向傳播帶來阻斷作用,使用平滑的Sigmoid函數(shù)來近似表達(dá)單位階躍函數(shù),即將I{·}變?yōu)?/p>
(6)
將式(6)和式(3)、式(4)代入式(2),得到APq的近似表達(dá),記為SmoothAPq,式子如下
(7)
基于SmoothAPq,定義神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的損失函數(shù)為
(8)
當(dāng)網(wǎng)絡(luò)訓(xùn)練到損失函數(shù)收斂趨近于0時(shí),SmoothAPq值趨近為1,意味著網(wǎng)絡(luò)所提取到的特征向量vq與其同類的特征向量更一致,換言之:網(wǎng)絡(luò)的特征提取能力越強(qiáng)。
綜合以上步驟,所構(gòu)建的手指靜脈識別系統(tǒng)如圖3所示。該系統(tǒng)的使用分為注冊和識別過程,注冊過程包含手指靜脈圖像采集、預(yù)處理、特征提取,識別階段包含注冊階段所有步驟并增加手指靜脈圖像特征匹配環(huán)節(jié)。個(gè)人身份注冊時(shí),利用訓(xùn)練好的ResNet-50將輸入的手指靜脈圖像轉(zhuǎn)變?yōu)槠鋵?yīng)的特征向量并存儲,從而完成個(gè)人身份數(shù)據(jù)庫的構(gòu)建。當(dāng)識別個(gè)人身份時(shí),待識別的圖像經(jīng)過ROI提取,輸入訓(xùn)練好的ResNet-50網(wǎng)絡(luò),得到特征向量vq,再將vq與注冊庫中的特征向量vi一一求取余弦相似度Scos
圖3 手指靜脈識別系統(tǒng)整體架構(gòu)圖
(9)
Scos越大說明二者之間的相似度越大,取使Scos為最大值的vi的類別作為匹配結(jié)果。
測試本文所提出的手指靜脈圖像識別算法涉及到對質(zhì)量判斷模型MobileNet-V2以及特征提取模型ResNet-50的訓(xùn)練與調(diào)試,所用的計(jì)算機(jī)配置如下:CPU為Intel i5-4200H,主頻為2.80GHz,系統(tǒng)為Windows64位系統(tǒng),顯卡為NVIDIA GeForce GTX 950M,運(yùn)行內(nèi)存為8G。采用Python 3.7作為編程語言,深度學(xué)習(xí)平臺選用PyTorch 1.6。
本文所選用的實(shí)驗(yàn)數(shù)據(jù)集是公開的山東大學(xué)手指靜脈數(shù)據(jù)集(SDUMLA)[15]、香港理工大學(xué)手指靜脈數(shù)據(jù)集(HKPolyU)[16]以及團(tuán)隊(duì)自建數(shù)據(jù)集(SWUST-FV)。SWUST-FV在采集時(shí),以團(tuán)隊(duì)學(xué)生為目標(biāo)對象,包含20位志愿者的左手和右手的食指、中指、無名指,對每根手指采集6張640×480分辨率的圖像,共120類。以上三個(gè)數(shù)據(jù)集基本信息總結(jié)如表1。
表1 實(shí)驗(yàn)數(shù)據(jù)集的基本信息
使用最常見的分類識別評價(jià)指標(biāo)對模型進(jìn)行驗(yàn)證,其中包括準(zhǔn)確率(Accuracy),受試者工作特征曲線(Receiver Operating Characteristic Curve, ROC),等誤率(Equal Error Rate, EER)。準(zhǔn)確率的公式定義為
(10)
其中TP代表同類的手指靜脈圖像匹配成功的個(gè)數(shù),FN代表同類的手指靜脈圖像匹配失敗的個(gè)數(shù),FP代表不同類的手指靜脈圖像匹配成功的個(gè)數(shù),TN代表不同類的手指靜脈圖像匹配失敗的個(gè)數(shù)。
通過設(shè)置不同的分類閾值得到相應(yīng)的假正例率(False Positive Rate, FPR)和真正例率(True Positive Rate, TPR),ROC曲線以FPR為橫坐標(biāo),TPR為縱坐標(biāo)擬合而成。ROC曲線包含的面積越大,模型性能更好。FPR和TPR的公式定義為:
(11)
(12)
EER代表FPR和假錯(cuò)誤率(False Negative Rate, FNR)相等時(shí)的值,FNR可由TPR計(jì)算得到,它們之間的關(guān)系為
(13)
所以在直角坐標(biāo)系下,經(jīng)過(0,1)和(1,0)兩點(diǎn)的直線與ROC曲線相交的點(diǎn)的橫坐標(biāo)為EER值,EER值越小,模型性能越好。
4.2.1 手指靜脈圖像質(zhì)量判斷模塊性能側(cè)試
該測試中,首先從SDUMLA、HKPolyU數(shù)據(jù)集中挑選“高質(zhì)量”與“低質(zhì)量”的手指靜脈圖像樣本,構(gòu)建了帶標(biāo)簽的質(zhì)量判斷數(shù)據(jù)集,用SDUMLA-QD、HKPolyU-QD表示。然而,其中“高質(zhì)量”與“低質(zhì)量”圖像數(shù)量并不均衡,后者數(shù)量太少,不利于網(wǎng)絡(luò)訓(xùn)練。為此,通過合成少數(shù)類過采樣技術(shù)(Synthetic Minority Over-sampling Technique,SMOTE)[17]擴(kuò)增低質(zhì)量圖像數(shù)量,使得低質(zhì)量圖像數(shù)量增加到與高質(zhì)量圖像數(shù)量近似的數(shù)量。然后設(shè)定MobileNet-V2模型輸出節(jié)點(diǎn)為2,采用交叉熵作為損失函數(shù)訓(xùn)練MobileNet-V2,模型優(yōu)化器為Adam。選取SDUMLA-QD、HKPolyU-QD中70%的圖像為訓(xùn)練集,30%的圖像為測試集。不管是用SDUMLA-QD還是HKPolyU-QD數(shù)據(jù)集進(jìn)行訓(xùn)練,MobileNet-V2對于“高、低質(zhì)量”的手指靜脈圖像的識別率都能達(dá)到92%以上。與文獻(xiàn)[18-21]中圖像質(zhì)量判斷方法作對比,其結(jié)果如表2所示。
表2 不同圖像質(zhì)量判斷算法在SDUMLA-QD和HKPolyU-QD測試集上的識別準(zhǔn)確率對比
由表2可知:本文所提出的基于MobileNet-V2的手指靜脈圖像質(zhì)量判斷算法在判別靜脈圖像質(zhì)量上具有優(yōu)勢效果。
4.2.2 損失函數(shù)對比試驗(yàn)
為了驗(yàn)證本文在特征提取網(wǎng)絡(luò)ResNet-50中所使用的基于Smooth-AP的損失函數(shù)的優(yōu)勢,對比了其它兩種不同的損失函數(shù)應(yīng)用于網(wǎng)絡(luò)訓(xùn)練的效果,它們是:對比損失函數(shù)(Contrastive Loss, CL)[8]和三元組損失函數(shù)(Triplet Loss, TL)[9]。先對SDUMLA、HKPolyU數(shù)據(jù)集通過隨機(jī)裁剪的方式進(jìn)行數(shù)據(jù)擴(kuò)增,然后以7:3的比例分別將這兩個(gè)數(shù)據(jù)集劃分為訓(xùn)練集和測試集。利用三種損失函數(shù)分別在SDUMLA和HKPolyU訓(xùn)練集上進(jìn)行訓(xùn)練,然后在測試集上比較ROC曲線以及EER值。首先在SDUMLA數(shù)據(jù)集上訓(xùn)練ResNet-50,并在SDUMLA和HKPolyU的測試集上評估的結(jié)果如圖4所示??梢?對利用Smooth-AP 損失函數(shù)訓(xùn)練出的網(wǎng)絡(luò)評估得到的ROC曲線包含了另外兩種損失函數(shù)得到的ROC曲線,同時(shí)EER值也是三者中最小的。這說明由基于Smooth-AP 損失函數(shù)訓(xùn)練的網(wǎng)絡(luò)能更好提取手指靜脈圖像特征,而且使用HKPolyU數(shù)據(jù)集進(jìn)行評估時(shí),不同損失的EER值均有升高,但基于Smooth-AP損失函數(shù)訓(xùn)練的模型升高得最少,說明采用基于Smooth-AP損失函數(shù)訓(xùn)練的網(wǎng)絡(luò)能進(jìn)行跨庫識別,并且遷移能力比由其它兩種損失訓(xùn)練出的網(wǎng)絡(luò)更強(qiáng)。
圖4 應(yīng)用不同的損失函數(shù)在SDUMLA上訓(xùn)練,再在SDUMLA和HKPolyU測試集上評估的ROC曲線
在HKPolyU數(shù)據(jù)集上訓(xùn)練ResNet-50,并在HKPolyU和SDUMLA的測試集上評估也能得到同樣的結(jié)論。
4.2.3 質(zhì)量判斷算法對于識別性能的作用測試
為了驗(yàn)證本文質(zhì)量判斷算法聯(lián)合特征提取算法的有效性,對比SDUMLA和HKPolyU不進(jìn)行質(zhì)量篩選和進(jìn)行質(zhì)量篩選后,EER值的差距,如圖5所示。其中Q+S代表識別系統(tǒng)利用了質(zhì)量判斷算法和特征提取算法,S代表識別系統(tǒng)只利用了特征提取算法,SDtrain、SDval代表模型訓(xùn)練和驗(yàn)證是基于SDUMLA數(shù)據(jù)集,HKtrain、HKval代表模型訓(xùn)練和驗(yàn)證是基于HKPolyU數(shù)據(jù)集??梢?經(jīng)過質(zhì)量評估后,不管是在SDUMLA數(shù)據(jù)集還是HKPolyU數(shù)據(jù)集上得到的EER值都有下降,這表明本文提出的先進(jìn)行圖像質(zhì)量評價(jià)與篩選,再提取特征與匹配有助于提升識別系統(tǒng)性能。
圖5 特征提取結(jié)合質(zhì)量評價(jià)與不結(jié)合質(zhì)量評價(jià)的等誤率比較
4.2.4 不同手指靜脈圖像識別算法的對比試驗(yàn)
為了測試本文所提出的手指靜脈圖像識別算法的性能,選取了文獻(xiàn)[22、23、13、24]方法做對比實(shí)驗(yàn)。文獻(xiàn)[22]提出一種SVDMM方法進(jìn)行監(jiān)督學(xué)習(xí)與分類,文獻(xiàn)[23]使用Gabor+LBP算子進(jìn)行手指靜脈識別,文獻(xiàn)[9]提出使用卷積神經(jīng)網(wǎng)絡(luò)以及哈希離散監(jiān)督進(jìn)行編碼的手指靜脈識別技術(shù),文獻(xiàn)[24]基于VGG-16進(jìn)行手指靜脈識別。利用這4種識別算法與本文算法對SDUMLA和HKPolyU數(shù)據(jù)集中的圖像進(jìn)行識別,結(jié)果如表3所示。從性能指標(biāo)來看,本文所提出的識別算法不管是在SDUMLA還是在HKPolyU上均達(dá)到了最優(yōu)的性能。
表3 不同識別方法的比較
4.2.5 系統(tǒng)集成與測試
將所設(shè)計(jì)的手指靜脈圖像識別方法進(jìn)行系統(tǒng)集成,并利用前面所描述的自建數(shù)據(jù)集SWUST-FV進(jìn)行系統(tǒng)性能測試。具體測試過程為:把該數(shù)據(jù)集中的每根
手指看作一類,將每類圖像分為三等份,以其中的兩份構(gòu)成注冊人圖像庫,另外一份構(gòu)成待識別圖像庫。將三等分的手指靜脈圖像集表示為A、B、C,使其交叉構(gòu)成注冊人圖像庫和待識別圖像庫,經(jīng)過特征提取和特征匹配后得到相應(yīng)組合下的識別率,并且得到平均識別率為99.30%,如表4所示。
表4 在自建數(shù)據(jù)庫上的交叉測試結(jié)果
本文針對手指靜脈圖像采集過程中可能出現(xiàn)“低質(zhì)量”圖像以及識別過程中特征表達(dá)不準(zhǔn)確、特征提取算法復(fù)雜等問題,在手指靜脈識別系統(tǒng)中增加了圖像質(zhì)量判斷的模塊,并提出了基于Smooth-AP損失函數(shù)的特征提取網(wǎng)絡(luò)模型,提高了系統(tǒng)的識別性能。通過在公開數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),證明所提方法能顯著提高手指靜脈識別精度,同時(shí)在進(jìn)行跨庫識別時(shí),其特征提取的遷移性能相比其它損失函數(shù)訓(xùn)練的模型要更好。