歐陽壯,朱天軍,文 浩
(1.廣東省肇慶市質(zhì)量計量監(jiān)督檢測所,廣東肇慶 526070;2.肇慶學院機械和汽車工程學院,廣東肇慶 526061)
據(jù)國家統(tǒng)計局官方數(shù)據(jù)公布,2021 年全國道路交通事故發(fā)生249 345 起,造成61 513 人死亡、245 143 人受傷,直接財產(chǎn)損失152.5億元,所以汽車駕駛安全問題非常值得人們重視。其中,駕駛員的駕駛行為不規(guī)范成為汽車安全問題的主要原因之一,尤其是駕駛疲勞和分心駕駛行為的問題極為突出[1-9]。因此,利用深度學習技術(shù)手段研究駕駛員分心駕駛行為,做出一套可實時檢測駕駛員分心行為并發(fā)出預警信號的安全系統(tǒng)對交通安全的改善具有極大的現(xiàn)實意義。
近年來,隨著深度學習技術(shù)的快速發(fā)展,基于深度學習的駕駛員分心駕駛行為預警系統(tǒng)也得到了廣泛關(guān)注。在國外,歐洲慕尼黑工業(yè)大學的研究人員進行的一項研究提出了一種基于卷積神經(jīng)網(wǎng)絡的駕駛員分心檢測,該檢測方案依賴于視覺線索,例如頭部方向和凝視方向[10]。華威大學的研究人員進行的另一項研究使用卷積神經(jīng)網(wǎng)絡和長短期記憶(LSTM)的組合來構(gòu)建可以實時運行的駕駛員分心警告系統(tǒng)[11]。美國猶他大學的研究人員提出了一種基于視頻的系統(tǒng),用于基于LSTM 網(wǎng)絡的檢測駕駛員分心事件[12]。內(nèi)布拉斯加大學林肯分校的研究人員進行的另一項研究使用基于深度學習的方法,根據(jù)面部表情檢測和分類駕駛員分心[13]。
在國內(nèi),基于人體腦電波信號檢測方面,北京航空航天大學研究團隊設計了一種基于EEG 信號的駕駛員分心行為預警系統(tǒng),通過EEG 頭戴式設備采集駕駛員的腦電波信號,使用深度學習算法分析數(shù)據(jù)并實現(xiàn)分心狀態(tài)預測[14]。西南交通大學等研究者提出了一種基于深度學習的行為識別框架,該框架通過深度卷積神經(jīng)網(wǎng)絡提取駕駛員視頻資料的空間特點,并使用Hadamard 矩陣將層級卷積特征轉(zhuǎn)換成低維向量。隨后,將該信息輸入到支持向量機(SVM)分類器中,以分類判斷駕駛員的分心駕駛行為[15]。
綜上所述,基于深度學習的駕駛員分心預警系統(tǒng)具有提高道路安全性的潛力。本研究以深度學習的駕駛行為預測模型為基礎(chǔ),以早期發(fā)現(xiàn)和預測駕駛員干擾行為,提升行車安全水平為目標。本研究的主要內(nèi)容包括駕駛員疲勞檢測與駕駛員分心駕駛行為檢測。在疲勞檢測方面,利用Dlib 來進行臉部關(guān)鍵位點的檢測,對眼睛的開閉區(qū)域和嘴唇開合程度的大小進行計算,從而對是否出現(xiàn)了閉眼動作或打哈欠的行為進行判斷,并利用Perclos模型來計算出相應的疲勞程度。在分心駕駛行為檢測方面,采用卷積神經(jīng)網(wǎng)絡YOLOv5 來檢測駕駛員是否存在玩手機、抽煙、喝水等分心動作。檢測完成后,通過程序邏輯對駕駛員分心駕駛行為發(fā)出預警,以規(guī)范駕駛員行為,達到安全駕駛的目的。試驗結(jié)果表明:該算法在駕駛員疲勞和分心行為檢測上具有極高的準確性,并在駕駛員規(guī)范駕駛行為上具有良好的應用性。
分心駕駛行為指駕駛員在駕駛汽車行駛過程中因為各種原因,如接疲勞駕駛、接打電話、喝水、抽煙等分散其注意力,從而導致其無法集中注意力駕駛,增加了交通安全事故的風險。本研究提出的預警算法是運用深度學習中的卷積神經(jīng)網(wǎng)絡算法,對駕駛員的面部、身體動作等綜合信息進行檢測、提取和分析,可以實現(xiàn)對駕駛員分心狀態(tài)的實時監(jiān)測和識別,從而在駕駛員分心狀態(tài)下發(fā)出警報,提醒駕駛員要注意行車安全。該算法能夠有效地降低分心駕駛帶來的交通事故風險,提高道路行車安全性。分心駕駛行為預警算法框架如圖1所示。
圖1 分心駕駛行為預警算法框架
如圖1 所示:在駕駛員分心駕駛行為預警的總體框架下,包括疲勞駕駛行為和分心駕駛行為兩個模塊。疲勞駕駛行為檢測模塊主要是針對于駕駛?cè)藛T打哈欠和眨眼兩個動作進行駕駛員疲勞程度檢測。分心駕駛行為檢測模塊,重點檢測喝水行為、抽煙行為、玩手機行為。從這3個動作入手去檢測駕駛過程的分心駕駛行為。
在本算法中,主要通過對駕駛員的眼睛和嘴巴開閉程度來評估駕駛員疲勞狀態(tài),它是通過獲得眼睛和嘴巴的關(guān)鍵點和形狀來實現(xiàn)的。本算法應用中,Dlib 主要用于人臉檢測和人臉關(guān)鍵點檢測,對眼睛的開閉區(qū)域和嘴唇開合程度的大小進行計算,從而對是否出現(xiàn)了閉眼動作或打哈欠的行為進行判斷,并利用Perclos 模型來計算出相應的疲勞程度[16-19]。
后期Dlib的訓練過程涉及到以下步驟:
(1)數(shù)據(jù)采集:需要收集足夠數(shù)量的人臉數(shù)據(jù)集,包括分心駕駛行為和正常駕駛行為的圖像數(shù)據(jù)。這些數(shù)據(jù)應該具有豐富的變化,例如不同角度、光照和表情等。
(2)數(shù)據(jù)先處理:采集到的人臉面部圖像進行先處理,包含圖像加強、歸一化和裁剪等,以減少數(shù)據(jù)中的噪聲和冗余信息。
(3)特征提?。豪肈lib 提供的人臉檢測和人臉關(guān)鍵點檢測算法,提取出每個人臉圖像中的特征點集合,例如眼睛、嘴唇、眉毛等。
(4)數(shù)據(jù)標注:針對采集到的每張圖像,標注對應的分心或正常駕駛行為標簽,以供訓練時進行監(jiān)督學習。
(5)神經(jīng)網(wǎng)絡訓練:基于Dlib提供的深度學習框架,構(gòu)建適合該任務的神經(jīng)網(wǎng)絡模型,并利用標注好的數(shù)據(jù)集,對該模型進行訓練和優(yōu)化,以提升其分類準確率和泛化能力。
(6)神經(jīng)網(wǎng)絡測試:當訓練好的神經(jīng)網(wǎng)絡達到一定準確度之后,使用測試集進行測試,評估其在未見過的數(shù)據(jù)上的分類準確率,來驗證在未知數(shù)據(jù)上檢測模型的泛化能力。
(7)系統(tǒng)部署:當訓練好的模型經(jīng)過評估驗證后,將其部署到實際系統(tǒng)中,以實現(xiàn)分心駕駛的預警功能。Dlib 主要用于人臉檢測和關(guān)鍵點檢測,并配合深度學習進行分類任務的訓練和預測,在完成數(shù)據(jù)預處理、特征提取、數(shù)據(jù)標注等一系列前置工作后,利用Dlib進行監(jiān)督學習訓練,構(gòu)造一個針對駕駛疲勞程度的檢測應用模型。
YOLOv5 是一種用于目標識別和定位的卷積神經(jīng)網(wǎng)絡(CNN),它結(jié)合了CNN、Transfer Learning 以及深度強化學習等多種技術(shù),使得它能夠處理圖像中不同大小和不同種類的對象[20]。本算法采用卷積神經(jīng)網(wǎng)絡YOLOv5來檢測駕駛員是否存在玩手機、抽煙、喝水等分心動作。
YOLOv5的網(wǎng)絡結(jié)構(gòu)可以分為4個部分。
(1)輸入端:在目標檢測算法中,錨框(Anchor Box)是一種用于定義檢測框(Detection Box)位置和大小的參數(shù)。為了適應不同的圖片大小,YOLOv5 實現(xiàn)了自適應圖片縮放的功能,能夠在不改變檢測結(jié)果的情況下自動調(diào)整輸入圖片的尺寸。這個功能也可以在代碼中進行控制,通過修改train.py 中的相應參數(shù)來開啟或關(guān)閉。
(2)Backbone 架構(gòu):在YOLOv5 中,圖片輸入到Backbone 架構(gòu)前的一個處理模塊稱為Focus 模塊[21]。每隔著一個特征點處截取一個像素點,可以得到4 張互補相似的圖像,將這4 張圖片進行拼接,就形成了一個新的特征圖。
(3)Neck結(jié)構(gòu):YOLOv5現(xiàn)在的Neck采用FPN+PAN的結(jié)構(gòu)[22]。
(4)輸出端:YOLOv5 的輸出端是一個三層級聯(lián)的檢測頭(Detection Head),它可以同時預測位于不同特征圖層級上的多個物體。檢測頭的輸出由包含物體的錨框(Anchor)進行解碼[23]。
每個錨框會和真實物體之間進行匹配得分,表示錨框和真實物體之間的相似程度,用于篩選出最適合的錨框。錨框和真實物體的匹配度所得分數(shù)分別為86.49、84.0、69.7,如圖2所示。
圖2 錨框和真實物體的匹配度得分
駕駛員分心駕駛行為檢測過程如下。
(1)數(shù)據(jù)準備
首先需要根據(jù)監(jiān)測任務確定數(shù)據(jù)來源和數(shù)據(jù)類型,并進行數(shù)據(jù)的收集和預處理,例如針對視頻監(jiān)測任務,可以使用攝像頭捕獲圖像或視頻,使用圖像處理技術(shù)進行預處理,例如裁剪、縮放、色彩空間轉(zhuǎn)換等;同時需要標注或分類數(shù)據(jù)集,例如標記出圖像中是否出現(xiàn)了分心物體或者駕駛員是否閉眼等行為。
(2)根據(jù)任務特點,可以選擇CNN 或者Transformer等深度學習模型進行建模。以視頻監(jiān)測為例,常用的CNN 模型包括VGG、Inception、ResNet 等,可以使用其中的預訓練模型或者自行訓練模型。為了提高模型的準確性,要將這些數(shù)據(jù)分成不同的類別,如80%用于訓練,20%用于檢驗。此外還需要進行數(shù)據(jù)增強,例如隨機裁剪、翻轉(zhuǎn)、旋轉(zhuǎn)等操作,從而增加數(shù)據(jù)集的多樣性,減少模型的過擬合現(xiàn)象。
(3)預測與報警
完成模型的訓練和驗證之后,就可以將模型應用到實際監(jiān)測場景中。在應用過程中,可通過Dlib 等庫進行人臉檢測和關(guān)鍵點定位,對每一幀進行數(shù)據(jù)處理、預測和報警。比如,對于視線監(jiān)測,可以使用訓練好的CNN模型,輸入攝像頭采集到的圖像,輸出眼睛狀態(tài)(是否閉眼)的概率或者是否存在喝水、使用手機等分心行為。然后根據(jù)設定的閾值判斷當前駕駛員是否存在分心行為,如果存在,就及時發(fā)出警報,提醒駕駛員注意。
(4)多尺度融合
多尺度融合是對特征金字塔方法的補充,由于特征金字塔方法在多尺度下依然存在分辨率不高的問題,因此引入多尺度融合模塊進行進一步的特征處理。多尺度融合模塊可以在檢測層和分類層之間設計,引入不同層次的特征,并提高分辨率,例如可以使用FPN 或者PANet中的lateralconnections和top-downpathways等結(jié)構(gòu)實現(xiàn)。
根據(jù)前期檢測到的人臉坐標和大小,在面部兩側(cè)和下方區(qū)域進行切割,作為手持電話行為的檢測區(qū)域,再進行特征提取和行為分類檢測圖。檢測區(qū)域是指用來判別司機手持電話的影像區(qū)域。這個時候駕駛?cè)藛T注意力集中在手機上,對駕駛的專注度有很大的影響,此時為認定駕駛分心行為的關(guān)鍵場景之一。
手持手機的檢測區(qū)域如圖3 所示,本算法不僅可以實時檢測駕駛員疲勞情況,如當前駕駛員是否清醒,眨眼次數(shù)和哈欠次數(shù)等信息,而且可以準確捕捉到駕駛員使用手機的分心行為,并實時警告駕駛員分心行為信息。
圖3 使用手機行為檢測
按照前期檢測到的人臉坐標位置點和尺寸大小,喝水行為待測區(qū)精確定位為人臉面部的左右側(cè)部區(qū)域,將左右區(qū)域圖像定位喝水行為待測區(qū)域,提取待測區(qū)域特征信息進行行為判別。
喝水的水杯手勢區(qū)域主要會與嘴的左右下角進行重合,會遮住嘴巴的顯示,只是嘴型有程序模擬生成,此時主要面向喝水動作識別,遮住嘴巴為檢測允許的環(huán)境,喝水行為特征圖像生成如圖4 所示。當前駕駛員處于清醒狀態(tài),并顯示眨眼次數(shù)和哈欠次數(shù)等信息,而且可以準確捕捉到駕駛員駕駛過程中喝水(drink)分心行為時,則實時警告駕駛員分心行為信息。
圖4 用保溫杯喝水行為檢測
吸煙動作也是駕駛員分心動作之一,由于抽煙過程需要呼吸換氧氣,抽煙過程手持香煙是不可避免的,一般抽煙時駕駛員會分出一只手來手持香煙,這樣對于車況的掌握控制相當于少了一只手臂。
經(jīng)此可以認定監(jiān)測過程中通過攝像頭檢測待測區(qū)域時,該待測區(qū)域一般會位于人臉面部區(qū)域位置的左右兩端。檢測結(jié)果如圖5~6 所示。圖5 識別結(jié)果顯示,駕駛員處于清醒狀態(tài),同時可以準確捕捉到駕駛員用手普通抽煙動作的分心行為,并實時警告駕駛員分心行為信息。圖6 識別結(jié)果顯示,駕駛員已經(jīng)處于疲勞狀態(tài),同時也準確捕捉到駕駛員嘴叼式抽煙動作的分心行為,系統(tǒng)實時警告駕駛員分心行為信息。
圖6 嘴刁式抽煙動作檢測
為了驗證本算法的全面性和抗干擾性,進行一種分心駕駛行為綜合檢測試驗,即進行檢測手機、抽煙、喝水、眨眼、打哈欠嘴形等多元的綜合檢測試驗,以驗證檢測模型的全面性以及檢測過程中各個檢測模塊各不干擾。檢測結(jié)果如圖7 所示,結(jié)果表明本算法可以綜合識別出駕駛員當前處于清醒狀態(tài),并存在使用手機、抽煙和喝水多元分心駕駛行為,同時能夠在系統(tǒng)里實時警示駕駛員當前存在分心駕駛。綜合檢測試驗證明,本算法可以實時全面監(jiān)控駕駛員疲勞狀態(tài)和分心駕駛行為,準確性較高,抗干擾性強。
圖7 綜合檢測
本文設計了一種基于深度學習的駕駛員分心駕駛行為預警系統(tǒng),結(jié)合了疲勞檢測和分心行為檢測2種方法,實現(xiàn)了對駕駛員專注度全方位監(jiān)控。
(1)采用YOLOv5 進行駕駛員分心行為檢測,能夠很好地檢測駕駛員是否在玩手機、吸煙或者喝水等分心行為,從而實現(xiàn)對駕駛員專注性的全面監(jiān)測。
(2)采用Dlib 和Perclos 模型是比較成熟和準確的技術(shù)手段,能夠很好地實現(xiàn)駕駛員疲勞檢測。
(3)該算法結(jié)合了駕駛員疲勞程度檢測和分心行為檢測2 個模塊,能夠?qū)崿F(xiàn)全方位的駕駛員專注性監(jiān)測。通過發(fā)出預警來規(guī)范駕駛員行為,從而保障交通行車的安全。該研究可以為汽車主動安全性的普及提供技術(shù)支持,有效提升汽車的行駛安全性。