龐心怡,丁 斌
(西安文理學(xué)院 信息工程學(xué)院,陜西 西安 710000)
隨著數(shù)字化、信息化社會(huì)的快速發(fā)展,人們對(duì)身份認(rèn)證安全性的重視程度不斷提高。目前,市場(chǎng)上應(yīng)用最廣泛的信息識(shí)別技術(shù)均存在一定缺陷,如:臉部整形手術(shù)、不同程度的化妝等均會(huì)影響到人臉識(shí)別技術(shù)的準(zhǔn)確性;指紋識(shí)別會(huì)因過干、過濕、臟污等原因而影響識(shí)別準(zhǔn)確率,且指紋容易被竊取或偽造;基于密碼等傳統(tǒng)身份識(shí)別方法會(huì)因密碼泄露而對(duì)用戶的人身財(cái)產(chǎn)安全造成威脅。與傳統(tǒng)識(shí)別方法相比,虹膜識(shí)別是一種更安全的技術(shù)。一方面,虹膜穩(wěn)定性強(qiáng),難以改變紋理;另一方面,虹膜難以偽造,只有在用戶配合的情況下才可以提取用戶的虹膜圖像。
DAUGMAN算法是自動(dòng)識(shí)別系統(tǒng)的核心算法。據(jù)了解,國(guó)際民用航空組織即ICAO作為將該技術(shù)應(yīng)用于機(jī)場(chǎng)安檢的領(lǐng)頭羊,已率先將多個(gè)成員國(guó)的持證人虹膜等生物信息嵌入電子護(hù)照并用于機(jī)場(chǎng)安檢。美國(guó)德克薩斯州也在銀行營(yíng)業(yè)部安裝了可以識(shí)別虹膜的系統(tǒng)設(shè)備以對(duì)辦理銀行業(yè)務(wù)的用戶進(jìn)行身份檢驗(yàn)。許多國(guó)家和地區(qū)也有使用虹膜識(shí)別技術(shù)的示例[1]。
以FPGA開發(fā)板為基礎(chǔ)的虹膜識(shí)別系統(tǒng)具有諸多優(yōu)勢(shì),比如體積小巧、識(shí)別速度快、精準(zhǔn)度高等。將賽靈思公司生產(chǎn)的PYNQ作為硬件基礎(chǔ),將Python作為輔助開發(fā)環(huán)境,使用ARM外置攝像頭進(jìn)行圖像采集和眼睛輪廓尋找,結(jié)合大量經(jīng)典算法與創(chuàng)新應(yīng)用,使得虹膜切割、比對(duì)更精細(xì)且迅速,在保證客戶信息安全的基礎(chǔ)上,提高識(shí)別速度,為用戶提供便利[2]。系統(tǒng)構(gòu)成如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)邏輯框架如圖2所示。

圖2 系統(tǒng)邏輯框架
2.2.1 圖像采集與預(yù)處理
由ARM攝像頭拍攝的人眼圖片中不僅有需要的虹膜,還有眼瞼、睫毛、瞳孔等,因此有必要對(duì)收集的虹膜圖像進(jìn)行預(yù)先處理。定位并截取虹膜,因?yàn)楹缒ず屯椎幕叶戎迪鄬?duì)較大,即漸變值較大,所以我們通過閾值分割、數(shù)學(xué)形態(tài)運(yùn)算和Hough變換來定位虹膜的內(nèi)邊緣。
Hough變換是一種基于圖像全局分割結(jié)果的邊緣連接技術(shù),其抗干擾能力極強(qiáng),可以檢測(cè)任何形狀的曲線。使用圖像空間和Hough參數(shù)空間的對(duì)偶性,可將圖像空間中的監(jiān)測(cè)問題變換至參數(shù)空間[3-4]。通過Hough變換進(jìn)行邊緣檢測(cè),找出邊緣點(diǎn);對(duì)任何一個(gè)邊緣點(diǎn)找到所有可能經(jīng)過該點(diǎn)的直線,所有直線均各自對(duì)應(yīng)參數(shù)空間中的某個(gè)點(diǎn),并將參數(shù)空間中相對(duì)應(yīng)邊緣點(diǎn)的無數(shù)直線在參數(shù)空間中形成曲線[5],從而把檢驗(yàn)整體特性變成檢測(cè)局部特性問題。
通過Hough變換,將圖像空間(x,y)對(duì)應(yīng)到(a,b,r)參數(shù)空間。設(shè)置x-y坐標(biāo)進(jìn)行搜檢并明確圓的參數(shù),得到圖像中等待檢測(cè)的一組圓周點(diǎn)為{(xi,yi),i=1, 2, ...,n},其中(x,y)為該集合中的一點(diǎn),其在參數(shù)坐標(biāo)(a,b,r)下對(duì)應(yīng)的解析式為:

