田全 王蘊(yùn)哲
摘要:針對(duì)眉毛和眼鏡框等區(qū)域?qū)θ搜鄱ㄎ辉斐奢^大影響的問題,根據(jù)人眼周圍區(qū)域各部位灰度值變化特征,提出了一種新的人眼定位及開閉狀態(tài)識(shí)別算法。該算法利用AdaBoost算法對(duì)人眼進(jìn)行粗定位,通過圖像水平積分法,根據(jù)積分極值點(diǎn)特征完成人眼特征的精確定位,實(shí)現(xiàn)人眼部位條狀區(qū)域的分割。最后利用投影法得出人眼的開閉狀態(tài)。實(shí)驗(yàn)結(jié)果表明,該文提出的方法能夠有效準(zhǔn)確的實(shí)現(xiàn)人眼部位的精確定位,對(duì)人眼開閉狀態(tài)識(shí)別率能夠滿足實(shí)際需求,且對(duì)圖像中的各種干擾因素具有較強(qiáng)的魯棒性。
關(guān)鍵詞:人眼定位;人眼狀態(tài)識(shí)別; AdaBoost算法;水平積分投影法
中圖分類號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)03-0170-03
Abstract: Aiming at the problem that eyebrow frame and other areas have great influence on human eye location, a new eye location and state recognition algorithm is proposed Based on the change of gray value in different parts of the human eye. The algorithm uses AdaBoost algorithm to locate the human eye roughly, and completes the precise location of human eye Based on the integral extremum point feature by image horizontal integration method, and realizes the segmentation of human eye part. Finally, by using the projection method of opening and closing state of the eye. Experimental results show that the proposed method can accurately and accurately locate human eyes, and it can meet the actual demand of human eye opening and closing state, and is robust to all kinds of interference factors in images.
Key words: eye location; eye state recognition; AdaBoost algorithm; projection method
1 概述
在車輛輔助駕駛系統(tǒng)中,人眼作為人臉特征的關(guān)鍵特征,其定位精度和開閉狀態(tài)判斷的準(zhǔn)確度直接影響系統(tǒng)對(duì)于駕駛員行車過程中分神或者疲勞狀態(tài)檢測(cè)的準(zhǔn)確性[1]。目前人眼定位算法已較成熟,常用方法有以下幾種:一是基于形狀的人眼定位方法,如Hough變換法,利用瞳孔或虹膜的圓形特征,以眼瞼或眼角的幾何特征加以輔助,能夠?qū)崿F(xiàn)人眼的精確定位[2]。該方法常用于安檢口身份驗(yàn)證及手機(jī)解鎖等場(chǎng)合,通常需要指定被測(cè)者頭部保持固定的姿勢(shì),同時(shí),該方法對(duì)測(cè)量設(shè)備精度要求較高,相應(yīng)的增加了測(cè)量成本,同時(shí),在被測(cè)者半閉眼或者完全閉眼情況下,無(wú)法完成人眼的定位;二是基于模板匹配進(jìn)行人眼定位,該方法利用選定的模板圖像與待測(cè)圖像各區(qū)域進(jìn)行比較,選出相似度最高的區(qū)域作為匹配結(jié)果[3]。其優(yōu)點(diǎn)是原理簡(jiǎn)單,操作便捷,缺點(diǎn)是由于每次匹配需要對(duì)圖像進(jìn)行全局掃描,計(jì)算量較大,難以滿足實(shí)時(shí)檢測(cè)需要,同時(shí)算法對(duì)頭部運(yùn)動(dòng)以及光照變化等因素的魯棒性較差;三是基于圖像的色彩、頻域、紋理等特征,結(jié)合機(jī)器學(xué)習(xí)算法,通過樣本訓(xùn)練得出的人眼定位決策模型完成定位。然而,該方法受限于樣本數(shù)量和樣本多樣性的影響,且在圖像中存在眼鏡鏡片反光、光照較暗等影響因素下,極易發(fā)生誤定位。
針對(duì)目前人眼定位算法存在的缺陷,本文提出了一種新的人眼定位方法。該方法首先利用AdaBoost算法得到圖像中人眼區(qū)域的大致定位,對(duì)已得到的眼睛區(qū)域圖像進(jìn)行水平灰度投影,根據(jù)不同區(qū)域的灰度特征排除干擾區(qū)域,得到人眼條狀區(qū)域;利用大津法[4]選取自適應(yīng)閾值對(duì)人眼條狀區(qū)域進(jìn)行二值化,最終利用二值化圖像的投影區(qū)域?qū)捀弑茸鳛榕卸?biāo)準(zhǔn),實(shí)現(xiàn)人眼開閉狀態(tài)的檢測(cè)。實(shí)驗(yàn)結(jié)果表明該方法能夠避免眼鏡框、眉毛等區(qū)域?qū)θ搜鄱ㄎ辉斐傻母蓴_,有效提高了人眼定位與開閉狀態(tài)檢測(cè)的準(zhǔn)確率。
2 基于灰度特征的人眼定位算法
2.1 AdaBoost算法原理
AdaBoost算法是由Freund和Schapire提出的一種迭代機(jī)器學(xué)習(xí)方法。算法的核心思想是從一系列弱學(xué)習(xí)算法出發(fā),通過迭代,得到一系列弱分類器,將這些弱分類器進(jìn)行加權(quán)組合,得到一個(gè)強(qiáng)分類器,從而實(shí)現(xiàn)將弱學(xué)習(xí)算法提升(Boost)為強(qiáng)學(xué)習(xí)算法的目的[5]。
算法的具體實(shí)現(xiàn)原理[6]是:對(duì)于一個(gè)給定的訓(xùn)練樣本數(shù)據(jù)集,
對(duì)于后續(xù)迭代,基本分類器在樣本訓(xùn)練集上的分類誤差率為
其中,表達(dá)式的值當(dāng)時(shí)為1,當(dāng)時(shí)為0,從而得到每次迭代后更新數(shù)據(jù)訓(xùn)練集的權(quán)值分布為
由分類器的線性組合得到最終分類器:
利用AdaBoost算法得到的人眼區(qū)域粗定位圖像如圖1所示,可見圖像中含有許多干擾因素,需要進(jìn)行后續(xù)處理加以排除。
2.2 基于圖像灰度特征的檢測(cè)原理
大量實(shí)際檢測(cè)數(shù)據(jù)表明,基于AdaBoost算法得出的人眼粗定位圖像在圖像x軸方向定位較準(zhǔn)確,而在y軸方向容易受眉毛、頭發(fā)、眼鏡框和眼鏡表面反光的影響,導(dǎo)致定位出現(xiàn)偏差。因此,在AdaBoost算法定位基礎(chǔ)上,對(duì)人眼區(qū)域沿y軸方向周邊區(qū)域?qū)D像的灰度特征進(jìn)行了分析,利用各部位灰度特征的不同對(duì)圖像加以區(qū)分,從而實(shí)現(xiàn)人眼區(qū)域的再定位。
考察人眼部位圖像的灰度值特征,發(fā)現(xiàn)人眼部位圖像灰度值明顯低于其周邊圖像灰度值。對(duì)圖1中的圖像進(jìn)行水平灰度積分投影,并計(jì)算積分圖曲線中的極小值位置,則人眼部位在圖像中的y軸坐標(biāo)必然對(duì)應(yīng)于其中某個(gè)極值點(diǎn)。然而,由于圖像中眉毛、眼鏡框等部位也在水平積分圖中體現(xiàn)為極小值點(diǎn),同時(shí),受到圖像本身存在的光照不均、鏡片反光、圖像噪聲等諸多因素影響,積分圖的極值點(diǎn)序列中必然存在大量冗余極值點(diǎn)。如圖2所示,本文采用如下算法,定位人眼部位對(duì)應(yīng)的極值點(diǎn)。
首先,對(duì)于對(duì)應(yīng)行灰度值過低或過高的極值點(diǎn)加以排除。根據(jù)經(jīng)驗(yàn)可知,灰度值過低區(qū)域極值點(diǎn)通常位于頭發(fā)區(qū)域,而灰度值過高區(qū)域極值點(diǎn)往往位于人眼下方皮膚部位,本文根據(jù)實(shí)際檢測(cè)總結(jié),排除掉灰度值高于圖像行灰度值積分平均值1.1倍的極值點(diǎn)和低于0.35倍的極值點(diǎn)。
對(duì)于因圖像噪聲或光照不均產(chǎn)生的冗余極值點(diǎn),在圖像中通常呈密集分布的狀態(tài),采用從上至下對(duì)極值點(diǎn)搜索合并來(lái)排除這類極值點(diǎn)。實(shí)現(xiàn)方法為:從圖像最上方的極值點(diǎn)開始,向下搜索k行范圍內(nèi)距離最近的極值點(diǎn)(這里k值根據(jù)經(jīng)驗(yàn)取10),比較兩個(gè)極值點(diǎn)對(duì)應(yīng)行的水平灰度積分值大小,取較小值所在行作為新的比較基準(zhǔn)值,并繼續(xù)向下進(jìn)行迭代搜索。由于實(shí)際情況中,人眼、眉毛、眼鏡框等關(guān)鍵部位的灰度值積分均小于其他部位灰度值積分,所以該搜索方法能夠在不丟失關(guān)鍵極值點(diǎn)數(shù)據(jù)信息的前提下,實(shí)現(xiàn)冗余極值點(diǎn)的合并。
對(duì)于一些孤立的冗余極值點(diǎn),按照上面的搜索方法難以進(jìn)行排除,這類冗余極值點(diǎn)通常由于圖像噪聲干擾產(chǎn)生,在圖像的積分圖中呈現(xiàn)尖刺狀,灰度值變化趨勢(shì)不連續(xù),其上下兩行灰度積分圖的二階差分值不相等,利用該特點(diǎn),能夠排除這類極值點(diǎn)。
如圖3所示,為去除冗余極值點(diǎn)后的剩余極值點(diǎn)位置,集中在眉毛和眼鏡框位置。其中,眉毛區(qū)域的灰度值積分通常低于眼睛區(qū)域的灰度值積分;而眼鏡框所在位置的灰度值積分根據(jù)眼鏡框顏色不同,可能低于也可能高于人眼區(qū)域;而其余極值點(diǎn)位置的灰度值均高于人眼區(qū)域。根據(jù)這一灰度值特征,按照如下方法得到人眼區(qū)域?qū)?yīng)極值點(diǎn):
(1) 若僅存在一個(gè)極值點(diǎn),則認(rèn)為該點(diǎn)為人眼極值點(diǎn);
(2) 若存在兩個(gè)極值點(diǎn),則取下方極值點(diǎn)為人眼極值點(diǎn);
(3) 若存在多個(gè)極值點(diǎn),則先剔除最上方極值點(diǎn)后,計(jì)算每個(gè)極值點(diǎn)對(duì)應(yīng)行臨近上方和下方共4行灰度值積分的和,取該值最低的位置作為人眼區(qū)域位置。
如圖4所示,為人眼部位極值點(diǎn)對(duì)應(yīng)行擴(kuò)展后的條形區(qū)域,對(duì)該圖進(jìn)行大津法二值化,并計(jì)算二值圖像的水平投影高度h和豎直投影寬度l的比值作為人眼開合度的判斷標(biāo)準(zhǔn),人眼開合度可以表示為:
其中, 為人眼條形圖像的水平豎直投影的寬高比, 分別為人眼完全睜開和閉合時(shí)的寬高比。這里判定閾值取經(jīng)驗(yàn)值0.4,大于該閾值時(shí)認(rèn)為人眼處于睜開狀態(tài),小于該值時(shí)認(rèn)為處于閉眼狀態(tài),從而實(shí)現(xiàn)了人眼的定位與開閉狀態(tài)判斷。
3 實(shí)驗(yàn)
為了驗(yàn)證本文算法對(duì)于人眼定位及開閉狀態(tài)識(shí)別算法性能,根據(jù)環(huán)境光照強(qiáng)弱和是否佩戴眼鏡的區(qū)別,分別驗(yàn)證了白天不戴眼鏡、白天戴眼鏡、傍晚不戴眼鏡、傍晚戴眼鏡4段視頻共1967幀圖像的檢測(cè)效果,視頻采用紅外攝像頭進(jìn)行拍攝,幀速率為30FPS,分辨率為640*480,表1所示為不同狀態(tài)下人眼定位結(jié)果,并與只采用AdaBoost算法直接定位的結(jié)果進(jìn)行了對(duì)比。
對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分析,發(fā)現(xiàn)在白天無(wú)眼鏡狀態(tài),由于光照條件較好,圖像細(xì)節(jié)明顯,兩種方法均有較高的定位準(zhǔn)確率;白天有眼鏡狀態(tài),受到鏡面反光影響,AdaBoost方法定位準(zhǔn)確率受到較大影響,而本文方法影響較??;傍晚無(wú)眼鏡條件下,由于光照不足,圖像細(xì)節(jié)變?nèi)?,此時(shí)眉毛成為主要干擾因素;傍晚有眼鏡條件下,兩種方法檢測(cè)準(zhǔn)確率都有不同程度的下降。
表2所示為人眼開閉狀態(tài)檢測(cè)結(jié)果。實(shí)驗(yàn)結(jié)果表明,本文采用的人眼定位方法和開閉狀態(tài)檢測(cè)算法能夠滿足不同場(chǎng)景下實(shí)際應(yīng)用的需要。
4 結(jié)論
提出了一種基于圖像灰度特征的人眼定位與開閉狀態(tài)識(shí)別方法。利用AdaBoost算法訓(xùn)練分類器,對(duì)待測(cè)視頻中的人眼區(qū)域進(jìn)行粗定位,由于人眼周圍區(qū)域各部位在圖像中具有不同的灰度值大小與變化狀態(tài),利用該特征排除了冗余極值點(diǎn),得到了人眼區(qū)域的精確定位。最后對(duì)人眼條形圖像求取水平投影和豎直投影,通過計(jì)算寬高比確定人眼的開閉狀態(tài)。實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)的直接使用AdaBoost算法檢測(cè)人眼相比,本文方法對(duì)于光照不均及眼鏡框、眉毛等干擾具有較強(qiáng)的魯棒性,在圖像中存在這類干擾時(shí),本文算法的檢測(cè)精度有較大提高。在不同視頻檢測(cè)中,本文算法的人眼定位精度達(dá)到了84%,人眼開閉狀態(tài)檢測(cè)準(zhǔn)確度達(dá)到了88%,能夠滿足疲勞檢測(cè)的精度要求。
參考文獻(xiàn):
[1] Yang M H, Kriegman D J, Ahuja N. Detecting Faces in Images: A Survey[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2002, 24(1):34-58.
[2] Wu Y L, Yeh C T, Hung W C, et al. Gaze direction estimation using support vector machine with active appearance model[J]. Multimedia Tools & Applications, 2014, 70(3):2037-2062.
[3] Mbouna R O, Kong S G, Chun M G. Visual Analysis of Eye State and Head Pose for Driver Alertness Monitoring[J]. IEEE Transactions on Intelligent Transportation Systems, 2013, 14(3):1462-1469.
[4] Otsu N. A Threshold Selection Method from Gray-Level Histograms[J]. IEEE Transactions on Systems Man & Cybernetics, 2007, 9(1):62-66.
[5] G. R?tsch, T. Onoda, K.R. Müller. Soft Margins for AdaBoost[J]. Machine Learning, 2001, 42(3):287-320.
[6] Viola P, Jones M. Fast and Robust Classification using Asymmetric AdaBoost and a Detector Cascade[J]. Advances in Neural Information Processing Systems, 2001, 14:1311-1318.