摘 要:隨著當(dāng)今汽車行業(yè)的發(fā)展,交通事故發(fā)生率居高不下,其中疲勞駕駛是事故發(fā)生的重要原因之一,因此疲勞駕駛檢測技術(shù)的普及勢在必行。文中提出一種基于物聯(lián)網(wǎng)的多信息融合疲勞駕駛檢測算法,采用輕便嵌入式設(shè)備作為終端,集成數(shù)據(jù)采集、疲勞駕駛檢測和報警功能。使用長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)對駕駛員的面部信息和生理狀態(tài)進行多信息融合檢測,將駕駛員的眼嘴特征、頭部姿態(tài)和心率特征等多信息進行融合并同步完成疲勞駕駛檢測。相比于傳統(tǒng)疲勞駕駛檢測方法,該方法能夠有效提高檢測的準(zhǔn)確率,提升了約6~7個百分點。基于所設(shè)計的物聯(lián)網(wǎng)數(shù)據(jù)可視化平臺,將檢測結(jié)果實時上傳并保存到云端,實現(xiàn)疲勞檢測數(shù)據(jù)的實時統(tǒng)計和報警反饋,對智慧交通應(yīng)用有著積極的推廣作用。
關(guān)鍵詞:疲勞駕駛檢測;面部特征;LSTM網(wǎng)絡(luò);多信息融合;物聯(lián)網(wǎng);OneNET
中圖分類號:TP39 文獻標(biāo)識碼:A 文章編號:2095-1302(2025)07-000-04
0 引 言
近年來,隨著汽車的不斷普及,交通事故的數(shù)量也在不斷增多,其中疲勞駕駛是引起重大交通事故的主要因素之一[1]。傳統(tǒng)的疲勞駕駛檢測分為主動檢測與被動檢測,由于主動檢測容易受到駕駛員心理等主觀因素的影響,所以準(zhǔn)確率高、可靠性更佳以及不受駕駛員主觀意識影響的被動檢測方法成為了目前的主要研究方向[2]。被動檢測主要基于對車輛行為、駕駛員行為、駕駛員生理特征和面部特征的檢測來判斷駕駛員的疲勞狀態(tài),但仍存在一定的問題,如檢測時會影響正常駕駛、準(zhǔn)確率不足等。
本文采用一種基于物聯(lián)網(wǎng)的多信息融合疲勞駕駛檢測方法。該方法借助輕量級嵌入式設(shè)備收集駕駛員的實時人臉圖像以進行疲勞檢測,這種檢測方式無接觸、無入侵性,不會妨礙駕駛。同時,通過分析面部特征、頭部行為姿態(tài),以及基于視覺的心率提取分析來實現(xiàn)多信息融合,從而提升算法的準(zhǔn)確率。上述算法均集成到嵌入式設(shè)備中,便于部署。此外,通過物聯(lián)網(wǎng)系統(tǒng)將檢測信息同步至云端,進而實現(xiàn)實時遠(yuǎn)程安全監(jiān)測及警報系統(tǒng)。
1 疲勞檢測算法
本文的疲勞檢測算法流程如圖1所示。首先,利用部署在嵌入式設(shè)備上的攝像頭采集駕駛員人臉數(shù)據(jù),接著分別進行駕駛員面部特征提取、頭部行為姿態(tài)角提取以及心率提取,然后將這些數(shù)據(jù)一同送至LSTM(Long Short-Term Memory)網(wǎng)絡(luò)進行多信息融合分析,最終得出駕駛員疲勞狀態(tài)的判斷結(jié)果并上傳至物聯(lián)網(wǎng)云端。
1.1 基于Dlib的人臉特征點提取
在駕駛員面部特征檢測方面,本文基于Dlib模型進行人臉特征點提取并展開分析。此部分主要運用兩個關(guān)鍵函數(shù):Dlib.get_frontal_face_detector函數(shù)和Dlib.shape_predictor函數(shù)。其中,Dlib.get_frontal_face_detector函數(shù)是內(nèi)置的人臉檢測算法,其工作原理是先把圖像分割成多個小方塊,計算每個小方塊的HOG特征,再將這些小方塊送入級聯(lián)分類器進行分類,最終得到一組可能的人臉位置和大小。Dlib. shape-predictor是特征點檢測算法,首先對獲取的人臉圖像進行灰度化處理,再利用shape_predictor_68_face_landmarks.dat開源模型對人臉模型進行處理,經(jīng)過上述過程會得到人臉68 個特征點以及對應(yīng)的二維坐標(biāo),如圖2所示。
在獲取人臉的68個特征點坐標(biāo)之后,通過計算人眼和嘴巴的長寬比,得到眼睛和嘴巴的開合度,進而判斷眨眼次數(shù)、閉眼時長、打呵欠頻率等反映駕駛員疲勞狀態(tài)的因素。
具體而言,對于眼睛,眼部縱橫比(Ear)等于眼部上下邊界距離除以眼部左右邊界距離。人眼睜開時,Ear在某一數(shù)值上下波動;人眼閉合時,Ear會迅速降低,理論上接近零。因此認(rèn)定,當(dāng)Ear低于特定閾值時,眼睛處于閉合狀態(tài)。睜開度由大變小為進入閉眼期,由小變大則為進入睜眼期。通過計算特定時長(幀數(shù))內(nèi)進入睜閉眼期的次數(shù)和時長,并設(shè)定一個閾值,便可判斷人是否疲勞。
對于嘴巴也是同樣的道理,嘴部縱橫比(Mar)為嘴部上下邊界距離除以左右邊界距離。通過計算Mar來判斷是否張嘴以及張嘴時長,以此判斷人是否在打呵欠,并且經(jīng)過一定量的實驗排除過低的閾值,確保能夠與正常說話的嘴型區(qū)分開來。
1.2 頭部姿態(tài)角計算
在Dlib獲取到人臉特征點后,利用Head Pose Estimation 算法針對不同人臉擬合出3D人臉模型,從而得到實時頭部姿態(tài)和一定時間內(nèi)的旋轉(zhuǎn)角度,進而得出頭部旋轉(zhuǎn)角度的3個參數(shù)Yaw、Pitch和Roll,分別代表頭部上下旋轉(zhuǎn)角度、頭部左右旋轉(zhuǎn)角度和頭部正面搖晃角度。駕駛員的點頭行為可以理解為頭部圍繞x軸和z軸運動,對應(yīng)Pitch和Roll的變化[3]。一般通過對這兩個數(shù)據(jù)的監(jiān)測來判斷駕駛員是否即將打瞌睡并將其作為疲勞檢測要素。
1.3 基于視覺的心率提取
基于視覺的面部信息疲勞檢測在獲取信息方面十分便利,但為了進一步提高檢測的準(zhǔn)確度,本文選擇融合駕駛員的心率信息,從多方面檢測疲勞狀態(tài)。傳統(tǒng)的心率檢測需要駕駛員佩戴對應(yīng)的心電檢測設(shè)備,這有時會影響正常駕駛行為,故而心率檢測一般只用于模擬駕駛場景。為了解決這個問題,同時也為了將心率檢測設(shè)備集成到嵌入式設(shè)備中,文獻[4]使用了基于視覺的rPPG信號獲取心率信息,實現(xiàn)了無接觸、無侵入性的心率異變度檢測。
人體心臟跳動將血液運送至全身時,人體血管各處的血液容納量會隨著脈動規(guī)律而發(fā)生變化[4],這體現(xiàn)在人體的皮膚組織上就是規(guī)律性的細(xì)微顏色變化,基于視覺的心率提取正是基于這個原理。
在利用Dlib算法獲取人臉區(qū)域后,單獨保存臉頰皮膚的圖像,并把皮膚圖像每個像素點的像素值記錄為其三維坐標(biāo),并使用2SR(Spatial Subspace Rotation)算法計算出rPPG信號值。隨后對得到的信號進行濾波和傅里葉變換,從而得到rPPG信號的頻率并求出功率譜密度,最后得到駕駛員的心率信號。在得到心率信號之后,為了進行疲勞檢測,還需計算一定時間內(nèi)的心率變化情況,即心率異變度(HRV)[5]。通過一個一維卷積神經(jīng)網(wǎng)絡(luò)對其進行擬合,最終得到心率異變度及其對應(yīng)的疲勞結(jié)果。
1.4 基于LSTM網(wǎng)絡(luò)的多信息融合疲勞駕駛檢測方法
在傳統(tǒng)方法中,面部信息、心率和頭部姿態(tài)都可以單獨作為疲勞檢測的判斷因素,但誤判率較高,識別正確率一般為80%~82%。本文使用LSTM網(wǎng)絡(luò)模型進行多信息融合檢測,綜合分析上述信息以進一步提高準(zhǔn)確率。
LSTM網(wǎng)絡(luò)的單元結(jié)構(gòu)如圖3所示。每個LSTM單元包含一個記憶細(xì)胞(Memory Cell)以及輸入門(Input Gate)、遺忘門(Forget Gate)和輸出門(Output Gate),這三個門結(jié)構(gòu)[6]分別決定記憶細(xì)胞中哪些信息被儲存、丟棄和輸出,從而使LSTM單元能夠決定何時保留信息、何時更新信息以及何時輸出信息。圖中,C(t)為當(dāng)前時刻的輸出,即當(dāng)前的記憶細(xì)胞;h(t)為隱藏層參數(shù),用于各個門運算和記憶更新。LSTM與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的不同之處在于,它能夠讀取先前時刻的信息C(t-1)與當(dāng)前時刻信息并一起處理。因此,LSTM可以很好地處理時序信息[7],所以可用于疲勞狀態(tài)檢測。同時,其三個門控系統(tǒng)能夠合理地決定歷史信息是否消失以及何時消失,從而有效緩解梯度消失和梯度爆炸的情況。
基于LSTM網(wǎng)絡(luò)可以構(gòu)建一個多信息融合疲勞檢測模型,其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
首先,在處理輸入模型時,面部特征、心率特征和姿態(tài)特征在總體檢測中相輔相成,但它們的計算方式和處理方式各不相同。針對這類異構(gòu)信息,需要先進行歸一化。具體來說,先將這些信息構(gòu)建為五維的特征信息,見表1;隨后根據(jù)這些特征值在疲勞駕駛檢測中的準(zhǔn)確率和漏報率賦予不同權(quán)重,并融合送入BN層進行歸一化輸入。
在LSTM層的設(shè)置方面,若過多增加LSTM網(wǎng)絡(luò)的層數(shù),可能導(dǎo)致算力大幅增加,還可能引發(fā)梯度消失問題,考慮到系統(tǒng)最終要部署至輕量級嵌入式設(shè)備上,最終選用兩層的LSTM,其中每層LSTM網(wǎng)絡(luò)由128個單元構(gòu)成。這一設(shè)置既能保證對大部分時序性信息進行處理,又能解決算力和梯度消失問題。
相比于基于單獨某個特征值的疲勞檢測算法,基于LSTM網(wǎng)絡(luò)的多信息融合疲勞檢測算法的檢測效果有明顯提升,具體見表2:正確識別率提升至90.24%,誤報率降低至8.52%,總體準(zhǔn)確率相較于兩個單一特征檢測算法有6~7個百分點的提升。
2 系統(tǒng)框架與實現(xiàn)
本文實現(xiàn)了一個基于OneNET物聯(lián)網(wǎng)平臺的多信息融合疲勞駕駛檢測系統(tǒng)。系統(tǒng)總體架構(gòu)如圖5所示。該系統(tǒng)包括三個功能模塊:嵌入式處理系統(tǒng)、OneNET物聯(lián)網(wǎng)信息管理模塊、疲勞算法檢測模塊。嵌入式處理器系統(tǒng)可實現(xiàn)人臉信息采集、駕駛員定位、疲勞預(yù)警功能。疲勞算法檢測模塊主要負(fù)責(zé)對采集的數(shù)據(jù)流進行分析和計算,檢測出駕駛員的疲勞特征,輸出駕駛員各方面的特征數(shù)據(jù)和圖像數(shù)據(jù)。OneNET物聯(lián)網(wǎng)平臺作為信息存儲平臺,能記錄疲勞駕駛的相關(guān)信息,實現(xiàn)可視化監(jiān)控?;贠neNET物聯(lián)網(wǎng)的數(shù)據(jù)傳輸和存儲能力,該平臺可以作為疲勞數(shù)據(jù)的中轉(zhuǎn)站,實現(xiàn)疲勞數(shù)據(jù)的可視化展示和共享。
2.1 物聯(lián)網(wǎng)平臺OneNET
在物聯(lián)網(wǎng)平臺的選擇上,本文選擇中國移動OneNET物聯(lián)網(wǎng)平臺,其能實現(xiàn)設(shè)備連接、設(shè)備管理、數(shù)據(jù)收發(fā)、數(shù)據(jù)存儲等功能,并且支持多種傳輸協(xié)議[8]。在物聯(lián)網(wǎng)應(yīng)用方面,OneNET物聯(lián)網(wǎng)平臺可以很方便地對云端設(shè)備進行統(tǒng)一管理。本文采用輕量、開放和易實現(xiàn)的MQTT協(xié)議,可使硬件性能低下的遠(yuǎn)程設(shè)備在網(wǎng)絡(luò)狀況糟糕的情況下仍能發(fā)布和訂閱消息。本系統(tǒng)將OneNET物聯(lián)網(wǎng)平臺作為信息存儲平臺,用于記錄疲勞駕駛的相關(guān)信息,從而實現(xiàn)可視化監(jiān)控。疲勞數(shù)據(jù)可視化總界面如圖6所示。疲勞數(shù)據(jù)可視化總界面實現(xiàn)了對多駕駛員狀態(tài)的監(jiān)控,能夠同時監(jiān)控車輛在線狀態(tài)、駕駛員疲勞狀況和車輛位置。
本系統(tǒng)中的物聯(lián)網(wǎng)云平臺相當(dāng)于MQTT協(xié)議中的消息代理,是數(shù)據(jù)傳輸?shù)闹虚g代理服務(wù)器,主要負(fù)責(zé)消息轉(zhuǎn)發(fā)。在該系統(tǒng)中,每個檢測終端既是消息發(fā)布者,也是消息訂閱者。作為消息發(fā)布者,每個檢測終端采集數(shù)據(jù)并將其輸入到算法模型中,隨后將算法的運行結(jié)果以消息形式發(fā)布出去,再由物聯(lián)網(wǎng)云平臺進行消息轉(zhuǎn)發(fā)。作為消息訂閱者,檢測終端會接收其他檢測終端發(fā)布的消息,從而實現(xiàn)多終端消息共享。
2.2 嵌入式檢測終端
本系統(tǒng)選用樹莓派作為便攜的嵌入式處理設(shè)備。樹莓派具有強大的續(xù)航能力,其能夠輕松解碼高分辨率視頻,而且官方還提供了兼容性很高的配套系統(tǒng),可支持多種計算機語言[9]。樹莓派搭載了攝像頭模塊、GPS模塊和蜂鳴器模塊,它們分別負(fù)責(zé)圖像數(shù)據(jù)采集、位置數(shù)據(jù)采集和疲勞警報工作。其中,攝像頭模塊采用OpenCV進行圖像獲取和預(yù)處理分幀,在將其送至疲勞檢測模型的同時利用MQTT協(xié)議和Request函數(shù)將圖片信息上傳至OneNET物聯(lián)網(wǎng)平臺。與此同時,疲勞警報模塊實時接收OneNET平臺下發(fā)的疲勞警報并使用蜂鳴器向駕駛員發(fā)出警告。疲勞檢測結(jié)果示意圖如圖7所示。
3 結(jié) 語
本文采用樹莓派為終端搭建了一套基于物聯(lián)網(wǎng)的疲勞駕駛檢測系統(tǒng)。在疲勞檢測方面,系統(tǒng)采用多種無侵入性的特征檢測融合判斷方式,不會影響駕駛員正常駕駛,可以很好地部署在車內(nèi)并應(yīng)用于實際駕駛場景。為了解決檢測中存在的受光照、遮擋影響較大的問題,采用了多信息融合的方式,多源信息的融合可以整合不同特征檢測的優(yōu)勢[10],各取其長以提高檢測的精確性,這將會成為未來疲勞駕駛檢測的重點發(fā)展方向。
注:本文通訊作者為蔣翠玲。
參考文獻
[1] 韓天園,田順,呂凱光,等. 基于文本挖掘的重特大交通事故成因網(wǎng)絡(luò)分析[J]. 中國安全科學(xué)學(xué)報,2021,31(9):150-156.
[2] 張瑞,朱天軍,鄒志亮,等.駕駛員疲勞駕駛檢測方法研究綜述[J].計算機工程與應(yīng)用,2022,58(21):53-66.
[3] 王暢,李雷孝,楊艷艷. 基于面部多特征融合的疲勞駕駛檢測綜述[J]. 計算機工程,2023,49(11):1-12.
[4] 李韜. 基于心率和眼瞼特征的多模態(tài)融合疲勞駕駛檢測方法研究[D]. 廣州:華南理工大學(xué),2021.
[5] 張金錢. 多信息融合疲勞駕駛狀態(tài)檢測系統(tǒng)[D]. 貴陽:貴州大學(xué),2021.
[6] HOCHREITER S, SCHMIDHUBER J. Long short-term memory [J]. Neural computation, 1997, 9(8): 1735-1780.
[7] 張文影. 基于面部和心率特征融合的駕駛員疲勞狀態(tài)識別方法研究[D]. 廣州:華南理工大學(xué), 2020.
[8] 劉福祥,沈甦,鄧世英. 基于OneNET的數(shù)據(jù)采集監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)[J]. 電子制作,2022,30(17):47-49.
[9] 武昆亮. 基于面部特征與頭部姿態(tài)的疲勞駕駛檢測[D]. 上海:東華大學(xué),2020.
[10] 楊巨成,魏峰,林亮,等. 駕駛員疲勞駕駛檢測研究綜述[J]. 山東大學(xué)學(xué)報(工學(xué)版),2024,54(2):1-12.
收稿日期:2024-05-26 修回日期:2024-06-28
基金項目:華東理工大學(xué)——基于物聯(lián)網(wǎng)平臺的多信息融合疲勞駕駛檢測(S202310251128);上海市一流本科建設(shè)項目;華東理工大學(xué)——華為智能基座金課建設(shè)項目