论文细节可以参考link:https://zhuanlan.zhihu.com/p/65529934

  • CBA-Module

  • Channel Attention Module

class CAModule(nn.Module):'''Channel Attention Module'''def __init__(self, channels, reduction):super(CAModule, self).__init__()self.avg_pool = nn.AdaptiveAvgPool2d(1)self.max_pool = nn.AdaptiveMaxPool2d(1)self.shared_mlp = nn.Sequential(nn.Conv2d(channels, channels // reduction, kernel_size=1, padding=0, bias=False),nn.ReLU(inplace=True),nn.Conv2d(channels // reduction, channels, kernel_size=1, padding=0, bias=False))self.sigmoid = nn.Sigmoid()def forward(self, x):input = xavg_pool = self.avg_pool(x)max_pool = self.max_pool(x)x = self.shared_mlp(avg_pool) + self.shared_mlp(max_pool)x = self.sigmoid(x)return input * x
  • Spatial Attention Module

class SAModule(nn.Module):'''Spatial Attention Module'''def __init__(self):super(SAModule, self).__init__()self.conv = nn.Conv2d(2, 1, kernel_size=3, padding=1, bias=False)  # default kernel_size = 7 x 7self.sigmoid = nn.Sigmoid()def forward(self, x):input = xavg_c = torch.mean(x, 1, True)max_c, _ = torch.max(x, 1, True)x = torch.cat((avg_c, max_c), 1)x = self.conv(x)x = self.sigmoid(x)return input * x
  • ResBlock + CBAM

class BasicBlock(nn.Module):expansion = 1def __init__(self, inplanes, planes, stride=1, downsample=None):super(BasicBlock, self).__init__()self.conv1 = conv3x3(inplanes, planes, stride)self.bn1   = nn.BatchNorm2d(planes)self.relu  = nn.ReLU(inplace=True)self.conv2 = conv3x3(planes, planes)self.bn2   = nn.BatchNorm2d(planes)self.ca    = CAModule(planes)self.sa    = SAModule()self.downsample = downsampleself.stride = stridedef forward(self, x):residual = xout = self.conv1(x)out = self.bn1(out)out = self.relu(out)out = self.conv2(out)out = self.bn2(out)out = self.ca(out) * outout = self.sa(out) * outif self.downsample is not None:residual = self.downsample(x)out += residualout = self.relu(out)return out
  • Conclusion
  1. 将CBA-Module集成到不同的backbone中,模型的性能(在分类、检测)都有一致地提升;
  2. 从对比实验的结果来看,先进行Channel attention,后进行Spatial attention的效果会好一些;
  3. 对于Spatial attention而言,采用7x7的kernel,结果似乎更好一些;

CBAM[2018-ECCV]相关推荐

  1. 改进版ASPP(2):ASPP模块中加入CBAM(卷积注意力模块),即CBAM_ASPP

    1.ASPP模型结构 空洞空间卷积池化金字塔(atrous spatial pyramid pooling (ASPP))通过对于输入的特征以不同的采样率进行采样,即从不同尺度提取输入特征,然后将所获 ...

  2. CBAM:融合通道和空间注意力的注意力模块

    本文转载自AI公园. 作者:Sik-Ho Tsang 编译:ronghuaiyang 导读 使用CBAM加持的MobileNetV1,ResNeXt&ResNet,WRN优于使用SENet的网 ...

  3. MyDLNote-360camera: ECCV 2020 结合室内全景图像的三维布局和深度预测

    Joint 3D Layout and Depth Prediction from a Single Indoor Panorama Image 2020_ECCV 目录 Abstract Intro ...

  4. 基于监督学习+自监督学习的智能抠图,精确到发丝 | CVPR 2020

    来源 | AI算法与图像处理(ID:AI_study) 华盛顿大学的研究者最近发表的论文在CVPR 2020提供了一个新的和简单的智能抠图方法.你可以在家里做这些日常设置,使用固定或手持相机.我们的方 ...

  5. 刷新记录,算法开源!字节跳动获人体姿态估计竞赛双冠 | CVPR 2019

    整理 | Jane 出品 | AI科技大本营(id:rgznai100) [导读]6 月 16--20 日,计算机视觉与模式识别领域顶会 CVPR 2019 在美国长滩举行.每年的 CVPR 盛会除了 ...

  6. 相机定位 | cv paper整理

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:梦寐mayshine 链接:https://zhuanlan.zhihu.com/p/13449 ...

  7. 机器学习、深度学习、自然语言处理、计算机视觉顶级期刊的论文资料分享(附顶会论文下载链接)...

    推荐一个Github项目,项目整理了机器学习.深度学习.自然语言处理.计算机视觉等领域的顶会论文全集.超级赞!!! Github项目地址:https://github.com/murufeng/awe ...

  8. 基于深度学习的目标检测方法综述

    引言 现有的深度学习的目标检测方法,可以大致分为两类:一.基于候选区域的目标检测方法:二.基于回归的目标检测方法.依据方法的提出时间,可以构建出如下时间线: 2014 CVPR R-CNN[1] 20 ...

  9. pytorch 模型同一轮两次预测结果不一样_2020年的最新深度学习模型可解释性综述[附带代码]...

    最近low-level vision的炼丹经常出现各种主观评测上的效果问题,无法定位出其对于输入数据的对应关系,出现了问题之后很难进行针对性解决. 这个时候一个很自然的问题就是,都2020年了,深度学 ...

  10. IoU优化——在Anchor-Free中提升目标检测精度(附源码)

    计算机视觉研究院专栏 作者:Edison_G 目前的anchor-free目标检测器非常简单和有效,但缺乏精确的标签分配方法,这限制了它们与经典的基于Anchor的模型竞争的潜力 公众号ID|Comp ...

最新文章

  1. 求助贴:人工智能offer,阿里or腾讯,选哪个?
  2. 支持百亿请求的微博广告运维技术实践
  3. java 科学计算法
  4. 浏览器和搜索引擎的区别
  5. 2021牛客多校9 - Cells(推公式+NTT)
  6. Docker解析及轻量级PaaS平台演练(一)--Docker简介与安装
  7. 前端学习(2815):小程序学习之开发者工具介绍
  8. 中国红色旅游消费大数据报告(2021)
  9. 求有向图中两点最短距离java_Java 迪杰斯特拉算法实现查找最短距离
  10. WPF RadioButton按钮控件取消选中设置
  11. vue 自定义键盘组件_vue 自定义 数字键盘+mint UI MessageBox的应用
  12. 数学动态规划:期望DP
  13. 《Python学习手册第4版》PDF源代码+《流畅的Python》PDF思维导图
  14. 点到直线的距离直线的交点及夹角
  15. 多图赏析联想Windows 8平板ThinkPad Tablet 2
  16. 怎样使用LeapFTP,LeapFTP使用教程,如何使用LeapFTP上传网站源代码(图解)
  17. ZlycerQan的 八云蓝(ran )
  18. 网络上的罗刚·心灵之约
  19. 计算机网络(16)数据链路层:数据链路层的功能
  20. IDEA debug热部署配置

热门文章

  1. 有线电视网 无效状态的处理
  2. mpvue小程序踩坑
  3. python运行结果保存
  4. [决策树]西瓜书中增益、增益比率以及基尼系数的计算
  5. php正则匹配验证密码,最新密码验证正则表达式
  6. 【libdatachannel】pycharm运行streamer的信令服务及streamer与js客户端联调1
  7. ENFJ型人格适合选择哪些专业?
  8. 使用LISTAGG函数进行行转列
  9. 关于开关插座的一些知识
  10. 你们这些偷代码的程序员!