劉曉敏, 李培華, 郭吉平
(1.佳木斯大學信息電子技術(shù)學院,黑龍江佳木斯154007;2.黑龍江大學計算機科學與技術(shù)學院,黑龍江哈爾濱150080;3.佳木斯大學公共計算機教研部,黑龍江佳木斯154007)
基于虹膜的生物特征識別技術(shù)具有識別精度高、無法偽造以及非侵犯性等優(yōu)點,在門禁系統(tǒng)、海關(guān)出入境、機場和金融等許多領(lǐng)域中具有廣泛的應用?,F(xiàn)代虹膜識別系統(tǒng)為了適應各種復雜的應用場景,應對用戶有盡可能小的約束,使用戶感覺不到系統(tǒng)的存在,因此遠距離、運動中虹膜識別成為必然的發(fā)展趨勢。然而在復雜的應用場景中采集的虹膜圖像包括各種干擾和噪聲,如眼睛半閉或全閉,頭發(fā)、睫毛和眼瞼遮擋,光學眼鏡等,如UBIRIS.v2[1-4]數(shù)據(jù)庫。這樣的虹膜圖像上進行虹膜預處理操作是非常困難的,因此開發(fā)適應這樣虹膜圖像的預處理算法成為研究者研究熱點。
一個虹膜識別系統(tǒng)主要包括4個部分:虹膜圖像采集、虹膜的預處理、虹膜紋理分析和虹膜紋理匹配。而虹膜的預處理起到極其重要的作用,在這方面已經(jīng)出現(xiàn)很多成型的算法。Daugman[5-6]和Wildes[7]提出了經(jīng)典的虹膜內(nèi)外輪廓檢測方法。郝偉勇[8]在他的碩士論文中使用了改進的環(huán)量積分算法對虹膜的外輪廓進行分割。Preonca等人[9]研究了如何對虹膜圖像的質(zhì)量進行評價,根據(jù)評價結(jié)果可以對檢測到的虹膜內(nèi)外輪廓進行重新檢測,這提高了虹膜識別的準確性。Luo等人[10]提出了使用數(shù)學的形態(tài)學知識檢測眼瞼、眼睫毛等非虹膜區(qū)域。苑瑋琪等人[11]提出利用虹膜的外圓,用一個扇形區(qū)域表示眼睫毛遮擋方法,實驗表明算法可有效檢測睫毛。Tan等人也提出了一種基于紋理分割的快速虹膜定位方法,該算法首先利用小波變換的低頻信息進行圖像分割,然后利用積分微分操作檢測外輪廓[12]。來毅等人[13]分別針對眼瞼和睫毛遮擋的噪聲,利用其灰度和形狀信息提出了灰度形態(tài)學檢測算法。羅中亮等人[14]提出利用邊緣檢測和最小二乘擬合方法去除眼瞼,以及閾值法去除虹膜內(nèi)部噪聲。
以上提到的預處理方法很有效,但是這些研究者都沒有考慮將具有大量干擾和噪聲的虹膜數(shù)據(jù)庫中的閉眼虹膜圖像挑選出來,這使得他們的方法在復雜虹膜數(shù)據(jù)庫中不能得到更高的虹膜識別率。為了提高虹膜識別系統(tǒng)的識別率,本文提出判斷虹膜數(shù)據(jù)庫中閉眼圖像的方法。該方法首先使用圓的積分微分算子得到閉眼虹膜圖像的候選圖像,使用直方圖分析將候選圖像進行二值化。采用圖像膨脹、邊緣檢測和連接得到邊緣圖像。使用最小二乘擬合算法擬合拋物線,通過拋物線開口方向判斷該圖像是否為閉眼虹膜圖像。
由于瞳孔內(nèi)部灰度值比虹膜圖像的其他部分低,因此本文使用一種漸進的方法檢測虹膜內(nèi)外輪廓[15]。該方法首先使用矩形模板掃描虹膜圖像,計算矩形區(qū)域的均值和方差,找到均值和方差最小的模板,將該模板所在的位置作為瞳孔的粗略位置,然后使用Canny邊緣檢測加Hough變換檢測準確的虹膜內(nèi)外邊緣;使用該方法檢測到的虹膜外輪廓圖像如圖1所示,圖1(a)表示正確檢測虹膜外輪廓的虹膜圖像,圖1(b)表示錯誤檢測虹膜外輪廓圖像,而閉眼虹膜圖像通常都是檢測錯誤的虹膜圖像,因此本文將檢測錯誤的虹膜圖像看成閉眼虹膜圖像的候選圖像。
圖1 虹膜外輪廓的檢測
圖2 閉眼圖像的確定過程
外輪廓檢測錯誤的虹膜圖像是通過判斷虹膜外輪廓的積分微分算子值確定的,如果虹膜外輪廓的積分微分算子值較小則認為是外輪廓檢測錯誤的虹膜圖像。在這些圖像上觀察可以發(fā)現(xiàn)閉眼圖像中眼睛輪廓的上邊緣可以擬合出一個開口向上的拋物線。本文提出在后選的閉眼虹膜圖像上進行閉眼虹膜圖像判斷,過程如圖2所示,候選圖像上計算直方圖,使用高斯函數(shù)進行平滑,則直方圖左側(cè)的第一個峰對應灰度值較低的眼睫毛,如圖2(a)所示,選擇該峰右邊的谷作為閾值對圖像進行二值化得到如圖2(b)所示;繼續(xù)對二值閉眼圖像進行膨脹操作得到圖2(c)。然后使用邊緣連接算法找出邊緣圖像中的最長一條邊,取該邊上面部分進行拋物線擬合。如圖3所示,圖3(a)為睜眼虹膜圖像虹膜上邊緣拋物線擬合過程,該拋物線開口向下,圖3(b)為閉眼虹膜圖像虹膜上邊緣拋物線的擬合過程,該拋物線開口向上,這樣可以判斷圖3(b)為閉眼虹膜圖像,下面幾節(jié)詳細介紹了這一過程。
圖3 虹膜上邊緣拋物線的擬合
如果該虹膜圖像是閉眼圖像則確定的虹膜外輪廓將是不準確的,于是這里使用如下積分微分算子的值來評價外輪廓確定是否準確
由圖4可以看出,虹膜圖像中眼睫毛的灰度值是非常低的,而皮膚的灰度值很高,因此可以對該虹膜圖像的直方圖進行分析,然后對圖像進行二值化,直方圖和二值化圖像如圖5(a)和圖5(b)所示。為了更好的找到直方圖的峰和谷虹膜圖像的直方圖必須進行平滑,平滑過程中需要解決的一個問題是平滑到什么程度,如果平滑小了將會找到很多不準確的峰和谷,平滑大了會將有意義的峰和谷平滑沒,因此本文通過做大量的實驗選取了一個=2.0高斯函數(shù),并且在平滑過程中高斯函數(shù)的系數(shù)要保證大于0.0002,小于該值的系數(shù)可忽略不計,于是可以確定高斯函數(shù)的窗寬為14,高斯函數(shù)平滑后虹膜圖像的直方圖如圖5(a)所示,通過尋找該直方圖導數(shù)為0的點很容易確定直方圖的峰和谷。從該圖可以看出,直方圖最左側(cè)的峰對應的是灰度值較低的睫毛區(qū)域的像素值,因此本文將該峰右側(cè)的谷作為閾值對虹膜圖像進行二值化得到圖5(b)。
圖4 候選圖像的外輪廓CID值
圖5 虹膜圖像的二值化
由于得到的二值圖像具有部分干擾點因此需要對該二值圖像進行膨脹。膨脹是將像素點進行加長或變粗操作,這使得一些不連續(xù)的像素點變得連續(xù)從而去除干擾點。其基本原理是將某一結(jié)構(gòu)元素平移過整個圖像區(qū)域(灰度值為0或1),如果輸入圖像與結(jié)構(gòu)元素至少重疊一個0值像素,則輸出圖像該結(jié)構(gòu)元素原點位置置為0。在實驗中,結(jié)構(gòu)元素取為灰度值為0的矩形。由于閉眼圖像的眼睛輪廓通常是呈長條狀的,為了使得眼睫毛的上邊緣連續(xù)讓每一個像素橫向加長,因此將膨脹的結(jié)構(gòu)元素設計成長寬分別為7和5的矩形,膨脹結(jié)果如圖6(a)所示。
圖6 閉眼虹膜圖像上邊緣檢測
接下來使用Canny邊緣檢測得到圖6(b)。該算法包括5個步驟:圖像平滑、計算圖像的梯度幅值圖像、確定候選邊緣點、計算強邊緣點和弱邊緣點以及邊緣跟蹤。該算法中有3個參數(shù)需要確定,分別為:高斯平滑參數(shù)的確定、用于邊緣選擇的邊緣點百分比的確定和強邊緣點閾值與弱邊緣點閾值比例系數(shù)的確定。下面介紹這3個參數(shù)的確定:
(2)用于邊緣選擇的邊緣點百分比的確定:邊緣點選擇的實質(zhì)是給定像素點梯度幅值的閾值,大于該閾值的像素點為候選邊緣點。該閾值的確定是通過像素點梯度幅值直方圖的累積直方圖確定,如圖7所示,圖7(a)表示像素點梯度幅值直方圖,圖7(b)表示梯度幅值直方圖的累積直方圖確定。要確定該閾值還要得到一個先驗知識,即估計出整幅圖像邊緣點的百分比,則累積直方圖的值與該百分比相等的梯度幅值作為選擇邊緣點的閾值,同時候選邊緣點具有局部最大屬性。通過大量實驗證明虹膜圖像中保留32%的候選邊緣點能夠使得邊緣檢測效果最佳。
圖7 Canny邊緣檢測算子閾值確定
(3)強邊緣點閾值與弱邊緣點閾值比例系數(shù)的確定:在Canny邊緣檢測中將候選邊緣點分為兩種:強邊緣點和弱邊緣點。強緣點也需要一個梯度幅值的閾值2,大于該閾值的候選邊緣點為強邊緣點。2與1成比例,有在候選邊緣點中除去強邊緣點的其他候選邊緣點都稱為弱邊緣點。某一強邊緣點是否是真正邊緣點是受弱邊緣點約束的(約束條件是如果一個真正的邊緣點是一個強邊緣點,它的周圍保證有弱邊緣點),這時比例系數(shù)r嚴重影響邊緣檢測結(jié)果,在實驗中算法取該比例系數(shù)為0.6,這使得邊緣檢測達到很好的效果。
然后使用邊緣連接算法將邊緣圖像中的小的邊緣去掉,邊緣連接過程包括:邊緣圖像的骨骼化、尋找連接點,通過邊緣跟蹤得到邊緣圖像中的每一個連續(xù)邊緣。算法中取出包含像素點最多的一個連續(xù)邊緣,這個邊緣就是眼睫毛的完整輪廓,再取輪廓的上邊緣得到如圖6(c)所示的邊緣。
本文使用最小二乘擬合算法擬合眼睫毛上邊緣,基本原理是給定邊緣點(xi,yj)(i=1,2,…,N),其中N是邊緣點個數(shù),求拋物線方程y=ax2+bx+c使誤差達到最小
使Q達到最小的參數(shù)a,b,c應滿足
通過式(3)可以得到如下的關(guān)于a,b,c的線性方程組
由式(4)可求得a,b,c。擬合結(jié)果如圖8所示,該虹膜圖像擬合出的拋物線開口是向上的,因此可以判斷該虹膜圖像是一個閉眼虹膜圖像,否則認為外輪廓檢測不準確,可使用其他方法再次檢測。
圖8 眼睫毛上邊緣擬合的拋物線
本文的算法使用C++編寫,在UBIRIS.v2[11-12]虹膜數(shù)據(jù)庫中的部分虹膜圖像上進行了實驗,這些圖像包含大量干擾和噪聲,同時也包含了很多閉眼虹膜圖像。根據(jù)實驗結(jié)果發(fā)現(xiàn)當判斷候選閉眼圖像時選擇不同的CID閾值將會嚴重影響判斷閉眼圖像的檢測率和誤檢率,本文在大量的實驗中得到了給定不同CID閾值的檢測率和誤檢率數(shù)據(jù),如表1所示。從表可以看出隨著閾值增大算法的檢測率逐漸增大并且達到最大值,然后當閾值繼續(xù)增大時,算法的檢測率開始下降同時誤檢率增高,算法選擇檢測率最高和誤檢率最低對應的閾值作為最佳閾值。因此實驗中CID閾值取的是2.0,雖然檢測率只有70%,但是誤檢率是0,所以可以準確去除部分閉眼虹膜圖像,這使得一個虹膜識別系統(tǒng)具有更加可靠的識別性能。
表1 給定不同CID閾值的檢測率和誤檢率
圖9給出了幾個閉眼虹膜圖像及檢測結(jié)果,上面一組是原始虹膜圖像,下面一組是擬合的拋物線。從圖9(e)、(f)、(g)和(h)可以看出擬合出的拋物線開口是向上的,因此正確的判斷出了這些閉眼虹膜圖像。圖9(a)和圖9(b)擬合出的拋物線曲率接近于0,類似于一條直線。圖9(c)和圖9(d)擬合出的拋物線曲率小于0。因此實驗中將拋物線曲率滿足小于等于0的虹膜圖像看作是閉眼虹膜圖像。
圖9 判斷出的閉眼圖像
從表1可以看出,該方法檢測率并不高,但是當我們在保證誤檢率為0時,將會大大提高虹膜分割效果。2007年7月,葡萄牙貝爾大學計算科學學院SOCIA(softcomputingandimage analysis group)實驗室發(fā)起了國際虹膜分割競賽NICE.I(noisy irischallengeevaluation,partI)[1]。在此競賽中,我們提出的虹膜分割算法獲得了第4名的好成績。在分割算法中使用了閉眼圖像判斷算法,得到了很好的效果。
NICE.I提出了如下虹膜分割誤差評價準則,令I(lǐng)={I1,…,In}是輸入虹膜圖像集合,O={O1,…,On}是對應的分割程序輸出的虹膜圖像集合,C={C1,…,Cn}是由NICE.I組委會提供的手工標記出的真值圖像,其中所有圖像都有相同的維數(shù):r行和c列。對某一幅圖像Ii,令Ei表示算法輸出的虹膜圖像中的像素值和真值虹膜圖像中像素值不一致的個數(shù)占圖像中所有像素個數(shù)的百分比,即
式中:Oi(c',r')和Ci(c',r')——算法輸出的第i幅圖像和真值圖像r'行和c'列的像素值。所有測試圖像的總誤差率E1定義為
E1的取值范圍是在[0,1]之間,E1=1表示所有像素均不匹配,E1=0表示所有像素都匹配。NICE.I組委會主要使用這個評價方法對參賽算法進行評價。
在組委會提供的學習集的虹膜庫中,我們將嵌入本文算法和未嵌入本文算法的虹膜分割結(jié)果進行了比較,比較結(jié)果如表2所示,嵌入該算法的分割結(jié)果為0.022,未嵌入該算法的分割結(jié)果為0.028,可以看出我們的算法提高了競賽中的虹膜分割效果。
表2 兩種虹膜分割算法誤差率的比較
在復雜環(huán)境下采集的虹膜圖像具有大量閉眼虹膜圖像嚴重影響了虹膜識別系統(tǒng)的效率。本文提出了一種檢測閉眼虹膜圖像的方法,該方法使用環(huán)量積分微分算子、基于直方圖的二值化、邊緣檢測和連接以及最小二乘等方法擬合眼睫毛的上邊緣拋物線,通過判斷該拋物線的開口方向檢測其是否為閉眼虹膜圖像。該方法有效地提高了虹膜分割算法的誤差率,但是仍然有部分閉眼虹膜圖像不能檢測出來,將來我們會提出更好的算法檢測出更多閉眼虹膜圖像。
[1]Noisy iris challenge evaluation(NICE.I)[OL].http://nice1.di.ubi.pt/,2008.
[2]Proenca H,Alexandre L A.UBIRIS:A noisy iris image database[C].International Conference on Image Analysis and Processing,2005:970-977.
[3]Hugo Proen?a,Sí lvio Filipe,Ricardo Santos,et al.The UBIRIS.v2:A database of visible wavelength iris images captured on-the-move and at-a-distance[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2009,32(8):1529-1535.
[4]Hugo Proen?a,Luí s AAlexandre.Introductionto the special issue on the segmentation of visible wavelength iris images acquired at-a-distance and on-the-move[J].Elsevier Image and Vision Computing,2009,28(2):213-214.
[5]Daugman J.Probing the uniqueness and randomness of IrisCodes:Results from 200 billion iris pair comparisons[J].Proceedings of the IEEE,2006,94(11):1927-1935.
[6]Daugman J.New methods in iris recognition[J].IEEE Trans on Systems,Man,Cybernetics B,2007,37(5):1167-1175.
[7]Wildes R P.Iris recognition:an emerging biometric technology[J].Proceedings of IEEE,1997,85(9):1348-1363.
[8]郝偉勇.一種基于特征點的虹膜識別算法研究[D].北京:北京大學碩士學位論文,2004:14-17.
[9]Proenca H,Alexandre L A.Iris recognition:measuring feature's quality for the feature selection in unconstrained image capture environments[C].Alexandria,VA:IEEEInternational Conference on Computational Intelligence for Homeland Security and Personal Safety,2006:35-40.
[10]Luo Z,Lin T.Detection of non-iris region in the iris recognition[C].International Symposium on Computer Science and Computational Technology,2008:45-48.
[11]苑瑋琪,喬一勤.基于虹膜識別的眼睫毛檢測[J].微計算機信息,2008,24(28):311-312.
[12]Tan Tieniu,He Zhaofeng,Sun Zhenan.Efficient and robust segmentation of noisy iris images for non-cooperative iris recognition[J].Journal of Image and Vision Computing,2010,28(2):223-230.
[13]來毅,路陳紅,盧朝陽.用于虹膜識別的眼瞼及睫毛遮擋檢測[J].計算機輔助設計與圖形學學報,2007,19(3):346-350.
[14]羅中亮,林土勝,賈應彪,等.虹膜分割中的噪聲檢測[J].計算機工程與設計,2009,30(10):2447-2448.
[15]Li Peihua,Liu Xiaomin.An incremental method for accurate iris segmentation[C].Proceedings of the 19th International Conference on Pattern Recognition,2008:1-4.