APP下载

基于改进YOLOv5s 的头盔佩戴检测算法

2023-09-02吕艳辉

沈阳理工大学学报 2023年5期
关键词:头盔卷积维度

陈 扬,吕艳辉

(沈阳理工大学信息科学与工程学院,沈阳 110159)

目标检测技术在军事、交通、医学、生物学等领域具有广泛的应用价值,推动了社会的进步,为人们生活提供了便利。

近些年,随着电动车销量的不断增多,与电动车相关的交通事故也在增多。 很多电动车驾驶人没有安全意识,不佩戴安全头盔。 国内已有多个城市相继颁布电动车驾驶人需要佩戴安全头盔的交通法规,以减少发生交通意外时的人员伤亡。本文拟对电动车驾驶人是否佩戴安全头盔进行检测并在公共场所自行采集数据制作数据集,此背景下构建的数据集中会存在相当多的小目标,容易出现漏检的情况。 另外,本文研究内容的应用场所人员变动较快,算法应具备实时检测的能力。

一张图片中宽高占整个图片宽高十分之一以下的物体称为小目标。 小目标检测作为目标检测领域内的一个难点,受到越来越多研究者的关注。文献[1]通过改进数据增强方法平衡了数据类别,使用轻量型网络MobileNetV2 替换原始主干网络,减少了网络计算量,最后对模型通道进行剪枝以及知识蒸馏提升了检测速度,但检测精度有待提高;文献[2]提出一种自适应双向特征融合模块提高对小目标的检测率,但采用的损失函数未能考虑数据集分布特点,未能解决难易样本不均衡问题;文献[3]提出在特征提取网络中融入通道注意力机制以更好地提取小目标特征信息,但其通道注意力机制只使用全局平均池化层压缩通道特征,对难以区分的物体检测效果较差;文献[4]提出基于FPN 的优化算法,通过引入感受野模块模拟生物体的感受野机制,使网络着重学习位于中心的特征,进而取得较好的识别效果,然而检测速度有所降低,达不到实时检测的效果。

综上,目标检测算法虽然取得了一定的研究成果,但也存在一些不足。 鉴于此,本文提出一种基于改进YOLOv5s[5]的电动车驾驶人头盔佩戴检测算法,简称HWD-YOLOv5s 算法。 该算法以深度学习框架YOLOv5s 为基础,针对其第一步下采样方法可能导致过拟合的问题,提出一种新的下采样方法;针对原特征融合方法没有考虑不同特征图占有不同的贡献度以及没有对重要特征给予重点关注所导致的检测精度差的问题,提出一种改进的特征融合方法;针对原算法采用的边框损失函数GIOU 在检测框和真实框相交时收敛慢的问题,提出适用的边框损失函数计算方法。

1 HWD-YOLOv5s 算法的提出

1.1 YOLOv5s 算法的不足

本文选用YOLOv5 中的YOLOv5s 作为基础网络,在YOLOv5s 中图像自适应缩放成640 ×640 ×3 大小的图像后进行特征提取。

首先,进行切片下采样,将平面信息转移到通道维度上,降低维度,增加通道数,能够得到两倍下采样特征图。 该下采样方法的位置处在特征提取的第一步,虽然几乎没有丢失特征,但是会学习到大量无用信息,可能导致模型出现过拟合现象[6]。

其次,YOLOv5s 使用FPN 及PANet 完成图像特征融合[7]。 这种特征融合方式能够做到双向特征传递,但无法区分不同分辨率特征图的贡献度;对于图像中一些重要特征并未给出特别的关注[8],不能将无关噪声和应该重点关注的特征信息区分开,导致算法对目标的检测精度较差,算法检测效果仍有待提升。

再次,YOLOv5s 算法的边框回归损失函数采用GIOU,当检测框和真实框相交时,无法反映两个框的相交方式,即不能衡量两个框相对的位置关系[9]。 当预测框与真实框分离且距离较远时,产生较大的外接矩形框,因损失值较大难以优化,导致算法收敛速度慢[10]。

1.2 HWD-YOLOv5s 算法

1.2.1下采样方法的提出

