天天看點

基于深度學習的分心駕駛行為檢測方法

作者:新能源新說

1 前言

在“人-車-路”複雜道路交通系統中,駕駛員行為是影響交通安全的重要因素之一。中國社科院與某保險機構的相關調查結果表明,34%的受訪者在駕駛過程中存在分心駕駛的行為[1]。此外,美國高速公路安全管理局的報道顯示,美國的交通事故中25%~30%的案例與分心駕駛行為有關[2]。是以,如果能夠實時監測駕駛員的分心駕駛行為并進行預警,将對提升道路交通安全具有重要意義。

目前,分心駕駛檢測方法主要分為間接檢測法和直接檢測法。間接檢測法即通過傳感器檢測車輛的行駛狀态特征,如加速度、運作軌迹和轉向盤轉角變化等,進而間接擷取駕駛員的分心狀态。間接檢測法的成本相對較低,且不影響駕駛員的操作行為,但檢測精度易受駕駛條件和駕駛員駕駛習慣等影響,研究方法和準确性均需改進[3-4]。直接監測法即利用駕駛員生理參數或視覺特征直接擷取其狀态資料。基于生理參數的監測方法通過穿戴醫療裝置擷取駕駛員的心電信号、腦電信号和肌電信号,提取分析信号資訊,擷取駕駛員狀态[5],該方法準确率較高,但相關裝置成本較高,且可能影響正常駕駛,實際應用難度較高。

随着計算機視覺和深度學習技術的發展,可以通過輸入圖像進行端到端的分心駕駛行為檢測[6-8]。黃向康[9]采用改進後的多任務級聯卷積神經網絡進行駕駛員人臉檢測,得到人臉檢測框和5個特征點,根據檢測結果進行分心行為判别,其中包括通話和吸煙2種行為,檢測準确率分别為93.3%和92.4%。龐再統[10]針對圖像分類網絡MobileNetV3 進行改進,提出輕量化模型SMobileNet,對分心駕駛行為進行識别以實作實時監測。

本文采集分心駕駛資料集,包括駕駛員飲水、使用手機和吸煙3 種分心駕駛行為的圖像,利用預訓練的Yolov5[11](You Only Look Once)模型得到分心駕駛行為對應目标物的标注檔案,最後,采用一種輕量化的目标檢測網絡NanoDet[12]進行訓練,以便在移動端進行部署。

2 資料集擷取及标注

2.1 資料集圖像擷取

資料集圖像來源包括多視角、多模态和多光譜駕駛員行為資料集(Multiview,Multimodal and Multispectral Driver Action Dataset,3MDAD)和駕駛員監測資料集(Driver Monitoring Dataset,DMD),采集19 位駕駛員飲水、使用手機和吸煙的視訊,對視訊進行裁剪并逐幀輸出以便得到圖像集合。其中,3MDAD 資料集共包含16類駕駛行為,本文提取駕駛員使用右手發短信、使用左手發短信、使用右手通話、使用左手通話、拍照、使用右手飲水、使用左手飲水、吸煙類别的圖像。其中,使用右手發短信、使用左手發短信、使用右手通話、使用左手通話、拍照統一為使用手機類行為;使用右手飲水、使用左手飲水統一為飲水類行為。整理後的資料集包括駕駛員不同角度的飲水、使用手機和吸煙3類圖像,如表1和圖1所示。

基于深度學習的分心駕駛行為檢測方法

圖1 分心駕駛行為圖像示例

基于深度學習的分心駕駛行為檢測方法

表1 資料集圖像數量

2.2 資料集标注

本文采用基于COCO[13]資料集預訓練的Yolov5 快速标注方法對資料集圖像進行标注。

具有不同網絡深度和寬度的5 種Yolov5 模型在COCO val2017 資料集上的性能如表2 所示。綜合考慮檢測精度和推理速度,選取Yolov5l 作為推理時的權重檔案。

基于深度學習的分心駕駛行為檢測方法

表2 Yolov5的5種網絡模型

