APP下载

基于改进YOLOv5的加油员人体检测算法

2023-06-09陶青川

现代计算机 2023年6期
关键词:网络结构卷积精度

汪 磊,陶青川

(四川大学电子信息学院,成都 610065)

0 引言

在机场加油车等一系列场景下,工作人员需要做出一系列行为来表示某个操作已经完成,如弯腰、伸手等动作,而这些动作还需要机场方面对其进行监督,采用最多的监督方式仍然是人工进行视频监督,非常耗费人力,且如果机场方面的监督人员工作不到位,很容易影响监督的实时性,甚至会造成一系列的安全隐患。基于深度学习的行为识别算法则可以对监控视频进行智能分析和处理,在进行行为分析前,对加油员进行人体识别[1⁃2]的实时性和高效性提出了更高的要求。但现有的人体识别算法存在模型较大,且检测速度慢的问题,部署到GPU成本也较大,因此需要对其算法进行轻量化,以适合在嵌入式部署。

1 相关的目标检测网络

近年来,随着深度学习的发展,计算机视觉技术在目标检测中得到了广泛的应用。基于计算机视觉的目标检测算法一般分为两类:第一种是两阶段目标检测算法,第二种是本文用的一阶段目标检测算法。主流的两阶段目标检测算法包括RCNN[3]、R⁃FCN[4]和Faster RCNN[5]等,其工作过程是首先检测出目标的所在区域,再对区域中的目标进行CNN[6]分类处理。一阶段目标检测算法可以直接获得目标的位置和类别概率,其中包括YOLO[7⁃11]和SSD[12]。两者区别体现在两阶段检测算法具有较高的定位和目标识别精度,但推理速度相对较慢。而一阶段检测算法由于其网络的相对简洁性,其推理速度会更快,但也失去了推理的精度优势。但通过对网络主干网进行修改,增加注意力等机制,可以使得模型在合理的精度损失范围内,推理速度提升明显,更适合在嵌入式上部署。

YOLOv5 是目前主流的单阶段目标检测网络,共有4 种型号,包括YOLOv5s,YOLOv5m,YOLOv5l,YOLOv5x。随着模型深度和模型宽度的增加,参数的数量也随之增加。

YOLOv5 的结构如图1 所示,分为以下四部分:输入、backbone、neck以及预测模块。YOLOv5在输入端使用Mosaic 数据增强,并具有内置的自适应锚定和自适应缩放。数据增强是通过随机裁剪任意四张图像,并将其拼接到单张图像上作为训练数据,减少图像中检测目标的像素点大小,使网络在小目标检测方面表现更好。一旦数据集进入网络,YOLOv5将数据集中的图像缩放到640 × 640 的大小,然后使用K⁃means聚类算法计算与该数据集中标注的框匹配的锚框,并将其与预设的锚框进行比较,以此来更新网络参数。在backbone 中,包含了Focus、SPP、CBL和C3等结构。Focus结构主要是对输入图像进行下采样操作,使得图片的长和宽减半,通道数变为4 倍,以此来减少网络的计算量。SPP的主要作用是对高层特征进行提取并融合,在融合的过程中多次运用最大池化,尽可能多的去提取高层次的语义特征。CBL 包含三步,卷积操作,其次是BN,接着送入激活函数。C3模块包含了多个残差网络结构,主要解决了卷积网络结构中重复梯度的问题,另外也加强了特征融合的能力。neck 网络模型部分使用了FPN和PAN 的组合。浅层特征图的位置信息较多,语义信息较少,随着神经网络层数的增加,较深层特征图的语义信息较多,一些小像素点会被忽略,一些位置信息会丢失;然而,这两种类型的信息对于目标检测都很重要,因此在保留原始位置信息的同时获得更多语义信息的更深层次的网络结构对于良好的网络结构是必不可少的。FPN将强语义特征从顶部特征映射传递到下方特征映射。同时PAN从较低的特征图向较高的特征图传递更强的定位特征,这两种结构结合起来增强了neck特征融合能力。预测模块执行最后的检测,并对输出特征映射应用锚框,生成具有类别概率、置信度评分和边界框的输出向量。损失函数使用GIOU_loss,置信度损失和类别损失使用二元交叉熵损失函数。

图1 YOLOv5网络结构

YOLOv5 相比于YOLOv4 和YOLOv3 有了非常明显的精度和速度提升,但对于嵌入式设备而言,其参数计算量和模型大小依然很大,因此需要对其进行网络改造以适应嵌入式设备的部署和运行。

2 算法改进细节

本文使用轻量级网络GhostNet 重构YOLOv5的backbone 和neck,减少参数的计算,同时加强对特征的提取能力。并且在主干网的最后一层增加SE 注意力机制,使得网络对目标更加关注,增强目标在复杂环境背景的检测精度。由于本文检测的目标大小比较固定,因此在特征融合的时候减少了一层,采用两层融合的方式,同时减少了backbone的网络深度。

2.1 使用GhostNet网络构建backbone和neck

