方淑仙, 張立武
1(中國(guó)科學(xué)院大學(xué), 北京 100049)
2(中國(guó)科學(xué)院 軟件研究所, 北京 100190)
隨著社會(huì)的快速發(fā)展, 身份識(shí)別的重要性與日俱增. 但是, 口令容易被遺忘, 容易受到字典攻擊和撞庫(kù)攻擊等;Ukey又因其攜帶不便、人證統(tǒng)一等問(wèn)題阻礙了其應(yīng)用. 僅僅依靠口令和Ukey已經(jīng)無(wú)法滿足信息時(shí)代對(duì)身份認(rèn)證的需求. 近年來(lái), 基于人的生理或行為特征的生物特征識(shí)別技術(shù)應(yīng)用越來(lái)越廣泛, 其中具有代表性的人臉識(shí)別技術(shù)因其無(wú)侵?jǐn)_性等優(yōu)點(diǎn)廣泛地應(yīng)用在機(jī)場(chǎng)、火車站等安防監(jiān)控領(lǐng)域.
在人臉識(shí)別技術(shù)中, 準(zhǔn)確地定位人眼具有特別重要的意義. 一方面, 人眼作為人臉圖像中承載信息較多的特征之一, 相比于嘴鼻等器官提供了更多更重要的信息;另一方面, 人眼在人臉圖像中的位置相對(duì)比較固定, 在進(jìn)行人臉特征提取時(shí)常常將瞳距作為特征矢量歸一化的依據(jù). 除此之外, 在針對(duì)人臉進(jìn)行三維建模時(shí),需要定位出人眼各區(qū)域位置來(lái)對(duì)人眼部分細(xì)化建模.
然而, 在借助已有的虹膜識(shí)別方法定位人眼位置時(shí), 發(fā)現(xiàn)現(xiàn)有虹膜識(shí)別方法在定位低分辨率圖像時(shí), 結(jié)果不夠理想. 目前已有的虹膜及眼瞼定位方法更多的是針對(duì)高清眼部區(qū)域圖像, 目的在于分割出清晰的虹膜圖像獲得紋理來(lái)進(jìn)行后續(xù)的虹膜識(shí)別. 而在進(jìn)行人臉識(shí)別或人臉三維重建時(shí), 獲取的圖像通常達(dá)不到虹膜識(shí)別的清晰度, 在這種條件下對(duì)人眼圖像進(jìn)行定位是一項(xiàng)非常具有挑戰(zhàn)性的工作.
因此, 本文提出一種新的算法, 對(duì)人眼的虹膜、眼瞼、鞏膜等各區(qū)域進(jìn)行準(zhǔn)確快速的分割, 并對(duì)人眼定位過(guò)程中存在的干擾因素如光照條件、鏡面反射光斑、睫毛或頭發(fā)的遮擋進(jìn)行了處理, 在實(shí)驗(yàn)室環(huán)境下的眼部高清圖像及姿態(tài)幅度較小的無(wú)遮擋模糊人臉圖像的定位都取得了良好的定位效果, 具有較強(qiáng)的泛化能力.
虹膜檢測(cè)中最著名的算法是在1993年由Daugman[1]提出的, 為目前許多虹膜識(shí)別技術(shù)提供了研究基礎(chǔ). Daugman使用了公式(1)的積分微分算子分別檢測(cè)出虹膜的內(nèi)外邊界:
除了Daugman外, 最有名的是Wildes的虹膜識(shí)別系統(tǒng). 1997年, Wildes[4]結(jié)合邊緣檢測(cè)與Hough變換來(lái)定位虹膜區(qū)域. 由于虹膜區(qū)域的邊緣灰度變化比較明顯, 通過(guò)低通高斯濾波器和空間子采樣方法分離出虹膜區(qū)域, 接著對(duì)圖像進(jìn)行Hough變換, 選出最符合限制條件的圓作為虹膜邊界輪廓的圓心和半徑. Wildes的方法相對(duì)Daugman的方法來(lái)說(shuō), 受噪聲等干擾的影響小, 但是對(duì)圖像邊緣提取要求較高, 容易受到異常的邊緣檢測(cè)點(diǎn)的影響. 2008年, Dey[5]對(duì)Wildes的定位方法進(jìn)行了改進(jìn), 在對(duì)虹膜圖像進(jìn)行邊緣檢測(cè)之前, 先對(duì)圖像進(jìn)行縮放和顏色變換, 顯著地減小了搜索空間, 提高了圖像的閾值化效果. 然后尋找瞳孔邊界擴(kuò)張區(qū)域, 再進(jìn)行垂直邊緣檢測(cè), 有效地去除了虹膜圖像中邊緣噪點(diǎn)的影響. 2015年, Umer和Dhara[6]提出一種基于反演變換與帶約束Hough圓變換的虹膜快速分割方法, 通過(guò)反演變換確定虹膜外邊界, Hough圓變換定位瞳孔,減少了Hough變換的搜索空間. 2016年, Kumar等人[7]提出邊緣映射圖與自適應(yīng)Hough圓變換相結(jié)合的虹膜檢測(cè)算法, 通過(guò)形態(tài)學(xué)運(yùn)算、Sobel邊緣檢測(cè)兩種算法檢測(cè)邊緣取交集, 生成瞳孔邊界映射圖, 得到包含噪聲的最小偽邊緣, 再利用自適應(yīng)的Hough圓變換算法將虹膜的內(nèi)外邊界同時(shí)累加計(jì)算, 提高了定位效率和準(zhǔn)確度, 對(duì)噪聲有一定的容忍能力. 但是, 該方法在圖像邊緣對(duì)比度不高時(shí), 計(jì)算出的邊緣映射圖受噪聲影響較大, 定位效果較差.
除了Daugman和Wildes的虹膜識(shí)別系統(tǒng)外, 其他許多專家學(xué)者也對(duì)虹膜定位進(jìn)行了很多研究提出了許多新方法. 1998年, Boles和Boashash等[8]提出基于小波變換的虹膜檢測(cè)算法. 他們采用微分型的拉普拉斯或高斯卷積作為過(guò)濾器, 使用邊緣檢測(cè)技術(shù)檢測(cè)邊緣,將虹膜看作圓形, 其邊緣連接形成閉合輪廓, 將其質(zhì)心作為瞳孔的參考點(diǎn). 他們假設(shè)虹膜的內(nèi)外輪廓為圓形,并具有共同的圓心, 對(duì)半徑大小不同的同心圓進(jìn)行采樣, 再進(jìn)行小波變換獲得虹膜位置. 這種方法沒(méi)有考慮虹膜圖像是二維結(jié)構(gòu), 僅考慮了虹膜中同心圓周的一維信號(hào). 2009年, He等人[9]提出一種新的分割方法. 首先通過(guò)自適應(yīng)閾值法消除虹膜部分的鏡面反射光斑,再建立一個(gè)AdaBoost級(jí)聯(lián)虹膜檢測(cè)器來(lái)提取虹膜中心的大致位置, 最后利用胡克定律從圓形虹膜邊界的中心和半徑以迭代的方式推導(dǎo)出彈性模型, 最終定位虹膜中心和邊界. 他們的方法在CASIA虹膜數(shù)據(jù)庫(kù)上達(dá)到了99.6%的準(zhǔn)確率, 但是沒(méi)有考慮虹膜圖像可能包含的虛假邊緣如雙眼皮、皺紋等因素.
對(duì)于眼瞼檢測(cè)與定位的研究也有很多. 1993年,Daugman[1]提出基于拋物線的積分微分算子檢測(cè)眼瞼邊緣. 這種方法與定位虹膜一樣, 存在搜索空間大、檢測(cè)速度較慢等問(wèn)題.
1994年, Wildes[10]也通過(guò)拋物線來(lái)提取眼瞼的上下邊緣. 首先經(jīng)過(guò)水平或垂直方向上的邊緣檢測(cè)算子進(jìn)行邊緣檢測(cè), 接著進(jìn)行二值化, 然后利用基于拋物線的Hough變換來(lái)檢測(cè)眼瞼邊緣, 將上下眼瞼按照拋物線進(jìn)行擬合. 這種方法需要對(duì)三個(gè)參數(shù)在參數(shù)空間內(nèi)搜索, 計(jì)算量較大, 并且沒(méi)有考慮眼瞼、睫毛等噪聲的影響. 2003年, Masek[11]利用改進(jìn)的線性Hough變換來(lái)檢測(cè)上下眼瞼, 首先利用Canny算子進(jìn)行邊緣檢測(cè), 然后通過(guò)在瞳孔的外邊緣畫(huà)一條水平的直線, 保留水平線與虹膜外邊界上最近的相交點(diǎn)來(lái)提取眼瞼的直線段.然而, 線性的Hough變換比較耗時(shí), 并且只在固定的數(shù)據(jù)庫(kù)上有效. 2008年, Min和Park[12]在歸一化的虹膜圖像中, 利用基于拋物線的Hough變換來(lái)定位眼瞼邊界,避免了人眼圖像旋轉(zhuǎn)問(wèn)題, 減小了參數(shù)空間的維數(shù), 但是耗時(shí)仍然較大.
此外, 還有先定位若干個(gè)眼瞼點(diǎn), 再尋找眼瞼邊緣的方法. 例如, 2000年, Pardas[13]提出基于最短路徑的眼瞼邊緣檢測(cè)算法, 首先找到兩個(gè)眼角點(diǎn)作為起終點(diǎn),在兩個(gè)眼角點(diǎn)間搜索最短路徑來(lái)得到眼瞼邊緣. 這種方法檢測(cè)速度較慢, 檢測(cè)結(jié)果依賴于定位眼角點(diǎn)的精確度. 2013年, Radman等人[14]提出一種基于livewire的眼瞼檢測(cè)方法, 通過(guò)以不同權(quán)重加權(quán)組合Canny邊緣檢測(cè)、梯度方向、梯度幅值、拉普拉斯四個(gè)算子構(gòu)造代價(jià)函數(shù), 在HSI (Hue Saturation Intensity)顏色空間中對(duì)虹膜外邊界進(jìn)行徑向邊緣檢測(cè), 對(duì)于每一個(gè)像素計(jì)算相鄰十個(gè)像素的飽和度平均值, 如果超過(guò)一個(gè)固定的閾值就認(rèn)為它是虹膜與眼瞼的交點(diǎn), 據(jù)此確定虹膜外邊緣與眼瞼之間的四個(gè)交點(diǎn), 生成路徑代表眼瞼邊緣. 這種方式與基于最短路徑的方法一樣, 對(duì)四個(gè)交點(diǎn)定位要求非常嚴(yán)格.
除了以上幾種方法外, 還有許多其他專家學(xué)者提出的方法. 2015年, Cai和Wang[15]通過(guò)形態(tài)學(xué)開(kāi)閉運(yùn)算去除睫毛、陰影及光斑干擾, 盡可能地保留眼瞼邊緣. 通過(guò)分析眼瞼邊緣區(qū)域每一列的灰度值, 將灰度值分布的谷點(diǎn)視為眼瞼邊緣, 然后使用最小二乘法擬合拋物線得到眼瞼. 這種方法效率較高, 但是易受眼瞼、陰影等噪聲的影響. 2016年, Fuhl等人[16]基于平均強(qiáng)度、標(biāo)準(zhǔn)差、偏差和水平Sobel算子等特征構(gòu)造出眼瞼似然圖, 用方框?yàn)V波器連接不連通的高似然區(qū)域, 然后利用非極大值抑制重建眼瞼邊緣. 選擇得分最高的邊分別重建上下眼瞼, 最后利用貝塞爾曲線來(lái)擬合眼瞼的輪廓. 這種方法在視頻跟蹤檢測(cè)眼瞼時(shí)實(shí)時(shí)性很高, 但是對(duì)鏡面反射光斑等干擾因素處理不夠, 在包含眼鏡等的人眼圖像中效果不好.
本文的后續(xù)章節(jié)安排如下:第3章對(duì)本文方法進(jìn)行了概述, 第4–6章詳細(xì)闡述了本文算法的實(shí)現(xiàn)細(xì)節(jié),第7章給出本文的實(shí)驗(yàn)結(jié)果及分析, 第8章總結(jié)了本文的工作.
本章首先介紹人眼定位相關(guān)的背景知識(shí), 以及在人眼定位中存在的挑戰(zhàn), 然后分步驟概述本文方法的技術(shù)細(xì)節(jié).
人眼的精準(zhǔn)定位包括虹膜的邊界以及上下眼瞼的定位. 如圖1所示, 人眼包含上下眼瞼、鞏膜、虹膜、瞳孔等部分, 瞳孔為中間深色部分, 眼瞼與虹膜包圍著的白色部分為鞏膜, 瞳孔和鞏膜之間的環(huán)狀部分為虹膜, 在虹膜、鞏膜外面包圍著上下眼瞼和睫毛[17]. 對(duì)人眼部分進(jìn)行分割需要對(duì)虹膜、鞏膜、眼瞼等區(qū)域進(jìn)行定位, 在此過(guò)程中通常會(huì)受到一些挑戰(zhàn):虹膜通常容易受到睫毛、眼瞼和陰影的遮擋;上下眼瞼邊緣容易受到睫毛和鞏膜的干擾;虹膜邊緣可能受到鏡面反射光斑的影響. 因此, 在定位過(guò)程中, 要盡可能的排除眼睫毛、陰影和光照等因素的影響.
圖1 人眼結(jié)構(gòu)圖
人眼區(qū)域由虹膜、眼瞼、鞏膜三個(gè)區(qū)域組成, 虹膜和上下眼瞼檢測(cè)完成后, 虹膜及上下眼瞼包圍部分即為鞏膜. 本文針對(duì)姿態(tài)幅度較小的無(wú)遮擋人眼圖像的定位問(wèn)題, 將人眼虹膜及上下眼瞼按照其生物形狀分別進(jìn)行定位. 對(duì)虹膜的定位在Jan[18]關(guān)于人眼灰度分布規(guī)律闡述的啟發(fā)下, 在Wildes[4]的基礎(chǔ)上進(jìn)行了改進(jìn);對(duì)眼瞼的定位受到Cai和Wang的啟發(fā)[15], 結(jié)合全局動(dòng)態(tài)閾值、局部自適應(yīng)閾值及形態(tài)學(xué)算法對(duì)上下眼瞼分別定位并擬合. 本文算法步驟如下:
步驟1. 利用已有的人臉對(duì)齊方法定位出人臉關(guān)鍵點(diǎn)坐標(biāo), 選擇其中的人眼區(qū)域關(guān)鍵點(diǎn), 分割出人眼感興趣區(qū)域;
步驟2. 二值化人眼圖像, 建立鏡面反射光斑映射表, 利用雙線性插值法對(duì)光斑處像素點(diǎn)進(jìn)行插值, 去除人眼圖像由光照、眼睛遮擋等導(dǎo)致的鏡面反射光斑;
步驟3. 分析人眼區(qū)域虹膜、鞏膜、皮膚等灰度分布規(guī)律, 確定虹膜分割閾值的上限, 為下一步定位虹膜做準(zhǔn)備;
步驟4. 將步驟3確定的閾值上限作為Hough圓檢測(cè)算法中邊緣檢測(cè)的高閾值, 并檢測(cè)出虹膜位置(包括虹膜圓心和半徑);
步驟5. 利用OTSU方法對(duì)虹膜圖像進(jìn)行全局二值化, 保留最大連通域后獲取連通域上邊緣作為過(guò)濾模板;利用局部自適應(yīng)閾值對(duì)虹膜圖像進(jìn)行二值化;
步驟6. 二值化圖像去掉小連通區(qū)域后與過(guò)濾模板結(jié)合定位眼瞼, 并利用最小二乘法對(duì)眼瞼進(jìn)行擬合.
本文具體方法概述圖如圖2所示, 下面按圖像預(yù)處理、帶約束的Hough變換定位虹膜、基于自適應(yīng)雙閾值定位眼瞼三部分詳細(xì)介紹本文算法細(xì)節(jié).
圖2 本文方法概述圖
要對(duì)人眼區(qū)域進(jìn)行定位, 首先需要獲得包含人眼區(qū)域的圖像. 由于人的鼻子、嘴等非眼睛區(qū)域特征并不屬于我們要精確定位的范圍, 并且會(huì)對(duì)人眼的精確定位造成一定的影響. 因此, 我們首先需要正確地分割出人眼區(qū)域, 得到其中的ROI (Region Of Interest)區(qū)域.在這里, 我們使用了開(kāi)源的SDM (Supervised Descent Method)算法[19]對(duì)每個(gè)人臉圖像提取68個(gè)關(guān)鍵點(diǎn)坐標(biāo)(眼睛、眉毛、鼻子、嘴巴、臉部輪廓等部位).SDM算法的人臉對(duì)齊誤差達(dá)到了2.7個(gè)像素, 在人臉相對(duì)大姿態(tài)偏轉(zhuǎn)時(shí), 仍然具有不錯(cuò)的定位效果. 因此,我們使用其定位的12個(gè)眼部關(guān)鍵點(diǎn)(左右各6個(gè))分割出矩形人眼區(qū)域. 按照人臉三庭五眼的先驗(yàn)知識(shí), 我們以眼角點(diǎn)為基準(zhǔn), 將人眼定位搜索范圍寬度從眼角處向上下左右分別擴(kuò)張一定寬度, 得到人眼定位搜索區(qū)域, 減小了搜索范圍, 最終的人眼區(qū)域如圖3所示.對(duì)反射點(diǎn)插值, 我們對(duì)每個(gè)反射點(diǎn)定義周圍四個(gè)方向上的點(diǎn):
圖3 人眼ROI區(qū)域定位
由于光照、遮擋、變形等影響, 對(duì)人眼的檢測(cè)及定位一直是一個(gè)具有挑戰(zhàn)性的課題. 目前大部分針對(duì)人眼定位的研究都是針對(duì)比較高清的眼部圖像, 為了得到合適的光照, 許多研究還會(huì)額外引入紅外光源照明來(lái)拍攝圖像. 這樣, 許多紅外光被瞳孔吸收而被虹膜反射出去, 這往往造成人眼區(qū)域出現(xiàn)較多的鏡面反射光斑, 這些反射不可避免地會(huì)破壞虹膜、鞏膜的結(jié)構(gòu).因此, 要對(duì)人眼圖像進(jìn)行精準(zhǔn)定位前必須去除這些光照帶來(lái)的亮斑. 通常情況下, 這些亮斑在圖像中都是比較亮的區(qū)域, 受到文獻(xiàn)[9]的啟發(fā), 我們使用雙線性插值法來(lái)填充反射區(qū)域. 首先, 將圖像灰度化, 并使用自適應(yīng)閾值來(lái)計(jì)算二值反射映射表M, 如圖4中所示. 為了
其中,
L控制插值點(diǎn)與其周圍點(diǎn)的距離, 則反射點(diǎn)處的灰度值為:
根據(jù)實(shí)驗(yàn)效果, 這里我們將L設(shè)置為5. 通過(guò)計(jì)算得到的圖像如圖4所示.
圖4 圖像預(yù)處理
Hough變換是一種用于檢測(cè)圖像中是否存在特定形狀如直線、拋物線、圓等特征的算法, 它在計(jì)算機(jī)視覺(jué)中的應(yīng)用非常廣泛. 在圖像中, 任何形式的曲線都可以由點(diǎn)集定義, 通常由一組參數(shù)來(lái)描述, 即曲線是可以通過(guò)數(shù)學(xué)方程參數(shù)化的[6].
人眼的虹膜部分可以看作是一個(gè)圓環(huán), 對(duì)于分辨率較低的人眼圖像而言, 虹膜和瞳孔區(qū)域混為一體. 因此, 對(duì)于虹膜的定位實(shí)際上是對(duì)虹膜外邊緣的定位. 在這里, 我們使用基于Hough變換的圓檢測(cè)來(lái)確定虹膜邊緣的圓心和半徑. Hough變換的解析式可表示為:
其中,
然而, 標(biāo)準(zhǔn)的Hough圓變換需要在全局范圍內(nèi)做參數(shù)搜索, 相當(dāng)耗時(shí). 因此, 我們對(duì)標(biāo)準(zhǔn)的Hough圓檢測(cè)增加約束. 我們觀察到, 人眼圖像包括皮膚、鞏膜、虹膜、瞳孔、眼瞼、眉毛、鏡面反射光斑等區(qū)域, 在這些區(qū)域中, 瞳孔、睫毛、眉毛和頭發(fā)可能具有相近的灰度強(qiáng)度[18], 與周圍皮膚、鞏膜區(qū)域相比, 通常灰度值較低;并且對(duì)于不同人而言, 虹膜與眼眶大小比值相差不大, 總在一個(gè)特定的閾值內(nèi). 因此, 我們結(jié)合灰度圖像統(tǒng)計(jì)和Hough變換, 提出一種方案來(lái)定位虹膜邊界.
已有研究表明, 在可見(jiàn)光波段下拍攝的一些人眼圖像由于存在光照不均或者強(qiáng)烈的鏡面反射光斑, 虹膜與鞏膜之間的邊界有時(shí)難以分開(kāi)[1,20]. 我們觀察到,當(dāng)圖像從RGB顏色空間轉(zhuǎn)換為HSI顏色空間時(shí), 在色調(diào)和飽和度通道中, 原本難以分開(kāi)的同一圖像的虹膜與鞏膜邊界區(qū)域清晰可見(jiàn). 一些研究如文獻(xiàn)[14]、文獻(xiàn)[20]和文獻(xiàn)[21]在圖像的色調(diào)通道也做了一些應(yīng)用, 但是根據(jù)實(shí)驗(yàn)效果最終我們選擇了圖像的飽和度通道. 首先,計(jì)算圖像飽和度通道的灰度直方圖, 如圖5所示. 一般來(lái)說(shuō), 人眼的灰度通常包含三個(gè)顯著區(qū)域, 一個(gè)灰度較低的區(qū)域, 如瞳孔、睫毛和眉毛;一個(gè)中間區(qū)間, 通常包含虹膜區(qū)域;以及一個(gè)表示鞏膜和部分眼部皮膚的區(qū)域. 通過(guò)實(shí)驗(yàn)我們觀察到, 實(shí)際的虹膜區(qū)域灰度值一般在80–150的范圍內(nèi), 利用自適應(yīng)閾值計(jì)算出所有灰度值最低的20%作為虹膜區(qū)域的上限, 直接忽略超過(guò)這個(gè)范圍最大值的灰度級(jí)區(qū)間. 將此灰度閾值作為Canny算子邊緣檢測(cè)的高閾值, 縮小候選點(diǎn)數(shù)量, 并設(shè)置檢測(cè)圓的半徑小于圖像一半的高度大于1/5圖像的高度. 最終檢測(cè)效果如圖6所示.
圖5 人眼灰度直方圖
本文算法依賴于人眼各區(qū)域的灰度分布規(guī)律中閾值設(shè)置的準(zhǔn)確性, 根據(jù)實(shí)驗(yàn)效果我們給出了經(jīng)驗(yàn)值, 在截取的人眼部分圖像包含完整的眼角和上下眼瞼時(shí),該值都是準(zhǔn)確的, 因?yàn)橛纱怂愠龅幕叶乳撝狄欢〞?huì)落在直方圖中虹膜的灰度分布區(qū)域中, 在虹膜區(qū)域存在部分眼瞼、睫毛遮擋等影響時(shí)仍能取得較好的效果.當(dāng)人眼圖像不包含完整眼角和上下眼瞼時(shí), 可以針對(duì)具體圖像適當(dāng)增加閾值比例, 根據(jù)實(shí)際效果進(jìn)行調(diào)整.另外, 本文算法在虹膜被濃密的毛發(fā)(如頭發(fā))遮擋時(shí),圖像灰度可能不再遵循正常分布規(guī)律, 會(huì)影響虹膜區(qū)域灰度閾值的判斷, 導(dǎo)致無(wú)法準(zhǔn)確地定位出虹膜.
圖6 人眼虹膜外圓定位圖
人的眼瞼包含上眼瞼和下眼瞼, 目前大部分的研究都是只檢測(cè)出靠近或者遠(yuǎn)離虹膜區(qū)域的眼瞼邊緣[22,23],
如圖7所示. 事實(shí)上, 眼瞼是有厚度的, 尤其是上眼瞼.
因此, 本文對(duì)上眼瞼的上下邊緣及下眼瞼分別進(jìn)行檢測(cè), 找到眼瞼的邊緣點(diǎn)集, 并對(duì)邊緣點(diǎn)進(jìn)行擬合.
圖7 已有研究中眼瞼定位
(1) 上眼瞼定位
人眼圖像通過(guò)預(yù)處理減小了鏡面反射光斑的干擾,但往往還存在其他噪聲. 在這里, 我們使用雙邊濾波對(duì)圖像進(jìn)行去噪. 通常情況下, 我們認(rèn)為傳感器引入的噪聲符合正態(tài)分布, 使用高斯濾波器來(lái)對(duì)圖像進(jìn)行濾波達(dá)到去噪的目的[24]. 對(duì)于檢測(cè)邊緣點(diǎn)集而言, 雙邊濾波是一個(gè)保邊去噪的濾波器, 它由兩個(gè)函數(shù)構(gòu)成, 一個(gè)函數(shù)是由幾何空間距離決定濾波器系數(shù), 另一個(gè)由像素差值決定濾波器系數(shù). 相比高斯濾波而言, 不僅有效地去除了圖像中的噪聲, 而且更好地保留了圖像的真實(shí)邊緣.
由于鞏膜與眼瞼像素比較接近, 實(shí)驗(yàn)發(fā)現(xiàn)用一個(gè)全局閾值無(wú)法完整地將眼瞼、虹膜與鞏膜分開(kāi). 因此,本文使用局部自適應(yīng)閾值來(lái)二值化人眼圖像. 局部自適應(yīng)閾值中每個(gè)像素的二值化閾值與該像素鄰域塊的像素值分布有關(guān). 假設(shè)圖像在像素點(diǎn) (x,y)處的灰度值為G(x,y), 我們以像素點(diǎn)(x,y)為中心選取邊長(zhǎng)為(2k+1,2k+1)窗口Sxy, 則圖像中像素點(diǎn)(x,y)的閾值T(x,y)為:
對(duì)圖像中各個(gè)像素點(diǎn) (xi,yi)用B(xi,yi)值逐點(diǎn)進(jìn)行二值化, 即:
二值化結(jié)果如圖8所示. 由于人眼圖像中存在眉毛、睫毛、雙眼皮等的干擾, 利用局部自適應(yīng)閾值對(duì)圖像進(jìn)行二值化后, 可以看到圖像中除虹膜區(qū)域外, 還存在許多非眼瞼區(qū)域. 針對(duì)這些非眼瞼區(qū)域的噪點(diǎn), 本文采取如下兩個(gè)步驟來(lái)盡可能的減小干擾:
圖8 人眼自適應(yīng)閾值二值化
首先, 觀察二值化圖像可以看到, 人眼圖像的上半部分區(qū)域噪點(diǎn)明顯多很多, 這是因?yàn)槊济?、雙眼皮都在上眼瞼區(qū)域附近;另外, 睫毛像素灰度值偏低, 其總是與其他睫毛像素點(diǎn)或者眼瞼像素點(diǎn)相連, 連通區(qū)域較小. 根據(jù)這一特點(diǎn), 我們計(jì)算二值化圖像中連通域大小, 去掉面積小于Φ 的連通域(實(shí)驗(yàn)中我們選取Φ 為20),最終去除掉一部分連通域較小或者離散的像素點(diǎn). 此時(shí), 由于雙眼皮、眉毛等區(qū)域連通域通常較大, 在這一步對(duì)這類噪點(diǎn)的消除較小, 如圖9所示.
圖9 去除較小連通域
然后, 我們通過(guò)OTSU方法將人眼圖像進(jìn)行二值化. 該方法認(rèn)為存在一個(gè)閾值將圖像分成前景區(qū)域和背景區(qū)域兩個(gè)部分, 計(jì)算將這兩個(gè)區(qū)域分開(kāi)的最佳閾值作為全局閾值使得兩者差異最大[25]. 根據(jù)圖像二值化的實(shí)驗(yàn)結(jié)果, 我們發(fā)現(xiàn), 某些人眼圖像的上眼瞼區(qū)域的眼瞼邊緣與鞏膜顏色較為接近, 直接使用OTSU方法難以直接得到完整的上眼瞼, 對(duì)于某些低分辨率圖片只能獲取到外眼角到虹膜頂端的部分像素. 因此, 我們利用得到的二值化圖像, 使用泛洪算法保留最大的連通區(qū)域. 然后, 取其上邊緣作為過(guò)濾睫毛、頭發(fā)、雙眼皮等遮擋因素的模板, 如圖10所示. 將二值化圖像按照模板進(jìn)行過(guò)濾.
圖10 過(guò)濾模板圖
經(jīng)過(guò)以上兩步操作后, 局部閾值二值圖的眼瞼上邊緣完整地保留了下來(lái). 因此, 取此二值圖的上邊緣作為最終的上眼瞼上邊緣. 對(duì)于上眼瞼上邊緣, 除了找出邊緣點(diǎn)集外, 我們將定位出的邊緣點(diǎn)集的最左及最右點(diǎn)作為眼角點(diǎn)的初始預(yù)估位置. 對(duì)于上眼瞼的下邊緣,我們以已經(jīng)定位的虹膜的圓心為中心, 向四周引射線,留下射線與二值圖的第一個(gè)交點(diǎn), 并利用定位上眼瞼上邊緣時(shí)估計(jì)的眼角點(diǎn)作為約束, 最終得到一組上眼瞼下邊緣點(diǎn)集. 由于虹膜區(qū)域的存在, 上眼瞼下邊緣點(diǎn)集在虹膜區(qū)域存在較大缺口, 虹膜與眼瞼的分界線不明確. 我們觀察到, 上眼瞼下邊緣已探測(cè)出較多點(diǎn), 這些點(diǎn)可近似連成曲線. 我們利用最小二乘法從已知點(diǎn)集擬合圓來(lái)估計(jì)虹膜與眼瞼的分界線, 即上眼瞼下邊緣. 圓的平面二次曲線的一般方程可以表示成
最小二乘法就是通過(guò)找到一組參數(shù) (a,b,c)使得所有已知點(diǎn)集到曲線圓之間的距離最小. 圖11為上眼瞼上邊緣點(diǎn)集, 圖12為上眼瞼上邊緣最小二乘擬合結(jié)果.
圖11 上眼瞼上邊緣點(diǎn)集
圖12 上眼瞼上邊緣最小二乘擬合
(2) 下眼瞼定位
人眼下眼瞼通常與皮膚、眼白顏色較為相近, 直接利用最大類間方差法找出動(dòng)態(tài)閾值再進(jìn)行二值化的結(jié)果并不好. 除此之外, 專門(mén)研究虹膜檢測(cè)使用的圖像一般只包含眼睛部位, 圖像分辨率通常較高, 而本文使用的檢測(cè)圖像虹膜區(qū)域半徑低達(dá)5個(gè)像素, 這對(duì)眼瞼檢測(cè)造成了困難. 經(jīng)過(guò)反復(fù)實(shí)驗(yàn), 本文最終選取3×3元素值為1的圓盤(pán)形態(tài)學(xué)結(jié)構(gòu)元素, 對(duì)分割的下眼瞼區(qū)域進(jìn)行形態(tài)學(xué)灰度閉-開(kāi)運(yùn)算. 對(duì)進(jìn)行形態(tài)學(xué)運(yùn)算后的圖像使用Canny算子進(jìn)行一次邊緣檢測(cè), 對(duì)大部分圖片來(lái)說(shuō), 下眼瞼被完整的保留下來(lái). 對(duì)于某些邊緣仍然不清晰的圖片直接使用眼角點(diǎn)和眼球最低點(diǎn)直接擬合圓,擬合結(jié)果如圖13所示, 圖14為人眼各區(qū)域分割結(jié)果.
圖13 下眼瞼最小二乘擬合結(jié)果
圖14 人眼各區(qū)域分割結(jié)果
為了測(cè)試本文提出算法的有效性, 我們使用葡萄牙的Beira大學(xué)組織采集的UBRIS v1.0[26]虹膜數(shù)據(jù)庫(kù)進(jìn)行實(shí)驗(yàn). UBIRIS數(shù)據(jù)庫(kù)包含241個(gè)人共1877幅虹膜圖片, 被采集人大部分為西方人, 在兩個(gè)不同的時(shí)間拍攝. UBIRIS數(shù)據(jù)庫(kù)模擬了非理想的拍攝環(huán)境, 包含較多影響人眼定位的不利因素, 如非線性變形、眼瞼睫毛等遮擋、鏡面反射光斑、圖像不聚焦等噪聲. 除此之外, 我們還從互聯(lián)網(wǎng)采集了分辨率高低不等的人臉圖像, 包含10個(gè)人共100幅圖片, 人眼區(qū)域分辨率低至20×10像素, 來(lái)測(cè)試我們的算法在低分辨率圖像上的檢測(cè)效果. UBIRIS v1.0數(shù)據(jù)庫(kù)圖片僅包含眼部區(qū)域, 無(wú)需使用SDM算法對(duì)人眼區(qū)域進(jìn)行分割.
本文實(shí)驗(yàn)均在一臺(tái)10核CPU、8 G內(nèi)存的Ubuntu 14.04中進(jìn)行, 實(shí)驗(yàn)程序使用OpenCV 2.4.8開(kāi)發(fā). 下面分別展示虹膜、人眼上下眼瞼的定位結(jié)果.
我們使用本文算法對(duì)UBIRIS v1.0數(shù)據(jù)庫(kù)上及從互聯(lián)網(wǎng)采集的圖像分別進(jìn)行虹膜的定位. 圖15為UBIRIS v1.0數(shù)據(jù)庫(kù)上虹膜定位結(jié)果, 圖16為模糊圖像上虹膜定位結(jié)果.
圖15 UBIRIS數(shù)據(jù)庫(kù)虹膜定位實(shí)驗(yàn)結(jié)果
圖16 模糊圖像上虹膜定位實(shí)驗(yàn)結(jié)果
從圖15和圖16可以看出, 本文提出算法不論在姿態(tài)幅度較小的無(wú)遮擋環(huán)境還是實(shí)驗(yàn)室環(huán)境下, 都能比較準(zhǔn)確的檢測(cè)出虹膜圖像中的虹膜外圓部分. 另外,從實(shí)驗(yàn)結(jié)果可以看出, 本文算法在高清圖片上定位效果更精準(zhǔn), 這是因?yàn)槔肏ough變換進(jìn)行檢測(cè)時(shí), 候選像素點(diǎn)投票過(guò)程中, 噪點(diǎn)對(duì)高清圖片的影響較小, 而對(duì)低分辨率的圖片影響較大, 這導(dǎo)致了部分虹膜定位時(shí)出現(xiàn)偏差.
為了更好地展示本文算法的有效性, 我們對(duì)UBIRIS v1.0中虹膜圖像和低分辨率人眼圖像的虹膜檢測(cè)結(jié)果進(jìn)行對(duì)比, 對(duì)比結(jié)果如圖17所示. 圖17(a)、(b)與(c)中, 左邊兩幅圖片來(lái)自UBIRIS v1.0數(shù)據(jù)庫(kù),右邊兩幅圖片來(lái)自互聯(lián)網(wǎng)上人臉圖片截取的人眼部分,圖17(a)與(b)中定位結(jié)果來(lái)自github中對(duì)Wildes及Daugman的虹膜定位算法的開(kāi)源實(shí)現(xiàn)[27]. 圖中展示了四種具有挑戰(zhàn)性的人眼圖片的虹膜定位結(jié)果, 從左至右依次存在具有明顯陰影干擾、具有較嚴(yán)重眼瞼遮擋、像素分辨率較低、像素分辨率較低且具有陰影干擾等問(wèn)題.
圖17 虹膜定位實(shí)驗(yàn)對(duì)比圖
由圖17可以看出, Wildes與Daugman的方法對(duì)于睫毛、眉毛等陰影干擾及眼瞼遮擋處理效果不佳,在定位時(shí)容易受其影響導(dǎo)致定位出現(xiàn)偏差, 在低分辨率圖像上定位也不準(zhǔn)確. 本文方法利用雙線性插值法對(duì)圖像進(jìn)行預(yù)處理, 并利用人眼圖像的灰度分布規(guī)律有效避免了陰影和遮擋的影響. 與Wildes及Daugman的方法相比, 本文方法在處理低分辨率圖像時(shí)具有明顯優(yōu)勢(shì);另外, 在處理具有陰影和眼瞼遮擋圖像時(shí), 本文方法也取得了更好的效果. 但是, 對(duì)于人眼虹膜部分變形較大的圖像, 對(duì)人眼虹膜定位的精度有時(shí)不是很高, 定位出的虹膜半徑偏小. 主要是因?yàn)镠ough變換依賴于候選像素點(diǎn)投票, 本文雖然對(duì)鏡面反射光斑和陰影等進(jìn)行了有效處理, 但是在變形較大圖像上, 實(shí)際虹膜邊緣的投票數(shù)有時(shí)低于偽邊緣, 導(dǎo)致結(jié)果出現(xiàn)偏差.對(duì)于此種情況, 可對(duì)檢測(cè)邊緣周圍像素進(jìn)行一次檢驗(yàn),排除檢測(cè)偏差結(jié)果.
我們使用本文算法對(duì)UBIRIS v1.0數(shù)據(jù)庫(kù)及從互聯(lián)網(wǎng)采集的圖像分別進(jìn)行眼瞼的定位. 圖18為UBIRIS v1.0數(shù)據(jù)庫(kù)中眼瞼定位結(jié)果, 圖19為模糊圖像中眼瞼定位結(jié)果.
由實(shí)驗(yàn)結(jié)果可以看出, 本文提出的算法能較為精確地對(duì)人眼上下眼瞼進(jìn)行定位. 對(duì)于部分人眼變形較大圖片, 本文算法存在一定偏差. 這是因?yàn)楸疚乃惴▽?duì)人眼上下眼瞼使用圓形進(jìn)行擬合, 但在實(shí)際情況中, 眼瞼形狀并不都為圓形, 尤其對(duì)于人眼部分變形較大的圖像而言. 但是, 本文方法定位出的邊緣點(diǎn)集是比較有效的, 后續(xù)研究中可采用多項(xiàng)式曲線如貝塞爾曲線等對(duì)其進(jìn)行擬合, 或?qū)M合曲線增加更多的形狀約束使其更貼進(jìn)實(shí)際眼瞼形狀來(lái)進(jìn)行改進(jìn).
圖18 UBIRIS數(shù)據(jù)庫(kù)眼瞼定位實(shí)驗(yàn)結(jié)果
圖19 模糊圖像上眼瞼定位實(shí)驗(yàn)結(jié)果
同樣地, 我們使用本文算法對(duì)UBIRIS v1.0中虹膜圖像和低分辨率的人眼圖像的眼瞼檢測(cè)結(jié)果進(jìn)行對(duì)比,對(duì)比結(jié)果如圖20所示. 圖20(a)、(b)與(c)中, 左邊兩幅圖片來(lái)自UBIRIS v1.0, 右邊兩幅圖片來(lái)自互聯(lián)網(wǎng)上人臉圖片截取的人眼部分, 圖20(a)中定位結(jié)果為本人根據(jù)Wildes對(duì)眼瞼部分定位算法的實(shí)現(xiàn), 圖20(b)中定位結(jié)果為本人對(duì)Cai等人的眼瞼定位算法的實(shí)現(xiàn).圖中展示了四種具有挑戰(zhàn)性的人眼圖片的眼瞼定位結(jié)果, 從左至右依次存在具有明顯陰影干擾、具有較明顯雙眼皮干擾、像素分辨率較低、像素分辨率較低且具有陰影干擾等問(wèn)題.
由圖中可以看出, Wildes的方法對(duì)于雙眼皮、睫毛等陰影處理不夠, 定位結(jié)果容易受其影響導(dǎo)致出現(xiàn)較大偏差;Cai等人的方法在定位眼瞼時(shí), 需要對(duì)圖像進(jìn)行形態(tài)學(xué)閉開(kāi)運(yùn)算并使眼瞼邊緣區(qū)域灰度達(dá)到最低,在高清無(wú)明顯陰影遮擋的虹膜圖像上, 虹膜顏色較淺且與瞳孔區(qū)域顏色區(qū)分較為明顯時(shí)效果較好, 但在具有明顯陰影的高清虹膜圖像及分辨率較低的人眼圖像上, 該方法無(wú)法保證獲得眼瞼區(qū)域仍然具有最低的灰度, 達(dá)不到理想的效果;本文方法利用自適應(yīng)雙閾值算法對(duì)人眼圖像進(jìn)行處理, 既去除了雙眼皮等的干擾, 又對(duì)睫毛等陰影進(jìn)行了有效處理, 并且不依賴于虹膜與瞳孔灰度值具有較大差異這一條件. 與Wildes及Cai等人的方法相比, 本文方法對(duì)雙眼皮和陰影的處理是非常有效的. 另外, 本文算法在處理低分辨率圖像時(shí),也取得了更好的效果.
圖20 眼瞼定位實(shí)驗(yàn)對(duì)比圖
現(xiàn)有的人眼定位方法直接應(yīng)用在低分辨率人臉圖像時(shí)存在一些問(wèn)題. 本文針對(duì)這種非理想環(huán)境下人臉圖像上的人眼定位問(wèn)題, 提出了一種人眼定位方法, 利用雙線性插值法、動(dòng)態(tài)閾值及雙邊濾波器對(duì)人眼圖像定位存在的干擾因素如眼瞼、睫毛、雙眼皮、鏡面反射光斑等進(jìn)行處理, 利用帶約束的Hough圓檢測(cè)算法及自適應(yīng)雙閾值算法對(duì)人眼虹膜、上下眼瞼分別進(jìn)行定位. 另外, 基于像素單元的圖像邊緣放大后會(huì)呈現(xiàn)凹凸不平的鋸齒邊緣, 本文的定位方法能給出定位的矢量方程, 一定程度上解決了圖像放大后邊緣的鋸齒問(wèn)題, 得到的矢量描述可以應(yīng)用在人臉識(shí)別、三維建模等領(lǐng)域中. 實(shí)驗(yàn)結(jié)果表明, 本文算法在模糊的低分辨率人臉圖像上能較為準(zhǔn)確地定位出人眼位置, 同時(shí), 在高清虹膜圖像上同樣能取得較好的定位效果, 具有較強(qiáng)的魯棒性.