








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