向 飛,廖亞風,何小海
(四川大學 電子信息學院圖像信息研究所,四川 成都 610064)
隨著近年來我國汽車數(shù)量的快速增長,交通事故的發(fā)生變得愈加頻繁。而疲勞駕駛往往是造成這些事故的主要因素,因此對防范疲勞駕駛的研究引起了眾多學者和機構(gòu)的廣泛重視。研究車載的疲勞駕駛檢測系統(tǒng),實現(xiàn)對駕駛員疲勞狀態(tài)的監(jiān)控,在保障駕駛員安全駕駛方面有重要的應(yīng)用價值和實際意義。
在各種疲勞檢測系統(tǒng)中,基于人眼參數(shù)的疲勞檢測由于其準確率高、受主觀因素影響小以及非接觸的優(yōu)點獲得了廣泛的應(yīng)用。其檢測原理為駕駛員眼睛閉合頻率與疲勞程度的相關(guān)性,如何準確地定位人眼是該類系統(tǒng)研究的主要問題。目前常用的人眼定位方法有模板匹配法、霍夫變換法以及灰度投影法等[1]。
模板匹配法[2]事先選取人眼的模板,通過在圖像中進行匹配來定位人眼。但其準確度十分依賴選取的模板,且定位過程中需要匹配左右兩只人眼,計算量較大、實時性差?;舴蜃儞Q法[3]提取待檢測圖像的邊緣,用霍夫曼的圓檢測法定位人眼。該方法要求邊緣提取具有較好的效果,并且圖像中的眼球具有明顯的圓形特征。這意味著對原圖進行大量的預(yù)處理,并且當人眼閉合或半閉合時檢測率降低。灰度投影法[4]對人臉圖像的灰度值進行投影統(tǒng)計,再根據(jù)極值點的位置定位人眼。該方法計算量小、運算速度快,但是容易受到眉毛部分的影響。
本文設(shè)計了基于TMS320DM642圖像處理硬件平臺的車載疲勞駕駛檢測系統(tǒng)。為了盡量提高系統(tǒng)的實時性、保證駕駛員的駕駛安全,系統(tǒng)采用實時性最好的灰度投影法進行人眼的定位,并在此基礎(chǔ)上針對灰度投影法的不足進行了改進。整個疲勞駕駛檢測系統(tǒng)實現(xiàn)了對駕駛員疲勞程度的檢測,并且有較高的準確率和實時性,具有很好的實用性。
本系統(tǒng)硬件平臺采用DSP芯片TMS320DM642作為核心處理器,外設(shè)模塊包括視頻解碼與編碼模塊、SDRAM內(nèi)存模塊、時鐘模塊、電源與復(fù)位模塊等。視頻解碼模塊采用1片SAA7113,將攝像機采集的模擬視頻信號解碼為 BT656(YCbCr 4:2:2)格式的復(fù)合視頻信號, 分辨率為720×576。 視頻編碼模塊采用1片SAA7105,將視頻口2輸出的疲勞檢測后的圖像信號編碼為模擬視頻信號。SDRAM模塊采用2片MT48C4M32芯片,總空間大小為32 MB。系統(tǒng)通過模擬攝像頭采集視頻,經(jīng)由 SAA7113解碼送入 DM642的視頻口 0,然后將視頻數(shù)據(jù)經(jīng)由 EMIF(External Memory Interface)搬移到SDRAM中進行處理[6],最后將處理好的視頻數(shù)據(jù)送入視頻口2,由SAA7105芯片編碼為模擬信號后輸出到監(jiān)視器顯示。硬件平臺結(jié)構(gòu)如圖1所示。
圖1 硬件平臺結(jié)構(gòu)框圖
如何提高人眼定位的準確率是疲勞檢測的主要研究內(nèi)容,常用的人眼定位方法有:模板匹配法、霍夫變換法以及灰度投影法等。其中模板匹配法和霍夫變換法定位精度高,但是運算量較大,難以實時檢測駕駛員的疲勞程度?;叶韧队胺ㄋ惴ê唵?、運算速度快,較為適合本文的實時疲勞檢測。根據(jù)上述分析,本文采用實時性最好的灰度投影法來定位人眼,并針對常用的灰度投影法進行了改進。針對積分投影算法精度不高和易受眉毛部分干擾的問題,采用了基于人眼特征的改進混合投影算法來實現(xiàn)人眼的準確定位。
疲勞檢測主要流程為:膚色分割、人眼定位、疲勞檢測。首先在YCbCr空間進行膚色分割,得到人臉膚色區(qū)域,并根據(jù)人臉“三庭五眼”的特征框定出人眼檢測區(qū)域;之后在灰度圖像的待檢測區(qū)域內(nèi)采用改進混合投影算法進行人眼定位,最后對駕駛員的疲勞狀態(tài)做出判斷。算法流程如圖2所示。
圖2 疲勞檢測算法流程
本文首先根據(jù)人類膚色在YCbCr顏色空間的聚類性,根據(jù)各像素的Cb和Cr值將原始圖像二值化為膚色區(qū)域和非膚色區(qū)域。之后根據(jù)二值圖像和人臉“三庭五眼”的特征,在原始圖像的亮度分量中標記出人臉區(qū)域和去除了眉毛的人眼檢測區(qū)域。后續(xù)定位只在人眼檢測區(qū)域內(nèi)進行,在降低運算量的同時提高了定位的準確率。圖3分別為原始圖像、膚色分割后的二值圖像、框定的人臉區(qū)域、以及人眼檢測區(qū)域。
圖3 確定人眼檢測區(qū)域
2.2.1 基于人眼特征的改進混合投影算法
傳統(tǒng)的灰度投影算法大多采用積分投影實現(xiàn),該方法根據(jù)人眼區(qū)域內(nèi)像素的灰度明顯低于其他區(qū)域的特性,分別在水平和垂直方向上統(tǒng)計各行和各列像素灰度的均值,并找出均值最小的行和列作為人眼中心位置的水平和垂直坐標,實現(xiàn)人眼中心位置的定位。并進一步以該位置為中心,分別向上下和左右方向查找各自均值的極大值,從而完成人眼上下和左右邊界的定位。由于該方法只考慮了灰度的均值變化,因此當某一區(qū)域內(nèi)的灰度均值相同時,無論該區(qū)域內(nèi)各像素點的灰度呈何種分布都無法進行區(qū)分[7]。因此人眼定位精度不高且定位結(jié)果容易受到眉毛部分的干擾,導致定位不準確。
經(jīng)分析可知,灰度圖像中人眼區(qū)域的像素具有其特有的灰度分布特征。在水平投影方向,人眼區(qū)域的灰度值變化很劇烈,灰度的方差值很大,且越靠近人眼中心越大。而眉毛附近像素的灰度值變化卻較平穩(wěn),灰度方差較小,使得人眼和眉毛具有很明顯的差異。同時,在垂直投影方向,人眼區(qū)域的像素也有相同的分布特性。因此本文采用一種混合投影算法定位人眼,即采用均值函數(shù)和方差函數(shù)的加權(quán)值作為人眼的定位函數(shù),實現(xiàn)對灰度總體分布和局部變化的同時反映?;旌贤队昂瘮?shù)如下:
σ(x)、H(x)和 σ(y)、H(y)分別為垂直和水平方向上歸一化后的灰度方差和均值[7]。
進一步分析可知,該混合投影函數(shù)無論是在水平還是垂直方向上,積分項和方差項所占的權(quán)重均相同,不具有真實人眼的灰度分布特征。人眼區(qū)域的灰度在水平方向上變化明顯,具有很強的方差特征;而在垂直方向上變化相對平穩(wěn),均值特征更為明顯。因此本文分別對水平投影和垂直投影中的積分項和方差項賦予不同的權(quán)重,水平混合投影增大方差項σ(y)的權(quán)重,而垂直混合投影則增大積分項H(y)的權(quán)重。經(jīng)過多次反復(fù)試驗,發(fā)現(xiàn)當采用式(3)和式(4)的權(quán)值時,人眼定位的效果最好。故最后確定的改進投影函數(shù)如式(3)、(4)所示。
2.2.2 人眼定位步驟
人眼檢測區(qū)域主要包含人眼和眉毛部分,其中眉毛會對人眼的定位產(chǎn)生影響。由于人眼的水平投影具有很大方差,和眉毛有明顯區(qū)別。故先水平投影確定人眼上下邊界后,再在該邊界內(nèi)垂直投影確定人眼左右邊界,以減小眉毛對人眼左右邊界定位的影響,實現(xiàn)人眼的準確定位。由于在行車過程中駕駛員會不停轉(zhuǎn)動頭部,會出現(xiàn)只能檢測到一只人眼的情況。因此本文只檢測更接近畫面中心的一只人眼,根據(jù)雙眼狀態(tài)的一致性,另外一只人眼也應(yīng)該具有相同的睜閉狀態(tài),這樣既提高了檢測準確率,也降低了運算量。
具體步驟如下:
(1)計算框定的人臉區(qū)域左邊界到人眼檢測區(qū)域左邊界距離Ll,以及人臉區(qū)域右邊界到人眼檢測區(qū)域右邊的距離Lr。若Ll≤Lr,則說明駕駛員頭部向左轉(zhuǎn)動,此時右眼更接近畫面中心,后續(xù)步驟中只定位右眼。反之,則定位左眼。
(2)在人眼檢測區(qū)域內(nèi)進行水平投影,查找投影最大值出現(xiàn)的行,該行即為人眼垂直中心位置。再從該位置分別向上和向下查找投影極小值出現(xiàn)的行,得到人眼的上下邊界 Eyeup、Eyedown。
(3)在人眼上下邊界內(nèi)的人眼檢測區(qū)域中進行垂直投影,得到人眼的水平中心位置和左右邊界Eyel和Eyer,完成人眼的定位。
實驗過程中采用基于人眼特征的改進混合投影算法分別對多個角度的人臉進行了人眼定位,并與積分投影定位和傳統(tǒng)混合投影定位進行了結(jié)果對比,結(jié)果如圖4所示。實驗結(jié)果表明:由于只對灰度總體分布進行統(tǒng)計,使得傳統(tǒng)的積分投影定位容易受到眉毛的干擾,甚至將眉毛誤檢測為人眼;而傳統(tǒng)的混合投影由于沒有考慮人眼區(qū)域特有的灰度分布特征,使得對于人眼邊界的定位精度不高;而本文所采用的投影算法能夠更加準確地對人眼各邊界進行定位。
圖4 三種不同定位方法定位人眼結(jié)果
本文采用PERCLOS算法來判斷駕駛員的疲勞程度[8]。PERCLOS即單位時間內(nèi)人眼閉合時間所占百分比,在本文中的計算公式為:
本文定義人眼區(qū)域的上下邊界之差Eyeup-Eyedown即為人眼高度eyeH,當eyeH小于1/5最大值時認為人眼閉合。設(shè)定為每隔100幀計算一次PERCLOS值,當PERCLOS值大于0.4時判斷駕駛員處于疲勞狀態(tài)。
本文在實驗室環(huán)境下分別對包括作者在內(nèi)的4名測試者進行了疲勞檢測。測試中,每名測試者分別處于清醒狀態(tài)和模擬疲勞狀態(tài),如圖5、圖6所示。測試者在清醒狀態(tài)下保持正常的眨眼頻率,在模擬疲勞狀態(tài)時減慢眨眼頻率。在測試過程中,測試者實際閉眼200次,程序?qū)崟r統(tǒng)計PERCLOS值和人眼閉合次數(shù),計算一次PERCLOS值的間隔設(shè)定為100幀。檢測效果如表1所示。
圖5 清醒狀態(tài)檢測效果
圖6 模擬疲勞狀態(tài)檢測效果
表1 疲勞檢測結(jié)果統(tǒng)計表
實驗表明當測試者處于清醒狀態(tài)時,系統(tǒng)檢測出的PERCLOS值均小于0.4,當測試者處于模擬疲勞狀態(tài)時,PERCLOS值均大于0.4,在兩種狀態(tài)下均未出現(xiàn)錯檢情況。實驗中本系統(tǒng)疲勞檢測幀率為21.8幀/s,而傳統(tǒng)積分投影為22.3幀/s。測試結(jié)果表明本系統(tǒng)能夠準確地判斷駕駛員的疲勞狀態(tài),且具有很好的實時性,能夠滿足車載疲勞駕駛檢測的需求。
針對車載疲勞駕駛檢測的應(yīng)用,本文設(shè)計了基于TMS320DM642的駕駛員疲勞駕駛檢測系統(tǒng)。首先在YC bCr色彩空間進行膚色分割并框定出人眼檢測區(qū)域,再采用基于人眼特征的改進混合投影算法定位人眼,最后根據(jù)定位出的人眼的高度檢測駕駛員的疲勞狀態(tài)。實驗表明該系統(tǒng)檢測準確率高、實時性好,具有較高的實用價值。
[1]孫曉玲,侯德文,儲凡靜.人臉識別中的眼睛定位方法[J].計算機技術(shù)與發(fā)展,2008,18(10):46-48.
[2]王江波,李紹文.基于 Adaboost算法和模板匹配的人眼定位[J].計算機測量與控制,2012,20(5):1347-1349.
[3]劉念,蘇杭,郭純宏.基于Hough變換圓檢測的人眼定位方 法 改 進[J].計 算 機 工 程 與 設(shè) 計 ,2011,32(4):1359-1362.
[4]劉紀紅,李中帆.基于視頻的人眼跟蹤方法研究[J].小型微型計算機系統(tǒng),2012,33(9).
[5]JAIN A K, HSU R L, MOHAMED A M.Face Detection in Color Images[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(5):696-705.
[6]王躍宗,劉京會.TMS320DM642 DSP應(yīng)用系統(tǒng)開發(fā)與設(shè)計[M].北京:人民郵電出版社,2009.
[7]耿新,周志華,陳世福.基于混合投影函數(shù)的眼睛定位[J].軟件學報,2003,14(8):1394-1400.
[8]WIERWILLE W.Research on vehicle based driver status/performance monitoring: development, validation, and refinement of algorithms for detection of driver drowsiness[R].Washington, DC: National Highway Traffic Safety Administration,1994.