Light-YOLOv5 | SepViT + BiFPN + SIoU成就更轻更快更优秀的 YOLOv5 改进算法

简介: Light-YOLOv5 | SepViT + BiFPN + SIoU成就更轻更快更优秀的 YOLOv5 改进算法

7b9180f419216f74b2a74e79ab0bf40e.png

针对现有目标检测算法应用于复杂火灾场景检测精度差、速度慢、部署困难的问题,本文提出一种轻量级的 Light-YOLOv5 火灾检测算法,实现速度和精度的平衡。


首先,将最后一层 Backbone 替换为SepViT Block,增强 Backbone 与全局信息的联系;


其次,设计了 Light-BiFPN Neck 网络,在提高特征提取的同时减轻模型复杂度;


第三,将全局注意力机制(GAM)融合到网络中,使模型更加关注全局维度特征;


最后,使用 Mish 激活函数和 SIoU 损失来提高收敛速度,同时提高准确率。


实验结果表明,Light-YOLOv5 与原算法相比 mAP 提升 3.3%,参数数量减少 27.1%,计算量减少 19.1%,FPS 达到 91.1。即使与最新的 YOLOv7-tiny 相比,Light-YOLOv5 的 mAP 也高出6.8%,可见该算法的有效性。

1、简介

火灾会对公共安全产生重大影响,每年都会造成大量人员伤亡和财产损失。及时发现火灾可以大大减少人员伤亡和损失。

传统的火灾检测方法主要使用烟雾和温度传感器,检测范围和场景有限,响应时间长。随着人工智能和机器学习的发展,基于深度学习的火灾检测得到了广泛的应用。但是,火灾检测场景往往过于复杂多变,在这种情况下,传统火灾检测算法的泛化性和鲁棒性不足,难以部署到低算力平台。针对现有火灾检测的不足,本文提出一种基于 YOLOv5 的轻量级 Light-YOLOv5s 复杂火灾场景检测算法。本文的贡献如下:

  1. 用SepViT Block替换 Backbone 网络的最后几层,加强网络与全局特征信息的连接;
  2. 提出一种 Light-BiFPN 结构,降低计算成本和参数,同时增强多尺度特征的融合,丰富语义特征;
  3. 在 YOLOv5 中加入了全局注意力机制,以增强网络的整体特征提取能力;
  4. 最终验证了 Mish 激活函数和 SIoU 损失函数的有效性。

2、本文方法

2.1、Baseline

YOLOv5 有n、s、m版本等。经过实验对比选择了兼具速度和准确率的 YOLOv5n 作为改进的 baseline,将改进后的模型称为 Light-YOLOv5,其结构如图1所示。

f4852fb23943eab4336ddf3688ec5e03.png

2.2、Separable Vision Transformer

近年来,Vision Transformer 在一系列计算机视觉任务中取得了巨大成功,在主要领域的性能超过了 CNN。然而,这些性能通常是以增加计算复杂性和参数数量为代价的。

Separable Vision Transformer 通过在平衡计算成本的同时保持准确性来解决这一挑战。本文将 Backbone 网络的最后一层替换为 SepViT Block,增强了模型的特征提取能力,优化了网络全局信息的关系。

在 SepViT Block 中,depthwise self-attention 和 pointwise self-attention 减少了计算量,实现了窗口中的局部信息通信和全局信息交互。首先,将分割后的特征图的每个窗口视为其输入通道之一,每个窗口包含自己的信息,然后对每个窗口 Token 及其像素 Token 进行深度自注意力(DWA)。DWA 的操作如下:

55ed9060a5bb4a354c1c1ae0a3fb38d7.png

其中 𝑓 是特征 Token,由窗口Token和像素Token组成。𝑊𝑄、𝑊𝐾和𝑊𝑉代表3个线性层,用于常规自注意力中的 query、key 和 value 计算。注意力表示标准的自注意力操作。

DWA操作完成后,使用 pointwise self-attention(PWA) 建立窗口之间的连接,并通过 LayerNormalization(LN) 和 GelU 激活函数生成 Attention map。PWA的操作如下:

