劉 帥,劉元寧,朱曉冬,馮家凱 ,盧時旭
1.吉林大學 符號計算與知識工程教育部重點實驗室,長春 130012
2.吉林大學 軟件學院,長春 130012
3.吉林大學 計算機科學與技術學院,長春 130012
虹膜因其具有的唯一性、非侵犯性、穩定性以及天然防偽性[1]等特點,使得準確率較其他生物特征高。因此,虹膜識別技術是當前比較熱門的生物特征識別技術之一。
虹膜識別過程分為虹膜圖像采集,虹膜質量評價,虹膜定位,虹膜歸一增強,虹膜特征表達與匹配[2]。虹膜定位就是定位出虹膜內外邊界,將兩個邊界間的虹膜環形區域分割出來,以方便虹膜特征表達和識別[3]。傳統的虹膜定位算法有Daugman提出的微積分圓模板法[4]?;谶吘墮z測的hough法[5]。馮薪樺博士運用二值圖像下邊緣粗定位虹膜內邊界,并利用內邊界圓心左右兩側的一維灰度均值信號粗定位虹膜外邊界[6]。Tan提出采用邊緣檢測和圓擬合的算法實現虹膜定位[7]。Yu采用基于小范圍搜索的虹膜定位算法[8]。這些算法雖然能準確定位虹膜的位置,但魯棒性較差,對圖像要求都較高,并且對眼毛眼瞼,光照等噪聲干擾的抗干擾能力較差,識別效果不穩定。
因此,本文提出基于分塊搜索的虹膜定位算法。由內到外、由粗到細對虹膜進行定位。用多種虹膜庫在相同識別算法下進行處理,實驗證明,該算法可以有效增強虹膜定位的魯棒性,并且不同采集器在不同條件下所采集的虹膜圖像均可以使用該算法進行虹膜定位,識別效果穩定。
2.1.1內圓去光斑處理
虹膜內圓就是眼睛的瞳孔部分,大多數虹膜采集器出于增強光照以及定位需要,會在攝像頭旁加裝LED燈。因此實際采集的眼睛圖像中瞳孔會有一圈光斑,光斑會給虹膜定位造成極大的干擾,因此首先要去除光斑的影響。
首先根據眼睛中瞳孔、眼毛、虹膜、鞏膜、皮膚之間灰度值的差異,用閾值處理法[9]將眼睛圖像轉為二值圖像。眼睛圖像中,瞳孔和眼毛灰度值最小,虹膜灰度值比它們大,因此,選取灰度圖中第一個波峰之后的第一個波谷的值T作為閾值[10]。圖1的灰度直方圖如圖2所示,閾值化公式如式(1)所示:

圖1 采集的眼睛圖像

圖2 眼睛灰度直方圖以及閾值選取點

B(x,y)代表閾值化后的灰度值,H代表點(x,y)的實際灰度值。圖1的圖像閾值化結果如圖3所示。

圖3 眼睛圖像的二值化圖像
由圖3可知,雖然瞳孔與部分眼毛已經被二值化為白色,但瞳孔內部還是有四個黑色的LED燈光斑。為去掉這些光斑。先用Sobel算子將瞳孔內的光斑邊緣檢測出來,Sobel算子是圖像處理中用于邊緣檢測的一種常見算子[11]。之后對光斑圖像依次進行開運算和閉運算[12]。運算公式如式(2)所示:

圓形結構元素用符號b和c表示。眼睛圖像用符號 f表示。得到的結果圖像如圖4所示。

圖4 光斑輪廓圖像
將得到光斑輪廓與二值化圖像疊加,并將疊加后的圖像用種子填充算法[13]填充瞳孔內光斑,進而得到無光斑二值化圖像。如圖5所示。

圖5 無光斑眼睛二值化圖像
2.1.2 內圓粗定位
用沒有光斑的二值化圖像做虹膜內圓定位,首先用基于邊緣檢測的hough法[14]進行內圓粗定位。hough圓檢測就是利用圖像的特征檢測出目標輪廓,將檢測到的連續或不連續的點連接起來,呈現出一種幾何形狀。利用這一特點,對無光斑二值化圖像進行圓檢測。hough變換過程圖公式(3)所示:

表示圓的參數空間。

當g(xj,yj,xc,yc,r)=0,表示以(xc,yc)為圓心,以r為半徑的圓通過了邊界點(xj,yj)。當H出現最大值的時候,表示邊界點經過該圓的時候,數量最多,認定該圓為邊界的輪廓圓。
本文對無光斑的二值化圖像進行處理,根據具體虹膜庫設定的參數尋找一個合適大小的圓認定為瞳孔所在圓。因為二值圖像中還是有眼瞼眼毛等干擾,可能造成圓的位置不準,偏離瞳孔。因此需要將所圈的圓的位置的周圍點的灰度值與灰度直方圖中的瞳孔灰度值比較,進而判斷所圈圓的位置是否為瞳孔。圖1的邊緣檢測圖如圖6所示。內圓粗定位圖如圖7所示。圈定截圖如圖8(a)所示。圈定圖灰度直方圖如圖8(b)所示。

