夏嗣禮
(江蘇聯合職業技術學院 徐州財經分院 信息技術系,江蘇 徐州 221008)
分心駕駛是一種特殊的注意力分散類型,通常指駕駛員注意力從駕駛轉移到其他活動,如接打電話、回復信息等[1]。與分心駕駛類似的注意力分散類型還有疲勞駕駛、情緒型駕駛等。
近年汽車保有量和駕駛員數量持續增加,與駕駛安全高度相關的分心駕駛風險日益凸顯。據2023年NHTSA發布的分心駕駛報告統計[2],2021全年有14%的機動車事故是由分心駕駛引起,并導致了8%左右的致死交通事故,3522人死亡,受傷人數超36萬。本研究旨在改進視覺自注意力模型,通過分析連續視頻幀提升分心駕駛識別精度,對于糾正不良駕駛習慣、危險預警和事故證據固定有積極意義。
1.1.1 基于車輛駕駛信息的識別
車輛駕駛信息是判別分心駕駛最為直觀的指標,此類研究通常借助曲軸、轉矩等傳感器收集車速、車道偏離、方向盤轉角和剎車制動力度和頻度等信息。由于這些特征直接采集自行駛中的車輛,可提升分心駕駛判別的準確度。其目的就是要區分這些駕駛特征在正常與分心駕駛之間的不同,使用SVM、AdaBoost、神經網絡等分類算法判別駕駛狀態[3]。
1.1.2 基于駕駛員生理指標的識別
該類研究多使用侵入式設備獲取駕駛員的生理信息,如心率波動、瞳孔變化和腦電信號等,由此判別駕駛員是否處于分心狀態[4]。此類研究為保證安全,多采用實驗室環境,因此無法還原真實駕駛情況,且侵入式設備造價較高不便于大規模部署,部分侵入式設備還存在干擾正常駕駛的風險。
高級駕駛輔助系統(Advanced Driving Assistance System,ADAS)的日漸普及提升了車載攝像頭的覆蓋率,ADAS通過分析研判駕駛員行駛過程中的圖像,可以較好地進行駕駛狀態的識別。其優勢在于采用了非侵入式采集方式,經濟性較優,并能提供全天候的車載圖像,易于采集大量數據支撐實驗。
1.2.1 基于人體姿勢的識別
分心駕駛通常是由于駕駛員將注意力分散至駕駛次任務或其他與駕駛無關任務,如接打電話、與后排乘客交談等。此類情況下,駕駛員的體態會發生一系列變化,通過分析人體姿勢可以甄別當前駕駛狀態。此類行為動作幅度較大,十分影響車輛精準控制[5]。
1.2.2 基于頭部姿態的識別
頭部是駕駛過程中行為最為豐富的人體區域,眾多駕駛行為與之高度相關,也是ADAS廠商重點檢測區域。相較于眼部圖像,頭部姿勢的捕獲更為方便,特征也更易表達,通常使用3個角參量平動角(Yaw)、轉動角(Pitch)和滾動角(Roll)來表達。通過研判駕駛員的頭部姿勢,研究人員更易獲取駕駛員當前是否具備風險意識和制動準備[6]。
選取視覺自注意力模型ViT(Vision Transformer)作為整體網絡的backbone,本研究提出改進型模型ViT_CR。其主體思想是基于ViT強大的特征提取能力,改進MLP頭部后的單一分類層,通過多任務融合損失函數優化精確度。如圖1所示,模型先添加多分類層,用以勝任角度區間預測任務,再通過回歸分析逼近真實角度。由于對歐拉角采用了解耦訓練策略,模型能分別預測各角度值進行更精細的頭部姿勢表達。

