• 工作总结
  • 工作计划
  • 心得体会
  • 领导讲话
  • 发言稿
  • 演讲稿
  • 述职报告
  • 入党申请
  • 党建材料
  • 党课下载
  • 脱贫攻坚
  • 对照材料
  • 主题教育
  • 事迹材料
  • 谈话记录
  • 扫黑除恶
  • 实施方案
  • 自查整改
  • 调查报告
  • 公文范文
  • 思想汇报
  • 当前位置: 雅意学习网 > 文档大全 > 公文范文 > 正文

    基于YOLOv5的安全头盔佩戴检测方法研究

    时间:2023-06-05 11:00:25 来源:雅意学习网 本文已影响 雅意学习网手机站

    彭名杨,陈亚军

    (西华师范大学 电子信息工程学院,四川 南充 637002)

    近年来,随着物流、外卖等新兴行业的兴起,再加上电动二轮车具有便捷、环保等特性,社会对电动二轮车出行需求量猛增,逐渐成为重要的民生交通工具.电动二轮车给人们带来便捷的同时,也引起了许多问题,如不文明行车.电动二轮车分为电动自行车和电动摩托车两大类.根据相关规定,建议电动自行车骑行人员在骑行过程中佩戴安全头盔,而电动摩托车骑行人员在骑行过程中必须配戴安全头盔.据世界卫生组织统计,佩戴高质量安全头盔能有效减少头部伤害,将死亡风险降低40%[1].由于我国大多数电动二轮车骑行人员交通安全意识相对薄弱,导致部分电动二轮车骑行人员在骑行过程中未佩戴安全头盔[2].为保障电动二轮车骑行人员的出行安全,需要对电动二轮车在骑行过程中是否佩戴安全头盔进行检测.

    对于电动二轮车骑行人员是否佩戴安全头盔的检测方式而言,目前大多依赖人工的方式,需要耗费大量人力物力.随着计算机技术的快速发展,交通管理逐渐向着智能化方向转变[3].现有的检测方法可以分为传统方法与深度学习方法,传统方法需要手工设计特征,面对复杂的背景以及小目标,往往检测效果不佳,深度学习方法则能获得更好的效果.目标检测一般分为一阶段算法和两阶段算法.两阶段代表有RCNN[4]、Fast R-CNN[5]、Faster R-CNN[6]、R-FCN[7]等算法.一阶段代表有YOLO[8-9]系列、SSD[10]算法等.两阶段算法准确率较高,但比较耗时.一阶段算法准确率略低于两阶段算法,检测速度快[11-12].随着YOLO系列算法的不断发展,在准确率方面有了很大提高.

    贾峻苏等[13]人提出了利用可变性部件模型对安全头盔佩戴进行检测,存在部分未得到利用的有效信息.薛瑞晨等[14]人使用改进的YOLOv3算法对头盔进行检测,该方法在精度方面有一定的提升,存在优化的可能.从准确率与速度方面综合考虑,本文选用YOLOv5算法对安全头盔进行检测,在提高骑行人员出行安全、提升城市文明具有重要实际意义.

    1.1 YOLOv5整体结构

    YOLOv5于2020年问世,是一阶段中比较经典的算法.YOLOv5算法经过不断发展,现在已经是YOLOv5-6.0版本.YOLOv5网络结构是由Backbone骨干网络、Neck特征融合网络、Head检测头三部分组成.YOLOv5-6.0版本有5个不同尺度大小的结构,分别为YOLOv5x,YOLOv5l,YOLOv5m,YOLOv5s,YOLOv5n,它们的模型大小依次减少,性能也依次减弱.本文从模型大小、参数量等方面综合考虑,选取YOLOv5s模型作为安全头盔佩戴检测网络.它的网络结构如图1所示.

    图1 YOLOv5s-6.0网络结构

    1.2 Backbone跨阶段局部网络

    YOLOv5s采用CSPDarknet结构的骨干网络.其中CSPDarknet结构包含卷积操作和跨阶段局部网络(CSP).CSP结构借鉴DenseNet网络结构的思想,将梯度信息结合到特征图中,这种结构既能有效利用大量的图像特征,还能减少网络结构中的冗余部分.因此,本文采用CSPDarknet结构作为骨干网络,使模型训练的准确度和训练速度都得到相应的提高.

    1.3 Neck路径聚合网络

    YOLOv5s在Neck部分采用PAN+FPN结构.FPN结构(Pyramidal feature hierarchy)将骨干网络中的不同层之间的特征图进行输出,可以得到不同层之间的特征.PAN结构(Path Aggregation Network)是在取得FPN下采样特征的基础之上再增加上采样进行特征融合.在YOLOv5s中通过使用PAN+FPN结构,可以充分利用和融合骨干网络所提取的特征,从而获得更好的检测性能.

    1.4 激活函数、损失函数和优化算法

    激活函数是一种非线性函数,是神经网络中极其重要的一个函数,它的作用就是使神经网络具有更强大的表达能力,激活函数的优劣直接影响神经网络模型.激活函数有多种,经实验对比得出,在YOLOv5s算法中,SiLU激活函数(Sigmoid Linear Unit)相比其他激活函数能够表现得更好.其计算公式为:

    (1)

    由式(1)绘制出部分函数图像如图2所示.

    图2 SiLU激活函数图像

    目标检测包含两个任务,即图片中有哪些物体,这些物体在图片中什么位置.因此,YOLOv5s算法损失函数包含两种损失,分类损失和边界框损失.其中分类损失使用二分类交叉熵损失,对多标签分类任务而言,二分类交叉熵损失同样适用,其具体公式为:

    在教学过程中,以东北师大数学系编写的《常微分方程》为教材,把丁同仁、李承治等主编的《常微分方程》、王高雄等编著的《常微分方程》及林武忠等主编的《常微分方程》[5]等作为主要教学参考用书。通过学习,使学生掌握常微分方程的基本理论和方法,并初步具备下述三方面能力:

    ln=-wn[yn*log(xn)+(1-yn)*log(1-xn)]

    (2)

    L={l1,…,lN}

    (3)

    式(2)中,li表示预测某个样本为第i个类别的损失,xi表示某个样本为第i个类别的模型预测值,yi表示某个样本为第i个类别的标签值,wi表示某个样本为第i个类别的权重值.公式(3)中,L表示N个样本的总损失值.

    边界框损失采用CIOU-loss损失函数作为边界框(Bounding Box)的损失.而CIOU-loss损失函数存在两个不足,首先,纵横比描述的是相对值,存在一定局限性,其次,未将难易样本平衡问题考虑在其中.针对这些问题,EIOU-loss在CIOU-loss的基础上分别计算宽高的差异值取代了纵横比,同时引入Focal Loss解决难易样本不平衡的问题[15].EIOU-loss损失函数的具体表达式为:

    (4)

    LFocal-EIOU=IOUγLEIOU

    (5)

    式(4)中LIOU代表重叠损失,Ldis代表中心距离损失,Lasp代表宽高损失.与CIOU-loss相比,EIOU-loss在CIOU-loss基础之上增加宽高损失,宽高损失直接使预测框与锚框的宽高之差最小,可以使收敛更快.公式(5)中Focal-EIOUloss损失函数.因此,本文将使用EIOU-loss损失函数取代CIOU-loss损失函数.

    优化算法是指在模型的训练过程中,利用损失函数(Loss Function)得到模型的损失值,根据这个损失值对模型中的权重参数进行优化的算法.YOLOv5s算法提供了三种优化算法,分别是Stochastic Gradient Descent(SGD)、Adaptive Momentum Estimate(Adam)、Adam with decoupled weight decay(AdamW),经过实验对比选择随机梯度下降(SGD)优化算法.

    2.1 整体设计

    使用YOLOv5s算法进行安全头盔佩戴检测分为模型训练与模型推理两部分.模型训练主要步骤包括数据集的构建、YOLOv5s网络的搭建、训练模型.模型推理主要步骤包括待检测的安全头盔图片的采集、图片预处理、安全头盔佩戴检测.系统设计如图3所示.

    图3 系统设计示意图

    在数据集的构建阶段,需要收集一定数量佩戴安全头盔图片与不佩戴安全头盔图片.对于从网络上爬取的图片,需要对图片进行整理,包括数据标注、数据格式转换等.YOLOv5s网络的搭建则需要配置相关环境和设置相关训练所需的参数.训练模型阶段需要根据训练的情况对相关参数进行调整.在安全头盔图片的采集部分,通过摄像头捕获图片.对于从摄像头采集到的图片,需要对图片进行简单预处理,包括改变图片大小,归一化等操作,开源的OpenCV库包含了许多用于处理图片的函数接口可供使用.然后把预处理后的图片输入到安全头盔佩戴检测模型中进行推理,最后在原始图片上展示出推理的结果.

    2.2 数据集

    由于目前没有公开的安全头盔佩戴检测数据集,本实验采用从网络上收集安全头盔佩戴相关图片进行数据集的制作.从网络上收集626张图片,使用LabelImg标注软件进行手动标注,数据集标注为两类:With Helmet和Without Helmet,分别表示戴安全头盔和没有佩戴安全头盔.标注格式为VOC格式,一张图片对应一个xml文件.经过上述步骤,共标注With Helmet标注框1 034个,Without Helmet标注框583个.

    由于YOLOv5s训练需要txt格式文件,因此需要将已标注的xml标注文件转为txt格式,然后把图片和标签文件按约8∶2同时划分.最后得到训练集图片504张,其中With Helmet标注框829个,Without Helmet标注框468个.验证集图片122张,其中With Helmet标注框205个,Without Helmet标注框115个.

    2.3 实验配置及参数设置

    本实验的配置环境由硬件部分和软件部分组成,其中硬件部分:CPU为8核Inter(R) Core(TM) i9-9900K CPU @3.6GHz,NVIDIA GeForce RTX 2070 SUPER显卡,显存为8GB.软件部分:64位Ubuntu16.04操作系统,在anaconda中,配置以python3.8版本的虚拟环境YOLOv5,模型采用pytorch1.10.1框架,其中CUDA10.2版本,CUDNN8.0.44版本,OpenCV4.5.4版本.

    在模型训练阶段需要进行参数设置,部分参数设置如下,由于数据集相对较小,为提高模型检测性能,本文采用迁移学习的方法,采用YOLOv5s.pt作为预训练权重文件.经实验发现,模型迭代次数在20到40个迭代次数就开始收敛,60到80个迭代次数波动变小,所以将迭代次数设为150.迭代批量大小为32,初始学习率为0.01,动量0.937,权重衰减系数为0.000 5.

    2.4 评价标准

    在目标检测中,一般使用召回率(recall)、查准率(precision)、平均精度均值(mAP)作为评价指标.召回率是样本中的正确类别被预测正确的概率,查准率是预测数据集中预测正确正样本总数与实际正样本总数之比.召回率、查准率具体公式为:

    (6)

    (7)

    其中TP表示将正样本预测为正类的类别数.FN表示将负样本预测为负类的类别数.FP表示将负样本预测为正类的类别数.

    mAP为多个类别AP值(Average precision)的平均,AP为某一类别的平均精准度,其值是precision-recall曲线所围成的面积.一般而言,precision和recall描述单张图片的某一类别,AP描述的是数据集中某一类别,而mAP是针对整个数据集.在目标检测领域中,衡量一个模型的性能主要使用mAP指标,它的值在0~1之间,值越大表示效果越好,其计算公式为:

    (8)

    式(8)中N表示验证集中的样本个数,P(k)是查准率在同时识别k个样本时的大小,ΔR(k)表示召回率在检测样本个数从k-1个变为k个时的变化情况,C则是多分类检测任务中类别的个数.

    3.1 实验过程分析

    在模型训练阶段,从图4可以得出precision变化,从图5中可以得出recall变化,从图6中可以得出mAP的变化.precision,recall在迭代了100次后,召回率和查准率变化幅度逐渐变小.由于没有公开的数据集,数据集在制作过程中存在一定标注误差,数据分布不均等因素,导致在训练过程中precision和recall波动较大.平均精度均值(mAP)在模型迭代到25次左右后,幅度波动变小.经过原始的YOLOv5s-6.0算法训练150个迭代,最终模型的mAP值达到83.25%,由于没有公开的数据集,mAP值有一定的参考性.

    为了提升模型的检测能力,使用EIOU-loss损失函数取代CIOU-loss损失函数.从图7中可以看出,在迭代次数80次左右以后,EIOU-loss能够提高模型检测能力.

    图4 precision变化趋势

    图5 recall变化趋势

    图6 mAP变化趋势

    图7 不同损失函数的mAP

    图8 待检测图片

    在模型验证阶段,对训练完成的两个网络,选择在训练过程中迭代次数中最好的模型即best.pt,在验证集进行测试.由于修改的是损失函数,网络结构没有发生变化,两个模型的参数量都一样,参数量约7 M,计算量为15.1 GFLOPs.其中采用CIOU-loss损失函数的mAP为83.2%,单张图片处理时间14.8 ms.采用EIOU-loss损失函数的mAP为84.1%,单张图片处理时间15.6 ms.从实验结果可知,损失函数的替换会导致模型在验证过程中准确率的提高,但处理时间有所增加.

    3.2 结果分析

    在模型推理过程中,将图8待检测安全头盔佩戴图片分别输入到安全头盔佩戴检测模型中进行比较,其中采用CIOU损失函数的模型得到图9,采用EIOU损失函数的模型得到图10.

    图9 采用CIOU损失函数的检测结果

    从图9中可以看出,利用YOLOv5s算法的安全头盔佩戴检测存在一定漏检,通过改进的YOLOv5s网络模型,即使是距离较远的目标也能被检测到减少遗漏现象,在安全头盔佩戴检测任务中能够取得较好的效果.

    本文基于YOLOv5s网络结构,通过制作数据集,训练网络模型,实现了安全头盔佩戴检测,具有一定的应用价值.为提升安全头盔佩戴检测能力,在YOLOv5s算法上对边界框损失函数进行改进.实验结果表明,改进的YOLOv5s算法能够取得较好的效果,该方法具有一定的可行性.但是也存在一些不足,实验中数据集的制作存在误差,标准安全头盔佩戴检测数据集对检测显得非常重要.另外,现实环境往往比实验环境更复杂,依旧存在一些未解决的问题,比如数据中存在遮挡问题,夜晚、雨天等干扰,下一步将针对这些具体的场景来加以改进.

    猜你喜欢 头盔损失样本 犬用战术头盔小学科学(学生版)(2021年10期)2021-12-28胖胖损失了多少元数学小灵通·3-4年级(2021年5期)2021-07-16用样本估计总体复习点拨中学生数理化·高一版(2021年2期)2021-03-19玉米抽穗前倒伏怎么办?怎么减少损失?今日农业(2019年15期)2019-01-03规划·样本领导决策信息(2018年16期)2018-09-27随机微分方程的样本Lyapunov二次型估计数学学习与研究(2017年3期)2017-03-09汉字戴头盔小学生导刊(低年级)(2016年8期)2016-09-24菜烧好了应该尽量马上吃共产党员(辽宁)(2015年2期)2015-12-06时光减速头盔儿童故事画报·发现号趣味百科(2015年3期)2015-12-04Lumos智能头盔,让夜骑更安全IT时代周刊(2015年9期)2015-11-11

    推荐访问:佩戴 头盔 检测方法

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章