吳雪穎 吳才碩 黃文聰 覃舒琳
摘? 要:疲勞駕駛導(dǎo)致汽車交通事故逐年增加,為了提升駕車的安全性,需對(duì)駕駛員疲勞狀態(tài)實(shí)時(shí)監(jiān)測(cè)并及時(shí)提醒.為了提高疲勞駕駛判斷效率及準(zhǔn)確率,本文運(yùn)用Viola-Jones框架特征矩陣進(jìn)行人臉預(yù)判斷;預(yù)判斷過程中為了減少Haar值計(jì)算量并提高人臉識(shí)別速度,采用Adaboost算法和級(jí)聯(lián)分析,剔除非人臉的Haar特征值,實(shí)現(xiàn)快速人臉識(shí)別;根據(jù)色彩空間轉(zhuǎn)化實(shí)現(xiàn)眼部分割處理,根據(jù)PERCLOS值評(píng)估駕駛員是否處于疲勞狀態(tài)并提前予以警示;通過MATLAB仿真軟件實(shí)現(xiàn)疲勞駕駛檢測(cè)算法的仿真分析.在多個(gè)樣本的測(cè)試過程中,該方法有效識(shí)別出人臉,并能夠準(zhǔn)確監(jiān)測(cè)駕駛員的疲勞狀態(tài).
關(guān)鍵詞:疲勞駕駛檢測(cè);人臉檢測(cè);疲勞特征提取;PERCLOS值;Viola-Jones
中圖分類號(hào):TP391.41;U491.116? ? ? ? ?DOI:10.16375/j.cnki.cn45-1395/t.2021.01.007
0? ? 引言
隨著交通工具的飛速發(fā)展,交通隱患也成為威脅人類安全的殺手之一,每年全世界至少有50萬人死于交通事故.歐美各國(guó)的研究報(bào)告指出,交通事故的起因有接近90%的因素是人為造成,其中在駕駛過程中由于疲勞引發(fā)的交通事故就有10萬多例.由此得知,駕駛員的疲勞駕駛已經(jīng)成為道路交通事故的主要原因之一.因此,對(duì)疲勞駕駛實(shí)時(shí)監(jiān)測(cè)的研究對(duì)安全行車以及駕駛員的生命財(cái)產(chǎn)安全具有一定的意義[1-3].
汽車疲勞駕駛的表現(xiàn)特征有很多方面,較為突出的特征就是駕駛員的面部特征,如嘴部和眼部的開度、頭部偏移等直觀現(xiàn)象可作為疲勞的判斷條件.文獻(xiàn)[4]利用圖像處理手段對(duì)圖像進(jìn)行增強(qiáng)處理,消除因周圍光線不佳造成的疲勞駕駛特征識(shí)別的干擾.采用AdaBoost的人臉檢測(cè)算法對(duì)人臉關(guān)鍵部位進(jìn)行跟蹤,根據(jù)人眼變化并結(jié)合PERCLOS準(zhǔn)則進(jìn)行疲勞判定,仿真結(jié)果能準(zhǔn)確實(shí)現(xiàn)對(duì)人臉關(guān)鍵部位的檢測(cè).文獻(xiàn)[5]對(duì)疲勞駕駛的判斷考慮了人臉部位的變化和駕駛狀態(tài)數(shù)據(jù)兩個(gè)因素.根據(jù)Dlib庫的人臉輪廓點(diǎn)提取計(jì)算眼部和嘴部開度比值,獲取正常及疲勞狀態(tài)特征,再采用改進(jìn)后的隨機(jī)森林模型對(duì)疲勞狀態(tài)進(jìn)行判斷,結(jié)果表明疲勞駕駛檢測(cè)結(jié)果準(zhǔn)確率達(dá)到92.06%.文獻(xiàn)[6]根據(jù)駕駛員的眼睛開度以及顱骨位置變化設(shè)計(jì)了基于駕駛?cè)搜劬﹂_度信息和頭部姿態(tài)信息的駕駛疲勞檢測(cè)系統(tǒng).采用Camshift算法對(duì)人臉跟蹤檢測(cè),并用二階HOG特征和隨機(jī)森林回歸算法對(duì)頭部角度實(shí)時(shí)檢測(cè).其仿真結(jié)果表明在各種駕駛姿態(tài)下都可以實(shí)時(shí)快速檢測(cè)疲勞情況.有研究指出,人疲勞和正常時(shí)其心率數(shù)據(jù)會(huì)存在微小區(qū)別,故有部分研究人員以心率區(qū)別來判斷是否屬于疲勞駕駛.如文獻(xiàn)[7]為了解決疲勞駕駛檢測(cè)系統(tǒng)實(shí)用性和準(zhǔn)確率低等問題,基于空間聚類心率檢測(cè)算法實(shí)現(xiàn)了疲勞駕駛實(shí)時(shí)檢測(cè)系統(tǒng).通過手環(huán)采集駕駛員心率值,利用該值與疲勞度之間相關(guān)程度,經(jīng)空間聚類算法分析判斷駕駛員是否為疲勞狀態(tài).文獻(xiàn)[8]指出,利用心率異常來判斷疲勞駕駛的方法耗時(shí)長(zhǎng)且準(zhǔn)確率低,為此提出短時(shí)心電信號(hào)的疲勞駕駛檢測(cè)算法.先截取30 s的短時(shí)心電信號(hào),利用差分閾值法確定R波位置,計(jì)算R波序列的時(shí)域/頻域特征,與深度卷積神經(jīng)網(wǎng)絡(luò)模型特征提取相結(jié)合,并用隨機(jī)森林分類器對(duì)特征進(jìn)行分類,其檢測(cè)準(zhǔn)確率達(dá)到 91%.
為了簡(jiǎn)單快速判斷出人臉,并進(jìn)行疲勞駕駛的判斷,本文先用Viola-Jones框架人臉檢測(cè)算法對(duì)人臉進(jìn)行檢測(cè);針對(duì)檢測(cè)速度以及特征Haar值累加計(jì)算量大等問題,采用圖像積分、級(jí)聯(lián)分析方法快速對(duì)拍攝圖像進(jìn)行人臉篩查,提高人臉判斷速度和效率;采用PERCLOS值判斷駕駛員是否屬于疲勞狀態(tài).實(shí)驗(yàn)結(jié)果表明,該檢測(cè)方法有一定的實(shí)用性和有效性.
1? ? Viola-Jones框架疲勞駕駛檢測(cè)
由圖1可知,疲勞駕駛檢測(cè)主要通過攝像頭獲取駕駛員圖像,將圖像進(jìn)行預(yù)處理,為下階段的Viola-Jones框架的人臉檢測(cè)作準(zhǔn)備,當(dāng)檢測(cè)到圖像屬于人臉,再提取圖像中的眼部關(guān)鍵部位,提高了疲勞判斷的效率.根據(jù)提取特征與疲勞駕駛特征類型進(jìn)行匹配,根據(jù)閉眼頻率PERCLOS值判斷是否屬于疲勞駕駛,并反饋結(jié)果提醒駕駛員正在疲勞駕駛.
1.1? ?圖像預(yù)處理
疲勞駕駛判斷前提是對(duì)駕駛員的面部特征提取,考慮到在行車時(shí),路面顛簸、環(huán)境光線以及攝像頭像素等因素會(huì)對(duì)拍攝的圖像質(zhì)量產(chǎn)生一定影響,圖像關(guān)鍵部位的提取結(jié)果直接影響到對(duì)疲勞判斷的準(zhǔn)確度,故需要對(duì)所拍攝相片進(jìn)行預(yù)處理.為了剔除圖像中無用的信息,能夠在面部遮擋時(shí)提高定位準(zhǔn)確度,采用直方圖均衡化方法,該方法可調(diào)節(jié)圖像對(duì)比度質(zhì)量,通過變換函數(shù)將灰度分布集中的圖像轉(zhuǎn)成灰度平均分布的圖像.而圖像傳輸過程中難免受環(huán)境噪聲影響,為了改善圖像質(zhì)量,采用中值濾波方法,該方法在保持圖像邊緣清晰的情況下進(jìn)行噪音過濾.此外,圖像拍攝的清晰程度受周圍環(huán)境影響較大,需要對(duì)所拍攝的圖像進(jìn)行光照補(bǔ)償處理,從而減少環(huán)境光線對(duì)疲勞駕駛檢測(cè)結(jié)果的影響[9].
1.2? ?Viola-Jones框架人臉檢測(cè)算法
Viola-Jones人臉檢測(cè)算法已成功對(duì)人臉進(jìn)行實(shí)時(shí)檢測(cè),其首先利用Haar特征描述人臉特征,運(yùn)用特征矩陣模塊積分來表示這個(gè)人臉圖像;再用Adaboost算法進(jìn)行訓(xùn)練,建立層級(jí)分類器,直接對(duì)矩陣特征區(qū)域進(jìn)行匹配,從而快速判斷圖像是否為人臉[10].
1.2.1? Viola-Jones的框架矩陣特征及圖像積分
根據(jù)人臉膚色特征,人的眼睛區(qū)域會(huì)比臉頰區(qū)域深,眼部亮度會(huì)比臉頰暗一些,同理,嘴唇區(qū)域也比嘴部四周暗一些,鼻子區(qū)域會(huì)比兩邊臉頰要亮.基于該臉部特征,Viola-Jones框架矩陣特征使用如圖2所示的4種矩陣特征來表示臉部[10].
由圖2可知,運(yùn)用Viola-Jones框架矩陣模型可以把人臉圖像表示成多個(gè)白色區(qū)域和黑色區(qū)域.
為了計(jì)算Haar特征,需要對(duì)矩形區(qū)域進(jìn)行所有像素求和.一個(gè)圖像包含不同數(shù)量及形狀的矩形區(qū)域,如果將每個(gè)矩形區(qū)域都用遍歷所有像素再求和的計(jì)算方法,計(jì)算量巨大、效率低.為了改進(jìn)這些問題,采用積分圖像方法,如圖3左圖所示,對(duì)于圖像任何一點(diǎn)[Sx,y]的積分圖像值等于位于該點(diǎn)左上角的所有像素之和,公式如式(1)所示:
根據(jù)積分圖像方法(見圖3),假設(shè)[fx,y]表示整體的積分面積,則某一矩形面積可以根據(jù)已知的其他矩形面積求得,如面積[Sx, y=fx, y-Sx-1, y-Sx, y-1-Sx-1, y-1].運(yùn)用積分圖像方法之后,無需反復(fù)遍歷圖像中所有的矩形區(qū)域來計(jì)算矩形區(qū)域的灰度值總和,只需對(duì)原圖像進(jìn)行遍歷一次,大大減小了灰度值計(jì)算量[11].
1.2.2? Adaboost算法
獲取人臉特征后,特別在haar特征較多的情況下,受各類圖像分辨率影響,從大量的特征中選取所想要的特征才能有效達(dá)到檢測(cè)目的.如圖4所示,Adaboost算法即是針對(duì)高維的Haar特征進(jìn)行選擇,選擇部分特征來進(jìn)行分類器訓(xùn)練,由弱分類器構(gòu)造強(qiáng)分類器,將一系列的“弱”分類器通過一定權(quán)重值設(shè)置線性組合,構(gòu)成一個(gè)“強(qiáng)”分類器[12-14].
1.2.3? 級(jí)聯(lián)分析
Adaboost算法所建立的分類器在整個(gè)分類過程中,需要把相關(guān)數(shù)據(jù)中所有特征信息進(jìn)行匹配,完成后才能判斷一張圖像是否為人臉.該檢測(cè)速度十分緩慢,達(dá)不到期望的快速檢測(cè)預(yù)警效果.因此,通過使用級(jí)聯(lián)方法來提高檢測(cè)效率,該方法是基于退化的決策樹算法.如圖5所示的級(jí)聯(lián)檢測(cè)器工作流程,先由第一級(jí)的強(qiáng)分類器F1檢測(cè)出疑是人臉子窗口樣本,才能激發(fā)第二級(jí)的強(qiáng)分類檢測(cè)器F2,否則停止檢測(cè)該窗口并丟棄.依次類推,直到最后Fn檢測(cè)器給出正確的判斷人臉結(jié)果.因此,非人臉的圖像只需少量的haar特征就可以判斷出來并排除掉,無需進(jìn)行所有特征的檢測(cè)判斷[12-14].
2? ? 眼睛部位提取及疲勞判定
在人臉的面部特征中,眼睛、鼻子、嘴巴可以最為直觀地體現(xiàn)人在當(dāng)前情況下大腦的疲勞程度.在人臉的研究中發(fā)現(xiàn)人的膚色呈現(xiàn)出聚類性,如果將人臉中非特征區(qū)域的部分去除,保留眼睛、鼻子、嘴巴等明顯特征區(qū)域,對(duì)人臉疲勞特征識(shí)別和提取有很大幫助.此外,人臉千變?nèi)f化,在實(shí)際應(yīng)用中整張面部識(shí)別存在一些問題,如人臉模板不能通用于任意拍攝圖像,即人在駕駛時(shí)的姿勢(shì)、位置的微量變化都會(huì)對(duì)人臉識(shí)別產(chǎn)生影響.這需要多模板、多尺度、多角度的匹配,很難做到把所有人臉模板都囊括.因此,需將眼睛和嘴巴單獨(dú)分割建模,對(duì)其開度、張度進(jìn)行單獨(dú)匹配且其限值也是隨著人臉比例進(jìn)行動(dòng)態(tài)調(diào)節(jié)設(shè)定.
對(duì)于關(guān)鍵部位的提取采用Matlab軟件自帶的級(jí)聯(lián)對(duì)象檢測(cè)器對(duì)眼睛位置進(jìn)行定位.
2.1? ?眼睛狀態(tài)提取
眼睛疲勞判斷是根據(jù)人眼開度不同時(shí)眼部輪廓會(huì)隨之變化,故所提取的邊緣會(huì)稍微不同.而眼睛邊緣檢測(cè)準(zhǔn)確度不高但速度快,考慮到疲勞檢測(cè)速度及準(zhǔn)確度,對(duì)于眼睛部位狀態(tài)的提取采用組合算法,即模板匹配及水平灰度投影算法相結(jié)合;用檢測(cè)器確定眼部位置后,運(yùn)用模板匹配法對(duì)樣本進(jìn)行粗略檢測(cè),將樣本進(jìn)行分類,如睜眼、閉眼和可疑閉眼;再通過水平灰度投影法對(duì)閉眼和可疑閉眼樣本進(jìn)行判斷,進(jìn)一步確定其狀態(tài),故該組合方法判斷眼睛開閉狀態(tài)的準(zhǔn)確度較高.
2.2? ?疲勞判定
在進(jìn)行眼部分割時(shí),首先提取眼睛特征.根據(jù)卡內(nèi)基梅隆實(shí)驗(yàn)[15],在一定時(shí)間內(nèi)眼睛的內(nèi)瞳孔占整個(gè)眼部比例達(dá)到一定數(shù)值即為眼睛閉合狀態(tài).在實(shí)驗(yàn)中將眼瞼遮住瞳孔的面積超過70%、80%、50% 3個(gè)不同百分比計(jì)為眼睛閉合,并分別用P70、P80及EM符號(hào)來表示.故在一定時(shí)間內(nèi),提取眼部參數(shù)進(jìn)行眼部閉合百分比匹配,當(dāng)達(dá)到眼睛閉合程度并滿足一定頻率時(shí)可判斷為疲勞駕駛狀態(tài),該頻率用PERCLOS值表示.相關(guān)研究表明,P80的實(shí)驗(yàn)數(shù)據(jù)對(duì)駕駛員疲勞駕駛過程中的描述較為準(zhǔn)確,其PERCLOS值與疲勞狀態(tài)的關(guān)聯(lián)性很強(qiáng)[4].PERCLOS值計(jì)算如下:
圖6為PERCLOS值的原型圖,圖中縱坐標(biāo)是眼部的開度,曲線是眼睛開度隨著時(shí)間變化的曲線.圖中t1是眼睛在完全打開到閉合20%的時(shí)間;t2為睜開至閉合80%的時(shí)間;t3是由閉合至睜開20%的時(shí)間;t4是由閉合至睜開80%時(shí)間.根據(jù)眼睛開度變化數(shù)值可以得到眼睛眨眼頻率值f即PERCLOS值.
此次研究采用每8 s進(jìn)行一次測(cè)試的方式,對(duì)于P80的檢測(cè)方式來說,當(dāng)f >0.15,則認(rèn)定駕駛員為疲勞狀態(tài).
當(dāng)PERCLOS值比較低時(shí),即使駕駛員的眼睛是睜開的,實(shí)際卻處于走神狀態(tài),根據(jù)其嘴部開度情況可判斷其疲勞狀態(tài).因此,根據(jù)PRECLOS值計(jì)算出每分鐘的閉眼幀數(shù).一般情況下人眼每分鐘眨眼的次數(shù)為10~15次,以這個(gè)數(shù)值為標(biāo)準(zhǔn)對(duì)駕駛員的當(dāng)前情況進(jìn)行判斷,當(dāng)?shù)陀跁r(shí)可能出現(xiàn)疲勞的情況,同時(shí)結(jié)合嘴巴張度來判斷是否為疲勞駕駛.
3? ? 案例分析
為了驗(yàn)證模型的有效性、可行性,分別從人臉檢測(cè)、眼部關(guān)鍵部位檢測(cè)及疲勞檢測(cè)等方面進(jìn)行多個(gè)樣本測(cè)試分析.
3.1? ?人臉及關(guān)鍵部位檢測(cè)
為了提高疲勞駕駛的檢測(cè)效率,需對(duì)拍攝圖像進(jìn)行人臉預(yù)判斷,只有判斷結(jié)果為人臉時(shí)才能進(jìn)行疲勞檢測(cè),因此,人臉預(yù)判斷步驟非常關(guān)鍵,如判斷失誤就可能錯(cuò)過疲勞采集信息,將對(duì)疲勞判斷結(jié)果產(chǎn)生一定影響.本次的人臉及關(guān)鍵部位檢測(cè)采用了多個(gè)樣本進(jìn)行測(cè)試,其檢測(cè)結(jié)果如圖7、圖8所示,圖中人臉框架及關(guān)鍵部位都有方框標(biāo)出,圖7中還定位不同開合度的人眼,說明其模型可以可靠檢測(cè)出人臉及關(guān)鍵部位. 此外,圖8對(duì)多個(gè)人臉對(duì)象進(jìn)行檢測(cè),從圖8中可知,由于采用了Adaboost算法和級(jí)聯(lián)分析,可以有效檢測(cè)到不同臉型以及姿態(tài)下的人臉,大大減少了漏檢情況.
3.2? ?疲勞駕駛檢測(cè)
為了檢測(cè)算法對(duì)于不同駕駛員檢測(cè)結(jié)果的準(zhǔn)確性,對(duì)6個(gè)不同測(cè)試樣本進(jìn)行疲勞駕駛檢測(cè),測(cè)試結(jié)果如表1所示.
由表1結(jié)果可知,其算法對(duì)人臉關(guān)鍵部位的檢測(cè)準(zhǔn)確度達(dá)到90.9%以上.在6個(gè)樣本的疲勞測(cè)試中,視頻1和視頻4模擬非疲勞狀態(tài),算法都能夠正確判斷出非疲勞狀態(tài);視頻2、3、5、6模擬疲勞狀態(tài),算法除了視頻3判斷失誤,其他都判斷正確,故疲勞駕駛狀態(tài)判斷也比較準(zhǔn)確.
4? ? 結(jié)論
本文基于MATLAB實(shí)現(xiàn) Viola-Jones人臉框架的疲勞駕駛檢測(cè)系統(tǒng)建模及仿真.該算法實(shí)現(xiàn)了非人臉特征的過濾,檢測(cè)定位所需的人臉區(qū)域,有效提高了檢測(cè)速度及準(zhǔn)確性并根據(jù)PERCLOS值進(jìn)行駕駛疲勞判斷.由案例分析可知,該算法對(duì)于不同的測(cè)試樣本都能夠精準(zhǔn)定位于人臉關(guān)鍵部位,并能判斷疲勞駕駛狀態(tài),體現(xiàn)出該算法的通用性和有效性.
參考文獻(xiàn)
[1]? ? ?劉子謙.簡(jiǎn)要分析新能源汽車在中國(guó)的發(fā)展前景[J].時(shí)代汽車,2017(24):44-45.
[2]? ? ?曹王欣,劉東梅,馬洋洋,等.探析電動(dòng)汽車動(dòng)力電池系統(tǒng)發(fā)展瓶頸與對(duì)策[J].南方農(nóng)機(jī),2019,50(9):107.
[3]? ? ?國(guó)家發(fā)展改革委,國(guó)家能源局,工業(yè)和信息化部,等.關(guān)于印發(fā)提升新能源汽車充電保障能力行動(dòng)計(jì)劃的通知:發(fā)改能源[2018]1698號(hào)[A/OL]. (2018-11-09) [2020-07-12].https://www.d1ev.com/news/zhengce/82764.
[4]? ? ?劉朝濤,張雪佼.基于圖像處理的疲勞駕駛預(yù)警研究[J].電子技術(shù)應(yīng)用,2019,45(8):104-108.
[5]? ? ?吳士力,唐振民,劉永.多特征融合的隨機(jī)森林疲勞駕駛識(shí)別算法[J].計(jì)算機(jī)工程與應(yīng)用,2020,56(20):212-219.
[6]? ? ?曹昱聰,吳健瑜,范良明,等.基于多特征融合的疲勞駕駛檢測(cè)系統(tǒng)研究[C]//2019中國(guó)汽車工程學(xué)會(huì)年會(huì)論文集.上海:機(jī)械工業(yè)出版社,2019.
[7]? ? ?王延年,柴小強(qiáng),向秋麗.基于空間聚類心率檢測(cè)算法的疲勞駕駛預(yù)警手環(huán)設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2019,38(5):91-95.
[8]? ? ?徐禮勝,張聞勖,龐宇軒,等.基于短時(shí)心電信號(hào)的疲勞駕駛檢測(cè)算法[J].東北大學(xué)學(xué)報(bào)(自然科學(xué)版),2019,40(7):937-941.
[9]? ? ?李旭輝.基于圖像預(yù)處理的局部二值模式人臉識(shí)別方法[J].電子技術(shù)與軟件工程,2019(7):66-67.
[10]? ?賈海鵬,張?jiān)迫?,?基于OpenCL的Viola-Jones人臉檢測(cè)算法性能優(yōu)化研究[J].計(jì)算機(jī)學(xué)報(bào),2016,39(9):1775-1789.
[11]? ?譚艷麗,趙永強(qiáng).基于積分圖像的快速二維Otsu閾值法[J].半導(dǎo)體光電,2014,35(6):1089-1092.
[12]? ?李佩,汪紅娟,李業(yè)麗,等.基于AdaBoost人臉檢測(cè)算法的分析研究[J].北京印刷學(xué)院學(xué)報(bào),2020,28(1):128-132.
[13]? ?陳中勝,李春貴,蔣凱.基于分布估計(jì)算法的人臉Haar特征選擇[J].廣西科技大學(xué)學(xué)報(bào),2015,26(2):47-52.
[14]? ?安曉寧,王智文,張燦龍,等.基于隱馬爾可夫模型的人臉特征標(biāo)注和識(shí)別[J].廣西科技大學(xué)學(xué)報(bào),2020,31(2):118-125.
[15]? ?鄭偉成,李學(xué)偉,劉宏哲,等.基于深度學(xué)習(xí)的疲勞駕駛檢測(cè)算法[J].計(jì)算機(jī)工程,2020,46(7):21-29.