在CNN 模型中,特征图的冗余非常重要,但很少有人在模型结构设计中考虑到特征图的冗余问题。2020 年,Han 等[13]提出了一种新的Ghost 模块,可以使用更少的参数生成更多的特征映射。Ghost 模块分为两步进行,第一步用传统的卷积生成少量特征图,第二步将生成的特征图通过相应的线性计算生成最终的特征图。显然,与直接使用传统卷积相比,Ghost 模块的计算量明显减少。从另一个角度来看,这样卷积得到的特征图也得到了数据增强。Ghost 卷积结构如图2所示。

图2 Ghost卷积结构

假设第一步输入生成m个特征图,第二步生成s个特征图,那么一共会输出n=m×s个特征图,传统卷积和Ghost 卷积在输出特征图数量相等的情况下,网络参数量之比为

P1和P2分别代表传统卷积和Ghost 卷积的网络参数量,两者的值为

其中:k×k和d×d分别表示代表传统卷积操作和线性操作的卷积核的尺寸,输入图像的通道数为c。

两者的浮点型计算量之比为

h'和w'表示Ghost 卷积生成的原始特征图的高和宽。

其中,q1和q2为传统卷积和Ghost 卷积的浮点型计算量,分别为

由以上公式可以看出Ghost 卷积的网络参数量以及浮点型计算量约为传统卷积的1/s。Ghost bottleneck 类似于ResNet[14]中的基本残留块,它集成了多个卷积层,Ghost bottleneck主要由两个Ghost模块组成。Ghost bottleneck结构如图3所示。

图3 Ghost bottleneck结构

本文用Ghost卷积替换了主干网以及neck网络中所有的传统卷积,用Ghost bottleneck 结构替换了C3中的bottleneck结构,以此来减少网络的参数量,同时增强网络特征提取能力,降低了模型的大小,使得模型有利于部署到嵌入式设备。

2.2 添加注意力机制

本文在主干网的最后一层加上了SE 注意力机制,增强网络对重点区域的选择,同时也可以减少计算量。SENet 是自动驾驶公司Momenta在2017 年宣布的一种新的图像识别结构,它通过建模特征通道之间的相关性和增强重要特征来提高精度。SENet强化了重要通道的特性,弱化了非重要通道的特性,取得了良好的效果。SE层结构如图4所示。

图4 SE层结构

SE模块主要包括三个操作,压缩(squeeze)、激励(excitation),以及scale 操作。输入X经过卷积后得到特征图U, 其尺寸为W×H×C,其中W、H、C分别代表宽度、高度以及通道数。接着再将特征图U进行压缩操作,进行最大池化或者平均池化,得到1 × 1 ×C的向量,宽和高变为1,通道数没有发生变化。其压缩的公式为

其中:Fsq表示压缩函数;Xc表示压缩操作的输入;i和j代表每个通道对应长和宽平面的坐标;H和W代表通道的高度和宽度,本文在压缩时采用的平均池化的方式。

接着将压缩的输出向量输入到激活模块,激活模块由全连接层和激活函数组成,其中全连接层有两个,第一个全连接层的神经元个数为C× SERatio,输入的向量1 × 1 ×C经过此全连接层后输出为1 × 1 ×C× SERatio,送入到第二个全连接层,由于此层具有C个神经元,输出为1 × 1 ×C。具体过程如图5所示。

图5 激活过程

最后就是scale 操作,将SE 模块得到的1 ×1 ×C的向量按通道分别和W×H×C的特征图相乘,具体就是特征图的每个通道对应的二维矩阵里面的所有值乘上相应的权重值,最终输出。

2.3 特征融合增强

由于本文检测的目标较为单一且大小比较固定,因此与YOLOv5的三层特征融合相比,如图6所示,本文减少了一层,采用两层特征融合来提升网络的推理速度,减少网络的计算量。采用路径聚合网络PANet[15]来提升信息的利用率,PANet 基于Mask R⁃CNN 和FPN 框架,并在此基础上优化信息的传播。网络的特征提取器使用自底向上路径的FPN 结构,从而优化低级特征的传播。使用前一阶段的特征图作为第三路径每一阶段的输入,同时使用3*3卷积层对其进行处理。通过水平连接将输出添加到自顶向下路径的同一阶段的特征映射中,这些特征映射为下一阶段提供信息。同时采用自适应特征池,恢复所有特征级别与每个候选区域之间的受损信息路径,并在每个特征级别上聚合每个候选区域,以防止任意分配,PANet网络结构如图6所示。

图6 路径聚合网络PANet

2.4 改进的YOLOv5网络结构

综合以上对YOLOv5 原网络三个改进点,改进后的网络结构如图7 所示,为了在接下来的叙述更加方便,故将改进后的网络命名为YOLOv5s⁃GhostNet⁃SE。

图7 YOLOv5s⁃GhostNet⁃SE网络结构

3 实验过程和结果分析

3.1 实验平台

本文采用PC 和比特大陆开发板作为实验的硬件平台,其中PC的具体参数见表1。

