APP下载

基于YOLOv3目标检测算法的驾驶员疲劳检测实现

2020-06-24阳家伟何鑫任月

中国新通信 2020年2期

阳家伟 何鑫 任月

摘要:针对汽车驾驶员疲劳驾驶易导致交通事故这一问题,该文提出了基于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)