圖6 無光斑眼睛二值化圖像邊緣檢測圖

圖7 虹膜粗定位圖

圖8 圈定區域截圖及其灰度直方圖
因為hough變換中參與計算的參數較多,而每張虹膜圖像的采集環境是不同的,因此同樣的參數不可能滿足所有虹膜,雖然hough圓檢測法可以找到瞳孔大致位置,但仍然無法完全匹配上瞳孔的輪廓。
2.1.3運用分塊搜索法的內圓精定位
精定位之前,首先要判斷粗定位定位出的瞳孔范圍與正式的瞳孔范圍相比是偏大還是偏小,還是粗定位的內圓已經達到精確定位的要求。
采用分塊搜索法,先根據瞳孔粗定位時得到的圓心和半徑,在無光斑眼睛二值化圖像四個方向上邊界鄰域上分別劃分正方形邊界檢測算子(檢測算子的大小根據具體虹膜庫而定,圖1虹膜的檢測算子為20×20)。檢測圖如圖9所示。

圖9 最初的分塊檢測算子
設定一個偏小閾值和一個偏大閾值,分別計算四個檢測算子范圍內的平均灰度值(分別為Nleft,Nright,Nup,Nunder),如果四個值中有的值過小,小于偏小閾值,說明這個方向上的瞳孔圈偏小,需要擴大瞳孔范圍。反之,如果四個值中有的值過大,大于偏大閾值,說明圈的范圍過大,需要縮小。本例中Nleft,Nup,Nunder的值全部為0,Nright為142.8,說明這上、下、左三處在瞳孔內部,圈的范圍偏小,需要擴大圈定瞳孔范圍。
之后在四個方向邊界鄰域上設置移動算子(移動算子的大小根據具體虹膜庫而定,圖1虹膜的移動算子豎直方向為10×20,水平方向為10×20)。本例最初狀態如圖10所示。

圖10 四邊界移動算子最初狀態
根據需要平移的方向,不斷平移移動算子,每移動n個像素點,就重新劃分新的檢測算子,檢測算子大小不變,并計算檢測算子的平均灰度值d,當d的值大于偏小閾值的時候(如果圈的范圍過大就看是否小于偏大閾值),記下移動距離m,橫縱坐標向該方向平移m的一半,半徑縮?。ɑ蚍糯螅﹎的一半。
設粗定位時劃定的圓心為(xc,yc),半徑為r。先統計需要平移的方向的個數。若只需要向一個方向平移。以向左移動為例,當移動算子在該方向上平移距離為m時,圓心坐標為,半徑為;若需要向兩個方向平移,以圓心坐標分別兩個方向平移,半徑根據三角函數得出,以左上平移為例,左平移距離為m,上平移距離為n時,圓心坐標,半徑為如果需要向三個方向平移,則先按某一方向調整圓心坐標與半徑,調整完畢后,再沿另外兩個方向平移,以左上下方向為例,移動算子先向左平移m,得到新圓心坐標為,新半徑為,之后再同時調整上下移動算子,上算子移動k,下算子移動t。最終的圓心坐標為最終半徑為若四個方向均需要調整,先在左右方向平移調整移動算子做平移m,右平移n,新圓心坐標為新半徑為 r±,之后再同時調整上下移動算子,上算子移動k,下算子移動t。最終的圓心坐標為最終半徑為
圖1圖像中左上下三個方向均需要調整,調整示意圖如圖11所示。

圖11 左側方向調整示意圖
圖1 的精定位內圓圖像如圖12所示。

圖12 內圓精定位
2.2.1 外圓粗定位
雖然虹膜的內外邊界不是同心圓,但具有一定的耦合關系[15]。因此外圓粗定位是結合內圓精定位得到的瞳孔圓心進行外圓粗定位。
首先,對圖像使用一個5×3的算子進行卷積操作,對卷積后的結果進行二值化操作。卷積操作圖像如圖13(a)所示,二值化圖像如圖13(b)所示。

圖13 卷積操作及其二值化
計算規定角度范圍弧線上的白點的數量,需要針對不同的半徑都要計算,半徑的變化范圍從(r,2×r)開始逐漸變大。由于虹膜圖像上下部分容易受到眼瞼眼毛等噪音的干擾,為了減小噪音對虹膜外邊界定位的干擾,因此僅計算一定虹膜角度下的白點數量,由圖13(b)可以看出,虹膜右下側白點較多,易讀取。為了在受干擾較小的情況下盡可能多地讀取白點的數量,選取角度范圍為瞳孔圓心水平方向正右側順時針0°~60°[16],之后按公式(5)計算:


圖14 外圓粗定位
2.2.2運用分塊搜索法的外圓精定位
卷積操作的外圓粗定位存在兩個問題,一是定位的外圓是以瞳孔為圓心的同心圓。二是因為每張圖像拍攝的條件不同,導致無法準確預估虹膜半徑與瞳孔半徑的比值。只能根據生理學的實踐得到的人眼虹膜半徑約為瞳孔半徑1~2倍這一結論[17],將最大半徑設為瞳孔半徑的2倍。因此,需要再次使用分塊搜索法進行外圓精確定位。
外圓的分塊與內圓類似,但亦有不同,需要根據外圓粗定位的圓心和半徑在水平方向兩邊界處劃分檢測算子(大小根據具體虹膜庫改變,本文例子使用10×20),如圖15所示。

圖15 外圓粗定位檢測算子示意圖
根據檢測算子的灰度直方圖,左右移動檢測算子,將檢測算子灰度直方圖中的灰度分布與眼睛圖像灰度直方圖中的灰度分布進行比較,分別取左右兩側灰度值分布達到鞏膜區域內的灰度值(第二波谷左右),檢測算子向左移動距離k,向右移動距離為m。粗定位圓心為(xc,yc),半徑為R。移動后,圓心為半徑為精確定位的外圓如圖16所示。

圖16 外圓精定位
本文使用了吉林大學自主采集第三代虹膜庫,選取了其中的60類別,每類別選取20張圖像,共計1 200張圖像;中科院CASIA-Iris-interval虹膜庫,選取了其中50類別,每類別選取了15張,共計750張圖像。圖像事先經過質量評價檢測[18]合格,但其中包含了多種類型,包括貼近邊界,較重眼毛等類型圖像,用于檢測算法魯棒性。
實驗將本文的虹膜定位算法與Daugman的微積分圓模板法[4]、hough圓定位法[5]、文獻[8]的小范圍搜索法進行比較。
本文中,四種方法統一使用Daugman教授提出的橡皮圈模型[19]進行虹膜圖像歸一化,將環形虹展開成一個512×64的矩形大小。并截取其中紋理最強的部分,截成256×32固定矩形區域。之后增強[20]圖像紋理。圖1的全環矩形如圖17(a)所示。截取圖像如圖17(b)所示。截取增強圖像如圖17(c)所示。

圖17 圖像歸一,增強示意圖
本實驗使用的CPU主頻為雙核2.5 GHz,內存為8 GB,操作系統為Windows XP sp3。在特征提取前,先對所有歸一化虹膜圖像進行水平移位消除虹膜旋轉問題[21]。之后,統一采用Daugman博士提出的二維Gabor濾波進行處理[22],篩選并且提取特征紋理信息,通過比較樣本間的歐式距離[23]判定虹膜圖像的歸屬。
ROC曲線[24]是一種表示錯誤拒絕率(False Reject Rate,FRR)以及錯誤接收率(False Accept Rate,FAR)關系的曲線。ROC曲線反映了虹膜識別算法的匹配性能。其越接近橫縱坐標軸,就代表系統的性能就越好。當FRR與FAR的值相等的時候,就是系統性能最好的時候,這個值稱為等錯率(Equal Error Rate,EER)。EER越小,性能越好。另外,正確識別率(Correct Recognition Rate,CRR)[25]也是常用的虹膜識別系統的性能評定指標之一。
本文根據CRR、EER、ROC曲線以及算法在內圓平均時間(Pupil Time,PT);外圓定位平均時間(Iris Time,IT)和整體平均定位時間(T),以及定位算法成功定位的虹膜數量進行算法的比較。
吉大虹膜庫實驗結果如表1所示,ROC曲線如圖18所示。CASIA-Iris-interval實驗結果如表2所示,ROC曲線如圖19所示。

表1 吉林大學虹膜庫實驗結果

表2 CASIA-Iris-interval實驗結果

圖18 吉林大學虹膜庫實驗結果的ROC曲線

圖19 CASIA-Iris-interval虹膜庫的實驗結果的ROC曲線
本文提出了一種基于分塊搜索的虹膜定位算法,先用閾值處理法將眼睛圖像轉化為二值圖像,然后利用sobel算子消除圖像中定位光斑的影響,用基于邊緣檢測的hough算法粗定位內圓;用分塊搜索法精定位內圓;用卷積操作粗略定位外圓;再利用分塊搜索精確定位虹膜外圓。使用兩種不同的虹膜庫,與另三種定位方法在相同特征表達以及識別算法下進行比較。實驗結果表明,相較于傳統定位算法,本文方法的ROC曲線更接近于橫縱坐標軸,平均耗時有所縮短并且準確率有所提升,抗干擾性有所加強,具有良好魯棒性。