曹立波 楊灑 艾昌碩 顏京才 李旭升
(1.湖南大學,汽車車身先進設計制造國家重點實驗室,長沙 410082;2.毫末智行科技有限公司保定分公司,保定 071000)
主題詞:分心駕駛 目標檢測 數(shù)據(jù)集標注 輕量化模型
在“人-車-路”復雜道路交通系統(tǒng)中,駕駛員行為是影響交通安全的重要因素之一。中國社科院與某保險機構(gòu)的相關(guān)調(diào)查結(jié)果表明,34%的受訪者在駕駛過程中存在分心駕駛的行為[1]。此外,美國高速公路安全管理局的報道顯示,美國的交通事故中25%~30%的案例與分心駕駛行為有關(guān)[2]。因此,如果能夠?qū)崟r監(jiān)測駕駛員的分心駕駛行為并進行預警,將對提升道路交通安全具有重要意義。
目前,分心駕駛檢測方法主要分為間接檢測法和直接檢測法。間接檢測法即通過傳感器檢測車輛的行駛狀態(tài)特征,如加速度、運行軌跡和轉(zhuǎn)向盤轉(zhuǎn)角變化等,從而間接獲取駕駛員的分心狀態(tài)。間接檢測法的成本相對較低,且不影響駕駛員的操作行為,但檢測精度易受駕駛條件和駕駛員駕駛習慣等影響,研究方法和準確性均需改進[3-4]。直接監(jiān)測法即利用駕駛員生理參數(shù)或視覺特征直接獲取其狀態(tài)數(shù)據(jù)?;谏韰?shù)的監(jiān)測方法通過穿戴醫(yī)療設備獲取駕駛員的心電信號、腦電信號和肌電信號,提取分析信號信息,獲取駕駛員狀態(tài)[5],該方法準確率較高,但相關(guān)設備成本較高,且可能影響正常駕駛,實際應用難度較高。
隨著計算機視覺和深度學習技術(shù)的發(fā)展,可以通過輸入圖像進行端到端的分心駕駛行為檢測[6-8]。黃向康[9]采用改進后的多任務級聯(lián)卷積神經(jīng)網(wǎng)絡進行駕駛員人臉檢測,得到人臉檢測框和5個特征點,根據(jù)檢測結(jié)果進行分心行為判別,其中包括通話和吸煙2種行為,檢測準確率分別為93.3%和92.4%。龐再統(tǒng)[10]針對圖像分類網(wǎng)絡MobileNetV3 進行改進,提出輕量化模型SMobileNet,對分心駕駛行為進行識別以實現(xiàn)實時監(jiān)測。
本文采集分心駕駛數(shù)據(jù)集,包括駕駛員飲水、使用手機和吸煙3 種分心駕駛行為的圖像,利用預訓練的Yolov5[11](You Only Look Once)模型得到分心駕駛行為對應目標物的標注文件,最后,采用一種輕量化的目標檢測網(wǎng)絡NanoDet[12]進行訓練,以便在移動端進行部署。
數(shù)據(jù)集圖像來源包括多視角、多模態(tài)和多光譜駕駛員行為數(shù)據(jù)集(Multiview,Multimodal and Multispectral Driver Action Dataset,3MDAD)和駕駛員監(jiān)測數(shù)據(jù)集(Driver Monitoring Dataset,DMD),采集19 位駕駛員飲水、使用手機和吸煙的視頻,對視頻進行裁剪并逐幀輸出以便得到圖像集合。其中,3MDAD 數(shù)據(jù)集共包含16類駕駛行為,本文提取駕駛員使用右手發(fā)短信、使用左手發(fā)短信、使用右手通話、使用左手通話、拍照、使用右手飲水、使用左手飲水、吸煙類別的圖像。其中,使用右手發(fā)短信、使用左手發(fā)短信、使用右手通話、使用左手通話、拍照統(tǒng)一為使用手機類行為;使用右手飲水、使用左手飲水統(tǒng)一為飲水類行為。整理后的數(shù)據(jù)集包括駕駛員不同角度的飲水、使用手機和吸煙3類圖像,如表1和圖1所示。
圖1 分心駕駛行為圖像示例
表1 數(shù)據(jù)集圖像數(shù)量
本文采用基于COCO[13]數(shù)據(jù)集預訓練的Yolov5 快速標注方法對數(shù)據(jù)集圖像進行標注。
具有不同網(wǎng)絡深度和寬度的5 種Yolov5 模型在COCO val2017 數(shù)據(jù)集上的性能如表2 所示。綜合考慮檢測精度和推理速度,選取Yolov5l 作為推理時的權(quán)重文件。
表2 Yolov5的5種網(wǎng)絡模型
COCO數(shù)據(jù)集共包含80個數(shù)據(jù)類別,本文只需檢測瓶子(Bottle)、高腳杯(Wine glass)、茶杯(Cup)和手機(Cellphone)共4 類目標物。將瓶子、高腳杯、茶杯統(tǒng)一為水瓶類數(shù)據(jù),用于得到駕駛員飲水行為目標檢測物的標注文件;手機用于得到駕駛員使用手機行為目標檢測物的標注文件。此外,COCO 數(shù)據(jù)集不包含香煙類別,需要對香煙類別進行單獨預訓練,用于得到駕駛員吸煙行為目標檢測物的標注文件。
Yolov5模型推理得到的txt文件包括目標物的種類信息、檢測框中心點歸一化坐標信息和檢測框歸一化寬高信息。需要對推理過程中出現(xiàn)的冗余檢測、錯誤檢測和遺漏檢測等情況進行剔除、修正或重復推理,如圖2所示。
圖2 數(shù)據(jù)圖像推理結(jié)果示例
最終整理得到的正確推理的圖像數(shù)量如表3 所示。將數(shù)據(jù)集的每一類駕駛行為隨機分為訓練集和驗證集。其中,訓練集占數(shù)據(jù)集總量的96%,驗證集占數(shù)據(jù)集總量的4%。之后對正確的txt 文件進行格式轉(zhuǎn)換得到json格式的數(shù)據(jù)集標注文件。
表3 帶有標注的分心駕駛行為數(shù)據(jù)集
Yolo、單次多邊框檢測器(Single Shot Multibox Detector,SSD)、區(qū)域卷積神經(jīng)網(wǎng)絡(Region-based Convolutional Netural Network,R-CNN)等目標檢測模型可以實現(xiàn)較好的精度和速度,但模型相對較大,不適合在移動端嵌入式設備上進行部署。而輕量級目標檢測模型NanoDet分別對主干網(wǎng)絡、特征融合網(wǎng)絡和檢測頭網(wǎng)絡進行輕量化,具有檢測速度快、模型文件小等優(yōu)點,并且提供了新卷積神經(jīng)網(wǎng)絡(New Convolutional Netural Network,NCNN)推理框架下的C++代碼,可直接在移動端進行部署。NanoDet 模型和Yolo 系列模型在COCO val2017數(shù)據(jù)集上的性能對比如表4所示,NanoDet 模型具有參數(shù)量小、模型尺寸小和推理速度快的優(yōu)勢。因此,本文選用NanoDet作為訓練模型。
表4 NanoDet模型和Yolo模型性能比較
NanoDet 是單階段的無錨框檢測模型,該設計基于全卷積單階段(Fully Convolutional One-Stage,F(xiàn)COS)檢測算法,NanoDet模型結(jié)構(gòu)如圖3所示。
圖3 NanoDet模型結(jié)構(gòu)
NanoDet 的主干網(wǎng)絡使用ShuffleNetV2[14],去掉了最后一層卷積,并且抽取8倍、16倍、32倍下采樣的特征輸入特征融合網(wǎng)絡。ShuffleNetV2 通過通道拆分操作,將通道均分為2 個分支,一個分支進行卷積操作,并使輸入和輸出通道數(shù)量相等,可以最小化內(nèi)存訪問成本,另一個分支進行恒等映射,之后將2 個分支的通道連接,最后進行通道重組操作,增加通道間的信息交流。
NanoDet 的特征融合網(wǎng)絡使用路徑聚合網(wǎng)絡(Path Aggregation Network,PANet)[15]進行淺層特征與深層特征的融合。卷積網(wǎng)絡中,高層特征感受野大、語義信息豐富,有利于分類;相反,低層特征細節(jié)信息豐富、目標位置準確,有利于定位。因此,特征金字塔網(wǎng)絡(Feature Pyramid Networks,F(xiàn)PN)[16]采用自下而上、自上而下以及橫向連接來構(gòu)造特征。自下而上是卷積網(wǎng)絡前向傳播的過程,選取每個階段的最后一層特征圖構(gòu)建特征金字塔;自上而下是將上層特征圖進行上采樣得到新的特征圖,新的特征圖尺度需要與下層特征圖保持一致;橫向連接是將新的特征圖和原始的下層特征圖中每個對應元素相加,實現(xiàn)上層特征和下層特征融合。最后,對融合后的每層特征圖進行卷積處理,從而得到融合更加充分的特征圖。PANet在FPN后增加了自底向上的通路,從而縮短了低層與頂層特征之間的信息路徑。此外,NanoDet 為了使模型更加輕量化,使用插值替代卷積進行特征圖尺度的縮放。
Nanodet 基于FCOS 系列的共享權(quán)重檢測頭進行優(yōu)化,由于移動端模型推理由CPU 進行計算,共享權(quán)重并不會加速推理過程,而且在檢測頭非常輕量化的情況下,共享權(quán)重使得其檢測能力進一步下降,因此每一層特征使用一組卷積。并且使用批歸一化(Batch Normalization,BN)替代組歸一化(Group Normalization,GN)作為歸一化的方式,BN 在推理時能夠?qū)⑵錃w一化的參數(shù)直接融合進卷積中,可以省去這一步計算。此外,為了將其輕量化,選擇使用深度可分離卷積[17]替換普通卷積減少參數(shù)量,并將卷積堆疊的數(shù)量減少到2組。
損失函數(shù)分為2 個部分。一部分是廣義交并比損失(Generalized Intersection over Union Loss,GIoULoss)[18]對應目標預測框的輸出,GIoULoss 相對于交并比損失(Intersection over Union Loss,IoULoss),在解決預測框和真實框不重合的問題時,能夠更好地反映預測框和真實框的關(guān)系,可在目標檢測任務中取得更好的結(jié)果:
式中,A為預測框;B為真實框;C為框A和框B的最小包圍框。
另一部分是廣義焦點損失(Generalized Focal Loss,GFL)[19],可細分為分布焦點損失(Distribution Focal Loss,DFL)和質(zhì)量焦點損失(Quality Focal Loss,QFL)。DFL對應目標預測框的輸出,考慮到真實的分布通常與標注位置接近,使網(wǎng)絡能夠快速地聚焦到標注位置附近的數(shù)值。QFL 對應目標類別輸出,QFL 對焦點損失(Focal Loss)[20]進行改進,聯(lián)合表示類別和定位質(zhì)量,即將焦點損失中的離散類別標簽轉(zhuǎn)換為0~1 范圍內(nèi)的連續(xù)質(zhì)量標簽:
式中,y為0~1范圍內(nèi)的質(zhì)量標簽值;σ為預測值;β為縮放因子的超參數(shù),用于控制降權(quán)的速率。
訓練過程中圖像的尺寸為320像素×320像素;設置訓練輪次數(shù)(Epochs)為300;批訓練大?。˙atach-Size)為128;優(yōu)化器使用帶動量的隨機梯度下降法,如果當前收斂效果好,即可加速收斂,如果收斂差,則減慢其步伐,其中動量設為0.9,權(quán)值衰減設為0.000 1;使用多步長調(diào)整學習率,對于不同的訓練階段使用不同的學習率,一方面可以加快訓練的過程,另一方面可以加快網(wǎng)絡收斂,其中初始學習率為0.14,衰減系數(shù)為0.1。此外,訓練環(huán)境設置如表5所示。
表5 訓練環(huán)境設置
對訓練過程進行可視化分析,在訓練集和驗證集上的損失曲線如圖4所示。
圖4 模型在訓練集和驗證集上的訓練損失曲線
為了評價模型的目標檢測性能,本文采用mAP 作為評價指標,mAP 是對每類的平均精度(Average Preci?sion,AP)求均值:
其中,AP是精準率-召回率(PR)曲線下的面積,PR曲線以不同置信度閾值下的召回率(Recall)R為橫坐標,精準率(Precision)P為縱坐標得到:
式中,NTP為真正例數(shù)量;NFP為假正例數(shù)量;NFN為假反例數(shù)量;p(r)為PR曲線;C為目標類別數(shù)量。
NanoDet模型在驗證集上的mAP可達到0.833 9,如圖5所示。
圖5 模型驗證集mAP曲線
此外,對模型的檢測效果和推理速度進行測試,檢測效果如圖6所示,測試速度如表6所示。
圖6 分心駕駛檢測效果示例
本文采集駕駛員分心駕駛行為的數(shù)據(jù)集,包括飲水、使用手機和吸煙,利用在COCO 數(shù)據(jù)集上預訓練的Yolov5 模型得到分心駕駛行為對應目標物的標注文件代替人工標注,采用輕量化的目標檢測網(wǎng)絡NanoDet進行訓練,在驗證集上的平均精度均值達到0.833 9,且推理速度和測試準確率皆能達到較好的效果。