江 璐, 趙 彤, 吳 敏
(1 中國科學(xué)院大學(xué)計(jì)算機(jī)與控制學(xué)院, 北京 101408; 2 中國科學(xué)院大學(xué)數(shù)學(xué)科學(xué)學(xué)院, 北京 100049;3 中國科學(xué)院大數(shù)據(jù)挖掘與知識管理重點(diǎn)實(shí)驗(yàn)室, 北京 100049)(2016年3月16日收稿; 2016年4月12日收修改稿)
在當(dāng)代社會,指紋識別技術(shù)已廣泛應(yīng)用于金融、 保險(xiǎn)、網(wǎng)絡(luò)、公共安全等各個領(lǐng)域.自動指紋識別系統(tǒng)(automatic fingerprint identification system, AFIS)利用指紋的唯一性、普遍性、便捷性和終身不變性等特點(diǎn)對個人身份進(jìn)行識別.各類AFIS在進(jìn)行指紋識別時(shí),待認(rèn)證的指紋通常需要與數(shù)據(jù)庫中大量的模板指紋進(jìn)行比對(通常是1∶N的比對).為減少比對次數(shù)較多帶來的巨大耗時(shí),AFIS往往會根據(jù)指紋紋型進(jìn)行指紋的快速篩選,即,待認(rèn)證的指紋只需與同一紋型的模板指紋進(jìn)行比對即可.隨著生物特征識別應(yīng)用的普及,各類指紋數(shù)據(jù)庫規(guī)模迅速增長,許多數(shù)據(jù)庫已突破千萬人級別,在海量數(shù)據(jù)庫中進(jìn)行指紋的快速索引顯得尤為重要,指紋紋型分類的算法直接影響到索引的可靠性.然而隨著數(shù)據(jù)庫的增大,同類紋型的差異逐漸變大、而不同紋型之間的界限變得模糊,使得該問題難度進(jìn)一步增大.特別是對于殘缺指紋和存在大量噪聲的指紋,對它們的紋型進(jìn)行判斷更為困難.因此,指紋紋型分類問題一直是該領(lǐng)域?qū)<覍W(xué)者關(guān)注的熱點(diǎn)和難點(diǎn).
Henry指紋分類體系[1]將指紋圖像按照其拓?fù)浣Y(jié)構(gòu)分成5種類型,即弓(arch),帳弓(tented arch),左旋(left loop),右旋(right loop)和斗(whorl).根據(jù)統(tǒng)計(jì),這5種指紋類型的自然分布比例分別為3.7%,2.9%,33.8%,31.7%和27.9%[2].由于弓和帳弓2類指紋所占比例非常低,在實(shí)際的AFIS中,通常將二者合為一類,即將指紋紋型分為弓,左旋,右旋和斗4類,如圖1所示.
圖1 4種常見的指紋類型Fig.1 Four common patterns of fingerptints
·斗型指紋有多條脊線具有在其中心旋轉(zhuǎn)至少360°的路徑.完整的斗型指紋通常包含2個三角點(diǎn),1個或2個中心點(diǎn).
·弓型指紋由弓形線組成,它的脊線從指紋的一端流入,在中間拱起一定的高度,并從相反的一端流出.完整的弓形指紋可能有一個(帳弓)或沒有(平弓)中心點(diǎn)和位于其下方的三角點(diǎn).
·左旋型指紋有多條脊線從左側(cè)流入,在中心轉(zhuǎn)彎后并從同一側(cè)流出.完整的左旋指紋包含1個中心點(diǎn)和位于中心點(diǎn)右下方的三角點(diǎn).
·右旋型指紋則有多條脊線從右側(cè)流入,在中心轉(zhuǎn)彎后并從同一側(cè)流出.完整的指紋包含1個中心點(diǎn)和位于中心點(diǎn)左下方的三角點(diǎn).
目前,國內(nèi)外己有的指紋紋型分類算法基本上都是基于以下某一種或多種特征的:脊線流[3-4]、方向場[4-5]、奇異點(diǎn)[4,6]和Gabor濾波響應(yīng)[3,7-8].在這些算法中,需要首先對相應(yīng)的特征進(jìn)行提取,然后再根據(jù)這些特征進(jìn)行紋型判斷.然而,這樣做只利用了指紋圖像中少量人工定義的特征信息,而大量的信息被丟棄.并且,紋型分類的準(zhǔn)確率將直接受相應(yīng)特征提取準(zhǔn)確度的制約.不幸的是,相應(yīng)特征的準(zhǔn)確性很難被保證,特別是對于有噪聲的低質(zhì)量指紋和未完全采集的殘缺指紋,相應(yīng)特征的提取會受到很大的影響.這將直接導(dǎo)致紋型的錯誤分類,進(jìn)一步影響整個指紋識別系統(tǒng)的性能.因此,若能夠解除紋型分類問題與其他特征提取步驟的精合,將極大程度上提升該問題的穩(wěn)定性.
近年來,隨著深度學(xué)習(xí)浪潮的興起,卷積神經(jīng)網(wǎng)絡(luò)發(fā)揮了它的潛力,在圖像、語音、自然語言理解等領(lǐng)域都得到了很好的應(yīng)用.由于網(wǎng)絡(luò)本身具有特征提取、正則化以及一定程度的平移旋轉(zhuǎn)不變性的能力[9],加上深層的結(jié)構(gòu)能對特征進(jìn)行更有效的表達(dá),若經(jīng)過適當(dāng)?shù)脑O(shè)計(jì),將可以自動地進(jìn)行特征提取,而不必依賴人為定義的特征.目前,它已成功應(yīng)用于于寫數(shù)字識別(MNIST)[10]、字符識別[11]、人臉識別[12]、行為檢測[13]等多個問題中.
在最近幾年,卷積神經(jīng)網(wǎng)絡(luò)也正在逐漸邁進(jìn)指紋識別領(lǐng)域.Frassetto等[14]將其應(yīng)用于指紋活體檢測問題中,作為一種特征自動提取工具來輔助判斷指紋的真?zhèn)?Cao和Jain[15]利用它的抗噪能力將其應(yīng)用于現(xiàn)場指紋的方向場提取問題中,取得了很好的效果.這說明卷積神經(jīng)網(wǎng)絡(luò)在指紋識別領(lǐng)域的潛力巨大,需要進(jìn)一步挖掘.但是,由于指紋模式變化多端,同類紋型類內(nèi)方差很大,不同紋型的界限卻較為模糊,并且訓(xùn)練數(shù)據(jù)的獲取難度較大,因而目前未查到深度神經(jīng)元網(wǎng)絡(luò)在指紋紋型分類問題中應(yīng)用的文獻(xiàn).
我們提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的指紋紋型分類算法,充分利用卷積神經(jīng)網(wǎng)絡(luò)的自動特征提取的能力,從大量數(shù)據(jù)中的學(xué)習(xí)得到紋型的特征,因而可以直接在指紋原圖上進(jìn)行紋型識別,成功地解除了該問題與其他特征提取問題的精合.并且采取一系列數(shù)據(jù)擴(kuò)充技術(shù),有效地克服了訓(xùn)練數(shù)據(jù)不足的困難,提升了紋型識別的準(zhǔn)確性.在本文中,我們首先對提出算法的流程進(jìn)行介紹,并針對該問題準(zhǔn)備訓(xùn)練數(shù)據(jù)和設(shè)計(jì)網(wǎng)絡(luò);接著,網(wǎng)絡(luò)參數(shù)根據(jù)訓(xùn)練數(shù)據(jù)進(jìn)行調(diào)整,使它能夠提取出具有區(qū)分力的特征;訓(xùn)練好的特征將用于對新的指紋紋型進(jìn)行預(yù)測.另外,為提高算法的準(zhǔn)確性,我們采用多模型平均策略,訓(xùn)練出多尺度的網(wǎng)絡(luò).并且,為了使網(wǎng)絡(luò)能夠?qū)埲敝讣y進(jìn)行適應(yīng),我們對輸入數(shù)據(jù)進(jìn)行切割處理,提升網(wǎng)絡(luò)的魯棒性.最后,通過實(shí)驗(yàn)證明算法可以獲得很好的效果.算法充分挖掘指紋圖像中的信息,不再需要任何人工定義的特征提取步驟,極大地簡化了指紋紋型分類算法的復(fù)雜度.
指紋紋型是一種可以被人眼輕易識別的空間模式.然而,使用計(jì)算機(jī)進(jìn)行自動分類并不是一件容易的工作,特別是對低質(zhì)量或殘缺的指紋圖像的紋型進(jìn)行分類.由于圖像灰度、噪聲、脊線寬度和采集條件千差萬別,導(dǎo)致人為定義的預(yù)處理和特征不能有效地適應(yīng)這些變化.卷積神經(jīng)網(wǎng)絡(luò),作為在圖像識別領(lǐng)域應(yīng)用最成功的深度學(xué)習(xí)模型之一,可以自動地從大量數(shù)據(jù)中學(xué)習(xí)得到具有判別力的模式特征.當(dāng)使用大量數(shù)據(jù)進(jìn)行訓(xùn)練時(shí),它可以達(dá)到接近(甚至超過)人眼識別的結(jié)果.因此,我們將它應(yīng)用于指紋紋型分類問題中,通過調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)來適應(yīng)該問題,并取得了很好的效果.
算法整體流程如圖2所示.首先,使用有紋型信息標(biāo)簽的指紋圖像生成訓(xùn)練數(shù)據(jù),并根據(jù)訓(xùn)練數(shù)據(jù)設(shè)計(jì)卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN).接著,訓(xùn)練數(shù)據(jù)被用來訓(xùn)練CNN.最后,待預(yù) 測指紋圖像按照訓(xùn)練數(shù)據(jù)的生成方法生成預(yù)測數(shù)據(jù), 并將預(yù)測數(shù)據(jù)輸入到訓(xùn)練完成的CNN 中.根據(jù)網(wǎng)絡(luò)的 輸出進(jìn)行判斷,得到紋型的預(yù)測結(jié)果.
訓(xùn)練數(shù)據(jù)來源是NIST Special Database 4 (NIST DB4)[16]的F庫(512像素×512像素,500 ppi) 和中國公安部前科人員十指指紋數(shù)據(jù)庫(640像素×640像素,500 ppi).NIST DB4F庫是國際公開的用于指紋測試的數(shù)據(jù)庫,其中包含2 000張指紋圖像,其中斗、左旋、右旋、弓和帳弓各400張.由于我們認(rèn)為弓和帳弓是一類,所以相當(dāng)于弓類型的指紋有800張.但是,為了訓(xùn)練具有更強(qiáng)分類能力的CNN,需要更大的數(shù)據(jù)量來使網(wǎng)絡(luò)適應(yīng)各種各樣的指紋模式.因而我們又從公安部前科人員十指指紋數(shù)據(jù)庫中隨機(jī)選取4種類型的圖像,使得每一類指紋數(shù)量擴(kuò)充到4 000張(共16 000張).為消除2種數(shù)據(jù)來源尺寸上的差異,我們在確保指紋在圖像中心的前提下統(tǒng)一將圖像裁剪成為512像素×512像素,作為原始的訓(xùn)練數(shù)據(jù).
圖2 算法整體流程圖Fig.2 Flow chart of the overall algorithm
由于指紋紋型不會隨分辨率的改變而變化,為使網(wǎng)絡(luò)適合不同的分辨率,提高算法魯棒性,對原始數(shù)據(jù)進(jìn)行不同倍數(shù)的下采樣.在實(shí)驗(yàn)中,分別采用2倍和3倍的下采樣,得到256像素×256像素和171像素×171像素的圖像.
另外,為了克服訓(xùn)練數(shù)據(jù)不足,同時(shí)防止過擬合現(xiàn)象產(chǎn)生,對數(shù)據(jù)量進(jìn)行進(jìn)一步擴(kuò)充.對下采樣后的數(shù)據(jù)進(jìn)行切割,分別選左上、左下、右上、右下和中間區(qū)域作為訓(xùn)練數(shù)據(jù),切割后的尺寸分別是224像素×224像素和148像素×148像素(見圖3).此時(shí),數(shù)據(jù)量已擴(kuò)充到原來的5倍,整個訓(xùn)練集數(shù)據(jù)量為80 000張(每類20 000張).另選出驗(yàn)證集,數(shù)據(jù)量為8 000張(每類2 000張).
為了提取更具判別能力的特征,我們設(shè)計(jì)了多個尺度的卷積神經(jīng)網(wǎng)絡(luò).即用2種維度(224像素×224像素和148像素×148像素)的訓(xùn)練數(shù)據(jù)分別構(gòu)建卷積網(wǎng)絡(luò),稱為Net148和Net224.2個網(wǎng)絡(luò)均包括一系列卷積層(convolution layer)、池化層(pooling layer)、若干個全連接層(inner product layer)以及一個分類器層(classifier layer).網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)如圖4所示.其中,Conv(1,2,3)卷積層,數(shù)字為卷積核大小,s為表示卷積的步長.所用的激活函數(shù)為ReLu函數(shù).Pool表示池化層,數(shù)字為池化核大小,s為池化的步長.
圖3 訓(xùn)練數(shù)據(jù)準(zhǔn)備Fig.3 Training data preparation
IP(1,2)表示第1、2個全連接層.分類器層未在圖上展示出.
圖4 網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.4 Diagram of the networks architecture
卷積層對輸入進(jìn)行卷積操作.卷積核是一個行和列維數(shù)相等的矩陣,它的參數(shù)通過學(xué)習(xí)得到.這些卷積核在網(wǎng)絡(luò)中扮演濾波器的作用.所有的卷積核一起作用來提取輸入圖像的特征.因此,每一層輸出就是對該層輸入的更為抽象的表示.每一個卷積層均使用整流線性單元(rectified linear units,ReLus)作為激活函數(shù).相比于飽和激活函數(shù)(例如sigmoid或tanh),它具有更快的收斂速度,并能得到更低的訓(xùn)練誤差[17].
緊接著卷積層的是池化層.池化層是用一個特殊的值表示一個相鄰區(qū)域的操作,通常選擇的特殊值是該區(qū)域的平均值或最大值(分別對應(yīng)平均池化和最大池化).池化本身可以在很大程度上降低特征維度,減少網(wǎng)絡(luò)計(jì)算量,防止過擬合,并能提供一定程度的平移和旋轉(zhuǎn)不變性.這里使用的是有重疊的最大池化.由于該過程是固定的,因此可以選擇出更具代表性的特征[18].
我們設(shè)計(jì)了3個卷積層和池化層來進(jìn)行特征提取和選擇.隨后,這些特征被轉(zhuǎn)化為一個一維的特征向量,并輸入到幾個全連接層.通過一個softmax分類器,可以得到該圖像屬于每一類的概率.概率最大的類即是該圖像最可能屬于的類別.
整個網(wǎng)絡(luò)的參數(shù)使用誤差反向傳播算法(back propagation, BP) 通過最小化分類誤差來優(yōu)化.
完成網(wǎng)絡(luò)優(yōu)化后,2個網(wǎng)絡(luò)被用于預(yù)測.對待預(yù)測 的指紋圖像,同樣需要對其進(jìn)行下采樣來保證它的分 辨率與訓(xùn)練數(shù)據(jù)相同,并需按照訓(xùn)練數(shù)據(jù)的尺寸對其 進(jìn)行切割.為提高分類的準(zhǔn)確性,每一張指紋圖像 將被切割成10張輸入圖像(148像素×148像素和224像素×224像素各5 張,分別對應(yīng)左上、左下、右上、右下和中心位置).由于卷積神經(jīng)網(wǎng)絡(luò)模型復(fù)雜度較高,因而傾向于是一個高方差低偏差的模型[19].通過多尺度模型平均作用可以消除其高方差的特點(diǎn),從而提高準(zhǔn)確率.這10張輸入圖像被分別輸入相應(yīng)的網(wǎng)絡(luò)中,輸出其屬于每一類的概率值.最后,對這些概率值取 平均,選出概率最大的類別作為該指紋的分類.
為驗(yàn)證算法的有效性,我們進(jìn)行了一系列實(shí)驗(yàn).實(shí)驗(yàn)在一個具有Intel Core i7-960 3.2 GHz的處理器、32 G內(nèi)存和NVIDIA GeForce GTX 970顯卡的工作站上進(jìn)行.使用深度學(xué)習(xí)框架Caffe[20]對網(wǎng)絡(luò)進(jìn)行構(gòu)建和優(yōu)化.Net148和Net224的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示.網(wǎng)絡(luò)使用隨機(jī)梯度下降法對網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化,通過數(shù)小時(shí)的訓(xùn)練,2個網(wǎng)絡(luò)在驗(yàn)證集上的準(zhǔn)確率分別達(dá)到92.9%和93.3%.
我們在NIST DB4的S庫(2 000張,500 ppi)對該算法準(zhǔn)確率進(jìn)行測試,測試結(jié)果如表1所示.從表中可以看出,模型平均后的準(zhǔn)確率優(yōu)于每個網(wǎng)絡(luò)單獨(dú)作用的準(zhǔn)確率.這一方面是因?yàn)閷χ讣y圖像進(jìn)行不同倍數(shù)的下采樣,可以更好地提取出不同分辨率下的特征. 另一方面是因?yàn)槎嗄P推骄梢院芎玫販p小預(yù)測的方差,從而提升準(zhǔn)確率.
表1 網(wǎng)絡(luò)在NIST DB4 S庫上測試的準(zhǔn)確率Table 1 Test accuracy on NIST DB4 S database
為了對算法進(jìn)行進(jìn)一步分析,我們對每一類的分類 情況進(jìn)行統(tǒng)計(jì),如表2 所示,斗類型的指紋分類準(zhǔn) 確率較高,而弓與左旋、右旋分錯的次數(shù)相對較多. 事實(shí)上,在指紋圖像中左旋、右旋和弓確實(shí)在空間 模式上相似度較高.另外,有一些指紋圖像的質(zhì)量較 低,這也很可能導(dǎo)致分類的錯誤.
表2 在NIST DB4 S庫上每一類別的測試結(jié)果
為驗(yàn)證算法的準(zhǔn)確性,我們在NIST DB4指紋數(shù)據(jù)庫上對紋型分類的準(zhǔn)確率進(jìn)行測試,與優(yōu)秀的經(jīng)典紋型分類算法進(jìn)行對比,結(jié)果如表3所示.其中測試集一欄,S表示測試集是NIST DB4 S庫,而Whole表示整個數(shù)據(jù)庫.使用特征一欄,S表示奇異點(diǎn),G表示Gabor濾波響應(yīng),R表示脊線流,O表示方向場.
可以看出我們的算法超過了大多數(shù)經(jīng)典的算法.盡管在該數(shù)據(jù)庫上的準(zhǔn)確率略低于文獻(xiàn)[23],但文獻(xiàn)[23]算法需要同時(shí)對方向場、奇異點(diǎn)和Gabor濾波響應(yīng)3種特征進(jìn)行提取,因此算法的健壯性不強(qiáng),較容易受到噪聲的干擾.而我們的算法是唯一不依賴任何預(yù)處理和特征提取算法的,并且是從大量指紋數(shù)據(jù)中學(xué)習(xí)得到的特征,因而可以適應(yīng)更多樣的數(shù)據(jù),并獲得很高的準(zhǔn)確率.
表3 與其他指紋紋型分類算法在NIST DB4數(shù)據(jù)集上四分類準(zhǔn)確率對比Table 3 Comparison of four-class classification resultson NIST DB4 S database with other algorithms
另外,我們對實(shí)驗(yàn)結(jié)果與訓(xùn)練數(shù)據(jù)量的關(guān)系進(jìn)行探索,圖5展示不同訓(xùn)練數(shù)據(jù)量時(shí)在訓(xùn)練過程中Net224網(wǎng)絡(luò)在驗(yàn)證集上的準(zhǔn)確率與迭代次數(shù)的關(guān)系.隨著迭代次數(shù)的增加,不同訓(xùn)練數(shù)據(jù)量下驗(yàn)證集上的準(zhǔn)確率均是先上升,最后趨于穩(wěn)定.但可以看出在2萬訓(xùn)練數(shù)據(jù)時(shí)驗(yàn)證集上的準(zhǔn)確率穩(wěn)定在87.7%,4萬訓(xùn)練數(shù)據(jù)時(shí)準(zhǔn)確率穩(wěn)定在90.2%,而在8萬訓(xùn)練數(shù)據(jù)時(shí)準(zhǔn)確率可達(dá)到93.3%.可以預(yù)見,如果能夠進(jìn)一步擴(kuò)大訓(xùn)練數(shù)據(jù)量,網(wǎng)絡(luò)的分類性能可以得到更大的提升.
圖5 不同訓(xùn)練數(shù)據(jù)量時(shí)驗(yàn)證集準(zhǔn)確率隨迭代次數(shù)變化的關(guān)系Fig.5 Accuracy of validation set versus iteration number with different amounts of training data
本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的指紋自動分類算法.首先,針對該問題設(shè)計(jì)訓(xùn)練數(shù)據(jù)和網(wǎng)絡(luò)結(jié)構(gòu);接著,網(wǎng)絡(luò)從大量數(shù)據(jù)中學(xué)習(xí)得到可以區(qū)分指紋紋型的特征;最后,使用該網(wǎng)絡(luò)對新的指紋紋型進(jìn)行預(yù)測.在NIST DB4 S庫數(shù)據(jù)集上進(jìn)行測試,并與前人工作進(jìn)行對比,結(jié)果證明了算法的準(zhǔn)確性和有效性.同時(shí),也對實(shí)驗(yàn)結(jié)果進(jìn)行分析,找出進(jìn)一步提高分類性能的方法.
算法利用卷積神經(jīng)網(wǎng)絡(luò)的特征表示能力,通過對網(wǎng)絡(luò)和訓(xùn)練數(shù)據(jù)的有效地設(shè)計(jì),在不進(jìn)行圖像預(yù)處理和其他特征提取的情況下直接從指紋原圖中提取紋型的特征,從而對其進(jìn)行有效的識別,獲得很高的準(zhǔn)確率.本算法成功地解除了指紋分類問題對預(yù)處理和特征的依賴,極大地降低了指紋分類問題的復(fù)雜度,提升了分類的準(zhǔn)確性.