在HWD-YOLOv5s 算法中,提出一种新的下采样方法,能够解决原始YOLOv5s 第一步下采样方法的弊端。 为后续计算方便,对输入的640 ×640 ×3图像特征矩阵进行1 ×1 ×12 的卷积计算,通道数变成4,即得到640 ×640 ×4 维度的特征图X0;再将X0进行非线性变换,包括归一化操作、ReLU 激活,并进行卷积操作。 将这种非线性变换操作作为一个模块,共设计五个模块(Block1 ~Block5),其中Block5 中进行卷积和平均池化实现下采样。 整体下采样方法的非线性变换结构如图1 所示。

图1 非线性变换结构图

由图1 可知,每个模块都会输出一个特征矩阵,若输入特征矩阵为X0,则设Block2 ~Block4模块的输入特征矩阵分别是X1~X3。 在Block1模块中经过非线性变换后的特征矩阵与输入特征矩阵X0在通道上进行拼接后得到特征矩阵X1。对X1进行非线性变换得到的特征矩阵与X0和X1进行拼接后得到特征矩阵X2。 以此类推,最后Block4 模块经过非线性变换后的特征矩阵与之前的X0~X3进行拼接,得到输出X4。 上述操作的数学表达式为

式中:l=1,2,3,4;H表示非线性变换函数,对特征矩阵进行非线性变换操作;Concat 表示拼接函数,实现对特征矩阵进行通道上的拼接。 首先对本模块的输入特征矩阵进行非线性变换,然后在通道维度上拼接前面所有模块的输入特征矩阵作为下一模块的输入,再进行非线性变换。 一次拼接一次非线性变换,特征图维度大小不变,通道数一直增大,即做通道间的堆积。 非线性变换前后的特征图个数,即通道个数a为

式中:K0表示输入特征图个数;n表示模块;K表示网络增长率,本文中K值取4。

以输入图像X0为例,X0大小为640 ×640 ×3,Block1 对其进行非线性变换,即进行批标准化、ReLU 激活以及卷积操作。 此处完成两次卷积,先进行1 ×1 ×4 卷积,卷积后的特征矩阵大小为640 ×640 ×1,再进行批标准化和ReLU 激活及3 ×3 ×4、填充为1 的卷积,卷积后的特征矩阵大小为640 ×640 ×4。 由于批标准化、ReLU 激活后特征矩阵大小不变,所以将所得特征矩阵与X0进行通道维度相加,得到输出特征矩阵大小为640 ×640 ×8,得到特征图X1。

以此类推可知,特征图X2的通道数为12,X3的通道数为16,X4的通道数为20。

Block5 和前面四个模块略有不同,其内部进行批归一化、ReLU 激活以及1 ×1 ×32a的卷积,最后进行过滤器大小为2 ×2、步长为2 的平均池化操作,最终输出特征图大小为320 ×320 ×32。整个结构完成了两倍的下采样,相邻两个模块间都具有极为密切的联系。 由于前四个模块中都有3 ×3 ×4、填充为2 的卷积,使得输出的特征矩阵维度保持相同,以便在通道维度上进行累加,1 ×1的卷积大大减少了参数,使得整个结构具有较高的计算效率。

综上,本文提出的下采样方法采用模块间密集连接的方式,保证了浅层目标特征的有效提取。同时,密集连接方式也提升了整个结构梯度的反向传播,使网络更容易训练。 最后的平均池化操作实现了下采样,能够降低输入特征矩阵维度,减少网络模型的参数,防止出现过拟合的现象。

1.2.2特征融合方法的提出

因为YOLOv5s 使用FPN 及PANet 完成特征融合,能够做到双向特征传递,但无法区分不同分辨率特征图的贡献度[11]。 本文所提融合方法先优化特征融合网络结构,并赋予特征图权重后再进行特征融合。

将YOLOv5s 中第五层到第七层的融合改为第三层到第七层进行融合,特征融合方法的结构如图2 所示。

图2 HWD-YOLOv5s 特征融合方法结构图

图2中每一个节点代表一个特征图。 由图2可见,因为第三层和第七层的中间特征图只有一个输入,没有特征融合,对整个特征网络的贡献很小,故删除第三层和第七层中间的特征图;因为底层特征在经过反复上采样和下采样后可能会失真,故在第四~六层中,在原有双向融合的基础上,同水平层之间引入跳跃连接,以强化高层特征层中的细节信息,以提高特征融合的效率。 图2中仅标明了部分特征图的权重,另外向传递时所占权重为向传递时所占权重为传递时所占权重分别为W3、W5、W7。

