王晨WANG Chen;張海寧ZHANG Hai-ning
(西安工業大學電子信息工程學院,西安 710021)
車內異常行為的發生嚴重影響司乘人員的行車安全,現有車內視頻監控異常行為主要集中在疲勞駕駛和分心駕駛。本文主要研究突發疾病時駕駛員的異常駕駛行為及司乘人員的異常交互行為[1]。
目前,針對駕駛員異常行為識別研究主要有以下2類:基于車輛狀態及參數的方法,通過測量方向盤運動、踏板位置等參數檢測駕駛狀態,增加了車載外設將導致高錯誤識別率且無法識別特定行為[2];基于人工基本特征的方法,如提取圖像的局部紋理、Haar、HOG等人工特征[3]并引入多特征融合,彌補了僅依賴單個特征的缺點,但對復雜背景的多維時間序列和多分類,僅識別行為是否屬于異常,降低了識別準確率。
目前,檢測司乘人員異常行為應用很少。但據其他不同場景中異常行為識別應用:如Rougier C等將運動歷史圖像與人體形狀變化相結合以檢測異常行為,但只能近似表示人體,精度較低[4]。基于運動軌跡方法,跟蹤并檢測人體運動圖像軌跡是否偏離正常軌跡來確定異常行為[5]。如文獻[6]方法主要針對開放或人員位移變化明顯的場景,且在光照、空間受限等約束下,其準確率會大大降低。
本文引入骨架關鍵點重構姿勢模型,設計一種DBDC分類檢測方法;對司乘人員異常行為提出一種基于時空特征的檢測算法,利用金字塔光流算法跟蹤SIFT算法提取的時間特征點,統計特征點位移及動能,該方法能準確識別人體行為姿態,使識別準確率可達95%以上。
使用AlphaPose骨架關鍵點檢測模型,用于提取車中駕駛員和乘客的關鍵點,以識別車內行為。如圖1所示為AlphaPoae網絡結構。

圖1 AlphaPose網絡結構
車內人員大部分保持坐姿,駕駛行為基本由上身運動組成,本文使用人體上部13個關鍵骨架點坐標位置信息提取特征數據,區分安全駕駛、趴在方向盤上、暈倒斜躺三種行為。研究知道,駕駛員三種姿勢間特征明顯,故構建以下5個特征:駕駛員右左手肘的夾角θ1、θ2,左右手腕和左右手肘的上下相對位置關系Lrep、Rrep(公式(1)、(2)),駕駛員與垂直方向之間的夾角α,如圖2。

圖2 姿勢特征部分標注
對駕駛員右、左肘指向右、左腕的向量和垂直方向的單位矢量間的夾角θr、θl計算如公式(3)、(4):

當θr、θl≥90°且θr、θl≤180°:表示手腕的相對位置在肘部上方,置為1;當θr、θl≥0°且θr、θl≤90°:表示手腕在肘部下方,置為-1。使用Rrep和Lrep區分是否屬于暈倒斜躺。圖3表示安全駕駛和暈倒斜躺時θr和θl夾角的比較。

圖3 安全駕駛和暈倒斜躺姿勢角度對比
對于趴在方向盤上行為構建駕駛員與豎直方向間的夾角α來區分,駕駛員向量為Ssm與Shm間的連線,計算為公式(5)、(6):

如圖2,安全駕駛時α一般很小或可忽略,即傾斜角度非常小,但當駕駛員趴在方向盤上時,α會發生較大變化,即可能變為較大的銳角或出現更大變化,以此來區分駕駛員是否發生趴在方向盤上這種異常行為。
受MobileNetV2模型思想啟發,本文提出了DBDC模型(圖4)對駕駛員三種行為進行分類識別,使其識別精度和速度更高。模型使用5層深度可分離卷積層,通道數以2的冪次方逐次增加,每層由一層深度卷積和逐點卷積構成,大大降低了卷積參數和計算量,提高了識別速率。最后使用全局平均池化和全連接層對其進行分類。

圖4 DBDC模型網絡結構
在對該模型評估中,評價指標使用準確率、精確率、召回率、F值、漏警率和虛警率。
司乘人員異常行為主要指所發生在前排乘客與駕駛員之間的身體交互行為,包括撕扯、打架等暴力行為,包括大量大幅度行為動作。
本文將AlphaPose模型提取的關鍵坐標點信息在黑色背景下重建相關性姿態。采用SIFT算法對司乘人員姿態圖進行角點提取以獲得每幀圖像的空間特征信息。采用金字塔L-K光流算法將角點作為特征點進行跟蹤并計算獲得幀間特征點的光流矢量。并對圖像幀中所有特征點的位移變化及動能進行計算以判斷是否發生異常行為。
首先根據特征及其光流變化信息,將每個特征點的位移變化量劃分為坐標軸上的x軸和y軸上的分量(ux,uy),計算得出相應每個特征點的位移變化值d(公式(7)),從而計算每幀圖像上所有特征點位移的平均值davg(公式(8)),表示車內人員的整體移動幅度:

發生沖突時,其時間相對比較長,因此為避免因時間過短而造成的誤判,在進行數據計算分析時,本文中設定分界閾值dth,當連續三幀圖像中計算的davg均高于dth時,即首先認為存在沖突行為。
由以上可知,對于連續三幀閾值判斷,不能完全正確對異常行為進行區分判斷,故再次對圖像幀中特征點的動能進行計算,由動能公式可得,對于特征點的動能依賴于其權重和運動速度幅值,其中將每個特征點的光流矢量劃分為坐標軸上的x、y軸上的分量(vx,vy),求得每一個特征點的速度平方值(公式(9))及方向角(公式(10))。

在計算動能中,特征點運動方向決定了權重Q的取值(公式(11)),即可計算得到第幀圖像上所有特征點的動能值,從而得到平均動能(公式(12))來體現每一幀圖像上的動能變化。其中表示第k幀內第i個特征點的速度方向,θk-1表示k-1幀的平均運動方向。

本文中設定動能閾值Eth,與所計算的每幀平均動能Eavg進行比較。若Eavg>Eth,則表示車內有大幅動作產生,即判斷發生異常行為;若Eavg<Eth,則表示車內未發生大幅動作,即判斷為安全駕駛。
最后將兩者結合判斷,判定規則如下:若davg、Eavg兩者滿足同時大于所設閾值,則判定為出現異常行為,否則視為安全駕駛。
本實驗平臺操作系統為Windows 10;CPU為Inter Corei7-6700;軟件采用PyCharm2021.3.3;深度學習框架是Pytorch;編程環境是Python 3.9。使用小米云臺版2K監控攝像頭且位置處于前排乘客座位前的右下角。
司乘人員行為數據集是為5組視頻數據所保存的圖像幀和視頻幀,其中包含駕駛員的三種駕駛行為圖像幀2433張,和司乘人員之間交互行為視頻幀100段,分別為安全駕和有暴力沖突的駕駛行為各50段,每段5秒左右。
①駕駛員姿勢識別模型評估。在評估所構建的駕駛員姿勢識別模型時,使用本文所劃分訓練好的三種行為數據集對模型進行測試,獲得表1所示的準確率。

表1 駕駛員姿態識別模型對三種行為的識別結果
分析測試結果可得,其平均準確率達到了96.46%,三種駕駛行為的識別準確率都在95%以上,對于異常行為的識別檢測相差不大。
②DBDC模型評估結果。定義安全駕駛為負樣本,趴在方向盤上、暈倒斜躺為正樣本,對輸出結果進行二分類,計算上述指標得出地結果如表2。

表2 DBDC模型評估結果
由表2結果可得,算法的準確識別率達到在97.59%,漏警率為2.3%,虛警率為5.03%,由測試數據分析,其中有4幀圖片為漏警、9幀圖片為虛警。
①繪制特征點位移、動能變化曲線圖。如圖5(a)位移變化曲線圖可看出對于正常駕駛和異常駕駛行為有明確的分界點,設置判別閾值為22,當連續三幀均davg>22,即首先可判斷車內司乘人員發生異常行為;圖5(b)動能變化閾值設為4000,在30幀和110幀之間,平均動能非常大,在前30幀和110幀后,平均動能小于閾值,故動能變化能較準確判別駕駛行為是否異常。

圖5 特征點位移、動能變化曲線圖
②司乘人員異常行為檢測算法評估結果。結合特征點平均位移及動能變化,對本文提出的司乘人員異常行為檢測算法評估結果如表3。

表3 司乘人員異常行為檢測算法測試結果
分析測試結果,識別安全準確率達到99.68%,異常識別準確率為95.03%。經過對誤判幀圖像的分析可得其主要原因一是視頻數據為攝像頭模擬拍攝,乘客突然出現大幅度動作時會遮擋攝像頭,導致在識別時會誤判為打斗行為;二是當兩人某點同時出現大幅度動作且持續則會出現誤判為打斗行為。
針對前排司乘人員的異常駕駛行為,提出基于AlphaPose模型的骨架關鍵點的識別檢測方法。首先,針對駕駛員異常行為,結合骨架關鍵點構建姿態模型,引入深度可分離卷積,設計訓練DBDC分類模型。其次,針對車內司乘人員異常交互行為并利用駕駛員和乘客姿勢估計中獲得的結果在黑色背景上重構姿態模型,提取時空特征,并根據特征點光流信息計算圖像幀中平均位移及動能來判斷行為是否異常,使得檢測準確率提高到95%以上,并降低了檢測速度,以此作為智能監控系統應用的技術支撐。