0e42b42a55e2502857e919b753512e3e.png

其中,𝑤𝑡表示窗口Token。然后,SepViT Block 可以表示为:

13154f711e8f30133dbea7a5fafede79.png

其中,表示为 SepViT Block。和是特征图和学习到的窗口Token。Concat表示拼接操作。Slice表示切片操作。图2显示了SepViT Block的结构。

87fe53bdb02d4563bd1f7a4c61fee0b5.png

2.3、Light-BiFPN Neck

在本节中,受到这些文章的启发,例如 MobileNet、ShuffleNet、EfficientDet、GhosetNet、PP-LCNet 等。我们设计了一个轻量级的颈部网络,我们称之为 Light-BiFPN。

在火灾检测中,速度和准确性同样重要,作者发现深度可分离卷积 (DSC) 和 Ghost 卷积在准确性上几乎没有差异。DSC 能够在更大程度上减少参数和计算量,但 DSC 也存在计算过程中输入图像的通道信息分离的缺点。为了解决这个问题,作者通过通道 Shuffle DSC输出的特征来改进DSC块,文章称之为改进的模块 DSSSonv,其结构如图3(b)所示。其中深度可分离卷积由深度卷积和点卷积组成,输入一个𝐻×𝑊×𝐶 特征图𝑃 ,每个输入通道一个滤波器的深度卷积可以描述为:

3e163cf53cb689ecc87da01861e755b3.png

其中𝐾是大小为 𝐻𝑘×𝑊𝑘×𝐶 的深度卷积核,其中𝑚𝑡ℎ滤波器应用于𝑃中的𝑚𝑡ℎ通道,以生成过滤后的输出特征图𝐺的𝑚𝑡ℎ通道。然后通过以下方式生成新特征 1×1 点卷积,计算过程如图3(a)所示。

8b905dd48495a7baae76ee53ac8796d0.png

作者还基于 YOLOv5 的 bottleneck 和 C3 模块设计了 DSSbottleneck 和 DSSC3,它们的结构如图4(a)和(b)所示。

f2185b8a57cd562d6150d181b02e7ad4.png

YOLOv5 在 Neck 使用 PANET 进行特征提取和融合。它采用自下而上和自上而下的双向融合方法,取得了不错的效果,但火灾检测的环境通常过于复杂,需要融合更多的特征才能获得更好的效果。

BiFPN是一种加权双向特征金字塔网络,将同一层的输入和输出节点跨层连接起来,实现更高层次的融合,缩短上下层之间信息传递的路径。由于加权带来了一定的计算量提升,本文去掉了加权特征融合,使 Neck 网络进一步轻量化。

2.4、Global Attention Mechanism

火灾检测环境复杂,容易出现误检和漏检。GAM 用于加强空间与通道之间的联系,减少火灾中火焰和烟雾的信息还原,放大全局维度的特征。给定输入特征图 ,输出 𝐹3 定义为:

d5af547aa7429f44e21c802a7f5e14f8.png

其中𝑀𝑐是通道图,𝑀𝑆是空间图;⊗ 表示元素乘法。将 GAM 添加到 bottleneck 模块中,其结构如图 5 所示。

a93d3efab26a44603cdd520e0b190642.png

2.5、IoU Loss and Activation

IoU loss 可以更准确地预测 bounding box 回归的定位,YOLO 系列中最常用的就是 CIoU。随着研究的深入,IoU的变种也越来越多,如 DIoU、GIoU、EIoU 和最新的 SIoU。它们的定义如下:

6190a088f00ead67c5a749d67b40079c.png

其中参数𝐴和𝐵分别表示 ground truth 边界框的面积和预测边界框的面积;𝐶 表示 ground truth 边界框和预测边界框的最小包围框;𝑏,𝑏𝑔𝑡 分别表示预测边界框和 ground truth 边界框的质心,𝜌 表示两个质心之间的欧几里得距离,𝑑 是可以同时包含预测边界框和真实边界框的最小封闭区域的对角线距离 ground truth 边界框;𝛼 是权重函数,𝑣 用来衡量纵横比的相似度。

