注意力机制包括CBAM、CA、ECA、SE、S2A、SimAM等,接下来介绍具体添加方式。

  1. CBAM代码,在common文件中添加以下模块:
class CBAMC3(nn.Module):# CSP Bottleneck with 3 convolutionsdef __init__(self, c1, c2, n=1, shortcut=True, g=1, e=0.5):  # ch_in, ch_out, number, shortcut, groups, expansionsuper(CBAMC3, self).__init__()c_ = int(c2 * e)  # hidden channelsself.cv1 = Conv(c1, c_, 1, 1)self.cv2 = Conv(c1, c_, 1, 1)self.cv3 = Conv(2 * c_, c2, 1)self.m = nn.Sequential(*[Bottleneck(c_, c_, shortcut, g, e=1.0) for _ in range(n)])self.channel_attention = ChannelAttention(c2, 16)self.spatial_attention = SpatialAttention(7)# self.m = nn.Sequential(*[CrossConv(c_, c_, 3, 1, g, 1.0, shortcut) for _ in range(n)])def forward(self, x):# 将最后的标准卷积模块改为了注意力机制提取特征return self.spatial_attention(self.channel_attention(self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), dim=1))))

2. 在yolo文件中,定位到parse_model函数,在C3Ghost后面加入CBAMC3模块

 if m in (Conv, GhostConv, Bottleneck, GhostBottleneck, SPP, SPPF, DWConv, MixConv2d, Focus, CrossConv,BottleneckCSP, C3, C3TR, C3SPP, C3Ghost):c1, c2 = ch[f], args[0]if c2 != no:  # if not outputc2 = make_divisible(c2 * gw, 8)args = [c1, c2, *args[1:]]if m in [BottleneckCSP, C3, C3TR, C3Ghost]:args.insert(2, n)  # number of repeatsn = 1

3.在yolov5s.yaml文件中修改网络结构,可以在backbone中添加一层

  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2[-1, 1, Conv, [128, 3, 2]],  # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]],  # 3-P3/8[-1, 6, C3, [256]],[-1, 1, Conv, [512, 3, 2]],  # 5-P4/16[-1, 9, C3, [512]],[-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, CBAMC3,[1024]],[-1, 1, SPPF, [1024, 5]],  # 9]

则下面的head也得修改,p4,p5以及最后的总层数都得+1。

  [[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 6], 1, Concat, [1]],  # cat backbone P4[-1, 3, C3, [512, False]],  # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 4], 1, Concat, [1]],  # cat backbone P3[-1, 3, C3, [256, False]],  # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 15], 1, Concat, [1]],  # cat head P4[-1, 3, C3, [512, False]],  # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 11], 1,Concat, [1]],  # cat head P5[-1, 3, C3, [1024, False]],  # 23 (P5/32-large)[[18, 21, 24], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)]

正常训练即可。

YOLOv5改进--添加CBAM注意力机制相关推荐

  1. 改进YOLOv5系列:21.添加CBAM注意力机制

  2. YOLOv5改进系列(8)——添加SOCA注意力机制

    [YOLOv5改进系列]前期回顾: YOLOv5改进系列(0)--重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)--添加SE注意力机制

  3. 目标检测算法——YOLOv5/YOLOv7改进之结合CBAM注意力机制

    深度学习Tricks,第一时间送达 论文题目:<CBAM: Convolutional Block Attention Module> 论文地址:  https://arxiv.org/p ...

  4. 融合CBAM注意力机制基于YOLOv5开发构建毛尖茶叶嫩芽检测识别系统

    首先看下整体效果: 要进行茶叶嫩芽的检测和识别,可以使用计算机视觉和深度学习技术来实现.下面是一种基本的流程: 数据收集:收集包含毛尖.嫩芽以及其他类型茶叶图像的数据集.确保数据集中包含不同角度.光照 ...

  5. YOLOv5改进系列(1)——添加SE注意力机制

    前言 从这篇开始我们进入YOLOv5改进系列.那就先从最简单的添加注意力机制开始吧!( ̄︶ ̄)↗ [YOLOv5改进系列]前期回顾: YOLOv5改进系列(0)--重要性能指标与训练结果评价及分析 目 ...

  6. YOLOv5改进添加解耦头、ASFF

    网上有很多添加解耦头的博客,在此记录下我使用解耦头对YOLOv5改进,若侵权删 解耦头的介绍过段时间再写,先直接上添加方法(这篇文章写的很好,解释了解耦头的作用) ASFF我没有使用过,但是按照下边的 ...

  7. YOLOV5改进-添加EIoU,SIoU,AlphaIoU,FocalEIoU,Wise-IoU

    在YoloV5中添加EIoU,SIoU,AlphaIoU,FocalEIoU,Wise-IoU. 2023-2-7 更新 yolov5添加Wise-IoUB站链接 重磅!!!!! YOLO模型改进集合 ...

  8. 改进YOLOv5系列:16.添加SKAttention注意力机制

    最新创新点改进推荐 -

  9. 改进YOLOv5、YOLOv8系列:14.添加S2-MLPv2注意力机制

    最新创新点改进推荐 -

最新文章

  1. 全国移动联通基站数据升级包(2013年1月基站升级包).rar
  2. 对比直立车模控制中的互补滤波、Karlman滤波和参考滤波方案
  3. node --- 监听文件变化(静态、动态、子进程)
  4. jboss mysql驱动目录_找不到mysql.jdbc.Driver – MySQL,JBoss
  5. 返回一个循环数组中最大子数组的和
  6. JAVA 没有重载运算符,那么 String 类型的加法是怎么实现的,以及String类型不可变的原因和好处...
  7. 基于深度学习的计算机视觉技术在无人驾驶中的应用
  8. MacBookPro外接显示器开启HiDPI
  9. U890采购入库单修改供应商
  10. 计算机房管理制度通知,计算机房管理制度.doc
  11. Sklearn上机笔记--标准化
  12. Unix/BSD/Linux的口令机制初探(转)
  13. 国王的金币for循环
  14. 如何做好软文推广?如何写软文才可以精准引流?
  15. Python爬虫之gif图片抓取
  16. Java多线程案例——单例模式(恶汉模式和懒汉模式)
  17. java练习题-显示人的年龄和姓名
  18. 计算机对模具的影响,不容忽视 浅谈笔记本模具重要性
  19. PHP家长互助沙龙流程,亲子沙龙活动策划方案
  20. 第四章:缓冲区、着色器、GLSL

热门文章

  1. 分布式全链路跟踪系统-skywalking
  2. 【架构师实践课】微服务如何拆分?大型微服务项目从何下手?
  3. 【python】global详解
  4. 【100%通过率】华为OD机试真题 C++ 实现【高矮个子排队】【2023 Q2 | 100分】
  5. 腾讯云服务器外网访问
  6. Annotate点云标注工具
  7. 广东民办大学计算机专业,二本考生:12所民办大学的计算机专业实力不错,报考难度较低...
  8. Facebook名人软件Mentions有了Android版本
  9. 段错误(核心已转储)的问题原因
  10. C语言入门最基础教学(编译器下载)