原创目标检测算法——YOLOv5/YOLOv7改进之结合CBAM注意力机制
Nuyoah阅读量 780
![图片]:(https://img-blog.csdnimg.cn/f477627aa25f49ef9556f69643738a10.png)
深度学习Tricks,第一时间送达
论文题目: 《CBAM: Convolutional Block Attention Module》
论文地址: https://arxiv.org/pdf/1807.06521.pdf
实验证明,将CBAM注意力模块嵌入到YOLOv5网络中,有利于解决原始网络无注意力偏好的问题。近期较忙,想要代码的小伙伴请私信~
![图片]:(https://img-blog.csdnimg.cn/img_convert/76d4eef819c1798c46d37cacb2d31ff7.png)
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 // reduction
self.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 out
class 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) * x
out = self.spatial_attention(out) * out
return 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结合注意力结构就大功告成了!!!
🚀🏆🍀【算法创新&算法训练&论文投稿】相关链接👇👇👇
✨【YOLO创新算法尝新系列】✨
🏂 美团出品 | YOLOv6 v3.0 is Coming(超越YOLOv7、v8)
🏂 官方正品 | Ultralytics YOLOv8算法来啦(尖端SOTA模型)
------------------------------🌴【重磅干货来袭】🎄------------------------------
🚀一、主干网络改进(持续更新中)🎄🎈
1.目标检测算法------YOLOv5/YOLOv7改进之结合ConvNeXt结构(纯卷积|超越Swin)****
2.目标检测算法------YOLOv5/YOLOv7改进之结合MobileOne结构(高性能骨干|仅需1ms)****
3.目标检测算法------YOLOv5/YOLOv7改进之结合Swin Transformer V2(涨点神器)****
4.目标检测算法------YOLOv5/YOLOv7改进结合BotNet(Transformer)****
5.目标检测算法------YOLOv5/YOLOv7改进之GSConv+Slim Neck(优化成本)****
6.目标检测算法------YOLOv5/YOLOv7改进结合新神经网络算子Involution(CVPR 2021)****
7.目标检测算法------YOLOv7改进|增加小目标检测层****
8.目标检测算法------YOLOv5改进|增加小目标检测层****
🌴 持续更新中......
🚀二、轻量化网络(持续更新中)🎄🎈
1.目标检测算法------YOLOv5/YOLOv7改进之结合RepVGG(速度飙升)****
2.目标检测算法------YOLOv5/YOLOv7改进之结合PP-LCNet(轻量级CPU网络)****
3.目标检测算法------YOLOv5/YOLOv7改进之结合轻量化网络MobileNetV3(降参提速)****
4.目标检测算法------YOLOv5/YOLOv7改进|结合轻量型网络ShuffleNetV2****
5.目标检测算法------YOLOv5/YOLOv7改进结合轻量型Ghost模块****
🌴 持续更新中......
🚀三、注意力机制(持续更新中)🎄🎈
1.目标检测算法------YOLOv5改进之结合CBAM注意力机制****
2.目标检测算法------YOLOv7改进之结合CBAM注意力机制****
3.目标检测算法------YOLOv5/YOLOv7之结合CA注意力机制****
4.目标检测算法------YOLOv5/YOLOv7改进之结合ECA注意力机制****
5.目标检测算法------YOLOv5/YOLOv7改进之结合NAMAttention(提升涨点)****
6.目标检测算法------YOLOv5/YOLOv7改进之结合GAMAttention****
7.目标检测算法------YOLOv5/YOLOv7改进之结合无参注意力SimAM(涨点神器)****
8.目标检测算法------YOLOv5/YOLOv7改进之结合Criss-Cross Attention****
9.目标检测算法------YOLOv5/YOLOv7改进之结合SOCA(单幅图像超分辨率)****
🌴 持续更新中......
🚀四、检测头部改进(持续更新中)🎄🎈
1.魔改YOLOv5/v7高阶版(魔法搭配+创新组合)------改进之结合解耦头Decoupled_Detect****
2.目标检测算法------YOLOv5/YOLOv7改进结合涨点Trick之ASFF(自适应空间特征融合)****
🌴 持续更新中......
🚀五、空间金字塔池化(持续更新中)🎄🎈
1.目标检测算法------YOLOv5/YOLOv7改进之结合ASPP(空洞空间卷积池化金字塔)****
2.目标检测算法------YOLOv5/YOLOv7改进之结合特征提取网络RFBNet(涨点明显)****
🌴 持续更新中......
🚀六、损失函数及NMS改进(持续更新中)🎄🎈
1.目标检测算法------YOLOv5/YOLOv7改进|将IOU Loss替换为EIOU Loss****
2.目标检测算法------助力涨点 | YOLOv5改进结合Alpha-IoU****
3.目标检测算法------YOLOv5/YOLOv7改进之结合SIoU****
4.目标检测算法------YOLOv5将NMS替换为DIoU-NMS****
🌴 持续更新中......
🚀七、其他创新改进项目(持续更新中)🎄🎈
1.手把手教你搭建属于自己的PyQt5-YOLOv5目标检测平台(保姆级教程)****
2.YOLO算法改进之结合GradCAM可视化热力图(附详细教程)****
3.目标检测算法------YOLOv5/YOLOv7改进之结合SPD-Conv(低分辨率图像和小目标涨点明显)****
4.目标检测算法------YOLOv5/YOLOv7改进之更换FReLU激活函数****
5.目标检测算法------YOLOv5/YOLOv7改进之结合BiFPN****
🌴 持续更新中......
🚀八、算法训练相关项目(持续更新中)🎄🎈
1.目标检测算法------YOLOv7训练自己的数据集(保姆级教程)****
2.人工智能前沿------玩转OpenAI语音机器人ChatGPT(中文版)****
3.深度学习之语义分割算法(入门学习)****
4.知识经验分享------YOLOv5-6.0训练出错及解决方法(RuntimeError)****
5.目标检测算法------将xml格式转换为YOLOv5格式txt****
6.目标检测算法------YOLOv5/YOLOv7如何改变bbox检测框的粗细大小****
7.人工智能前沿------6款AI绘画生成工具****
8.YOLOv5结合人体姿态估计****
9.超越YOLOv5,0.7M超轻量,又好又快(PP-YOLOE&PP-PicoDet)****
10.目标检测算法------收藏|小目标检测的定义(一)****
11.目标检测算法------收藏|小目标检测难点分析(二)****
12.目标检测算法------收藏|小目标检测解决方案(三)****
🌴 持续更新中......
🚀九、数据资源相关项目(持续更新中)🎄🎈
1.目标检测算法------小目标检测相关数据集(附下载链接)****
2.目标检测算法------3D公共数据集汇总(附下载链接)****
3.目标检测算法------3D公共数据集汇总 2(附下载链接)****
4.目标检测算法------行人检测&人群计数数据集汇总(附下载链接)****
5.目标检测算法------遥感影像数据集资源汇总(附下载链接)****
6.目标检测算法------自动驾驶开源数据集汇总(附下载链接)****
7.目标检测算法------自动驾驶开源数据集汇总 2(附下载链接)****
8.目标检测算法------图像分类开源数据集汇总(附下载链接)****
9.目标检测算法------医学图像开源数据集汇总(附下载链接)****
10.目标检测算法------工业缺陷数据集汇总1(附下载链接)****
11.目标检测算法------工业缺陷数据集汇总2(附下载链接)****
12.目标检测算法------垃圾分类数据集汇总(附下载链接)****
13.目标检测算法------人脸识别数据集汇总(附下载链接)****
14.目标检测算法------安全帽识别数据集(附下载链接)****
15.目标检测算法------人体姿态估计数据集汇总(附下载链接)****
16.目标检测算法------人体姿态估计数据集汇总 2(附下载链接)****
17.目标检测算法------车辆牌照识别数据集汇总(附下载链接)****
18.目标检测算法------车辆牌照识别数据集汇总 2(附下载链接)****
19.收藏 | 机器学习公共数据集集锦(附下载链接)****
20.目标检测算法------图像分割数据集汇总(附下载链接)****
21.目标检测算法------图像分割数据集汇总 2(附下载链接)****
22.收藏 | 自然语言处理(NLP)数据集汇总(附下载链接)****
23.自然语言处理(NLP)数据集汇总 2(附下载链接)****
24.自然语言处理(NLP)数据集汇总 3(附下载链接)****
25.自然语言处理(NLP)数据集汇总 4(附下载链接)****
🌴 持续更新中......
🚀十、论文投稿相关项目(持续更新中)🎄🎈
1.论文投稿指南------收藏|SCI论文投稿注意事项(提高命中率)****
2.论文投稿指南------收藏|SCI论文怎么投?(Accepted)****
3.论文投稿指南------收藏|SCI写作投稿发表全流程****
4.论文投稿指南------收藏|如何选择SCI期刊(含选刊必备神器)****
5.论文投稿指南------SCI选刊****
6.论文投稿指南------SCI投稿各阶段邮件模板****
7.人工智能前沿------深度学习热门领域(确定选题及研究方向)****
8.人工智能前沿------2022年最流行的十大AI技术****
9.人工智能前沿------未来AI技术的五大应用领域****
10.人工智能前沿------无人自动驾驶技术****
11.人工智能前沿------AI技术在医疗领域的应用****
12.人工智能前沿------随需应变的未来大脑****
13.目标检测算法------深度学习知识简要普及****
14.目标检测算法------10种深度学习框架介绍****
15.目标检测算法------为什么我选择PyTorch?****
16.知识经验分享------超全激活函数解析(数学原理+优缺点)****
17.知识经验分享------卷积神经网络(CNN)****
18.海带软件分享------Office 2021全家桶安装教程(附报错解决方法)****
19.海带软件分享------日常办公学习软件分享(收藏)****
20.论文投稿指南------计算机视觉 (Computer Vision) 顶会归纳****
21.论文投稿指南------中文核心期刊****
22.论文投稿指南------计算机领域核心期刊****
23.论文投稿指南------中文核心期刊推荐(计算机技术)****
24.论文投稿指南------中文核心期刊推荐(计算机技术2)****
25.论文投稿指南------中文核心期刊推荐(计算机技术3)****
26.论文投稿指南------中文核心期刊推荐(电子、通信技术)****
27.论文投稿指南------中文核心期刊推荐(电子、通信技术2)****
28.论文投稿指南------中文核心期刊推荐(电子、通信技术3)****
29.论文投稿指南------中文核心期刊推荐(机械、仪表工业)****
30.论文投稿指南------中文核心期刊推荐(机械、仪表工业2)****
31.论文投稿指南------中文核心期刊推荐(机械、仪表工业3)****
32.论文投稿指南------中国(中文EI)期刊推荐(第1期)****
33.论文投稿指南------中国(中文EI)期刊推荐(第2期)****
34.论文投稿指南------中国(中文EI)期刊推荐(第3期)****
标签: yolov5加入cbam
0/300
全部评论0