YOLOv5|基于改进YOLOv5轻量化的烟火检测

一、介绍
二、方法
A.理论
B.轻型DSG_YOLOv5模型
(1)轻量化改进:
(2)自适应锚点:
(3)网络结构及实施流程:
三、结果
A.实验平台和数据集
B.结果分析
(1)模型评估:
(2)消融研究:
四、结论

一、介绍 火灾对人类生命和财产构成巨大威胁,随着经济的快速发展,建筑物规模的增加和环境的复杂性也对防火提出了很大的挑战。因此,及时准确地检测火焰目标在消防安全领域具有重要意义。
火焰检测经历了传感器检测、传统图像处理方法、深度学习方法等阶段。早期的火焰探测方法大多使用基于烟雾传感器、温度传感器、热像仪的硬件设备。但这些硬件设备的检测精度很容易受到环境的影响,硬件设备容易损坏且价格昂贵,误报率也非常高。
由于传感器和用于检测火焰的传统图像处理方法都存在重大缺陷,研究人员已开始尝试使用卷积神经网络提取火焰特征。最新的YOLOv5目标检测算法改善了目标检测中的常见问题,检测精度高于上述检测算法。由于该模型对实时性能要求较高,因此选择YOLOv5目标检测算法作为轻量级改进的基准算法。
二、方法 A.理论 Yolov5有四种不同尺寸的型号:yolov5s,yolov5m,yolov51和yolov5x。这四个模型的精度和模型尺寸依次增加,检测速度以tum为单位降低。这意味着YOLOv5s可以更容易地部署到嵌入式设备上,并具有最快的检测速度。
B.轻型DSG_YOLOv5模型 (1)轻量化改进:
深度可分离卷积(DS_Conv)由深度卷积和逐点卷积两部分的组合组成,用于提取特征。如下图所示,当卷积三通道RGB图像时,普通卷积使用a×a×3卷积核同时卷积所有三个通道。当需要提取 n 个属性时,需要 n 个大小为 a ×a×3 的卷积核。DS_Conv使用三个卷积核对三个通道中的每个通道进行卷积以输出三个数字,然后使用1×1×3卷积核将三个数字卷积以输出一个数字。当需要提取 n 个属性时,只需要 n1×1×3 卷积核。随着越来越多的属性被提取,DS_Conv能够保存更多的参数。因此,在该网络中使用DS_Conv来代替主干网络中常见的卷积,从而可以减少参数数量和运营成本。
YOLOv5|基于改进YOLOv5轻量化的烟火检测
文章图片

公式如下:
YOLOv5|基于改进YOLOv5轻量化的烟火检测
文章图片

其中Dk*Dk表示卷积内核大小,M 表示输入通道数,N 表示输出通道数,N_depthwiseN_pointwise 分别表示深度卷积和逐点卷积的参数数量。
Ghost Module是GhostNet中提出的一个轻量级卷积模块,其思路如下图所示,特征图首先通过普通卷积获得特征图,特征图的通道数为输出通道的一半,然后对获得的特征图进行线性操作,生成与自身相同通道数的特征图。最后,将两个部分拼接在一起。将瓶颈中的正常卷积替换为两个堆叠的 Ghost 模块,以获得 GhostBottleneck。将原始瓶颈替换为 GhostBottleneck 堆栈以获得Ghost_C3,使用Ghost_C3替换骨干中的C3,以减少计算并得到轻量级模型。
YOLOv5|基于改进YOLOv5轻量化的烟火检测
文章图片

(2)自适应锚点:
Yolov5 预设锚框用于 COCO 数据集,最大纵横比为 4:1。但是,我自己使用的一些数据锚帧的纵横比已经超过4:1,因此需要自定义锚点。
yolov5使用K均值算法和遗传算法对k均值聚类的结果进行突变,以生成与当前数据集具有更高匹配度的锚点。在本文创建了一个脚本并调用 k-means 函数来计算适合该数据集的最佳锚点大小,如下图所示:
YOLOv5|基于改进YOLOv5轻量化的烟火检测
文章图片