在特征融合过程中,考虑到不同分辨率的特征图具有不同的贡献度,提出一种自适应权重的特征向量融合方法。 通过将不同分辨率的特征图进行上采样或下采样以统一特征图为相同的分辨率后计算各自的权重,再进行特征向量的融合。其特征向量的融合公式为

式中:O表示所有特征图融合后的特征向量;i、j表示特征向量序号,是正整数;Wi和Wj表示权重;ε=0.000 1,用于保证数值的稳定性;Ii表示输入的特征向量。 以图2 为例,其中第五层的中间特征向量计算方法为

式中:Conv 表示卷积操作;Resize 表示上采样。

以上的双向自适应加权融合方法从结构上能更充分进行特征信息保留,但并未解决YOLOv5s不能对特征图中重要信息给予特别关注的问题。为此,在第三~七层的卷积层中引入注意力模块[12],包括空间注意力和通道注意力。 卷积层中引入注意力机制的结构如图3 所示。

图3 卷积层中引入注意力机制结构图

图3中输入特征矩阵在通道注意子模块中分别进行全局最大池化和全局平均池化,即取每个特征图中的最大值和平均值,分别得到最大合并特征矩阵和平均合并特征矩阵[13],然后输入到共享网络,得到通道注意力图Ft,即带有通道注意力权重的特征图。 为减小参数量,需要通过Sigmoid函数进行归一化处理,然后通过乘法加权到原始输入特征图上得到最终输出。

上述Ft的计算公式可表示为

式中:F是输入特征图;σ表示Sigmoid 函数;MLP是组成共享网络的多层感知器;AvgPool 是全局平均池化;MaxPool 是全局最大池化是通道平均合并特征是通道最大合并特征;S0、S1是两层共享网络。

Ft在进入空间注意力子模块时,同样要进行全局最大池化和全局平均池化,将特征维度转变成1 ×1,经过卷积核为7 ×7 的卷积和ReLU 激活函数以降低特征图的维度;再经过一次卷积后提升为原来的维度;最后采用Sigmoid 函数进行归一化处理得到的特征图与通道注意图进行合并,得到空间注意力图Fk,即注意力模块最终输出的特征图。Fk计算公式可表示为

式中:f7×7是指卷积核为7 ×7 的卷积操作是空间平均合并特征是空间最大合并特征。

1.2.3边框回归损失函数的提出

YOLOv5s 算法采用GIOU 作为边框回归损失函数[14],其计算公式为

式中:BP表示预测框;Bt表示真实框;C表示预测框与真实框最小外接矩形框的面积。 当预测框与真实框重合时,损失值为0;当预测框的边与真实框的边外切时,损失值为1;当预测框与真实框分离且距离较远时,损失值无限趋近于2。 根据上述计算,GIOU 反映了真实框与预测框的重合程度和远近距离。 但当检测框和真实框相交时,无法反应两个框的相交方式。 当预测框与真实框分离且距离较远时,产生较大的外接矩形框,因损失值较大难以优化,会导致算法收敛速度慢。因此,本文将边框回归损失函数计算方法修正为

式中:L代表修正后边框回归损失;ρ2(b,bgt)代表预测框中心点b到真实框中心点bgt欧氏距离的平方;c2为预测框和真实框最小外接矩形框对角线距离的平方;c′2为预测框与真实框最小外接矩形框的宽的平方;ρ2(w,wgt)表示预测框宽的中点w到真实框对应宽的中点wgt的欧氏距离的平方;c″2表示预测框与真实框最小外接矩形框的高的平方;ρ2(h,hgt)表示预测框高的中点h到真实框对应高的中点hgt的欧氏距离的平方。

本文提出的边框回归损失函数的惩罚项有三个,分别计算预测框的中心点、宽、高与其最小外接框中心点、宽、高的差值,直接回归欧氏距离。 其中,中心点与最小外接矩形框的惩罚项解决了GIOU 在两框距离较远时产生较大的外包框所导致的收敛速度慢的问题;宽、高与最小外接矩形框宽、高的惩罚项的使用能够解决GIOU无法反映两个框的相交方式问题,且当预测框与真实框在水平方向和垂直方向上存在差异时,通过使用宽、高与最小外接矩形框宽、高的惩罚项,能够分别在水平和垂直方向上提高收敛速度,提升回归精度。

2 实验结果与分析

2.1 环境配置