如果集合中的點(diǎn)都在同一圓上,則這些圓錐形簇在參數(shù)空間上的一個(gè)點(diǎn)處相交[4],該點(diǎn)巧妙地對(duì)應(yīng)于圖像平面上圓的中心坐標(biāo)和半徑。
值得注意的是,在處理虹膜區(qū)域和孔膜區(qū)域時(shí),因?yàn)閮烧呋叶炔钶^小,使用的Hough變換準(zhǔn)確度低,所以在定位瞳孔后,需確定瞳孔圓心及半徑,以1.5倍的瞳孔半徑進(jìn)行定位,截取兩圓之間的圓環(huán)作為虹膜環(huán)[6]。將虹膜環(huán)在極坐標(biāo)下轉(zhuǎn)換成矩形,極坐標(biāo)轉(zhuǎn)換的效果如圖3所示。

圖3 虹膜環(huán)矩形化
2.2.2 Gabor濾波
Gabor濾波器可以提取空間局部頻率特征,是一種慣用的紋理檢測(cè)工具。在二維空間中,將正弦波(二維Gabor濾波器的平面波)與高斯函數(shù)相乘以獲得Gabor濾波器的脈沖[7]。二維Gabor濾波器簇可以模擬簡(jiǎn)單皮質(zhì)細(xì)胞的二維接收?qǐng)鲚喞⑶铱梢杂行崛D像的局部方向和頻率信息的特征,從而達(dá)到識(shí)別虹膜的目的[8]。
復(fù)數(shù)表達(dá):

實(shí)數(shù)部分:

虛數(shù)部分:

式中:λ代表正弦因子的波長(zhǎng);θ代表Gabor函數(shù)平行條紋的法向方向;ψ為相位偏移;σ為高斯包絡(luò)的標(biāo)準(zhǔn)差;γ為空間縱橫比,指定Gabor函數(shù)支持的橢圓度。
Gabor濾波后的虹膜圖像如圖4所示。

圖4 Gabor濾波后的虹膜圖像
感知哈希算法、均值哈希算法以及差值哈希算法是3種常用的匹配算法,各有側(cè)重點(diǎn),故將三者相結(jié)合來計(jì)算2張圖片的相似度以提高效率。
2.3.1 均值哈希算法
該算法通過提取圖片中的低頻信息對(duì)相似度進(jìn)行辨識(shí),通過不同圖片上的特征相似性判斷每張圖片上的特征字符串。
均值哈希算法使用簡(jiǎn)便,不受制于圖形的尺寸分辨率。但是它受均值的影響較大,識(shí)別不夠精確。若進(jìn)行伽馬矯正或者直方圖均衡等操作,該算法會(huì)受到較大的影響,從而導(dǎo)致較大的判別誤差。均值哈希算法步驟如下:
(1)縮小尺寸:將不同尺寸的圖片縮小到統(tǒng)一規(guī)格。
(2)簡(jiǎn)化圖片色彩:將縮小后的圖片轉(zhuǎn)換為灰度圖像。

