高尚兵,黃子赫,耿璇,臧晨,沈曉坤
(1.淮陰工學院 計算機與軟件工程學院,江蘇 淮安 223001;2.淮陰工學院 江蘇省物聯(lián)網(wǎng)移動互聯(lián)技術工程實驗室,江蘇 淮安 223001)
隨著機動車數(shù)量的增多,頻發(fā)的交通事故成為社會關注的難題,而司機的不規(guī)范駕駛行為(如抽煙、玩手機等)是造成事故發(fā)生的重要原因。通過約束駕駛員的行為可以在一定程度上減少此類交通事故的發(fā)生,眾多研究者開始致力于研究如何快速有效地檢測駕駛員的不規(guī)范駕駛行為。近年來,圖像識別成為了檢測駕駛員行為的趨勢,深度學習在計算機視覺領域被廣泛用于圖像分類和目標檢測,卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)在圖像識別和物體檢測方面功不可沒[1]。
目前基于CNN 的檢測駕駛員行為的方法包括:Le 等[2]利用R-CNN 目標檢測算法,對駕駛員頭部、手部和方向盤進行檢測,通過檢測頭部和手部的位置,判斷駕駛員是否在打電話,檢測手部和方向盤的位置,判斷駕駛員的手是否脫離方向盤;李俊俊等[3]對經(jīng)典卷積神經(jīng)網(wǎng)絡進行改進,提出了結合FCNN 與三級級聯(lián)神經(jīng)網(wǎng)絡融合的模型,實驗結果表明該模型能有效識別違規(guī)行為,但仍需提高訓練的準確率和速度;巍澤發(fā)[4]構建了一種基于SSD[5]目標檢測算法的出租車司機違規(guī)行為檢測方法,他選用VGG16[6]作為SSD 算法的基礎網(wǎng)絡,結合自建數(shù)據(jù)集的特點,采用遷移學習的方法訓練數(shù)據(jù)集,準確率高達94.22%,較原始SSD 算法提升了2.42%,同時能保證模型處理速度為33 f/s。Jin 等[7]采用了一種基于雙流卷積神經(jīng)對駕駛員使用手機這種行為進行實時檢測,并在自建數(shù)據(jù)集上取得了95.7% 的準確率;Huang 等[8]建立了一個混合CNN 的框架,先采用一個聯(lián)合的預訓練的模型對駕駛員的行為特征進行提取,再將這些提取出來的特征送入到全連接層進行分類,實驗結果表明,檢測準確率達到96.74%。He 等[9]基于CornerNet-Lite[10]神經(jīng)網(wǎng)絡對駕駛員打電話這種行為進行檢測,在取得86.2%的準確率的同時還有著30 f/s 的實時檢測速度,并且即使在具有噪聲干擾的環(huán)境下,仍然能夠保持較為穩(wěn)定的魯棒性。Masood 等[11]在內安裝一個攝像頭,利用VGG16 對駕駛員的違規(guī)行為進行識別,實驗結果表明,平均準確率達到了99%。
實時性和有效性是駕駛員行為檢測的重要指標。將基于CNN 的目標檢測方法如YOLOv4[12]、YOLOv3[13]、EfficientDet[14]、Faster-RCNN[15]、RetinaNet[16]、R-FCN[17]等算法進行對比,YOLOv4 算法更加高效且適合單次GPU 訓練。另外,姿態(tài)檢測算法Open Pose[18]能夠實現(xiàn)多人姿態(tài)檢測,優(yōu)點是能在人物數(shù)量多的情況下,既能保持精度,又可以提升檢測速度。
本文提出了一種新穎算法LW-Yolov4,通過去除網(wǎng)絡模型中權重較低的模型通道數(shù)來簡化Yolov4 網(wǎng)絡模型大小,從而提高了檢測速度。駕駛員違規(guī)行為的識別需要通過提出的LW-Yolov4網(wǎng)絡和姿態(tài)檢測算法OpenPose 對駕駛員的監(jiān)控數(shù)據(jù)進行協(xié)同檢測,將視頻幀圖像送入LW-Yolov4網(wǎng)絡獲取置信度較高的敏感物品檢測框位置坐標,并同時進行人體姿態(tài)關鍵點的檢測,獲取手指部分關鍵點坐標。通過判斷雙手手指部分關鍵點與敏感物品識別區(qū)域是否有重疊,以檢測行車過程中玩手機、抽煙、喝水等違規(guī)駕駛行為。
Yolov4 目標檢測算法平衡了精度與速度,相較于Yolov3,mAP 提升了10%,速度提升了12%。Yolov4 的主干網(wǎng)絡采用了CSPDarknet53 網(wǎng)絡,并將SPP (spatial pyramid pooling) 模 型[19]加 入到CSPDarknet53 中,使用PANet[20](path aggregation network)代替了Yolov3 的FPN[21]。用Focal Loss來解決數(shù)據(jù)不平衡的問題?;貧w框的損失則采用CIOU Loss[22]?;贑utMix[23]數(shù)據(jù)增強方法,Yolov4 提出了一種新的數(shù)據(jù)增強方法Mosaic,將4 張圖片拼接成一張,能夠豐富檢測物體的背景,降低批處理數(shù)量,使得圖片在單GPU 上訓練更為輕松。Mosaic 拼接效果如圖1 所示。
圖1 Mosaic 拼接效果Fig.1 Mosaic effect
Yolov4 采用的CSPDarknet53 網(wǎng)絡包含了29 個卷積層,感知野大小為725×725。Darknet53結構如圖2 所示,由5 個殘差塊組成。
圖2 Darknet53 網(wǎng)絡結構Fig.2 Darknet53 network structure
CSPDarknet53 為Darknet 改進而來,在Darknet基礎上添加了CSPNet[24](cross stage partial network),能在輕量化的同時保持準確性,降低計算的成本。CSPDark 網(wǎng)絡是在每一個殘差塊上加上CSP,圖3 為殘差塊1 的CSPDarknet53 模型圖,其中,層[0,1,5,6,7] 與Darknet53 的原網(wǎng)絡一致,而層[2,4,8,9,10]為新添加的CSPNet。
圖3 殘差塊1 的CSPDarknet53Fig.3 CSPDarknet53 of residual block 1
Yolov4 算法計算精度高,檢測速度快,通過加入CSP(cross stage partial)、SPP(spatial pyramid pooling)模塊和PANet(path aggregation network)進行多尺度融合的同時利用路徑聚合網(wǎng)絡將底層特征信息與高層特征進行融合,從而有效增強模型的表達能力,僅犧牲少量訓練速度的代價來換得精度的提升。由于車載系統(tǒng)屬于低功耗場景,實時檢測需要模型的計算量和大小盡可能的小,為了讓駕駛員行為檢測平臺對數(shù)據(jù)能夠實時地處理反饋,針對駕駛員協(xié)同檢測算法中的目標檢測網(wǎng)絡模型結構,本文提出了一種Yolov4 的網(wǎng)絡模型簡化算法?LW-Yolov4,LW(light weight)代表了輕量化,即輕量化的Yolov4 網(wǎng)絡模型。
LW-Yolov4 算法簡化了神經(jīng)網(wǎng)絡模型,通過去除卷積層中不重要的要素通道,達到提升檢測速度的目的。首先通過L1正則化[12]產(chǎn)生稀疏權值矩陣[25],得到的梯度添加到BN (batch normalization)層的梯度中。L1正則化表示為
式中:ωt為模型權重系數(shù);Ω(ω) 為懲罰項。使用BN 層中的縮放因子γ評估參數(shù),根據(jù)每個神經(jīng)元的L1絕對值的權重參數(shù)γ從小到大進行排序。設立合適γ的閾值,該閾值決定了網(wǎng)絡模型最終的大小。本實驗將γ閾值設置為0.8,即優(yōu)化后的神經(jīng)網(wǎng)絡為原網(wǎng)絡的模型的0.2 倍。將γ低于閾值0.8 的權重參數(shù)置0。然后將由BN 層得到的卷積計算結果與合并后的權值參數(shù)β(偏置量)進行計算。通過去除這些不重要的像素通道,網(wǎng)絡模型在進行模型推理的時候,可以跳過這些通道,僅僅去加載那些權重大的通道,從而減少模型的計算量,提高模型的檢測速度。LW-Yolov4 算法流程如圖4 所示。
圖4 LW-Yolov4 算法流程Fig.4 Flow chart of LW-Yolov4 algorithm
模型通道數(shù)量的改進前后對比效果見表1。通過對比改進前后的模型通道數(shù)可知Yolov4 網(wǎng)絡模型得到了簡化。
表1 模型通道數(shù)對比Table 1 Model channel number comparison
本文通過LW-Yolov4 算法進行車內敏感物品的檢測,訓練前需對數(shù)據(jù)集圖像進行歸一化[26]處理,歸一化采用了z-score 標準化方法,基于原始數(shù)據(jù)的均值和標準差,經(jīng)過處理的數(shù)據(jù)符合標準正態(tài)分布,轉換函數(shù)為
式中:μ 為所有樣本數(shù)據(jù)的均值;x?為樣本數(shù)據(jù)的標準差。
訓練函數(shù)采用了CIOU Loss,CIOU Loss 加入了一個影響因子,這個因子把預測框長寬比、擬合目標框的長寬比考慮進去,公式為
式中:CIOU為交并比;v為權重函數(shù),用來度量長寬比;b、bgt分別代表了預測框和真實框的中心點;c代表的是能夠同時包含預測框和真實框的最小閉包區(qū)域的對角線距離;α 為正權衡參數(shù)。
式中:w、wgt分別代表了預測框寬和真實框寬;h、hgt分別代表了預測框高和真實框高。損失函數(shù)公式為
將敏感物品的識別與人體的姿態(tài)進行協(xié)同融合檢測,從而達到駕駛員違規(guī)駕駛行為的識別的目的。
1)人體姿態(tài)算法OpenPose
OpenPose 人體姿態(tài)識別算法[10]由美國卡耐基梅隆大學提出,可以實現(xiàn)人體動作、面部表情、手指運動等姿態(tài)估計。OpenPose 使用的是聯(lián)合的多branch 分支,一個分支負責關鍵點的檢測,另一個分支負責將關鍵點連接成骨架,再通過二分圖匹配匈牙利算法。
2)算法融合策略
將待檢測視頻的同一幀同時送入LW-Yolov4網(wǎng)絡模型和OpenPose 模型,LW-Yolov4 算法檢測后得到敏感物品的位置信息以及置信度,Open-Pose 檢測后得到人體關鍵點信息及手部的位置坐標。設定一個閾值,若連續(xù)1 s 內檢測到駕駛員的手指位置與敏感物品重合則判定駕駛員出現(xiàn)了違規(guī)駕駛行為,保留視頻節(jié)點并進行語音提醒。算法融合流程如下:
1)將采集到的動作圖片序列輸入檢測系統(tǒng),對圖片進行裁剪、縮放、中值濾波等圖像預處理操作,獲得416 像素×416 像素的圖片,作為模型的輸入;
2)將圖片輸入到LW-Yolov4 模型中進行敏感檢測,并得到敏感物的坐標;
3)將圖片輸入到OpenPose 中獲得手部關鍵點的坐標;
4)進行圖片渲染,整合到一張圖片上;
5)判斷敏感物坐標是否與手部坐標重疊,若重疊則進行相應的預警。
本文的駕駛員行為識別分析系統(tǒng)是通過對比車內敏感物品的檢測框位置與駕駛員手部位置坐標是否出現(xiàn)重合來判定駕駛員是否出現(xiàn)了違規(guī)駕駛行為的。因此,實驗分為3 個部分,分別為車內敏感物品的檢測、人體關鍵點的檢測以及視頻融合與行為判定。
實驗數(shù)據(jù)來自淮安公共交運平臺的駕駛員行車過程中的駕駛員視角的監(jiān)控視頻,視頻數(shù)據(jù)大小為430 GB。視頻像素大小為1280×720,包含了同一場景下的紅外攝像頭拍攝的灰度圖像以及高清攝像頭拍攝的日間行車圖像。使用標注工具Labellmg 對視頻中截取的敏感物品進行標注,主體標注對象為手機、水杯和香煙3 個類別。將標注完成的圖片制作成VOC 格式的數(shù)據(jù)集。數(shù)據(jù)集包含了15 000 張訓練集以及6000 張驗證集,實驗平臺的環(huán)境配置如表2 所示。
表2 實驗環(huán)境配置Table 2 Experimental environment configuration
將制作完成的VOC 格式的數(shù)據(jù)集圖片采用Mosaic 數(shù)據(jù)增強方法進行裁剪、旋轉以及縮放操作。LW-Yolov4 訓練參數(shù)的初始學習率設置為0.001,采用階躍衰減學習率[27]調度策略,預測分類類別數(shù)設置為3(檢測手機、水杯、香煙這三類敏感物品),經(jīng)過2 000 次的迭代訓練。讀取待檢測視頻的每一幀圖像,通過訓練好的網(wǎng)絡模型進行敏感物品的檢測。圖5 為日間行車敏感物品檢測效果圖,圖6 為灰度圖像敏感物品檢測效果圖。
圖5 日間行車檢測效果Fig.5 Renderings of daytime driving detection
圖6 灰度圖像檢測效果Fig.6 Grayscale image detection renderings
將送入LW-Yolov4 網(wǎng)絡模型的視頻幀同時送入OpenPose 進行人體關鍵點檢測,得到人體關鍵點信息。結合敏感物品的檢測窗口及姿態(tài)檢測的信息對原視頻每一幀進行渲染,并進行文本可視化,根據(jù)檢測到的敏感物品以及手部信息在左上角給出文本進行提示,渲染后的效果圖如圖7、圖8 所示。
圖7 日間行車融合效果Fig.7 Renderings of daytime driving fusion
圖8 灰度圖像融合效果Fig.8 Gray-scale image fusion effect
本文選取了3 段駕駛員行車過程監(jiān)控視頻(10 800 f)進行檢測,檢測對象喝水、打電話、玩手機等違規(guī)駕駛行為。通過統(tǒng)計含有違規(guī)駕駛行為的幀數(shù)與檢出違規(guī)駕駛行為的幀數(shù)計算檢出率,檢測結果如表3 所示。
表3 檢測結果Table 3 Test results
通過表3 的數(shù)據(jù)可以看出,駕駛員的違規(guī)駕駛行為具有較高的檢出率,3 個視頻的違規(guī)行為總體檢出率為94.76%,其中喝水的平均檢出率達到了95.90%,玩手機的平均檢出率為94.65%,抽煙檢出率為93.40%。整體來看,喝水的檢出率略高于玩手機及抽煙的檢出率。檢測過程的FPS 為21.36,能夠滿足駕駛員違規(guī)行為檢測的準確性和實時性要求。
為了進一步驗證LW-Yolov4 算法的性能,本文對面前應用的主流算法進行訓練,對比實驗結果。評價指標為平均精度召回率mAP、精確率Priecision 以及召回率Recall。實驗結果如表4 所示。
表4 LW-Yolov4 算法性能測試結果Table 4 Test results of LW-Yolov4 algorithm
通過表4 中的數(shù)據(jù)可以看出,LW-Yolov4 算法的運行速度比Yolov4 高出了9.1 個百分點,比Yolov3 高出了6.7 個百分點。但是在精度上,LW-Yolov4 下降的原因在于去除了部分權重較低的網(wǎng)絡通道。與SSD、Faster-RCNN 和R-FCN 相比,本文提出的LW-Yolov4 在速度和精度上均有了較大幅度的提升。根據(jù)實驗結果可知,LWYolov4 的算法優(yōu)勢在于,精度小幅下降的情況下,大幅提升了檢測速度,能夠滿足實時檢測的要求。為了進一步驗證融合算法對于危險駕駛行為的檢測效果,本文進行了協(xié)同檢測算法的性能和精度對比。實驗對比結果如表5 所示。
表5 各目標檢測算法性能測試結果Table 5 Test results of the accuracy of each target detection algorithm
在3 類違規(guī)駕駛行為的綜合檢出率中,協(xié)同檢測算法相較于Yolov4,檢測精度提升了5.3%,檢測速度提升了10%。相較于其他主流算法,融合檢測算法的檢測速度和精度也都具有明顯的檢測優(yōu)勢,檢測精度提升5%以上,檢測速度提升了10%以上。
由對比實驗可以看出,本文提出的協(xié)同檢測算法在檢測精度、檢測速度方面均有優(yōu)勢。
本文提出的LW-Yolov4 算法是在Yolov4 的基礎上通過精簡網(wǎng)絡模型改進得到的。通過LWYolov4 算法與人體姿態(tài)算法進行融合從而達到檢測駕駛員行車過程中違規(guī)行為的目的。目前眾多深度學習算法模型在精度上表現(xiàn)都較為優(yōu)越,但很多行業(yè)對數(shù)據(jù)的實時性處理要求較高,在檢測速度上還未能完全得到滿足。本文提出的LWYolov4 算法在精度能夠達到實際應用的同時大幅提高了檢測的速度,能夠滿足基礎的應用,但距離工業(yè)化的檢測速度要求還有一定的差距。在未來目標檢測的前進方向上,目標檢測速度算法的提升仍會成為重點的研究方向。