姚麗莎,徐國明,陳乃金,周 歡
(安徽新華學(xué)院信息系統(tǒng)軟件研究所,安徽 合肥 230088)
近年來,指紋識別技術(shù)現(xiàn)今已經(jīng)發(fā)展成熟,國內(nèi)外許多指紋識別研究成果主要描述如何構(gòu)造特征描述符。目前指紋描述符主要分為基于細(xì)節(jié)點的描述符和基于紋理的描述符兩類。TICO M[1]提出一種基于方向信息的描述符,PARK U[2]提出描述指紋信息的SIFT[3]描述符,JIANG X[4]提出最近鄰描述符,CHEN X[5]提出固定半徑的特征描述符,F(xiàn)ENG J[6]提出混合描述符可以結(jié)合細(xì)節(jié)點和紋理特征,CAPPELLI R[7]提出細(xì)節(jié)點柱形編碼(Minutia Cylinder-Code,MCC)結(jié)構(gòu)。
但是,指紋識別領(lǐng)域目前的研究重心主要在提高指紋識別的準(zhǔn)確度,忽略了海量指紋數(shù)據(jù)識別的時間問題,海量指紋識別的實用性成為主要難題。MIRON R[8]提出了一種新的指紋識別架構(gòu),在多個服務(wù)器上分別放置大量的指紋數(shù)據(jù),在各個服務(wù)器上順序檢索指紋,檢索成功后結(jié)束。該架構(gòu)雖然解決了數(shù)據(jù)集分布式存儲的問題,但是仍為集中式計算,并未實現(xiàn)分布式并行計算,不能完成實時檢索。PERALTA D[9]根據(jù)指紋的分布式特點,在多個節(jié)點上進行指紋數(shù)據(jù)分布,在每個節(jié)點上并行的檢索指紋,可以解決海量指紋數(shù)據(jù)實時檢索的問題。目前的指紋識別系統(tǒng)主要通過暴力匹配,而這對于海量指紋是不適用的。本文提出了分布式海量指紋識別技術(shù),首先對采集的指紋進行特征提取,然后利用指紋特征對指紋進行全局指紋分類,最后利用匹配界限盒方法進行指紋匹配以完成未知指紋數(shù)據(jù)的身份確認(rèn)。利用分布式網(wǎng)絡(luò)計算的運算特性,設(shè)計了一個分布式海量指紋識別系統(tǒng)。
在海量指紋數(shù)據(jù)檢索的過程中,需要從數(shù)據(jù)庫下載一些待比對的指紋圖像到本地,為了滿足應(yīng)用需要,對指紋數(shù)據(jù)進行壓縮傳輸。目前,存在一種壓縮方法可以滿足對指紋圖像數(shù)據(jù)進行壓縮傳輸?shù)默F(xiàn)實應(yīng)用要求,可以把原有的指紋特點保存,這種壓縮方法就是小波壓縮[10]。小波變換子頻段編碼的實現(xiàn)方法:①用一組濾波器采用重復(fù)卷積的方法,把采集信號分為低頻和高頻。②統(tǒng)計低頻和高頻分量,量化特征相類似的編碼器。③在解碼時,為了重建圖像需要對低頻分量和高頻分量進行插值和共軛濾波?;驹砣鐖D1所示。
圖1 子頻段編碼原理圖
小波變換子頻段編碼的主要工作包括:①一個濾波器(Qualcomm,low pass)把輸入端在水平方向的信號進行卷積,同時另一個濾波器(Qualcomm,low pass)把輸入端在垂直方向的信號進行卷積[11]。②能夠獲得四塊面積,把這四塊面積與原圖像進行相比,可以看到占到原圖面積的25%,這四塊面積包括:低頻分量LL、垂直方向的高頻分量HL、水平方向的高頻分量LH和對角線方向的高頻分量HH。③編碼高頻分量以及量化編碼,編碼低頻分量以及量化編碼。④繼續(xù)分解垂直高頻分量得到二級小波分解和三級小波分解,編碼也類似[12]。三級小波分解如圖2所示。
圖2 三級小波分解
圖像壓縮具體做法包括:設(shè)置一個閾值σ,把經(jīng)過小波變換得到的水平、垂直和對角細(xì)節(jié)分量值與該閾值σ比較,再把小于等于σ的細(xì)節(jié)分量值設(shè)置為“0”。由此進行編碼,這樣就實現(xiàn)了圖像壓縮。
編碼是壓縮的最后一個步驟。通常結(jié)合赫夫曼編碼和快速余弦變換方法來壓縮低分辨率子圖HH,去除細(xì)節(jié)子圖的高頻分量,結(jié)合Huffman編碼來壓縮圖像。使用赫夫曼編碼方法包括以下步驟:①按降序排列概率的大小。②對兩個最小的概率進行加法運算,然后一個新的概率集合就構(gòu)成了,按降序排列概率的大小,以此類推,一直到只存在兩個概率為止。③碼子需從最后開始完成反向分配,對最后兩個概率一個賦予“0”,一個賦予“1”。對碼子進行概率統(tǒng)計。然而在實際應(yīng)用中,每幅圖像的出現(xiàn)概率是不同的,對于任何圖像壓縮而言,需要進行概率統(tǒng)計。
分布式網(wǎng)絡(luò)是把指紋數(shù)據(jù)庫分布存儲,根據(jù)不同地域,將指紋存儲在不同地方。并且每個分?jǐn)?shù)據(jù)庫根據(jù)指紋特征分類存儲指紋數(shù)據(jù)信息,每一個分?jǐn)?shù)據(jù)庫服務(wù)器同時搜尋,進而提高對未知指紋數(shù)據(jù)身份確認(rèn)的速度。
海量指紋數(shù)據(jù)庫識別系統(tǒng)包括3個部分:①利用指紋采集設(shè)備對個體進行指紋采集,然后對采集的指紋進行指紋預(yù)處理和特征提取。②計算機發(fā)送采集的指紋數(shù)據(jù)到數(shù)據(jù)庫服務(wù)器。③利用全局指紋分類系統(tǒng)驗證采集的指紋,通過以上操作進行未知指紋數(shù)據(jù)的身份確認(rèn)。原理圖如圖3所示。
圖3 分布式海量指紋識別系統(tǒng)的原理圖
圖4 分布式海量指紋識別系統(tǒng)架構(gòu)
分布式海量指紋識別系統(tǒng)的工作流程包括:①利用指紋采集設(shè)備對個體進行指紋采集。②計算機通過預(yù)處理和對采集的指紋進行特征提取,利用計算機將采集的指紋數(shù)據(jù)發(fā)送到指紋數(shù)據(jù)庫主服務(wù)器中。③指紋數(shù)據(jù)主服務(wù)器將特征信息發(fā)送給每個指紋數(shù)據(jù)分服務(wù)器。④每個指紋數(shù)據(jù)分服務(wù)器對特征信息進行提取,并在指紋數(shù)據(jù)庫分服務(wù)器中搜尋,然后將結(jié)果發(fā)送到指紋數(shù)據(jù)主服務(wù)器。⑤指紋數(shù)據(jù)主服務(wù)器把結(jié)果發(fā)送到計算機。具體流程如圖4所示。
指紋預(yù)處理目的是提高指紋圖像的質(zhì)量,將特征提取的準(zhǔn)確性提高。本文預(yù)處理過程包括圖像分割、增強、二值化和細(xì)化。指紋預(yù)處理流程圖如圖5所示。
圖5 指紋預(yù)處理流程圖
2.3.1 指紋圖像分割
因為指紋與圖像背景難以區(qū)分,需要對指紋圖像進行分割。背景的梯度值較低,而指紋圖像的梯度場值比較高。因此,利用梯度場來進行指紋圖像分割,即采用分型維數(shù)來分割指紋圖像。圖像塊的分形維數(shù)描述了其紋理和灰度分布的復(fù)雜程度,其是單位區(qū)域上的梯度,利用前景與背景的分形維數(shù)可以區(qū)分圖像的前景和背景。本文利用分形維數(shù)來分割指紋圖像的背景與前景,具體步驟如下:
2.3.1.1 定義F盒維數(shù)
即設(shè)F是Rn上的任意非空的有界子集,Nσ是直徑最大為σ、可以覆蓋F的集合的最少個數(shù)。則F的盒維數(shù)定義為:
(1)
2.3.1.2 計算圖像的盒維數(shù)
圖像中像素點的灰度值表示為Z=f(x,y),其中,(x,y)為像素點的位置坐標(biāo),Z代表對應(yīng)點的灰度值。設(shè)圖像大小為M×M,將圖像的XY平面分成大小為σ×σ的格子,設(shè)該XY坐標(biāo)系中格子(i,j)里像素點灰度最大值為uσ(i,j),灰度最小值為bσ(i,j),且定義兩者的差值為:
(2)
對于所有邊長σ、格子非空的盒子總數(shù)Nσ的計算公式為:
(3)
2.3.1.3 計算梯度值
2.3.1.4 通過梯度閾值分割前景和背景