基于改进YOLOv5的安全帽佩戴检测

2022-06-23 00:35黄晓明林明辉
计算机与现代化 2022年6期
关键词:安全帽置信度卷积

岳 衡,黄晓明,林明辉,高 明,李 扬,陈 凌

(1.国网浙江省电力有限公司宁波供电公司物资部,浙江 宁波 315000;2.国网浙江省电力有限公司宁波市奉化区供电有限公司,浙江 宁波 315599)

0 引 言

安全帽对于高空坠物,可以产生缓冲作用,能够保障仓库工人的安全,降低事故所造成的伤亡和损失。同时安全帽具有颜色显眼的特点,能够起到约束和警示的作用。所以对于安全帽佩戴情况的监管是一项重要的任务,由于仓库、工地等场景下的作业具有地区跨度广、持续时间长等特点,所以依靠人力监管安全帽佩戴情况,具有投入大、易遗漏等缺点,存在较大的安全隐患[1]。

针对安全帽佩戴情况监测问题,研究基于深度学习的目标检测算法是主流做法[2]。目标检测算法主要分为单阶段和双阶段目标检测方法[3]。双阶段目标检测通常先生成候选窗口[4],再针对候选窗口进行分类,这类算法准确率较高,但其计算量大,算法运行时间也较长[5]。如RCNN[5]相比传统目标检测算法准确率有很大提升,然而算法需对每个候选窗口进行特征提取,算法实际运行时间长。Fast RCNN[6-7]针对RCNN的问题,对整张图片进行单次代价提取,提升了算法速度。Faster RCNN[8]区域候选网络生成候选区域进一步提高了算法的运行速度。吴东梅等人[9]在Faster RCNN的基础上,融合多阶段的多尺度特征进行多尺度检测,提升了安全帽检测的准确率。

YOLO系列是典型的单阶段网络[10]。YOLOv1[11]针对目标检测任务,将图片分为多个网格,每一个网格负责2个预测框,根据NMS算法删除冗余预测框,相对于RCNN等单阶段算法,YOLOv1算法产生更少的预测框并同时预测目标的位置和类别,算法速度有显著提升,但也导致准确率和召回率的下降。YOLOv2[13]在YOLOv1基础上引入了锚框,增加了网格和每个网格负责的预测框的数量。YOLOv3[14]使用产生3个尺度的输出的预测头,高尺度预测小目标,低尺度预测大目标,缓解了YOLOv1和YOLOv2中小目标和超大目标丢失问题。林俊等人[15]基于YOLOv1进行了安全帽检测的研究,算法整体实时性较好,但准确率较低。方明等人[16]在YOLOv2中加入了密集块,加强了语义信息和多层特征的融合,缓解了头盔较远时作为小目标对象准确率低的问题。王兵等人[17]基于YOLOv3改进了交并比的计算方法,提出了一种新的目标函数,一定程度上提升了算法的准确率。

YOLOv4[18]在YOLOv3的基础上使用大量调参技巧使得模型更加准确,然而YOLOv4的模型容量大,推理速度较慢。YOLOv5使用一种可调节模型大小的主干网络,其主干网络基于CSPDarknet53。算法在保持检测速度的同时,能够取得较好的检测结果,然而该算法无法获取更多的上下文信息[19-21]。

基于以上现状,本文在YOLOv5基础上加入注意力模块,对比不同注意力模块对于检测结果的影响;改进YOLOv5去除冗余框的算法,使用Soft-NMS解决NMS算法在物体高度重叠时仅保留同类最高置信度的预测框的问题,同时使用Focus模块、WNMS融合多次结果进一步提升安全帽的检测结果。

1 算法细节

1.1 注意力模块

注意力机制能够通过权重聚焦位置,产生更具有分辨性的特征,使网络获取更多的上下文信息。SEL是一种常用的通道注意力模块[22],其考虑到了不同通道间的关系,SEL将输入特征进行全局池化,如式(1)所示。然后通过全连接层降维学习,最后通过全连接进行学习并恢复初始维度与输入特征相加。

(1)

其中,W、H是输入特征X的宽、高,i、j是特征位置。

