陽家偉 何鑫 任月



摘要:針對汽車駕駛員疲勞駕駛易導致交通事故這一問題,該文提出了基于YOLOv3目標檢測算法的駛員疲勞檢測實現方案。YOLOv3算法主要采用Darknet53作為主特征提取網絡,在保證檢測精度的同時提高檢測精準度。YOLOv3算法作為獲取駕駛員面部體征提取算法,將得到的眼部數據,計算判斷的得出眨眼頻率,PERCLOS算法分析判斷駕駛員是否疲勞。試驗表明,所提出的檢測模型的mAP為90.30%,幀率58fps,能夠適應實時監測的要求。
關鍵詞:疲勞監測;YOLOv3;PERCLOS
介紹:隨著汽車數量的逐漸增多,隨之而來的是交通事故的增加,國家統計局數據顯示,2018 年全國交通事故高達2.4萬起。在的交通事故中,由疲勞駕駛引起的事故比例逐漸增加,駕駛員疲勞駕駛已經成為導致交通事故的主要原因[1]當前,國內外眾多研究學者針對于如何對汽車駕駛員是否疲勞開展廣泛深入研究。主要分為三類主要方法。第一類,基于駕駛員人體體征數據參數[2]。該方法主要通過人體體征數據分析駕駛員是否疲勞。雖對是否疲勞檢測的準確性較高,但由于檢測設備過于龐大且檢測過程較為復雜,導致了可能會對駕駛員正常的駕駛汽車造成一定的影響。第二類,基于車輛行為檢測檢測[3-4]。該方法通過對行駛中汽車的行駛的車速、加速度、方向盤轉角等汽車行駛信息來進行判斷。不同品牌的汽車參數性能各不相同,同時不同地形的路況也會對汽車的表現造成一定影響,因此方法存在一定的局限性。第三類,基于計算機機器視覺檢測[5-7]。主要通過車影像設備能夠實時獲取駕駛員行駛汽車過程中的臉部信息,再通過訓練好的算法模型對采集到的臉部信息進行面部特征提取,然后通過分析正常情況下眨眼的頻率與頻率狀態下的眨眼頻率,分析判定駕駛員的當前是否處于疲勞狀態。此方法能夠最大程度上的減少對駕駛員正常駕駛汽車的影響,并具有一定的準確性。駕駛員的疲勞檢測,因為應用于汽車行駛的過程中,需要的是實時數據,因此對目標檢測算法的實時性有著很高的要求。目前基于深度卷積神經網絡(Convolution Neural Network,CNN)的算法應用于三大類目標檢測算法:第一類方法是基于學習搜索的檢測算法,這類算法與其他算法的不同點在于,是通過將圖像特征提取任務轉換為動態視覺搜索任務,這樣雖然能夠很好的提高了特征提取的速度,但是也會出現檢測精度不足的問題。第二類方法,基于候選區域目標檢測器的目標識別算法。如Fast R-CNN[8]、Faster R-CNN[9]等,這類算法檢測精度較高,但檢測速度較慢,需要占用大量計算資源;第三類方法是基于回歸方式的目標檢測算法,如YOLO(You Only LiveOnce)[10][11]系列算法等,此系列算法在不僅在保證目標檢測準確率高的同時,在檢測速度方面也表現出優越的性能。目前YOLO 系列算法已經發展到第三版本即YOLO V3,在對實時性要求比較高的目標檢測任務當中表現相當出色。本文基于YOLOv3[12]目標檢測算法的實現對駕駛員疲勞狀態的檢測。
二、算法
2.1 YOLOv3 算法
YOLOv3 算法相比較于前兩個版本,主要進行了三方面的改進:
(1)新的網絡結構Darknet53,主要借鑒ResNet 殘差網絡思想。在原有的基礎網絡中大量使用殘差連接,緩解了訓練中梯度小時的問題,使得能夠將網絡設計很深,當網絡層次越深,特征表達的效果就越好,分類與預測的性能就能得到提高;
(2)新的特征提取網絡,主要采用多尺度融合預測方法。YOLOv3 算法使用13*13、26*26、52*52 這三種不同尺度的特征圖進行預測,采用金字塔網絡[13]進行提取特征,通過上采樣特征合并,能夠得到更豐富的語義信息,極大的提高檢測算法對微型目標檢測精度。
(3)分類損失函數替換。YOLOv3 算法替換了原來的Softmax 函數改為Logistic 函數。Softmax 函數輸出多個類別預測之間會互相抑制,Logistic 分類器相互獨立,可實現多類別預測。
2.2 特征提取網絡Darknet – 53
YOLOv3 算法采用Darknet – 53 為特征提取網絡,Darknet – 53 網絡中有53 個卷積層,采用LeakyReLu 作為修正函數。網絡結構如圖1 所示。圖中各塊意義如下:DBL:代表卷積、BN 及Leaky ReLU 三層的結合。
Res:代表殘差塊。
上采樣:上采樣使用的方式為池化,即元素賦值擴充的方法使得特征尺寸擴大。
Concat:上采樣后將深層與淺層的特征圖進行Conncat操作,即通道的拼接。
從圖1 中可以看出Darknet – 53 結構的一些新特性:殘差思想、多層特征圖、無池化層。
2.3 疲勞識別
PERCLOS(percentage of eyeIid cIosure over the pupiI)[14] ,PERCLOS 算法指的是在一定單位時間內眼睛閉合時間所占單位時間的比例,當眼睛閉合比例達到70%或80%時,則認為出其中單位時間T 取單位時間= 20s,為每次眨眼時眼睛閉合所用的時間。
三、實驗結果與分析
3.1 實驗環境
本文的實驗模型訓練環境配置:Intel(R) Core(TM) i7-8700處理器,64G 內存,NVIDIA RTX2080Ti 顯卡,CUDA 版本10.0,CUDNN 版本7.4,OpenCV 版本為3.3,操作系統為windows10。
網絡參數配置如下:動量為0.9,權重衰減為0.0005, 迭代次數為500200,學習率使用分步策略,初始值設置為0.001,變化的次數為400000 和450000,比率為0.1 和0.1。
3.2 評價指標
在實際對于駕駛員是否疲勞狀態檢測的實際應用中,識別的準確率和速度尤為重要。若實際檢驗中出現狀態不準確,則十分容易導致對駕駛員疲勞檢測出現錯誤。當駕駛員已經處于疲勞狀態,但系統仍然未能做出檢測,則依舊會存在安全上的隱患。
本文采用每個類別相互獨立的平均精確率均值mAP(meanaverage precision),與每秒機器能夠檢測到圖像數量的幀數FPS(frames per second)作為目標檢測模型性能好壞的評價指標。
精確率與召回率的定義如下:
以本文為例,TP(True Position):表示預測框正確地與標簽匹配,即能夠準確預測出眼睛狀態的數量;P(FalsePositon):表示將背景預測成物體,即指將臉部部位識別為眼睛數量;FN(False Negative):表示本來需要檢測出的物體,模型沒有檢測出,即眼睛沒有檢測出的數量; TN(TrueNegative):表示檢測目標本無背景,檢測模型也沒能夠識別出背景,即指臉部,并沒有識別出的數量。以召回率為橫坐標,以識別的精準度為縱坐標,最終繪制出一條P-R 曲線。曲線下的面積即為AP ,AP 綜合考量了不同召回率下的準確率,不會對P 與R 有任何偏好。每個類別的AP 是相互獨立的,將每個類別的AP 進行平均,即可以得到mAP。
3.3 測試結果
根據以上計算指標得出模型的綜合性能如表1 所示,從表中可以看出檢測精度與召回率都比較高,F1-score 也高達89%整體的應用性能較強。
另外,從圖1 模型訓練的loss 曲線中可以看出,隨著迭代次數逐漸的增加,十分明顯的可以看出收斂速度較快,同時也能夠達到很不錯的學習效果,因此這一個具有代表性意義的典型特征結果可以得出結論模型的學習能力較強。
針對于采集到的數據集,采用YOLOv3 檢測模型進行檢測,P-R 曲線如圖2 所示,mAP 達到了90.30%,一系列可靠實驗的結果表明模型具有良好的普適性。
如表2 所示,采用同一數據集與其他主流目標檢測模型的性能對比后發現,YOLOv3 與Faster R-CNN 在精準度上都達到了90% , 但Faster R-CNN 在檢測的幀率上遠遠不如YOLOv3,達不到實時檢測的需求。雖然YOLOv3 在檢測速度上比YOLOv2 略低,但在滿足實時檢測的幀的同時還保證了檢測的精準度。
四、結束語
本文主要研究,提出了基于YOLOv3 目標檢測算法實現對駕駛員疲勞狀態檢測方法。通過一系列大量具有重復性的精準良好的結果均證明YOLOv3 在目標檢測任務中在檢測速度與精度的上表現出良好的優越性。同時,結合PERCLOS 疲勞判斷方法在是否判斷上具有的普適性,能夠實現對駕駛員是否疲勞的實時檢測。通過實時數據檢測表明,該方法在檢測精度與實時性兩個方面均展現出良好的性能。在后續研究中,將會考慮將模型移植到移動設備中,以適應生產應用。
參考文獻:
[1]Mandal B , Li L , Wang G S , et al. Towards Detection ofBus Driver Fatigue Based on Robust Visual Analysis of Eye State[J].Intelligent Transportation Systems, IEEE Transactions on, 2017,18(3):545-557.
[2]胥川, 王雪松, 陳小鴻,等. 基于決策樹的駕駛疲勞等級分析與判定[J]. 同濟大學學報(自然科學版), 2013, 43(1).
[3]Gustavo Lenis, Patrick Reichensperger, David Sommer,等. Detection of microsleep events in a car driving simulation studyusing electrocardiographic features[C]// Current Directions inBiomedical Engineering. 2016.
[4]Xiaoliang Z , Jiali L , Yugang L , et al. Design of a FatigueDetection System for High-Speed Trains Based on DriverVigilance Using a Wireless Wearable EEG[J]. Sensors, 2017,17(3):486.
[5]李銳, 蔡兵, 劉琳,等. 基于模型的駕駛員眼睛狀態識別[J]. 儀器儀表學報, 2016, 037(001):184-191.
[6]Feng D , Feng M Q . Computer vision for SHM of civilinfrastructure: From dynamic response measurement to damage detection - A review[J]. Engineering Structures, 2018,156(FEB.1):105-117.
[ 7 ] Xiaoyun J , Lingyu Z , Jiang R , et al. Research on Fatigue Driving Detection Method of Facial Features Fusion[J].Power System and Clean Energy, 2016.
[8]張琦,胡廣地,李雨生,等.改進Fast-RCNN 的雙目視覺車輛檢測方法[J].應用光學,2018,39(6):832-838.
[ 9 ] Ren S , He K , Girshick R , et al. Faster R-CNN:Towards Real-Time Object Detection with Region ProposalNetworks[J]. IEEE Transactions on Pattern Analysis and MachineIntelligence, 2015.
[10]Redmon J, Divvala s, Girshick R,et al. You Only LookOnce:Unified, real-time object detection [C]// IEEE ConferenceonCom puter Vision and Pattern Recognition. Las Vegas,USA:IEEE,2016:779- 788.
[ 11 ] Redmon J,Farhadi A. YOLO9000 Better , faster ,stronger[C]//IEEE Conference on Com puter Vision and PatternRecognition.Long Beach, California, USA:IEEE, 2017 :6517-6525.
[ 12 ] Redmon J, Farhadi A. YOLOv3: An incrementalimprovement[C]//IEEE Conference on Com puter Vision andPattern Recog-nition. Honolulu, USA;IEEE, 2017 :6517-6525.[13]Dakhia A,Wang T T,Lu H C .Multi-scale PyramidPooling Network for salient objectdetection[J].Neurocomputing,2019,333:211-220.
[14]Yan P , Yan D , Du C . Design and Implementation of a Driver's Eye State Recognition Algorithm Based on PERCLOS[J].Chinese Journal of Electronics, 2014(04):18-21.
作者簡介:
陽家偉(1999.3.22)男;侗族;籍貫:廣西三江;學歷:本科;單位:西南民族大學。
本項目來源于大學生創新創業訓練計劃項目支持(項目編號:S201910656072)