圖1 改進的視覺自注意力模型結構
ViT_CR在Patch Embedding模塊統一將224×224圖像分割成多個固定大小patch,如圖1所示,圖像被分割為9份,進而通過線性映射將每個patch映射到一個向量空間。為每個patch的向量表示加上位置編碼,以表征patch在圖像中的位置信息。然后將patch的向量序列輸入標準的編碼器,通過多頭自注意力機制學習patch之間的關聯特征。ViT_CR采用6個編碼器堆疊方式,為平衡模型精度和訓練效率,其中的注意力頭數設計為8個,前饋網絡維度設定為2048。
模型采用多任務融合損失優化模型訓練,具體如式(1)所示,選擇交叉熵損失函數H(p,q)評估區間預測準確性。由于采用了解耦訓練策略,對于回歸預測階段,模型選用均方誤差MSE(y,y′)作為3個FC層的損失函數。其中,p為區間預測概率,q為區間實際概率,y為實際值,y′為真實值,權重α選定為0.5。
Loss:αH(p,q)+(1-α)MSE(y,y′)=
(1)
對于單張圖像的分心駕駛識別,無論是從精確度還是操作便捷性上,各類識別模型均易有較優的表現。2022年,何廷全等[7]利用改進型YOLOv5對Kaggle分心駕駛數據集SF3D進行檢測,模型在精確度、召回率上均取得了較好的表現。
基于單張圖像的分心駕駛識別其本質是一個二分類任務,以此做判別存在較大的不確定性。此外,單張圖像也無法表達該時刻前后的駕駛信息,而分心駕駛行為是持續性的。例如,以頭部姿勢為判別特征,在分心駕駛階段,其頭部姿勢應呈現出一定的相關性。因此,采用連續視頻幀的方式進行判斷更精確,能較好地規避機械式二分類判別分心駕駛的偶然性。
方法的設計思想是通過計算各樣本點與正常駕駛的基點的關聯程度,判斷該時刻駕駛狀態,到達一定閾值后即可進行判別。安全閾值來自“2 s準則”[8],即連續2 s判定為分心狀態,則視為分心駕駛。
實驗共分2個階段,第一階段為驗證ViT_CR在頭部姿勢估計真實表現,第二階段為驗證基于連續視頻幀的分心駕駛識別方法的可行性。因此在第一階段采用AFLW數據集,AFLW是一個擁有頭部姿勢標注的多角度人臉數據集,剔除極端頭部姿勢圖像后,劃分訓練集16825張,驗證集來自AFLW2000集,共1932張。第二階段采用真實駕駛視頻幀數據集Dimgs,如圖2所示依次為安全駕駛、觀察左右后視鏡、手部小動作、使用手機、轉身、調節車載設備和飲食。采集策略為全天候多人次,采集幀率20 fps,正常駕駛共計8000張,分心駕駛共計3000張。

圖2 真實駕駛視頻幀數據集Dimgs的劃分說明
為提升訓練效率,降低算力負擔,實驗對ViT_CR的分類器部分提前進行了ImageNet分類訓練。同時,為了降低過擬合的風險,實驗對AFLW進行了隨機下采樣、高斯模糊和翻轉等數據增強操作。

(2)

表1 各頭部姿勢估計模型在AFLW2000的測試結果
SDM是一種基于級聯回歸的人臉對齊方法;Dlib是一種基于68個人臉關鍵點的傳統檢測方法;SSR與FSA均是基于卷積網絡的模型,其性能優于級聯回歸和人臉關鍵點法。ViT_CR取得了各角參量的最優誤差,MAE為4.61。
一階段實驗驗證了ViT_CR于頭部姿勢估計的良好性能,二階段實驗重在分析正常駕駛與分心駕駛在頭部姿勢的差異,并根據連續視頻幀的方法驗證識別效果。
Dimgs采集攝像頭是固定位置,需計算該位置下8000幀安全駕駛圖像的角參量分布。如圖3所示,安全駕駛的頭部姿勢分布高度聚集,由此得出一個三元組(-27.5,2.3,4.0),對該三元組求取歐氏距離并升序排列,可以發現前90%的樣本分布平穩,在拐點之后分布偏差加大,可視為噪聲或個別極端幀,摒棄后得到安全閾值范圍Yaw(-45°,-13°)、Pitch(-10°,15°)、Roll(-5°,15°),安全距離閾值d為18.6。

圖3 Dimgs安全駕駛角參量分布與基點的距離情況
進而驗證此識別方法的實際表現,測試時間窗口均為5 s,對應100幀。驗證數據集共分為3類,t1—t5為安全駕駛,t6—t10為安全駕駛中的觀察左右后視鏡,t11—t15為分心駕駛(1個Dist_h、3個Dist_p和1個Dist_h)。經過ViT_CR計算得出t1—t15的空間分布,如圖4所示。可直觀看出,t1—t5,整體分布在閾值以下;t6—t10,頭部動作增多,但大致分布也在閾值以下;t11—t15,大部分分布在閾值之上。

圖4 t1—t15連續視頻幀的空間分布
為更好分析各駕駛狀態的頭部分布,根據2 s準則設計了3個輔助判斷指標all、max和count,分別表示異常百分占比、最大持續幀數和超閾值次數(連續超4幀累加1)。如表2所示,可定量表示分心駕駛情況,此3項參數均明顯高于安全駕駛。

表2 t1至t15連續視頻幀分心判別參數
本文借助經濟性好、部署簡單的車載攝像頭采集實際駕駛圖像,為實驗提供真實可靠的訓練數據。本文設計了一種改進視覺自注意力模型ViT_CR,用于頭部姿勢估計,在實驗中表現出了良好的性能;針對單張圖像表達能力弱的短板,提出一種基于連續視頻幀的分心駕駛識別方法,有效驗證了正常與分心駕駛的頭部姿勢不同,對于分心駕駛識別具有積極意義。