陳文燕,范文博,楊鈞宇
西安科技大學 電氣與控制工程學院,西安 710054
如今,智能手機已經成為人們日常生活中最常使用的移動設備,自蘋果公司于2013 年將Touch ID 集成到智能手機[1]后,手機的解鎖方式跨入一個新的領域,從物理解鎖(數字、字母或圖案)變成生物特征解鎖。短短幾年時間,指紋識別技術已經廣泛應用到智能手機端,而且功能不僅僅局限于解鎖,還應用到其他需要更高級別的應用程序,例如在線支付、應用加密等。指紋識別技術能夠快速普及的原因在于,相比其他生物特征(人臉、掌紋和虹膜等),指紋具備唯一性、穩定性和便攜性。目前,指紋識別技術是應用在移動終端最成熟的生物特征識別技術。
依賴細節特征(端點和分叉點)的傳統指紋識別算法,已證明其在指紋識別中的效率和可靠性。然而,當指紋信息丟失或者不完整時,依賴細節特征的算法識別性能將大大降低[2]。嵌入到智能手機的指紋采集器通常比傳統的指紋采集器采集面積小,只能采集到部分指紋,一般只有正常手指面積的20%~40%,采集到的圖像所包含的細節特征較少,如圖1所示,因此基于細節特征的傳統指紋識別方法達不到應用到智能手機端的要求。

圖1 小面積指紋圖像
現有針對智能手機端的小面積指紋識別算法主要利用指紋圖像中特征的詳細信息,然后采用特定的相似度計算規則來計算指紋圖像之間的相似度,實現指紋識別[3]。這些細節特征通常是指紋圖像的紋理、形狀和關鍵點,相應的特征描述符有LBP(Local Binary Pattern)[4]、HOG(Histogram of Oriented Gradient)[5]和 SIFT(Scale-Invariant Feature Transform)[6-7]等。另外還有Shabrina等人[8]利用兩幅指紋圖像重疊區域的相位差的逆傅里葉變換的峰值作為識別參數,實現基于相位相關的識別。Trunfio等人[9]利用指紋圖像的像素信息,計算各個局部重疊的相似性,然后組合成全局分數,實現指紋圖像的匹配。
近幾年卷積神經網絡在圖像檢索、分割和分類等任務中取得了良好的效果,特別是對于有挑戰性的生物識別問題,例如人臉識別[10-11]。基于卷積神經網絡的人臉識別相比基于特征點的傳統人臉識別算法有著卓越的性能。同時,智能手機作為人們日常生活中最為密切的電子設備,如何將深度學習模型應用到智能手機備受社會和科研工作者的關注。2017 年TensorFlow[12]官網給出將深度學習模型移植到安卓系統,實現行人檢測、物體識別和圖像風格遷移等示例的具體實現過程,同時有一些平臺(如MXNet)也支持將深度學習模型移植到智能手機。基于深度學習實現小面積指紋識別方法的研究有:Joan等人[13]將指紋圖像的有效面積比設置為100%、75%、50%、40%和30%,然后比較傳統指紋識別算法和基于神經網絡識別算法的識別性能,最后實驗證明基于神經網絡的識別算法隨著指紋面積的減少識別性能更為穩健。Zhang等[14]設計了一個38層的卷積神經網絡,采用k最鄰近方法,并使用兩種誤差函數Triplet Loss和Softmax Loss 來提高了網絡表達指紋圖像的能力。Zhang 等人[15]提出了一種基于殘差結構的深度學習模型,該模型需要提取以傳統特征點為中心的固定大小圖像,輸入到網絡提取二值特征,該方法提取到相對完整的指紋信息,在自建庫上達到99.57%的識別率。Zeng等人[3]仍使用殘差結構構建深度學習模型,使用交叉熵函數和對比度損失函數進行訓練和提取指紋特征,并充分利用從深度學習模型獲取到的分類信息和特征向量,來完成指紋識別,使指紋驗證具有更好的安全性。
綜上所述,針對基于深度學習的小面積指紋識別算法比較少,對小面積的指紋識別進行深入研究,有助于提高基于指紋識別的智能手機身份認證方案的安全性和可靠性[15]。在研究深度學習進行圖像識別的文獻后,本文提出了一種基于密集連接卷積網絡模型,且實現類似智能手機的多張注冊模板的小面積指紋識別方法。本文的主要貢獻:
(1)利用密集連接卷積網絡[16]來提取指紋圖像特征,充分利用密集連接卷積網絡特征復用的優點,來提高特征表達指紋圖像的能力。
(2)使用二值特征和特征向量實現指紋圖像的注冊和識別,并將二值特征引入深度學習模型,來降低二值特征之間的不相關性。
密集連接卷積網絡受到深度殘差網絡[17]的啟發。深度殘差網絡在2015年ILSVRC競賽上斬獲圖像分類、圖像檢測和圖像定位三項冠軍。殘差網絡結構表明,如果卷積神經網絡在靠近輸入層和靠近輸出層之間包含一個較短的連接,則可以更加準確和有效地進行網絡訓練。基于殘差網絡結構,密集連接卷積網絡結構建議通過前饋方式,將每一層的輸出連接到每個其他層來擴充較短的連接。特征的復用能夠增強特征傳播,同時減輕梯度消失。如圖2所示,展示了4層密集連接塊結構。

