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