本文实验环境在Windows10 操作系统下配置,安装Anaconda 用于管理和创建环境;在Anaconda 下搭建Pytorch 框架,加速GPU;编译器选用Pycharm2020.1.2 版本;安装CUDA 工具包,以提高GPU 的大规模并行计算能力;本文实验中对数据的训练需要在带有GPU 的服务器上进行。

2.2 数据集制作

在多个路口、市场、小区等场景下采集数据,其中的样本多样,安全头盔颜色多样,电动车型号、颜色多样。 采集数据全部是以拍摄视频的方式获取,视频时长几秒到几十秒不等,共计约有400 个视频。 通过在线免费转换器进行图片的提取,每秒提取图片数量为10 张,共计提取图片有26 954张。 剔除掉图像中没有待检测目标或目标特征不明显的无用图片5 674 张以及重复图片9 910张后,共计保留11 370 张。 对图片逐张进行标注,把电动车和人整体作为目标,其中佩戴安全头盔的作为一类,命名为hat;未佩戴安全头盔的作为一类,命名为no-hat。 实验将自制安全头盔数据集随机划分为三部分,其中训练集占70%,验证集占20%,测试集占10%。 预训练HWDYOLOv5s 模型权重,迭代次数设为250。

数据集中待检测目标大小不同,为保证检测效果,HWD-YOLOv5s 算法将待检测目标分成大、中、小三类尺寸。 针对不同尺寸的目标,在训练过程中分别设置了与其尺寸对应的预置检测框进行训练,且在预测端针对不同尺寸的目标给出对应的输出,以提升对不同尺寸目标检测的准确度。

2.3 实验及对比实验

本实验利用召回率(Recall)、准确率(Precision)、阈值为0.5 的平均精度(mAP)作为评价指标。

1)使用HWD-YOLOv5s 算法在自制安全头盔数据集上进行训练并在验证集上进行验证,得出的验证结果如表1 所示。

表1 HWD-YOLOv5s 算法实验结果

表1 中类别为all 的数据是类别hat 和no-hat在上述几个评价指标对应数值的平均值。

HWD-YOLOv5s 算法在安全头盔数据集上训练时生成的评价指标曲线如图4 所示。

图4 HWD-YOLOv5s 算法评价指标曲线图

从图4 中可以看出,在较少的训练轮数后,Precision、Recall、mAP 值均已达到了90%,并稳步增长。 其中Recall 值相对于其他两个指标达到90%所需训练轮数更多。

2) 进行对比实验。 在YOLOv5s、SSD[14]、Faster R-CNN[15]三种主流目标检测算法上基于自制安全头盔数据集进行训练并在验证集上进行验证,分别得到Precision、Recall、mAP、速度四个评价指标的实验结果,取两个类别hat 和no-hat 评价结果的平均值为最终结果与本文算法HWDYOLOv5s 进行性能比较,对比实验结果见表2。

表2 各算法实验结果对比

由表2 可见,HWD-YOLOv5s 算法的Precision、Recall 值均为最优。 与YOLOv5s 相比,在Precision、Recall、mAP 三个方面分别提升了0.4%、1.1%、0.2%。 HWD-YOLOv5s 算法检测一张图片的时间为14. 89 ms,能够满足实时性检测的要求。

3 结论

常用图像检测算法针对安全头盔这类小目标可能存在漏检的问题,本文基于自制数据集中安全头盔的分布特点,使用YOLOv5s 作为基础网络,改进特征提取中的下采样方法以及特征融合方法,修改边框损失函数GIOU 计算方法,获得改进算法HWD-YOLOv5s。 将HWD-YOLOv5s 算法在自制数据集上进行实验, 并且使用YOLOv5s、SSD、Faster R-CNN 三种主流算法进行对比实验。 实验结果表明:HWD-YOLOv5s 算法泛化性强,对于安全头盔目标较密集情况的检测效果较好,相比其他算法具有更高的检测精度,检测实时性满足交通领域的应用要求。 本文研究的不足在于只针对自制数据集进行验证,数据集中样本的多样性和样本均衡性稍差。

猜你喜欢

头盔卷积维度
犬用战术头盔
基于3D-Winograd的快速卷积算法设计及FPGA实现
浅论诗中“史”识的四个维度
从滤波器理解卷积
小头盔,大防护
当头盔遇上高科技
基于傅里叶域卷积表示的目标跟踪算法
汉字戴头盔
光的维度
“五个维度”解有机化学推断题