?

基于深度學習的駕駛員分心駕駛行為預警算法*

2024-01-09 05:08歐陽壯朱天軍
機電工程技術 2023年12期
關鍵詞:人臉駕駛員卷積

歐陽壯,朱天軍,文 浩

(1.廣東省肇慶市質量計量監督檢測所,廣東肇慶 526070;2.肇慶學院機械和汽車工程學院,廣東肇慶 526061)

0 引言

據國家統計局官方數據公布,2021 年全國道路交通事故發生249 345 起,造成61 513 人死亡、245 143 人受傷,直接財產損失152.5億元,所以汽車駕駛安全問題非常值得人們重視。其中,駕駛員的駕駛行為不規范成為汽車安全問題的主要原因之一,尤其是駕駛疲勞和分心駕駛行為的問題極為突出[1-9]。因此,利用深度學習技術手段研究駕駛員分心駕駛行為,做出一套可實時檢測駕駛員分心行為并發出預警信號的安全系統對交通安全的改善具有極大的現實意義。

近年來,隨著深度學習技術的快速發展,基于深度學習的駕駛員分心駕駛行為預警系統也得到了廣泛關注。在國外,歐洲慕尼黑工業大學的研究人員進行的一項研究提出了一種基于卷積神經網絡的駕駛員分心檢測,該檢測方案依賴于視覺線索,例如頭部方向和凝視方向[10]。華威大學的研究人員進行的另一項研究使用卷積神經網絡和長短期記憶(LSTM)的組合來構建可以實時運行的駕駛員分心警告系統[11]。美國猶他大學的研究人員提出了一種基于視頻的系統,用于基于LSTM 網絡的檢測駕駛員分心事件[12]。內布拉斯加大學林肯分校的研究人員進行的另一項研究使用基于深度學習的方法,根據面部表情檢測和分類駕駛員分心[13]。

在國內,基于人體腦電波信號檢測方面,北京航空航天大學研究團隊設計了一種基于EEG 信號的駕駛員分心行為預警系統,通過EEG 頭戴式設備采集駕駛員的腦電波信號,使用深度學習算法分析數據并實現分心狀態預測[14]。西南交通大學等研究者提出了一種基于深度學習的行為識別框架,該框架通過深度卷積神經網絡提取駕駛員視頻資料的空間特點,并使用Hadamard 矩陣將層級卷積特征轉換成低維向量。隨后,將該信息輸入到支持向量機(SVM)分類器中,以分類判斷駕駛員的分心駕駛行為[15]。

綜上所述,基于深度學習的駕駛員分心預警系統具有提高道路安全性的潛力。本研究以深度學習的駕駛行為預測模型為基礎,以早期發現和預測駕駛員干擾行為,提升行車安全水平為目標。本研究的主要內容包括駕駛員疲勞檢測與駕駛員分心駕駛行為檢測。在疲勞檢測方面,利用Dlib 來進行臉部關鍵位點的檢測,對眼睛的開閉區域和嘴唇開合程度的大小進行計算,從而對是否出現了閉眼動作或打哈欠的行為進行判斷,并利用Perclos模型來計算出相應的疲勞程度。在分心駕駛行為檢測方面,采用卷積神經網絡YOLOv5 來檢測駕駛員是否存在玩手機、抽煙、喝水等分心動作。檢測完成后,通過程序邏輯對駕駛員分心駕駛行為發出預警,以規范駕駛員行為,達到安全駕駛的目的。試驗結果表明:該算法在駕駛員疲勞和分心行為檢測上具有極高的準確性,并在駕駛員規范駕駛行為上具有良好的應用性。

1 分心駕駛行為預警算法

分心駕駛行為指駕駛員在駕駛汽車行駛過程中因為各種原因,如接疲勞駕駛、接打電話、喝水、抽煙等分散其注意力,從而導致其無法集中注意力駕駛,增加了交通安全事故的風險。本研究提出的預警算法是運用深度學習中的卷積神經網絡算法,對駕駛員的面部、身體動作等綜合信息進行檢測、提取和分析,可以實現對駕駛員分心狀態的實時監測和識別,從而在駕駛員分心狀態下發出警報,提醒駕駛員要注意行車安全。該算法能夠有效地降低分心駕駛帶來的交通事故風險,提高道路行車安全性。分心駕駛行為預警算法框架如圖1所示。

圖1 分心駕駛行為預警算法框架

如圖1 所示:在駕駛員分心駕駛行為預警的總體框架下,包括疲勞駕駛行為和分心駕駛行為兩個模塊。疲勞駕駛行為檢測模塊主要是針對于駕駛人員打哈欠和眨眼兩個動作進行駕駛員疲勞程度檢測。分心駕駛行為檢測模塊,重點檢測喝水行為、抽煙行為、玩手機行為。從這3個動作入手去檢測駕駛過程的分心駕駛行為。

1.1 疲勞駕駛行為檢測

