一种GSN-YOLOv5s的火焰烟雾检测方法
2022-02-04何亚平苏盈盈周能扬张气皓
何亚平 苏盈盈 周能扬 张气皓 阎 垒
(重庆科技学院 电气工程学院, 重庆 401331)
0 前 言
目标检测模型能够识别一幅图像中的多个目标,并判断目标的类别和位置。将目标检测技术应用于安全领域一直是研究者关注的问题。在易燃易爆场所工作时,需要做好防火防爆措施。火焰烟雾行为检测对保证生产安全和生命安全具有重要的意义。
随着计算机算力的大幅提升,基于深度学习的目标检测算法的精度和速度有了明显提升。基于深度学习的目标检测算法分为One-Stage和Two-Stage两大类。回天等人提出了一种结合Faster R-CNN的多类型火焰检测方法[1]。 以SSD[2]、YOLO[3]为代表的One-Stage算法速度更快,原因在于该算法能够在拍摄图像后直接输出物体的类别概率和位置坐标等信息。
Yi等人提出了ASSD模型,在SSD模型中插入注意力模块,通过注意力机制极大地减少了无用信息对检测结果的影响,提升了目标检测精度[4]。 赵坤提出了一种基于YOLOv3和KCF的火灾烟雾检测方法,由于KCF出色的跟踪性,降低了YOLOv3因环境因素突变带来的干扰,但检测速度较慢[5]。颜洵等人提出了一种用于检测火焰和烟雾目标的优化YOLOv4网络[6]。Fu等人将残差网络与SSD相结合,提出了DSSD模型,实现了对小目标的有效检测,在一定程度上提高了检测的准确性和速度[7]。
综上所述,以上算法在检测速度和精度上仍有提升空间。本次研究以YOLOv5s模型为基础,构建GSN-YOLOv5s网络模型,采用网络参数更小、检测速度更快的Ghost Bottleneck结构来替换原网络中的BottleneckCsp结构。考虑到减少网络参数可能会影响检测精度,在各网络层间增加SENet来降低减少参数带来的影响。通过对比实验结果表明,该模型大大减少了网络参数,缩短了检测时间,提高了检测精度。
1 YOLOv5模型基本框架
根据YOLOv5模型中残差组件个数的不同,可将其分为YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x等4个预训练模型。不同YOLOv5网络结构所对应的卷积核和残差组件个数也不同。随着残差组件个数的增加,模型的特征提取能力也相应提高。YOLOv5网络结构主要由Input、Backbone、Neck、Prediction等4个部分组成,如图1所示。
图1 YOLOv5网络结构
YOLOv5的Neck采样过程如图2所示(Backbone的下采样与Neck类似)。输入尺寸为6086083的图片到模型中,首先在主干网络中对特征信息进行初步提取,形成尺寸为7676、3838、1919等3个有效特征层;然后,Neck对提取到的特征进行上下采样,将浅层的细节信息和深层的语义信息进行融合,从而使网络提取到更加丰富的特征信息;最后,通过Prediction预测出位置信息和分类结果。
图2 YOLOv5的 Neck采样过程
2 改进的YOLOv5s模型
2.1 GhostNet网络模型
GhostNet是2020年提出的一种轻量型移动端网络,使用深度可分离卷积来降低计算参数[8]。
计算深度可分离卷积与普通卷积的比值,如式(1)所示:
(1)
式中:Dk—— 卷积核大小;
DF—— 输入图片大小;
M—— 输入通道数;
N—— 输出通道数。
Ghost Bottleneck主要由2个堆叠的Ghost模块组成,如图3所示。其中,第1个Ghost模块作为扩展层,用于增加通道数量;第2个Ghost模块作为缩减层,用于减少通道数量,匹配快捷路径。在第1个和第2个Ghost模块的输入与输出之间连接快捷方式。在第1个Ghost模块之后使用批量归一化(BN)和ReLU激活函数,在第2个Ghost模块之后使用批量归一化(BN)。步长为1的Ghost Bottleneck提取特征时,输入输出的大小不变;步长为2的Ghost Bottleneck在提取特征的同时,进行下采样操作。
图3 Ghost Bottleneck结构
2.2 SENet网络模型
SENet(Squeeze-and-Excitation Networks)是Hu等人[9]在2018年提出的网络模型,可通过网络损失学习特征权重。在网络训练过程中,有用的共享特征层被赋予更高的权重,无用或者用处小的共享特征层被赋予更低的权重。SENet通过权重大小来判断每个特征通道的重要程度,并根据这个重要程度提升有用的特征、抑制对当前目标用处不大的特征。
SE模块结构如图4所示。给定一个输入X∈RH′×W′×C′,经过一系列卷积变换为U∈RH×W×C,其中U=[u1,u2,…,uc],表示输出;V=[v1,v2,…,vc],表示一组滤波器,其中vc表示第c个滤波器的参数;Ftr表示卷积过程。卷积操作公式如式(2)所示:
图4 SE模块结构
(2)
式中:*表示卷积;vc=[vc,1,vc,2,…,vc,C′];X=[x1,x2,…,xC′];uc∈RH×W;vc,s为二维空间核,表示vc的单个通道作用于X的对应通道。
(1) Squeeze过程。根据空间维度进行特征压缩,使每个二维的特征通道成为一个实数,这个实数在一定程度上具有全局感受野,输出的维度与输入的特征通道数相匹配。U通过其空间维数H×W压缩产生的统计量z∈RC,则第c个元素zc如式(3)所示:
(3)
(2) Excitation过程。利用参数w为每个特征通道生成权重,以显示建模特征通道之间的相关性。采用Sigmoid函数,如式(4)所示:
s=Fex(z,w)=σ(g(z,w))=σ(w2δ(w1z))
(4)
(3) Scale过程。假设输出为U,则模块的最终输出通过激活s实现,如式(5)所示:
(5)
2.3 GSN-YOLOv5s模型
本次研究以模型小、速度快的YOLOv5s为基础,构建GSN-YOLOv5s网络模型。采用网络参数更小、检测速度更快的Ghost Bottleneck结构来替换原网络中的BottleneckCsp结构[10]。同时,考虑到减少网络参数可能会影响检测精度,在网络层间增加了SENet,以提高检测精度、减少网络参数、缩短检测时间。
GSN-YOLOv5s网络模型的Input、Neck和Prediction与YOLOv5网络模型一致,对YOLOv5s中的Backbone进行修改,得到GSN-YOLOv5s网络模型结构(见图5)。Ghost Bottleneck1和Ghost Bottleneck2分别表示步长为1和2的Ghost Bottleneck。采用Ghost Bottleneck和SENet替换原网络中的CBL和BottleneckCsp1,以提高检测精度、减少网络参数、缩短检测时间。
图5 GSN-YOLOv5s网络模型结构
3 实验结果分析
3.1 评价指标
本次研究使用精确度(precision)、召回率(recall)、精度均值(average precision,AP)、平均精度均值(mAP)对GSN-YOLOv5s网络模型性能进行评价。
精确度、召回率的计算如式(6)、式(7)所示:
(6)
(7)
式中:ntp表示识别成功且类别正确的图片数量;nfp表示识别成功且类别错误的图片数量;nfn表示识别失败且类别错误的图片数量。
精度均值、平均精度均值的计算如式(8)、式(9)所示:
(8)
(9)
式中:PA表示精度均值;PMA表示平均精度均值;N表示图片数量;P(i)表示识别出i个图片的精确度;Δr(i)表示识别的图片个数由i-1增加到i时召回率的变化;C表示类别数。
3.2 模型训练
3.2.1 数据集来源
为了提高模型的泛化能力,采用Mosaic数据增强方法对收集整理的烟雾火焰图片进行数据扩增,建立了一个包含1.4×104张图片的数据集。利用Labelimg软件对图片进行标注,并将数据集按照8 ∶1 ∶1的比例划分为训练集、测试集、验证集。
3.2.2 实验平台及训练流程
本次实验在GPU平台上进行模型的训练和测试工作。操作系统为Win10 64位,CPU为AMD Ryzen 5 3600 6核 3.6 GHz,显卡为NVIDIA 2060 super 8 GiB,内存为32 GiB,硬盘为SSD 500 GiB,代码语言为Python3.6,深度学习框架为Torch1.5、CUDA10.1。
为了让模型在训练过程中快速收敛并充分学习到特征信息,避免由于过拟合造成的泛化能力不足现象,采取以下策略对模型进行训练。首先,使用混合精度训练,使运算速度更快、硬件效率更高;其次,设初始学习率为0.000 01,动量为0.937,轮次为300;最后,使用L2正则化对权重进行衰减处理,衰减系数为0.000 5。
3.3 结果分析
分别对训练后的YOLOv5s、GSN-YOLOv5s网络模型进行图片测试,对置信度、检测时间、检测精度等指标进行对比分析。
3.3.1 置信度对比分析
从测试集中随机抽取3张图片,分别对YOLOv5s、GSN-YOLOv5s网络模型进行测试,测试效果对比图如图6所示。图6a中,GSN-YOLOv5s检测到的火焰置信度高于YOLOv5s;图6b、图6c中,GSN-YOLOv5s和YOLOv5s检测到的火焰烟雾置信度差距不大,但GSN-YOLOv5s检测到的火焰框比YOLOv5s多。由此可见,GSN-YOLOv5s检测到的目标更多、置信度更高。
图6 测试效果对比图
3.3.2 检测时间对比分析
由检测时间对比结果(见表1)可知,GSN-YOLOv5s的检测时间比YOLOv5s快约20%。
表1 检测时间对比结果
3.3.3 检测精度对比分析
由检测精度对比结果(见表2)可知,GSN-YOLOv5s的平均精度均值比YOLOv5s高2.4%。
表2 检测精度对比结果
4 结 语
本次研究基于YOLOv5s网络模型,设计了一种GSN-YOLOv5s火焰烟雾检测方法。将YOLOv5s的主干替换为轻量化的Ghostnet网络,并在各网络层间增加SENet来降低减少参数带来的影响。通过对比实验结果可知,GSN-YOLOv5s的平均精度均值比YOLOv5s高2.4%,检测时间比YOLOv5s快20%。GSN-YOLOv5s网络模型大大减少了网络参数,缩短了检测时间,提高了检测精度。