孫立書, 余 偉
(浙江東方職業(yè)技術(shù)學院工程技術(shù)系,浙江溫州 325011)
目前,有關(guān)駕駛員疲勞檢測的方法有基于生理的測量方法、基于車輛行為的方法及基于計算機視覺的檢測方法?;谏淼臏y量方法具有測量精度高的特點,因此具有較強的說服力。但是測量時需要在駕駛環(huán)境放置醫(yī)療設備,會影響駕駛員操作行為,影響駕駛效果,不適合實際應用?;谲囕v行為的方法,如車輛偏離中心線的距離、轉(zhuǎn)向、速度和加速度的變化可以反映出司機是否處于異常狀態(tài)。但是這些測量值中能反映司機處于異常和非異常狀態(tài)的臨界值是多少?測量值在哪個范圍內(nèi)變動表明司機處于正常駕駛狀態(tài)?確定此范圍的依據(jù)又是什么?這些都很難確定,因此它具有較高誤檢率,較低的檢測精度。基于計算機視覺的檢測方法是使用攝像頭實時拍攝駕駛員的頭像,通過圖像處理與識別技術(shù)分析駕駛員的眼部狀態(tài),即眼睛是睜開的還是閉合的,或者通過判斷睜開和閉合的程度來判斷駕駛員疲勞與否。它具有非接觸性、信號采集方便快捷、可靠性高、穩(wěn)定性強等特點,已成為駕駛員疲勞檢測的一種重要方法。據(jù)統(tǒng)計,駕駛員通過視覺獲取外界信息約占90%。因此,通過模式識別技術(shù)檢測人眼的狀態(tài)是判斷駕駛員是否疲勞的主要依據(jù)之一。目前,國際上是以著名的PERCLOS80理論,即眼睛閉合80%的時間占某一特定時間的百分比來作為判斷駕駛員是否疲勞的主要依據(jù)。采用該種方法進行疲勞檢測主要分為3步。首先,對采集的視頻圖像進行人臉檢測;然后,在此基礎(chǔ)上進行人眼檢測和跟蹤;最后,采用PERCLOS80理論進行疲勞判斷。對采集到的視頻圖像能否進行正確、實時的人臉檢測是影響疲勞檢測精度和檢測效率的重要因素。
PC環(huán)境下人臉識別系統(tǒng)是一種非在線檢測,具有非實時性和滯后性等缺點,且成本高、穩(wěn)定性差、應用局限性大。DM643是一款功能強大的DSP芯片,在音視頻和圖像處理方面具有高速性能,被廣泛應用于人臉識別系統(tǒng)中,由此產(chǎn)生了嵌入式人臉識別系統(tǒng)。文中提出在DSP上快速實現(xiàn)疲勞檢測系統(tǒng)中的人臉檢測,利用駕駛室內(nèi)背景相對固定的特點,采用臨界值法和K-means算法檢測定位人眼。設計時考慮數(shù)據(jù)處理的實時性、硬件系統(tǒng)的規(guī)模、軟件系統(tǒng)調(diào)試難度等諸多因素,采用TI公司TMS320DM643芯片為核心處理器,C語言編程。采用羅技快看高手版4000CCD攝影機,每秒攝取30張畫面。人眼檢測的流程如圖1所示。
目前,檢測人臉的方法有很多[1-6],而每個方法不盡相同,根據(jù)過去臉部檢測的相關(guān)研究歸納出兩種常見方法。其一是對影像中的膚色區(qū)域作形狀判別;其二則是在膚色區(qū)域中搜尋是否含有臉部特征。在臉部的檢測上,經(jīng)過復雜度和效率的衡量,運用計算快速且檢測效率高的Haar臉部檢測[7-8]及連續(xù)適應性中心移動演算法(Continuously Adaptive Mean Shift,Cam Shift)。Haar臉部檢測負責取得影像中人臉的部分,取得臉部區(qū)域后,再以Cam Shift用色彩幾率分布及統(tǒng)計的方式追蹤人臉,能確定濾除臉部區(qū)域中非膚色部分,兩種檢測方法具體如下。
圖1 人眼檢測的流程圖
Viola和Jones[7]提出一個機器學習之視覺上物件檢測演算法。不僅大大縮短計算時間,且擁有很高的檢測率,做法中有三項貢獻:其一是類似Haar特征及將影像轉(zhuǎn)換為能快速應用類似Haar特征的形式;其二是使用Ada Boost分類器,它能排除多數(shù)不必要的類似Haar特征,將目標放在關(guān)鍵的類似Haar特征上;其三是以串聯(lián)的形態(tài)結(jié)合了許多分類器,提高檢測效率并縮短計算時間。R Lienhart[8]等以兩個重要的改革更進一步加強了Viola和Jones的物件檢測演算法,在基本的類似Haar特征里,加入旋轉(zhuǎn)的類似Haar特征,這些新的特征也和原本的類似Haar特征一樣,可以在常數(shù)時間內(nèi)被計算出來,且利用決策樹來取代串聯(lián)的分類器,加強了檢測的效能。
Gary等人提出Cam Shift算法[9],即“Continuously Adaptive Mean Shift”算法,是一種運動跟蹤算法。它主要通過視頻圖像中運動物體的顏色信息來達到跟蹤物體的目的。連續(xù)適應性中心移動演算法Cam Shift是利用直方圖來計算二維圖像中色彩的概率分布,它可以處理動態(tài)的色彩分布變化,其中包含處理靜態(tài)色彩分布的中心移動演算法(Mean Shift)。Mean Shift是利用色彩概率分布的上升梯度去搜尋物體,算法過程如下:
步驟1:在顏色概率分布圖中選取搜索窗的大小。
步驟2:設定搜索窗的起始位置。
步驟3:計算搜索窗的重心(用xc表示)。
其中
步驟5:移動搜索窗的中心至重心,如果移動距離大于預設的閾值,則重復步驟3、步驟4和步驟5。直到搜索窗的中心與質(zhì)心間的移動距離小于預設的閾值,或者循環(huán)運算的次數(shù)達到某一最大值,停止計算。
將Mean Shift算法擴展到連續(xù)圖像序列,就是Cam Shift算法。它將視頻的所有幀做Mean Shift運算,并將上一幀的結(jié)果,即搜索窗的大小和中心,作為下一幀Mean Shift算法搜索窗的初始值。如此迭代下去,就可以實現(xiàn)對目標的跟蹤。算法過程如下:
步驟1:設定搜索窗的起始位置及大小。
步驟2:計算搜索窗的顏色概率分布(反向投影)。
步驟3:運行Mean Shift算法,獲得搜索窗新的大小和位置。
步驟4:在下一幀圖像中用步驟3中的值重新初始化搜索窗的大小和位置,重復步驟2繼續(xù)運行。
在彩色圖像中,計算整張圖像色彩概率分布的計算量是很龐大的,Cam Shift在執(zhí)行上其實不需要計算整張影像的色彩概率分布,所以Gary等人改進了Cam Shift,這項改進是將色彩概率分布的計算局限在搜索窗周圍,如此一來,不僅減少計算量也提升了執(zhí)行速度,算法具體過程如下:
步驟1:將整個圖像設為搜尋區(qū)域。
步驟2:設定Mean Shift搜索窗的起始位置。
步驟3:在搜索窗的起始位置上,在較搜索窗大一點的范圍內(nèi)計算色彩概率分布。
步驟4:運行Mean Shift一次或多次,獲得搜索窗新的位置和大小。
步驟5:在下一幀視頻圖像中,用步驟3獲得的值初始化搜索窗的位置和大小。跳轉(zhuǎn)到步驟2繼續(xù)運行。
采用Open CV中Haar臉部辨識和Cam Shift函數(shù)進行臉部檢測,檢測結(jié)果如圖2所示。
圖2 人臉檢測
人臉區(qū)域找到以后,在此區(qū)域進行人眼檢測,人眼檢測的方法有很多[10-13],每個方法都有自己的限制條件。對于人眼檢測采用較簡單的方法,即臨界值法,它是依據(jù)灰度直方圖決定一個臨界值,將灰度圖像轉(zhuǎn)換為黑白圖像,即二值化圖像。檢測人臉時,提取臉部區(qū)域以后,采用灰度圖像轉(zhuǎn)換函數(shù)將它轉(zhuǎn)換為灰度圖像,如圖3所示。
圖3 人臉原圖及灰度圖像
先將臉部區(qū)域分為上下兩個部分,預設眼睛一定在臉部的上半部,并利用臨界值法留下較黑的像素點。在臨界值的選取上,以灰度直方圖利用統(tǒng)計的方式自動化選取,其做法是累計臉部區(qū)域上半部的像素數(shù)目,以占其總數(shù)目5%的值,對直方圖5進行統(tǒng)計去選取二值化的臨界值T=40。圖3的臉部區(qū)域灰度直方圖(灰度值的范圍為0~235)如圖4所示。人臉圖像如圖5所示,其二值化的結(jié)果如圖6所示。
圖4 臉部區(qū)域灰度直方圖
圖5 人臉圖像
圖6 臨界值法二值化的人臉圖像
二值化后留下的像素點是眼睛區(qū)域,以K-means聚類演算法對眼睛區(qū)域做分群的動作,K-means算法如下:
步驟2:將訓練資料依據(jù)它們與各個聚類中心的距離(歐幾里德距離或其它距離測量)遠近,分配到最近的聚類中心。
步驟3:依據(jù)下列公式更新聚類中心位置,
式中:cj——所有被歸類于第j個聚類的資料集合;
Nj——屬于cj的資料的個數(shù)。
考慮到鼻孔偶爾會出現(xiàn)在臉部區(qū)域的上半部,所以將眼睛區(qū)域以K-means分為三群:一群為左眼,其初始在大致左眼的位置;一群為右眼,其初始在大致右眼的位置;另一群則為鼻孔,其初始在左右眼中心下方一點的位置。K-means的迭代次數(shù)設為一次,實驗結(jié)果如圖7所示[14-17]。
CCS集成開發(fā)環(huán)境中提供了優(yōu)化選項,在不同場合選擇使用不同優(yōu)化選項,可以改進程序性能。如在Generate Debug Info選項中,選擇No Debug選項,即不輸出調(diào)試信息,大大加快程序運行速度。
在文中系統(tǒng)中,將常用到的兩個數(shù)據(jù)(檢測分類器和識別轉(zhuǎn)換矩陣)和兩個程序(檢測和識別代碼)盡可能多地放到L2中,如程序1所示。
程序1:sra m段指向DM643片內(nèi)L2存儲空間:
由于DM643片內(nèi)RAM是有限的,經(jīng)常把數(shù)據(jù)存儲在片外。采用EDMA技術(shù)把用到的數(shù)據(jù)從片外搬入片內(nèi),大大提高程序的運行速度。測試結(jié)果見表1。
圖7 人眼定位
表1 人臉識別算法優(yōu)化結(jié)果
將人臉識別算法移植到硬件系統(tǒng)后,對于大小為640×480的灰度圖像,優(yōu)化前完成一次操作需要67.36 s,無法滿足嵌入式人臉識別系統(tǒng)的要求,優(yōu)化以后完成一次操作只需要0.48 s,為優(yōu)化前的0.7%,基本滿足實時人臉識別要求。
在疲勞駕駛狀態(tài)檢測過程中,人眼檢測和定位是非常重要也是很關(guān)鍵的一個環(huán)節(jié)。首先采用Cam Shift算法提取人臉區(qū)域;然后采用K-means算法實現(xiàn)人眼檢測和定位;對傳統(tǒng)的在PC機上實現(xiàn)人臉檢測的缺點和不足進行分析。以高速圖像處理芯片TM S320D M 643為核心,Windows XP操作系統(tǒng),采用i7-3612QM型號第三代智能英特爾酷睿i7處理器,內(nèi)存4 GHz,搭建硬件平臺。采用Matlab7.0仿真軟件,在該硬件平臺上對人臉識別算法進行優(yōu)化。實驗結(jié)果表明,人臉識別速度提高93%,實現(xiàn)實時、快速的人臉檢測,從而實現(xiàn)快速的人眼檢測與定位。
[1] 丁吉,李大偉.DSP Builder在圖像邊緣提取中的應用[J].長春工業(yè)大學學報:自然科學版,2010,31(1):52-57.
[2] C Garcia,G Zikos,G Tziritas.Face detection in color images using wavelet packet analysis[C]//Proceedings of the 6th IEEE International Conference on Multimedia Computing and Systems.Florence:[s.n.],1999:703-708.
[3] R L Hsu,M A Nottaleb,A K Jain.Face detection in color images[J].IEEE Trans.on Pattern Analysis and Machine Intelligence,2002,24(5):696-706.
[4] C Lin,K C Fan.Human face detection using geomeric triangle relationship[C]//Proceedings of the IEEE 15th International Conference on Pattern Recognition.2000:941-944.
[5] Li Tian,Y T Kanade,J F Cohn.Evaluation of gabor-wavelet-based facial action unit recognition in image sequences of increasing complexity[C]//Proceedings of 5th IEEE International Conference on Automatic Face and Gesture Recognition.2002:218-223.
[6] C A Perez,A Palma,C A Holzmann,et al.Face and eye tracking algorithm based on digital image processing[C]//IEEE International Conference on Systems,Man and Cybernetics.2001:1178-1183.
[7] P Viola,M Jones.Robust real-time object detection[C]//Proceedings of IEEE Workshop on Statistical and Theories of Computer Vision.2001.
[8] R Lienhart,A Kuranov,V Pisarevsky.Empirical analysis of detection cascades of boosted classifiers for rapid object detection[C]//Technical Report. MRL:Intel Labs.2002.
[9] G R Bradski.Computer vision face tracking for use in a perceptual user interface[C]//Proceedings of IEEE Workshop on Applications of Computer Vision.1998:214-129.
[10] R S Feris,T E Campos,R M Cesar.Detection and tracking of facial features in video sequences[C]//Mexican International Conference on Artifi-cal Intelligence.2001:129-137.
[11] Anon.Open source computer vision library(OpenCV).[EB/OL][2014-01-10].http://sourceforge.net/projects/opencvlibrary/.
[12] M Rizon,J L Wu.Automatic eye detection using intensity and edge information[J].Proceedings of TENCON,2000(2):24-27.
[13] R Senaratne,S Halgamuge.Optimised landmark model matching for face recognition[C]//Proceedings of the Seventh International Conference on Automatic Face and Gesture Recognition.2006:120-125.
[14] 張寧,李娜.基于Adaboost算法的人臉檢測技術(shù)的研究與實現(xiàn)[J].現(xiàn)代電子技術(shù),2011,14:56-58.
[15] 劉瑞禎,于仕琪.OpenCV教程[M].北京:北京航空航天大學出版社,2007:5-20.
[16] 陳盛勇,劉盛.基于OpenCV的計算機視覺技術(shù)實現(xiàn)[M].北京:科學出版社,2008:197-203.
[17] 楊枝靈,王開巧.Visual C++數(shù)字圖像獲取處理及實踐應用[M].北京:人民郵電出版社,2003.