在本算法中,主要通過對駕駛員的眼睛和嘴巴開閉程度來評估駕駛員疲勞狀態,它是通過獲得眼睛和嘴巴的關鍵點和形狀來實現的。本算法應用中,Dlib 主要用于人臉檢測和人臉關鍵點檢測,對眼睛的開閉區域和嘴唇開合程度的大小進行計算,從而對是否出現了閉眼動作或打哈欠的行為進行判斷,并利用Perclos 模型來計算出相應的疲勞程度[16-19]。

后期Dlib的訓練過程涉及到以下步驟:

(1)數據采集:需要收集足夠數量的人臉數據集,包括分心駕駛行為和正常駕駛行為的圖像數據。這些數據應該具有豐富的變化,例如不同角度、光照和表情等。

(2)數據先處理:采集到的人臉面部圖像進行先處理,包含圖像加強、歸一化和裁剪等,以減少數據中的噪聲和冗余信息。

(3)特征提?。豪肈lib 提供的人臉檢測和人臉關鍵點檢測算法,提取出每個人臉圖像中的特征點集合,例如眼睛、嘴唇、眉毛等。

(4)數據標注:針對采集到的每張圖像,標注對應的分心或正常駕駛行為標簽,以供訓練時進行監督學習。

(5)神經網絡訓練:基于Dlib提供的深度學習框架,構建適合該任務的神經網絡模型,并利用標注好的數據集,對該模型進行訓練和優化,以提升其分類準確率和泛化能力。

(6)神經網絡測試:當訓練好的神經網絡達到一定準確度之后,使用測試集進行測試,評估其在未見過的數據上的分類準確率,來驗證在未知數據上檢測模型的泛化能力。

(7)系統部署:當訓練好的模型經過評估驗證后,將其部署到實際系統中,以實現分心駕駛的預警功能。Dlib 主要用于人臉檢測和關鍵點檢測,并配合深度學習進行分類任務的訓練和預測,在完成數據預處理、特征提取、數據標注等一系列前置工作后,利用Dlib進行監督學習訓練,構造一個針對駕駛疲勞程度的檢測應用模型。

1.2 分心駕駛行為檢測

YOLOv5 是一種用于目標識別和定位的卷積神經網絡(CNN),它結合了CNN、Transfer Learning 以及深度強化學習等多種技術,使得它能夠處理圖像中不同大小和不同種類的對象[20]。本算法采用卷積神經網絡YOLOv5來檢測駕駛員是否存在玩手機、抽煙、喝水等分心動作。

YOLOv5的網絡結構可以分為4個部分。

(1)輸入端:在目標檢測算法中,錨框(Anchor Box)是一種用于定義檢測框(Detection Box)位置和大小的參數。為了適應不同的圖片大小,YOLOv5 實現了自適應圖片縮放的功能,能夠在不改變檢測結果的情況下自動調整輸入圖片的尺寸。這個功能也可以在代碼中進行控制,通過修改train.py 中的相應參數來開啟或關閉。

(2)Backbone 架構:在YOLOv5 中,圖片輸入到Backbone 架構前的一個處理模塊稱為Focus 模塊[21]。每隔著一個特征點處截取一個像素點,可以得到4 張互補相似的圖像,將這4 張圖片進行拼接,就形成了一個新的特征圖。

(3)Neck結構:YOLOv5現在的Neck采用FPN+PAN的結構[22]。

(4)輸出端:YOLOv5 的輸出端是一個三層級聯的檢測頭(Detection Head),它可以同時預測位于不同特征圖層級上的多個物體。檢測頭的輸出由包含物體的錨框(Anchor)進行解碼[23]。

每個錨框會和真實物體之間進行匹配得分,表示錨框和真實物體之間的相似程度,用于篩選出最適合的錨框。錨框和真實物體的匹配度所得分數分別為86.49、84.0、69.7,如圖2所示。

圖2 錨框和真實物體的匹配度得分

駕駛員分心駕駛行為檢測過程如下。

(1)數據準備

首先需要根據監測任務確定數據來源和數據類型,并進行數據的收集和預處理,例如針對視頻監測任務,可以使用攝像頭捕獲圖像或視頻,使用圖像處理技術進行預處理,例如裁剪、縮放、色彩空間轉換等;同時需要標注或分類數據集,例如標記出圖像中是否出現了分心物體或者駕駛員是否閉眼等行為。

(2)根據任務特點,可以選擇CNN 或者Transformer等深度學習模型進行建模。以視頻監測為例,常用的CNN 模型包括VGG、Inception、ResNet 等,可以使用其中的預訓練模型或者自行訓練模型。為了提高模型的準確性,要將這些數據分成不同的類別,如80%用于訓練,20%用于檢驗。此外還需要進行數據增強,例如隨機裁剪、翻轉、旋轉等操作,從而增加數據集的多樣性,減少模型的過擬合現象。

(3)預測與報警

完成模型的訓練和驗證之后,就可以將模型應用到實際監測場景中。在應用過程中,可通過Dlib 等庫進行人臉檢測和關鍵點定位,對每一幀進行數據處理、預測和報警。比如,對于視線監測,可以使用訓練好的CNN模型,輸入攝像頭采集到的圖像,輸出眼睛狀態(是否閉眼)的概率或者是否存在喝水、使用手機等分心行為。然后根據設定的閾值判斷當前駕駛員是否存在分心行為,如果存在,就及時發出警報,提醒駕駛員注意。

