一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于YOLOv5的疲劳状态检测方法与流程

2022-08-03 06:34:50 来源:中国专利 TAG:

一种基于yolov5的疲劳状态检测方法
技术领域
1.本发明涉及机器学习领域,尤其是一种基于yolov5的疲劳状态检测方法。


背景技术:

2.根据《2019-2025年中国交通事故现场勘察救援设备行业市场专项调研及投资战略研究报告》可得出:每年发生的交通事故平均高达19万起,其中每年因交通事故而死亡的人数达到6万之多。事故的发生多因驾驶员疲劳驾驶等行为造成。根据中国质量新闻网数据显示,2020年中国汽车保有量已达2.81亿辆,驾驶人员达到4.18亿人。随着我国汽车保有量的持续增加,驾驶员人群的日益庞大,交通事故频发的风险随之增高,而疲劳驾驶和看手机、短时间未看道路等危险驾驶行为是交通事故发生的主要原因。
3.然而,目前现有的疲劳驾驶检测方法大多只采用了单一信号以判断驾驶员疲劳状态,实际行车过程中的信号采集容易受到各种因素干扰,有时采集到的数据不够准确,由于判别依据单一,训练出的模型鲁棒性较差,容易发生误报等情况,反而影响驾驶员的行车安全。为了解决上述问题,本发明提出了一种基于yolov5的疲劳状态检测方法,yolov5具有很快的推理速度和小巧的网络结构,在驾驶员疲劳检测中良好的兼顾了精度和速度,从而能在用户发生疲劳现象时快速提醒,保障其生命财产安全。


技术实现要素:

