袁穎 李論 楊英倉(cāng)
摘 ?要: 指紋識(shí)別是目前應(yīng)用最廣泛的生物特征識(shí)別技術(shù)之一,傳統(tǒng)指紋識(shí)別技術(shù)中為了使原始指紋圖像特征更易于被當(dāng)前的計(jì)算方法處理,需要對(duì)指紋圖像特征點(diǎn)標(biāo)畫,為輸入數(shù)據(jù)設(shè)計(jì)好表示層,再仿射變換到另一個(gè)表示空間,難以得到模糊指紋圖像所需要的精確表示。本文采用膠囊神經(jīng)網(wǎng)絡(luò),使用端到端的深度學(xué)習(xí)模型來(lái)完成模糊指紋圖像的識(shí)別,克服了傳統(tǒng)機(jī)器學(xué)習(xí)算法對(duì)于感知問(wèn)題不敏感,以及卷積神經(jīng)網(wǎng)絡(luò)缺乏整體特征的明確信息和最大池化中丟失了有價(jià)值的特征信息等劣勢(shì)。實(shí)驗(yàn)結(jié)果表明,膠囊神經(jīng)網(wǎng)絡(luò)在模糊指紋圖像處理中具有較高的識(shí)別精度。
關(guān)鍵詞: 指紋識(shí)別;膠囊神經(jīng)網(wǎng)絡(luò);深度學(xué)習(xí)
中圖分類號(hào): TP391. 41 ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.08.015
本文著錄格式:袁穎,李論,楊英倉(cāng). 基于Capsule Net架構(gòu)的模糊指紋圖像識(shí)別[J]. 軟件,2020,41(08):48-51
【Abstract】: Fingerprint identification is currently the most widely used biological characteristic. In traditional fingerprint identification technology, in order to make the fingerprint image feature calculate more easier, method have to sign the fingerprint image feature points, input data design good presentation layer, and affine transformation to another representation space to realize recognition. However this method is hard to get the precise fuzzy fingerprint image features.Capsule neural network in this paper use end-to-end deep learning model to match the fuzzy identification of fingerprint image. This method overcomes the unsensitive problems to perceptual features which is a common problems in the traditional machine learning algorithm. This method also overcomes the lack of clear information and the lost of characteristics of the information in integral pooling in the convolutional neural network. The experimental results show that the capsule neural network has high recognition accuracy in fuzzy fingerprint image processing.
【Key words】: Fingerprint identification; Capsule net; Deep learning
0 ?引言
指紋識(shí)別技術(shù)在20世紀(jì)60年代初興起,近年已在民事、司法、安全等領(lǐng)域得到了普遍應(yīng)用,毋庸置疑已經(jīng)成為了目前使用最廣泛的生物特征識(shí)別技術(shù)。然而,面臨徒增的模糊指紋圖像,傳統(tǒng)指紋識(shí)別技術(shù)的淺層學(xué)習(xí)難以得到模糊指紋識(shí)別所需的精確表示,無(wú)法滿足實(shí)際需求。2010年以后,非定制CPU的速度提高了約5000倍[1],互聯(lián)網(wǎng)高速發(fā)展高性能圖形芯片誕生,大數(shù)據(jù)、計(jì)算機(jī)視覺(jué)技術(shù)、深度學(xué)習(xí)技術(shù)的出現(xiàn),為指紋識(shí)別的發(fā)展奠定了硬件、算法、數(shù)據(jù)集等各方面的基礎(chǔ)。自此,基于深度學(xué)習(xí)的指紋識(shí)別技術(shù)逐漸興起, Wang Yani等人[2]、L. N. Darlow[3]、D. E. Hamdi[4]等大批研究者開始采用深度識(shí)別算法對(duì)圖像進(jìn)行識(shí)別,包括CNN、MENet、CRT等,結(jié)合深度學(xué)習(xí)技術(shù)來(lái)解決指紋分類任務(wù),基于深度學(xué)習(xí)的研究還包括Artificial neural network (ANN)神經(jīng)網(wǎng)絡(luò)[5]、nonlinear back propagation neural network (BPNN)反向神經(jīng)網(wǎng)絡(luò)[6]、linear vector quantization(LVQ) 線性矢量量化[7]、extreme learning machine (ELM)極限學(xué)習(xí)機(jī)[8]等。
廣泛研究證明以上神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺(jué)方面有顯著成績(jī),但具備缺乏整體特征的明確信息和最大池化中會(huì)丟失有價(jià)值的特征信息等劣勢(shì),例如CNN。2017年Geoffrey E. Hinton使用經(jīng)過(guò)分別訓(xùn)練的多層膠囊系統(tǒng)在MNIST上達(dá)到了最好的性能,并且在識(shí)別高度重疊的數(shù)字方面比卷積神經(jīng)網(wǎng)絡(luò)要好得多,訓(xùn)練精確度為99.23%,在Affinist測(cè)試集的精確度達(dá)到了79%,遠(yuǎn)遠(yuǎn)超過(guò)了CNN的66%[9]。在這之后,相繼有學(xué)者使用膠囊網(wǎng)絡(luò)對(duì)不同的研究對(duì)象做了新嘗試,例如,C. Xiang[10]、Z. Zhang[11]、Y. Xiong[12]、Yi S[13]、T. Zhao[14]等人都陸續(xù)使用膠囊網(wǎng)絡(luò)對(duì)不同圖像進(jìn)行了識(shí)別,其中包括虹膜、步態(tài)、車輛圖片等,并取得了良好的效果。
1 ?關(guān)鍵算法原理
膠囊神經(jīng)網(wǎng)絡(luò)自2017年由Google Brain的Geoffrey E. Hinton提出[9],近年來(lái)膠囊網(wǎng)絡(luò)被看作是一種能克服CNN缺點(diǎn)的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),膠囊網(wǎng)絡(luò)是經(jīng)過(guò)分別訓(xùn)練的多層膠囊神經(jīng)系統(tǒng),膠囊就是一組神經(jīng)元,膠囊網(wǎng)絡(luò)是由這些神經(jīng)元構(gòu)成的神經(jīng)網(wǎng)絡(luò),和其他神經(jīng)網(wǎng)絡(luò)不同得是,膠囊網(wǎng)絡(luò)在特征之間的空間關(guān)系上取得了一些突破,它使原來(lái)只能用標(biāo)量來(lái)表示的輸入、輸出特征用向量來(lái)表示,向量的模的大小來(lái)表示特征出現(xiàn)的概率。向量的方向表示特征的位置,這就使得原始特征中涉及的位置信息不容易丟失。
1.1 ?網(wǎng)絡(luò)架構(gòu)
膠囊網(wǎng)絡(luò)的架構(gòu)如圖1所示,一層網(wǎng)絡(luò)被激活時(shí)通過(guò)轉(zhuǎn)換矩陣對(duì)更高級(jí)別的膠囊參數(shù)進(jìn)行預(yù)測(cè),當(dāng)多個(gè)預(yù)測(cè)一致時(shí),一個(gè)更高水平的膠囊層開始活躍。在膠囊網(wǎng)絡(luò)中基礎(chǔ)單元是膠囊,就是一系列的神經(jīng)元圖2所示[15],神經(jīng)元的活躍程度被封裝在了激活的膠囊中,代表某個(gè)特定實(shí)體的不同屬性。膠囊的長(zhǎng)度表示這個(gè)特定實(shí)體的存在概率,膠囊的方向表示了這個(gè)實(shí)體的屬性。輸出向量的長(zhǎng)度表示了實(shí)體存在的可能,輸出的膠囊用一個(gè)非線性的壓縮函數(shù)計(jì)算如公式1[9]所示。
圖1所示的膠囊網(wǎng)絡(luò)中第一層是二維卷積層,作用是對(duì)輸入圖像進(jìn)行空間卷積。用濾波器對(duì)輸入圖像進(jìn)行滑動(dòng)窗卷積,卷積核的數(shù)目為256,卷積核的寬度和長(zhǎng)度為9,卷積的步長(zhǎng)為1,“valid”指只進(jìn)行有效的卷積,即對(duì)邊界不進(jìn)行數(shù)據(jù)填充,激活函數(shù)為relu。第二層為PrimaryCaps即主膠囊層,使用squash函數(shù)作為激活函數(shù),該層接受卷積層檢測(cè)到的基本特征,用于生成特征組合。該層共有32個(gè)主膠囊,步長(zhǎng)為2,每個(gè)主膠囊由8個(gè)卷積核組成。第三層DigitCaps層即數(shù)字膠囊層,實(shí)際上是全連接層,“in_num”為輸入,每個(gè)輸入都是一個(gè)標(biāo)量,是前一層神經(jīng)元的輸出,它有“out_num”為輸出神經(jīng)元。膠囊層是將神經(jīng)元的輸出從標(biāo)量擴(kuò)展到向量。第四層是一個(gè)輔助層,用它的長(zhǎng)度來(lái)代替每個(gè)膠囊,為了匹配真實(shí)的標(biāo)簽形狀。
1.2 ?向量神經(jīng)元
在膠囊網(wǎng)絡(luò)中神經(jīng)元結(jié)構(gòu)如圖2所示[9],第一層神經(jīng)元在接收到信號(hào)以后,通過(guò)連接鏈路參數(shù)進(jìn)行修改加總,b為偏差,σ(z)為激活函數(shù),最后得出一個(gè)輸出值。膠囊網(wǎng)絡(luò)和其他神經(jīng)網(wǎng)絡(luò)的不同之處在于,a1到ak都是有大小和方向的向量,σ(z)為squashing的壓縮函數(shù)作為激活函數(shù),輸出的值也為向量,一個(gè)運(yùn)算單元為一個(gè)膠囊。每一層中都由很多個(gè)膠囊構(gòu)成,將輸入數(shù)值一層一層向后傳播。
1.3 ?壓縮函數(shù)
在CapsNets中需用到squashing 函數(shù)即壓縮函數(shù),表達(dá)式如公式(1)[9]所示, 該函數(shù)是一個(gè)非線性的“壓縮”函數(shù),作用是確保短向量被壓縮到幾乎零的長(zhǎng)度,長(zhǎng)向量被壓縮到略小于等于1的長(zhǎng)度。公式(1)表示第j個(gè)膠囊的輸出向量的運(yùn)算規(guī)則, 為這個(gè)膠囊的總輸入向量值, 是總輸入向量的模長(zhǎng),模長(zhǎng)只有大小沒(méi)有方向。由公式(1)可以看到左邊的第一部函數(shù)的作用是當(dāng) 輸出向量很大的時(shí)候,第一部分的值能無(wú)限趨近于1,如果 輸出向量的值很小,第一部分的值會(huì)約等于0,這樣可以將輸入值壓縮在0-1之間。公式(1)的右邊部分函數(shù)保留了輸入向量的方向,向量的模的大小衡量某個(gè)實(shí)體出現(xiàn)的概率,模值越大,概率越大。當(dāng) 很小的時(shí)候, 的值就等于 ?,當(dāng) 很大的時(shí)候, 的值就等于 。
在每一個(gè)膠囊網(wǎng)絡(luò)層里的膠囊都會(huì)向上述層中的每個(gè)不同膠囊中輸出一個(gè)向量的局部網(wǎng)格,之后每個(gè)網(wǎng)格成員和每個(gè)膠囊的變換矩陣被用來(lái)組成數(shù)量相同的類,動(dòng)態(tài)路由就這樣在這個(gè)過(guò)程反復(fù)循環(huán)。
1.4 ?損失函數(shù)
當(dāng)網(wǎng)絡(luò)在訓(xùn)練時(shí),輸入的特征沒(méi)有對(duì)應(yīng)的標(biāo)簽,需要把特征值對(duì)應(yīng)向量最大的值輸出給全連接層,網(wǎng)絡(luò)就會(huì)根據(jù)標(biāo)簽決定輸出值對(duì)應(yīng)的向量。底層的膠囊將其輸出傳輸給高層的膠囊,高層的膠囊的向量由底層膠囊預(yù)測(cè)出的大量的標(biāo)量信息,輸出的向量的長(zhǎng)度表示了預(yù)測(cè)的概率。此時(shí)就必須定義損失函數(shù),對(duì)于k行向量做如下運(yùn)算如公式(4)[9]所示。
默認(rèn) 的值為1或0,損失希望正例樣本 預(yù)測(cè)在0.9,負(fù)例樣本值 在0.1,該函數(shù)的意義在于如果k行向量屬于當(dāng)前的分類k,就使 大于0.9,否在小于0.1。神經(jīng)網(wǎng)絡(luò)以此來(lái)辨別輸入的圖像是否屬于圖片所屬的標(biāo)簽。
2 ?實(shí)驗(yàn)分析
2.1 ?實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)環(huán)境為Window10 64位系統(tǒng),中央處理器(CPU) 為Intel(R)Core(TM) i7-8550U 1.80 GHz,內(nèi)存為16 GB,顯卡UDH Graphics 620,實(shí)驗(yàn)工具為VS Code、Jupyter Notebook,編程環(huán)境為Python3.0,開發(fā)平臺(tái)為Keras框架 。
2.2 ?指紋數(shù)據(jù)庫(kù)構(gòu)建
本數(shù)據(jù)庫(kù)名為索科托考文垂數(shù)據(jù)庫(kù)(SOCO-Fing)[16],由來(lái)自英國(guó)考文垂大學(xué)的Yahaya Isah Shehu和Ariel Ruiz-Garcia等人構(gòu)建,該指紋庫(kù)是使用韓國(guó) Secugen HSDU03指紋采集儀收集的圖像。SOCOFing總共包含55273張指紋圖像。所有文件圖像的分辨率為1×96×103(灰度×寬度×高度)。
SOCOFing數(shù)據(jù)集包含了600名非洲被測(cè)者的6000個(gè)指紋。每個(gè)被測(cè)者年齡都在18歲以上,每人采集了10個(gè)手指的10枚指紋,每張指紋圖像為500dbi分辨率,SOCOFing數(shù)據(jù)庫(kù)的標(biāo)簽包含了受測(cè)者的具體屬性標(biāo)簽,例如性別、手位和手指名稱等信息。將指紋圖像進(jìn)行Z-cut、模糊和中心旋轉(zhuǎn),以此來(lái)對(duì)指紋庫(kù)進(jìn)行模糊處理,并根據(jù)變換的大小將數(shù)據(jù)分為簡(jiǎn)單(easy)、中等(medium)和復(fù)雜(hard)三個(gè)等級(jí),如圖3所示為指紋庫(kù)中同一人的同一枚指紋經(jīng)過(guò)同一類變換得到的容易、中等、困難指紋圖。
在對(duì)每張?jiān)贾讣y圖像進(jìn)行模糊、中心旋轉(zhuǎn)和z切割3次變換以后,去除所有低質(zhì)量或不可讀的指紋圖像以進(jìn)行質(zhì)量控制,最后我們總共得到了17,934張參數(shù)設(shè)置簡(jiǎn)單(easy)的變換圖片,17,067張參數(shù)設(shè)置中等(medium)的變換圖片,14,272張參數(shù)設(shè)復(fù)雜(hard)的變換圖片。之后每張指紋圖以如下的命名規(guī)則進(jìn)行編輯。識(shí)別被測(cè)者編號(hào)分別為:001到600。表示被測(cè)者的性別:M -男,F(xiàn) -女。表示手位:左Left或右Right。表示手指的名稱:小指Little,環(huán)指Ring,中指Middle,食指Index,拇指Thumb。指示變換的類型:Obl -模糊、CR -中心旋轉(zhuǎn)或Zcut。文件擴(kuò)展名:“bmp”為所有圖像的擴(kuò)展名。
2.3 ?實(shí)驗(yàn)結(jié)果分析
使用imgaug從數(shù)量較少的圖像庫(kù)中創(chuàng)造出豐富的數(shù)據(jù)集,imgaug是一個(gè)用于機(jī)器學(xué)習(xí)實(shí)驗(yàn)中圖像增強(qiáng)的庫(kù),它支持廣泛的增強(qiáng)技術(shù),允許輕松地結(jié)合各種增強(qiáng)技術(shù),并在隨機(jī)順序或在多個(gè)CPU核心上執(zhí)行,有一個(gè)簡(jiǎn)單而強(qiáng)大的隨機(jī)接口,可以增強(qiáng)圖像增強(qiáng)魯棒性較少過(guò)擬合,使用了iaa.Affine代碼對(duì)圖像進(jìn)行仿射變換,對(duì)圖像進(jìn)行縮放、平移、旋轉(zhuǎn)、剪切等操作。對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,載入測(cè)試圖像,得到如圖4所示的匹配結(jié)果。
圖4中左側(cè)是從hard庫(kù)進(jìn)行變換以后的模糊指紋,其中Input Key是該指紋的標(biāo)簽,該指紋圖片的具體屬性為321__M_Right_index_finger_Obl.BMP,標(biāo)簽為321011,根據(jù)圖5的命名規(guī)則,男性(M)0,女性(F)1,左手(L)是0,右手(R)是1,拇指(Thumb)編碼0 食指(Index)編碼1 中指(Middle)編碼2環(huán)指(Ring)編碼3 小指(Little)編碼4。標(biāo)簽為321011即第321個(gè)人的指紋男性右手食指,由以上編碼規(guī)則可以看出input和key值時(shí)對(duì)應(yīng)的,都是321011,兩張圖的匹配值為99.59%。
神經(jīng)網(wǎng)絡(luò)精度和損失值如圖5所示,橫坐標(biāo)為訓(xùn)練次數(shù),縱坐標(biāo)為訓(xùn)練損失值和精度,從圖像可以看出測(cè)試集精度開始為0.82,經(jīng)過(guò)不斷訓(xùn)練最后達(dá)到0.993,損失值最終數(shù)值為0.023。
3 ?結(jié)語(yǔ)
膠囊網(wǎng)絡(luò)在此次用的數(shù)據(jù)庫(kù)基礎(chǔ)上表現(xiàn)良好,但在選擇較難(Hard)擴(kuò)增指紋庫(kù)中,有些指紋圖像會(huì)出現(xiàn)比不中的情況,這說(shuō)明網(wǎng)絡(luò)的精度還需要進(jìn)一步提高,此外,膠囊網(wǎng)絡(luò)的運(yùn)行速度比較慢,網(wǎng)絡(luò)在訓(xùn)練過(guò)程中需要好幾個(gè)小時(shí),因?yàn)槠鋭?dòng)態(tài)路由是需要在兩個(gè)膠囊層之間進(jìn)行信息傳遞,這是一個(gè)非常復(fù)雜的過(guò)程。然而優(yōu)點(diǎn)是,膠囊網(wǎng)絡(luò)對(duì)于特征密集的圖像有出色的表現(xiàn),對(duì)于表征指紋這類高級(jí)圖像確實(shí)具有顯著的優(yōu)勢(shì),并且可以使用較少的數(shù)據(jù)集訓(xùn)練出良好的精度,膠囊網(wǎng)絡(luò)的動(dòng)態(tài)路由可以實(shí)時(shí)根據(jù)預(yù)測(cè)結(jié)果調(diào)整權(quán)重,以此來(lái)調(diào)整選取的識(shí)別圖像的特征。
參考文獻(xiàn)
[1] 弗朗索瓦. 肖萊, 張亮譯. PYTHON 深度學(xué)習(xí)[M]. 人民郵電出版社, 2019(9): 3-15.
[2] Wang Yani, Wu Zhendong, Zhang Jianwu, Chen Hongli. A robust damaged fingerprint identification algorithm based on deep learning[C]. IEEE Advanced Information Management, Communicates, Electronic and Automation Control Conference (IMCEC), 2016: 1048-1052.
[3] L. N. Darlow, B. Rosman. Fingerprint minutiae extraction using deep learning[C]. IEEE International Joint Conference on Biometrics (IJCB). Denver, CO, 2017: 22-30.
[4] D E. Hamdi, I. Elouedi, A. Fathallah, M. K. Nguyuen, A. Hamouda. Combining Fingerprints and their Radon Transform as Input to Deep Learning for a Fingerprint Classification Task[C]. 15th International Conference on Control. Automation, Robotics and Vision (ICARCV), 2018: 1448-1453.
[5] Yang J C, Park D S. Fingerprint Verification Based on Invariant Moment Features and Nonlinear BPNN[J]. International Journal of Control, 2008, 6(6): 800-808.
[6] Yang J, Xie S , Yoon S. el at. Fingerprint Matching Based on Extreme Learning Machine[J]. Neural Computing & Applications. 2013, 22(34): 435-445.
[7] Kumar, R. Fingerprint Matching Using Rotational Invariant Orientation Local Binary Pattern Descriptor and Machine Learning Techniques[J]. International Journal of Computer Vision and Image Processing. 2017, 7(4): 51-67.
[8] Adjimi A, Hacine-Gharbi A, Ravier P, el at. Extraction and Selection of Binarised Statistical Image Features for Fingerprint Recognition[J]. International Journal of Biometrics. 2017, 9(1): 67-80.
[9] Sabour, Sara, Frosst, Nicholas, Hinton, Geoffrey E. Dynamic routing between capsules[J]. Advances in Neural Information Processing Systems. USA. 2017: 3857-3867.
[10] C. Xiang, L. Zhang, Y. Tang, W. Zou and C. Xu. MS-CapsNet: A Novel Multi-Scale Capsule Network[J]. IEEE Signal Processing Letters, 2018, 25(12): 1850-1854.
[11] Z. Zhang, D. Zhang and H. Wei. Vehicle Type Recognition using Capsule Network[C]. Chinese Control And Decision Conference (CCDC), China, 2019: 2944-2948.
[12] Y Xiong, G Su, S Ye, Y Sun, Y Sun. Deeper Capsule Network For Complex Data[C]. International Joint Conference on Neural Networks (IJCNN). Budapest, Hungary, 2019: 1-8.
[13] Ye J, Chang Q, Jia X. Research on Image-to-Image Translation with Capsule Network[C]. Artificial Neural Networks and Machine Learning, Lecture Notes in Computer Science, 2019: 11727.
[14] T Zhao, Y Liu, G Huo and X Zhu. A Deep Learning Iris Recognition Method Based on Capsule Network Architecture[J]. IEEE Access, 2019(7): 49691-49701.
[15] 陳屹. 神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)實(shí)戰(zhàn)[M]. 機(jī)械工業(yè)出版社, 2019(08): 266-270.
[16] Yahaya Isah Shehu, Ariel Ruiz-Garcia, Vasile Palade, Anne James. Sokoto Coventry Fingerprint Dataset. Kaggle. [EB/OL] (2018-7-23)[2020-2-29].