蔣建國, 王 雷, 齊美彬, 詹 曙
(1.合肥工業(yè)大學(xué) 計算機與信息學(xué)院,安徽 合肥 230009;2.安全關(guān)鍵工業(yè)測控技術(shù)教育部工程研究中心,安徽 合肥 230009)
基于眼睛狀態(tài)檢測的駕駛員疲勞駕駛分析
蔣建國1,2, 王 雷1, 齊美彬1, 詹 曙1
(1.合肥工業(yè)大學(xué) 計算機與信息學(xué)院,安徽 合肥 230009;2.安全關(guān)鍵工業(yè)測控技術(shù)教育部工程研究中心,安徽 合肥 230009)
利用眼睛的狀態(tài)對駕駛員疲勞進行分析主要有人眼檢測和疲勞判斷兩大問題。駕駛過程中受到光照、角度及眼睛閉合等因素的影響,傳統(tǒng)的人眼檢測技術(shù)誤碼率較高,而混合復(fù)雜的檢測技術(shù)實時性較差。針對該問題,文章提出一種適用于駕駛員駕駛過程中的人眼快速定位算法。該方法由粗到細,綜合運用基于OpenCV的人臉識別、二值化、改進型灰度積分投影、Susan算子角點提取等技術(shù),并結(jié)合PERCLOS(percentage of eyelid closure)方法進行疲勞分析。實驗結(jié)果表明,該方法對各種駕駛環(huán)境下駕駛員眼睛的定位,都能快速地獲得較高的精度,疲勞檢測正確率較高。
人眼定位;積分投影;Susan算子;疲勞檢測;PERCLOS方法
近幾年,隨著疲勞駕駛導(dǎo)致的交通事故數(shù)量日益增加,國內(nèi)外積極開展疲勞駕駛檢測[1]的研究,主要研究結(jié)果有以下幾類:① 檢測駕駛員生理信號(心跳、腦電圖等),該方法不僅不易實施,且獲得的數(shù)據(jù)可靠性較低;② 檢測車輛參數(shù)(方向盤動作、白線位置等),該方法根據(jù)公路和汽車質(zhì)量的不同測試得到的數(shù)據(jù)準(zhǔn)確性變化比較大;③ 檢測駕駛員個體特征,大部分研究集中在檢測駕駛員個體特征上。眼睛是疲勞最直接和最重要的表現(xiàn)形式,所以基于人眼檢測的疲勞駕駛分析成為研究熱點。
在基于人眼檢測的疲勞駕駛檢測系統(tǒng)中,研究的主要內(nèi)容包括駕駛員眼睛的準(zhǔn)確快速定位與跟蹤和判別疲勞狀態(tài)的標(biāo)準(zhǔn)。顯然,眼睛檢測的準(zhǔn)確性和實時性直接影響了疲勞狀態(tài)的分析結(jié)果,目前人眼檢測主要的方法[2-3]有基于模板匹配方法、基于灰度投影方法、基于統(tǒng)計方法和基于規(guī)則方法。有些則是結(jié)合了多種方法的混合技術(shù)。針對眼部狀態(tài)疲勞判斷,目前主要方法有眨眼頻率法、眼睛閉合時間及瞳孔變化等方法。
駕駛員在駕駛過程中會有光照、人臉角度及眼睛閉合等因素影響,單純使用某種方法或傳統(tǒng)的混合技術(shù)無法保證檢測的準(zhǔn)確性,而綜合運用多種方法又會導(dǎo)致響應(yīng)時間過長,無法實時檢測到駕駛員的眼睛狀態(tài),導(dǎo)致疲勞判斷不準(zhǔn)確。
本文在總結(jié)前人研究的基礎(chǔ)上,提出一種適用于駕駛員眼睛的快速定位方法。該方法由粗到細,在抓取視頻幀后直接調(diào)用OpenCV進行人臉檢測初步確定人臉區(qū)域,然后取人臉圖像的上半部分進行灰度積分投影來確定人臉中人眼的大概位置,在獲得兩眼眼球大概位置的基礎(chǔ)上畫出眼部的大概區(qū)域,再對眼部區(qū)域使用Susan算子獲得兩眼的內(nèi)外眼角點,最終確定眼睛的精確位置,最后使用PERCLOS判斷方法進行疲勞分析,具體流程如圖1所示。實驗結(jié)果證明,本文提出的方法實時性好、準(zhǔn)確性高。
圖1 系統(tǒng)流程
基于OpenCV的人臉檢測[4]分為訓(xùn)練分類器和利用訓(xùn)練好的分類器進行人臉檢測。
本文直接調(diào)用OpenCV庫中已經(jīng)訓(xùn)練好的cascade(Haar分類器)檢測人臉,檢測的基本過程是先將圖像灰度化,根據(jù)傳入?yún)?shù)判斷是否進行canny邊緣處理(默認不使用),再進行匹配。匹配后收集找出的匹配塊,過濾噪聲,計算相鄰個數(shù),如果超過了規(guī)定值就輸出結(jié)果,否則刪去。將匹配分類器放大,同時原圖縮小相同倍數(shù)進行匹配,直到匹配分類器的大小大于原圖,則返回匹配結(jié)果。
人臉的初步檢測能夠得到人臉區(qū)域,在給定的范圍內(nèi)搜索嘴、鼻子、眼睛等關(guān)鍵部位的位置,這樣既降低了關(guān)鍵部位定位的錯誤率,同時又減少了搜索的時間。
眼睛在臉部區(qū)域呈現(xiàn)的特點有:① 位于人臉區(qū)域的上半部分;② 在眉毛與鼻子的之間,離眉毛的距離小于與鼻孔的距離;③ 兩眼對稱于人臉的對稱軸。根據(jù)以上特點,對眼睛進行定位,在檢測到人臉的基礎(chǔ)上縮小定位范圍,直接取臉部區(qū)域圖的上半部分進行研究。
要將眼部特征點從人臉圖像分割出來,首先要對圖像二值化處理。圖像二值化最關(guān)鍵的是選取閾值,國內(nèi)外學(xué)者對圖像二值化[5]進行了廣泛的研究,并提出了雙峰直方圖閾值分割法、最大熵閾值分割法、模糊聚類分析法等閾值選取方法。本文采用最大類間方差閾值分割法,又叫大津法。其基本思路是把圖像直方圖用某一灰度值分割成背景和目標(biāo)2類,分別計算這2類的像素點和灰度平均值,然后計算它們的類間方差。背景和目標(biāo)之間的類間方差越大,說明構(gòu)成圖像的兩部分的差別越大,該灰度值就作為圖像二值化處理的閾值。
設(shè)圖像I(x,y),圖像的大小為M×N,前景(即目標(biāo))和背景的分割閾值記作T,圖像中像素的灰度值小于閾值T的像素個數(shù)記作N1;像素灰度大于閾值T的像素個數(shù)記作N2。屬于前景的像素點數(shù)占整幅圖像的比例記為ω1,其平均灰度為μ1;背景像素點數(shù)占整幅圖像的比例為ω2,其平均灰度為μ2。圖像的總平均灰度記為μ,類間方差記為g。則有:
采用遍歷的方法得到使類間方差最大的閾值T。
二值化后人臉的特征點如頭發(fā)、眉毛、眼睛、鼻子、嘴巴等被明顯地分割出來,如圖2所示。
圖2 圖像二值化
積分投影是自動定位特征時常用的一種技術(shù)[6]。設(shè)G(x,y)表示圖像在(x,y)處的灰度值,在圖像[y1,y2]區(qū)域的水平積分投影表示為:
對人臉上半部分的圖像水平和垂直積分投影如圖3所示。
圖3 水平和垂直積分投影分布示意圖
由圖3可以看出,由于在水平方向得到的垂直灰度積分投影幾乎沒有其他區(qū)域的影響,其分布圖基本呈現(xiàn)出一致的規(guī)律,基于對人臉的先驗知識,波谷自下而上分別對應(yīng)眼睛、眉毛和頭發(fā)的區(qū)域。將積分投影圖進行歸一化后得到積分投影曲線設(shè)定閾值,找出波谷點,顯然,最下面的波谷對應(yīng)著眼睛的大致水平位置(即縱坐標(biāo)y)。
要確定人眼的垂直位置(橫坐標(biāo)),如果直接對上述矩形框進行垂直灰度投影,則不能取得很好的效果,這是由于當(dāng)頭發(fā)部分的灰度比重占據(jù)較大部分時,積分灰度投影曲線不規(guī)則,沒有明顯的波谷出現(xiàn),無法從曲線中提取出有效信息,從而導(dǎo)致無法正確判斷人眼的位置。當(dāng)人眼閉合時,如果眉毛區(qū)域被頭發(fā)遮蓋或占據(jù)較小比重時,積分投影曲線則完全表示頭發(fā)區(qū)域的灰度投影,與眼睛位置無關(guān)[7]。
本文提出一種改進型方法,設(shè)由圖3得到的眼睛垂直坐標(biāo)為y,在人臉圖像上取一個以y為中心,高度為h的條形區(qū)域,h的選取以所選取部分不包含眉毛、頭發(fā)為宜,根據(jù)水平灰度積分投影曲線分析可知,2個波谷所對應(yīng)的區(qū)域即為眼睛和眉毛間的區(qū)域,則h取2個波谷之間的距離。本文對條形區(qū)域作垂直積分投影,投影圖像如圖4所示。
圖4 改進型水平積分投影分布示意圖
由圖4可以看出,人臉中心對稱軸兩側(cè)出現(xiàn)2個最小值點,分別對應(yīng)于左、右眼的垂直位置。因此從垂直積分投影曲線中心向左、右搜索最小值,即可得到眼睛中心的橫坐標(biāo),從而確定眼睛的大致位置。根據(jù)人臉圖像的先驗知識,每只眼睛的寬度δ最多占人臉寬度的1/3,由此可知,以積分投影求得的坐標(biāo)分別為左、右眼睛的中心,矩形框的高度為h,寬度為δ的區(qū)域即為所求人眼的區(qū)域。
在獲取駕駛員左、右眼的大致區(qū)域后,為了降低區(qū)域內(nèi)非眼睛部分對后續(xù)疲勞判別的影響,需對眼睛進行進一步精確定位[8-9]。對此,本文在粗定的區(qū)域內(nèi)使用Susan算子獲得兩眼內(nèi)外眼角的點位置,最終確定兩眼的準(zhǔn)確區(qū)域。
Susan算子原理如圖5所示,用一個半徑為r的圓形模板在圖像上移動,若模板內(nèi)的像素灰度與模板中心的像素(被稱為核)灰度值小于一定的閾值t,則認為該點與核具有相同的灰度,滿足該條件的像素組成的區(qū)域n稱為吸收同值核區(qū)(univalue segment assimilating nucleus,USAN),即
由此可知,USAN面積n越小,則邊緣強度R越大,g為閾值,直觀理解為USAN的最大值,若n超過該值,則認為不存在邊緣。
圖5 Susan算子原理圖
由Susan算子原理可知,當(dāng)模板的中心位于角點處時,USAN的值最?。▓D5a所示),由此利用該原理可獲得眼部區(qū)域的眼角位置。具體步驟如下:
(1)利用圓形模板遍歷圖像,計算每點處的USAN值。
(2)設(shè)置一閾值g,一般取值為nmax/4,進行閾值化,得到角點響應(yīng)。
(3)使用非極大值抑制來尋找角點。
(4)計算USAN區(qū)域的重心,然后計算重心和模板中心的距離,如果距離較小則不是正確的角點。
(5)判斷USAN區(qū)域的重心和模板中心的連線所經(jīng)過的像素是否屬于USAN區(qū)域的像素,如果屬于,則該模板中心的點即為角點。
在角點檢測中,有以下2種類型的閾值:閾值t,用來約束角點的數(shù)量;閾值g,用來約束角點的質(zhì)量。當(dāng)然,一個閾值不能完全做到只影響質(zhì)量或數(shù)量,只是會有一個側(cè)重點。例如,g值減小,則USAN會更加側(cè)重于檢測到更加“尖銳”的角點;而當(dāng)t減小時,會檢測到更多的角點。所以,閾值t可以在不影響角點質(zhì)量的情況下,控制檢測到的角點的數(shù)量。在大多數(shù)情況下,設(shè)t為25比較合適,如果圖像的對比度比較低,可以修改t值以適應(yīng)變化。
用以上算法獲得的兩眼眼部區(qū)域的角點如圖6、圖7所示,通過尋找角點之間的最大距離來最終確定眼部區(qū)域的左右精確位置,兩眼內(nèi)外眼角點的距離即為眼部區(qū)域的寬度β,高度為h。
圖6 t=25 s時眼部區(qū)域Susan算子角點提取結(jié)果
圖7 g=n max/2時眼部區(qū)域Susan算子角點提取結(jié)果
PERCLOS(percentage of eyelid closure)為眼睛閉合程度超過某一閾值的時間占總時間的百分比。
PERCLOS原理示意圖如圖8所示。
圖8 PERCLOS原理示意圖
圖8中,t1為眼睛完全睜開到閉合20%的時間;t2為眼睛完全睜開到閉合80%的時間;t3為眼睛完全睜開到下一次睜開20%的時間;t4為眼睛完全睜開到下一次睜開80%的時間。通過測量t1~t4,可計算出PERCLOS的值f80:
圖8是以眼瞼遮住瞳孔的面積超過80%的時間比率為判別標(biāo)準(zhǔn)的,即P80標(biāo)準(zhǔn),大量實驗表明P80與駕駛疲勞的相關(guān)性最好,故本文選用P80作為判別標(biāo)準(zhǔn)。
PERCLOS是對一次眼睛的閉合過程進行判斷,但在視頻序列的檢測中,一般以幀為單位,所以P80的計算公式可以轉(zhuǎn)化為:
判斷眼睛閉合超過某一閾值目前常用的方法主要有利用檢測眼睛矩形框的高度、寬高比2種方式[10-12],但上述2種方式有以下缺點:① 眼睛矩形框的精確度要求較高,從而導(dǎo)致眼睛檢測階段的算法過于復(fù)雜,實時性受到一定影響;② 直接設(shè)定某個閾值來判斷,只能針對某個駕駛員判斷,不具備魯棒性。
本文提出利用眼部區(qū)域的黑色像素個數(shù)的變化關(guān)系來判斷眼睛閉合,進一步計算PERCLOS的值。同時,針對不同的駕駛員和駕駛環(huán)境,本方法在判別前進行了目標(biāo)樣本的訓(xùn)練學(xué)習(xí),具體過程如下:
(1)建立一個樣本空間N,空間含有100幀眼部區(qū)域的圖片,每幀圖片分別有左、右2個眼部區(qū)域。
(7)定義每30幀為一個檢測周期,根據(jù)上述步驟求出每個周期的f,并與f80進行比較,若f>f80,則說明駕駛員處于疲勞狀態(tài),反之則為正常駕駛。
本實驗用3組駕駛員開車的視頻進行實驗,3組視頻分別是在晴天、陰天和夜間駕駛的條件下拍攝的,部分實驗結(jié)果如圖9所示。另外對每組圖像進行檢測統(tǒng)計,結(jié)果見表1所列。
圖9 駕駛員眼睛檢測結(jié)果
結(jié)合實驗數(shù)據(jù)和現(xiàn)場模擬綜合分析,利用OpenCV檢測人臉能夠取得很好的效果,但遭遇強光照射、人臉角度變化過大、夜間紅外圖像噪聲較大等因素時,易造成誤判或無法檢測。在眼睛粗定位階段,造成錯誤判斷的原因主要有:① 人臉旋轉(zhuǎn)角度過大;② 隨著光線強度減弱,圖像二值化效果變差。在眼睛粗定位準(zhǔn)確的情況下,通過Susan算子精確定位眼睛的準(zhǔn)確率高達99%,造成錯誤的原因主要是眼部區(qū)域噪點較多,邊緣不夠清晰。
另外,采用本文的方法整個眼睛檢測的時間最多需要260 ms,對于疲勞檢測系統(tǒng)來說,能夠準(zhǔn)確地抓取到眼睛的各種狀態(tài),避免漏判誤判。
通過與其他方法[11-13]比較,本文提出的方法疲勞檢測正確率提高了4%,系統(tǒng)檢測總時間縮短了70 ms,且本文提出的基于PERCLOS的判斷方法算法簡單、實時性好,有較好的魯棒性。
表1 實驗統(tǒng)計結(jié)果
針對疲勞駕駛檢測系統(tǒng)誤碼率較高,響應(yīng)時間較慢的問題,本文提出一種快速定位駕駛員眼睛的方法,結(jié)合實驗數(shù)據(jù),該方法特別考慮了頭發(fā)、光照等因素給眼睛定位帶來的影響,提出了改進的積分投影方法,并利用Susan算子精確定位眼睛,較大地提高了檢測的準(zhǔn)確率。此外,本方法由粗到細,逐步縮小圖像檢測范圍,極大縮短了后續(xù)檢測的時間,有利于進一步對眼睛的跟蹤檢測。在疲勞檢測階段,提出利用眼部區(qū)域黑色像素的變化關(guān)系來判別疲勞,不僅降低了對眼睛定位的精確程度,減少了眼睛定位的時間,而且判斷準(zhǔn)確率有所提高。從整體來看,該算法是一種駕駛員疲勞檢測的可行方法。不足之處在夜間行駛情況下,人眼檢測誤碼率還較高,同時算法流程還需要進一步優(yōu)化,以便縮短運行時間。后續(xù)研究過程中,將在提高眼晴定位準(zhǔn)確性的基礎(chǔ)上,進一步縮短檢測時間,并結(jié)合相關(guān)硬件仿真、現(xiàn)場測試來提高其實用性能。
[1]李志春,何 仁,林謀有,等.駕駛員疲勞檢測技術(shù)的研究現(xiàn)狀及發(fā)展趨勢[J].農(nóng)機化研究,2006(5):197-199.
[2]徐 來,周德龍.人臉檢測技術(shù)的方法研究[J].計算機系統(tǒng)應(yīng)用,2010,19(6):226-232.
[3]Chellappa R,Wilson C L,Sirohey S.Human and machine recognition of faces:a survey[J].Proceedings of the IEEE,1995,83(5):705-740.
[4]陶穎軍.基于OpenCV的人臉識別應(yīng)用[J].計算機系統(tǒng)應(yīng)用,2012,21(3):220-223.
[5]朱軍民,黃 磊,劉昌平.圖像二值化方法比較[C]//第八屆全國漢字識別學(xué)術(shù)會議論文集,2002:110-115.
[6]馮建強,劉文波,于盛林.基于灰度積分投影的人眼定位[J].計算機仿真,2005,22(4):75-78.
[7]章 玲,蔣建國,齊美彬.一種微分與積分投影相結(jié)合的眼睛定位方法[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2006,29(2):182-185.
[8]Lam K M,Yan H.Locating and extracting the eye in human face images[J].Pattern Recognition,1996,29 (5):771-779.
[9]顧 華,蘇光大,杜 成.人臉的眼角自動定位[J].紅外與激光工程,2004,33(4):375-379.
[10]蔣建國,劉 揚,詹 曙,等.灰度視頻序列中駕駛員疲勞實時檢測方法[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2008,31(9):1424-1427,1442.
[11]張淑鳳.基于多個疲勞參數(shù)的駕駛員疲勞檢測[D].合肥:合肥工業(yè)大學(xué),2009.
[12]劉 揚.基于DM642的疲勞駕駛實時監(jiān)測系統(tǒng)研究與實現(xiàn)[D].合肥:合肥工業(yè)大學(xué),2007.
[13]Cho G.Real time driver safety system[D].Bowling Green:Western Kentucky University,2009,1442.
Detection of fatigue driving based on eye state
JIANG Jian-guo1,2, WANG Lei1, QI Mei-bin1, ZHAN Shu1
(1.School of Computer and Information,Hefei University of Technology,Hefei 230009,China;2.Engineering Research Center of Safety Critical Industrial Measurement and Control Technology of Ministry of Education,Hefei 230009,China)
There are two main points in analyzing the state of the driver fatigue based on driver’s eye state,i.e.eye detection and fatigue judgment.Because of the interfering factors like light,angle,percentage of eyelid closure(PERCLOS)during the driving process,the bit error rate of traditional eye detection scheme is relatively high while the complicate integrated method presents low instantaneity.With this regard,a new algorithm of fast eye location in the course of driving is proposed,which integrates face recognition technology of OpenCV,binarization,improved gray-level integration projection,Susan operator corner extraction and other techniques.And the fatigue analysis is done based on the PERCLOS method.The experimental results show higher precision of the proposed method in locating drivers’eyes under any given driving condition and higher correctness rate of driver fatigue detection.
eye location;integration projection;Susan operator;fatigue detection;percentage of eyelid closure Percentage of eyelid closure(PERCLOS)method
TP391.41
A
1003-5060(2015)02-0175-06
10.3969/j.issn.1003-5060.2015.02.008
2014-01-20
安徽省科技攻關(guān)計劃“科技強警”專項資助項目(1306042023)
蔣建國(1955-),男,安徽黃山人,合肥工業(yè)大學(xué)教授,博士生導(dǎo)師;
齊美彬(1969-),男,安徽東至人,博士,合肥工業(yè)大學(xué)教授,碩士生導(dǎo)師.
(責(zé)任編輯 閆杏麗)