4.本发明的目的在于提供一种基于yolov5的疲劳状态检测方法,以解决上述背景技术中提出的问题。
5.为实现上述目的,本发明提供如下技术方案:一种基于yolov5的疲劳状态检测方法,其步骤如下:
6.步骤1:制作用于疲劳检测的数据集;
7.步骤2:搭建yolov5网络框架;
8.步骤3:将疲劳检测的数据集用yolov5网络进行训练
9.步骤4:将训练的yolov5模型用于疲劳状态实时检测中
10.优选的,步骤1具体包括:
11.步骤1.1:线上收集共4250张,较全面的概括了驾驶员疲劳状态的图像
12.步骤1.2:采用mosaic数据增强结合自适应图片缩放,通过随机缩放、随机裁减、随机排布的方式进行拼接
13.步骤1.3:数据集采用pasval voc格式,使用精灵标记助手对图片进行标注使用
14.优选的,步骤2具体包括:
15.步骤2.1:改进损失函数,采用giou函数作为损失函数,在iou基础上引入惩罚项,计算,公式如下:
16.[0017][0018]
其中a表示检测框,b表示真实框,c代表包含检测框和真实框的最小外接矩形框|c-(a∪b)|表示惩罚项,计算过程如下:
[0019][0020]
其中,b和b
gt
分别表示预测框和真实框的中心点。d=ρ(b,b
gt
)表示两框中心点的距离,c表示预测框与真实框的最小外接矩形的对角线距离。
[0021]
α是做trade-off的参数,衡量长宽比一致性。计算公式如下所示:
[0022][0023][0024]
其中,ω和ω
gt
分别表示预测边框与真实边框的宽度,h和h
gt
分别表示预测边框与真实边框的高度。ciou_loss的计算公式为:
[0025]
ciou_loss=1-ciou
[0026]
采用giou能衡量两框的远近程度;也能反映两框的相交方式,
[0027]
较好的区分检测框和真实框的位置关系。
[0028]
优选的,步骤3具体包括:
[0029]
步骤3.1:对步骤1所标注的数据集采用nms算法对目标最后的检测框进行非极大值抑制处理以获得最优目标框。
[0030]
步骤3.2:将标注的数据集按照7:2:1的比例划分其用于训练、验证和测试,训练集图片数量为2975张,验证集图片数量为850张,测试集图片数量为425张。
[0031]
步骤3.3:设置网络训练参数:输入图像尺寸为640*640,设定学习率为0.02,学习率周期为0.25,训练批次大小为44,总共训练50个epoch,batch-size为1。lr为0.000042。由公式loss=box_loss cls_loss obj_loss可知,yolov5的损失值由3个类别损失构成,分别是表征物体位置、物体类别及是否包含目标物体的损失。
[0032]
优选的,在步骤4中对步骤3训练好的新型yolov5模型进行推理测试。
[0033]
对步骤4的检测进行评估和测试,具体公式如下所示。
[0034]
precision=tp/(tp fp)*100%
[0035]
recall=tp/(tp fn)*100%
[0036]
其中:tp代表预测为正例实际也为正例的数量,fp代表预测为正例但实际为负例的数量,fn代表预测为负例但实际为正例的数量。
[0037]
map是用以衡量识别精度,由所有类别的ap值求均值得到。其中通过计算不同召回率下最高的精确率可绘制p-r曲线,该曲线围成的面积即为该类别的ap值。训练后模型的precision、recall、map_0.5、map_0.5:0.95最高分别能够达到0.9827、0.95113、0.95621、0.8668
[0038]
与现有技术相比,本发明的有益效果为:
[0039]
第一,本发明通过对损失函数进行改进,能够更好地区分检测框和真实框之间的位置关系。
[0040]
第二,本发明无论从检测精度、检测速度还是网络参数、权重文件等与yolo v3,yolov4疲劳状态检测方法相比都有一个质的提高。
附图说明
[0041]
图1为本发明的方法流程图
[0042]
图2为本发明的数据集类别分类
[0043]
图3为本发明的yolov5网络结构图
[0044]
图4为yolov5m的深度、宽度控制图
[0045]
图5为mosaic数据增强图
[0046]
图6为模型性能评价指标图
[0047]
图7为不同模型性能比较图
[0048]
图8为本发明的部分图像检测结果图
具体实施方式
[0049]
下面结合本发明实例中的附图,对本发明一种基于yolov5的疲劳状态检测方法进行具体地描述。
[0050]
一种基于yolov5的疲劳状态检测方法,具体流程图如图1所示,包括以下具体
[0051]
步骤:
[0052]
步骤1:从线上搜集到4250张较全面地概括了驾驶员疲劳状态的图像。
[0053]
使用精灵标记助手对图片进行标注使用,采用pasval voc格式。包括closed_eye,closed_mouth,open_eye,_open_mouth四种类别,其中closed_eye表示待检测人员在闭着眼睛,closed_mouth表示没有张开嘴巴,open_mouth表示正在张开嘴巴,open_eye表示正在睁开眼睛.标注数量如图2和表1所示。
[0054]
表1数据集标注情况
[0055][0056][0057]
按照7:2:1的比例划分其用于训练、验证和测试正确制作用于疲劳状态检测的数
据集。
[0058]
步骤2:对yolov5模型进行分析;
[0059]
yolov5于2020年5月份提出的一种单阶段目标检测算法,yolov5在结构上可分为4部分:输入端、主干部分backbone、neck和prediction,其网络结构如图3所示。
[0060]
yolov5的输入端将输入图像进行一定的数据处理,如缩放至统一尺寸然后送入网络中学习。backbone包含focus、csp及spp结构。csp中的csp1_x、csp2_x结构分别用于backbone、neck中。spp分别采用5、9、13的最大池化,再进行concat融合,扩大感受区。这些结构
[13]
能有效避免对图像区域剪裁、缩放操作导致的图像失真等问题,也解决了卷积神经网络对图像重复特征提取的问题
[14]
。neck部分采取fpn、pan结合的结构,得到一系列混合和组合图像特征的网络层,并将图像特征传递到预测层,加强了信息传播,具备准备保留空间信息的能力。输出端bounding box损失函数为giou_loss,nms对目标最后的检测框进行非极大值抑制处理以获得最优目标框。
[0061]
mosaic数据增强就是把4张图片,通过随机缩放、随机裁减、随机排布的方式进行拼接,处理过程如图5所示。这种数据处理的方式不仅丰富了待检测图片的背景,也在一定程度使待检测目标变小进而扩充小目标,此时将处理好的图片送入网络中训练,相当于每次计算4张图片的数据,这样单gpu即可以达到比较好的效果。
[0062]
yolov5的4个模型yolov5s、yolov5m、yolov5l、yolov5x在结构上没有区别,而在模型的深度、宽度设置上有所区别。在比较yolov5的四个版本性能后、本发明选择了速度较快、精确度较高的的yolov5m为基础模型。该模型的宽度、深度控制如图4所示。
[0063]
模型深度由csp结构控制,在yolov5m模型中第一个csp1使用了2个残差组件。因此是csp1_2;第一个csp2使用了2组卷积,因此是csp2_2,此时随着网络不断加深,其网络特征提取和特征融合的能力也在不断增强。同时模型在不同阶段的卷积核数量不同,直接影响特征图的厚度,进而影响模型宽度,即卷积核数量越多说明网络宽度越宽,网络提取特征的学习能力也越强,其中第一次卷积操作时将原始图像640*640*3接入focus结构,通过切片变为320*320*12的特征图,再经过48个卷积核变为320*320*48的特征图,如图5所示,该操作为后续的特征提取保留了更完整的图片采样信息。
[0064]
以上对yolov5的分析,发现yolov5在自然场景下对目标的检测在准确度和速度上
[0065]
都有着较好的表现,但是在应对遮挡目标状态时的疲劳状态检测较为乏力,会出现一定程度的漏检现象。
[0066]
步骤3:对yolov5模型进行改进优化
[0067]
针对以上问题,本发明对yolov5进行改进,使其在口罩佩戴检测上准确度提高,能够更好的检测司机是否进行疲劳驾驶。
[0068]
目标检测框的改进
[0069]
neck部分采取fpn、pan结合的结构,得到一系列混合和组合图像特征的网络层,并将图像特征传递到预测层,加强了信息传播,具备准备保留空间信息的能力。输出端bounding box损失函数为giou_loss,nms对目标最后的检测框进行非极大值抑制处理以获得最优目标框。
[0070]
损失函数的改进。
[0071]
iou被称为交并比,是评价目标检测效果的指标,其计算的是预测框与真实框间交
集和并集的比值,giou则是在基础上引入惩罚项,方便更精准地反应检测框和真实框的相交情况。相对于iou而言,giou可较好的区分检测框和真实框的位置关系。但当c与a∪b相等时,giou会退化成iou,此时giou优势就将消失。
[0072][0073]
为解决这些问题,本发明采用ciou_loss作为损失函数。如公式所示。其中,b和b
gt
分别表示预测框和真实框的中心点。d=ρ(b,b
gt
)表示两框中心点的距离,c表示预测框与真实框的最小外接矩形的对角线距离。
[0074]
α是做trade-off的参数,衡量长宽比一致性
[0075][0076][0077]
ciou_loss=1-ciou
[0078]
步骤4:训练新型yolov5网络
[0079]
本发明一种基于yolov5的疲劳状态检测方法的实验环境配置选用windows10
[0080]
操作系统,使用geforce mx150显卡,训练框架为pytorch。具体配置如表2
[0081]
所示:
[0082]
表2实验环境配置
[0083][0084]
设置网络训练参数:输入图像尺寸为640*640,设定学习率为0.02,学习率周期为0.25,训练批次大小为44,总共训练50个epoch,batch-size为1。lr为0.000042
[0085]
将步骤3中nms算法获得最优目标框输入到新型yolov5中,将步骤1制作的数据集用于训练。
[0086]
步骤5:新型yolov5m模型评估和测试
[0087]
本发明所采取的模型评价指标包括:准确率(precision)、召回率(recall)、平均精度值(map)。准确率和召回率越高,表示该模型对口罩检测效果越好,map是评估模型性能的一个重要指标map值越高表示模型性能越好。具体公式如下所示。
[0088]
precision=tp/(tp fp)*100%
[0089]
recall=tp/(tp fn)*100%
[0090]
其中:tp代表预测为正例实际也为正例的数量,fp代表预测为正例但实际为负例的数量,fn代表预测为负例但实际为正例的数量。map是用以衡量识别精度,由所有类别的ap值求均值得到。其中通过计算不同召回率下最高的精确率可绘制p-r曲线,该曲线围成的面积即为该类别的ap值。
[0091]
训练后模型的precision、recall、map_0.5、map_0.5:0.95最高分别能够达到
0.9827、0.95113、0.95621、0.8668,具体情况如图6所示。将此方法与yolov4、yolov3进行对比,对比结果见表2和图7,可以得出,以yolov5m为网络模型的疲劳状态检测方法在召回率、准确率以及平均精度均值上均有突出优势,证明了本发明方法应用于疲劳状态检测的有效性。
[0092]
表3算法性能对比
[0093] precisionrecallmap_0.5map_0.5:0.95yolov30.93010.91880.88450.8291yolov40.94420.93180.91470.8372yolov5m0.98270.9510.9560.8668
[0094]
将图片自适应放缩和数据增强后送入网络模型中进行测试,仅需0.047秒得到结果如图8所示。
[0095]
综上所述,本发明为兼顾检测驾驶员疲劳驾驶状态的速度和精度,提出了以yolov5m为基本网络模型的疲劳状态检测算法,进行数据增强处理的同时对损失函数进行了改进,提高了检测精度。同其他算法的对比和验证,证明本算法在准确率、收敛性等指标中均有一定提升,说明本发明方法具有一定优势。尽管已经示出和描述了本发明的具体实施方式,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些具体实施方式进行多种变化、修改、替换,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献