圖2 增長率k=6 的4層密集連接塊
若密集連接卷積網絡結構層數為L,第n層的輸出表示為Xn,則第n層會獲取前面所有層的特征,如下式:

式中,[X1,X2,…,Xn-1] 表示由第 0,1,2,…,n-1 層輸出的特征圖組成的張量。hn是一個復合函數,包括批量歸一化(Batch Normalization,BN)、整流線性單元(Rectified Linear Unit,ReLU)、卷積層(Convolutional,Conv)三個操作,即BN-ReLU-Conv(1×1)-BN-ReLUConv(3×3)。其中1×1卷積操作的目的是減少輸入的特征數量,優點在于既能降維,減少計算量,又能在降維的過程中融合各個通道的特征。

圖3 網絡模型結構
2.1.1 增長率
在密集連接卷積網絡結構中,每層會產生k個特征圖,那么在第n層輸入k0+k(n-1)個特征圖,其中k0是原始輸入圖像的特征圖,k是網絡的增長率。實驗數據表明,一個較小的增長率就能夠獲得相當好的訓練效果[16]。
2.1.2 過渡層
當特征圖尺寸發生變化時,再使用式(1)顯然是不可取的,且密集連接塊隨著層數的增加,特征數量增長更快,需要間隔一定層數對特征進行降維。在整個網絡中,密集連接網絡結構被過渡層劃分開,過渡層包括批量歸一化、整流線性單元、卷積層和池化層(Pooling),表示為BN-ReLU-Conv(1×1)-Pooling。其中1×1卷積操作是為了提高模型的緊湊性和減少特征圖數量。如果密集連接卷積網絡結構輸出m個特征圖,經過1×1卷積操作后生成不超過θm的最大整數個輸出特征圖,其中θ被稱為壓縮因子,取值范圍是0<θ≤1。當θ=1 時,轉換過程中的特征映射的數量保持不變。池化層的目的是改變特征圖的尺寸大小。本文實驗中設定θ=0.5。
為了保證提取指紋特征和指紋匹配的速度,本文選擇搭建輕量級密集連接卷積網絡模型,如圖3 所示,增長率k設置為12,網絡將經過預處理的96像素×96像素的指紋圖像作為輸入,經過一個5×5卷積層,3個密集連接卷積塊和2 個過渡層運算后,得到384 個12×12 的特征模板,接著提取特征模板的二值特征代替一般網絡中的全局池化層輸入到全連接層。
2.2.1 指紋圖像篩選和預處理
遺漏細節或者虛假細節的問題是降低指紋匹配性能的關鍵原因,因此恢復指紋的細節特征和刪除殘缺的指紋是一種提高指紋匹配性能的可靠方法。
(1)指紋圖像的篩選
在采集指紋過程中,存在按壓未完全或者手指移動過快等情況,導致只采集到部分指紋,如圖4 所示。指紋采集器的采集面積比較小,將圖4類似圖像輸入到深度學習模型后,錯誤識別率會增加,因此有必要對采集到的指紋圖像進行篩選。本文采用指紋圖像的梯度幅度圖像計算其有效面積,從而實現對指紋圖像的篩選。方法如下:
首先分別計算指紋圖像f(i,j)的水平方向梯度dx和垂直方向梯度dy:

