胡冠山
山東交通學(xué)院,山東濟(jì)南 250357
汽車數(shù)量增長在給人們?nèi)粘I顜順O大便利的同時,交通事故數(shù)量也隨之增加,給社會造成了巨大的財(cái)產(chǎn)損失和人員傷亡。在對交通事故原因的調(diào)查統(tǒng)計(jì)中,疲勞駕駛是其中一個重要因素。檢測疲勞駕駛行為,給出預(yù)警,是減少疲勞駕駛引發(fā)事故的一種途徑。目前,用于檢測疲勞駕駛行為的方法主要包括3類:基于生理參數(shù)檢測、基于車輛行為檢測和基于面部特征分析的檢測。
基于生理參數(shù)的檢測方法是給駕駛員穿戴一些輔助設(shè)備,通過檢測駕駛員的心電圖、腦電圖、融合測量肌電圖、脈搏等生理信號,提取數(shù)據(jù)特征,分析判別駕駛員疲勞狀態(tài)。該方法雖然具有較高的疲勞駕駛檢測精度,但需要駕駛員皮膚粘貼或穿戴一些接觸式的傳感設(shè)備,給駕駛員帶來行動或生理的不便,造成不舒適感;基于車輛行為的檢測方法是通過收集車輛在行駛期間車道偏離狀態(tài)、方向盤轉(zhuǎn)角和偏航角等車輛行為參數(shù),分析車輛是否存在異常操作來判別駕駛疲勞行為。該方法極易受到外界因素干擾,存在識別率低或誤判的情況;基于面部特征分析的檢測是目前應(yīng)用較多的一種方法,通過采集駕駛員人臉圖像后,利用視覺算法或深度學(xué)習(xí)算法對駕駛員面部進(jìn)行分析,檢測駕駛員的眼睛狀態(tài),眨眼和哈欠等疲勞行為特征來判別是否處于疲勞駕駛。該方法具有非入侵、易于實(shí)現(xiàn)和較高準(zhǔn)確率等優(yōu)點(diǎn)[1]。根據(jù)以上3種檢測方法的特點(diǎn),本文采用基于面部特征分析的疲勞檢測算法,適合于嵌入式場合,具有較高的便捷性、實(shí)用性和經(jīng)濟(jì)性。
根據(jù)對駕駛員疲勞狀態(tài)監(jiān)測的需求,利用圖像設(shè)備采集駕駛員的面部信息作為數(shù)據(jù)輸入到嵌入式MCU中,控制器對圖像數(shù)據(jù)進(jìn)行算法運(yùn)算處理后,采用PERCLOS算法判定駕駛員狀態(tài)。如果駕駛員處于疲勞狀態(tài)則進(jìn)行聲光報(bào)警提示,同時把檢測結(jié)果和車輛定位信息等數(shù)據(jù)傳到遠(yuǎn)程監(jiān)控平臺[2]。系統(tǒng)總體結(jié)構(gòu)如圖1所示。