YOLOv5 使用的 CIoU 依赖于边界框回归指标的聚合,没有考虑期望的 ground truth 框和预测的“实验”框之间不匹配的方向。这导致在训练速度和预测准确性方面不如 SIoU。

在轻量级网络中,HSwish、Mish 和 LeakyReLU 在训练速度上都比 ReLu 快。它们可以定义为:

88dcfcd9ed7b506b3cdcd0e0dc8489f4.pnga28347da3d479d4366c0d51c8d1a678b.png

3、实验

cd957ca08eda5f8369b4e1eb6a234527.pngcbc06fd94ce701d849aac3f32abd7742.png

4、推荐阅读

超越YOLOv7 | YOLOv6论文放出,重参+自蒸馏+感知量化+...各种Tricks大放异彩

YOLOU 集成超轻量化 YOLO 系列模型YOLO-Fastest v2,ONNX一键导出部署!

Transformer新SOTA | 超越SWin、CSWin,MAFormer再探ViT Backbone新高度

相关文章
|
6月前
|
机器学习/深度学习 编解码 自然语言处理
超轻超快Backbone | MobileNet+ViT可以起飞吗?MOTA可以带你重新设计!
超轻超快Backbone | MobileNet+ViT可以起飞吗?MOTA可以带你重新设计!
70 0
|
6月前
|
算法 固态存储 计算机视觉
Focaler-IoU开源 | 高于SIoU+关注困难样本,让YOLOv5再涨1.9%,YOLOv8再涨点0.3%
Focaler-IoU开源 | 高于SIoU+关注困难样本,让YOLOv5再涨1.9%,YOLOv8再涨点0.3%
247 0
|
6月前
|
机器学习/深度学习 算法 固态存储
最强DETR+YOLO | 三阶段的端到端目标检测器的DEYOv2正式来啦,性能炸裂!!!
最强DETR+YOLO | 三阶段的端到端目标检测器的DEYOv2正式来啦,性能炸裂!!!
230 0
|
6月前
|
机器学习/深度学习 算法 计算机视觉
YOLOv5改进 | 损失函数篇 | 最新ShapeIoU、InnerShapeIoU损失助力细节涨点
YOLOv5改进 | 损失函数篇 | 最新ShapeIoU、InnerShapeIoU损失助力细节涨点
301 1
|
5月前
|
机器学习/深度学习 编解码 计算机视觉
【保姆级教程|YOLOv8改进】【6】快速涨点,SPD-Conv助力低分辨率与小目标检测
【保姆级教程|YOLOv8改进】【6】快速涨点,SPD-Conv助力低分辨率与小目标检测
|
机器学习/深度学习 传感器 人工智能
Light-YOLOv5 | SepViT + BiFPN + SIoU成就更轻更快更优秀的 YOLOv5 改进算法
Light-YOLOv5 | SepViT + BiFPN + SIoU成就更轻更快更优秀的 YOLOv5 改进算法
261 0
|
机器学习/深度学习 存储 固态存储
全新FPN开源 | CFPNet即插即用,助力检测涨点,YOLOX/YOLOv5均有效(一)
全新FPN开源 | CFPNet即插即用,助力检测涨点,YOLOX/YOLOv5均有效(一)
289 0
|
机器学习/深度学习 Go 计算机视觉
全新FPN开源 | CFPNet即插即用,助力检测涨点,YOLOX/YOLOv5均有效(二)
全新FPN开源 | CFPNet即插即用,助力检测涨点,YOLOX/YOLOv5均有效(二)
1019 0
|
机器学习/深度学习 算法 数据可视化
涨点Trick | 超越CWD、FGD和MGD,AMD蒸馏让目标检测对小目标更有效(一)
涨点Trick | 超越CWD、FGD和MGD,AMD蒸馏让目标检测对小目标更有效(一)
630 0
|
计算机视觉
涨点Trick | 超越CWD、FGD和MGD,AMD蒸馏让目标检测对小目标更有效(二)
涨点Trick | 超越CWD、FGD和MGD,AMD蒸馏让目标检测对小目标更有效(二)
222 0