YOLOV8改进:两种添加CBAM注意力机制的方法

本文介绍了CBAM注意力机制及其在YOLOV8中的两种不同位置的添加方式,包括SPPF模块后和三个分支上。作者提供了改进后的代码包,便于快速集成和使用,适用于科研和毕业设计
摘要由CSDN通过智能技术生成

最近阅读了一些论文,发现两种CBAM添加使用方法,我进行了实现。首先介绍CBAM注意力机制。

CBAM(Convolutional Block Attention Module),结构如下图所示:

可以看到 CBAM 包含2个独立的子模块, 通道注意力模块(Channel Attention Module,CAM) 和空间注意力模块(Spartial Attention Module,SAM) ,分别进行通道与空间上的 Attention 。 这样不只能够节约参数和计算力,并且保证了其能够做为即插即用的模块集成到现有的网络架构中去。

(一)、Channel Attention Module(CAM)
通道上的Attention模块以及具体计算如下图所示:

具体流程如下:
将输入的特征图F(H×W×C)分别经过基于width和height的global max pooling(全局最大池化)和global average pooling(全局平均池化),得到两个1×1×C的特征图,接着,再将它们分别送入一个两层的神经网络(MLP),第一层神经元个数为 C/r(r为减少率),激活函数为 Relu,第二层神经元个数为 C,这个两层的神经网络是共享的。而后,将MLP输出的特征进行基于element-wise的加和操作,再经过sigmoid激活操作,生成最终的channel attention feature,即M_c。最后,将M_c和输入特征图F做element-wise乘法操作,生成Spatial attention模块需要的输入特征。
(二)、Spatial Attention Module(SAM)
空间上的Attention模块以及具体计算如下图所示:

具体流程如下:
将Channel attention模块输出的特征图F‘作为本模块的输入特征图。首先做一个基于channel的global max pooling 和global average pooling,得到两个H×W×1 的特征图,然后将这2个特征图基于channel 做concat操作(通道拼接)。然后经过一个7×7卷积(7×7比3×3效果要好)操作,降维为1个channel,即H×W×1。再经过sigmoid生成spatial attention feature,即M_s。最后将该feature和该模块的输入feature做乘法,得到最终生成的特征。

上文原文链接:http://t.csdnimg.cn/keVRz

然后再谈谈我使用CBAM如何对YOLOV8进行改进的。

第一种,也是最常见的一种,将CBAM模块添加到SPPF模块后面的位置,如下图:

第二种是在左侧三个分支上添加了CBAM,如下图所示:

代码的修改就是这样,我将两种修改的框架都放到了一个代码包中,如果各位有意购买改进的源码,请移步:YOLOV8改进:两种添加CBAM方式

购买即可获得两种修改方式,代码中我已经做好了完整的修改,只需要添加数据源和自己的路径,即可训练。即买即用,对于组会忙着拼凑组会汇报的进度,忙着寻找创新点的炼丹师们极为友好,本科生直接拿来做毕业设计也是极好的,一顿饭钱就解决了本科毕业的问题。

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值