(3)計(jì)算期望:計(jì)算灰度處理后所有像素的灰度期望值。
(4)比較像素灰度:將所有像素的灰度值與標(biāo)準(zhǔn)值一一比較,大于或等于標(biāo)準(zhǔn)值,記為1;小于標(biāo)準(zhǔn)值,記為0。
(5)計(jì)算哈希值:將上述結(jié)果組合后構(gòu)成一個(gè)64位的整數(shù),即這張圖片的特征字符串。組合的順序不予考慮,只要求所有圖片均采用相同的順序。
(6)對(duì)比圖片指紋:得到圖片指紋后,可借助漢明距離(Hamming Distance)確定圖片的相似度[9]。若不等同的數(shù)據(jù)位小于或等于5,則說明2張圖片具有較大的相似性;若不等同的數(shù)據(jù)位小于或等于10,則說明2張圖片完全不同。
2.3.2 感知哈希算法
該算法先將圖片轉(zhuǎn)化為哈希字符串,之后再進(jìn)行比較。該算法采用DCT(離散余弦變換)降低頻率,以識(shí)別圖片是否變形,若變形程度小于或等于25%,則可匹配原圖。感知哈希算法的結(jié)果可以避免伽馬校正或直方圖調(diào)整的影響[4]。
感知哈希算法具體步驟如下:
(1)縮小圖片尺寸:pHash(感知哈希)對(duì)圖片尺寸有要求,須方便DCT計(jì)算。
(2)轉(zhuǎn)化為灰度圖:把縮放后所得的圖片進(jìn)行灰度化處理,進(jìn)一步簡(jiǎn)化計(jì)算。
(3)計(jì)算DCT:將圖片分割成分率的集合,得到DCT系數(shù)矩陣。
(4)縮小DCT:結(jié)果保存到小矩陣中,代表圖片的最低頻率。
(5)計(jì)算平均值:計(jì)算縮小DCT后所有像素點(diǎn)的平均值。
(6)進(jìn)一步減小DCT:將大于平均值的數(shù)據(jù)記錄為1,反之記錄為0。
(7)得到特征值:將64個(gè)信息位組合。
(8)對(duì)比指紋:求兩張圖片的特征值等同于求兩張圖片的漢明距。漢明距越大說明圖片差異越大,反之,漢明距越小圖片相似性越高,當(dāng)2幅圖片完全相同時(shí),漢明距為0。
2.3.3 差值哈希算法
差值哈希算法基于漸變現(xiàn)實(shí)計(jì)算,因此運(yùn)算速度較快,效果更好。差值哈希算法具體步驟如下:
(1)縮小圖片尺寸:將圖片縮小到72像素。
(2)簡(jiǎn)化色彩:將縮小后的圖片轉(zhuǎn)為64級(jí)灰度。
(3)計(jì)算差異值:相鄰2個(gè)元素相減,得出8個(gè)不同的差異值。
(4)處理差異值:若差異值為正數(shù)或0,記為1;若為負(fù)數(shù),記為0。
(5)得到“指紋”:將64個(gè)結(jié)果結(jié)合便可得到哈希值,即圖像的“指紋”。
設(shè)計(jì)依靠5人共10種虹膜樣本進(jìn)行驗(yàn)證,每個(gè)樣本分別多次試驗(yàn)。在同一虹膜的識(shí)別對(duì)比中,成功率高于90%。在不同虹膜的識(shí)別判定實(shí)驗(yàn)中,成功率為0,可見此設(shè)計(jì)能夠滿足虹膜識(shí)別的基本要求。
本文討論了一種可運(yùn)行于FPGA平臺(tái)的虹膜識(shí)別辦法,經(jīng)驗(yàn)證,行之有效。借助ARM+FPGA平臺(tái),可以將計(jì)算量相對(duì)較大的計(jì)算機(jī)圖像處理過程轉(zhuǎn)移到中小型開發(fā)板中。