表1 PC端参数性能

开发板Sophon SE5 是比特大陆推出的智能边缘设备,具体参数见表2。

表2 比特大陆开发板参数性能

推理引擎TPU 的优势在于它优化了网络中卷积的计算,能够进一步减少整个网络的推理计算量,从而降低模型的功耗。

3.2 数据集准备

由于本文加油站场景所需的数据集比较少,加上在网络上搜集的数据集,一共4432张(示例见图8)。为了增强网络的泛化能力,本文在COCO 数据集选取了3000 张人体目标图像,一共7432 张图像,按照8∶2 的比例划分为训练集和测试集再训练网络,并且验证相关指标。

图8 数据集示例

3.3 评价参数

本实验选取BFLOPs、召回率(recall)、mAP、模型大小和检测速度共五个指标对训练后的加油员人体检测模型进行性能评价。

BFLOPs 描述的是卷积所用的运算量,其算法模型的复杂度可以通过多次卷积等运算所耗费的浮点运算次数相加来表示。精度反映了模型或分类器正确预测阳性样本精度的能力。该值越大,性能越好。召回率是预测为阳性样本的阳性样本占总阳性样本的比例,其性能与Precision 相同。精度和召回率相互影响。一般来说,正确率高召回率就会低,正确率低召回率就会高。精度和召回率的计算方式为

以图中待检测的人体为例,TP表示图中的目标被正确识别为人体,FP表示被检测到的另一个目标被错误识别为人体,FN表示图中的目标被错误识别为其他类别。

AP 的大小可以用PR 曲线的积分来表示,即曲线所围的面积,各类别AP 的平均值就是mAP。其中mAP_0.5 为IOU 阈值设置为0.5 时,所有AP 的平均值。mAP_0.5:0.95 表示IOU 阈值在0.5~0.95 下的平均mAP。C表示目标类型个数,N表示欠条阈值个数,K表示当前欠条阈值,P(K)和R(K)表示精度和召回率。具体计算为

模型大小定义为训练出来的权重文件所占用的磁盘空间大小,单位为MB。检测速度定义为模型每秒可处理的图片张数。

3.4 模型训练

本文模型训练轮次为300轮,batch⁃size为8,采用YOLOv5 改进的yaml 文件进行训练,图片大小不固定,由模型自动转化为640 × 640。

3.5 结果分析

首先是在PC 硬件平台上,将原始YOLOv5模型和改进后的模型进行实验对比,检测到的结果如图9所示,相关的参数指标见表3。

表3 不同网络模型性能指标对比

图9 各模型检测结果

其中YOLOv5s⁃SE表示在YOLOv5s原网络的基础上增加SE注意力机制,由此可以看出在增加注意力机制后,模型的参数量和模型的大小略有增加,FPS几乎不变,但是召回率和mAP都增加,特别是mAP 增加了0.011。YOLOv5s⁃GhostNet 表示在用GhostNet重构YOLOv5s网络,并且去掉了主干网中的两层,减少模型的深度以此来减少参数量,另外检测头也减少为两个。可以看出用GhostNet对主干网进行重构后,模型的大小和参数量都有非常明显的降低,均约降为原来的1/7,在召回率和mAP有轻微下降的情况下,FPS提高了51.8%。最终的网络模型YOLOv5s⁃GhostNet⁃SE相比于原网络而言,mAP没有下降,反而还增加了0.005,且参数量和模型大小均降为原始模型的1/7,并且FPS也提升了46.8%,说明对原网络的改进是成功的。

接着在比特大陆开发板进行改进后的模型指标测试,测试结果如图10所示。

图10 Sophon SE5检测结果

和PC 硬件环境进行性能对比,检测到的参数指标见表4。

表4 不同网络模型性能指标对比

由于网络模型YOLOv5s⁃GhostNet⁃SE 在部署到边缘设备Sophon SE5 前要进行模型转化,转化后的模型推理得到的mAP 为0.942,相比转换前在GPU 上运行的0.959有所下降。但其在边缘设备上的功耗仅为9.6 W,只有GPU 功耗的八分之一,且PFS 可达49,完全满足边缘设备进行实时监测的要求。

4 结语

本文针对加油员人体检测的任务,对YOLOv5网络提出了几点轻量化改进:用GhostNet 重构YOLOv5网络,且去掉主干网中的两层,减少检测头的个数,以此来减少网络的参数量,增加推理速度,在此基础上添加注意力机制,来减少网络重构后精度的损失。在自建数据集上的实验结果表明,改进后的网络的精度几乎没有损失,而模型大小和参数量大大降低,推理速度也有了较大的提升,非常有利于在嵌入式开发板上部署。

猜你喜欢

网络结构卷积精度
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于DSPIC33F微处理器的采集精度的提高
基于傅里叶域卷积表示的目标跟踪算法
GPS/GLONASS/BDS组合PPP精度分析
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
沪港通下A+ H股票网络结构演化的实证分析
复杂网络结构比对算法研究进展
改进的Goldschmidt双精度浮点除法器