• 工作总结
  • 工作计划
  • 读后感
  • 发言稿
  • 心得体会
  • 思想汇报
  • 述职报告
  • 作文大全
  • 教学设计
  • 不忘初心
  • 打黑除恶
  • 党课下载
  • 主题教育
  • 谈话记录
  • 申请书
  • 对照材料
  • 自查报告
  • 整改报告
  • 脱贫攻坚
  • 党建材料
  • 观后感
  • 评语
  • 口号
  • 规章制度
  • 事迹材料
  • 策划方案
  • 工作汇报
  • 讲话稿
  • 公文范文
  • 致辞稿
  • 调查报告
  • 学习强国
  • 疫情防控
  • 振兴乡镇
  • 工作要点
  • 治国理政
  • 十九届五中全会
  • 教育整顿
  • 党史学习
  • 建党100周
  • 当前位置: 蜗牛文摘网 > 实用文档 > 公文范文 > 改进YOLOv5s算法的安全帽佩戴检测

    改进YOLOv5s算法的安全帽佩戴检测

    时间:2023-03-04 14:00:04 来源:千叶帆 本文已影响

    宋晓凤,吴云军,刘冰冰,张青林

    1.华中师范大学 物理科学与技术学院,武汉430079

    2.火箭军装备部驻武汉地区第一军事代表室,武汉430079

    安全帽作为一种最常见和最实用的个人防护用具,能够有效地防止和减轻外来危险对头部的伤害。但在众多施工场地中,安全帽的佩戴很容易被施工人员忽略,从而引发人身伤害的事故。然而在我国大多数施工场所中采用人工进行安全帽的佩戴检测,这种原始的检测方法不仅耗时耗力,而且容易产生误差。为了解决现有施工场地存在的这一安全管理问题,对施工场地进行智能化的管理,因此对施工人员进行安全帽佩戴状态的实时检测具有重大的研究意义。

    目标检测被应用于人脸识别[1]、监控安全、自动驾驶[2]等众多领域。现有的目标检测算法包括传统目标检测算法和基于深度学习的目标检测算法。传统目标检测算法步骤为先通过滑动窗口选择候选区域,然后使用手工设计的特征提取器提取特征,最后将提取得到的特征送入分类器中进行检测。同时随着卷积神经网络(convolutional neural networks,CNN)的快速发展,利用CNN网络的基于深度学习的目标检测算法利用大量的数据集对模型进行训练,使其具备更强的泛化能力,更适合复杂多变的场景。

    本文将目标检测算法应用于安全帽佩戴检测中。目前基于深度学习的安全帽佩戴检测算法可以分为两种,一种是基于Region-proposal的两阶段方法;
    另一种是基于回归的一阶段方法。两阶段方法首先生成一组候选区域框,然后对它们进一步去分类和回归,代表性的方法有R-CNN[3]、Fast R-CNN[4]、Faster R-CNN[5]等。在传统目标检测算法中文献[6]利用梯度方向直方图(histogram of oriented gradient,HOG)对施工人员进行检测,然后利用原霍夫变换进行特征提取,最后利用分类器实现对安全帽的检测。在基于Region-proposal的两阶段方法中,文献[7]孙国栋等人通过在Faster R-CNN中添加自注意力机制来获取多尺度的全局信息,使其得到更丰富的高层语义特征信息并将更大的感受野范围引入模型,然后再对锚框进行改进,强化网络对小目标的表达信息,改进后的Faster R-CNN算法在不同场景和不同尺度的安全帽上都有着很好的检测效果。基于回归的一阶段方法则是直接进行目标的类别和位置的回归,代表方法有SDD[8]、YOLO[9-12]系列等。在一阶段算法中,文献[13]张勇等人在YOLOv3结构中采用DenseNet(密集卷积网络)方法处理低分辨率的特征层,在保持特征提取充足的同时降低了计算的复杂度,从而提高了算法的检测和收敛性能,改进后的YOLOv3算法符合安全帽佩戴检测的要求。文献[14]王雨生等人在YOLOv4结构的基础上通过对肤色特征识别和头部检测获取头部区域,并进行交叉实验,最后通过实验对比分析安全帽检测的性能。文献[15]王英郦在YOLOv5结构中引入轻量级注意力模块CBAM,同时使用SIoU_Loss损失函数替代原始的损失函数,以此来提高模型的收敛效果。最终提升了安全帽佩戴检测的准确性。

    在实际应用中,在保证安全帽佩戴检测精度的前提下,也应尽可能地提高安全帽佩戴检测的速度,因此本文以轻量级的YOLOv5s为基础来进行安全帽佩戴检测的研究。首先,针对特征提取不充分等问题,采用在YOLOv5s中加入CoordAtt坐标注意力机制,使其重新分配每个空间和通道的权重,增强特征间的信息传播。其次针对原主干网对细粒度特征融合不充分的问题,采用Res2NetBlock中的残差块去替代YOLOv5s中的残差块,使其能够在更细粒度的层面上对特征进行有效的融合。实验结果表明,本文改进后的算法在安全帽佩戴检测中取得了良好的检测效果。

    YOLOv5检测算法是由Ultralytics公司于2020年发布的,是一种轻量级的模型,并且YOLOv5s使用depth_multiple和width_multiple两个参数来控制四种结构,这四种结构分别是YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。YOLOv5s如图1所示,包含输入端、Backbone(主干网)、Neck(多尺度特征融合网络),以及Prediction(检测头)。

    图1 YOLOv5s结构图Fig.1 YOLOv5s structure diagram

    1.1 输入端

    YOLOv5s的输入端采用了Mosaic数据增强、自适应图片缩放等技术。首先,Mosaic数据增强将四张图像通过随机缩放、剪切和排列等方式组合在一起。使用Mosaic数据增强具有丰富数据集、减少GPU使用的数量等优点。其次,输入端采用自适应图片缩放的技术。在常用的目标检测算法中所采用的压缩填充方式,导致图像两端的黑色填充较多,出现信息冗余,影响推理的速度。在YOLOv5算法中,自适应地在原始图像上添加最小的黑边。图像两端的黑色边缘高度变小,推理时计算量减小,即目标检测速度提高。

    1.2 Backbone(主干网)

    Backbone主干网主要由Focus结构和CSP结构组成。Focus结构中最核心的就是切片操作。在YOLOv5中,网络的输入图像是大小为640×640×3,然后将图片输入Focus结构,进行切片操作,先变成320×320×12的特征图,再经过32个卷积核的卷积操作,最终变成320×320×32的特征图。

    CSP结构借鉴了CSPNet[16]的设计思路,YOLOv5s在主干网络和Neck中设计了两种不同的CSP结构。Backbone中采用CSP结构先将原始输入分成两个分支,分别进行卷积操作和N个残差块的操作,最后将两个分支进行拼接,在减少计算量的同时也可以保护准确率。

    1.3 Neck(多尺度特征融合网络)

    Neck部分采用的是SPP+PANet[17]结构,其中PANet由FPN+PAN结构组成。为了更一步提高特征提取的能力。结合FPN和PAN,FPN层自顶向下传达强语义特征,而特征金字塔则自底向上传达强定位特征,从不同的主干层聚合不同检测层的参数,采用的不再是普通的卷积操作,而是采用的CSP结构,从而进一步提高网络特征融合的能力。SPP模块在主干网之后,采用K={1×1,5×5,9×9,13×13}的最大池化的方式,对不同尺度的特征图进行Concat操作。采用SPP模块比单纯使用K×K最大池化的方式,更有效地增加主干特征的可接受性,并显著地分离了最重要的上下文信息。

    1.4 Prediction(检测头)

    目标检测任务的损失函数一般由Classificition Loss(分类损失函数)和Bounding Box Regeression Loss(回归损失函数)两部分组成。Bounding Box Regeression的Loss近些年的发展过程是由2016年提出的IOU_Loss[18]:主要考虑检测框和目标框的重叠面积;
    到2019年提出的GIOU_Loss[19]:在IOU的基础上,解决边界框不重合时所出现的问题;
    到2020年提出的DIOU_Loss[20]:在IOU和GIOU的基础上,考虑边界框中心点距离的信息;
    最后到2020年提出的CIOU_Loss:在DIOU的基础上,考虑边界框宽高比的尺度信息。在YOLOv5中Prediction采用了CIOU_Loss做Bounding box的损失函数,使得预测框回归的速度和精度更高一些。

    2.1 CoordAtt坐标注意力机制

    文献[21]提出了通道注意力机制SE(squeeze-andexcitation attention),对于建模非常有效,然而它往往忽视了位置信息的重要性,而视觉中目标的空间结构是非常重要的。文献[22]提出了卷积块注意力机制CBAM(convolutional block attention module),CBAM通过在通道上进行全局池化引入位置信息,但该方法只能获取局部信息,不能获取长范围依赖的信息。CBAM是通过每个位置的多个通道来取最大值和平均值作为加权系数,因此这种加权方式考虑到的只是局部信息。

    CoordAtt坐标注意力机制如图2所示。

    图2 CoordAtt坐标注意力机制结构图Fig.2 CoordAtt coordinate attention mechanism structure diagram

    CoordAtt坐标注意力机制是一种新颖、高效的注意力机制,通过将位置信息嵌入到通道注意力中,可以在更大的范围内获取信息,避免引入较大的开销。为了避免造成损失位置信息,该注意力机制不是引入2D全局池化,而是提出分解通道注意力为两个并行的1D特征编码,分别沿着垂直和水平方向将输入特征聚合为两个单独的方向感知特征映射,来高效地整合空间坐标信息。这两个具有嵌入方向特定信息的特征映射随后分别特征编码为两个注意映射,每个注意映射捕获输入特征图沿一个空间方向的远距离依赖关系。因此,位置信息可以存储在生成的注意映射中。然后,将两个注意映射相乘应用于输入特征映射,强调兴趣表达。

    具体来说,给定输入X,使用两个空间范围的池化核(H,1)或(1,W)分别沿水平坐标和垂直坐标对每个通道进行编码。因此,第c通道在高度h的输出可以公式化为:

    类似地,宽度为w的第c个通道的输出可以写为:

    上述两者变换分别沿两个空间方向聚合特征,生成一对方向感知特征映射,给定由公式(1)和公式(2)生成的聚合特征映射,首先将它们拼接起来,然后将它们传到共享的1×1卷积变换函数F1,得到:其中,[zh,zw]表示沿空间维度的拼接操作,δ是一个非线性激活函数,f∈RC/r×(H+W)是在水平方向和垂直方向对空间信息进行编码的中间特征映射。然后再将f沿空间维度拆分为两个独立的张量f h∈RC/r×H和f w∈RC/r×W。再使用两个1×1卷积变换Fh和Fw被分别用于转换f h和f w为与输入X具有一样通道数的张量,得到:

    输出gh和gw分别展开并用作注意权重。最后,坐标注意力机制的输出Y可以表示为:

    加入CoordAtt坐标注意力机制后的主干网网络的详细参数如表1所示以及主干网结构图如图3所示。

    图3 集成CoordAtt后的主干网结构图Fig.3 Backbone network structure after CoordAtt integration

    表1 集成CoordAtt后的主干网参数Table 1 Backbone parameters after CoordAtt integration

    2.2 Res2Net残差结构

    对于目标检测来说,在多尺度上表示特征是很关键的。在卷积神经网络(CNNs)迅速发展的同时,其也显现出较强的多尺度表示能力,在应用中也获得了较好的结果。在YOLOv5中,使用BottleNeck结构传播梯度信息使其达到差异最大化。但是文献[16]则表明,这样的传播方式,网络中仍存在着大量的梯度信息重复。如果能够充分减少梯度信息的重复,则网络的学习能力将会得到很大的提升。为了使网络可以在更细粒度的层次上增强特征融合的能力,从而有效地减少信息梯度重复的可能性。文献[23]提出的Res2Net网络,在一个残差块内构造分层的类残差连接。Res2Net以粒度级别表示多尺度的特征,同时也增加了感受野的范围。为了使网络的学习能力有所提高,因此重新构建了新的残差块Res2NetBlock去替代YOLOv5s算法的残差块Bottleneck。Res2NetBlock结构如图4所示。

    图4 Res2NetBlock结构图Fig.4 Structure diagram of Res2NetBlock

    Res2NetBlock没有像以往一样使用一组3×3的滤波器来提取特征,而是发现具有更强的多尺度特征提取能力的替代框架,同时保持类似的计算负载。将一组3×3的滤波器替换为一组较小的滤波器,同时用一个梯度残差块连接不同的滤波器组。

    如图4所示,将特征图通过1×1的卷积后,被均匀地分割为S个特征映射子集,用xi表示,其中i∈{1,2,…,}s与输入特征图相比,每个特征子图xi的空间大小相同,与输入的特征图进行比较时,有个通道数。除x1外,每个xi都有对应的3×3卷积变换,记作Ki(),然后用yi表示Ki()的输出。特征子图xi与Ki-1()的输出相加,然后输入给Ki()。为了在增加s的同时减少参数,不再对x1进行3×3的卷积操作。

    每个3×3的卷积运算符Ki()都可以从所有特征分割{xj,j<i}中接收特征信息。

    因此yi可以表示为公式(7):

    在Res2NetBlock模块中,采用多尺度分割,便于全局和局部信息的提取。为了更好地融合不同大小的信息,将所有的分割合并在一起,并对它进行1×1卷积传递。分割和级联策略可以有效执行卷积来增强处理功能。为了减少参数的数量,省略了第一个分割的卷积。在Res2NetBlock中使用s作为比例尺寸来控制参数。较大的s可能允许学习更丰富的特征,而级联带来的计算/内存开销可以进行忽略。

    因此,Res2NetBlock的设计目的是增强特征融合能力,在单个残差块中使用分层残差块连接,以更细粒度的层次上捕获接收域变化的细节和全局特征。与此同时,多条支路融合的设计,能够有效降低信息梯度的重复性。把Res2NetBlock模块与YOLOv5s集成在一起,以进一步提高安全帽的检测性能。

    集成CoordAtt注意力机制和Res2Net-Block后的整体的主干网详细参数如表2所示以及结构框图如图5所示。

    图5 集成后整体的主干网结构图Fig.5 Overall backbone network structure diagram after integration

    表2 集成后整体的主干网参数Table 2 Overall backbone network parameters after integration

    3.1 数据集与实验设置

    数据集的质量对于深度学习的结果来说至关重要。现已开源的安全帽数据集只有SHWD(safely helmet wearing-dataset),但该数据集中佩戴安全帽的类别图片中有不符合实际工地场景的数据,同时没有佩戴安全帽的类别图片为学生上下课的数据,也不符合实际工地生产的需求。

    因此本文自制数据集,由已开源的SHWD数据集中符合工地场景的图片和工地的实际场景拍摄制成的图片组成,具有更好的实用价值。同时使用labelImg对图片进行标注,并保存为YOLO格式,其中数据集共有5 813张图片,训练集有5 181张图片,测试集有632张图片,训练集和测试集严格独立。

    本文实验平台的硬件环境为GPU:NVIDIA GeForce GTX 1060,CPU:Intel®CoreTMi7-6700,内存:8.00 GB,显存:6 GB;
    操作系统及软件环境为Windows10+CUDA 10.2+cudnn 7.6.5+python 3.8.10+pytorch 1.7.0。

    送入网络训练的图片大小均被设置为640×640,batch_size设置为8,为增加训练样本的多样性,提高网络的泛化能力,采用Mosaic数据增强方式;
    采用SGD函数优化参数,动量因子0.937,权重衰减系数0.000 5,训练100个epoch。

    3.2 评价指标

    本文基于自制数据集使用平均精度(average precision,AP)和均值平均精度(mean average mAP)作为模型检测准确性能的评价指标,平均精度综合考虑了目标检测的精确率(precision,P)和召回率(recall,R),使用每秒处理的图片数量(FPS)作为模型检测速度的评价指标,各评价指标的计算公式如下:

    3.3 实验结果

    为了验证CoordAtt坐标注意力机制和Res2NetBlock残差块的有效性,进行实验比对。

    实验1对比加入注意力机制的YOLOv5s结构与原结构的效果,结果如表3所示。从实验结果可以看出,SE注意力机制值考虑内部通道信息而忽略了位置信息的重要性,在主干网加入SE注意力机制后,mAP从78.2%提升到了79.2%,提升了1个百分点;
    CBAM注意力机制包含空间注意力机制和通道注意力机制两部分,但这种方法只能捕获局部的信息,无法获取长范围的信息,在主干网加入CBAM注意力机制后,mAP从78.2%提升到了78.6%,提升了0.4个百分点;
    CoordAtt注意力机制通过把位置信息嵌入到通道注意力中,从而使移动网络获取更大区域的信息而避免引入大的开销。在主干网加入CoordAtt注意力机制后,mAP从78.2%提升到了79.4%,提升了1.2个百分点;
    因此可以表明CoordAtt注意力机制通过把位置信息嵌入到通道注意力中,增加对安全帽的权重值,以此来提升安全帽的检测精度最有效。故最后确定在YOLOv5s的主干网中加入CoordAtt坐标注意力机制。

    表3 加入CoordAtt坐标注意力机制前后性能对比Table 3 Performance comparison before and after adding CoordAtt coordinate attention mechanism

    实验2对比以Res2NetBlock的残差块去替代YOLOv5s中的残差块的效果,结果如表4所示。从实验结果来看,使用Res2NetBlock残差块的结构使网络的mAP从78.2%提升到了79.7%,mAP提升了1.5个百分点,说明由Res2NetBlock残差块构成的主干网以粒度级别表示多尺度的特征,同时也增加了感受野的范围,对于安全帽的佩戴检测精度是有提升的。

    表4 R-YOLOv5s的性能对比Table 4 Performance comparison of R-YOLOV5s

    实验3将主干网中加入CoordAtt注意力机制以及使用Res2NetBlock的残差块去替代YOLOv5s中的残差块这两种改进进行融合,结果如表5所示。实验结果表明,CoordAtt注意力机制和Res2NetBlock的残差块使网络的mAP从78.2%提升到了80.5%,提升了2.3个百分点,速度由119 FPS提升到了137 FPS,说明两者的改进对于安全帽的佩戴检测精度和速度来说都有很大的提升。因此表明CoordAtt坐标注意力机制和Res2NetBlock残差块对于YOLOv5s的有效性。

    表5 CR-YOLOv5s算法的性能Table 5 Performance of CR-YOLOv5s algorithm

    3.4 检测结果对比

    图6给出了引入CoordAtt坐标注意力机制与YOLOv5s算法检测结果对比,引入CoordAtt坐标注意力机制可以在更大范围内让网络更加关注图片中的小目标,使其提高网络对安全帽的检测能力。

    图6 加入CoordAtt坐标注意力机制检测结果Fig.6 Detection results of CoordAtt coordinate attention mechanism

    图7给出了引入Res2NetBlock残差块与YOLOv5s算法检测结果对比,引入Res2NetBlock残差块可以在更细粒度上表示多尺度特征,并增加了每个网络层的感受野。从图7中可以看出Res2NetBlock残差块可以在目标遮挡的时候检测出目标从而提高检测精度,同时检测速度也有所提升。

    图7 Res2NetBlock设计检测结果对比Fig.7 Comparison of Res2NetBlock design detection results

    图8给出了本文最终改进的算法与YOLOv5s算法的检测结果对比,从实验结果对比可以得知,本文最终改进的算法能够提高安全帽佩戴检的精度,同时在速度上也有所提升。

    图8 本文改进算法检测结果对比Fig.8 Comparison of detection results of improved algorithm in this paper

    3.5 对比实验结果

    为了比较YOLOv5s算法,本文改进YOLOv5s算法以及深度学习主流方法的性能,进行了对比实验,实验结果如表6所示。

    表6给出了二阶段网络Faster R-CNN,一阶段无anchor网络FCOS,一阶段基于anchor网络SSD与本文选择的一阶段基于anchor网络的YOLOv5s网络检测性能的对比结果,同时与YOLO系列的网络YOLOv3以及轻量级的网络YOLOv3-Mobilenet进行了对比。

    表6 改进的YOLOv5s算法与深度学习主流网络性能对比Table 6 Performance comparison between improved YOLOv5s algorithm and deep learning mainstream network

    通过比较YOLOv5s网络与Faster R-CNN网络以及FCOS网络检测结果可以知道,YOLOv5s网络在更少参数量与计算量的情况下得到了与Faster R-CNN以及FCOS网络相当的检测精度,同时检测速度远快于这两个网络,本文改进的YOLOv5s算法在各方面都优于Faster R-CNN与FCOS。

    通过比较YOLOv5s网络与一阶段基于anchor网络SSD300、SDD512和SSD-Mobilenet检测结果可以知道,YOLOv5s网络与SSD300和SSD512相比,在较小参数量与计算量的情况下得到远超SDD的检测精度以及检测速度,同时与SSD-Mobilenet相比可知,参数量虽然比SSD-Mobilene大一些,但其检测精度与检测速度都是远超SSD-Mobilenetv2的。

    YOLOv5与YOLO系列中的YOLOv3和轻量级网络YOLOv3-Mobilenet进 行 比 较,YOLOv5s网 络 与YOLOv3相比,在相当的检测精度的情况下,却拥有更少的参数量,与YOLOv3-Mobilenet相比,YOLOv5的参数量虽然比YOLOv3-Mobilenet大一些,但检测精度与速度均高于YOLOv3-Mobilenet。

    针对现有的安全帽佩戴检测算法中出现的对小目标的漏检以及对遮挡目标检测准确率低等问题,本文提出了一种基于YOLOv5s算法的改进算法CR-YOLOv5s。首先引入CoordAtt坐标注意力机制增强感受野,把位置信息嵌入到通道注意力中,从而使移动网络获取更大区域的信息,以此来提升网络对小目标的检出率。同时针对原网络的主干网中仍存在大量的梯度信息重复,以及对特征融合不充分等问题,提出了Res2NetBlock中的残差块去替代YOLOv5s算法中的残差块,以此来降低梯度信息的重复以及改善对特征融合不充分的问题,实验结果也表明这样的改进确实提升了在目标遮挡时的检出率。实验结果表明,CR-YOLOv5s算法具有较好的检测精度,速度也较原YOLOv5s算法有所提升,同时在遮挡目标以及小目标的检出上有很大的提升,因此能够较好地应用于安全帽佩戴检测中。

    猜你喜欢 主干网安全帽残差 小小安全帽,生命保护伞机电安全(2022年4期)2022-08-27基于双向GRU与残差拟合的车辆跟驰建模网络安全与数据管理(2022年3期)2022-05-23CERNET主干网总流量平稳上升中国教育网络(2022年1期)2022-04-12基于残差学习的自适应无人机目标跟踪算法北京航空航天大学学报(2020年10期)2020-11-14基于MPLS L3 VPN的海洋信息通信网主干网组网设计海洋信息技术与应用(2020年2期)2020-07-27封面报道中国教育网络(2019年10期)2019-12-13爆笑四格课外生活·趣知识(2019年4期)2019-09-10基于递归残差网络的图像超分辨率重建自动化学报(2019年6期)2019-07-23危险今古传奇·故事版(2017年5期)2017-04-08高速公路联网收费通信主干网维护管理探讨中国交通信息化(2016年10期)2016-06-08
    相关热词搜索:安全帽佩戴算法

    • 名人名言
    • 伤感文章
    • 短文摘抄
    • 散文
    • 亲情
    • 感悟
    • 心灵鸡汤