


















【摘要】針對環衛車駕駛員的駕駛環境和駕駛安全,提出了一種基于改進YOLOv8n算法的駕駛員疲勞檢測方法。使用FasterNet替換YOLOv8n目標檢測算法的主干網絡,并設計FasterNet-YOLO的輕量級網絡模型;在主干網絡和頸部中分別加入壓縮和激勵(SE)模塊與卷積注意力機制(CBAM)模塊,保留輸入的重要特征信息;引入Zero-DCE++算法對攝像頭輸入的視頻流進行亮度增強,處理因駕駛員面部亮度不足所致模型難以識別問題。試驗結果表明:交并比為0.5時的平均類別檢測精度(mAP@0.5)達到98%,平均每幀圖片推理時間縮短至6.95 ms;該方法在不同光照情況下,均能夠實時、準確地檢測駕駛員疲勞狀態。
主題詞:疲勞駕駛 目標檢測 FasterNet-YOLO 注意力機制 低光增強
中圖分類號:U492.8+4" "文獻標志碼:A" "DOI: 10.19620/j.cnki.1000-3703.20240063
A Study on Fatigue Detection for Sanitation Vehicle Drivers Based
on Improved YOLOv8n
Tong Guang, Zhao Bo, Sui Tingting, Liu Shuxin
(Shanghai Dianji University, Shanghai 201306)
【Abstract】With regard to the driving environment and safety of sanitation vehicle drivers, this paper proposes a driver fatigue detection method based on an enhanced YOLOv8n algorithm. Specifically, FasterNet is employed to replace the backbone network of the YOLOv8 object detection algorithm, resulting in the design of a lightweight FasterNet-YOLO network model. To preserve critical feature information from the input feature map, Squeeze-and-Excitation (SE) modules are integrated into the backbone network, while Convolutional Block Attention Modules (CBAM) are added to the neck network. Additionally, the Zero-DCE++ algorithm is introduced to enhance the brightness of video streams captured by cameras, addressing the issue of insufficient brightness in the driver’s face that hinders accurate detection. Experimental results demonstrate that the proposed method achieves an average precision of 98% (mAP@0.5) at an intersection over union ratio of 0.5, with an average inference time per frame reduced to 6.95 ms. This approach can effectively monitor the driver’s fatigue state in real-time under varying lighting conditions.
Key words: Fatigue driving, Object detection, FasterNet-YOLO, Attention Mechanism, Low-light enhancement
1 前言
環衛車輛駕駛員面對特殊工作環境及多樣化作息,極易引發駕駛疲勞,提升交通事故風險。因此,有效的駕駛員疲勞監測系統對于確保駕駛員行車安全至關重要。
駕駛員疲勞檢測算法主要基于駕駛車輛信號和駕駛員生理信號,常根據駕駛員面部特征反映其駕駛狀態,包括眼睛、嘴巴開閉狀態以及駕駛員頭部夾角等[1-2]。通過使用計算機視覺檢測技術,Rohith等[3]依照眼睛的寬高比、口腔開口比和鼻長比等計算面部特征點,利用支持向量機對駕駛員狀態進行分類,但該方法準確性較低且未考慮攝像機對駕駛員面部狀態的捕捉效果。徐敬一等[4]提出了一種基于注意力機制和長短期記憶神經網絡的疲勞駕駛檢測模型,通過對不同特征定位點計算多維特征向量,同時引入注意力機制,使模型更關注檢測目標,但對駕駛員疲勞狀態檢測的準確率較低。
關于提升模型實時性方面,Qu等[5]基于YOLOv5s模型,結合注意力機制提升了人臉檢測的準確性,實現了較高的檢測準確度,但YOLOv5s模型的參數量和計算量較大,導致檢測速度降低。Liu等[6]在YOLOv7模型中引入注意力模塊,同時嵌入小目標檢測頭,增強了模型對眼睛、嘴巴等小型面部目標的特征提取能力,通過簡化網絡架構實現了高速檢測,但該算法在模型訓練和運行的參數量和計算量較大,不利于車載嵌入式設備部署運行。張開生等[7]基于ResNet50和Bi-LSTM的時空網絡對駕駛員疲勞度進行檢測,從空間特征提取出人臉局部的疲勞水平,再輸入Bi-LSTM進行時間特征提取。該方法雖然考慮了空間的特征和駕駛員疲勞的連續性,但其檢測實時性受到雙通道的限制,導致識別精確度較低。
為了保證環衛車輛駕駛員疲勞駕駛狀態檢測的實時性和準確性,增強在光照較暗時模型檢測的魯棒性,本文通過改進單階段目標檢測YOLOv8n網絡,提升模型對駕駛員疲勞狀態檢測的性能,并引入低光增強技術,實現昏暗環境中對駕駛員面部特征的精確捕捉,最后通過對比試驗,證明該方案的有效性。
2 改進的YOLOv8n目標檢測算法
2.1 網絡架構
相較于雙階段目標檢測,YOLOv8系列[8]單階段目標檢測算法檢測速度更快,網絡結構具有輕量級優化空間[9]。本文基于原始YOLOv8n模型,對主干網絡和頸部(Neck)網絡結構進行輕量化改進,模型的網絡結構如圖1所示。
首先,將主干網絡分為5個層級,在前4個層級中,各層級均存在1個嵌入層或1個合并層,用于空間下采樣和通道數量的擴展,原有YOLOv8n的主干網絡替換為更為輕量的FasterNet網絡;然后,在第5個層級中使用激勵和壓縮(Squeeze-and-Excitation,SE)注意力機制[10],提取前4層階段的重要信息,再經過快速空間金字塔池化(Spatial Pyramid Pooling-Faster,SPPF),實現局部特征和全局特征融合;使用簡化的特征金字塔網絡(Feature Pyramid Network,FPN)對頸部網絡進行輕量化,將上、下不同卷積層得到的特征圖融合,并引入CBAM注意力機制[11](Convolutional Block Attention Module),提升通道和空間維度的感知與網絡的預測能力;最后,由于駕駛員面部疲勞檢測的目標較大,所以考慮刪除原始目標檢測頭中小目標檢測頭,保留2個檢測頭即可滿足檢測精度要求。
2.1.1 主干網絡
為了降低模型的參數量和計算量,提高網絡的檢測速度,MobileNet[12]、ShuffleNet[13]和PP-LCNet[14]等網絡使用深度卷積(Depthwise Convolutionv,DWConv)、組卷積[15](Group Convolution,GConv)提取輸入特征圖的特征,雖然能夠降低計算量,但算子經常受到內存訪問增加的影響。FasterNet作為快速、輕量級的神經網絡[16],其網絡結構通過使用部分卷積(Partial Convolution,PConv)提取空間特征,減少了冗余計算和內存訪問,從而降低網絡參數量和計算量。
假設輸入和輸出特征圖為c×h×w,濾波器為k×k,則DWConv的浮點運算次數(Floating-Point Operations,FLOPs)為h×w×k2×c次,標準卷積為h×w×k2×c2次。為了降低計算量,在DWConv卷積后使用2個點卷積(Pointwise Convolution,PWConv)替代標準卷積,避免信息丟失,兩種卷積結構如圖2所示。
普通卷積的內存訪問量為[h×w×2c+k2×c2≈h×w×2c],DWConv的內存訪問量為[h×w×2c'+k2×c'≈h×w×2c']。其中,c、c′分別為普通卷積和DWConv的通道數,且cgt;c′。相較于普通卷積,DWConv雖然能夠降低模型的參數量,但內存訪問數量大于普通卷積。
傳統的DWConv雖然使模型的參數量和計算量有所下降,但網絡復雜度卻顯著增高,計算速度的提升并不明顯。為了滿足駕駛員疲勞狀態檢測的實時性,本文引入了PConv卷積結構,如圖3所示。PConv的FLOPs為[h×w×k2×c2p]次,其中,PConv的通道數[cp=c/4]。因此,PConv的FLOPs僅為傳統卷積的1/16,內存訪問數量為[h×w×2cp+k2×c2≈h×w×2cp],僅為普通卷積的1/4。
2.1.2 注意力模塊
在主干網絡中加入SE注意力模塊,該模塊能夠學習主干提取特征通道中的重要信息,過濾無關信息,同時考慮了主干特征通道間的關系,其結構如圖4所示。
首先,對輸入的特征圖進行使用壓縮(Squeeze)操作,對每個特征圖進行全局池化,壓縮空間維度;然后,對Squeeze輸出的1×1×c特征圖進行激勵(Excitation)操作,學習通道間依賴關系,生成各通道的權重,降低網絡的計算量,并提升網絡的非線性能力;最后,通過縮放(Scale)操作,采用加權平均的方式連接輸出的特征圖。經過SE模塊,模型對目標的特征提取能力提升,同時摒棄不重要的特征。
為了提升頸部網絡的特征提取能力,引入CBAM注意力機模塊,如圖5所示。其中,通道注意力模塊有助于保留通道中的重要信息,空間注意力模塊對特征圖進行池化操作。通過卷積操作將拼接結果降維為1×w×h的特征圖權重;最后,將輸入特征與該權重進行點積,從而實現空間注意力機制。
2.2 Zero-DCE++低光照增強
由于環衛車駕駛員的工作時間為凌晨和夜間,該時段內駕駛員的面部光線較暗,極易影響模型的檢測效果。為此,通過引入低光增強Zero-DCE++(Zero-Reference Deep Curve Estimation)算法[17],對攝像頭采集的照明不良的視頻流進行亮度實時增強,便于對駕駛員的狀態進行監測提醒,算法框架如圖6所示。
Zero-DCE++算法無需使用成對的數據集訓練,自動將低光圖像映射到增強版本的高階曲線,且自適應曲線的參數僅與輸入圖像有關。隨后,使用DCE-Net(Deep Curve Estimation-Net)對圖像進行擬合,結構如圖7所示。
圖像增強后,將每個像素進行[0,1]歸一化,避免圖像信息丟失;擬合后曲線呈單調性,保留了相鄰像素間差異;在反向傳播過程中仍然可微。控制級數和曝光水平,分別將曲線應用于RGB三通道,保留固有的顏色的同時,降低過飽和的風險。該算法的高階曲線為:
[ILE,nx=ILE,n-1x+A(x)ILE,n-1x(1-ILE,n-1x)]
(1)
式中:ILE,n為n次迭代的增強圖像矩陣,x為像素坐標,n為迭代次數,A(x)為給定圖像在[-1,1]間可學習的參數矩陣。
3 試驗驗證與結果分析
3.1 數據集構建及預處理
鑒于環衛車輛的駕駛環境復雜多變,本文試驗招募了20位志愿者,實車采集數據并構建數據集。為了適應不同的光照條件,還原車內環境,使用一輛壓縮式環衛垃圾車,分別在8:00~18:00不同時段、不同光照情況下采集數據,攝像頭的位置及數據集樣本如圖8所示。其中,駕駛狀態分別為正常、哈欠、閉眼、點頭,各駕駛狀態視頻的錄制時長為10~16 s,選擇4類駕駛員狀態樣本共3 965張圖像。
為了增強模型的魯棒性,使用公共數據集YawDD[18]進行數據擴充。通過將視頻數據集按幀裁剪,從公共數據集與自建數據集中隨機選擇感興趣的特征圖,構成本文使用的數據集。將圖像分辨率調整為640像素×640像素,使用Labelimg軟件進行數據標注。數據集以6.4∶1.6∶2劃分訓練集、驗證集和測試集,各駕駛狀態分布如表1所示。
3.2 試驗環境
本文試驗使用處理器為英特爾 Core i7-12700KF,主頻為3.6 GHz,運行內存32 GB,圖像處理器為英偉達 RTX A2000,顯存容量為6 GB,深度學習配置環境Python版本為3.8,PyTorch版本為1.13,攝像頭為普通高清攝像頭,分辨率為1 920×1 080。
3.3 模型性能評價指標
為了檢測模型性能,將參數量、浮點運算次數、交并比為0.5時的平均類別檢測精度(mean Average Precision,mAP)mAP@0.5等作為評價指標。其中,參數量衡量模型復雜度,浮點運算次數反映模型計算復雜度,類別平均精度以各類別的精確度(Precision)P為縱軸,召回率(Recall)R為橫軸繪制曲線所圍成的面積,相關公式如下:
[P=TPTP+FPR=TPTP+FNnAP=01PrdrnmAP=1ni=1nnAP,i] (2)
式中:TP為模型將正確駕駛狀態類別的判斷為正樣本,FP為模型將錯誤的駕駛狀態類別判斷為正樣本,FN為模型將錯誤的駕駛狀態類別判斷為負樣本,nAP為類別精度,nmAP為平均類別精度。
3.4 試驗結果分析
3.4.1 試驗驗證
為了驗證本文模型(FasterNet-YOLO)的有效性,對比SSD(Single Shot MultiBox Detector)模型(MobileNetv2為主干網絡)、YOLOv3-tiny和MobileNetv3-YOLO等模型性能,模型訓練超參數配置如表2所示,對比試驗結果如表3所示。
由表3可知,SSD模型參數量和計算量較大,且模型訓練耗時較長;YOLOv3-tiny的訓練效果與本文模型持平,但平均每幀圖像的識別速度較低;MobileNet-YOLO的參數量雖低于YOLOv8n,但檢測精度更低;本文模型在參數量、計算量和平均每幀圖像識別速度等方面均有所改善,通過增強模型對空間和通道特征提取能力,檢測的精度明顯提升,同時,訓練耗時大幅度降低。
分析本文模型的損失函數和平均類別精度曲線如圖9所示。在訓練迭代100次后,訓練數據精度趨向穩定并逐漸達到最優。因此,本文提出的疲勞檢測算法具有較小的參數量和計算量,并保持了較高的識別精確度,且其檢測速度滿足車載實時性需要。
3.4.2 Zero-DCE++低光增強
由于環衛車輛駕駛員夜間的工作環境照明效果不佳,普通高清攝像頭對光線的捕捉能力較弱,導致難以清晰呈現駕駛員面部特征,模型的檢測能力受到嚴重影響。因此,引入Zero-DCE++低光增強算法,對夜間駕駛室照明不良的視頻流進行低光照增強處理,結果如圖10所示。由于Zero-DCE++為輕量化模型,模型訓練僅需20 min,推理增強一張圖片僅需2~3 ms,將該增光模型與本文疲勞檢測模型結合,模型仍具有良好的實時性。
3.4.3 疲勞駕駛檢測
為了進一步驗證模型檢測效果,使用眼瞼閉合持續時間百分比(Percentage of Eyelid Closure over Pupil for the Longest Blink in a given Observation Period,PERCLOS)[19]評估駕駛員疲勞閉眼程度:
[nPERCLOS=nent×100%] (3)
式中:ne、nt分別為閉眼幀數、檢測時段總幀數。
根據研究發現,人眼眨眼的時間范圍為0.2~0.4 s,為了保證駕駛員疲勞檢測的實時性,同時避免將眨眼誤判為困乏,經驗證,將檢測時段總幀數設置為0.8 s。當nPERCLOSgt;50%時,表明駕駛員處于非眨眼狀態。
按照駕駛員閉眼、正常、哈欠、點頭等駕駛特征檢測幀數,將駕駛員狀態劃分為正常、輕度疲勞、中度疲勞和重度疲勞,評定標準如表4所示。
為了驗證本文模型結合Zero-DCE++低光增強算法的有效性,招募了4位志愿者(未參與自建數據集)進行模擬駕駛,不同光照條件下,駕駛員前側采集的4種駕駛狀態樣本各160個,模型檢測結果如表5所示。
由表5結果可知,在白天光照良好的環境中,僅使用FasterNet-YOLO模型,模型的平均識別精度達到97.83%,視頻流的平均每幀檢測時間達到7.1 ms;在夜間駕駛室照明不良的環境中,引入低光增強算法后,模型準確度達到95.9%,平均每幀檢測時間達到18 ms,檢測效果的可視化如圖11所示,模型檢測精度和實時性均符合安全駕駛及實時性要求。
4 結束語
本文從環衛車輛的應用場景出發,提出了一種基于輕量級FasterNet-YOLO的駕駛員疲勞檢測算法。通過引用注意力機制,提升了模型對駕駛員面部特征提取能力;輕量化主干網絡,降低了模型參數量和計算量,提高了模型檢測速度;通過結合輕量級Zero-DCE++低光增強算法,實時增強了不良照明條件下模型的檢測效果。該方法具有較高的檢測準確度和泛化性,可降低車輛硬件配置要求,在工程應用中具有一定的實際意義。
參 考 文 獻
[1] 張瑞, 朱天軍, 鄒志亮, 等. 駕駛員疲勞駕駛檢測方法研究綜述[J]. 計算機工程與應用, 2022, 58(21): 53-66.
ZHANG R, ZHU T J, ZOU Z L, et al. Review of Research on Driver Fatigue Driving Detection Methods[J]. Computer Engineering and Applications, 2022, 58(21): 53-66.
[2] SIKANDER G, ANWAR S. Driver Fatigue Detection Systems: A Review[J]. IEEE Transactions on Intelligent Transportation Systems, 2018, 20(6): 2339-2352.
[3] ROHITH C, IMMANENI T, KUMAR M A, et al. Driver Drowsiness Detection and Monitoring System Using Machine Learning[J]. Journal of Physics: Conference Series, 2022, 2325(1).
[4] 徐敬一, 田瑾, 劉翔, 等. 基于注意力機制改進的疲勞駕駛檢測方法[J]. 傳感器與微系統, 2024, 43(4): 115-118.
XU J Y, TIAN J, LIU X, et al. Improved Fatigue Driving Detection Method Based on Attention Mechanism[J]. Transducer and Microsystem Technologies, 2024, 43(4): 115-118.
[5] QU J X, WEI Z M, HAN Y M. An Embedded Device-Oriented Fatigue Driving Detection Method Based on a YOLOv5s[J]. Neural Computing and Applications, 2023, 36(7): 3711-3723.
[6] LIU S G, WANG Y J, YU Q G, et al. A Driver Fatigue Detection Algorithm Based on Dynamic Tracking of Small Facial Targets Using YOLOv7: Regular Section[J]. IEICE Transactions on Information and Systems, 2023, 106(11): 1881-1890.
[7] 張開生, 關凱凱, 李昊晨, 等. 基于ResNet-50與Bi-LSTM的駕駛員疲勞檢測算法研究[J]. 實驗室研究與探索, 2023, 42(4): 153-158.
ZHAGN K S, GUAN K K, LI H C, et al. Research on Driver Fatigue Detection Algorithm Based on ResNet-50 and Bi-LSTM[J]. Research and Exploration In Laboratory, 2023, 42(4): 153-158.
[8] REDMON J, DIVVALA S, GIRSHICK R, et al. You Only Look Once: Unified, Real-Time Object Detection[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas: IEEE, 2016: 779-788.
[9] 吳雪, 宋曉茹, 高嵩, 等. 基于深度學習的目標檢測算法綜述[J]. 傳感器與微系統, 2021, 40(2): 4-7+18.
WU X, SONG X R, GAO S, et al. Review of Target Detection Algorithms Based on Deep Learning[J]. Transducer and Microsystem Technologies, 2021, 40(2): 4-7+18.
[10] HU J, SHEN L, SUN G. Squeeze-and-Excitation Networks[C]// 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Salt Lake City: IEEE, 2018: 7132-7141.
[11] WOO S, PARK J, LEE J Y, et al. CBAM: Convolutional Block Attention Module[C]// Proceedings of the European Conference on Computer Vision (ECCV). Munich, Germany: Spriner, 2018.
[12] HOWARD A G, ZHU M L, CHEN B, et al. Mobilenets: Efficient Convolutional Neural Networks for Mobile Vision Applications[EB/OL]. (2017-04-17) [2024-04-10]. https://arxiv.org/abs/1704.04861.
[13] ZHANG X Y, ZHOU X Y, LIN M X, et al. Shufflenet: An Extremely Efficient Convolutional Neural Network for Mobile Devices[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018: 6848-6856.
[14] CUI C, GAO T Q, WEI S Y, et al. PP-LCNet: A Lightweight CPU Convolutional Neural Network[J]. (2021-09-17) [2024-04-10]. https://arxiv.org/abs/2109.15099.
[15] CHOLLET F. Xception: Deep Learning with Depthwise Separable Convolutions[C]// 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu, HI, USA: IEEE, 2017: 1800-1807.
[16] CHEN J R, KAO S H, HE H, et al. Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks[C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Vancouver: IEEE, 2023: 12021-12031.
[17] LI C Y, GUO C L, LOY C C. Learning to Enhance Low-light Image via Zero-reference Deep Curve Estimation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2022, 44(8): 4225-4238.
[18] ABTAHI S, OMIDYEGANEH M, SHIRMOHAMMADI S, et al. YawDD: A Yawning Detection Dataset[C]// Proceedings of the 5th ACM Multimedia Systems Conference. Singapore: Association for Computing Machinery, 2014.
[19] United States. Federal Motor Carrier Safety Administration. Technology Division. PERCLOS: A Valid Psychophysiological Measure of Alertness as Assessed by Psychomotor Vigilance[EB/OL]. (1998-10-01) [2024-04-10]. https://rosap.ntl.bts.gov/view/dot/113.
(責任編輯 瑞 秋)
修改稿收到日期為2024年4月10日。