其中,f(i,j)是坐標,(i,j)為像素值。然后計算指紋圖像的梯度幅度圖像A(i,j):

再次,用邊長為m的窗口對梯度幅值圖像A(i,j)進行滑動求和:

當H(i,j)大于等于設定閾值Hth,則該點屬于有效點。因此指紋圖像的有效面積:

其中,M表示H(i,j)大于等于閾值Hth的個數,N是指紋圖像的總像素。根據上述有效面積的計算,保留有效面積大于設定閾值Sth的指紋圖像,反之刪除。

圖4 殘缺的指紋圖像
(2)指紋圖像增強
在指紋識別中,存在下列情況可能會把干擾信息誤認為特征,影響指紋圖像的識別率和計算速度。例如采集指紋圖像過程融入的噪聲,由于按壓過于用力導致平行脊線黏在一起,手指本身存在蛻皮、疤痕和淤青,或者指紋圖像中不是嚴格連續的脊線等。上述情況都在指紋預處理操作過程中得到一定的修復。預處理操作包括歸一化和Gabor濾波,從而實現指紋圖像增強,如圖5所示。

圖5 指紋原圖和預處理后的指紋圖像
(3)訓練樣本擴充
數據擴充是深度學習中用于增加訓練數據量和防止過擬合的常用方法。在采集指紋圖像的過程中,指紋角度有較小角度的旋轉,因此將增強后的訓練樣本旋轉±8°和±15°,則訓練集擴充5倍,并且將訓練樣本圖像進一步旋轉將不會明顯改善性能。
實驗結果表明,指紋圖像預處理和數據擴充兩個操作提高了指紋識別性能。
2.2.2 特征二值化
本文提取特征圖像的二值特征來代替一般網絡中的全局池化層,目的是用指紋圖像的二值特征和特征向量構建指紋數據庫來實現指紋的注冊和識別策略。文獻[18]設計了5 種低相關性的二值濾波器,如圖6 所示。每個二值濾波器包括兩個面積大小相等的區域(黑白區域),只需統計每個二值濾波器中兩區域中像素強度之和,然后進行比較后產生二進制描述符。二值濾波器公式如下:

其中,Bn表示5 個二值濾波器中的一個,sum(black)表示黑色區域的像素強度之和,sum(white)表示白色區域的像素強度之和。