COCO資料集共包含80個資料類别,本文隻需檢測瓶子(Bottle)、高腳杯(Wine glass)、茶杯(Cup)和手機(Cellphone)共4 類目标物。将瓶子、高腳杯、茶杯統一為水瓶類資料,用于得到駕駛員飲水行為目标檢測物的标注檔案;手機用于得到駕駛員使用手機行為目标檢測物的标注檔案。此外,COCO 資料集不包含香煙類别,需要對香煙類别進行單獨預訓練,用于得到駕駛員吸煙行為目标檢測物的标注檔案。

Yolov5模型推理得到的txt檔案包括目标物的種類資訊、檢測框中心點歸一化坐标資訊和檢測框歸一化寬高資訊。需要對推理過程中出現的備援檢測、錯誤檢測和遺漏檢測等情況進行剔除、修正或重複推理,如圖2所示。

基于深度學習的分心駕駛行為檢測方法

圖2 資料圖像推理結果示例

最終整理得到的正确推理的圖像數量如表3 所示。将資料集的每一類駕駛行為随機分為訓練集和驗證集。其中,訓練集占資料集總量的96%,驗證集占資料集總量的4%。之後對正确的txt 檔案進行格式轉換得到json格式的資料集标注檔案。

基于深度學習的分心駕駛行為檢測方法

表3 帶有标注的分心駕駛行為資料集

3 模型訓練及結果分析

3.1 NanoDet輕量化模型

Yolo、單次多邊框檢測器(Single Shot Multibox Detector,SSD)、區域卷積神經網絡(Region-based Convolutional Netural Network,R-CNN)等目标檢測模型可以實作較好的精度和速度,但模型相對較大,不适合在移動端嵌入式裝置上進行部署。而輕量級目标檢測模型NanoDet分别對主幹網絡、特征融合網絡和檢測頭網絡進行輕量化,具有檢測速度快、模型檔案小等優點,并且提供了新卷積神經網絡(New Convolutional Netural Network,NCNN)推理架構下的C++代碼,可直接在移動端進行部署。NanoDet 模型和Yolo 系列模型在COCO val2017資料集上的性能對比如表4所示,NanoDet 模型具有參數量小、模型尺寸小和推理速度快的優勢。是以,本文選用NanoDet作為訓練模型。

基于深度學習的分心駕駛行為檢測方法

表4 NanoDet模型和Yolo模型性能比較

NanoDet 是單階段的無錨框檢測模型,該設計基于全卷積單階段(Fully Convolutional One-Stage,FCOS)檢測算法,NanoDet模型結構如圖3所示。

基于深度學習的分心駕駛行為檢測方法

圖3 NanoDet模型結構

NanoDet 的主幹網絡使用ShuffleNetV2[14],去掉了最後一層卷積,并且抽取8倍、16倍、32倍下采樣的特征輸入特征融合網絡。ShuffleNetV2 通過通道拆分操作,将通道均分為2 個分支,一個分支進行卷積操作,并使輸入和輸出通道數量相等,可以最小化記憶體通路成本,另一個分支進行恒等映射,之後将2 個分支的通道連接配接,最後進行通道重組操作,增加通道間的資訊交流。

NanoDet 的特征融合網絡使用路徑聚合網絡(Path Aggregation Network,PANet)[15]進行淺層特征與深層特征的融合。卷積網絡中,高層特征感受野大、語義資訊豐富,有利于分類;相反,低層特征細節資訊豐富、目标位置準确,有利于定位。是以,特征金字塔網絡(Feature Pyramid Networks,FPN)[16]采用自下而上、自上而下以及橫向連接配接來構造特征。自下而上是卷積網絡前向傳播的過程,選取每個階段的最後一層特征圖建構特征金字塔;自上而下是将上層特征圖進行上采樣得到新的特征圖,新的特征圖尺度需要與下層特征圖保持一緻;橫向連接配接是将新的特征圖和原始的下層特征圖中每個對應元素相加,實作上層特征和下層特征融合。最後,對融合後的每層特征圖進行卷積處理,進而得到融合更加充分的特征圖。PANet在FPN後增加了自底向上的通路,進而縮短了低層與頂層特征之間的資訊路徑。此外,NanoDet 為了使模型更加輕量化,使用插值替代卷積進行特征圖尺度的縮放。

