【摘要】針對駕駛員分心駕駛檢測領域中深度學習模型參數(shù)量大,在嵌入式設備上難以部署的問題,提出一種基于YOLOv8n的輕量化分心駕駛檢測算法YOLOv8n-SGC。首先,構建ShuffleNetV2輕量化骨干網(wǎng)絡,引入幻影卷積(GhostConv),減少模型參數(shù)量和計算量,實現(xiàn)模型輕量化;其次,在骨干網(wǎng)絡后加入卷積和注意力融合模塊(CAFM),融合全局和局部特征,提升算法檢測精度。驗證結果表明,相較于基準模型,改進模型的參數(shù)量和計算量都有所降低,且體積減小了28.67%,推理時間縮短了41.79%,mAP提高了1.1百分點。
關鍵詞:YOLOv8n ShuffleNetV2 注意力機制 輕量化 分心駕駛檢測
中圖分類號:TP391.41" "文獻標志碼:A" "DOI: 10.20104/j.cnki.1674-6546.20230194
Lightweight Distracted Driving Detection Algorithm Based on Improved YOLOv8n
Zhu Yuhua, Gong Xiaoteng, Wu Ning
(Shenyang University of Technology, Liaoyang 111000)
【Abstract】The large number of parameters in deep learning models for driver distraction detection makes it difficult to deploy them on embedded devices. To address this issue, this paper proposes a lightweight distracted driving detection algorithm, YOLOv8n-SGC, based on YOLOv8n. First, a lightweight backbone network, ShuffleNetV2, is constructed, and Ghost convolution is introduced to reduce the number of model parameters and computational cost, achieving model lightweighting. Second, a Convolution and Attention Fusion Module (CAFM) is added after the backbone network to fuse global and local features and improve the algorithm’s detection accuracy. The results show that the improved algorithm model has a reduction in parameters and computational cost compared to the benchmark model," a 28.67% reduction in volume, a 41.79% reduction in inference time," and an mAP increase of 1.1 percentage points.
Key words: YOLOv8n, ShuffleNetV2, Attention mechanism, Lightweight, Distracted driving detection
【引用格式】 朱玉華, 龔曉騰, 吳寧. 基于改進YOLOv8n的輕量化分心駕駛檢測算法[J]. 汽車工程師, 2024(10): 37-43.
ZHU Y H, GONG X T, WU N. Lightweight Distracted Driving Detection Algorithm Based on Improved YOLOv8n[J]. Automotive Engineer, 2024(10): 37-43.
1 前言
世界衛(wèi)生組織報告顯示,由駕駛員因素引起的交通事故數(shù)量占總交通事故數(shù)量的比例約為90%[1],而分心駕駛是其中的關鍵因素之一。分心駕駛檢測技術可以及時提醒駕駛員將注意力集中于駕駛,進而提高道路交通安全性。
近年來,隨著人工智能和深度學習技術的快速發(fā)展,相關技術越來越多地用于預測和識別駕駛員的分心駕駛行為。歐陽壯[2]等采用卷積神經(jīng)網(wǎng)絡YOLOv5檢測駕駛員是否存在玩手機、吸煙、喝水等分心動作并能發(fā)出警告。高尚兵[3]等提出一種雙分支并行雙向交互神經(jīng)網(wǎng)絡(Bidirectional interaction neural Network based on Vision Transformer,BiViTNet)對駕駛員行為進行識別,在一定程度上提高了檢測精度。莫紫雯[4]等使用Dlib算法的默認人臉檢測器來檢測輸入幀中的人臉,同時獲取人臉的68個關鍵點坐標,根據(jù)人臉關鍵點計算頭部姿態(tài),實現(xiàn)分心駕駛檢測功能。王浩[5]針對駕駛員使用手機行為,提出基于YOLOv4的卷積神經(jīng)網(wǎng)絡改進方案,通過增加網(wǎng)絡的深度和寬度,以及加入特征截取模塊截取不同尺度的特征,并與特征金字塔融合,有效提升了平均精度均值。上述方法雖然適用于駕駛員分心駕駛檢測領域,但對于大部分嵌入式設備,仍存在模型計算量大、參數(shù)多、實時性差的問題[6]。
因此,本文基于YOLOv8n,通過構建輕量級網(wǎng)絡ShuffleNetV2、引入幻影卷積(GhostConv)模塊,并加入卷積和注意力融合模塊(Convolution and Attention Fusion Module,CAFM),提出一種輕量化分心駕駛檢測算法YOLOv8n-SGC,通過ShuffleNetV2和GhostConv降低模型參數(shù)量和計算量,實現(xiàn)模型輕量化,使其能夠部署到嵌入式設備中,利用CAFM融合全局和局部特征,提升算法檢測精度。最后,開展試驗對YOLOv8n-SGC算法進行綜合評估。
2 改進YOLOv8n目標檢測模型
2.1 YOLOv8n模型
YOLO(You Only Look Once)是基于圖像全局信息進行預測的一種端到端的目標檢測系統(tǒng),具有速度快、準確率高、可解釋性強和適用性廣等優(yōu)點。YOLOv8n結合先前版本的經(jīng)驗,融入新的特性和改進,進一步提升了模型性能,網(wǎng)絡結構[7]如圖1所示。
在骨干網(wǎng)絡部分,YOLOv8n借鑒了跨階段部分連接的深度神經(jīng)網(wǎng)絡(Cross Stage Partial Dark Net,CSPDarkNet)結構,并將YOLOv5骨干(Backbone)部分的C3模塊替換為特征提?。–2f)模塊。C2f模塊中的第一個卷積(Conv)模塊用于接收輸入特征圖并生成中間特征圖。中間特征圖經(jīng)分割(Split)操作拆分為兩部分,一部分直接傳遞到拼接(Concat)模塊,另一部分傳遞到多個瓶頸(Bottleneck)中進行進一步卷積、歸一化和激活操作處理,之后進行拼接操作。最后,將拼接后的特征圖通過卷積進行壓縮,得到輸出特征圖。C2f模塊結構如圖2所示[8]。
在特征融合部分,YOLOv8n繼續(xù)采用路徑聚合網(wǎng)絡(Path Aggregation Network,PANet)結構,骨干部分經(jīng)過快速空間金字塔池化(Spatial Pyramid Pooling-Fast,SPPF)模塊后,特征圖的高度H和寬度W經(jīng)過32倍下采樣,對應的Layer4中C2f層的特征圖經(jīng)過8倍下采樣,Layer6中C2f層的特征圖經(jīng)過16倍下采樣。輸入圖片分辨率為640×640,得到Layer4、Layer6、Layer9的分辨率分別為80×80、40×40和20×20,之后經(jīng)過上采樣(Upsample)、通道融合,將PANet的3個輸出分支送入檢測頭(Detect Head)中進行損失(Loss)計算。相較于單向、自上而下的特征金字塔網(wǎng)絡(Feature Pyramid Networks,F(xiàn)PN),PANet為雙向通路網(wǎng)絡,引入了自下向上的路徑,使底層信息更容易傳遞到頂層。
在檢測頭部分,YOLOv8n使用解耦頭,將回歸分支和預測分支分離,提升了算法性能和收斂速度。
YOLOv8n的骨干網(wǎng)絡與輕量化網(wǎng)絡相比,整體模型較大,需要較多的計算資源和較大的存儲空間,這使其在嵌入式設備或移動設備上難以應用。
2.2 YOLOv8n-SGC模型
本文提出的YOLOv8n-SGC駕駛員分心檢測算法主要包括以下改進:為減小模型規(guī)模、降低計算復雜度,引入輕量級ShuffleNetV2網(wǎng)絡和GhostConv,實現(xiàn)模型輕量化;為提升算法檢測精度,在骨干網(wǎng)絡后加入CAFM,使模型可以融合全局和局部特征。YOLOv8n-SGC網(wǎng)絡結構如圖3所示,其中,Maxpool為最大池化層,ShuffleNetV2-1為基本模塊,ShuffleNetV2-2為下采樣模塊,CAFMAttention為卷積和注意力融合模塊。
2.2.1 ShuffleNetV2網(wǎng)絡
ShuffleNetV2是一種為移動設備設計的神經(jīng)網(wǎng)絡架構。相比ShuffleNetV1使用逐點分組卷積(Pointwise Group Convolution)和瓶頸結構而需頻繁訪問內(nèi)存,導致系統(tǒng)能耗增加、效率下降,ShuffleNetV2采用通道分割策略、優(yōu)化通道混洗機制,減輕了計算負擔,提高了系統(tǒng)運行效率。通道分割策略將輸入特征圖的通道分割為兩部分,一個分支保持不變,另一個分支通過多個卷積層,提取更復雜的特征。通道混洗機制將特征圖的通道視為一個二維數(shù)組,并在其中進行通道的重新排列,使分割后通道能夠再次交叉和組合,并使不同通道間的信息充分交換,提高模型表達能力。ShuffleNetV2模塊結構[9]如圖4所示。
ShuffleNetV2基本模塊首先對輸入的特征圖(Feature Map)進行通道拆分(Channel Split),其中,左分支不進行任何處理,右分支經(jīng)過3個卷積(1×1 Conv、3×3 DWConv、1×1 Conv)后,與左分支進行拼接和通道混洗(Channel Shuffle),實現(xiàn)不同通道間的信息交互。
ShuffleNetV2下采樣模塊包括2個分支,左分支經(jīng)過一個3×3的深度卷積(Depth-Wise Convolution,DWConv)和一個1×1的卷積,右分支經(jīng)過1個3×3的深度卷積和2個1×1的卷積。將所有特征圖輸入到下采樣模塊的兩個分支后,在模塊底部對兩條支路的特征圖進行拼接,最后進行通道混洗。
ShuffleNetV2替換YOLOv8n骨干網(wǎng)絡,可在維持高精度的同時提升計算速度、減輕模型體量,使其更適合在邊緣設備上進行實時高效的目標檢測任務。
2.2.2 GhostConv
GhostConv是一種用于模型壓縮的輕量化卷積模塊,通過使用更少的參數(shù)和計算量來提取特征,降低了模型的復雜性和訓練難度[10-11],減少了所需計算資源且易于實現(xiàn)。
GhostConv卷積操作分為3個步驟:首先使用原卷積一半大小的卷積對輸入圖像進行特征提取,然后繼續(xù)經(jīng)過一個5×5的卷積核、步長為1的廉價計算(Cheap Operation),生成新的冗余特征圖,最后將兩種特征圖直連拼接成完整的特征圖得到輸出特征。GhostConv結構[12]如圖5所示。
2.2.3 CAFM注意力機制
卷積運算受限于其局部特性和有限的感知領域,不足以建模全局特征,與其互補的注意力機制(Attention Mechanism)可通過對全局和局部特征進行建模,進而保留更多有用的圖像信息。CAFM混合卷積注意力網(wǎng)絡(Hybrid Convolution and Attention Network,HCANet)中的卷積和注意力融合模塊,由全局分支(Global Branch)和局部分支(Local Branch)組成,全局分支采用自注意力機制以捕獲更廣泛的數(shù)據(jù)信息,局部分支專注于提取局部特征信息。CAFM結構[13]如圖6所示。
在局部分支中,為了加強跨渠道互動和促進信息整合,首先使用1×1卷積來調(diào)整通道維度,之后執(zhí)行通道混洗操作進一步混合和融合通道信息。通道混洗將輸入張量沿通道維度劃分為若干組,在每個組內(nèi)采用深度可分離卷積來引發(fā)通道混洗。隨后每個組得到的輸出張量沿著通道維度連接以生成新的輸出張量,最后利用3×3×3卷積來提取特征。局部分支可以表示為:
[Fconv=W3×3×3(CS(W1×1(Y))]) (1)
式中:Fconv為局部分支的輸出,W1×1為1×1卷積,W3×3×3為3×3×3卷積,CS為通道混洗操作,Y為輸入特征。
在全局分支中,首先通過1×1卷積和3×3深度卷積生成查詢(Q)、鍵(K)、值(V),產(chǎn)生3個形狀為[ B×H×W×C]的張量,其中B、H、W、C分別為樣本數(shù)、特征圖高度、特征圖寬度和通道數(shù)。為了計算注意力圖(Attention Map),需將Q、K、V的空間維度展平,利用Softmax函數(shù)將其重塑為[ B×N×C]的形狀,其中N=H×W,重塑后的Q、K和V分別為[Q]、[K]、[V],通過[Q]和[K]計算注意力圖,減少了計算負擔。全局分支可以表示為:
[Fatt=W1×1Attention(Q,K,V)]+Y (2)
[Attention(Q,K,V)=V]Softmax([QK/α]) (3)
式中:Fatt為全局分支的輸出,Attention[(Q,K,V)]為加權后的輸出特征圖,[V為]加權值,α為可學習的縮放參數(shù)。
CAFM的計算結果為:
[Fout=Fatt+Fconv] (4)
3 試驗驗證
3.1 試驗環(huán)境及參數(shù)配置
首先在計算機平臺上對本文所用模型進行訓練,之后使用RKNN-Toolkit工具將開放神經(jīng)網(wǎng)絡交換(Open Neural Network Exchange,ONNX)模型轉換為可在瑞芯微(Rockchip)嵌入式設備運行的瑞芯微神經(jīng)網(wǎng)絡(Rockchip Neural Network,RKNN)模型,量化類型選擇asymmetric quantized-u8,并通過rknn.eval_perf接口對模型進行性能評估[14]。試驗軟、硬件環(huán)境如表1所示,訓練參數(shù)設置如表2所示。
3.2 數(shù)據(jù)集
本文所用數(shù)據(jù)集部分從模擬駕駛現(xiàn)場采集,部分來自網(wǎng)絡爬蟲。為提高模型泛化能力,先對數(shù)據(jù)集圖片進行反轉、加入各種噪聲、調(diào)整對比度等操作,得到16 000張圖片。使用LabelImg軟件對每張圖片進行數(shù)據(jù)標注,將待檢測行為分為吸煙(smoke)、喝水(drink)、玩手機(playPhone)、打電話(phone)及觸摸頭部(touchHead)5類,訓練集、驗證集及測試集的比例為8∶1∶1。
3.3 評價指標
選用平均精確度均值(mean Average Precision,mAP)、模型參數(shù)量(Params)、模型體積和浮點運算量[15]作為目標檢測算法的性能評價指標。mAP為平均精確度(Average Precision,AP)的均值[16-18],計算公式為:
[m]p-avg[=1m]∑Pavg[(i)] (5)
式中:m為檢測目標的類別數(shù)量,Pavg(i)為類別i的平均精度。
3.4 試驗結果與分析
為驗證YOLOv8n-SGC算法的有效性,本文使用同一數(shù)據(jù)集進行消融實驗對比,結果如表3所示。
由表3可知,在YOLOv8n的基礎上引入ShuffleNetV2輕量化網(wǎng)絡,mAP雖有所下降,但模型參數(shù)量降低了39.20%,模型體積降低了34.17%,模型計算量降低了37.04%。在此基礎上進一步進行模型輕量化,替換頸部網(wǎng)絡的傳統(tǒng)卷積為GhostConv,模型參數(shù)量、計算量進一步降低,mAP也有所降低。為提高輕量化模型的檢測精度,在骨干網(wǎng)絡加入CAFM,mAP相比YOLOv8n基準模型提高了1.12百分點,模型參數(shù)量降低了30.56%,模型容量降低了29.14%,計算量降低了34.56%。由此可見,相較于YOLOv8n,YOLOv8n-SGC既小幅度提高了檢測精度,又降低了模型參數(shù)量、體積和計算量。數(shù)據(jù)集測試效果如圖7所示。
在計算機平臺和嵌入式設備上對YOLOv8n-SGC和YOLOv8n的識別效果進行對比,結果如表4所示。
由表4可知:在計算機平臺上,改進算法的mAP和各類別AP均有小幅提升,模型參數(shù)量、容量、浮點計算量有所降低;在嵌入式設備(瑞芯微RV1126)上,改進算法單張圖片所需的推理時間縮短41.79%,檢測速率提升94.83%,模型體積降低28.67%。
綜上,改進后的YOLOv8n-SGC算法更適用于硬件資源受限的嵌入式設備。
4 結束語
本文以YOLOv8n算法為模型基礎,為滿足移動端嵌入式設備的布置需求,進而實現(xiàn)分心駕駛檢測功能,通過替換基礎模型骨干網(wǎng)絡、部分卷積及增加CAFM模塊對算法進行改進。驗證結果表明,相較于YOLOv8n,本文提出的YOLOv8n-SGC算法在保證檢測精度的前提下,有效降低了計算復雜度和模型體積,明顯提升了檢測速率。
參 考 文 獻
[1]" "Lü A H. Driver Distracted Behavior Detection Using a Light Weight Model Based on the W-MSA[J]. Journal of Physics: Conference Series, 2023.
[2]" "歐陽壯, 朱天軍, 文浩. 基于深度學習的駕駛員分心駕駛行為預警算法[J]. 機電工程技術, 2023(12): 27-30.
OUYANG Z, ZHU T J, WEN H. Driver Distracted Driving Behavior Warning Algorithm Based on Deep Learning[J]. Mechanical amp; Electrical Engineering Technology, 2023(12): 27-30.
[3]" "高尚兵, 張瑩瑩, 王騰, 等. 基于BiViTNet的輕量級駕駛員分心行為檢測方法[J]. 重慶交通大學學報(自然科學版), 2024(2): 57-64.
GAO S B, ZHANG Y Y, WANG T, et al. A Lightweight Driver Distraction Behavior Detection Method Based on BiViTNet[J]. Journal of Chongqing Jiaotong University (Natural Science), 2024(2): 57-64.
[4]" "莫紫雯, 王江濤, 張子翔. 基于樹莓派的駕駛員分心駕駛檢測系統(tǒng)[J]. 電子制作, 2023(21): 61-64+74.
MO Z W, WANG J T, ZHANG Z X. Driver Distracted Driving Detection System Based on Raspberry Pi[J]. Practical Electronics, 2023(21): 61-64+74.
[5]" "王浩. 改進Yolov4的駕駛員打手機行為檢測研究[D]. 鄭州: 中原工學院, 2022.
WANGH H. Research on Improving the Detection of Driver’s Mobile Phone Behavior in Yolov4[D]. Zhengzhou: Zhongyuan University of Technology, 2022.
[6]" "高如新, 杜亞博, 常嘉浩. 基于改進YOLOX-S的輕量化煤矸石檢測方法研究[J]. 河南理工大學學報(自然科學版), 2024(4): 133-140.
GAO R X, DU Y B, CHANG J H. Study on Lightweight Coal Gangue Detection Method Based on Improved YOLOX-S[J]. Journal of Henan Polytechnic University (Natural Science), 2024(4): 133-140.
[7]" "安俊峰, 劉吉強, 盧萌萌, 等. 基于改進YOLOv8的地鐵站內(nèi)乘客異常行為感知[J]. 北京交通大學學報, 2024(2): 76-89.
AN J F, LIU J Q, LU M M, et al. Perception of Passenger Abnormal Behavior in Metro Stations Based on Improved YOLOv8[J]. Journal of Beijing Jiaotong University, 2024(2): 76-89.
[8]" "王譯崧, 華杭波, 孔明, 等. Rep-YOLOv8車輛行人檢測分割算法[J]. 現(xiàn)代電子技術, 2024(9): 143-149.
WANG Y S, HUA H B, KONG M, et al. Rep-YOLOv8 Vehicle and Pedestrian Detection Segmentation Algorithm[J]. Modern Electronics Technique, 2024(9): 143-149.
[9]" "MA N N, ZHANG X Y, ZHENG H T, et al. ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design[C]// Computer Vision - ECCV 2018: 15th European Conference. Munich, Germany: ECCV, 2018: 122-138.
[10] 彭會齊, 陳敏之. 基于YOLOv8的女西褲板型弊病檢測與修正[J]. 服裝學報, 2024(1): 27-35.
PENG H Q, CHEN M Z. Detection and Correction of Women’s Pants Pattern Defects Based on YOLOv8[J]. Journal of Clothing Research, 2024(1): 27-35.
[11] 吳合風, 王國偉, 萬造君, 等. 基于改進YOLOv8s的配電設備紅外目標檢測模型[J]. 電氣技術, 2024(3): 18-23.
WU H F, WANG G W, WAN Z J, et al. Infrared Target Detection Model for Distribution Equipment Based on Improved YOLOv8s[J]. Electrical Engineering, 2024(3): 18-23.
[12] 熊恩杰, 張榮芬, 劉宇紅, 等. 面向交通標志的Ghost-YOLOv8檢測算法[J]. 計算機工程與應用, 2023(20): 200-207.
XIONG E J, ZHANG R F, LIU Y H, et al. Ghost-YOLOv8 Detection Algorithm for Traffic Signs[J]. Computer Engineering and Applications, 2023(20): 200-207.
[13] HU S, GAO F, ZHOU X W, et al. Hybrid Convolutional and Attention Network for Hyperspectral Image Denoising[J]. IEEE Geoscience and Remote Sensing Letters, 2024, 21: 1-5.
[14] 劉永鑫, 高成, 吳政, 等. 一種改進的YOLOv3嵌入式實時車輛檢測算法[J]. 單片機與嵌入式系統(tǒng)應用, 2023(2): 33-37.
LIU Y X, GAO C, WU Z, et al. Improved Algorithm for Embedded Real-Time Vehicle Detection Based on YOLOv3[J]. Microcontrollers amp; Embedded Systems, 2023(2): 33-37.
[15] 陳仁祥, 胡超超, 胡小林, 等. 基于改進YOLOv5的駕駛員分心駕駛檢測[J]. 吉林大學學報(工學版), 2024(4): 959-968.
CHEN R X, HU C C, HU X L, et al. Driver Distracted Driving Detection Based on Improved YOLOv5[J]. Journal of Jilin University (Engineering and Technology Edition), 2024(4): 959-968.
[16] 杜虓龍, 余華平. 基于改進MobileNet-SSD網(wǎng)絡的駕駛員分心行為檢測[J]. 公路交通科技, 2022(3): 160-166.
DU X L, YU H P. Detecting Driver’s Distracted Behavior Based on Improved Mobile Net-SSD Network[J]. Journal of Highway and Transportation Research and Development, 2022(3): 160-166.
[17] 文家燕, 周志文, 辛華健, 等. 基于改進YOLOv7-tiny的高空作業(yè)人員安防裝備檢測算法[J]. 現(xiàn)代電子技術, 2024(13): 164-171.
WEN J Y, ZHOU Z W, XIN H J, et al. High-Altitude Operation Personnel Security Equipment Detection Algorithm Based on Improved YOLOv7-tiny[J]. Modern Electronics Technique, 2024(13): 164-171.
[18] 胡瑛, 劉狄昆, 劉拯, 等. 基于改進YOLOv5的復雜場景下交通標志識別方法[J]. 湖南工程學院學報(自然科學版), 2024, 34(2): 31-38.
HU Y, LIU D K, LIU Z, et al. A Traffic Sign Recognition Method Based on Improved YOLOv5 in Complex Scenes[J]. Journal of Hunan Institute of Engineering (Natural Science Edition), 2024, 34(2): 31-38.
(責任編輯 白 夜)
修改稿收到日期為2024年8月16日。