【YOLOv8改进 - 注意力机制】LS-YOLO MSFE:新颖的多尺度特征提取模块 | 小目标/遥感

简介: YOLO系列目标检测模型的新发展,LS-YOLO专为滑坡检测设计。它使用多尺度滑坡数据集(MSLD)和多尺度特征提取(MSFE)模块,结合ECA注意力,提升定位精度。通过改进的解耦头,利用膨胀卷积增强上下文信息。在滑坡检测任务中,LS-YOLO相对于YOLOv5s的AP提高了2.18%,达到97.06%。论文和代码已开源。

YOLO目标检测创新改进与实战案例专栏

专栏目录: YOLO有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

专栏链接: YOLO基础解析+创新改进+实战案例

介绍

摘要

摘要——滑坡是一种广泛且具有毁灭性的自然灾害,对人类生命、安全和自然资产构成严重威胁。研究利用遥感影像进行滑坡精准检测的高效方法具有重要的学术和实际意义。本文提出了一种新颖且有效的滑坡检测模型LS-YOLO,利用遥感影像进行滑坡检测。我们首先构建了一个多尺度滑坡数据集(MSLD),并在数据增强中引入随机种子以增加数据的鲁棒性。考虑到遥感影像中滑坡的多尺度特性,设计了基于高效通道注意力、平均池化和空间可分离卷积的多尺度特征提取模块。为了增加模型的感受野,在解耦头中采用了膨胀卷积。具体而言,将由膨胀卷积组成的上下文增强模块添加到解耦头回归任务分支中,然后用改进的解耦头替换YOLOv5s中的耦合头。大量实验表明,我们提出的模型在多尺度滑坡检测方面具有高性能,优于其他目标检测模型(faster RCNN、SSD、EfficientDet-D0、YOLOv5s、YOLOv7和YOLOX)。与基准模型YOLOv5s相比,LS-YOLO在滑坡检测中的AP提升了2.18%,达到了97.06%。

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

LS-YOLO

  1. 多尺度滑坡数据集(MSLD)

    • 构建了一个包含大量滑坡样本的MSLD,具有高度的类内变化、广泛的滑坡尺寸范围和复杂的背景,为模型训练提供了丰富的数据资源。
  2. 多尺度特征提取(MSFE)模块

    • MSFE模块包括Efficient Channel Attention(ECA)、平均池化和空间可分离卷积,用于充分提取滑坡特征信息。
    • ECA部分引入了注意力机制,通过全局平均池化聚合特征并自适应地确定核大小,以增强模型对重要特征的关注。
  3. 改进的解耦头

    • LS-YOLO通过引入扩张卷积来改进解耦头,增加模型的感受野,提高滑坡定位的准确性。
    • 扩张卷积有助于捕获多尺度上下文信息,提升模型在滑坡位置定位方面的精度。
  4. 整体框架

    • LS-YOLO的整体框架结合了YOLOv5s的通用目标检测能力,并针对滑坡检测任务进行了优化和改进。
    • 模型在滑坡检测中利用MSFE模块提取多尺度特征,同时通过改进的解耦头提高了滑坡位置的准确性。

    MSFE

MSFE(Multiscale Feature Extraction)模块是论文中提出的一个关键技术,通过五个并行分支从多个感受野充分提取滑坡特征。

  1. 模块结构
    • MSFE模块包含两个分支:
      • 第一个分支是残差连接,有助于减轻梯度消失并加快模型训练速度。
      • 第二个分支包括Efficient Channel Attention(ECA)、平均池化和空间可分离卷积,用于充分提取滑坡特征信息。
  2. Efficient Channel Attention(ECA)
    • ECA是一种通用的插入式块,用于增强CNN的性能。
    • ECA包含一个挤压模块,用于压缩全局空间信息,以及一个激励模块,用于实现通道间的交互。
    • ECA通过全局平均池化聚合特征,自适应确定核大小k。

      核心代码

import torch
import torch.nn as nn

