劉相濱,周治民,張波云
(1.湖南師范大學(xué)圖像識(shí)別與計(jì)算機(jī)視覺研究所,中國(guó)長(zhǎng)沙 410081;2.湖南警察學(xué)院信息技術(shù)系,中國(guó)長(zhǎng)沙 410138)
人臉識(shí)別是生物特征識(shí)別中最具發(fā)展?jié)摿Φ募夹g(shù)之一,也一直是圖像處理與機(jī)器視覺領(lǐng)域關(guān)注的熱點(diǎn).雙眼作為人臉最規(guī)則和最穩(wěn)定的局部特征,在人臉識(shí)別中非常重要,只要眼睛被精確定位,就可以降低識(shí)別算法的復(fù)雜度,從而提高人臉的識(shí)別速度和精度.因此,很多學(xué)者把人眼的定位作為人臉識(shí)別的突破口和人臉識(shí)別的關(guān)鍵技術(shù)之一.
近年來(lái),國(guó)內(nèi)外學(xué)者相繼提出了一些人眼的定位方法,如PCA[1],支持向量機(jī)(SVM),基于Ada-Boost[2-5],以及基于模板[6-7]等方法,這些方法都獲得了一定的成效.總的來(lái)說(shuō),這些方法主要分為兩個(gè)步驟:(1)粗定位,找出人臉范圍內(nèi)的可能眼睛塊;(2)精確定位,應(yīng)用一些方法確定雙眼的準(zhǔn)確位置.譚臺(tái)哲等[6]利用形態(tài)學(xué)商圖像對(duì)人眼區(qū)域和皮膚區(qū)域有明顯不同響應(yīng)值的特點(diǎn),提出一種基于形態(tài)學(xué)商模板的高效人眼定位方法.Kumar 等[7]首先通過投影對(duì)眼睛進(jìn)行粗定位,然后采用模板匹配的方法對(duì)眼睛進(jìn)行準(zhǔn)確定位,但該方法所涉及的模板匹配計(jì)算量太大,而且對(duì)分辨率、尺寸、光照、旋轉(zhuǎn)非常敏感.車昊等[8]提出了一種多層結(jié)構(gòu)的快速眼睛定位算法,該算法先通過MER(極小值區(qū)域)進(jìn)行眼睛粗定位,再利用由自然約束條件、眼睛坐標(biāo)及灰度參數(shù)、Krisch 梯度特征所構(gòu)成的三層篩選結(jié)構(gòu)逐步去除錯(cuò)誤的候選,從而得到正確的候選,最后利用局部圖像的重心來(lái)微調(diào)眼睛的位置.這種方法對(duì)眼睛粗定位算法的正確率要求較高,而且難以消除眉毛、鼻孔等對(duì)眼睛定位的影響.Wen 等[9]利用通用投影函數(shù)(GPF)進(jìn)行眼睛定位,計(jì)算量小、實(shí)現(xiàn)簡(jiǎn)單并且容易理解,不足的地方是當(dāng)圖像光照不均勻或有噪聲時(shí),通用投影函數(shù)的極值點(diǎn)不明顯,從而很難準(zhǔn)確地獲得眼睛位置.李愛平等[10]則通過灰度投影與改進(jìn)Hough 變換的方法進(jìn)行人眼定位,算法實(shí)現(xiàn)簡(jiǎn)單,但沒有將人眼的微結(jié)構(gòu)特征考慮進(jìn)來(lái),特別是當(dāng)眼睛睜開程度較小時(shí)定位誤差較大.黃增喜等[11]充分利用人眼的灰度信息在已定位的人臉區(qū)域內(nèi)找到大概眼眉區(qū)域,然后用改進(jìn)的灰度投影算法實(shí)現(xiàn)眉毛和眼睛的分離,再融合圖像灰度、圖像塊結(jié)構(gòu)等信息篩選出人眼位置,但篩選的約束條件之間聯(lián)系過于緊密,且計(jì)算量相對(duì)較大.余龍華等[3]采用AdaBoost 算法訓(xùn)練得到普通的單眼分類器或雙眼分類器,最終利用分類器得到的人眼位置的中心來(lái)定位人眼位置,這種方法簡(jiǎn)單快速,但在訓(xùn)練人眼分類器時(shí)沒有考慮到眼睛瞳孔位置的可移動(dòng)性及眼睛所處各種姿態(tài)的復(fù)雜情況,故不能簡(jiǎn)單地將人眼的精確位置定位在矩形的中心.
以上算法在一些特定情況下具有良好的定位效果,但在不同光照、不同分辨率、有遮擋、復(fù)雜背景、多姿態(tài)等復(fù)雜環(huán)境下都存在一些不足,為此,本文結(jié)合AdaBoost 算法具有決策樹正確率高、速度快等優(yōu)點(diǎn),提出一種新的人眼定位方法.該方法首先利用基于Haar-like 特征的AdaBoost 級(jí)聯(lián)分類器檢測(cè)出人臉區(qū)域,在人臉的上半部分區(qū)域內(nèi)采用文中訓(xùn)練的多姿態(tài)人眼強(qiáng)分類器粗定位人眼區(qū)域,定義為感興趣區(qū)域(ROI),然后對(duì)ROI 中的小圖像塊進(jìn)行二值化圖像處理,最后根據(jù)ROI 內(nèi)瞳孔區(qū)域邊界的灰度值變化較劇烈的特點(diǎn)尋找小圖像塊中的最大連通域,該最大連通域即為人眼的準(zhǔn)確位置[12].在本文算法中,多姿態(tài)人眼分類器只選取眉毛以下的區(qū)域作為樣本,因而能夠避免現(xiàn)有一些算法將眼睛錯(cuò)誤定位到睫毛的不足,一定程度上克服了人臉可塑性和光照等其他因素帶來(lái)的干擾.實(shí)驗(yàn)結(jié)果表明,本文算法能夠在復(fù)雜環(huán)境下對(duì)人眼位置進(jìn)行準(zhǔn)確定位.
Freund 和Schapire 在1996年提出的AdaBoost 算法是一種迭代方法,目的是通過從大量的弱分類器中選取最具有分類意義的組合組成一個(gè)強(qiáng)分類器,提高檢測(cè)的精確度.在此基礎(chǔ)上,Viola 和Jones 在2001年提出了基于Haar-like 特征的AdaBoost 人臉檢測(cè)方法,極大地提高了人臉檢測(cè)的速度和精度,從而使得人臉檢測(cè)技術(shù)真正得到了應(yīng)用.Viola 等人設(shè)計(jì)的人臉級(jí)聯(lián)檢測(cè)器如圖1所示.
圖1 人臉級(jí)聯(lián)檢測(cè)器Fig.1 Face cascade detector
圖2 Haar-like 特征Fig.2 Haar-like features
分類器以Haar-like 矩形特征作為分類的依據(jù).為了有效地篩除大量的非人臉窗口,整個(gè)人臉檢測(cè)器由多級(jí)子分類器(組)級(jí)聯(lián)而成,每個(gè)子分類器對(duì)應(yīng)一個(gè)Haar-like 矩形特征.檢測(cè)器對(duì)輸入的待檢測(cè)窗口進(jìn)行逐級(jí)檢驗(yàn),如果其中的某一級(jí)子分類器將其判斷為非人臉,則立即篩除,不再進(jìn)行檢測(cè).而且,在檢測(cè)不同大小的人臉窗口時(shí),并不對(duì)人臉窗口進(jìn)行縮放,而是變換各個(gè)分類器的尺度和閾值,從而大大縮短了檢測(cè)時(shí)間.后來(lái),Rainer 等人擴(kuò)展了Harr-like 矩形特征,增加了傾斜特征,如圖2所示,進(jìn)一步提高了人臉檢測(cè)效果.
現(xiàn)有的很多算法在復(fù)雜環(huán)境下人眼定位不準(zhǔn)確,或在人眼定位后,精確的人眼位置還需要對(duì)眼球的位置做進(jìn)一步的修正,為此,本文提出了一種改進(jìn)算法,通過構(gòu)建一個(gè)基于AdaBoost 算法的多姿態(tài)人眼強(qiáng)分類器實(shí)現(xiàn)對(duì)人眼的一步定位.
基于AdaBoost 算法的分類器效果與樣本的選擇、訓(xùn)練級(jí)數(shù)有重要關(guān)系[2].假設(shè)P 為訓(xùn)練級(jí)數(shù),S 為樣本的數(shù)量,ε 為錯(cuò)誤率,D 為分類器的檢測(cè)率,則它們存在如下關(guān)系:
1)在P 不變的情況下,S 增加,分類器最終ε 降低;
2)S 不變,P 增加,分類器的檢測(cè)率D 緩慢降低,ε 迅速降低;
3)S 不變,P 增加到一定大小,分類器無(wú)檢測(cè)效果.
根據(jù)這樣的關(guān)系,本文設(shè)計(jì)的多姿態(tài)單眼強(qiáng)分類器中P 為10 級(jí),樣本為2 200 張多姿態(tài)、不同光照及噪聲情況下的人眼圖像,通過訓(xùn)練得到人眼強(qiáng)分類器.
有些學(xué)者對(duì)雙眼分類器做了研究,但是雙眼強(qiáng)分類器在姿態(tài)上不能很好地適應(yīng)上下、左右偏轉(zhuǎn)等情況,并且降低了檢測(cè)的效率.而訓(xùn)練多姿態(tài)單眼強(qiáng)分類器能夠很好的適應(yīng)較大幅度偏轉(zhuǎn)的人眼檢測(cè).為了進(jìn)一步提高檢測(cè)效率,本文根據(jù)人眼在人臉圖像中的分布縮小檢測(cè)范圍,但為了保證適應(yīng)多姿態(tài)人眼不被漏檢,設(shè)定臉部圖像高度的1/5 到1/2 處為檢測(cè)區(qū)域,并將檢測(cè)得到的人眼用矩形框標(biāo)出.
在得到了眉毛下面的矩形眼睛區(qū)域后,不能簡(jiǎn)單地把矩形中心定為人眼中心位置,因?yàn)榫匦蔚闹行牟灰欢ㄊ侨搜鄣耐孜恢?,還需要進(jìn)一步精確定位人眼位置.文獻(xiàn)[13]對(duì)灰度圖像中的眼睛特征進(jìn)行了深入研究,眼睛部分具有以下特征:1)眼睛局部范圍內(nèi)灰度值一般低于背景灰度,表現(xiàn)為中間瞳孔部位黑而兩邊白;2)眼睛邊緣灰度值變化較劇烈;3)眼睛內(nèi)部瞳孔區(qū)域灰度變化緩慢.根據(jù)這些特性,本文通過搜索眼睛圖像區(qū)域內(nèi)的最大連通域,標(biāo)出其最大連通域的中心位置來(lái)確定瞳孔的位置.
本文算法的流程圖如圖3所示,具體算法過程分為3 步.1)基于AdaBoost 的人臉定位
圖3 算法流程圖Fig.3 Flow chart of the algorithm
圖4 人眼粗定位示意圖Fig.4 Diagram of preliminary eye localization
人臉定位是人眼定位的前期工作,本文首先采用OpenCV 自帶的人臉分類器在整個(gè)圖像范圍內(nèi)搜索到人臉區(qū)域,然后將檢測(cè)到的人臉用矩形框標(biāo)出,得到人臉檢測(cè)窗Wf.由于在人臉識(shí)別時(shí),原始圖像的整個(gè)區(qū)域都會(huì)被掃描,70%~80%的非人臉區(qū)域在篩選式級(jí)聯(lián)的前兩個(gè)節(jié)點(diǎn)被拒絕,每個(gè)節(jié)點(diǎn)使用大約10 個(gè)決策樹,因而能夠快速得到準(zhǔn)確的人臉區(qū)域(Wf),如圖4(a)所示,為下一步人臉區(qū)域內(nèi)粗定位人眼提供了較好的支持.
2)人臉區(qū)域內(nèi)的人眼粗定位
根據(jù)人眼在人臉中的位置分布縮小搜索范圍來(lái)粗定位人眼位置,同時(shí)為了適應(yīng)各種姿態(tài)變化引起的人眼位置偏差,本文將人眼檢測(cè)范圍約束到人臉窗口的上半部分,即多姿態(tài)人眼強(qiáng)分類器通過檢測(cè)人臉區(qū)域(Wf)上半部分得到人眼區(qū)域(We),如圖4(b)所示,大小為m×n,并定義We為感興趣區(qū)域(ROI).
3)基于最大連通域的人眼精確定位
連通域一般是指圖像中具有相同像素且位置相鄰的前景像素點(diǎn)組成的圖像區(qū)域.本文采用基于形態(tài)學(xué)的方法來(lái)提取ROI 區(qū)域中的連通域,然后找出面積最大的連通域,最大連通域的中心即為精確的人眼位置.
為了驗(yàn)證在多姿態(tài)、不同光照下得到的人眼圖像的最大連通域中心位置即是人眼的中心位置,本文對(duì)大量樣本圖像及非樣本圖像進(jìn)行了實(shí)驗(yàn)研究分析,部分實(shí)驗(yàn)結(jié)果如圖5所示,其中,圖5(b)左邊的圖像為16個(gè)連通域,右邊為8 個(gè)連通域,眼球中瞳孔所在的連通域是最大的,如圖5(c)中“+”位置即為精確的人眼位置.實(shí)驗(yàn)結(jié)果表明,算法得到的人眼中心位置和實(shí)際相吻合.
圖5 提取人眼ROI 區(qū)域內(nèi)最大連通分量中心位置示意圖Fig.5 Diagram of extracting the center of the largest connected regions in the ROI
本文算法采用VC 6.0+OpenCV 1.0 予以實(shí)現(xiàn).
考慮到依據(jù)眼睛特征進(jìn)行人眼定位的過程中容易將眼睛定位到眉毛或者睫毛,且在不同分辨率圖片中人眼的大小不一樣,同一圖片中因人的位置不同眼睛大小也不同,因此本文在訓(xùn)練分類器時(shí)建立了一個(gè)包含2200 張人眼正樣本和900 張非人眼的負(fù)樣本的樣本集.樣本為20×10 像素、39×19 像素、42×24 像素、45×21 像素、76×38 像素、84×36 像素等不同大小眉毛以下的人眼區(qū)域圖片.正負(fù)樣本為從ORL 和Yale 人臉庫(kù)中不同光照、輕微遮擋以及存在噪聲等條件下的人臉圖像上截取的人眼圖像,同時(shí)加入了一些來(lái)自攝像頭(HYC-W280)實(shí)拍的圖像.部分人眼樣本如圖6所示,部分非人眼樣本如圖7所示.
圖6 部分人眼樣本Fig.6 Samples of eye
圖7 部分非人眼樣本Fig.7 Samples of negative eye
所有在人眼強(qiáng)分類器中進(jìn)行訓(xùn)練的正負(fù)樣本的描述文件都是通過ObjectMarker 獲得.ObjectMarker 是一款專門用來(lái)訓(xùn)練分類器時(shí)生成樣本描述文件的工具軟件,其優(yōu)點(diǎn)是在獲取正負(fù)樣本圖像的過程中可以移動(dòng)、縮小、放大等,這樣就能夠更準(zhǔn)確地得到人眼樣本圖像及圖像的描述信息,并自動(dòng)生成樣本描述文件.通過正負(fù)樣本的描述文件在OpenCV 中自帶的Haar 訓(xùn)練器訓(xùn)練得到人眼強(qiáng)分類器,能夠在人臉范圍內(nèi)較為精確地找到眉毛以下的眼睛位置,效果如圖4所示.
本文算法在自建的綜合人臉圖片庫(kù)進(jìn)行了大量驗(yàn)證,然后分別在ORL 和Yale 人臉庫(kù)中實(shí)驗(yàn)并與文獻(xiàn)[3]算法結(jié)果進(jìn)行了比較,如表1所示,從表1 可以看出,本文算法對(duì)光照、多姿態(tài)等復(fù)雜環(huán)境有更好的魯棒性,定位的精度和準(zhǔn)確率都有一定程度的提高.
表1 人眼精確定位算法結(jié)果比較Tab.1 Results comparison of eye localization algorithms
本文算法充分利用了人眼局部圖像的信息快速實(shí)現(xiàn)了人眼的準(zhǔn)確定位,與現(xiàn)有算法相比,眼睛定位的精度和速度都有一定程度上的提高,且在低分辨率、側(cè)光、多姿態(tài)等復(fù)雜環(huán)境下具有更好的魯棒性.不足的是,當(dāng)在低分辨率的視頻圖像中出現(xiàn)多個(gè)人臉時(shí),定位的速度和準(zhǔn)確率均有所下降,特別是對(duì)那些瞳孔不太明顯的眼睛塊會(huì)出現(xiàn)漏檢現(xiàn)象,因此對(duì)低分辨率的多人眼視頻圖像中的人眼準(zhǔn)確定位還需進(jìn)一步的研究.
[1]曹 林,杜康寧.基于加權(quán)PCA 的人眼定位算法[J].北京信息科技大學(xué)學(xué)報(bào):自然科學(xué)版,2010,25(3):52-55.
[2]劉 藝,龔衛(wèi)國(guó),李偉紅.雙層結(jié)構(gòu)AdaBoost 健壯分類器用于人眼精確定位[J].計(jì)算機(jī)應(yīng)用,2008,28(3):801-803.
[3]余龍華,王 宏,鐘洪聲.人眼檢測(cè)及瞳孔定位[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(3):186-189.
[4]鄭玉鐸,田楊萌,靳 薇.基于AdaBoost 和ASM 算法的人眼定位[J].北京信息科技大學(xué)學(xué)報(bào):自然科學(xué)版,2013,28(3):73-76.
[5]楊定禮,張宇林,周紅標(biāo),等.人眼定位與AdaBoost Gabor 濾波的人臉檢測(cè)算法[J].計(jì)算機(jī)應(yīng)用研究,2014,31(7):2021-2029.
[6]譚臺(tái)哲,葉 青.基于形態(tài)學(xué)商模板的人眼定位方法[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(1):194-198.
[7]KUMAR V,MEHTA M.Face recognition using line edge map[J].Int J Multidiscipl Curr Res,2014,7(2):59-61.
[8]車 昊,黃 磊,劉迎建,等.一個(gè)基于多層結(jié)構(gòu)的快速眼睛定位算法[J].中國(guó)圖象圖形學(xué)報(bào),2008,13(3):472-479.
[9]WEN G,BO C,SHAN S G,et al.The CAS-PEAL large-scale Chinese face database and baseline evaluations[J].IEEE Trans Syst,Man Cyber,A:Syst Humans,2008,38(1):149-161.
[10]李愛平,魏 江,郝思思.基于灰度投影與改進(jìn)Hough 變換的人眼定位算法[J].電子設(shè)計(jì)工程,2014,22(16):171-173.
[11]黃增喜,張海軍,李一波,等.一種快速的自動(dòng)人眼定位方法[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(7):183-186.
[12]張江鑫,謝 晉,鄺萬(wàn)坤.基于人臉五官特征的空域差錯(cuò)掩蓋算法[J].中國(guó)圖象圖形學(xué)報(bào),2013,18(8):913-918.
[13]張 錚,王艷平,薛桂香.數(shù)字圖像處理與機(jī)器視覺[M].北京:人民郵電出版社,2010.