浙江大學城市學院 饒瑞琦 尚麗娜 石晴瑤 陸宇棟
人眼檢測及動態(tài)跟蹤研究綜述
浙江大學城市學院 饒瑞琦 尚麗娜 石晴瑤 陸宇棟
隨著計算機性能的不斷提升以及圖像處理精度的提高,人臉識別領(lǐng)域日趨火熱,與此同時,隨著應(yīng)用需求的不斷多樣化,人眼作為臉部的重要特征,針對人眼的識別也有多方面的應(yīng)用價值,因此有關(guān)于人眼識別方面的研究越來越受到重視。這些年我國科研人員也通過努力探討,在人眼的定位與識別上取得顯著成果。
人眼檢測;人眼動態(tài)跟蹤;Viola-Jones算法;AdaBoost算法;zernike矩特征;虹膜識別
眼睛在人與人的交流中有舉足輕重的作用,在人的五官中,人眼有與眾不同的魅力,兩眼對視的過程里,人眼能傳達出幽怨,哀傷,喜悅,憤怒等復雜情感,換而言之,人眼具有“生命”,伴隨著計算機視覺技術(shù)的進步,這種生命力在該人臉識別領(lǐng)域也得到了很好的展現(xiàn),人眼檢測作為人臉識別以及表情識別的預處理步驟先驗條件,其檢測的精度和速度將直接影響識別的精度和速度,不僅如此,眼睛圖像的獨特性以及眼睛的運動特點能夠反映出人的身體素質(zhì)以及心理上的細微變化,這使得人眼識別在心理學、認知科學、醫(yī)學生理學及公共安全等領(lǐng)域有廣闊的應(yīng)用前景。
一般判斷人眼的關(guān)注度主要是通過對攝像頭檢測到的圖像中眼鏡區(qū)域的黑色像素點的大小變化來判斷的。通過攝像頭記錄下不同時刻眼鏡區(qū)域像素點的個數(shù),對其進行統(tǒng)計分析,取出一個合適的值來作為判斷關(guān)注度或者疲勞度的標準。在處理對象是一段視頻時,則通過對視頻中的每秒提取五幀,依次對每一幀進行人眼檢測,檢測出人眼狀態(tài)之后再定義一個變量count來記錄黑色像素點大小小于判斷標準點大小的幀數(shù),當一分鐘內(nèi)判斷認為關(guān)注度低甚至疲勞的幀數(shù)達到90幀以上則認為被檢測者是出于關(guān)注度較低甚至疲勞的狀態(tài)的。
而另一種被普遍采用的判斷人眼關(guān)注度和疲勞度的方法則首先采用Viola-Jones算法,在獲取的圖像中直接進行人眼定位,再對人眼圖像進行處理得到人眼長寬比值Q,最后建立Q值與關(guān)注程度的關(guān)聯(lián)模型。為了提高該算法的普遍性,需要在檢測前確定一個標準值Q’,Q’值的確認以對被測試者眼部信息采集的樣本中80%以上的概率分布點為標準。Viola-Jones算法可直接跳過人臉定位步驟,在圖像中直接定位到人眼;該算法的核心原理是在一個滑動窗口中提取出harr特征,然后通過Adaboost分類器挑選出能最有效區(qū)分人眼的特征[1],最后在經(jīng)過訓練,就可以得到一個檢測率高但是誤查率低的級聯(lián)分類器,通過該分類器可檢測人眼[2]。
與前一種方法相比,這種方法檢測速度提高了不少,而且可以適應(yīng)頭部的不同姿態(tài),建立出來的“眼部相對長寬比-睜眼程度”模型具有良好的線性,即在提高檢測速度的同時保證了算法的魯棒性。并且這種判斷關(guān)注度的方法還運用到了關(guān)注度衍生的判斷疲勞程度中,實驗過程里采用該方法的疲勞判斷系統(tǒng)可以在一秒內(nèi)對表現(xiàn)出疲勞狀態(tài)的被測試者發(fā)出警報,這種快速且精準的疲勞判斷的系統(tǒng)在防疲勞安全駕駛[3]領(lǐng)域有良好的應(yīng)用前景。
人眼的檢測和跟蹤的主要處理對象是給定的視頻序列,前一幀眼睛所處的位置以及其后續(xù)運動信息都將作為人眼定位過程的重要數(shù)據(jù)。一般的人眼定位方法主要是采用基于學習、基于模版的匹配和基于特征的方法來實現(xiàn)人眼檢測以及跟蹤的。而組合型人眼檢測和跟蹤方法則采用了別的手段。
AdaBoost算法就是應(yīng)用在人眼檢測里的一種算法,眼睛的位置可通過AdaBoost算法構(gòu)建出的人眼側(cè)鍵分類器檢測到,然后結(jié)合卡爾曼濾波器以及平均位移就能夠追蹤到瞳孔的位置。AdaBoost算法的核心思想是針對一個訓練集訓練出不同的弱分類器,之后將其集合起來構(gòu)成一個強分類器。而人眼檢測和跟蹤系統(tǒng)中采用的卡爾曼濾波器的主要作用是估計目標在下一幀中的位置??柭鼮V波器可以分為預測和更新兩個步驟。這一系統(tǒng)中采用的平均位移追蹤是一種基于目標物外表的目標追蹤方法。根據(jù)前一幀檢測到的就可以構(gòu)造出眼睛模型的密度分布,然后通過尋找Bhattachayya系數(shù)的最大值這一尋優(yōu)過程來進行匹配。
人眼的檢測與跟蹤過程:
檢測和跟蹤是交替運行在系統(tǒng)工作時的,這是為了有效的提高系統(tǒng)運行速度和檢測精度。在檢測時,采用AdaBoost分類器尺度縮機制的人眼算法,并可采用canny裁剪技術(shù)來縮小所要分析的候選區(qū)域來提高效率。在跟蹤時,使用2級眼睛跟蹤的方法讓卡爾曼濾波器和平均位移分類器交替工作。此外,訓練分類器需要較長的時間,針對這一問題,研究人員常把已經(jīng)訓練好的AdaBoost分類器做成XML文件以求縮短時間,這樣一來,在使用的時候只需要加載相應(yīng)的級聯(lián)分類器。而圖片等大小不是唯一的,所以在每一次的掃描圖像過程中都先用小的窗口移動掃描,若在圖像上沒有發(fā)現(xiàn)檢測目標,系統(tǒng)便會自動調(diào)整分類器大小,在調(diào)整完成后再繼續(xù)進行檢測,直到檢測窗口和待檢測圖片的大小相當。考慮到計算量較大會影響系統(tǒng)響應(yīng)時間的因素,AdaBoost分類器在定位到人眼位置之后會對隨后的每幀采用追蹤的方式,這樣一來就減少了計算量??墒强柭鼮V波器只適用于臉部正面而且眼睛睜開的情況,如果出現(xiàn)了外部光源的干擾以及頭部眼部的突然動作,卡爾曼濾波器就會失效。為了解決這一問題,學者們提出了平均位移的方法。當卡爾曼濾波器失效的時候,平均位移就接管了人眼跟蹤的職責,平均位移算法根據(jù)的是眼部區(qū)域的亮度概率統(tǒng)計分布。而單純就亮度分布而言,眼部區(qū)域與給定的眼部模型差別是很小的。因此無論眼睛是否閉合,平均位移算法都能夠有效的追蹤到眼睛。但同時平均位移算法存在易受相似目標干擾的缺點。為了避免這一缺點影響到實驗結(jié)果,學者將卡爾曼濾波器所檢測到的眼睛用于更新該眼睛模型,先利用卡爾曼追蹤人眼瞳孔的位置,預測階段時,通過對前一刻狀態(tài)的估計預測當前狀態(tài);更新階段時,根據(jù)當前狀態(tài)的數(shù)據(jù)對預測階段得到的預測值進行優(yōu)化。如此就能減小平均位移算法造成的誤差。
已知外部環(huán)境下的光照變化以及頭部的傾斜移動等行為都有可能對人眼檢測的結(jié)果造成影響,為了避免很大的誤差產(chǎn)生,除了之前提到的平均位移追蹤方法,還有基于zernik矩特征[4]的方式。低階的zernike矩能夠描述圖像整體的信息,但是對噪聲和微小形變不敏感;而高階的zernike矩主要能表達圖像的細節(jié),并且高階的zernike矩不會輕易受到光照變化帶來的影響,而且對于人眼瞳孔和人眼虹膜等帶有圓形輪廓的圖像擁有較為不錯的特征描述力。理論上可以構(gòu)造任意階的zernike矩特征來描述圖像的形狀信息。Zernike矩幅值在一幅圖像中是具有旋轉(zhuǎn)不變性的,而且它的相位角度信息在人眼定位和人眼狀態(tài)識別方面都有良好的適用性??赏ㄟ^relief算法去尋找出更能描述人眼形狀的Zemike矩的特征向量,與相對誤差范圍內(nèi)的向量相近的匹配法相互結(jié)合,以此實現(xiàn)人眼的識別與定位,并能提高人眼識別精確度。除此之外,可通過快速旋轉(zhuǎn)角度估計法來消除頭部傾斜對于人眼識別的引起的誤差。最后通過投影法計算角度修正過度的人眼圖像得到最終的人眼閉合狀態(tài)。
基于Zernike矩的人眼檢測與定位的具體方法如下:
對于二維的離散數(shù)字圖像f(x,y),其n階m重Zernike復數(shù)矩定義為:
該式中:n表示正整數(shù)或0,m表示整數(shù)且|m|≤n,*代表共軛復數(shù);Vnm(ρ,θ)表示將歸一化的像素坐標(-1<x,y<1)映射至單位圓極坐極坐標(ρ,θ)之后計算出Zernike矩的變換核,它由是一組復數(shù)多項式構(gòu)成,表達式為:
從中可得到結(jié)論是Zernike矩為圖像在Zernike多項式Vnm(ρ,θ)上投影所得到的一組完備正交集。此外Zernike矩遞歸的性質(zhì)可使其在實際應(yīng)用過程中使用些效果顯著的快速算法來確保實時性[5]。不僅如此它還具有旋轉(zhuǎn)不變性,也就是說將一幅圖像旋轉(zhuǎn)α角度后,該圖像的Zernike矩Z'nm與原圖像Znm間存在如下關(guān)系:
依據(jù)式(4)可得出結(jié)論|Z'nm|=|Znm|,這表示圖像的旋轉(zhuǎn)并不會使得Zernike矩的幅值發(fā)生變化;并且圖像旋轉(zhuǎn)的角度α還可通過相位關(guān)系的比較由e-jmα得到。
Relief算法是先在圖像訓練的樣本集F={f1,f2,…,fk}中隨機的抽取一個圖形樣本f i,之后再從人眼圖像和非人眼圖像樣本中各自選擇一個在特征空間范圍內(nèi)距離f i最近的樣本。在這些樣本中分別用H和M來表示距離f i最近的同類樣本和異類樣本,最后需要通過某種特征元素Zj的差異更新變換這種特征元素的權(quán)重wj,計算如下所示:
該式中:r表示抽樣迭代次數(shù),diff(Zj,f i,H)代表f i在特征Zj上的差異,diff(Zj,f i,M)代表H和M在特征Zj上的差異,可定義為:
該式中:Zj(fi)代表fi的第j個Zernike矩特征,Zj(H)代表H的第j個Zernike矩特征,max(Zj)為Zj在該樣本集中的最大值,min(Zj)為最小值。
由此可得到以下結(jié)論,某一特種如果與樣本分類相關(guān)性較大,那么它與同類樣本的該特征存在的較小的差異,反之,與異類樣本同特征的差異會顯得較大。根據(jù)這種結(jié)論可得出在特征值權(quán)重的變化過程里,該特征的權(quán)重是逐漸增長的。與此相反,如果某一特征不適用于樣本分類,那么其特征值權(quán)重會在更新迭代過程中不斷減小,趨向于0。
近些年來在人眼識別中,針對人眼的虹膜識別也發(fā)展的很快。因為在自然光源下,人眼的灰度差異是明顯的,虹膜和鞏膜的邊緣很容易分辨。人眼本身是一個三維物體,在將人眼這個三維物體向二維投影的過程中信息失真是在所難免的。上下眼瞼是整個虹膜識別中的危險邊緣,判斷結(jié)果很容易受到膚色和皮膚皺紋的影響,產(chǎn)生偽邊緣或者發(fā)生邊緣漏判。為了提高原本已有的虹膜識別系統(tǒng)的識別率,學者們已經(jīng)提出了用于虹膜分割定位的改進算法。為了提高虹膜識別,學者們采用了二值化的方法對瞳孔進行分離,這樣一來就可以得到虹膜圖像;在這之后再將得到的虹膜圖像進行縮小,再用改進過的Canny算子[6]來對縮小的虹膜圖像進行邊緣檢測,這就得到了虹膜邊緣;再用最小二乘法來進行曲線擬合;最后再采用Radon變換,來對眼部圖像的上下眼瞼部位進行圖像處理,得到有效的虹膜特征值區(qū)域。該改進算法的開發(fā)者已在Matlab上采用CASIA1.0,CASIA4.0中的虹膜圖像進行了實驗,實驗結(jié)果表示這種改進了的虹膜圖像定位分割算法可以明顯縮短虹膜的定位時間,而且定位準確度可以達到98.82%,這表明這種改進的虹膜圖像定位分割算法是很有實際應(yīng)用價值的。一個典型的虹膜識別系統(tǒng)主要是由下列幾各部分組成:圖像的采集,圖像和處理,特征提取和編碼,特征的匹配。在進行虹膜識別前,要求對虹膜先進行預處理,即進行虹膜定位分割,這是整個虹膜識別過程中十分重要的一步,因為整個識別結(jié)果的準確性很大程度上取決于虹膜分割的結(jié)果。而虹膜定位分割要求考慮到以下因素:瞳孔,鞏膜,眼皮和睫毛;虹膜邊界通常可以看成一個包含了內(nèi)外兩條邊界的環(huán)形。Canny算子是一種被廣泛應(yīng)用在圖像處理方面的優(yōu)秀算法,該算法擁有受噪聲和弱邊緣干擾很小的特點,但是由于傳統(tǒng)Canny算子難以設(shè)定實際應(yīng)用中的高低閾值,現(xiàn)如今學者提出的虹膜定位算法中采用的Canny算子為改進后的版本,在該版本中Canny算子去除了原有的缺點,能夠?qū)Ω叩烷撝颠M行自適應(yīng)地設(shè)置,如此一來就能夠有效地濾除非虹膜邊界點,并能夠提高定位的精度和速度。
瞳孔分離:
在進行虹膜定位時,需要先對瞳孔進行分離[7]。因為瞳孔的顏色在人眼中是最深的,所以對于虹膜和瞳孔的邊界可以看到有明顯的灰度變化,這帶來的便利之處在于能夠較為輕易的分離瞳孔和虹膜。首先對給定的圖像取灰度直方圖計算得到分割閾值,再對閾值進行二值化分割[8],之后通過形態(tài)學二次處理二值圖像,最后即可正確地定位瞳孔[9]。
人眼的眼瞼和睫毛很可能會出現(xiàn)在識別出的人眼區(qū)域內(nèi),而這是幾乎不能避免的,可若是將眼瞼和睫毛的干擾帶入到系統(tǒng)中去,虹膜識別的效率會大大降低。因為眼瞼和睫毛的遮擋部位主要在虹膜的上下邊緣處,學者通過將虹膜分為兩部分并分別進行運算處理的方法來避免眼瞼和睫毛帶來的誤差。虹膜上下兩個方向存在遮擋部位,首先對于眼瞼遮擋部分,進行水平線方向的檢測,水平梯度上Canny算子的權(quán)值比豎直的方向大。而直線的位置可以通過Radon變換[10]來確定,該變換可通過任意方向?qū)瘮?shù)進行投影,然后在改變參數(shù)可求出直線的方向角以及到原點的距離這樣就可以確定直線所在的位置了。
計算機視覺技術(shù)在人工智能和圖像處理能力的進步下發(fā)展也十分迅速人臉識別領(lǐng)域的火熱一定程度上也使得人眼識別方向的研究愈加受到重視,在此基礎(chǔ)上,快速的人眼檢測和識別已經(jīng)成為人眼關(guān)注度判斷的重點。本文通過回顧人眼檢測及動態(tài)跟蹤近20年來的主要研究成果,列舉以下四種進行分析,它們分別為:基于Viola-Jones算法的人眼檢測、基于AdaBoost算法的人眼檢測、基于zernike矩特征的人眼檢測和人眼的虹膜識別。這四種針對人眼的識別與檢測各有各的長處與不足,在不同情況下準確度也會相差一定程度,因此不同情況下要采用不同的方法。在未來,對于人眼檢測以及定位方面的研究會取得更多的成果。
[1]龍伶敏.基于Adaboost的人臉檢測方法及眼睛定位算法研究[D].成都:電子科技大學信息學院,2008.
[2]李召榮,艾海舟.實時魯棒的自動人眼狀態(tài)分類[J].計算機輔助設(shè)計與圖形學學報,2007,3(19):292-297.
[3]千承輝,王政,左濂銳,李春生,劉昊明.基于人眼識別的防疲勞駕駛系統(tǒng)設(shè)計與研究[J].吉林大學學報(信息科學版),2016,04:522-527.
[4]李響,譚南林,李國正,張弛.基于Zernike的人眼定位與狀態(tài)識別[J].電子測量與儀器學報,2015,03:390-398.
[5]LIU C,HUANG X H,WANG M.Fast computation of Zernike moments in polar coordinates[J].IET Image Process,2012,6(7):996-1004.
[6]張玲艷.基于Canny理論的自適應(yīng)邊緣檢測方法研究[D].蘭州:西北大學,2014.
[7]陳健,鄭紹華,潘林,余輪.基于圖像特征的快速瞳孔提取算法[J].電子測量與儀器學報,2014,02:203-210.
[8]王延年,劉婷,牛飛婷,張雙雙.改進的虹膜圖像定位分割算法[J].激光雜志,2015,05:11-13.
[9]穆偉斌,李靖宇,金成.基于邊緣檢測的虹膜圖像定位分割算法研究[J].電子技術(shù)與軟件工程,2014,07:138-140.
[10]涂娟,王海濱,曹林,等.基于Hough變換的快速虹膜識別算法研究[J].電視技術(shù),2014,38(19):15-16.
饒瑞奇(1996—),浙江衢州人,大學本科,現(xiàn)就讀于浙江大學城市學院。
尚麗娜(1980—),河南洛陽人,碩士研究生,浙江大學城市學院講師,研究方向:集成電路設(shè)計與應(yīng)用,圖像處理。
石晴瑤(1996—),浙江臺州人,大學本科,現(xiàn)就讀于浙江大學城市學院。
陸宇棟(1997—),浙江嘉興人,大學本科,現(xiàn)就讀于浙江大學城市學院。
浙江省教育廳Y201635575;通信工程杭州市特需專業(yè)建設(shè)項目。