SEL经过了2层卷积层,增大模型的尺寸,并且降低了检测速度,本文在保持精度的基础上为了提升检测效果,使用ECA模块。ECA模块相较于SEL没有降低通道维数,充分保证了卷积过程中的特征提取。跨通道互动有助于学习有效注意,而SE-Var3等网络涉及大量的参数,导致模型复杂度过高。从有效卷积的角度来看,ECA捕获局部的K近邻,即只考虑每个通道与其K近邻通道之间的相互作用,在跨通道的同时降低了注意力模块运行的复杂程度,ECA模块的结构图如图1所示。

图1 ECA结构图

图1中,X是输入特征,H、W、C分别是输入特征的高度、宽度以及通道数量,X经过平均池化得到中间输出O1,O1由一维卷积得到O2。O2通过激活函数σ得到最终的通道注意力加权特征O3,本文使用Sigmoid激活函数,O3与输入进行卷积得到最终输出。k是跨卷积交互的邻域大小,图1中为4。由于使用一维卷积来捕获局部的跨通道交互,k决定了交互的覆盖范围,不同的通道数和不同的CNN架构的卷积块k的取值不同,通道尺寸越大,长期交互作用越强,而通道尺寸越小,短期交互作用越强。用式(2)表示映射关系:

C=φ(k)

(2)

普通的线性映射可以表示如φ(k)=γ×k-b。但线性模型具有一定的局限性,考虑通道数量通常是2的指数,所以使用如下的非线性模型,如式(3):

C=φ(k)=2(γ×k-b)

(3)

所以k可以表示为式(4):

(4)

其中,γ和b均是线性参数,本文分别取2和1,|t|odd表示距离t最近的奇数。显然,通过映射φ,高维通道具有较长的相互作用,而低维通道通过非线性映射进行较短的相互作用。

1.2 去冗余框算法

非极大值抑制算法通过多次迭代去除冗余框[23],每次迭代选取置信度最高的预测框,然后计算最高置信度预选框和剩余预测框的交并比(Intersection Over Union, IOU),删除IOU大于交并比阈值的预测框,获取剩下的最高置信度预选框,重复上述过程。其中,IOU的定义如式(5):

(5)

其中,C是预测框1,G是预测框2。

非极大值抑制的主要缺陷在于当物体高度重叠时只会保留同类最高的置信度的预测框,这样导致同类但属于不同目标可能会被误删。Soft-NMS并不直接删除与最高置信度框产生高的交并比的剩余框,而是降低剩余框的置信度,保留更多的预测框,避免了极大值抑制中误删重叠物体的情况发生。

Soft-NMS降低高交并比的方法如式(6):

(6)

其中,Nt为阈值,si为当前选中目标框和最高置信度框产生的新置信度,IOU(M,bi)是当前最高置信度预测框M与剩余第i个预测框bi的交并比。

将图像和增强后的图像同时送入模型,经过Soft-NMS得到所有的预测框往往含有一定有用信息,当最高置信度的预选框不足够准确时,可以利用其余框的信息来修正预选框。即通过NMS的结果使用WNMS进一步优化。

1.3 Focus模块

Focus将输入特征切边后组合再进行卷积,使得图片在下采样时防止信息丢失,其模型结构如图2。

图2 Focus结构图

图2中,i、j分别是特征图的纵坐标、横坐标。i=2k、j=2m表示横坐标和纵坐标均为偶数的位置,由这些位置组合得到新的特征X1可以形成一个新的尺寸减半的特征X2、X3、X4,堆叠4个特征再通过一次卷积组,得到最终Focus模块的输出。

2 基于YOLOv5改进的整体模型

本文基于YOLOv5改进的模型分为3个模块,分别为主干网络、头网络和检测网络。改进后的模型整体结构如图3所示。

图3 本文改进的模型整体结构图

图3中每个模块用一个矩形框表示,每个模块前半部分内容是模块名称,后半部分括号中的内容是模块参数列表。Conv表示普通卷积,参数列表的含义为(卷积核输入通道数,卷积核输出通道数,卷积核尺寸,卷积步长),Concat表示堆叠层,将输入特征从第一维度相堆叠,其参数列表含义为(输入1的通道数,输入2的通道数)。Upsample使用双线性插值,参数列表含义为(输入通道数,输出通道数,放大因子),本文取放大因子为2,表示将图像放大2倍。SPP的参数列表含义为(输入通道数,输出通道数,[最大池化核1的尺寸,最大池化核2的尺寸,最大池化核3的尺寸]),Focus参数列表含义为(卷积核输入通道数,卷积核输出通道数,卷积核尺寸,卷积步长)。C3表示一种融合瓶颈残差模块的新型卷积模块,如图4所示。

