蔣丹丹,馮曉毅
(西北工業(yè)大學(xué) 電子信息學(xué)院,陜西 西安 710129)
民航運輸中跨時區(qū)飛行、長線飛行以及夜間飛行引起的睡眠缺失和生物鐘錯亂帶來的累積效應(yīng)會導(dǎo)致內(nèi)源性節(jié)律失調(diào),形成飛行中疲勞駕駛[1]。疲勞狀態(tài)的監(jiān)控可以防止航空器陷入不可控狀態(tài),保障生命和財產(chǎn)安全。作為疲勞征兆的一種直接表象,人眼檢測和定位成為非侵入式疲勞檢測的主要判別方式。
常用的人眼定位算法有兩種思路:一是直接人眼定位算法,如基于模板匹配算法的人眼檢測和定位[2],基于二值化連通域的閾值夾逼算法的人眼定位[3]等,此思路在算法實現(xiàn)上簡單,但計算量大,不穩(wěn)定;二是先檢測出人臉,然后在人臉圖像區(qū)域內(nèi)再檢測人眼,其中人臉檢測的算法常用的主要有:基于知識的人臉檢測方法[4]、基于特征的人臉檢測方法[5-6]、基于模板匹配的人臉檢測方法[7]、基于統(tǒng)計理論的人臉檢測方法[8],人眼部分的檢測常用的算法有基于灰度積分投影的算法來檢測人眼[9]、基于統(tǒng)計方法的人眼檢測[10]等,此思路在保證存在人眼區(qū)域的情況,能夠?qū)⒂嬎懔繙p小,并且定位能力增強。
與汽車疲勞駕駛相比,民用航空器本身運行的環(huán)境差異(快速的地域轉(zhuǎn)換、高度變換、云層影響等)很大,尤其是空中巡航階段,單一的外部視角,更容易造成視覺疲勞,感染為生理疲勞和精神疲勞;同時,現(xiàn)代大型客機的座艙管理更加智能化、數(shù)字化,計算機的工作負荷很大。針對這些特點,飛行座艙的疲勞檢測更趨于使用快速、低復(fù)雜度、高精確度算法進行人眼狀態(tài)檢測。因此,飛行疲勞檢測的難點和重點在于怎樣快速、精確的實現(xiàn)人眼定位和狀態(tài)判斷。本文研究是基于人眼定位的第二種思路,即先人臉,再人眼。工作重點將放在尋找一種能快速、精確提高人眼定位的算法——基于Hough與梯度直方圖的人眼定位的算法,提出了Hough檢測的“可能圓”的簡化梯度直方圖,并與SVM結(jié)合的改進方法來排除多余的“虛圓”,提高人眼定位的正確率,有效解決飛行座艙疲勞監(jiān)測的主要問題。
Adaboost算法因其準(zhǔn)確性高、計算量小、速度快等優(yōu)點成為目前最常用的人臉檢測算法。其基本原理是:依據(jù)圖像的積分圖計算出圖像的Haar-Like特征;接著利用Adaboost算法篩出重要的圖像(人臉檢測)分類特征,構(gòu)成一簇弱分類器,通過一定的權(quán)重比例使它們組合,構(gòu)成一個強分類器;重復(fù)步驟,篩選出多個強分類器,級聯(lián)構(gòu)成檢測人臉的終極分類器[11]。
從上述Adaboost訓(xùn)練分類器選定的檢測目標(biāo)區(qū)域,進行人眼定位。人眼的瞳孔輪廓是近似精確的圓形,假若可以在感興趣圖像區(qū)域 (這里定義為在人臉圖像區(qū)域的1/4高度至1/2高度,寬為 1/6至 5/6處,即圖 6的(e)、(f)中小矩形區(qū)域)中找到它的圓心(瞳孔坐標(biāo)),自然就可以精確的定位人眼。
Hough變換是一種基于灰度圖像的以輪廓作為特征的算法,同時融合梯度信息,以投票的方式進行識別物體,并且其隱蔽情況下的圓檢測有抗干擾能力,能夠得到檢測目標(biāo)的位置等完整參數(shù)信息。這是提出用Hough變換檢測圓的一個重要原因。
假設(shè)所檢測圓在一般坐標(biāo)系內(nèi)的圓心坐標(biāo)為 (a,b),半徑為r,則符合該圓上的任意一點(x,y)滿足下列方程:
將X-Y平面上的圓轉(zhuǎn)換到a-b-r參數(shù)空間,則圖像空間中任意過點(x,y)的圓對應(yīng)到參數(shù)空間中都是高度r變化下的一個三維錐面,如下圖:
圖1 X-Y平面轉(zhuǎn)換為A-B-R參數(shù)平面坐標(biāo)系Fig.1 X-Y plane converted into A-B-R parameter plane coordinate system
Hough變換檢測圓可以概括如下:
1)在a,b和r的合理的最大值和最小值之間建立一個離散的參數(shù)空間;
2)建立一個累加器 A(a,b,r),并置其為 0;
3)在X-Y圖像空間,對目標(biāo)檢測的候選區(qū)域內(nèi)每一點做Hough 變換,計算出所有的(a,b,r)的值,并在相應(yīng)的累加器加 1,即:
4)④累加結(jié)束,根據(jù) A(a,b,r)的值,投票可知有多少點是共圓的,即 A(a,b,r)的值就是在(a,b,r)處共圓的點的個數(shù)。 同時(a,b,r)也給出了共圓點所在圓的參數(shù),得出圓的位置[12]。
梯度直方圖(HOG)是用于目標(biāo)檢測的特征描述子,統(tǒng)計局部圖像中的方向梯度出現(xiàn)的次數(shù)。HOG特征的原理[13]是:將整幅圖象分割成若干個cells(比如一個cell為8×8像素),計算每個cell的方向梯度直方圖,并將幾個cells組成一個block區(qū)間(比如一個block為64×64像素),最終形成的特征向量與block有關(guān),在與其大小一樣的窗口中檢測。
文獻[14]提出了一種正面人臉圖像中檢測人眼的方法:對整幅圖像進行Hough圓檢測,得到可能的人眼中心之后;利用這些檢測得到的可能人眼的某一矩形區(qū)域內(nèi)的梯度直方圖(HOG)特征信息和支持向量機,訓(xùn)練得到SVM人眼分類器來判斷準(zhǔn)確的人眼。但是該方法在整幅圖像進行Hough圓檢測,帶來了大的計算量和內(nèi)存占用空間,同時也耗用了較長的人眼檢測時間;另外,Hough圓檢測得到的“可能圓”區(qū)域較小,劃分blocks增加了小區(qū)域梯度直方圖的提取復(fù)雜度,且特征提取不明顯。從計算量、實時性以及復(fù)雜度等方面來講,該算法適用性不強。
梯度的計算對Hough圓的結(jié)果影響很大,容易將某些邊界誤檢為圓,這些圓分布不規(guī)律,不能通過簡單的雙眼距離等來判斷和排除。
本文在HOG算法的基礎(chǔ)上,提出了簡化梯度直方圖的方法:不再劃分blocks,直接對梯度方向角進行統(tǒng)計,得到梯度直方圖信息。Hough檢測之后的可能圓的區(qū)域面積不大,并且在梯度方向上存在著明顯、強烈的變化,即白—黑—白,從梯度方向出發(fā),提取人眼的梯度方向信息,通過SVM尋找最優(yōu)線性分類器,準(zhǔn)確判斷人眼。
簡化的梯度直方圖具體算法步驟如下:
1)計算一個矩形區(qū)域作為提取樣本的區(qū)域。將Hough圓檢測之后的“可能圓”,以其圓心為中心,在其某一鄰域(該鄰域與“可能圓”的半徑有關(guān))范圍為長和寬,做一個規(guī)定的矩形區(qū)域。將所有的Hough檢測的“可能圓”的矩形區(qū)域保存為正負樣本,;
2)進行歸一化操作。即將保存好的樣本歸一化到尺寸大小相同的圖像區(qū)域;
3)利用梯度算子(如圖2)計算該區(qū)域內(nèi)X方向和Y方向上的梯度,求出其梯度角的值。在一幅數(shù)字圖像中,一階導(dǎo)數(shù)可以表示邊緣點,像素點(x,y)在X方向上有Gx:
在Y方向上有Gy:
則梯度方向角α表示為:
4)劃歸bins。梯度的范圍為0度-180度,根據(jù)特征需求,平均劃歸為N個bins,對相應(yīng)bins里的梯度方向角的個數(shù)進行統(tǒng)計作為特征值;
5)訓(xùn)練分類器。用標(biāo)簽將眼睛區(qū)域和非人眼區(qū)域標(biāo)注,如眼睛區(qū)域的標(biāo)簽為1,非眼睛和閉眼區(qū)域的標(biāo)簽為0,利用SVM對提取的眼睛梯度直方圖特征信息以及標(biāo)簽進行訓(xùn)練,得到最優(yōu)的線性分類器;
6)對經(jīng)Hough檢測出的多個“可能圓”的規(guī)定鄰域范圍內(nèi)的圖像的梯度信息進行提取,并送入訓(xùn)練好的支持向量機進行預(yù)測,判別并得出圖像區(qū)域的分類標(biāo)簽,即1或0。
通過SVM結(jié)合了眼睛區(qū)域的簡化HOG信息進行訓(xùn)練和預(yù)測,將Hough檢測出的“可能圓”中的非人眼點給排除出去。
另外,在Hough圓檢測算法運行中,對累加器計數(shù)最大的點可能存在重復(fù)的圓心問題,我們對這些點采取如下操作:
其中(c0,c1)是已知檢測確定的圓心點,(cx,cy)是累加器計數(shù)最大的點,min_dist是設(shè)置的閾值 (兩圓之間最小的距離)。當(dāng)兩點之間的距離小于閾值時,即可認(rèn)為此圓心與已確定的圓心為同一圓心。這樣就避免了同一圓心的鄰近區(qū)域內(nèi)重復(fù)性圓檢測,形成簇圓,無法提取圓形輪廓和精確定位人眼。
綜上所述,改進的Hough與梯度直方圖的人眼定位算法可以用如下圖示流程簡要表示:
圖2 梯度算子示意圖Fig.2 Schematic diagram of gradient operator
本文將提出改進的Hough與梯度直方圖算法分別用實拍的飛行員實際飛行視頻的圖像數(shù)據(jù)庫、實驗室隨機采集視頻的圖像數(shù)據(jù)庫和網(wǎng)絡(luò)下載圖像庫進行了實驗,在粗提取的感興趣區(qū)域內(nèi)的實際檢測定位(灰度圖像)效果如下圖所示:
圖3 改進的Hough與梯度直方圖的人眼定位算法流程圖Fig.3 The flowchart of Improved Hough and gradient histogram for eye location algorithm
上述實驗結(jié)果可以證明:Hough變換的方法檢測圓具有魯棒性,其抗干擾的能力很強,對背景和實驗環(huán)境要求不高。
本文通過基于Opencv和C++結(jié)合的編程在自建的圖像庫和來自MIT的FACEREC數(shù)據(jù)庫中的圖像實現(xiàn)了Hough變換、Hough+HOG、改進算法的人眼實驗。實驗結(jié)果如下:
圖4 不同實驗環(huán)境下改進的新型結(jié)合算法人眼定位結(jié)果Fig.4 The results of improved eye location algorithm under different experimental environment
圖5 三種算法的檢測結(jié)果Fig.5 The detection results of three algorithms
從上圖的3組實驗結(jié)果對比可以看出,檢測出的圓主要分布在邊緣梯度變化大的地方,同時,從(a)、(c)和(e)圖來看,簡化的HOG信息作為人眼的特征在經(jīng)SVM訓(xùn)練的分類器來檢測人眼的方法是可行的。(c)和(d)圖中還存在著誤檢情況,其中鼻孔、嘴唇因為在其計算梯度特征的矩形區(qū)域內(nèi)邊緣像素點灰度變化較大而被誤檢;而(e)和(f)圖則首先經(jīng)過Adaboost人臉檢測,加上一個粗定位的感興趣區(qū)域和改進的Hough+HOG分類器,檢測范圍在減小,同時分類器又能保證正確分類。經(jīng)過實驗結(jié)果的數(shù)據(jù)對比,Hough人眼檢測率保持在97.2%,而Hogh+HOG算法的認(rèn)假率仍然比較高(30%左右),改進的Hough與梯度直方圖的算法則將認(rèn)假率降到了3.2%。
另外,從算法的檢測時間上來看,Hough圓檢測本身因為將二維空間轉(zhuǎn)變到了三維空間,計算量和內(nèi)存占用很長時間,所以Hough圓檢測和Hough+HOG算法在計算量和復(fù)雜度上耗用檢測時間較長,大約平均一幀640×480大小的圖像耗用200 ms左右;而改進的Hough與梯度直方圖算法因為Hough檢測的范圍小,計算量小,檢測時間短,大約平均一幀640×480大小的圖像僅耗用40 ms左右。通用攝像頭的傳輸速度為30幀/秒,用來做疲勞檢測,在實時性方面,本文提出的改進算法在人眼檢測與定位上更有優(yōu)勢。
本文主要針對用于飛行座艙行為的疲勞狀態(tài)檢測的快速、低復(fù)雜度、高精確度的特點,通過Adaboost和Hough算法檢測人眼,提出了眼睛的簡化梯度直方圖(HOG)信息作為提取特征,通過SVM訓(xùn)練的分類器,再進行人眼的判斷和定位。Adaboost算法的快速檢測人臉為整個檢測程序贏得了時間;Hough圓檢測精確的定位人眼位置,它對噪聲和邊緣間斷有魯棒性;簡化的梯度直方圖信息能夠反映眼睛的梯度信息,作為SVM的訓(xùn)練特征,降低了誤檢率,提高了檢測率。針對實時性方面,今后工作將放在對本文提出的算法的優(yōu)化上。
[1]Zongmin WEI,Damin ZHUANG,Xiaoru WANYAN,et al.Prediction and Analysis of the Human Errors in the Aircraft Cockpit[C]//2012 5th International Conference on Biomedical Engineering and Informatics (BMEI 2012).2012:1285-1288.
[2]Ruiming LIU,Qi JIANG,Yanhong LU,et al.Eye Localization in Face Image Based on a Novel Template Matching Method[EB/OL].(2002-05).http://dx.doi.org/10.1117/1.OE.51.2.027203.
[3]Ping WANG,Lin SHEN.A method of detecting driver drowsiness state based on multi-features of face[C]//2012 5th International Congress of Image and Signal Processing(CISP).2012:1171-1175.
[4]Jiang J,Gong J,Zhang G L.Fast hierarchical knowledgebased approach for human face detection in color images[C]//Proceedings of the society of photo-optical instrumentation engineers(SPIE),2001(4550):202-210.
[5]Ando T,Moshnyaga V G.A low complexity algorithm for eye detection and tracking in energy-constrained applications[C]//Communications ,Signal Processing ,and Their Applications (ICCSPA),2013 1st International Conference ,2013:1-4.
[6]AMANDEEP SINGH,JASPREET KAUR.Driver Fatigue Detection Using Machine Vision Approach [C]//2013 3rd IEEE International Adance Computing Conference(IACC).2013:645-650.
[7]TAO WANG,JIA-JUN BU,CHUN CHEN.A color based face detection system using multiple templates[J].Journal of Zhejiang University SCIENCE A,2003,4(2):162-165.
[8]HONG-MO JE,DAIJIN KIM,SUNG YANG BANG.Human Face Detection in Digital Video Using SVM Ensemble[J].Neural Processing Letters,2003,17(3):239-252.
[9]許璐.基于眼睛檢測與視線估計的駕駛員疲勞檢測[D].南京:南京理工大學(xué),2008.
[10]JIA Ming-xing,DU Jun-qiang,CHENG Tao.An improved detection algorithm of face with combining adaboost and SVM [C]//2013 25th Chinese Controland Decision Conference,2013:2459-2463.
[11]Inalou Sania Arijomand,Kasaei Shohreh.Adaboost-based face detection in color images with false alarm[C]//2010 International Conference on Computer Modeling and Simulation.2010:107-111.
[12]陳勝勇,劉盛.基于OPENCV的計算機視覺技術(shù)實現(xiàn)[M].北京:科學(xué)出版社,2008(5):186-189.
[13]Dalal Navneet,Triggs Bill.Histograms of oriented gradients for human detection[C]//Conference on Computer Vision and Pattern Recognition,CVPR,2005:886-893.
[14]Ito Y,Ohyama W,Wakabayashi T,et al.Detection of eyes by circular Hough transform and histogram of gradient[C]//2012 21st International Conference on Pattern Recognition(ICPR).Tsukuba,Japa,2012:1795-1798.