(4)多尺度融合

多尺度融合是對特征金字塔方法的補充,由于特征金字塔方法在多尺度下依然存在分辨率不高的問題,因此引入多尺度融合模塊進行進一步的特征處理。多尺度融合模塊可以在檢測層和分類層之間設計,引入不同層次的特征,并提高分辨率,例如可以使用FPN 或者PANet中的lateralconnections和top-downpathways等結構實現。

2 分心駕駛行為預警算法試驗驗證

2.1 使用手機行為檢測

根據前期檢測到的人臉坐標和大小,在面部兩側和下方區域進行切割,作為手持電話行為的檢測區域,再進行特征提取和行為分類檢測圖。檢測區域是指用來判別司機手持電話的影像區域。這個時候駕駛人員注意力集中在手機上,對駕駛的專注度有很大的影響,此時為認定駕駛分心行為的關鍵場景之一。

手持手機的檢測區域如圖3 所示,本算法不僅可以實時檢測駕駛員疲勞情況,如當前駕駛員是否清醒,眨眼次數和哈欠次數等信息,而且可以準確捕捉到駕駛員使用手機的分心行為,并實時警告駕駛員分心行為信息。

圖3 使用手機行為檢測

2.2 喝水行為檢測

按照前期檢測到的人臉坐標位置點和尺寸大小,喝水行為待測區精確定位為人臉面部的左右側部區域,將左右區域圖像定位喝水行為待測區域,提取待測區域特征信息進行行為判別。

喝水的水杯手勢區域主要會與嘴的左右下角進行重合,會遮住嘴巴的顯示,只是嘴型有程序模擬生成,此時主要面向喝水動作識別,遮住嘴巴為檢測允許的環境,喝水行為特征圖像生成如圖4 所示。當前駕駛員處于清醒狀態,并顯示眨眼次數和哈欠次數等信息,而且可以準確捕捉到駕駛員駕駛過程中喝水(drink)分心行為時,則實時警告駕駛員分心行為信息。

圖4 用保溫杯喝水行為檢測

2.3 吸煙行為檢測

吸煙動作也是駕駛員分心動作之一,由于抽煙過程需要呼吸換氧氣,抽煙過程手持香煙是不可避免的,一般抽煙時駕駛員會分出一只手來手持香煙,這樣對于車況的掌握控制相當于少了一只手臂。

經此可以認定監測過程中通過攝像頭檢測待測區域時,該待測區域一般會位于人臉面部區域位置的左右兩端。檢測結果如圖5~6 所示。圖5 識別結果顯示,駕駛員處于清醒狀態,同時可以準確捕捉到駕駛員用手普通抽煙動作的分心行為,并實時警告駕駛員分心行為信息。圖6 識別結果顯示,駕駛員已經處于疲勞狀態,同時也準確捕捉到駕駛員嘴叼式抽煙動作的分心行為,系統實時警告駕駛員分心行為信息。

圖6 嘴刁式抽煙動作檢測

2.4 綜合檢測

為了驗證本算法的全面性和抗干擾性,進行一種分心駕駛行為綜合檢測試驗,即進行檢測手機、抽煙、喝水、眨眼、打哈欠嘴形等多元的綜合檢測試驗,以驗證檢測模型的全面性以及檢測過程中各個檢測模塊各不干擾。檢測結果如圖7 所示,結果表明本算法可以綜合識別出駕駛員當前處于清醒狀態,并存在使用手機、抽煙和喝水多元分心駕駛行為,同時能夠在系統里實時警示駕駛員當前存在分心駕駛。綜合檢測試驗證明,本算法可以實時全面監控駕駛員疲勞狀態和分心駕駛行為,準確性較高,抗干擾性強。

圖7 綜合檢測

3 結束語

本文設計了一種基于深度學習的駕駛員分心駕駛行為預警系統,結合了疲勞檢測和分心行為檢測2種方法,實現了對駕駛員專注度全方位監控。

(1)采用YOLOv5 進行駕駛員分心行為檢測,能夠很好地檢測駕駛員是否在玩手機、吸煙或者喝水等分心行為,從而實現對駕駛員專注性的全面監測。

(2)采用Dlib 和Perclos 模型是比較成熟和準確的技術手段,能夠很好地實現駕駛員疲勞檢測。

(3)該算法結合了駕駛員疲勞程度檢測和分心行為檢測2 個模塊,能夠實現全方位的駕駛員專注性監測。通過發出預警來規范駕駛員行為,從而保障交通行車的安全。該研究可以為汽車主動安全性的普及提供技術支持,有效提升汽車的行駛安全性。

猜你喜歡
人臉駕駛員卷積
基于高速公路的駕駛員換道意圖識別
駕駛員安全帶識別方法綜述
基于3D-Winograd的快速卷積算法設計及FPGA實現
有特點的人臉
從濾波器理解卷積
三國漫——人臉解鎖
基于傅里葉域卷積表示的目標跟蹤算法
起步前環顧四周是車輛駕駛員的義務
馬面部與人臉相似度驚人
長得象人臉的十種動物
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合