鄭 鵬
(福建船政交通職業(yè)學(xué)院,福建 福州 350007)
本文提出了一種基于駕駛員臉部特征的疲勞檢測(cè)方法,該方法具有非接觸、精確、成本低、易于實(shí)現(xiàn)等特點(diǎn),并在駕駛員疲勞駕駛預(yù)警中應(yīng)用。Isaza等人提出一種基于圖像處理與機(jī)器學(xué)習(xí)相結(jié)合的車輛預(yù)警系統(tǒng)動(dòng)態(tài)設(shè)定點(diǎn)模型。該方法利用 Python編程的 Open CV庫(kù),運(yùn)行 Harr描述符,對(duì)臉部位置進(jìn)行識(shí)別,并對(duì)其進(jìn)行疲勞判斷。閆保中等[1]根據(jù)眼寬與高之比,計(jì)算出目前的眼的閉合度,利用視覺(jué)的方向來(lái)進(jìn)行疲勞駕駛的識(shí)別,從而判定駕駛員的注意力是否分散,從而在駕駛員進(jìn)入深度疲勞狀態(tài)前發(fā)出警告。潘志庚等[2]采用 Adaboost方法進(jìn)行面部識(shí)別,通過(guò)“三庭五眼”的分布特點(diǎn),將人眼區(qū)域劃分為一個(gè)大概的人眼區(qū)域,并將其與長(zhǎng)寬比、擬合橢圓面積、瞳孔黑色相結(jié)合,對(duì)其進(jìn)行疲勞分析。根據(jù)司機(jī)臉部的特點(diǎn)進(jìn)行疲勞檢測(cè)具有實(shí)時(shí)性、便利性和經(jīng)濟(jì)性好的優(yōu)點(diǎn),但其魯棒性差,結(jié)果受外界影響,難以適應(yīng)復(fù)雜的環(huán)境,如司機(jī)戴著眼鏡不能正確識(shí)別等。當(dāng)前,針對(duì)汽車駕駛員的疲勞測(cè)試[3]存在以下問(wèn)題:①疲勞指數(shù)太單一,受不同駕駛環(huán)境和光線等因素的影響,很難保證其準(zhǔn)確性和可靠性;②沒(méi)有能夠很好地處理由于個(gè)體的不同而產(chǎn)生的疲勞效應(yīng);③在關(guān)鍵疲勞工況下,無(wú)法對(duì)駕駛員進(jìn)行準(zhǔn)確的判別和分級(jí)預(yù)警。針對(duì)這一問(wèn)題,本文研究了一種利用計(jì)算機(jī)視覺(jué)技術(shù)對(duì)駕駛員臉部多個(gè)特征進(jìn)行識(shí)別的方法。以影視視頻為樣本,收集不同司機(jī)的疲勞特性指數(shù),并運(yùn)用數(shù)學(xué)方法求出對(duì)應(yīng)的閾值,從而有效降低由于駕駛員臉部特征的差異而造成的檢測(cè)效果;采用“眨眼”“閉眼”“眼皮閉合”“哈欠”等四個(gè)不同的參數(shù),構(gòu)建了“疲勞駕駛”的評(píng)價(jià)模型,為“智能駕駛”駕駛員的疲勞駕駛狀況提供了科學(xué)依據(jù)。
本文采用TMS320DM642AZDKA6為核心,通過(guò)圖像采集、電源總成、CPU處理器、聲音警報(bào)模塊等部分實(shí)現(xiàn)了對(duì)駕駛員疲勞程度的檢測(cè)(見(jiàn)圖1)。該系統(tǒng)首先利用攝像機(jī)對(duì)駕駛員臉部進(jìn)行采集,然后通過(guò) A/D變換,將數(shù)據(jù)輸入 CPU進(jìn)行人臉檢測(cè)、疲勞關(guān)鍵點(diǎn)的定位和疲勞程度判斷。電源模塊給整個(gè)系統(tǒng)進(jìn)行供電,當(dāng)系統(tǒng)判定駕駛員處于疲勞狀態(tài)時(shí),通過(guò)預(yù)設(shè)的語(yǔ)音報(bào)警系統(tǒng)對(duì)駕駛員發(fā)出警告。硬件平臺(tái)具體配置如下:MT8V032的CMOS 攝像頭,英特爾酷睿i5-9400F@2.90GHz六核CPU,運(yùn)行內(nèi)存32GB,256GB 固態(tài)硬盤;操作平臺(tái)采用Windows10平臺(tái)。
圖1 硬件系統(tǒng)圖
臺(tái)架面操作區(qū)域可分為4個(gè)部分,如圖2所示,分別為實(shí)驗(yàn)臺(tái)架主控區(qū)域、駕駛監(jiān)測(cè)控制區(qū)域、駕駛監(jiān)測(cè)狀態(tài)指示區(qū)域、相機(jī)數(shù)據(jù)處理單元及故障分區(qū)。每一個(gè)小區(qū)域代表實(shí)車對(duì)應(yīng)系統(tǒng),在實(shí)訓(xùn)臺(tái)架上模擬其真實(shí)情況,通過(guò)簡(jiǎn)單的視覺(jué)及聲控反應(yīng),配合實(shí)驗(yàn)顯示模擬區(qū)域?qū)Υ钶d了相關(guān)功能的智能網(wǎng)聯(lián)汽車進(jìn)行真實(shí)行駛狀況對(duì)駕駛員的疲勞狀態(tài)進(jìn)行檢測(cè),用簡(jiǎn)潔明了的方式最大程度體現(xiàn)真實(shí)數(shù)據(jù),方便老師教學(xué)和學(xué)生理解。
圖2 實(shí)驗(yàn)臺(tái)架控制區(qū)域
這一部分主要是對(duì)整個(gè)實(shí)訓(xùn)平臺(tái)的操作。其中,“總電源”是整個(gè)疲勞檢測(cè)實(shí)訓(xùn)臺(tái)架的總電源開(kāi)關(guān);“實(shí)時(shí)機(jī)電源”是實(shí)時(shí)機(jī)的電源開(kāi)關(guān);“車輛開(kāi)關(guān)”模擬實(shí)車“ON”檔,開(kāi)機(jī)點(diǎn)火啟動(dòng)發(fā)動(dòng)機(jī),使車輛進(jìn)入待機(jī)運(yùn)行狀態(tài),還配置有方向盤,最大程度還原真實(shí)駕駛場(chǎng)景。
這一區(qū)域主要是對(duì)駕駛員疲勞駕駛的程度進(jìn)行檢測(cè),并對(duì)駕駛員眨眼頻率、閉眼次數(shù)、網(wǎng)絡(luò)眼瞼閉合度打哈欠頻率4個(gè)疲勞特征要素進(jìn)行單獨(dú)開(kāi)關(guān)設(shè)置。
此區(qū)域?yàn)轳{駛監(jiān)測(cè)狀態(tài)指示燈區(qū)域,該部分包含了4個(gè)危險(xiǎn)駕駛情況工作助系統(tǒng)指示燈。系統(tǒng)“眨眼檢測(cè)”指示燈指示眨眼檢測(cè)系統(tǒng)的啟動(dòng)與關(guān)閉狀態(tài);“閉眼檢測(cè)”指示燈指示閉眼檢測(cè)機(jī)構(gòu)啟動(dòng)與關(guān)閉狀態(tài);“眼瞼檢測(cè)”指示燈指示檢測(cè)眼瞼檢測(cè)系統(tǒng)是否正常運(yùn)行;“打哈欠狀態(tài)檢測(cè)”閉眼檢測(cè)機(jī)構(gòu)啟動(dòng)與關(guān)閉的指示燈;“1級(jí)警告”指示燈:當(dāng)駕駛員出現(xiàn)一級(jí)疲勞狀態(tài),該指示燈亮;“2級(jí)警告”指示燈:當(dāng)駕駛員出現(xiàn)二級(jí)疲勞狀態(tài),該指示燈亮;“3級(jí)警告”指示燈:當(dāng)駕駛員出現(xiàn)三級(jí)疲勞狀態(tài),該指示燈亮。
這部分主要是與相機(jī)進(jìn)行聯(lián)動(dòng),作為一個(gè)單一的處理視覺(jué)傳感器傳送各項(xiàng)數(shù)據(jù)附帶故障檢修的區(qū)域。主要有“X-Y軸控制搖桿”:調(diào)節(jié)相機(jī)的X-Y軸的位置;“故障設(shè)置”:包含硬件故障、軟件故障等幾種故障類別,通過(guò)該旋鈕調(diào)節(jié)選擇故障種類,必要的時(shí)候配合相關(guān)實(shí)訓(xùn)軟件進(jìn)行故障試驗(yàn);“故障設(shè)置確認(rèn)”按鈕:通過(guò)“故障設(shè)置”旋鈕選定故障后按下該按鈕確認(rèn);“故障確認(rèn)燈”:按下“故障設(shè)置確認(rèn)”按鈕后,故障設(shè)置成功該燈常亮。除此之外,實(shí)訓(xùn)臺(tái)架的示教面板上還有很多檢測(cè)接口,學(xué)生可以利用示波器、萬(wàn)用表等檢測(cè)工具來(lái)對(duì)故障進(jìn)行模擬檢修。
經(jīng)處理,得出眨眼次數(shù)、閉眼次數(shù)、眼皮閉合時(shí)間百分比和哈欠頻率;考慮到這些數(shù)據(jù)各自隸屬的計(jì)量單元的差異,在此必須對(duì)所有的疲勞指數(shù)進(jìn)行全面的評(píng)估,并對(duì)采集的資料進(jìn)行統(tǒng)一處理,最后將以上數(shù)據(jù)進(jìn)行綜合計(jì)算,計(jì)算公式如下。
(1)
式(1)中,x為最后一個(gè)融合值;xi為疲勞數(shù)值,由該系統(tǒng)實(shí)時(shí)探測(cè);xmin和 xmax是探測(cè)期間的最小和最大值。經(jīng)過(guò)了一致的處理,所有的數(shù)據(jù)都是沒(méi)有被量化的十進(jìn)制,而且在[0,0.5]范圍之內(nèi)。在這里,各個(gè)單元的資料對(duì)目標(biāo)函數(shù)具有相同的作用,各個(gè)因素的作用可以見(jiàn)表1。
表1 疲勞指標(biāo)最值
下面是對(duì)表1中的數(shù)值進(jìn)行對(duì)比或權(quán)重。按照司機(jī)的疲勞程度,設(shè)定了相應(yīng)的加權(quán)系數(shù),其計(jì)算公式如下:
(2)
式(2)中,x是最后的疲勞指標(biāo),數(shù)值為[0,0.5],將其劃分為4個(gè)級(jí)別,表示疲勞等級(jí),見(jiàn)表2。
表2 疲勞等級(jí)區(qū)分
駕駛員疲勞檢測(cè)系統(tǒng)的目的是在盡可能短的時(shí)間內(nèi)精準(zhǔn)地識(shí)別出駕駛員的疲勞情況并進(jìn)行相應(yīng)的反饋[4],具體過(guò)程如圖3所示。
圖3 算法總流程圖
步驟1,攝像頭采集圖像的預(yù)處理,對(duì)視頻文件逐幀進(jìn)行灰度化處理;步驟2,對(duì)攝像頭處理過(guò)后灰度化的駕駛員人像對(duì)照Dlib 開(kāi)源庫(kù)人臉檢測(cè)模型并進(jìn)行定位;步驟3,對(duì)照灰度化的圖像,將其與開(kāi)源人臉庫(kù)的數(shù)據(jù)樣本進(jìn)行特殊點(diǎn)對(duì)照,并識(shí)別和定位出特征點(diǎn);步驟4,根據(jù)上一步驟提取的特征點(diǎn)帶入算法中完成對(duì)疲勞指標(biāo)數(shù)據(jù)的計(jì)算;步驟5,對(duì)上述的數(shù)據(jù)進(jìn)行統(tǒng)合計(jì)算并處理后生成最終數(shù)值,根據(jù)最終數(shù)值對(duì)駕駛員的狀態(tài)進(jìn)行分級(jí),實(shí)現(xiàn)對(duì)疲勞駕駛的定級(jí)和預(yù)警。
本文針對(duì)駕駛員這一交通運(yùn)輸?shù)闹黧w,以監(jiān)測(cè)疲勞程度為目標(biāo),在考慮駕駛員個(gè)體差異的基礎(chǔ)上,制作出疲勞程度的數(shù)值指標(biāo),完善建立精準(zhǔn)的數(shù)據(jù)模型[5],希望以此臺(tái)架為基礎(chǔ),研究駕駛員疲勞駕駛的預(yù)警技術(shù),防止交通事故發(fā)生。同時(shí),臺(tái)架可以根據(jù)智能網(wǎng)聯(lián)課程的需求,與當(dāng)前的智能網(wǎng)聯(lián)課程內(nèi)容有機(jī)結(jié)合,擴(kuò)充學(xué)生相關(guān)知識(shí)的認(rèn)知領(lǐng)域。