龐心怡,丁 斌
(西安文理學(xué)院 信息工程學(xué)院,陜西 西安 710000)
隨著數(shù)字化、信息化社會的快速發(fā)展,人們對身份認證安全性的重視程度不斷提高。目前,市場上應(yīng)用最廣泛的信息識別技術(shù)均存在一定缺陷,如:臉部整形手術(shù)、不同程度的化妝等均會影響到人臉識別技術(shù)的準(zhǔn)確性;指紋識別會因過干、過濕、臟污等原因而影響識別準(zhǔn)確率,且指紋容易被竊取或偽造;基于密碼等傳統(tǒng)身份識別方法會因密碼泄露而對用戶的人身財產(chǎn)安全造成威脅。與傳統(tǒng)識別方法相比,虹膜識別是一種更安全的技術(shù)。一方面,虹膜穩(wěn)定性強,難以改變紋理;另一方面,虹膜難以偽造,只有在用戶配合的情況下才可以提取用戶的虹膜圖像。
DAUGMAN算法是自動識別系統(tǒng)的核心算法。據(jù)了解,國際民用航空組織即ICAO作為將該技術(shù)應(yīng)用于機場安檢的領(lǐng)頭羊,已率先將多個成員國的持證人虹膜等生物信息嵌入電子護照并用于機場安檢。美國德克薩斯州也在銀行營業(yè)部安裝了可以識別虹膜的系統(tǒng)設(shè)備以對辦理銀行業(yè)務(wù)的用戶進行身份檢驗。許多國家和地區(qū)也有使用虹膜識別技術(shù)的示例[1]。
以FPGA開發(fā)板為基礎(chǔ)的虹膜識別系統(tǒng)具有諸多優(yōu)勢,比如體積小巧、識別速度快、精準(zhǔn)度高等。將賽靈思公司生產(chǎn)的PYNQ作為硬件基礎(chǔ),將Python作為輔助開發(fā)環(huán)境,使用ARM外置攝像頭進行圖像采集和眼睛輪廓尋找,結(jié)合大量經(jīng)典算法與創(chuàng)新應(yīng)用,使得虹膜切割、比對更精細且迅速,在保證客戶信息安全的基礎(chǔ)上,提高識別速度,為用戶提供便利[2]。系統(tǒng)構(gòu)成如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)邏輯框架如圖2所示。
圖2 系統(tǒng)邏輯框架
2.2.1 圖像采集與預(yù)處理
由ARM攝像頭拍攝的人眼圖片中不僅有需要的虹膜,還有眼瞼、睫毛、瞳孔等,因此有必要對收集的虹膜圖像進行預(yù)先處理。定位并截取虹膜,因為虹膜和瞳孔的灰度值相對較大,即漸變值較大,所以我們通過閾值分割、數(shù)學(xué)形態(tài)運算和Hough變換來定位虹膜的內(nèi)邊緣。
Hough變換是一種基于圖像全局分割結(jié)果的邊緣連接技術(shù),其抗干擾能力極強,可以檢測任何形狀的曲線。使用圖像空間和Hough參數(shù)空間的對偶性,可將圖像空間中的監(jiān)測問題變換至參數(shù)空間[3-4]。通過Hough變換進行邊緣檢測,找出邊緣點;對任何一個邊緣點找到所有可能經(jīng)過該點的直線,所有直線均各自對應(yīng)參數(shù)空間中的某個點,并將參數(shù)空間中相對應(yīng)邊緣點的無數(shù)直線在參數(shù)空間中形成曲線[5],從而把檢驗整體特性變成檢測局部特性問題。
通過Hough變換,將圖像空間(x,y)對應(yīng)到(a,b,r)參數(shù)空間。設(shè)置x-y坐標(biāo)進行搜檢并明確圓的參數(shù),得到圖像中等待檢測的一組圓周點為{(xi,yi),i=1, 2, ...,n},其中(x,y)為該集合中的一點,其在參數(shù)坐標(biāo)(a,b,r)下對應(yīng)的解析式為:
如果集合中的點都在同一圓上,則這些圓錐形簇在參數(shù)空間上的一個點處相交[4],該點巧妙地對應(yīng)于圖像平面上圓的中心坐標(biāo)和半徑。
值得注意的是,在處理虹膜區(qū)域和孔膜區(qū)域時,因為兩者灰度差較小,使用的Hough變換準(zhǔn)確度低,所以在定位瞳孔后,需確定瞳孔圓心及半徑,以1.5倍的瞳孔半徑進行定位,截取兩圓之間的圓環(huán)作為虹膜環(huán)[6]。將虹膜環(huán)在極坐標(biāo)下轉(zhuǎn)換成矩形,極坐標(biāo)轉(zhuǎn)換的效果如圖3所示。
圖3 虹膜環(huán)矩形化
2.2.2 Gabor濾波
Gabor濾波器可以提取空間局部頻率特征,是一種慣用的紋理檢測工具。在二維空間中,將正弦波(二維Gabor濾波器的平面波)與高斯函數(shù)相乘以獲得Gabor濾波器的脈沖[7]。二維Gabor濾波器簇可以模擬簡單皮質(zhì)細胞的二維接收場輪廓,并且可以有效提取圖像的局部方向和頻率信息的特征,從而達到識別虹膜的目的[8]。
復(fù)數(shù)表達:
實數(shù)部分:
虛數(shù)部分:
式中:λ代表正弦因子的波長;θ代表Gabor函數(shù)平行條紋的法向方向;ψ為相位偏移;σ為高斯包絡(luò)的標(biāo)準(zhǔn)差;γ為空間縱橫比,指定Gabor函數(shù)支持的橢圓度。
Gabor濾波后的虹膜圖像如圖4所示。
圖4 Gabor濾波后的虹膜圖像
感知哈希算法、均值哈希算法以及差值哈希算法是3種常用的匹配算法,各有側(cè)重點,故將三者相結(jié)合來計算2張圖片的相似度以提高效率。
2.3.1 均值哈希算法
該算法通過提取圖片中的低頻信息對相似度進行辨識,通過不同圖片上的特征相似性判斷每張圖片上的特征字符串。
均值哈希算法使用簡便,不受制于圖形的尺寸分辨率。但是它受均值的影響較大,識別不夠精確。若進行伽馬矯正或者直方圖均衡等操作,該算法會受到較大的影響,從而導(dǎo)致較大的判別誤差。均值哈希算法步驟如下:
(1)縮小尺寸:將不同尺寸的圖片縮小到統(tǒng)一規(guī)格。
(2)簡化圖片色彩:將縮小后的圖片轉(zhuǎn)換為灰度圖像。
(3)計算期望:計算灰度處理后所有像素的灰度期望值。
(4)比較像素灰度:將所有像素的灰度值與標(biāo)準(zhǔn)值一一比較,大于或等于標(biāo)準(zhǔn)值,記為1;小于標(biāo)準(zhǔn)值,記為0。
(5)計算哈希值:將上述結(jié)果組合后構(gòu)成一個64位的整數(shù),即這張圖片的特征字符串。組合的順序不予考慮,只要求所有圖片均采用相同的順序。
(6)對比圖片指紋:得到圖片指紋后,可借助漢明距離(Hamming Distance)確定圖片的相似度[9]。若不等同的數(shù)據(jù)位小于或等于5,則說明2張圖片具有較大的相似性;若不等同的數(shù)據(jù)位小于或等于10,則說明2張圖片完全不同。
2.3.2 感知哈希算法
該算法先將圖片轉(zhuǎn)化為哈希字符串,之后再進行比較。該算法采用DCT(離散余弦變換)降低頻率,以識別圖片是否變形,若變形程度小于或等于25%,則可匹配原圖。感知哈希算法的結(jié)果可以避免伽馬校正或直方圖調(diào)整的影響[4]。
感知哈希算法具體步驟如下:
(1)縮小圖片尺寸:pHash(感知哈希)對圖片尺寸有要求,須方便DCT計算。
(2)轉(zhuǎn)化為灰度圖:把縮放后所得的圖片進行灰度化處理,進一步簡化計算。
(3)計算DCT:將圖片分割成分率的集合,得到DCT系數(shù)矩陣。
(4)縮小DCT:結(jié)果保存到小矩陣中,代表圖片的最低頻率。
(5)計算平均值:計算縮小DCT后所有像素點的平均值。
(6)進一步減小DCT:將大于平均值的數(shù)據(jù)記錄為1,反之記錄為0。
(7)得到特征值:將64個信息位組合。
(8)對比指紋:求兩張圖片的特征值等同于求兩張圖片的漢明距。漢明距越大說明圖片差異越大,反之,漢明距越小圖片相似性越高,當(dāng)2幅圖片完全相同時,漢明距為0。
2.3.3 差值哈希算法
差值哈希算法基于漸變現(xiàn)實計算,因此運算速度較快,效果更好。差值哈希算法具體步驟如下:
(1)縮小圖片尺寸:將圖片縮小到72像素。
(2)簡化色彩:將縮小后的圖片轉(zhuǎn)為64級灰度。
(3)計算差異值:相鄰2個元素相減,得出8個不同的差異值。
(4)處理差異值:若差異值為正數(shù)或0,記為1;若為負數(shù),記為0。
(5)得到“指紋”:將64個結(jié)果結(jié)合便可得到哈希值,即圖像的“指紋”。
設(shè)計依靠5人共10種虹膜樣本進行驗證,每個樣本分別多次試驗。在同一虹膜的識別對比中,成功率高于90%。在不同虹膜的識別判定實驗中,成功率為0,可見此設(shè)計能夠滿足虹膜識別的基本要求。
本文討論了一種可運行于FPGA平臺的虹膜識別辦法,經(jīng)驗證,行之有效。借助ARM+FPGA平臺,可以將計算量相對較大的計算機圖像處理過程轉(zhuǎn)移到中小型開發(fā)板中。