# MSFE模块定义
class MSFE(nn.Module):

    def __init__(self, c_in, c_out):
        super(MSFE, self).__init__()

        c_ = int(c_in // 4)  # 计算每个分支的输出通道数

        self.ECA = ECA(c_in, k_size=5)  # ECA模块
        self.branch1 = Conv(c_in, c_, 1, 1)  # 分支1,1x1卷积

        # 分支2,3x3平均池化
        self.branch2 = nn.AvgPool2d(kernel_size=3, stride=1, padding=1)

        # 分支3,串联两个卷积层
        self.branch3 = nn.Sequential(
            Conv(c_in, c_, (3, 1), s=1, p=(1, 0)),  # 3x1卷积
            Conv(c_, c_, (1, 3), s=1, p=(0, 1))  # 1x3卷积
        )

        # 分支4,串联四个卷积层
        self.branch4 = nn.Sequential(
            Conv(c_in, c_, (3, 1), s=1, p=(1, 0)),  # 3x1卷积
            Conv(c_, c_, (1, 3), s=1, p=(0, 1)),  # 1x3卷积
            Conv(c_, c_, (3, 1), s=1, p=(1, 0)),  # 3x1卷积
            Conv(c_, c_, (1, 3), s=1, p=(0, 1))  # 1x3卷积
        )

        # 分支5,串联四个卷积层
        self.branch5 = nn.Sequential(
            Conv(c_in, c_, (5, 1), s=1, p=(2, 0)),  # 5x1卷积
            Conv(c_, c_, (1, 5), s=1, p=(0, 2)),  # 1x5卷积
            Conv(c_, c_, (5, 1), s=1, p=(2, 0)),  # 5x1卷积
            Conv(c_, c_, (1, 5), s=1, p=(0, 2))  # 1x5卷积
        )

        self.conv = Conv(c_in * 2, c_out, k=1)  # 1x1卷积,用于整合所有分支的输出

    def forward(self, x):
        x1 = self.ECA(x)  # 通过ECA模块
        y1 = self.branch1(x1)  # 分支1的输出
        y2 = self.branch2(x1)  # 分支2的输出
        y3 = self.branch3(x1)  # 分支3的输出
        y4 = self.branch4(x1)  # 分支4的输出
        y5 = self.branch5(x1)  # 分支5的输出

        # 将所有分支的输出在通道维度上拼接,并通过1x1卷积层,然后与输入x相加
        out = x + self.conv(torch.cat([y1, y2, y3, y4, y5], 1))
        return out

task与yaml配置

详见:https://blog.csdn.net/shangyanaf/article/details/140092794

相关文章
|
5月前
|
机器学习/深度学习 Go 计算机视觉
YOLOv8改进 | Neck篇 | 利用ASF-YOLO改进特征融合层(适用于分割和目标检测)
YOLOv8改进 | Neck篇 | 利用ASF-YOLO改进特征融合层(适用于分割和目标检测)
423 1
|
5月前
|
机器学习/深度学习
YOLOv8改进 | 注意力篇 | ACmix自注意力与卷积混合模型(提高FPS+检测效率)
YOLOv8改进 | 注意力篇 | ACmix自注意力与卷积混合模型(提高FPS+检测效率)
323 0
|
5月前
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
|
机器学习/深度学习 算法 数据挖掘
即插即用 | 通过自适应聚类Transformer来提升DERT目标检测器的速度(文末附论文下载)(一)
即插即用 | 通过自适应聚类Transformer来提升DERT目标检测器的速度(文末附论文下载)(一)
779 0
|
3月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进 - 特征融合】 YOGA iAFF :注意力机制在颈部的多尺度特征融合
【YOLOv8改进 - 特征融合】 YOGA iAFF :注意力机制在颈部的多尺度特征融合
|
3月前
|
编解码 Go 文件存储
【YOLOv8改进 - 特征融合NECK】 DAMO-YOLO之RepGFPN :实时目标检测的创新型特征金字塔网络
【YOLOv8改进 - 特征融合NECK】 DAMO-YOLO之RepGFPN :实时目标检测的创新型特征金字塔网络
|
5月前
|
编解码 算法 计算机视觉
YOLO特征融合的原理是怎样的?
YOLO特征融合的原理是怎样的?
|
3月前
|
机器学习/深度学习 计算机视觉
YOLOv10实战:红外小目标实战 | 多头检测器提升小目标检测精度
本文改进: 在进行目标检测时,小目标会出现漏检或检测效果不佳等问题。YOLOv10有3个检测头,能够多尺度对目标进行检测,但对微小目标检测可能存在检测能力不佳的现象,因此添加一个微小物体的检测头,能够大量涨点,map提升明显; 多头检测器提升小目标检测精度,1)mAP50从0.666提升至0.677
632 3
|
3月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进 - Backbone主干】清华大学CloFormer AttnConv :利用共享权重和上下文感知权重增强局部感知,注意力机制与卷积的完美融合
【YOLOv8改进 - Backbone主干】清华大学CloFormer AttnConv :利用共享权重和上下文感知权重增强局部感知,注意力机制与卷积的完美融合
|
4月前
|
计算机视觉
【YOLOv8改进 - 特征融合NECK】 HS-FPN :用于处理多尺度特征融合的网络结构,降低参数
MFDS-DETR是针对白细胞检测的创新方法,它通过HS-FPN和可变形自注意力解决规模差异和特征稀缺问题。HS-FPN利用通道注意力模块增强特征表达,改善多尺度挑战。代码和数据集可在给定链接获取。此方法在WBCDD、LISC和BCCD数据集上表现优越,证明了其有效性和通用性。YOLO系列文章提供了更多目标检测改进和实战案例。
下一篇
无影云桌面