Nanodet 基于FCOS 系列的共享權重檢測頭進行優化,由于移動端模型推理由CPU 進行計算,共享權重并不會加速推理過程,而且在檢測頭非常輕量化的情況下,共享權重使得其檢測能力進一步下降,是以每一層特征使用一組卷積。并且使用批歸一化(Batch Normalization,BN)替代組歸一化(Group Normalization,GN)作為歸一化的方式,BN 在推理時能夠将其歸一化的參數直接融合進卷積中,可以省去這一步計算。此外,為了将其輕量化,選擇使用深度可分離卷積[17]替換普通卷積減少參數量,并将卷積堆疊的數量減少到2組。

損失函數分為2 個部分。一部分是廣義交并比損失(Generalized Intersection over Union Loss,GIoULoss)[18]對應目标預測框的輸出,GIoULoss 相對于交并比損失(Intersection over Union Loss,IoULoss),在解決預測框和真實框不重合的問題時,能夠更好地反映預測框和真實框的關系,可在目标檢測任務中取得更好的結果:

式中,A為預測框;B為真實框;C為框A和框B的最小包圍框。

另一部分是廣義焦點損失(Generalized Focal Loss,GFL)[19],可細分為分布焦點損失(Distribution Focal Loss,DFL)和品質焦點損失(Quality Focal Loss,QFL)。DFL對應目标預測框的輸出,考慮到真實的分布通常與标注位置接近,使網絡能夠快速地聚焦到标注位置附近的數值。QFL 對應目标類别輸出,QFL 對焦點損失(Focal Loss)[20]進行改進,聯合表示類别和定位品質,即将焦點損失中的離散類别标簽轉換為0~1 範圍内的連續品質标簽:

式中,y為0~1範圍内的品質标簽值;σ為預測值;β為縮放因子的超參數,用于控制降級的速率。

3.2 訓練環境及超參數

訓練過程中圖像的尺寸為320像素×320像素;設定訓練輪次數(Epochs)為300;批訓練大小(Batach-Size)為128;優化器使用帶動量的随機梯度下降法,如果目前收斂效果好,即可加速收斂,如果收斂差,則減慢其步伐,其中動量設為0.9,權值衰減設為0.000 1;使用多步長調整學習率,對于不同的訓練階段使用不同的學習率,一方面可以加快訓練的過程,另一方面可以加快網絡收斂,其中初始學習率為0.14,衰減系數為0.1。此外,訓練環境設定如表5所示。

基于深度學習的分心駕駛行為檢測方法

表5 訓練環境設定

3.3 試驗結果分析

對訓練過程進行可視化分析,在訓練集和驗證集上的損失曲線如圖4所示。

基于深度學習的分心駕駛行為檢測方法

圖4 模型在訓練集和驗證集上的訓練損失曲線

為了評價模型的目标檢測性能,本文采用mAP 作為評價名額,mAP 是對每類的平均精度(Average Preci⁃sion,AP)求均值:

其中,AP是精準率-召回率(PR)曲線下的面積,PR曲線以不同置信度門檻值下的召回率(Recall)R為橫坐标,精準率(Precision)P為縱坐标得到:

式中,NTP為真正例數量;NFP為假正例數量;NFN為假反例數量;p(r)為PR曲線;C為目标類别數量。

NanoDet模型在驗證集上的mAP可達到0.833 9,如圖5所示。

基于深度學習的分心駕駛行為檢測方法

圖5 模型驗證集mAP曲線

此外,對模型的檢測效果和推理速度進行測試,檢測效果如圖6所示,測試速度如表6所示。

基于深度學習的分心駕駛行為檢測方法

圖6 分心駕駛檢測效果示例

4 結束語

本文采集駕駛員分心駕駛行為的資料集,包括飲水、使用手機和吸煙,利用在COCO 資料集上預訓練的Yolov5 模型得到分心駕駛行為對應目标物的标注檔案代替人工标注,采用輕量化的目标檢測網絡NanoDet進行訓練,在驗證集上的平均精度均值達到0.833 9,且推理速度和測試準确率皆能達到較好的效果。

繼續閱讀