劉靜霞
(成都電子機械高等專科學校,四川 成都610031)
為了減少由于司機疲勞而導致的交通事故,國內(nèi)外的許多研究工作者都在研究司機疲勞狀態(tài)檢測系統(tǒng)。例如美國卡內(nèi)基梅隆大學的Richard Grace領(lǐng)導的Copilot工程開發(fā)的疲勞檢測裝置,浙江大學的駕駛防磕睡裝置,北京航天航空大學的眼動測量系統(tǒng)。目前,疲勞駕駛的檢測技術(shù)主要有兩大類,一類是采集腦電信號的生理參數(shù)EEG來檢測[1],EEG生理參數(shù)能準確地反映出人的疲勞狀態(tài),但檢測設(shè)備較復雜昂貴,應(yīng)用推廣難度較大;另一類是對采集的面部圖像信息進行識別[2]。圖像信息檢測中,有的利用較昂貴的紅外攝像機檢測信號[3],有的利用普通攝像機進行檢測[4]。普通攝影機安裝和使用較方便,利于推廣應(yīng)用,但對圖像處理技術(shù)要求較高。由于疲勞狀態(tài)實時檢測系統(tǒng)要求很高的實時性和可靠性,目前為止,還沒有出現(xiàn)滿足實際需要的非強迫性檢測系統(tǒng)。
表1中列出了幾種疲勞狀態(tài)檢測的方法,并對性能進行了比較。通過比較可以發(fā)現(xiàn),這幾種方法中基于身體反應(yīng)的檢測方法性能較好。PERCLOS(Percentage of Eyelid Closure Time)是在單位時間內(nèi)眼睛閉合時間所占的百分率。弗吉尼亞大學的Walt Wierwille從20世紀70年代開始研究眼睛光學變量與疲勞的關(guān)系,研究表明與疲勞有關(guān)的主要因素有缺乏睡眠、瞳孔直徑、注目凝視、眼球快速轉(zhuǎn)動、眉眼掃視、眨眼睛等,并且發(fā)現(xiàn)PERCLOS是最具潛力的疲勞測定方法之一,由PERCLOS得出的數(shù)據(jù)可以真正反映駕駛疲勞,是對疲勞進行估價測定的最好方法。
表1 疲勞檢測方法對比
通過攝像頭獲取司機的實時視頻,獲得駕駛員的視頻圖像后,利用圖像處理與模式識別技術(shù)分析人臉特征圖像信息,從圖像中找到駕駛員面部所在位置,檢測出人眼并分析人眼狀態(tài)(睜開或閉合),然后統(tǒng)計一定時間內(nèi)眼睛閉合持續(xù)總時間,將其與某固定閾值比較,以確定司機瞌睡與否。
疲勞狀態(tài)檢測要準確地檢測和跟蹤眼睛的狀態(tài)。采用先確定人臉區(qū)域,然后再在人臉區(qū)域內(nèi)進一步檢測、定位人眼的方法,這樣可以使得眼睛的檢測與定位更加準確和快捷。眼睛的識別檢測方法可分為基于統(tǒng)計和基于知識兩種類型?;诮y(tǒng)計的方法將人臉和人眼圖像視為一個多維向量,從而將人臉和人眼檢測問題轉(zhuǎn)化為多維空間中分布信號的檢測問題;而基于知識的方法則利用人臉和人眼特征知識建立若干規(guī)則,從而將人臉檢測問題轉(zhuǎn)化為假設(shè)和驗證問題,例如人臉膚色和幾何結(jié)構(gòu)等?;谥R建模的方法一般對建模的假設(shè)條件依賴性強,而基于統(tǒng)計的方法精度較高、魯棒性強,但運算量大。駕駛室光照復雜多變,振動環(huán)境也較復雜,選擇基于統(tǒng)計的方法能更有效地進行檢測。
Paul Viola和Michael Jones于2001年提出機器學習領(lǐng)域分類精度較高并且識別速度快的Adaboost算法[5-6],Adaboost算法是一種高效的迭代算法,在人眼的快速檢測方面有著非常重要的應(yīng)用。它針對同一個訓練集訓練出不同的弱分類器,然后把這些弱分類器組成強分類器,進而形成級聯(lián)分類器。訓練方法描述如下:
(4)弱分類器中,找出一個具有最小錯誤εt的弱分類器 ht,更新每個樣本所對應(yīng)的權(quán)重ωt+1,i=ωt,iexp(-αtliht(xi)),αt=0.5ln[(1-εt)/εt];
設(shè)計的系統(tǒng)采用麻省理工的MIT CBCL人臉庫作為訓練庫,然后利用Adaboost算法訓練人臉檢測分類器。MIT CBCI數(shù)據(jù)庫中的訓練樣本集共有2 429幅人臉樣本圖像和4 554幅非人臉圖像,包括各種光照條件和人體姿態(tài)。利用人眼檢測程序進行了大量圖片檢測,發(fā)現(xiàn)人眼檢測正確率高,只要能夠正確定位人臉,人眼檢測都能準確識別。經(jīng)過分析發(fā)現(xiàn),人眼特征簡單、模板小,不像人臉特征多、變化大。人眼的搜索區(qū)域為先前定位的人臉區(qū)域,搜索區(qū)域小;而人臉搜索區(qū)域為整幅圖像。特征簡單、搜索區(qū)域小,致使人眼檢測正確率高,不會出現(xiàn)誤檢。
疲勞狀態(tài)檢測算法運行在PC機上的檢測幀速率約為3~4幀,不能滿足檢測算法的實時性要求。為了提高實時檢測速度,將檢測算法移植到DSP芯片上運行可以有效地提高系統(tǒng)的實時性。DSP系統(tǒng)具有強大的數(shù)據(jù)并行處理能力,能提高檢測算法的運算速度,從而獲得實時檢測的效果。DSP具備普通微處理器所強調(diào)的高速運算和控制功能,移植過程中還要針對實時數(shù)字信號處理,在處理器結(jié)構(gòu)、指令系統(tǒng)、指令流程上做相應(yīng)的改動。系統(tǒng)采用TI公司的TMS320DM642芯片作為嵌入式芯片平臺,檢測算法的移植在合眾達公司的SEED-VPM開發(fā)板上進行。
TMS320DM642是建立在C64x DSP核基礎(chǔ)上、采用了德州儀器公司開發(fā)的第二代高性能超長指令字結(jié)構(gòu)VelociT l.2TM,在每個時鐘周期內(nèi)可執(zhí)行2個16×16 bit的乘法或 4個 8×8 bit的乘法。TMS320DM642內(nèi)包含了 6個算術(shù)邏輯單元,在每個時鐘周期內(nèi)都可執(zhí)行2個16 bit或4個8 bit的加減、比較、移動等運算。在600 MHz的時鐘頻率下,DM642每秒可以進行24億次 16 bit的乘累加或48億次8 bit的乘累加。這樣的運算能力,使得DM642可以進行實時的多視頻處理和圖像處理。TMS320DM642通過64 bit的EMIF和3個8/16 bit寬度的視頻口來連接板上的外設(shè)(如 SDRAM、Flash、FPGA和DART)。TMS320DM642還在C64x的基礎(chǔ)上增加了很多外圍設(shè)備和接口。
疲勞狀態(tài)檢測識別系統(tǒng)是運行在DSP芯片上的數(shù)字信號處理系統(tǒng),視頻數(shù)據(jù)的處理流向如下:視頻數(shù)據(jù)從攝像機輸入進來,輸入的格式為PAL/NTSC模擬電視廣播信號格式,經(jīng)過模擬數(shù)據(jù)經(jīng)視頻解碼芯片SAA7115解碼,可以得到標準BT.656并行數(shù)據(jù),BT.656并行數(shù)據(jù)從DM642視頻口1輸入,視頻口1提取YCbCr數(shù)據(jù)之后,分別存放在內(nèi)部的緩沖器中,獨立于CPU的EDMA將視頻口buffer中YCbCr數(shù)據(jù)搬移到大容量外部SDRAM存儲器中,SDRAM中存放著連續(xù)的3幀圖像數(shù)據(jù),同時EDMA將其中一幀圖像數(shù)據(jù),不停地搬移到DM642內(nèi)部RAM,在內(nèi)部RAM存放著兩行連續(xù)視頻數(shù)據(jù)供CPU使用,CPU處理過的數(shù)據(jù)輸回到內(nèi)部RAM中暫時保存,后續(xù)數(shù)據(jù)輸出步驟與前面介紹的數(shù)據(jù)輸入步驟正好相反。
DSP采用多總線的哈佛結(jié)構(gòu),相同的系統(tǒng)復雜程度,DSP比一般的微處理數(shù)據(jù)處理速度快2個數(shù)量級。多總線結(jié)構(gòu)使得DSP結(jié)構(gòu)復雜,工作頻率較低,對外部存儲器的訪問速度只有133 MHz,從而造成數(shù)據(jù)瓶頸,嚴重地制約了處理速度,移植過程中,要減少片內(nèi)外的數(shù)據(jù)傳輸、提高片內(nèi)數(shù)據(jù)的利用率。Adaboost檢測算法要求較大的數(shù)據(jù)計算量,將其移植到DSP中,可以通過提高二級高速緩存Cache命中率、優(yōu)化算法等措施來減少片內(nèi)外的數(shù)據(jù)傳輸,減少程序運算量。
移植完成后,對算法進行一系列優(yōu)化,最終達到18 S/s的幀速率,滿足了實時性要求,如表2所示。
表2 疲勞檢測算法DSP系統(tǒng)時間消耗
檢測時,TMS320DM642工作頻率為600 MHz,視頻輸入圖像大小為 724×576,DSP將其縮放為 CIF圖像(356×298像素),然后進行疲勞駕駛檢測,系統(tǒng)檢測速率基本達到18幀/s。通過采集多人圖像視頻進行檢測,分析得到人臉檢測率為90.5%,人眼檢測率90.3%,人眼狀態(tài)分析正確率為86.7%。算法達到18幀/s的幀速率,基本滿足了系統(tǒng)實時檢測的性能要求。但是由于實驗設(shè)備環(huán)境與時間限制,檢測系統(tǒng)還存在缺陷和有待完善的地方。例如由于樣本庫的原因,人臉檢測算法對傾斜人臉的檢測存在先天不足,可以加入傾斜人臉樣本或在檢測階段采用旋轉(zhuǎn)視頻圖像方法解決該問題。
[1]VUCKOVIC A,POPOVIC D,RADIVOJEVIC V.Artificial neural network for detecting drowsiness from EEG recordings[C].Proc.IEEE Seminar on Neural Network Applications in Electrical Engineering,Belgrade,Yugoslavia.Sept.2002:155-158.
[2]GONZALEZ R C,WOODS R E.Digital image processing.Second Edition,Prentice Hall,Upper Saddle River,NJ,USA,2002.
[3]JI Q,ZHU Z,LAN P.Real-time nonintrusive monitoring and prediction of driver fatigue[J].IEEE Trans.Veh.Tech.,2004,53(4):1052-1068.
[4]DONG W,WU X.Driver fatigue detection based on the distance of eyelid[C].Proc.IEEE VLSI Design and Video Technology,Suzhou,China,pp.365-368,May 2005.
[5]VIOLA P,JONES M.Rapid object detection using a boosted cascade of simple features[C].IEEE Computer Society Conference on Computer Vision and Pattern Recognition(CVPR),ISSN:1063-6919,2001(1):511-518.
[6]VIOLA P,MICHAEL J.Robust real-time face detection[J].International Journal of Computer Vision.2004,57(2):137-154.