(3)网络结构及实施流程:
结合上面的一部分介绍,可以获得本文改进的网络结构图,下图所示:
YOLOv5|基于改进YOLOv5轻量化的烟火检测
文章图片

算法实现的流程如下图所示:
YOLOv5|基于改进YOLOv5轻量化的烟火检测
文章图片

首先,我们将标记的数据集分为三部分:训练集、验证集和测试集。其次,我们需要设置训练的初始化参数:epoch、批量大小、学习速率、优化器、网络模型的 yaml 文件。然后,我们调整hsv,翻转,度数等,并确定是否使用Mosaic增强功能。该算法加载已设置的参数和数据并对其进行处理,提取特征并对目标进行分类和定位,然后使用优化器优化参数。该算法记录每个纪元的 mAP 值,并将其与上一个纪元中获得的 mAP 值进行比较。选择mAP值最高的模型进行更新和存储,从而获得 best.pt。它被用作测试集测试图像的砝码,并将最终的识别结果标记在测试集图像上。
三、结果 A.实验平台和数据集 用于实验的操作系统是Windows 10,CPU是Intel(R) Core(TM)i7-11700 K @ 3.60 GHz,GPU是NVIDIA GeForce RTX 3080。数据集来源于网络爬虫,并且使用数据增强进行扩充。
B.结果分析 (1)模型评估:
使用的平均精度(map),精度和召回率来评估模型。定义如下:
YOLOv5|基于改进YOLOv5轻量化的烟火检测
文章图片


YOLOv5|基于改进YOLOv5轻量化的烟火检测
文章图片

其中TP表示正确预测的阳性样本的数量; FP是被错误地预测为正样本的负样本的数量; FN 是被错误地预测为负样本的正样本数。AP是通过积分PR(精度-召回率)曲线获得的,mAP是通过对所有AP值求平均值而获得的。mAP 值越高,表示模型检测效果越好。
(2)消融研究:
为了达到模型的最佳性能,分别由SGD和Adam进行了优化,下图可以看出,在改进前后,使用SGD优化器的mAP@0.5和mAP@0.5:0.95值高于Adam优化器。因此,在此网络中使用 SGD 优化器来优化网络参数。
YOLOv5|基于改进YOLOv5轻量化的烟火检测
文章图片

为了证明该算法各改进措施和模块的有效性,进行了以下四项消融实验。使用来自测试集的图像,使用FPS测量模型的检测速度,使用FLOP和参数来测量模型网络的复杂性,并记录模型的大小。实验过程和结果如下图所示:
YOLOv5|基于改进YOLOv5轻量化的烟火检测
文章图片


YOLOv5|基于改进YOLOv5轻量化的烟火检测
文章图片

可以看出,每次改进措施得到的mAP@0.5的差异在0.004以内,使用深度可分卷积代替普通卷积后,mAP和FPS值略有改善。参数和 FLOP 的数量分别减少到 80.3% 和 79.2%,模型尺寸减少了约 2.8 M.使用轻量级Ghost_C3模块不仅可以每秒额外检测五帧,还可以将参数数量减少到原来的 74.6%。FLOPs数量减少到原来的67%,模型尺寸减小了3.6 M.以上结果表明,本文提出的每一项措施都可以达到模型轻量化的目的。
基于上述措施,本文提出的DSG YOLOv5模型不仅可以保证检测精度,还可以将参数和FLOP的数量减少到原来的54.8%和47%,将模型尺寸减小6.4 M,每秒处理5.47帧数据,可以达到模型轻量化和提高数据检测速度的目的。
四、结论【YOLOv5|基于改进YOLOv5轻量化的烟火检测】针对实际火焰检测环境,难以将大型网络模型部署到计算能力小的移动或嵌入式设备上,本文提出了一种改进的轻量级DSG-YOLOv5模型。该模型使用深度可分卷积替换主干中的正常卷积,使用Ghost_C3替换C3,然后使用锚点计算函数迭代适合其自身数据集的锚点大小。实验结果表明,DSG-YOLOv5模型在保证数据集测试集mAP值的同时,将参数和FLOP的数量减少到原来的一半左右,显著降低了模型,加快了数据检测速度。

    推荐阅读