深度学习Tricks,第一时间送达

论文题目:《CBAM: Convolutional Block Attention Module》
论文地址:  https://arxiv.org/pdf/1807.06521.pdf

实验证明,将CBAM注意力模块嵌入到YOLOv5网络中,有利于解决原始网络无注意力偏好的问题。近期较忙,想要代码的小伙伴请私信~

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

那对应YOLOv5结合CBAM需要修改哪些地方:

1.common.py

加入CBAM代码

class ChannelAttentionModule(nn.Module):def __init__(self, c1, reduction=16):super(ChannelAttentionModule, self).__init__()mid_channel = c1 // reductionself.avg_pool = nn.AdaptiveAvgPool2d(1)self.max_pool = nn.AdaptiveMaxPool2d(1)self.shared_MLP = nn.Sequential(nn.Linear(in_features=c1, out_features=mid_channel),nn.ReLU(),nn.Linear(in_features=mid_channel, out_features=c1))self.sigmoid = nn.Sigmoid()#self.act=SiLU()def forward(self, x):avgout = self.shared_MLP(self.avg_pool(x).view(x.size(0),-1)).unsqueeze(2).unsqueeze(3)maxout = self.shared_MLP(self.max_pool(x).view(x.size(0),-1)).unsqueeze(2).unsqueeze(3)return self.sigmoid(avgout + maxout)
class SpatialAttentionModule(nn.Module):def __init__(self):super(SpatialAttentionModule, self).__init__()self.conv2d = nn.Conv2d(in_channels=2, out_channels=1, kernel_size=7, stride=1, padding=3) #self.act=SiLU()self.sigmoid = nn.Sigmoid()def forward(self, x):avgout = torch.mean(x, dim=1, keepdim=True)maxout, _ = torch.max(x, dim=1, keepdim=True)out = torch.cat([avgout, maxout], dim=1)out = self.sigmoid(self.conv2d(out))return outclass CBAM(nn.Module):def __init__(self, c1,c2):super(CBAM, self).__init__()self.channel_attention = ChannelAttentionModule(c1)self.spatial_attention = SpatialAttentionModule()def forward(self, x):out = self.channel_attention(x) * xout = self.spatial_attention(out) * outreturn out

2.yolo.py

找到相应位置,加入CBAM。

 if m in [Conv, GhostConv, Bottleneck, GhostBottleneck, SPP,
DWConv, MixConv2d, Focus, CrossConv, BottleneckCSP, C3, C3TR, CBAM]:      

3.yolov5s.yaml

根据实际训练效果,在配置文件中的C3模块后面适当添加CBAM注意力模块,过程中注意通道数和网络层数的变化(注:不同添加位置效果可能不大一样)。综上,YOLOv5结合注意力结构就大功告成了!!!


目标检测算法——YOLOv5/YOLOv7改进之结合CBAM注意力机制相关推荐

  1. 目标检测算法——YOLOv5/YOLOv7改进之结合GAMAttention

    >>>深度学习Tricks,第一时间送达<<< 目录 超越CBAM,全新注意力GAM:不计成本提高精度! (一)前沿介绍 1.GAM结构图 2.相关实验结果 (二) ...

  2. 目标检测算法——YOLOv5/YOLOv7改进之结合​PP-LCNet(轻量级CPU网络)

    >>>深度学习Tricks,第一时间送达<<< 目录 ​PP-LCNet--轻量级且超强悍的CPU级骨干网络!! (一)前沿介绍 1.PP-LCNet主要模块 2. ...

  3. ​目标检测算法——YOLOv5/YOLOv7改进之结合​SOCA(单幅图像超分辨率)

    >>>深度学习Tricks,第一时间送达<<< 目录 CVPR19 单幅图像超分辨率来了!!! (一)前沿介绍 论文题目:Second-order Attentio ...

  4. 目标检测算法——YOLOv5/YOLOv7改进之结合​RepVGG(速度飙升)

    >>>深度学习Tricks,第一时间送达<<< 目录 RepVGG--极简架构,SOTA性能!!! (一)前沿介绍 1.RepVGGBlock模块 2.相关实验结果 ...

  5. 目标检测算法——YOLOv5/YOLOv7改进之结合无参注意力SimAM(涨点神器)

    >>>深度学习Tricks,第一时间送达<<< 目录 (一)前言介绍 1.摘要 2.不同注意力步骤比较 (二)相关实验 (三)YOLOv5结合无参注意力SimAM ...

  6. 目标检测算法——YOLOv5/YOLOv7改进之结合轻量化网络MobileNetV3(降参提速)

    >>>深度学习Tricks,第一时间送达<<< 论文题目:Searching for MobileNetV3 论文地址:https://arxiv.org/abs/ ...

  7. 目标检测算法——YOLOv5/YOLOv7改进之结合BiFPN

    >>>深度学习Tricks,第一时间送达<<< 论文题目:<EfficientDet: Scalable and Efficient Object Detec ...

  8. 目标检测算法——YOLOv5/YOLOv7改进|将IOU Loss替换为EIOU Loss

    >>>深度学习Tricks,第一时间送达<<< 论文题目:<Focal and Efficient IOU Loss for Accurate Boundin ...

  9. 目标检测算法——YOLOv5/YOLOv7改进结合轻量型Ghost模块

    >>>深度学习Tricks,第一时间送达<<< 论文题目:<GhostNet:More Features from Cheap Operations> ...

最新文章

  1. 潘建伟团队进行人类首次洲际量子通信,给奥地利发去了什么?
  2. linux 下 设置 MySQL8 表名大小写不敏感方法,解决设置后无法启动 MySQL 服务的问题
  3. 恒丰银行深夜紧急澄清!“我行与建设银行的报道严重不实”!恒丰银行称目前自身经营稳定有序
  4. 通过GetProcAddress函数动态调用dll中地函数,是否必须通过extern C声明导出函数?(转)...
  5. OD使用教程3(下) - 调试篇03|解密系列
  6. 漫话:如何给女朋友解释什么是删库跑路?
  7. 奥迪推出大型自动驾驶数据集A2D2
  8. 机试题:地图定位、拍照并显示、录制视频并播放
  9. centos虚拟机克隆
  10. Vue学习笔记(六)
  11. 发那科oimf是什么时候出的_请问下FANUC Oi-MF系统怎么把卡里的程序传到机床里面?...
  12. MyEclipse配色
  13. 单片机c语言曲普两只蝴蝶,51曲谱网_51单片机简谱编码
  14. 【Chinapub读书会第9期】5月28日赵鑫磊带你深入解析Linux
  15. Eclipse中开发测试脚本
  16. EXCEL去掉所有英文
  17. python 刷b站点击量_python + selenium 刷B站播放量的实例代码
  18. 运筹与决策(二)excel画图、公式与函数用法
  19. 【Unity3D日常开发】灯光系统,太阳光晕效果实现
  20. mysql 人名_jsp为什么按人名查询mysql结果不显示在页面上?可以

热门文章

  1. YX-AGV-A101系列AGV控制器
  2. 华为2018实习生机试题目
  3. 提高你的打字速度的Mac软件——Master Of Typing for Mac破解版
  4. springboot泛型封装开发
  5. oracle导出报错LRM 00101,lrm-00101
  6. 手机钢琴键盘模拟器好用吗?
  7. 带备注的PPT使用演讲者模式操作说明(PPT2010)
  8. 雪碧enjoy_雪碧牛
  9. [附源码]计算机毕业设计springboot房屋租赁信息系统
  10. 华为NE40E静态路由的BFD检测配置