核心控制器采用嵌入式32位高性能ARM Cortex-M3處理器STM32F103ZET6,其最高工作頻率可達(dá) 72 MHz,具有64 kB SRAM、512 kB FLASH、2個基本定時器、4個通用定時器、2個高級定時器;13個通信接口,5個串口可進(jìn)行全雙工通用同步/異步串行收發(fā);3個SPI接口可以使MCU與各種外圍設(shè)備進(jìn)行信息交換,如系統(tǒng)與LD3320語音模塊的通信;2個II2C接口可進(jìn)行雙向二線制同步串行通信;1個USB端口可直接使用與攝像頭相連,進(jìn)行人臉圖像采集。
在車輛行駛中,駕駛員在白天和夜晚都有可能出現(xiàn)疲勞駕駛現(xiàn)象,考慮到夜晚更容易發(fā)生疲勞駕駛并且光線較暗,采用普通的攝像頭可能無法清晰地捕獲到駕駛員面部信息,因此,本設(shè)計(jì)采用DH-S10-1080P紅外高清攝像頭進(jìn)行人像臉部的圖像采集。DH-S10-1080P安裝在駕駛臺上前方,通過USB 端口把圖像數(shù)據(jù)傳輸?shù)轿⑻幚砥鱏TM32F103ZET6,在光線較差的夜晚也能較清楚的采集到駕駛員臉部的圖像信息。
為了實(shí)現(xiàn)遠(yuǎn)程中心能夠動態(tài)了解車輛的位置信息,采用GT-1010-MTBD集成模塊進(jìn)行車輛定位。GT-1010-MTBD可在GPS和北斗系統(tǒng)間雙模式切換,該模塊外形尺寸為9.6 mm×9.6 mm×2.0 mm,電流功耗在12~16 mA左右,與Fastrax IT530等模塊完全兼容,非常適合應(yīng)用于平板電腦、戶外定位手表、野外定位等嵌入式產(chǎn)品。GT-1010-MTBD模塊支持2個全雙工串行通道UART0和UART1,接口為3.3 V邏輯電平,通過引腳15-TXA和引腳16-RXA與微處理器STM32F103ZET6的TXD和RXD串口進(jìn)行數(shù)據(jù)連接。
本設(shè)計(jì)采用TC35i完成與遠(yuǎn)程中心的數(shù)據(jù)通信,該模塊是德國Siemens公司推出的雙頻900/1800 MHz高度集成GSM模塊,模塊有AT命令集接口,支持電壓范圍3.3~4.4 V,與單片機(jī)電平兼容。TC35i通過18管腳RXD和19管腳TXD與微控制器的TXD和RXD串口通信,可以安全、迅速、可靠地實(shí)現(xiàn)系統(tǒng)方案中的數(shù)據(jù)傳輸服務(wù),包括駕駛員駕駛狀態(tài)發(fā)送、車輛位置發(fā)送和遠(yuǎn)程終端指令的接收。
當(dāng)檢測到駕駛員疲勞狀態(tài)時,系統(tǒng)采用聲音提示和燈光報(bào)警對駕駛員進(jìn)行警示。聲音報(bào)警采用LD3320芯片,該芯片具有高精度的語音識別效果,可以動態(tài)編輯識別關(guān)鍵詞列表,該模塊與處理器STM32F103ZET6采用SPI通信模式進(jìn)行通信,為全雙工模式,根據(jù)檢測到的疲勞程度,在處理器控制下可以播放不同聲音予以警示。
燈光報(bào)警模塊采用LED燈,當(dāng)判別駕駛員疲勞時,可實(shí)現(xiàn)以一定頻率閃爍報(bào)警。LED燈通過晶體管放大電路與處理器STM32F103ZET6引腳連接,當(dāng)判別到駕駛員疲勞狀態(tài)時,處理器輸出PWM波驅(qū)動燈光閃爍報(bào)警。
本設(shè)計(jì)中對駕駛員疲勞狀態(tài)檢測采用圖像識別算法,以眼睛閉合狀態(tài)作為判別依據(jù),圖像識別算法設(shè)計(jì)主要包括人臉識別、眼睛閉合檢測、疲勞判別3個步驟。
對于圖像中人臉區(qū)域的識別,目前經(jīng)常采用的方法是Harr級聯(lián)檢測、HOG-SVM以及深度學(xué)習(xí)算法。考慮到車載嵌入式微處理器的數(shù)據(jù)能力和系統(tǒng)的實(shí)時性要求,本設(shè)計(jì)選用速度較快的HOG+SVM 方法進(jìn)行駕駛員人臉檢測,對駕駛員人臉圖像識別后,利用人臉圖像中眼睛區(qū)域與周圍區(qū)域相比灰度值較低的特點(diǎn),采用灰度積分投影法來定位眼睛,計(jì)算眼睛的閉合程度,根據(jù)眼睛閉合程度,利用PERCLOS算法計(jì)算,判別檢測出司機(jī)的疲勞狀態(tài)[3]。系統(tǒng)識別算法設(shè)計(jì)實(shí)現(xiàn)流程如圖2所示。

人臉檢測是粗定位,是為了確定下一步驟——人眼檢測的搜索區(qū)域。HOG-SVM是方向梯度直方圖(histogram of oriented gradients,HOG)與支持向量機(jī)(support vector machine,SVM)相結(jié)合的人臉檢測算法,可以有效提取人臉特征并準(zhǔn)確完成人臉定位。
HOG利用梯度及梯度方向的統(tǒng)計(jì)信息來描述圖像,具有較好的光學(xué)不變性與幾何不變性,尤其適用于目標(biāo)檢測,對人臉圖像利用HOG特征提取如圖3所示。

HOG特征提取首先把人臉圖像灰度化處理后進(jìn)行梯度大小和梯度方向的計(jì)算,圖像梯度算法:

其中,H(x, y)——像素點(diǎn)(x, y)的像素值;
Gy(x, y)——像素點(diǎn)(x, y)的垂直方向梯度;
Gx(x, y)——像素點(diǎn)(x, y)的水平方向梯度。
圖像像素點(diǎn)(x, y)處的梯度幅值大小以及梯度方向的定義如下公式:

將圖像劃分成小的細(xì)胞單元,一個cell細(xì)胞大小為8 px×8 px,再由4個細(xì)胞組成block塊,統(tǒng)計(jì)梯度方向時首先以細(xì)胞為單位進(jìn)行統(tǒng)計(jì),之后再以塊為單位進(jìn)行處理。一個block內(nèi)所有cell的HOG特征串聯(lián)起來歸一化便得到該塊的HOG特征,將該圖像內(nèi)所有塊的HOG 特征串聯(lián)起來,就可以得到該圖像的HOG特征了。
支持向量機(jī)SVM是一種二分類模型,用SVM作為人臉分類器,將HOG特征作為SVM輸入特征進(jìn)行人臉窗口圖像分類,再進(jìn)行漏檢或誤檢識別。
在臉部圖像中,由于眼睛區(qū)域比周圍區(qū)域較暗,所以此處采用灰度積分投影法來實(shí)現(xiàn)對眼睛定位。首先,對人臉圖像進(jìn)行水平和垂直方向的投影,根據(jù)波谷、波峰的分布情況來定位眼睛區(qū)域;然后,對人眼二值化圖像坐標(biāo)系x軸方向水平投影,確定輪廓邊界點(diǎn)x1和x2,在x1到x2之間每一列中的像素個數(shù)n,選取出n值最大處為xm,在xm對應(yīng)坐標(biāo)進(jìn)行垂直積分投影,得到y(tǒng)2和y1求出眼睛張開度,如圖4所示。
臉部圖像中,灰度值用G(x, y)表示,垂直投影就是將同一列范圍內(nèi)的像素點(diǎn)的灰度值進(jìn)行累加計(jì)算出來,圖像垂直區(qū)域[y1,y2]積分投影為:


圖像水平投影就是將同一行范圍內(nèi)的像素點(diǎn)的灰度值進(jìn)行累加后計(jì)算出來,圖像水平區(qū)域[x1,x2]積分投影為:

眼睛閉合時間百分比(percentage of eyelid closure,PERCLOS)是依據(jù)單位時間內(nèi)眼睛閉合超過某一閾值時間在總時長的占比進(jìn)行疲勞評判。大量實(shí)驗(yàn)對比研究證實(shí),在面部指標(biāo)中,PERCLOS評價(jià)指標(biāo)能夠最有效地檢測出司機(jī)的疲勞狀態(tài),P80是以眼睛張開度80%作為閾值計(jì)算張開度,與駕駛疲勞的相關(guān)性最好[4]。
在設(shè)計(jì)中,圖像檢測是以視頻序列的幀為單位,P80的計(jì)算公式可以轉(zhuǎn)化為:

考慮到對于系統(tǒng)實(shí)時性的要求和處理器速度,本系統(tǒng)攝像輸出速度選定為15幀/s進(jìn)行采集。通過測試研究,本設(shè)計(jì)對駕駛員的疲勞狀態(tài)進(jìn)行了兩級分類處理,當(dāng)P80大于30%時為初級疲勞狀態(tài),報(bào)警系統(tǒng)給出聲光報(bào)警,對駕駛員給予提醒,防止其進(jìn)入疲勞狀態(tài);當(dāng)P80大于50%為嚴(yán)重疲勞狀態(tài),提高聲音強(qiáng)度進(jìn)行聲光報(bào)警,并把數(shù)據(jù)遠(yuǎn)傳到遠(yuǎn)程監(jiān)控中心,以便對駕駛員的駕駛行為進(jìn)行干預(yù)。
采用一般疲勞狀態(tài)、嚴(yán)重疲勞狀態(tài)各20張以及正常狀態(tài)臉部照片40張,作為測試樣本輸入系統(tǒng)進(jìn)行檢測,以人眼為檢測指標(biāo)的檢測結(jié)果如表1。通過對實(shí)驗(yàn)結(jié)果分析可知,基于面部眼睛狀態(tài)指標(biāo)作為疲勞檢測判斷標(biāo)準(zhǔn)準(zhǔn)確度在較高范圍。

表1 人臉檢測實(shí)驗(yàn)測試
本文設(shè)計(jì)基于圖像識別的嵌入式車載駕駛員疲勞檢測系統(tǒng),選用嵌入式STM32作為處理器,采用快捷的機(jī)器視覺算法判別駕駛員狀態(tài),具有低成本、實(shí)時性高、設(shè)備體積小和安裝便捷等特點(diǎn)。該設(shè)備能夠有效地實(shí)現(xiàn)對駕駛員疲勞狀態(tài)的檢測,有一定的便利性和實(shí)用性。系統(tǒng)中采用眼睛張開度的單一參數(shù)作為判別,受到拍攝圖像質(zhì)量的較大影響,后續(xù)改進(jìn)中可以增加對駕駛員低頭、哈欠等多種狀態(tài)的檢測,在保證快速性的同時提高魯棒性,為安全駕駛提供保障。