图4 C3结构图

图4中Bottleneck表示瓶颈残差模块,如图5。

图5 瓶颈残差模块结构图

图5中,瓶颈残差模块中第一层卷积层Conv用来改变输入通道的维度,减少维度过高带来的大量计算量。

3 实 验

本文共搜集6000幅安全帽相关的图像,将数据集的检测目标分为佩戴安全帽和未佩戴安全帽2个类,佩戴安全帽作为0类,目标位置是人脸和安全帽的整体位置;未佩戴安全帽为1类,目标位置是人脸位置。使用Labelimg工具标记每个目标的左上坐标、宽、高的相对值。每幅图像生成一个YOLO格式的标注文件。其中5000幅图像作为训练集,500幅图像作为验证集和500幅图像作为测试集。

3.1 Focus模块

由于Focus模块属于模型的主干部分,所以将加入Focus模块的模型和未加入Focus模块的模型分别在ImageNet数据集进行粗训练,迭代10轮,学习率均取0.01。训练安全帽数据集时,均采用随机梯度下降法(Stochastic Gradient Descent, SGD),SGD动量为0.937,批量数取8,图像输入大小取640×640。共进行200轮训练,前180轮粗训练,学习率取0.001,后20轮精细训练,学习率取0.0001。其结果如表1所示,其中R代表召回率,P代表精确率。

表1 模型在安全帽数据集上的结果1

表1中,YOLOv5-f代表未加入Focus模块的YOLOv5模型,YOLOv5代表加入了Focus模块的模型。从表1可以看出,由于Focus模块使图片在下采样过程中避免信息丢失,加入Focus模块使得模型在精确率、召回率以及mAP指标上均能取得小幅度的提升。

3.2 添加注意力模块

表2对比了不同注意力模块SEL和ECA模块对于安全帽检测结果的提升,由于注意力模型属于头网络,所以无需对模型都进行预训练,直接使用上文YOLOv5-f训练的主干模型,训练过程和3.1节相同。

表2 模型在安全帽数据集上的结果2

表2中,YOLOv5代表未加入Focus模块的YOLOv5模型,YOLOv5+SEL代表加入SEL模块的YOLOv5,YOLOv5+ECA代表加入ECA模块的YOLOv5。YOLOv5+SEL和YOLOv5+ECA相较于YOLOv5各项指标均取得了一定程度的提升。YOLOv5+ECA较YOLOv5分别在精确率、召回率、mAP@0.5和mAP@0.5:0.95上分别提升了0.5、0.6、0.5和0.2个百分点。由于ECA模块相较于传统通道注意力机制模块SEL没有降低通道维数,充分保证了卷积过程中的特征提取,提升了安全帽检测结果的准确性,所以加入ECA注意力模块的算法相较于加入SEL注意力模块的算法能够取得更好的结果。

3.3 改进去除冗余框算法

本节研究改进NMS对于模型的影响,分别测试使用NMS、Soft-NMS以及对使用Soft-NMS后进一步使用WNMS的模型,其中WNMS对图像进行一次增强,每次的结果由2次结果融合而成,训练过程与3.2节相同,其结果如表3所示。

表3 模型在安全帽数据集上的结果3

表3中,YOLOv5+Soft-NMS、YOLOv5+Soft-NMS+WNMS代表改进的使用Soft-NMS的YOLOv5算法,在Soft-NMS基础上进一步使用WNMS的模型算法。

从表3可以看出,使用Soft-NMS的算法相较于YOLOv5分别在mAP@0.5、mAP@0.5:0.95指标上分别提升了0.3、0.2个百分点;在Soft-NMS基础上继续使用WNMS的算法相较于YOLOv5分别在mAP@0.5、mAP@0.5:0.95指标上提升了1.5、0.7个百分点,由于将图像和增强后的图像同时送入到模型,然后将所有的结果进行加权,在增加一定时间的检测前提下,较大程度提升了算法的准确程度。