圖6 5種二值濾波器
根據圖3可知在第三個密集連接塊輸出384張像素為12×12的特征圖像,此處使用上述二值濾波器提取二值描述子,具體方法如下:
首先將12×12的特征圖劃分為3×3個子區域,每個子區域邊長是4;然后在每個子區域中使用5 個二值濾波器提取二進制描述符,則每張特征圖提取45 位二值描述子。經過上述操作,在384 張12×12 特征圖中提取一個45 行384 列的二值特征矩陣。為了方便網絡訓練和提高計算效率,將每個子區域提取5位二進制轉換為十進制,即將9 行384 列矩陣輸入到全連接層。實驗數據說明將二值特征融入訓練網絡可以使二進制描述符之間的相關性降低,從而降低二進制描述符的錯誤匹配率。
目前,在智能手機中嵌入的指紋采集器采集面積較小,但是理論上指紋信息越完整,識別率越高。因此需要用戶在注冊指紋模板時進行多次注冊,以便能收集完整的指紋信息。基于注冊模板的指紋識別方法具體流程如圖7所示,在注冊階段采用多次注冊的方式提取指紋圖像特征信息來構建指紋數據庫。在匹配階段,利用待匹配指紋圖像的二值特征和特征向量分別與指紋數據庫進行粗匹配和精匹配,并根據設定閾值判別識別結果。具體步驟如下:
設定M為注冊指紋圖像的數量(M≥15),Ni表示當前第i張注冊指紋圖像,Fi表示Ni對應的特征向量集合,Bi表示Fi對應的二值特征集合;相關閾值有有效面積閾值Sth,匹配點個數閾值Nmax、Nth且Nmax>Nth,二值特征之間漢明距離閾值φ以及特征向量之間余弦相似度閾值φ。
在注冊過程中,需要對每一張指紋圖像計算有效面積,當實際有效面積大于等于Sth,則為合格指紋圖像,反之為不合格指紋圖像,提示用戶重新采集。后續提到指紋圖像均是合格圖像。因為指紋圖像面積較小,重復面積較小,所以前5 張指紋圖像直接錄入,特征向量集合為二值特征集合為后續指紋圖像需要與已錄入的指紋進行比對,待注冊指紋圖像與已錄入指紋圖像匹配點大于等于Nmax,說明待注冊指紋圖像與已錄入指紋圖像重合面積過大,提示用戶移動手指,并將待注冊指紋圖像刪除,反之錄入指紋圖像,更新特征向量集合和二值特征集合,注冊指紋圖像數量加1。當注冊指紋圖像數量等于M時,完成本手指的錄入,得到最終的。

圖7 基于注冊模板的指紋識別方法流程圖
目前,小面積指紋暫時沒有公開的指紋庫,本文構建了一個小面積指紋數據集DB1(Database 1)。DB1采用深圳信煒科技有限公司生產的電容式指紋采集器,指紋采集器與電路轉接板連接如圖8所示,采集指紋圖像大小為96×96。DB1由40名實驗室志愿者組成,每個志愿者采集6個手指,每個手指采集40張,總共9 600張指紋圖像,有效面積達到設定閾值的圖像有9 542 張。為了保證深度學習模型測試結果和使用訓練完成的深度學習模型進行注冊和識別測試結果的不相關,對DB1進行劃分,如表1 所示。在40 名志愿者中隨機選取20名志愿者的指紋圖像用于深度學習模型的訓練和測試,即訓練集包含120 個手指,每個手指有20 張指紋圖像,剩余指紋圖像作為驗證集。剩余20名志愿者的指紋圖像用作驗證注冊和識別的測試,注冊集包含120 個手指,每個手指有20張指紋圖像,剩余指紋圖像作為待識別圖像,組成測試集。與DB1 對應的數據集DB2,即對DB1 數據集的所有指紋圖像經過預處理操作形成的數據集。

圖8 硬件連接圖

表1 自建數據集指紋圖像信息
錯誤拒絕率(False Rejection Rate,FRR)和錯誤接受率(False Acceptance Rate,FAR)是用來評估指紋識別算法性能的兩個主要參數。FRR 是指把應當識別成功的指紋誤認為不能識別的指紋的概率。FAR 是指不應當識別的指紋誤認為能識別的指紋的概率。與FAR對應的參數是正確接受率(True Acceptance Rate,TAR),即應當識別成功的指紋正確識別的概率。
本文所涉及的實驗為基于密集連接卷積網絡的算法模型的訓練和測試,以及指紋圖像的注冊和識別,實驗模擬環境為Intel CPU i7、8 GB 內存和顯卡GTX1060。表2 列出了網絡訓練模型的參數設置,此外每一卷積層和池化層后緊跟BN 和ReLU 操作,以防止網絡過擬合和加快網絡訓練。誤差函數選用Triplet Loss 和Softmax Loss;初始學習率設置為0.1,每10 000次迭代的學習率將減少到當前值的1/10,直到學習率變為0.000 1。

