劉 帥,劉元寧,朱曉冬,馮家凱 ,盧時(shí)旭
1.吉林大學(xué) 符號(hào)計(jì)算與知識(shí)工程教育部重點(diǎn)實(shí)驗(yàn)室,長(zhǎng)春 130012
2.吉林大學(xué) 軟件學(xué)院,長(zhǎng)春 130012
3.吉林大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,長(zhǎng)春 130012
虹膜因其具有的唯一性、非侵犯性、穩(wěn)定性以及天然防偽性[1]等特點(diǎn),使得準(zhǔn)確率較其他生物特征高。因此,虹膜識(shí)別技術(shù)是當(dāng)前比較熱門的生物特征識(shí)別技術(shù)之一。
虹膜識(shí)別過(guò)程分為虹膜圖像采集,虹膜質(zhì)量評(píng)價(jià),虹膜定位,虹膜歸一增強(qiáng),虹膜特征表達(dá)與匹配[2]。虹膜定位就是定位出虹膜內(nèi)外邊界,將兩個(gè)邊界間的虹膜環(huán)形區(qū)域分割出來(lái),以方便虹膜特征表達(dá)和識(shí)別[3]。傳統(tǒng)的虹膜定位算法有Daugman提出的微積分圓模板法[4]?;谶吘墮z測(cè)的hough法[5]。馮薪樺博士運(yùn)用二值圖像下邊緣粗定位虹膜內(nèi)邊界,并利用內(nèi)邊界圓心左右兩側(cè)的一維灰度均值信號(hào)粗定位虹膜外邊界[6]。Tan提出采用邊緣檢測(cè)和圓擬合的算法實(shí)現(xiàn)虹膜定位[7]。Yu采用基于小范圍搜索的虹膜定位算法[8]。這些算法雖然能準(zhǔn)確定位虹膜的位置,但魯棒性較差,對(duì)圖像要求都較高,并且對(duì)眼毛眼瞼,光照等噪聲干擾的抗干擾能力較差,識(shí)別效果不穩(wěn)定。
因此,本文提出基于分塊搜索的虹膜定位算法。由內(nèi)到外、由粗到細(xì)對(duì)虹膜進(jìn)行定位。用多種虹膜庫(kù)在相同識(shí)別算法下進(jìn)行處理,實(shí)驗(yàn)證明,該算法可以有效增強(qiáng)虹膜定位的魯棒性,并且不同采集器在不同條件下所采集的虹膜圖像均可以使用該算法進(jìn)行虹膜定位,識(shí)別效果穩(wěn)定。
2.1.1內(nèi)圓去光斑處理
虹膜內(nèi)圓就是眼睛的瞳孔部分,大多數(shù)虹膜采集器出于增強(qiáng)光照以及定位需要,會(huì)在攝像頭旁加裝LED燈。因此實(shí)際采集的眼睛圖像中瞳孔會(huì)有一圈光斑,光斑會(huì)給虹膜定位造成極大的干擾,因此首先要去除光斑的影響。
首先根據(jù)眼睛中瞳孔、眼毛、虹膜、鞏膜、皮膚之間灰度值的差異,用閾值處理法[9]將眼睛圖像轉(zhuǎn)為二值圖像。眼睛圖像中,瞳孔和眼毛灰度值最小,虹膜灰度值比它們大,因此,選取灰度圖中第一個(gè)波峰之后的第一個(gè)波谷的值T作為閾值[10]。圖1的灰度直方圖如圖2所示,閾值化公式如式(1)所示:
圖1 采集的眼睛圖像
圖2 眼睛灰度直方圖以及閾值選取點(diǎn)
B(x,y)代表閾值化后的灰度值,H代表點(diǎn)(x,y)的實(shí)際灰度值。圖1的圖像閾值化結(jié)果如圖3所示。
圖3 眼睛圖像的二值化圖像
由圖3可知,雖然瞳孔與部分眼毛已經(jīng)被二值化為白色,但瞳孔內(nèi)部還是有四個(gè)黑色的LED燈光斑。為去掉這些光斑。先用Sobel算子將瞳孔內(nèi)的光斑邊緣檢測(cè)出來(lái),Sobel算子是圖像處理中用于邊緣檢測(cè)的一種常見(jiàn)算子[11]。之后對(duì)光斑圖像依次進(jìn)行開(kāi)運(yùn)算和閉運(yùn)算[12]。運(yùn)算公式如式(2)所示:
圓形結(jié)構(gòu)元素用符號(hào)b和c表示。眼睛圖像用符號(hào) f表示。得到的結(jié)果圖像如圖4所示。
圖4 光斑輪廓圖像
將得到光斑輪廓與二值化圖像疊加,并將疊加后的圖像用種子填充算法[13]填充瞳孔內(nèi)光斑,進(jìn)而得到無(wú)光斑二值化圖像。如圖5所示。
圖5 無(wú)光斑眼睛二值化圖像
2.1.2 內(nèi)圓粗定位
用沒(méi)有光斑的二值化圖像做虹膜內(nèi)圓定位,首先用基于邊緣檢測(cè)的hough法[14]進(jìn)行內(nèi)圓粗定位。hough圓檢測(cè)就是利用圖像的特征檢測(cè)出目標(biāo)輪廓,將檢測(cè)到的連續(xù)或不連續(xù)的點(diǎn)連接起來(lái),呈現(xiàn)出一種幾何形狀。利用這一特點(diǎn),對(duì)無(wú)光斑二值化圖像進(jìn)行圓檢測(cè)。hough變換過(guò)程圖公式(3)所示:
表示圓的參數(shù)空間。
當(dāng)g(xj,yj,xc,yc,r)=0,表示以(xc,yc)為圓心,以r為半徑的圓通過(guò)了邊界點(diǎn)(xj,yj)。當(dāng)H出現(xiàn)最大值的時(shí)候,表示邊界點(diǎn)經(jīng)過(guò)該圓的時(shí)候,數(shù)量最多,認(rèn)定該圓為邊界的輪廓圓。
本文對(duì)無(wú)光斑的二值化圖像進(jìn)行處理,根據(jù)具體虹膜庫(kù)設(shè)定的參數(shù)尋找一個(gè)合適大小的圓認(rèn)定為瞳孔所在圓。因?yàn)槎祱D像中還是有眼瞼眼毛等干擾,可能造成圓的位置不準(zhǔn),偏離瞳孔。因此需要將所圈的圓的位置的周圍點(diǎn)的灰度值與灰度直方圖中的瞳孔灰度值比較,進(jìn)而判斷所圈圓的位置是否為瞳孔。圖1的邊緣檢測(cè)圖如圖6所示。內(nèi)圓粗定位圖如圖7所示。圈定截圖如圖8(a)所示。圈定圖灰度直方圖如圖8(b)所示。
圖6 無(wú)光斑眼睛二值化圖像邊緣檢測(cè)圖
圖7 虹膜粗定位圖
圖8 圈定區(qū)域截圖及其灰度直方圖
因?yàn)閔ough變換中參與計(jì)算的參數(shù)較多,而每張虹膜圖像的采集環(huán)境是不同的,因此同樣的參數(shù)不可能滿足所有虹膜,雖然hough圓檢測(cè)法可以找到瞳孔大致位置,但仍然無(wú)法完全匹配上瞳孔的輪廓。
2.1.3運(yùn)用分塊搜索法的內(nèi)圓精定位
精定位之前,首先要判斷粗定位定位出的瞳孔范圍與正式的瞳孔范圍相比是偏大還是偏小,還是粗定位的內(nèi)圓已經(jīng)達(dá)到精確定位的要求。
采用分塊搜索法,先根據(jù)瞳孔粗定位時(shí)得到的圓心和半徑,在無(wú)光斑眼睛二值化圖像四個(gè)方向上邊界鄰域上分別劃分正方形邊界檢測(cè)算子(檢測(cè)算子的大小根據(jù)具體虹膜庫(kù)而定,圖1虹膜的檢測(cè)算子為20×20)。檢測(cè)圖如圖9所示。
圖9 最初的分塊檢測(cè)算子
設(shè)定一個(gè)偏小閾值和一個(gè)偏大閾值,分別計(jì)算四個(gè)檢測(cè)算子范圍內(nèi)的平均灰度值(分別為Nleft,Nright,Nup,Nunder),如果四個(gè)值中有的值過(guò)小,小于偏小閾值,說(shuō)明這個(gè)方向上的瞳孔圈偏小,需要擴(kuò)大瞳孔范圍。反之,如果四個(gè)值中有的值過(guò)大,大于偏大閾值,說(shuō)明圈的范圍過(guò)大,需要縮小。本例中Nleft,Nup,Nunder的值全部為0,Nright為142.8,說(shuō)明這上、下、左三處在瞳孔內(nèi)部,圈的范圍偏小,需要擴(kuò)大圈定瞳孔范圍。
之后在四個(gè)方向邊界鄰域上設(shè)置移動(dòng)算子(移動(dòng)算子的大小根據(jù)具體虹膜庫(kù)而定,圖1虹膜的移動(dòng)算子豎直方向?yàn)?0×20,水平方向?yàn)?0×20)。本例最初狀態(tài)如圖10所示。
圖10 四邊界移動(dòng)算子最初狀態(tài)
根據(jù)需要平移的方向,不斷平移移動(dòng)算子,每移動(dòng)n個(gè)像素點(diǎn),就重新劃分新的檢測(cè)算子,檢測(cè)算子大小不變,并計(jì)算檢測(cè)算子的平均灰度值d,當(dāng)d的值大于偏小閾值的時(shí)候(如果圈的范圍過(guò)大就看是否小于偏大閾值),記下移動(dòng)距離m,橫縱坐標(biāo)向該方向平移m的一半,半徑縮?。ɑ蚍糯螅﹎的一半。
設(shè)粗定位時(shí)劃定的圓心為(xc,yc),半徑為r。先統(tǒng)計(jì)需要平移的方向的個(gè)數(shù)。若只需要向一個(gè)方向平移。以向左移動(dòng)為例,當(dāng)移動(dòng)算子在該方向上平移距離為m時(shí),圓心坐標(biāo)為,半徑為;若需要向兩個(gè)方向平移,以圓心坐標(biāo)分別兩個(gè)方向平移,半徑根據(jù)三角函數(shù)得出,以左上平移為例,左平移距離為m,上平移距離為n時(shí),圓心坐標(biāo),半徑為如果需要向三個(gè)方向平移,則先按某一方向調(diào)整圓心坐標(biāo)與半徑,調(diào)整完畢后,再沿另外兩個(gè)方向平移,以左上下方向?yàn)槔苿?dòng)算子先向左平移m,得到新圓心坐標(biāo)為,新半徑為,之后再同時(shí)調(diào)整上下移動(dòng)算子,上算子移動(dòng)k,下算子移動(dòng)t。最終的圓心坐標(biāo)為最終半徑為若四個(gè)方向均需要調(diào)整,先在左右方向平移調(diào)整移動(dòng)算子做平移m,右平移n,新圓心坐標(biāo)為新半徑為 r±,之后再同時(shí)調(diào)整上下移動(dòng)算子,上算子移動(dòng)k,下算子移動(dòng)t。最終的圓心坐標(biāo)為最終半徑為
圖1圖像中左上下三個(gè)方向均需要調(diào)整,調(diào)整示意圖如圖11所示。
圖11 左側(cè)方向調(diào)整示意圖
圖1 的精定位內(nèi)圓圖像如圖12所示。
圖12 內(nèi)圓精定位
2.2.1 外圓粗定位
雖然虹膜的內(nèi)外邊界不是同心圓,但具有一定的耦合關(guān)系[15]。因此外圓粗定位是結(jié)合內(nèi)圓精定位得到的瞳孔圓心進(jìn)行外圓粗定位。
首先,對(duì)圖像使用一個(gè)5×3的算子進(jìn)行卷積操作,對(duì)卷積后的結(jié)果進(jìn)行二值化操作。卷積操作圖像如圖13(a)所示,二值化圖像如圖13(b)所示。
圖13 卷積操作及其二值化
計(jì)算規(guī)定角度范圍弧線上的白點(diǎn)的數(shù)量,需要針對(duì)不同的半徑都要計(jì)算,半徑的變化范圍從(r,2×r)開(kāi)始逐漸變大。由于虹膜圖像上下部分容易受到眼瞼眼毛等噪音的干擾,為了減小噪音對(duì)虹膜外邊界定位的干擾,因此僅計(jì)算一定虹膜角度下的白點(diǎn)數(shù)量,由圖13(b)可以看出,虹膜右下側(cè)白點(diǎn)較多,易讀取。為了在受干擾較小的情況下盡可能多地讀取白點(diǎn)的數(shù)量,選取角度范圍為瞳孔圓心水平方向正右側(cè)順時(shí)針0°~60°[16],之后按公式(5)計(jì)算:
圖14 外圓粗定位
2.2.2運(yùn)用分塊搜索法的外圓精定位
卷積操作的外圓粗定位存在兩個(gè)問(wèn)題,一是定位的外圓是以瞳孔為圓心的同心圓。二是因?yàn)槊繌垐D像拍攝的條件不同,導(dǎo)致無(wú)法準(zhǔn)確預(yù)估虹膜半徑與瞳孔半徑的比值。只能根據(jù)生理學(xué)的實(shí)踐得到的人眼虹膜半徑約為瞳孔半徑1~2倍這一結(jié)論[17],將最大半徑設(shè)為瞳孔半徑的2倍。因此,需要再次使用分塊搜索法進(jìn)行外圓精確定位。
外圓的分塊與內(nèi)圓類似,但亦有不同,需要根據(jù)外圓粗定位的圓心和半徑在水平方向兩邊界處劃分檢測(cè)算子(大小根據(jù)具體虹膜庫(kù)改變,本文例子使用10×20),如圖15所示。
圖15 外圓粗定位檢測(cè)算子示意圖
根據(jù)檢測(cè)算子的灰度直方圖,左右移動(dòng)檢測(cè)算子,將檢測(cè)算子灰度直方圖中的灰度分布與眼睛圖像灰度直方圖中的灰度分布進(jìn)行比較,分別取左右兩側(cè)灰度值分布達(dá)到鞏膜區(qū)域內(nèi)的灰度值(第二波谷左右),檢測(cè)算子向左移動(dòng)距離k,向右移動(dòng)距離為m。粗定位圓心為(xc,yc),半徑為R。移動(dòng)后,圓心為半徑為精確定位的外圓如圖16所示。
圖16 外圓精定位
本文使用了吉林大學(xué)自主采集第三代虹膜庫(kù),選取了其中的60類別,每類別選取20張圖像,共計(jì)1 200張圖像;中科院CASIA-Iris-interval虹膜庫(kù),選取了其中50類別,每類別選取了15張,共計(jì)750張圖像。圖像事先經(jīng)過(guò)質(zhì)量評(píng)價(jià)檢測(cè)[18]合格,但其中包含了多種類型,包括貼近邊界,較重眼毛等類型圖像,用于檢測(cè)算法魯棒性。
實(shí)驗(yàn)將本文的虹膜定位算法與Daugman的微積分圓模板法[4]、hough圓定位法[5]、文獻(xiàn)[8]的小范圍搜索法進(jìn)行比較。
本文中,四種方法統(tǒng)一使用Daugman教授提出的橡皮圈模型[19]進(jìn)行虹膜圖像歸一化,將環(huán)形虹展開(kāi)成一個(gè)512×64的矩形大小。并截取其中紋理最強(qiáng)的部分,截成256×32固定矩形區(qū)域。之后增強(qiáng)[20]圖像紋理。圖1的全環(huán)矩形如圖17(a)所示。截取圖像如圖17(b)所示。截取增強(qiáng)圖像如圖17(c)所示。
圖17 圖像歸一,增強(qiáng)示意圖
本實(shí)驗(yàn)使用的CPU主頻為雙核2.5 GHz,內(nèi)存為8 GB,操作系統(tǒng)為Windows XP sp3。在特征提取前,先對(duì)所有歸一化虹膜圖像進(jìn)行水平移位消除虹膜旋轉(zhuǎn)問(wèn)題[21]。之后,統(tǒng)一采用Daugman博士提出的二維Gabor濾波進(jìn)行處理[22],篩選并且提取特征紋理信息,通過(guò)比較樣本間的歐式距離[23]判定虹膜圖像的歸屬。
ROC曲線[24]是一種表示錯(cuò)誤拒絕率(False Reject Rate,F(xiàn)RR)以及錯(cuò)誤接收率(False Accept Rate,F(xiàn)AR)關(guān)系的曲線。ROC曲線反映了虹膜識(shí)別算法的匹配性能。其越接近橫縱坐標(biāo)軸,就代表系統(tǒng)的性能就越好。當(dāng)FRR與FAR的值相等的時(shí)候,就是系統(tǒng)性能最好的時(shí)候,這個(gè)值稱為等錯(cuò)率(Equal Error Rate,EER)。EER越小,性能越好。另外,正確識(shí)別率(Correct Recognition Rate,CRR)[25]也是常用的虹膜識(shí)別系統(tǒng)的性能評(píng)定指標(biāo)之一。
本文根據(jù)CRR、EER、ROC曲線以及算法在內(nèi)圓平均時(shí)間(Pupil Time,PT);外圓定位平均時(shí)間(Iris Time,IT)和整體平均定位時(shí)間(T),以及定位算法成功定位的虹膜數(shù)量進(jìn)行算法的比較。
吉大虹膜庫(kù)實(shí)驗(yàn)結(jié)果如表1所示,ROC曲線如圖18所示。CASIA-Iris-interval實(shí)驗(yàn)結(jié)果如表2所示,ROC曲線如圖19所示。
表1 吉林大學(xué)虹膜庫(kù)實(shí)驗(yàn)結(jié)果
表2 CASIA-Iris-interval實(shí)驗(yàn)結(jié)果
圖18 吉林大學(xué)虹膜庫(kù)實(shí)驗(yàn)結(jié)果的ROC曲線
圖19 CASIA-Iris-interval虹膜庫(kù)的實(shí)驗(yàn)結(jié)果的ROC曲線
本文提出了一種基于分塊搜索的虹膜定位算法,先用閾值處理法將眼睛圖像轉(zhuǎn)化為二值圖像,然后利用sobel算子消除圖像中定位光斑的影響,用基于邊緣檢測(cè)的hough算法粗定位內(nèi)圓;用分塊搜索法精定位內(nèi)圓;用卷積操作粗略定位外圓;再利用分塊搜索精確定位虹膜外圓。使用兩種不同的虹膜庫(kù),與另三種定位方法在相同特征表達(dá)以及識(shí)別算法下進(jìn)行比較。實(shí)驗(yàn)結(jié)果表明,相較于傳統(tǒng)定位算法,本文方法的ROC曲線更接近于橫縱坐標(biāo)軸,平均耗時(shí)有所縮短并且準(zhǔn)確率有所提升,抗干擾性有所加強(qiáng),具有良好魯棒性。