摘要:為了準確、快速地檢測駕駛員疲勞狀態(tài),設計一種基于深度學習和ERT算法的車載疲勞檢測系統(tǒng)。該系統(tǒng)采用MTCNN算法進行人臉定位,使用KCF算法進行人臉追蹤,應用ERT算法進行人臉特征點檢測。獲得特征點后,測定了眨眼動作的EAR閾值與哈欠動作的MAR閾值,在YawDD數(shù)據(jù)集上眨眼識別的準確率達到88.07%,哈欠識別的[F1-measure]達到了92.31。通過計算眨眼時的PERCLOS值與檢測嘴巴張度MAR的大小來判斷眼部與嘴部狀態(tài),使用決策樹進行多特征融合疲勞判斷,進而決定是否進行預警。
關鍵詞:疲勞檢測;PERCLOS;人臉特征點;ERT算法;人臉檢測
中圖分類號:TP391.41? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)04-0066-04
1 引言
2020年共發(fā)生244671起交通事故,其中機動車事故211074起,造成55950人死亡[1]。復雜交通環(huán)境與極端天氣是交通事故發(fā)生的客觀因素,駕駛員的危險駕駛行為是交通事故發(fā)生的主觀因素,疲勞駕駛就屬于危險駕駛行為的一種。駕駛員在連續(xù)長時間行車后,由于長期保持固定姿勢,血液循環(huán)不暢引起肢體疲勞,長時間觀察路況,缺少放松時間引起注意力渙散。生理與心理狀態(tài)的惡化導致駕駛員在遭遇緊急情況時反應能力下降,進而造成交通事故。在中國,疲勞駕駛為主要誘因的交通事故占總數(shù)的20%,占特大交通事故的40%以上[2]。
針對疲勞狀態(tài)的檢測,國內外研究人員提出了三種基于不同技術的解決方案:基于駕駛員生理特征的疲勞檢測,通過檢測肌電波、腦電波和心電波等來判斷疲勞狀態(tài);基于駕駛行為特征的疲勞檢測,通過安置在車輛上的傳感器,檢測車輛加速度、方向盤偏轉角度和航道偏移角度等來判斷駕駛員疲勞狀態(tài);基于駕駛員生理反應特征的疲勞檢測,通過檢測眼部動作、哈欠動作和頭部姿態(tài)等數(shù)據(jù)來判斷疲勞狀態(tài)。如文獻[3]中研究發(fā)現(xiàn)疲勞時中央?yún)^(qū)和額葉的腦電疲勞信號復雜度下降。文獻[4]使用長途客車的駕駛員反應能力參數(shù)、車輛轉向速度參數(shù)以及方向盤參數(shù)建立了長途客車的疲勞駕駛檢測模型。文獻[5]使用HOG特征和SVM分類器提取人臉區(qū)域,使用人臉特征點檢測算法得到駕駛員面部信息,判斷駕駛員疲勞程度。
以上方法雖然能夠得到駕駛員疲勞信息,但都有各自的局限性?;隈{駛員的生理特征檢測得到的結果最精確,但生理特征如腦電波測量所需的設備會對駕駛員產生影響,使其本身成為造成危險的因素;基于駕駛行為特征的疲勞檢測不會干擾駕駛人員,但其易受到車載量、道路情況及天氣等因素影響,難以保證檢測精度;HOG特征對噪點敏感,在成像質量不佳時容易出錯。本文采取魯棒性更好的深度學習算法來檢測人臉,同時為了彌補深度學習算法速度慢的缺點,獲得人臉區(qū)域后采取KCF跟蹤算法進行人臉追蹤以獲得實時臉部區(qū)域,使用人臉特征點檢測算法得到眼部與嘴部信息,計算PERCLOS值與判斷哈欠動作,最終使用這兩種特征得到疲勞檢測結果。
2 系統(tǒng)主要算法介紹
2.1 人臉檢測
進行人臉關鍵點檢測之前需要得到人臉區(qū)域,本系統(tǒng)采取文獻[6]中提出的MTCNN(多任務卷積神經網絡)算法進行人臉檢測。MTCNN算法是一種使用卷積網絡的人臉檢測與對齊的方法。算法采用級聯(lián)CNN結構,將三個卷積神經網絡P-Net、R-Net與O-Net級聯(lián)到一起構成強分類器。該算法先使用輸入圖像構建圖像金字塔,將不同尺寸的圖像輸入P-Net以對不同大小的人臉進行預測,P-Net將快速產生大量人臉候選框,將這些人臉候選框送入R-Net,R-Net將去除大部分低可信度的人臉候選框,O-Net最為復雜,會對R-Net篩選后的人臉框進行更嚴格的識別,輸出最終人臉區(qū)域。MTCNN通過設計精巧的三級網絡結構,實現(xiàn)了檢測準確率與運算速度之間的平衡,在FDDB、WIDER FACE和AFLW數(shù)據(jù)集上取得了當時最好的成績,性能表現(xiàn)提高明顯,是目前在人臉檢測方面性能最好的算法之一。
MTCNN算法輸出如圖1所示。
2.2 人臉跟蹤
基于卷積神經網絡的MTCNN算法消耗的算力資源較大,對硬件要求較高,難以做到跟隨攝像頭輸入進行實時檢測。機動車正常行駛途中駕駛員不會發(fā)生變更且頭部姿態(tài)變化不大,人臉在每幀之間的移動幅度小,在獲取人臉區(qū)域后,采用文獻[7]中提出的KCF跟蹤算法對人臉區(qū)域進行追蹤,從而減少算力消耗。
KCF是一種差分追蹤方法,初始幀使用指定的目標得到一個檢測器,在每一幀上,在上一幀目標的坐標附近搜尋目標現(xiàn)坐標,使檢測器置信度最大的區(qū)域即被標記為目標,之后使用當前目標信息更新檢測器,從而得到連續(xù)的目標位置。若KCF算法得到的區(qū)域置信度過低,則采取MTCNN算法重新進行人臉定位。
對一段自制的包含單一人臉的視頻使用MTCNN和MTCNN+KCF進行人臉定位操作,并記錄數(shù)據(jù)。視頻時長91s,兩種方法花費時間對比如表1所示。
由表1可知,使用KCF算法進行人臉追蹤可以節(jié)省一半以上時間,同時也小于視頻時間,可以做到實時檢測。
2.3 人臉特征點檢測
使用MTCNN與KCF相結合后,可以得到實時穩(wěn)定的人臉圖像區(qū)域。為了能夠快速計算PERCLOS值與MAR值,在此區(qū)域上使用文獻[8]提出的ERT算法(基于回歸樹集合的人臉特征點檢測算法)得到人臉關鍵點。該算法檢測效果如圖2所示,在眼部與嘴部邊緣得到一圈特征點以表示其形狀。
3 疲勞特征檢測
日常生活中,人們可以通過觀察他人的行為,尤其是面部行為判斷其疲勞狀態(tài)。駕駛員進入疲勞狀態(tài)后,一次閉眼動作花費的時間相比正常狀態(tài)有所增加,睜眼時眼睛睜開的程度也有一定減小[9]。若進入深度疲勞狀態(tài),可能出現(xiàn)駕駛員眼睛長時間閉合的嚴重情況,并伴隨哈欠動作。據(jù)此,可以通過檢測駕駛員的閉眼時間、哈欠動作來判斷其疲勞程度。
3.1 基于 PERCLOS 的人眼疲勞檢測
PERCLOS(Percentage of Eyelid Closure over the Pupil Over Time)指的是在一段時間內眼睛閉合時間占總時間的比值,是在疲勞檢測中被廣泛使用的判斷指標。其計算公式(1)如下。
其中:tclsoe為單位時間內閉眼的時間, t為單位時間。一般認為當PERCLOS大于0.4時認為駕駛員處于疲勞狀態(tài)。
判斷當前圖像駕駛員是否閉眼可以使用EAR(眼睛縱橫比)值來判斷。EAR能夠直觀地反映人眼的睜閉狀態(tài),使用比例而非絕對距離可以避免人眼大小對判斷結果的影響,結合人臉特征點,可以快速、精準的反應人眼狀態(tài)。如圖3所示,通過人臉特征點檢測算法得到右眼周圍的6個二維坐標位置,在ERT算法中被標記為37~42,同理,左眼周圍被標記為43~48,將這些點按從小到大的順序記為p1~p6。由此可得到EAR計算公式(2)。
如圖4所示,在一定時間內,EAR值相對變化不大,表明此時駕駛員處于睜眼狀態(tài),在某一時刻 EAR 值迅速下降,然后又再次返回到之前持續(xù)穩(wěn)定的范圍,表明此時駕駛員進行了眨眼動作。
獲得眨眼信息后,計算PERCLOS值還要確定眼睛閉合的EAR閾值。[p80]指標規(guī)定眼瞼遮住瞳孔面積的80%時眼睛處于完全閉合狀態(tài)。大多數(shù)研究認為[p80]指標能夠較好地反映駕駛員疲勞程度。將[p80]指標與EAR值相結合,PERCLOS的計算公式在本系統(tǒng)中被轉化為公式(3)。
其中Fclsoe表示眨眼過程中EAR值低于閾值的幀數(shù),F(xiàn)表示眨眼過程總幀數(shù)。
3.2 MAR檢測哈欠時長
MAR即為嘴部縱橫比,仿照EAR的原理,通過對嘴部縱橫比的檢測來判斷嘴張開的大小。如圖5所示,通過人臉特征點檢測算法得到嘴部外側的8個二維坐標位置,在ERT中被標記為49、51、52、53、55、57、58、59,將這些點按從小到大順序標記為p1~p8,由此可得到MAR計算公式(4)。
考慮到當張嘴時內部特征點標注容易受牙齒、舌頭的影響出現(xiàn)偏移,選取外部特征點作為檢測對象。
選取了一名測試人員錄制了一段視頻,其中測試人員按時間順序分別進行說話、唱歌和哈欠動作,其MAR變化如圖6所示。由圖6可知,當測試人員說話或唱歌時MAR快速上下波動,打哈欠時MAR峰值明顯高于前兩者,且會維持一段時間。故可測定哈欠動作與非打哈欠動作分界的MAR閾值,當MAR高于閾值并維持幾秒時認為駕駛員打哈欠,處于疲勞狀態(tài)。
4 實驗與分析
4.1 EAR閾值確定實驗
本文使用YawDD進行眨眼檢測實驗。YawDD共包含29段正面拍攝的車載駕駛員正面短視頻,選取其中佩戴眼鏡與未佩戴眼鏡的男女視頻各一份,總計318s,眨眼109次。實驗結果如表2所示。由表2可知,取EAR閾值為0.205的眨眼檢測效果較好。
本文實驗結果與Hough變換圓檢測在YawDD上的對比結果如表3所示。
由指標可以得到眼睛閉合時EAR閾值的計算公式(5)。
取θ=0.8、EARmin=0.1及EARopen=0.205,可以計算出EARopen=0.184。即當檢測到EAR低于0.205時開始眨眼,低于0.184是認為眼睛閉合。
4.2 MAR閾值確定實驗
哈欠行為的MAR均值與說話、唱歌行為的MAR均值區(qū)別較大,可以確定一個閾值來區(qū)分哈欠行為與其他行為。此外,哈欠行為通常持續(xù)2~3s,因此低于1s的高MAR值區(qū)間應被視為檢測失誤或說話、唱歌行為的特異點。本文使用YawDD來測定哈欠行為的MAR閾值,YawDD包含不同性別、不同人種以及佩戴眼鏡的駕駛員在不同光照下模擬駕駛的視頻。選取其中8段視頻,共計哈欠26次。
為更好地描述檢測效果,引入精確率(precision) 、召回率(recall)和F1-measure來對檢測結果進行評估,其計算公式如下。
其中P表示精確率,R表示召回率,F(xiàn)1表示F1-measure。F1是對精確率和召回率的加權平均,能更好地反映整體效果,越高,說明整體效果越好。TP表示哈欠行為被檢測為哈欠的次數(shù);FP表示非哈欠行為被檢測為哈欠的次數(shù);FN表示哈欠行為被檢測為非哈欠行為的次數(shù),即漏檢次數(shù)。
實驗結果如表4所示。分析實驗數(shù)據(jù):閾值設定過[F1]高會導致部分哈欠無法被檢測到,使得漏檢次數(shù)過多;設置在0.8左右會在一次哈欠行為進行中出現(xiàn)MAR低于閾值的情況,從而導致系統(tǒng)將一次哈欠判定為兩次,誤檢次數(shù)明顯上升;設置在0.75可以獲得較高的F1值,即獲得較好的效果。
4.3 疲勞檢測
通過前文的方法,系統(tǒng)已經獲得了PERCLOS值與哈欠狀態(tài)。傳統(tǒng)方法給PERCLOS和哈欠次數(shù)一定的權值,形成一個線性公式得到疲勞值,再根據(jù)疲勞值判斷疲勞結果容易出現(xiàn)一方權重過高直接決定判斷結果的情況。本文采取特征融合的方式來綜合判斷疲勞狀態(tài),使用決策樹取代線性公式。在本文的檢測方法中,使用可隨時獲取的PERCLOS值作為優(yōu)先判斷條件,再查詢是否有哈欠行為。該判斷的決策樹如圖7所示。
本文從YawDD數(shù)據(jù)集中選取戴眼鏡與不戴眼鏡的男女駕車視頻各一份進行疲勞檢測實驗,實驗結果如表5所示。由表5可以看出本系統(tǒng)能在駕駛員進入疲勞狀態(tài)時進行預警,且對光照、性別及眼鏡遮擋有較好的魯棒性。
5 結束語
本文通過MTCNN算法檢測人臉,再通過KCF算法跟蹤人臉區(qū)域,最后通過人臉特征點檢測算法ERT得到EAR與MAR值,由此計算PERCLOS值與判斷是否哈欠,最后通過多特征融合判斷方法得到駕駛員疲勞信息。在通過實驗表明,本系統(tǒng)在YawDD數(shù)據(jù)集上對眨眼動作進行檢測的準確度達到89.91%,對哈欠動作進行檢測的[F1-measure]指標為92.31,能夠準確地在檢測到哈欠動作與PERCLOS值大于0.4的時候進行預警,且對光照、性別及眼鏡遮擋有較好的魯棒性。
參考文獻:
[1] 中華人民共和國國家統(tǒng)計局.中國統(tǒng)計年鑒.2004[M].北京:中國統(tǒng)計出版社,2004.
[2] 劉夢佳.基于卷積神經網絡的疲勞駕駛檢測系統(tǒng)設計[D].鄭州:鄭州大學,2020.
[3] Azarnoosh M,Nasrabadi A M,Mohammadi M R,et al.Investigation of mental fatigue through EEG signal processing based on nonlinear analysis:symbolic dynamics[J].Chaos,Solitons & Fractals,2011,44(12):1054-1062.
[4] 柴萌.長途客車駕駛員疲勞狀態(tài)辨識與預警[D].長春:吉林大學,2019.
[5] 朱名流,李頂根.基于人臉特征點的疲勞檢測方法研究[J].計算機應用研究,2020,37(S2):305-307.
[6] Zhang K P,Zhang Z P,Li Z F,et al.Joint face detection and alignment using multitask cascaded convolutional networks[J].IEEE Signal Processing Letters,2016,23(10):1499-1503.
[7] Henriques J F,Caseiro R,Martins P,et al.High-speed tracking with kernelized correlation filters[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2015,37(3):583-596.
[8] Kazemi V,Sullivan J.One millisecond face alignment with an ensemble of regression trees[C]//2014 IEEE Conference on Computer Vision and Pattern Recognition.June 23-28,2014,Columbus,OH,USA.IEEE,2014:1867-1874.
[9] 王迪.基于人眼狀態(tài)的疲勞檢測算法研究與應用[D].成都:電子科技大學,2020.
收稿日期:2021-10-25
作者簡介:葉華洲(1999—),男,安徽蕪湖人,碩士,主要研究方向為圖像處理。