表2 網絡訓練模型詳細設置
本文設計第一組實驗用來驗證密集連接卷積網絡的表達特征能力。實驗內容是將DB1和DB2中的訓練集和驗證集分別在基于密集連接卷積網絡模型中進行訓練和驗證。網絡模型參數完全一致,差異就是數據集的不同。測試和驗證的實驗數據如圖9 所示。實驗數據表明,兩個數據庫在訓練過程中隨著訓練步數的增加,損失值越來越小,最后趨近于穩定。在驗證過程中,兩個數據集準確率分別是96.80%和97.47%。通過兩組實驗的數據可以得出,基于密集連接卷積網絡模型對小面積指紋有著良好的識別性能,即通過網絡模型提取的指紋特征有著良好的表征能力,且增強的指紋圖像的準確率高于指紋原圖的準確率,即指紋預處理操作可以提高指紋識別率。

圖9 網絡訓練和測試曲線
第二組實驗是驗證將二值特征引入深度學習模型對算法性能的影響。網絡模型1為表1中展示的網絡模型。網絡模型2 為將表1 中二值特征換成全局池化層,模型訓練時全連接層輸入為1行384列矩陣。實驗內容是將DB2中的注冊集和測試集,采用注冊和識別策略進行測試。指紋識別過程中,匹配特征只選擇二值特征,并適當減少閾值φ,測試的ROC(Receiver Operating Characteristic)曲線如圖10所示。當錯誤接受率FAR為20%時,網絡模型1 的FRR 為1.35%,比網絡模型2 低0.42 個百分點。此外在兩條曲線的FAR 減少到一致之前,網絡模型1的算法的錯誤拒絕率FRR總低于網絡模型2。實驗數據表明,將二值特征引入到深度學習模型能夠很好地降低二值特征之間的相關性,提高匹配率。另外二值特征之間的相關性降低,能夠直接減少相似特征點的匹配次數,從而提高計算速度。

圖10 特征為二值特征的ROC曲線
第三組實驗是在DB2 中注冊集和測試集上設計了兩種指紋識別方法與本文方法進行對比。方法1 是引入二值特征的34層殘差網絡模型[17],方法2是基于細節特征的傳統指紋識別方法[19]。ROC 曲線如圖11 所示,本文方法的正確接受率TAR 達到98.57%,且隨著錯誤接受率FAR 的增加,本文方法的正確接受率TAR 一直高于方法1和方法2,說明本文方法優于34層殘差網絡模型和基于細節特征點的傳統指紋識別方法。

圖11 DB2的ROC曲線
實驗結果表明,本文提出的基于密集連接卷積網絡模型的小面積指紋識別算法,在自建庫上正確接受率TAR 達到98.57%,即所提取的特征具備良好的表達圖像能力,同時基本上滿足智能手機小面積指紋識別的應用要求。
隨著集成電路的快速發展,廉價、面積較小的電容式指紋采集器廣泛應用在智能手機端,采用傳統指紋識別算法實現小面積指紋注冊和識別時出現識別率低下的問題,本文提出一種基于密集連接卷積網絡的小面積指紋識別方法。該方法利用訓練好的深度學習模型提取指紋圖像的特征向量和二值特征,實現小面積指紋的注冊和識別,并在自建庫上正確接受率TAR達到98.57%,對小面積指紋有著良好的識別率和魯棒性。目前,不少平臺支持將深度學習模型移植到智能手機端,為擁有高識別率的基于密集連接卷積網絡小面積指紋識別算法的廣泛應用奠定了基礎。