3.4 改进的基于YOLOv5的安全帽检测算法

本节基于YOLOv5进行改进,把使用Focus、ECA和Soft-NMS的算法记为FES-YOLO;并且在增加一定时间的情况下使用WNMS算法进一步提升算法准确率,记为FESW-YOLO,其在安全帽数据集的结果如表4所示,T代表算法运行时间。

表4 模型在安全帽数据集上的结果4

从表4看出,相较于YOLOv5,在相同的检测时间下,在mAP@0.5、mAP@0.5:0.95指标上分别提升了1、0.3个百分点;在增加了一定检测时间的前提下,在mAP@0.5、mAP@0.5:0.95指标上分别提升了2.1、1.2个百分点。

综合表1~表4可看出本文提出的算法在特征提取过程中使用Focus模块能够使图片在下采样的过程中不会丢失信息,使用ECA模块选择聚焦位置,能够产生更具有分辨性的特征,并使网络获取更多的上下文信息,使用WNMS的算法融合多检测框优化结果,最终提升算法在安全帽数据集上的检测结果。

3.5 训练迭代和场景测试图

FESW-YOLO、YOLOv5、Faster-RCNN的mAP随迭代轮数变化如图6所示,可以看出本文改进的算法虽然在前50次迭代收敛速度较慢,但在后50次迭代准确率较为稳定上升,其mAP均高于YOLOv5,且收敛速度较Faster-RCNN算法具有显著提升,其中mAP阈值取0.5。

图6 训练迭代图

图7和图8分别是测试集合中2张场景较复杂的图片,其中图7和图8中的(a)、(b)、(c)、(d)分别是测试场景的原图、使用FESW-YOLO、YOLOv5、Faster-RCNN得到的检测结果图。

(a) 原图

(a) 原图

图7(a)中从左往右,第3、第4个目标存在重叠,对于目标检测算法具有较高要求,图7(b)中本文改进的FESW-YOLO算法预测出了所有的结果,并取得了较高的置信度,图7(c)中YOLOv5预测出了所有的结果,但框的位置和置信度均低于FESW-YOLO,而图7(d)中Faster-RCNN丢失了第3个重叠目标。

从图8(a)可以看出背景区域有2个未佩戴安全帽的人员距离相机较远,对算法具有极高要求,图8(b)中本文改进的FESW-YOLO算法检测出了2个目标未佩戴目标,给出的置信度分别为0.61和0.62,图8(c)中YOLOv5检测出了2个目标未佩戴目标,给出的置信度分别为0.47和0.51,事实上若选取较小的筛选阈值,YOLOv5会丢失这2个目标,图8(d)中Faster-RCNN则无法检测出距相机远距离的2个目标。

综合图像来看,本文基于YOLOv5改进的FESW-YOLO算法取得结果整体优于YOLOv5,算法取得了更加准确的位置坐标和置信度,而Faster-RCNN预测框的位置较不准确,存在大量目标丢失的情况,FESW-YOLO算法相较于Faster-RCNN具有较大的提升。

4 结束语

本文基于YOLOv5进行了改进,在其基础上加入注意力模块,并对比不同注意力模块SEL和ECA对于检测结果的影响,最终采取ECA模块,产生更具有分辨性的特征,提升了算法的检测准确性;同时使用Focus模块并验证了其对于安全帽检测结果的提升;本文改进了YOLOv5去除冗余框的算法,使用Soft-NMS解决了NMS算法在物体高度重叠时只会保留同类最高置信度预测框的问题,同时使用WNMS融合多次结果进一步提升算法的检测结果。通过安全帽数据集训练、测试,相较于YOLOv5、Faster-RCNN等算法,本文改进的FESW-YOLO算法收敛速度更快更平稳,在安全帽检测上更精确,提升了安全帽的监管可靠性。

猜你喜欢
安全帽置信度卷积
基于数据置信度衰减的多传感器区间估计融合方法
小小安全帽,生命保护伞
一种基于定位置信度预测的二阶段目标检测方法
硼铝复合材料硼含量置信度临界安全分析研究
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
爆笑四格
从滤波器理解卷积
正负关联规则两级置信度阈值设置方法
基于傅里叶域卷积表示的目标跟踪算法