胡冠山
山東交通學院,山東濟南 250357
汽車數(shù)量增長在給人們?nèi)粘I顜順O大便利的同時,交通事故數(shù)量也隨之增加,給社會造成了巨大的財產(chǎn)損失和人員傷亡。在對交通事故原因的調(diào)查統(tǒng)計中,疲勞駕駛是其中一個重要因素。檢測疲勞駕駛行為,給出預(yù)警,是減少疲勞駕駛引發(fā)事故的一種途徑。目前,用于檢測疲勞駕駛行為的方法主要包括3類:基于生理參數(shù)檢測、基于車輛行為檢測和基于面部特征分析的檢測。
基于生理參數(shù)的檢測方法是給駕駛員穿戴一些輔助設(shè)備,通過檢測駕駛員的心電圖、腦電圖、融合測量肌電圖、脈搏等生理信號,提取數(shù)據(jù)特征,分析判別駕駛員疲勞狀態(tài)。該方法雖然具有較高的疲勞駕駛檢測精度,但需要駕駛員皮膚粘貼或穿戴一些接觸式的傳感設(shè)備,給駕駛員帶來行動或生理的不便,造成不舒適感;基于車輛行為的檢測方法是通過收集車輛在行駛期間車道偏離狀態(tài)、方向盤轉(zhuǎn)角和偏航角等車輛行為參數(shù),分析車輛是否存在異常操作來判別駕駛疲勞行為。該方法極易受到外界因素干擾,存在識別率低或誤判的情況;基于面部特征分析的檢測是目前應(yīng)用較多的一種方法,通過采集駕駛員人臉圖像后,利用視覺算法或深度學習算法對駕駛員面部進行分析,檢測駕駛員的眼睛狀態(tài),眨眼和哈欠等疲勞行為特征來判別是否處于疲勞駕駛。該方法具有非入侵、易于實現(xiàn)和較高準確率等優(yōu)點[1]。根據(jù)以上3種檢測方法的特點,本文采用基于面部特征分析的疲勞檢測算法,適合于嵌入式場合,具有較高的便捷性、實用性和經(jīng)濟性。
根據(jù)對駕駛員疲勞狀態(tài)監(jiān)測的需求,利用圖像設(shè)備采集駕駛員的面部信息作為數(shù)據(jù)輸入到嵌入式MCU中,控制器對圖像數(shù)據(jù)進行算法運算處理后,采用PERCLOS算法判定駕駛員狀態(tài)。如果駕駛員處于疲勞狀態(tài)則進行聲光報警提示,同時把檢測結(jié)果和車輛定位信息等數(shù)據(jù)傳到遠程監(jiān)控平臺[2]。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
核心控制器采用嵌入式32位高性能ARM Cortex-M3處理器STM32F103ZET6,其最高工作頻率可達 72 MHz,具有64 kB SRAM、512 kB FLASH、2個基本定時器、4個通用定時器、2個高級定時器;13個通信接口,5個串口可進行全雙工通用同步/異步串行收發(fā);3個SPI接口可以使MCU與各種外圍設(shè)備進行信息交換,如系統(tǒng)與LD3320語音模塊的通信;2個II2C接口可進行雙向二線制同步串行通信;1個USB端口可直接使用與攝像頭相連,進行人臉圖像采集。
在車輛行駛中,駕駛員在白天和夜晚都有可能出現(xiàn)疲勞駕駛現(xiàn)象,考慮到夜晚更容易發(fā)生疲勞駕駛并且光線較暗,采用普通的攝像頭可能無法清晰地捕獲到駕駛員面部信息,因此,本設(shè)計采用DH-S10-1080P紅外高清攝像頭進行人像臉部的圖像采集。DH-S10-1080P安裝在駕駛臺上前方,通過USB 端口把圖像數(shù)據(jù)傳輸?shù)轿⑻幚砥鱏TM32F103ZET6,在光線較差的夜晚也能較清楚的采集到駕駛員臉部的圖像信息。
為了實現(xiàn)遠程中心能夠動態(tài)了解車輛的位置信息,采用GT-1010-MTBD集成模塊進行車輛定位。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串口進行數(shù)據(jù)連接。
本設(shè)計采用TC35i完成與遠程中心的數(shù)據(jù)通信,該模塊是德國Siemens公司推出的雙頻900/1800 MHz高度集成GSM模塊,模塊有AT命令集接口,支持電壓范圍3.3~4.4 V,與單片機電平兼容。TC35i通過18管腳RXD和19管腳TXD與微控制器的TXD和RXD串口通信,可以安全、迅速、可靠地實現(xiàn)系統(tǒng)方案中的數(shù)據(jù)傳輸服務(wù),包括駕駛員駕駛狀態(tài)發(fā)送、車輛位置發(fā)送和遠程終端指令的接收。
當檢測到駕駛員疲勞狀態(tài)時,系統(tǒng)采用聲音提示和燈光報警對駕駛員進行警示。聲音報警采用LD3320芯片,該芯片具有高精度的語音識別效果,可以動態(tài)編輯識別關(guān)鍵詞列表,該模塊與處理器STM32F103ZET6采用SPI通信模式進行通信,為全雙工模式,根據(jù)檢測到的疲勞程度,在處理器控制下可以播放不同聲音予以警示。
燈光報警模塊采用LED燈,當判別駕駛員疲勞時,可實現(xiàn)以一定頻率閃爍報警。LED燈通過晶體管放大電路與處理器STM32F103ZET6引腳連接,當判別到駕駛員疲勞狀態(tài)時,處理器輸出PWM波驅(qū)動燈光閃爍報警。
本設(shè)計中對駕駛員疲勞狀態(tài)檢測采用圖像識別算法,以眼睛閉合狀態(tài)作為判別依據(jù),圖像識別算法設(shè)計主要包括人臉識別、眼睛閉合檢測、疲勞判別3個步驟。
對于圖像中人臉區(qū)域的識別,目前經(jīng)常采用的方法是Harr級聯(lián)檢測、HOG-SVM以及深度學習算法??紤]到車載嵌入式微處理器的數(shù)據(jù)能力和系統(tǒng)的實時性要求,本設(shè)計選用速度較快的HOG+SVM 方法進行駕駛員人臉檢測,對駕駛員人臉圖像識別后,利用人臉圖像中眼睛區(qū)域與周圍區(qū)域相比灰度值較低的特點,采用灰度積分投影法來定位眼睛,計算眼睛的閉合程度,根據(jù)眼睛閉合程度,利用PERCLOS算法計算,判別檢測出司機的疲勞狀態(tài)[3]。系統(tǒng)識別算法設(shè)計實現(xiàn)流程如圖2所示。
人臉檢測是粗定位,是為了確定下一步驟——人眼檢測的搜索區(qū)域。HOG-SVM是方向梯度直方圖(histogram of oriented gradients,HOG)與支持向量機(support vector machine,SVM)相結(jié)合的人臉檢測算法,可以有效提取人臉特征并準確完成人臉定位。
HOG利用梯度及梯度方向的統(tǒng)計信息來描述圖像,具有較好的光學不變性與幾何不變性,尤其適用于目標檢測,對人臉圖像利用HOG特征提取如圖3所示。
HOG特征提取首先把人臉圖像灰度化處理后進行梯度大小和梯度方向的計算,圖像梯度算法:
其中,H(x, y)——像素點(x, y)的像素值;
Gy(x, y)——像素點(x, y)的垂直方向梯度;
Gx(x, y)——像素點(x, y)的水平方向梯度。
圖像像素點(x, y)處的梯度幅值大小以及梯度方向的定義如下公式:
將圖像劃分成小的細胞單元,一個cell細胞大小為8 px×8 px,再由4個細胞組成block塊,統(tǒng)計梯度方向時首先以細胞為單位進行統(tǒng)計,之后再以塊為單位進行處理。一個block內(nèi)所有cell的HOG特征串聯(lián)起來歸一化便得到該塊的HOG特征,將該圖像內(nèi)所有塊的HOG 特征串聯(lián)起來,就可以得到該圖像的HOG特征了。
支持向量機SVM是一種二分類模型,用SVM作為人臉分類器,將HOG特征作為SVM輸入特征進行人臉窗口圖像分類,再進行漏檢或誤檢識別。
在臉部圖像中,由于眼睛區(qū)域比周圍區(qū)域較暗,所以此處采用灰度積分投影法來實現(xiàn)對眼睛定位。首先,對人臉圖像進行水平和垂直方向的投影,根據(jù)波谷、波峰的分布情況來定位眼睛區(qū)域;然后,對人眼二值化圖像坐標系x軸方向水平投影,確定輪廓邊界點x1和x2,在x1到x2之間每一列中的像素個數(shù)n,選取出n值最大處為xm,在xm對應(yīng)坐標進行垂直積分投影,得到y(tǒng)2和y1求出眼睛張開度,如圖4所示。
臉部圖像中,灰度值用G(x, y)表示,垂直投影就是將同一列范圍內(nèi)的像素點的灰度值進行累加計算出來,圖像垂直區(qū)域[y1,y2]積分投影為:
圖像水平投影就是將同一行范圍內(nèi)的像素點的灰度值進行累加后計算出來,圖像水平區(qū)域[x1,x2]積分投影為:
眼睛閉合時間百分比(percentage of eyelid closure,PERCLOS)是依據(jù)單位時間內(nèi)眼睛閉合超過某一閾值時間在總時長的占比進行疲勞評判。大量實驗對比研究證實,在面部指標中,PERCLOS評價指標能夠最有效地檢測出司機的疲勞狀態(tài),P80是以眼睛張開度80%作為閾值計算張開度,與駕駛疲勞的相關(guān)性最好[4]。
在設(shè)計中,圖像檢測是以視頻序列的幀為單位,P80的計算公式可以轉(zhuǎn)化為:
考慮到對于系統(tǒng)實時性的要求和處理器速度,本系統(tǒng)攝像輸出速度選定為15幀/s進行采集。通過測試研究,本設(shè)計對駕駛員的疲勞狀態(tài)進行了兩級分類處理,當P80大于30%時為初級疲勞狀態(tài),報警系統(tǒng)給出聲光報警,對駕駛員給予提醒,防止其進入疲勞狀態(tài);當P80大于50%為嚴重疲勞狀態(tài),提高聲音強度進行聲光報警,并把數(shù)據(jù)遠傳到遠程監(jiān)控中心,以便對駕駛員的駕駛行為進行干預(yù)。
采用一般疲勞狀態(tài)、嚴重疲勞狀態(tài)各20張以及正常狀態(tài)臉部照片40張,作為測試樣本輸入系統(tǒng)進行檢測,以人眼為檢測指標的檢測結(jié)果如表1。通過對實驗結(jié)果分析可知,基于面部眼睛狀態(tài)指標作為疲勞檢測判斷標準準確度在較高范圍。
表1 人臉檢測實驗測試
本文設(shè)計基于圖像識別的嵌入式車載駕駛員疲勞檢測系統(tǒng),選用嵌入式STM32作為處理器,采用快捷的機器視覺算法判別駕駛員狀態(tài),具有低成本、實時性高、設(shè)備體積小和安裝便捷等特點。該設(shè)備能夠有效地實現(xiàn)對駕駛員疲勞狀態(tài)的檢測,有一定的便利性和實用性。系統(tǒng)中采用眼睛張開度的單一參數(shù)作為判別,受到拍攝圖像質(zhì)量的較大影響,后續(xù)改進中可以增加對駕駛員低頭、哈欠等多種狀態(tài)的檢測,在保證快速性的同時提高魯棒性,為安全駕駛提供保障。