方浩杰,董紅召,林少軒,羅建宇,方勇
(1.浙江工業(yè)大學 智能交通系統(tǒng)聯(lián)合研究所,浙江 杭州 310014;2.杭州金通科技集團股份有限公司,浙江 杭州 310014)
利用駕駛員面部圖像進行疲勞狀態(tài)分析具有非接觸、易實現(xiàn)、低成本等優(yōu)點[1-2].人臉關(guān)鍵點算法的應(yīng)用較廣泛,目前已有的人臉關(guān)鍵點算法包括MCTNN[3]、PFLD[4]、TCDCN[5]等,諸多學者在此基礎(chǔ)上進行改進與應(yīng)用.Chen等[6-7]提出利用人眼狀態(tài)檢測算法提取疲勞參數(shù),開展多特征加權(quán)融合.Adhinata等[8]提出結(jié)合FaceNet算法與k-最近鄰(K-NN)或多類支持向量機(SVM),計算眨眼頻率.上述方法要求輸入圖像盡可能正臉向前,人臉的五官出現(xiàn)圖像中,但駕駛員在行駛過程中會出現(xiàn)大幅度的轉(zhuǎn)頭、低頭、仰頭等姿勢動作,人臉關(guān)鍵點算法針對此類圖像無法精確定位眼睛、嘴巴區(qū)域,存在較大的偏移[9].在疫情防控下,服務(wù)行業(yè)的駕駛員要求全程佩戴口罩,例如公交駕駛員、出租車駕駛員,利用人臉關(guān)鍵點算法無法精確定位嘴部區(qū)域,導致后續(xù)疲勞參數(shù)計算失準,無法準確判斷駕駛員的疲勞狀態(tài).
諸多學者提出其他面部疲勞狀態(tài)識別方法,Liu等[10-11]提出基于卷積神經(jīng)網(wǎng)絡(luò)和長短時記憶的駕駛員疲勞實時檢測方法,計算嘴部、眼部疲勞參數(shù).Wei等[12]提出基于sobel算子的邊緣檢測,提取人眼狀態(tài)信息.Noman等[13]提出利用支持向量機提取眼睛區(qū)域,使用CNN網(wǎng)絡(luò)進行眼睛狀態(tài)分類.Worah等[14-16]采用CNN模型檢測眼睛狀態(tài),計算閉眼時間與眨眼頻率.上述方法大部分采用多個模塊檢測,整體網(wǎng)絡(luò)尺寸較大,導致檢測速度較慢.為了解決檢測速度慢的問題,目標檢測網(wǎng)絡(luò)廣泛用于駕駛疲勞檢測.Yu等[17-18]提出基于SSD的檢測網(wǎng)絡(luò),檢測眼部、嘴部疲勞參數(shù).Xiang等[19-20]提出利用YOLOv3模型對人眼進行檢測.該類方法未考慮駕駛員因扶口罩、揉鼻子手部動作導致的臉部特征遮擋,當前算法均無法在戴口罩時進行打哈欠檢測,最重要的是單一或獨立的疲勞特征檢測方法無法綜合評判駕駛員疲勞狀態(tài),誤判率高.
針對上述問題,本文提出疫情防控下駕駛員多特征融合的疲勞狀態(tài)檢測方法.建立模擬駕駛平臺,利用移動端設(shè)備采集佩戴口罩和未佩戴口罩情況下的圖像數(shù)據(jù).針對駕駛員頭部姿勢、手勢遮擋的問題,對YOLOv5目標檢測算法進行改進,提高被遮擋目標和小目標的檢測精度.結(jié)合人臉關(guān)鍵點算法,對眨眼和打哈欠幀數(shù)進行補償計算.融合多種疲勞參數(shù)進行歸一化處理,開展疲勞等級劃分.在公開數(shù)據(jù)集與自制數(shù)據(jù)集上,開展眨眼、打哈欠次數(shù)及疲勞狀態(tài)等級的驗證.
該方法主要包含3個部分,分別是改進的YOLOv5目標檢測算法、疲勞參數(shù)補償方法以及多特征融合的疲勞狀態(tài)檢測方法.數(shù)據(jù)集的采集及實驗均在模擬駕駛平臺上開展,該平臺由六自由度汽車性能虛擬仿真實驗平臺、駕駛仿真系統(tǒng)及模擬駕駛軟件組成.實驗招募20位志愿者進行模擬駕駛,模擬駕駛時長為55 min.為了更加逼近實際服務(wù)行業(yè)駕駛員的駕駛情況,為模擬駕駛員設(shè)置多種內(nèi)置場景及任務(wù),例如模擬疫情防控期間乘客上車掃乘車碼,敦促乘客規(guī)范戴口罩.
將YOLOv5目標檢測模型作為基礎(chǔ)網(wǎng)絡(luò),并在此基礎(chǔ)上進行改進,改進后的模型結(jié)構(gòu)如圖1所示.圖中,m為檢測層的深度.從圖1可知,模型結(jié)構(gòu)由主干網(wǎng)絡(luò)(backbone)、加強特征提取網(wǎng)絡(luò)(neck)、檢測網(wǎng)絡(luò)(head)3部分組成.Conv模塊中的激活函數(shù)選擇Swish函數(shù),將CIOU損失函數(shù)作為邊界框回歸損失.
圖1 改進后的YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Improved YOLOv5 network structure
1)自適應(yīng)錨框:由于頭部旋轉(zhuǎn)及手部遮擋,會導致眼部、嘴部標簽框形狀多變,眼部標簽框還會因為遠近的原因?qū)е聝芍谎劬Φ臉撕灴虺叨炔灰?,采用自適應(yīng)錨框方法,錨框即為標簽框.在每次訓練前,對數(shù)據(jù)集中的標注信息進行核查,利用遺傳算法隨機對錨框變異,計算該數(shù)據(jù)集標注信息與錨定框的最佳召回率,并進行反復迭代覆蓋,當最佳召回率大于或等于0.98時,不需要更新錨定框.
2)增加檢測層:不同駕駛員的駕駛習慣不同,會對座椅進行調(diào)節(jié);在駕駛過程中身體存在前傾或后仰動作,會導致檢測目標(人臉、眼睛、嘴巴)變大或縮小,需要提高模型多尺度(較大或較?。┠繕藱z測能力.通過增加結(jié)合層、卷積層、C3層的方法,整體分別多進行一次上采樣和下采樣,將主干網(wǎng)絡(luò)中包含較多小目標特征信息的同尺度特征層輸入結(jié)合層,進行特征融合操作,提高對小目標的檢測性能.
3)BiFPN網(wǎng)絡(luò)結(jié)構(gòu):在增加檢測層后,C3層、結(jié)合層、卷積層數(shù)量增加,整體網(wǎng)絡(luò)層數(shù)加深,但每一層網(wǎng)絡(luò)都會在一定程度上造成特征丟失,因此對于不同層級進行特征融合尤為重要.當戴口罩時,打哈欠檢測區(qū)域需要對擠眼、挑眉、口罩變化等細節(jié)進行特征提取,且該區(qū)域的特征變化細微.將主干網(wǎng)絡(luò)多層計算結(jié)果一次或多次輸入Bi-FPN加強特征提取網(wǎng)絡(luò),采用BiFPN自下而上的結(jié)構(gòu)時,對2個同尺度特征層進行融合;采用自上而下的結(jié)構(gòu)時,利用跳躍連接的方式對3個同尺度特征進行融合.利用BiFPN網(wǎng)絡(luò),使得預測網(wǎng)絡(luò)對不同大小的目標更敏感,提升了整體模型的檢測能力,降低了漏檢率與誤檢率.
圖像識別流程:輸入圖像會在主干網(wǎng)絡(luò)進行特征提取,將獲取到的3個有效特征層輸入Bi-FPN加強特征提取網(wǎng)絡(luò),將不同尺度的特征層進行融合.在檢測網(wǎng)絡(luò)獲得4個加強過的有效特征層,對特征圖上的特征點進行判斷,實現(xiàn)多尺度目標物檢測,確定目標物的類別和位置.
在目標檢測數(shù)據(jù)集的標注過程中,將完全閉眼的圖像數(shù)據(jù)標注為閉眼狀態(tài),其余數(shù)據(jù)均標注為睜眼狀態(tài).由于打哈欠是從閉嘴到張嘴打哈欠,再從張嘴狀態(tài)到閉嘴狀態(tài),難以準確定義張嘴臨界狀態(tài).取完整打哈欠過程中部X%的圖像標記為張嘴.在實驗過程中發(fā)現(xiàn),駕駛員戴口罩時打哈欠會出現(xiàn)擠眼、挑眉、皺眉等神情,眼部附近區(qū)域會發(fā)現(xiàn)明顯變化,伴隨著口罩大幅度的張開.戴口罩的打哈欠圖像數(shù)據(jù)從完整時間序列的角度,對圖像的大面部撐開的口罩、眼部及附近區(qū)域進行標注,取完整過程中部Y%的圖像標記為打哈欠.圖像標簽的制作方法如圖2所示.
圖2 圖像標注的示意圖Fig.2 Schematic of image annotation
研究表明,P80指標與駕駛員眼部疲勞特征的相關(guān)性最高,即根據(jù)人臉關(guān)鍵點算法確定眼部各個關(guān)鍵點并計算眼瞼覆蓋度,當眼睛瞳孔的整體面部被眼瞼覆蓋超過80%時認為眼睛是閉合的.嘴部根據(jù)關(guān)鍵點定義張嘴與閉嘴.由圖像數(shù)據(jù)預處理方法的原理可知,當前閉眼、張嘴、打哈欠的圖像幀預測數(shù)量相較于人臉關(guān)鍵點算法偏少,因此提出疲勞參數(shù)補償方法.利用人臉關(guān)鍵點算法計算出駕駛員在正臉狀態(tài)下閉眼、張嘴的幀數(shù),與當前的數(shù)據(jù)預處理方法進行比較,根據(jù)比值進行補償.
1)眼睛縱橫比.EAR為眼睛縱向界標與橫向界標之間的歐式距離比值,可以直接反映眼睛閉合程度.根據(jù)眼睛的6個關(guān)鍵點位置(見圖3(a)、(b)),EAR的計算公式為
圖3 人臉關(guān)鍵點位置的示意圖Fig.3 Diagram of face key point position
當駕駛員眼睛睜開時,EAR保持動態(tài)平衡,即處于小幅波動.當駕駛員眼睛閉合時,EAR會迅速下降,并在眼睛再次睜開時迅速恢復到動態(tài)平衡.在結(jié)合P80標準后,EAR可以直接反映眼睛的睜閉狀態(tài).
2)嘴巴縱橫比.參考眼睛縱橫比的定義方法,根據(jù)嘴巴的8個特征點(見圖3(c)、(d)),嘴巴縱橫比MAR特征點的計算公式為
嘴巴縱橫比由嘴部內(nèi)輪廓的8個特征點計算所得,可以直接反映嘴部的張開程度.由于駕駛員會與乘客進行頻繁交流,須設(shè)定MAR閾值區(qū)分打哈欠和正常說話時的嘴部張開幅度.
3)EAR和MAR閾值的確定.為了確定駕駛員正臉狀態(tài)下EAR和MAR的波動范圍,須計算駕駛員正臉狀態(tài)下EAR和MAR的最大值、最小值.參考perclos中的P80指標確定EAR和MAR閾值,閾值的計算公式為
式中:X1為眼瞼覆蓋瞳孔面積占比,X2為嘴巴張開程度與最大張度的比值.
4)參數(shù)補償.根據(jù)上述方法確定EAR和MAR閾值,完整截取駕駛員正臉狀態(tài)下的眨眼、打哈欠(未戴口罩)圖像序列幀.根據(jù)閾值確定閉眼和打哈欠幀數(shù),將該幀數(shù)與目標檢測算法標簽設(shè)置幀數(shù)比較,計算比值.比值S的計算公式為
式中:F為目標檢測標簽幀數(shù),f為P80指標下利用人臉關(guān)鍵點算法識別駕駛員睜眼或張嘴的幀數(shù).
依次計算得出眨眼幀數(shù)補償參數(shù)SE、張嘴幀數(shù)補償參數(shù)SM.由于SM是未戴口罩情況,根據(jù)目標檢測標簽預處理方法可知,戴口罩情況下打哈欠幀數(shù)補償參數(shù)SY的計算公式為
結(jié)合上述方法,可以分析的數(shù)據(jù)包括眨眼幀數(shù)、眨眼頻率、張嘴幀數(shù)、打哈欠次數(shù).連續(xù)閉眼幀數(shù)超過2幀計為眨眼一次,張嘴或打哈欠識別結(jié)果連續(xù)幀超過20幀計為打哈欠一次.眨眼頻率BF和打哈欠頻率YF表示單位時間內(nèi)的眨眼次數(shù)和打哈欠次數(shù).定義ECN為連續(xù)閉眼幀數(shù)超過10幀的次數(shù).
結(jié)合補償參數(shù),定義ECR為計算單位內(nèi)閉眼幀數(shù)與總幀數(shù)的比例關(guān)系,能夠反映眼睛閉合持續(xù)時間占檢測時間的比值及駕駛員疲勞狀態(tài),公式如下:
式中:tE為眼睛閉合幀數(shù),TE為單位時間的總幀數(shù).
根據(jù)單位時間內(nèi)打哈欠幀數(shù)占總幀數(shù)的比例關(guān)系,定義MOR表示未佩戴口罩情況下單位時間內(nèi)的張嘴幀數(shù)占比,定義MORM表示佩戴口罩情況下單位時間內(nèi)的打哈欠幀數(shù)占比,公式如下:
式中:tM為張嘴的幀數(shù),TM為單位時間的總幀數(shù),tY為佩戴口罩情況下的打哈欠幀數(shù),TY為單位時間內(nèi)的總幀數(shù).
根據(jù)上述計算方法,可以得到BF、YF、ECN、ECR、MOR、MORM.由于得到的多個疲勞參數(shù)指標量綱不同,若將疲勞指標進行綜合評判,則須對所得參數(shù)的結(jié)果進行標準化處理.利用最大最小標準化(min-max normalization)的方法進行數(shù)據(jù)歸一化處理,轉(zhuǎn)換公式為
式中:x′為歸一化處理后的數(shù)值,xi為實際檢測到的疲勞參數(shù)數(shù)值,xmin、xmax分別為駕駛員清醒狀態(tài)檢測視頻中疲勞參數(shù)的最小值和最大值.
單一疲勞特征難以綜合駕駛員的真實疲勞狀態(tài),易受個體差異的影響,導致疲勞等級誤判.對各疲勞參數(shù)歸一化后進行融合,將融合的值定義為綜合疲勞指標Q,以此綜合反映駕駛員的疲勞狀態(tài).綜合疲勞指標Q的公式為
式中:Vi為歸一化后的疲勞參數(shù),Wi為各疲勞參數(shù)的權(quán)重.
基于pytorch深度學習框架,搭建改進后的YOLOv5模型.硬件配置如下:i5-12600KF CPU、GTX3070、32 GB內(nèi)存.
數(shù)據(jù)集包括公開數(shù)據(jù)集NTHU及自制數(shù)據(jù)集.公開數(shù)據(jù)集NTHU整體上包含多個不同種族的受試者,受試者坐在座椅上,控制方向盤和踏板模擬駕駛汽車.視頻記錄多種光照條件下駕駛員正常駕駛、打哈欠、慢眨眼、入睡、大笑等模擬駕駛場景,對每段視頻進行疲勞狀態(tài)劃分(清醒、疲勞、重度疲勞).取場景幀率為30幀/s的AVI格式視頻.部分視頻圖像如圖4所示.
圖4 NTHU數(shù)據(jù)集的部分視頻圖像Fig.4 Partial video images of NTHU dataset
自制數(shù)據(jù)集是在模擬駕駛平臺采集各類情況下的駕駛圖像數(shù)據(jù).建立的圖像數(shù)據(jù)包括駕駛員工作期間的大幅度轉(zhuǎn)頭、低頭、抬頭、前傾、后仰、歪頭情況下的睜眼閉眼和打哈欠圖像,該類均包含戴口罩與不戴口罩的圖像.為了提高駕駛員面部遮擋圖像識別的準確性,采集駕駛員扶口罩、揉鼻子數(shù)據(jù)集.部分數(shù)據(jù)集的圖片如圖5所示.
圖5 自制數(shù)據(jù)集圖像的示意圖Fig.5 Sketch of self-made data set image
在NTHU駕駛員疲勞檢測視頻數(shù)據(jù)集中截取數(shù)據(jù)樣本3 300張,自制數(shù)據(jù)集共計包含8 700幅分辨率為1 920像素×1 080像素的圖像數(shù)據(jù).將其中10 000張作為訓練集,1 000張作為驗證集,1 000張為測試集數(shù)據(jù)集.利用標注工具,對數(shù)據(jù)集圖片進行標注及歸一化處理,避免與正常講話交流狀態(tài)混淆.在多次實驗后截取駕駛員未戴口罩時的打哈欠圖像中部的70%進行標注,將該段圖像數(shù)據(jù)的嘴部區(qū)域標注為張嘴,其余均標注為閉嘴狀態(tài),即X= 70.由于戴口罩后嘴部區(qū)域特征被遮擋,在打哈欠的開始及結(jié)束部分圖像,不再大幅度撐開口罩,面部神情開始恢復平靜.觀察駕駛員在戴口罩情況下的打哈欠視頻流數(shù)據(jù),截取戴口罩情況下打哈欠完整時間序列圖像中部50%的圖像數(shù)據(jù),將該段圖像數(shù)據(jù)標注為打哈欠,即Y= 50.
標簽分別是未戴口罩(Um)、戴口罩(Ym)、睜眼(Oe)、閉眼(Ce)、張嘴(Om)、閉嘴(Cm)、打哈欠(Ya).將標簽框參數(shù)定義為(C,rx,ry,L,S),其中C為類別ID參數(shù),rx和ry為目標中心點的橫、縱坐標,L為目標框的較長邊,S為目標框的較短邊.
模型訓練參數(shù)的輸入尺寸為640像素×640像素,BatchSize設(shè)置為16,迭代次數(shù)為300,優(yōu)化器選擇隨機梯度下降(SGD)法.采用One Cycle方法對學習率進行調(diào)整,初始學習率為10-5,呈余弦變化衰退到10-7.為了提高臉部遮擋情況下的檢測能力及模型泛化能力,增加噪聲數(shù)據(jù),提升模型的魯棒性,對輸入圖像數(shù)據(jù)進行Mosaic數(shù)據(jù)增強.對于傳入圖像進行隨機翻轉(zhuǎn)、縮放、裁剪等處理,將得到的圖像進行依次拼接.
為了驗證改進方法的有效性以及改進后模型與當前主流目標檢測算法的優(yōu)劣效果,將其余算法設(shè)置相同的訓練參數(shù)進行驗證.訓練結(jié)果如表1所示,表中包括各模型參數(shù)量M、浮點運算次數(shù)FLOPs及各檢測類別的AP.AP表示某一檢測類精確率(precision)和召回率(recall)形成PR曲線下的面積,平均精度均值(mAP)是將所有類的AP求平均值.從表1可知,改進后的目標檢測算法的平均精度最高,達到99.4%,表明該模型相較于其他模型具有更加理想的檢測效果.Faster-RCNN模型在參數(shù)量、計算量上大幅度高于其他模型,平均檢測精度未見明顯的優(yōu)勢,但是在面部檢測類別中對于是否戴口罩的檢測精度最高,可見對于大目標物體檢測具有優(yōu)勢,但是對于眼部、嘴部目標變化多樣,尤其針對睜眼、閉眼類別的檢測精度較低.YOLOv3-tiny、SSD、YOLOv5均為端到端類型的目標檢測網(wǎng)絡(luò),YOLO系列網(wǎng)絡(luò)的參數(shù)量和計算量更低,檢測精度更高.在YOLOv5-S基礎(chǔ)網(wǎng)絡(luò)上分別增加檢測層和BIFPN網(wǎng)絡(luò)結(jié)構(gòu),開展消融實驗,驗證改進方法的有效性.從表1可知,在增加檢測層后,對眼部、嘴部區(qū)域的檢測精度明顯提升,戴口罩情況下的打哈欠檢測精度也有了提高,但戴口罩的檢測精度有小幅下降.可見,在增加檢測層后,對小尺度的目標檢測性能和圖像中的細節(jié)特征提取性能有所提高.在增加BIFPN網(wǎng)絡(luò)結(jié)構(gòu)后,模型的整體性能提升,尤其是對于戴口罩情況下的打哈欠檢測,可見特征層融合后,更多的圖像細節(jié)信息被保留下來.改進后模型的檢測效果如圖6所示.可知,該模型在駕駛員大幅度轉(zhuǎn)頭、低頭、手部遮擋、戴口罩等情況下,均可對眨眼、打哈欠進行識別.
表1 不同模型的性能比較Tab.1 Performance comparison of different models
圖6 本文改進后模型的檢測效果圖Fig.6 Checking effect chart of improved model
利用人臉關(guān)鍵點算法計算駕駛員在正臉狀態(tài)下閉眼、張嘴的幀數(shù),與當前的數(shù)據(jù)預處理方法進行比較,根據(jù)比值進行補償.截取多位模擬駕駛員正臉狀態(tài)下的眨眼、打哈欠圖像,利用Dlib庫中的人臉關(guān)鍵點檢測器,計算駕駛員左、右眼的EAR并取均值.
結(jié)合式(3)、(4)計算,取X1為0.8,即表示眼睛閉合程度大于眼瞼覆蓋瞳孔的80%時視為閉眼.同理,X2取0.2,即嘴巴張開程度大于最大張度的80%時視為打哈欠動作.EAR的最大值和最小值分別為0.48、0.12,閾值為0.19;MAR的最大值和最小值分別為0.66、0.34,閾值為0.60.當EAR<0.19時視為閉眼,MAR> 0.60時視為打哈欠動作.
根據(jù)所得的閾值,結(jié)合式(5)計算各補償參數(shù)S.閉眼幀數(shù)的統(tǒng)計如表2所示.表中,Ne為眨眼次數(shù),NPe為利用關(guān)鍵點方法識別的閉眼幀數(shù),NTe為眼部目標檢測的標簽幀數(shù),Re為NPe與NTe的比值.分別統(tǒng)計了眨眼次數(shù)為100、500、1 000時的關(guān)鍵點幀數(shù)與目標檢測標簽幀數(shù),SE為1.31~1.34.通過增加眨眼樣本數(shù)量,可以提高SE的精準度,本次SE取1.32.
表2 閉眼幀數(shù)的統(tǒng)計Tab.2 Statistics of closed-eye frames
打哈欠幀數(shù)的統(tǒng)計如表3所示.表中,Nm為打哈欠次數(shù),NPm為關(guān)鍵點方法識別打哈欠幀數(shù),NTm為嘴部目標檢測標簽幀數(shù),Rm為NPm與NTm的比值.分別統(tǒng)計20、40、100次關(guān)鍵點幀數(shù)與目標檢測標簽幀數(shù),SM為1.210~1.220,本次SM取1.22.根據(jù)當前SM的計算結(jié)果可知,本次SY取1.71.
表3 打哈欠幀數(shù)統(tǒng)計Tab.3 Statistics of yawning frames
對模擬駕駛視頻中的眨眼和打哈欠次數(shù)進行人工核驗,與模型識別結(jié)果進行比較,結(jié)果如表4、5所示.表中,NDe、NDm分別為算法檢測眨眼、打哈欠次數(shù),NAe、NAm分別為眨眼、打哈欠算法檢測與人工校驗吻合次數(shù),NFe、NFm分別為眨眼、打哈欠算法檢測的誤檢次數(shù),NLe、NLm分別為眨眼、打哈欠算法檢測的漏檢次數(shù),Ae、Am分別為眨眼、打哈欠算法檢測的準確率.準確率(Acc)的計算公式為
表4 眨眼計數(shù)分析Tab.4 Blink count analysis
表5 哈欠計數(shù)分析Tab.5 Yawning count analysis
式中:TP為檢測計數(shù)與人工核驗吻合的次數(shù),F(xiàn)N為檢測計數(shù)的漏檢次數(shù),F(xiàn)P為檢測計數(shù)的誤檢次數(shù).
根據(jù)實驗結(jié)果表明,利用該方法可以對戴口罩和不戴口罩的駕駛員進行眨眼和打哈欠計數(shù)檢測,在目前駕駛?cè)蝿?wù)中眨眼準確率大于95%,打哈欠計數(shù)錯誤至多為1次.在當前的硬件條件中,單幀圖像檢測僅需0.01 s,滿足實時檢測的需求.
結(jié)合式(10)可知,歸一化處理后的數(shù)據(jù)均為無量綱的小數(shù),且集中在[0, 1.0]區(qū)間內(nèi).各指標可以進行加權(quán)相加,綜合反映駕駛員的疲勞狀態(tài).結(jié)合模擬駕駛中駕駛員不同疲勞程度下的各疲勞參數(shù)值以及現(xiàn)有研究中各參數(shù)指標反映駕駛員疲勞的可靠性程度,設(shè)置不同權(quán)重[25-26].NTHU駕駛員疲勞狀態(tài)檢測視頻中清醒狀態(tài)時的疲勞參數(shù)指標最小值和最大值及權(quán)重如表6所示,參數(shù)統(tǒng)計的時長為1 min.表中,Pmin、Pmax為疲勞參數(shù)的最小值、最大值,W為各疲勞參數(shù)的權(quán)重.若眨眼次數(shù)不在設(shè)定范圍中直接計為1,其余參數(shù)指標低于最小值則直接計為0,高于最大值直接計為1.
表6 綜合疲勞參數(shù)的最大值以及權(quán)重Tab.6 Maximum value and weight of comprehensive fatigue parameters
Q的取值在[0, 1.0]區(qū)間內(nèi).根據(jù)Q的不同,將狀態(tài)分為3個等級:清醒、疲勞、重度疲勞.綜合疲勞指標的權(quán)重和疲勞等級,將特征參數(shù)加權(quán)值與疲勞等級相對應(yīng),根據(jù)對應(yīng)關(guān)系能夠判斷駕駛員的駕駛狀態(tài).對應(yīng)關(guān)系如表7所示.
表7 綜合疲勞指標與疲勞等級的對應(yīng)關(guān)系Tab.7 Relationship between comprehensive fatigue index and fatigue grade
為了驗證模型識別及參數(shù)補償方法的可靠性,利用NTHU駕駛員疲勞檢測視頻數(shù)據(jù)集中的部分數(shù)據(jù)進行驗證.隨機選取3組數(shù)據(jù),每組數(shù)據(jù)均包含清醒、疲勞、重度疲勞狀態(tài).結(jié)合疲勞檢測模型計算單位時間(1 min)下的疲勞參數(shù),對眨眼、打哈欠識別幀數(shù)分別乘以參數(shù)補償值,最終計算結(jié)果、綜合疲勞指標以及對應(yīng)的疲勞狀態(tài)如表8所示.可知,利用提出的疲勞狀態(tài)識別方法及定義的疲勞指標,可以有效地識別駕駛員行駛狀況下的疲勞狀態(tài);識別結(jié)果與真實狀態(tài)全部吻合,設(shè)置的閾值及劃分方法均合理,識別效果良好.
表8 NTHU數(shù)據(jù)集的不同疲勞狀態(tài)識別結(jié)果Tab.8 Different fatigue state identification results of NTHU dataset
根據(jù)工信部發(fā)布的第346批車輛產(chǎn)品公示清單可知,公交車、出租車服務(wù)業(yè)車輛與私家車均屬于M類.將上述方法及預警機制直接應(yīng)用至本文的模擬駕駛.截取模擬駕駛實驗中的多段視頻,根據(jù)戴口罩情況分成2組,1組為未戴口罩,2組為戴口罩,計算單位時間(1 min)內(nèi)的各疲勞參數(shù).驗證結(jié)果如表9所示.表中,真實狀態(tài)由駕駛員的主觀反應(yīng)及行駛狀態(tài)綜合判定,其中MORM與MOR兩者的差別僅為是否戴口罩,均為單位時間內(nèi)打哈欠幀數(shù)占比,因此權(quán)重相同.從表9可知,識別結(jié)果與真實狀態(tài)均吻合,驗證了該綜合疲勞指標與疲勞等級劃分的魯棒性和可行性,對于未戴口罩和戴口罩的情況均可以進行疲勞狀態(tài)識別.
表9 模擬駕駛疲勞狀態(tài)的識別結(jié)果Tab.9 Recognition results of simulating driving fatigue state
(1)針對服務(wù)行業(yè)駕駛員在實際工作中會出現(xiàn)的大幅度轉(zhuǎn)頭、遮擋、仰頭、俯視等姿勢變化導致的眨眼、打哈欠檢測精度低及疫情防控下戴口罩后無法進行打哈欠檢測的問題,提出利用改進后的YOLOv5目標檢測算法對眨眼和打哈欠識別.通過增加檢測層及多層次特征層融合的方式,提高對單幀圖像眼部、嘴部區(qū)域及打哈欠檢測區(qū)域的目標檢測精度,將多幀檢測結(jié)果放在連續(xù)時間序列中,利用邏輯方法進行眨眼和打哈欠計數(shù).根據(jù)實驗結(jié)果表明,利用該方法可以對戴口罩和不戴口罩的駕駛員進行眨眼和打哈欠計數(shù)檢測,在目前駕駛?cè)蝿?wù)中眨眼準確率大于95%,打哈欠計數(shù)錯誤至多為1次.在當前硬件設(shè)備中,單幀圖像檢測僅需0.01 s,滿足實時檢測的需求.
(2)結(jié)合人臉關(guān)鍵點算法對疲勞參數(shù)進行補償,提高眨眼和打哈欠幀數(shù)的檢測準確率.對多種疲勞指標進行歸一化處理,賦予不同權(quán)重,綜合判斷駕駛員的疲勞狀態(tài).公開數(shù)據(jù)集與自制數(shù)據(jù)集驗證結(jié)果表明,利用該方法可以準確判斷駕駛員疲勞狀態(tài),對疫情防控下的駕駛員疲勞檢測具有重要意義.