通俗易懂理解通道注意力机制(CAM)与空间注意力机制(SAM)

news2024/10/5 17:17:39

重要说明:本文从网上资料整理而来,仅记录博主学习相关知识点的过程,侵删。

一、参考资料

通道注意力,空间注意力,像素注意力

通道注意力机制和空间注意力机制

视觉 注意力机制——通道注意力、空间注意力、自注意力

二、通道注意力与空间注意力机制

1. 通道注意力机制(CAM)

通道注意力机制(Channel Attention Mechanism, CAM),通过特征内部之间的关系来通道注意力机制。特征图的每个通道都被视作一个特征检测器,所以通道特征聚焦的是图像中有用的信息是"什么"(what)。

1.1 通道注意力的结构

通道注意力模块的结构,如下图所示:

1.2 通道注意力流程

通道注意力的思路流程是:

  1. 首先,对一个尺寸为 H×W×C的输入特征图F进行空间维度的全局最大池化和全局平均池化,得到两个 1×1×C 的特征图;(在空间维度进行池化,压缩空间尺寸,便于后面学习通道的特征)
  2. 然后,将全局最大池化和全局平均池化的结果,分别送入一个共享的多层感知机(MLP)中学习,得到两个 1×1×C 的特征图。MLP的第一层神经元个数为 C/r,激活函数为 Relu,第二层神经元个数为 C;(基于MLP学习通道维度的特征,和各个通道的重要性)
  3. 最后,将MLP输出的结果进行Add操作,接着经过Sigmoid激活函数的映射处理,最终得到通道注意力权重矩阵 M c M_c Mc

1.3 通道注意力的计算公式

空间注意力权重矩阵 M c M_c Mc,可以表示为:
M c ∈ R C × 1 × 1 M_{c}\in R^{C\times1\times1} McRC×1×1
为了降低计算参数,在MLP中采用一个降维系数r, M c ∈ R C / r × 1 × 1 M_{c}\in R^{C/r\times1\times1} McRC/r×1×1

综上,通道注意力计算公式如下:
M c ( F ) = σ ( M L P ( A v g P o o l ( F ) ) + M L P ( M a x P o o l ( F ) ) ) = σ ( W 1 ( W 0 ( F a v g c ) ) + W 1 ( W 0 ( F m a x c ) ) ) \begin{gathered} M_{c}(F) =\sigma(MLP(AvgPool(F))+MLP(MaxPool(F))) \\ =\sigma(W_{1}(W_{0}(F_{avg}^{c}))+W_{1}(W_{0}(F_{max}^{c}))) \end{gathered} Mc(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F)))=σ(W1(W0(Favgc))+W1(W0(Fmaxc)))
上式中, F a v g c F_{avg}^{c} Favgc F m a x c F_{max}^{c} Fmaxc 分别表示全局平均池化特征和最大池化特征。

2. 空间注意力(SAM)

通过对特征图空间内部的关系来产生空间注意力特征图。不同于通道注意力,空间注意力(Spatial Attention Mechanism, SAM)聚焦于特征图上的有效信息在"哪里"(where)

2.1 空间注意力的结构

2.2 空间注意力流程

空间注意力的思路流程是:

  1. 首先,对一个尺寸为 H×W×C的输入特征图F进行通道维度的全局最大池化和全局平均池化,得到两个 H×W×1 的特征图;(在通道维度进行池化,压缩通道大小,便于后面学习空间的特征)
  2. 然后,将全局最大池化和全局平均池化的结果,按照通道拼接(concat),得到特征图尺寸为HxWx2,
  3. 最后,对拼接的结果进行7x7的卷积操作,得到特征图尺寸为 HxWx1,接着通过Sigmoid激活函数 ,得到空间注意力权重矩阵 M s M_s Ms

2.3 空间注意力的计算公式

空间注意力权重矩阵 M s M_s Ms,可以表示为:
M s ( F ) ∈ R H , W M_{s}(F)\in R^{H,W} Ms(F)RH,W
同上,在通道维度使用两种池化方法产生2D特征图:
F a v g s ∈ R 1 × H × W F m a x s ∈ R 1 × H × W F_{avg}^s\in R^{1\times H\times W}\\F_{max}^s\in R^{1\times H\times W} FavgsR1×H×WFmaxsR1×H×W
综上,空间注意力的计算公式如下:
M s ( F ) = σ ( f 7 × 7 ( [ A v g P o o l ( F ) ; M a x P o o l ( F ) ] ) ) = σ ( f 7 × 7 [ F a v g s ; F m a x s ] ) \begin{aligned} M_{s}(F)& =\sigma(f^{7\times7}([AvgPool(F);MaxPool(F)])) \\ &=\sigma(f^{7\times7}[F_{avg}^{s};F_{max}^{s}]) \end{aligned} Ms(F)=σ(f7×7([AvgPool(F);MaxPool(F)]))=σ(f7×7[Favgs;Fmaxs])

3. 混合注意力机制

在混合注意力机制中,通道注意力和空间注意力可以通过串联、或者并联的方式进行组合。关于混合注意力机制的介绍,请参考下文的CBAM网络模型。

三、SENet:通道注意力

SENet:[1]

深入理解SENet:自适应特征提取的注意力机制

//TODO

压缩和激励网络(Squeeze-and-Excitation Networks,SENet)是通道注意力机制的代表模型。SENet 分为压缩和激励两个部分,其中压缩部分的目的是对全局空间信息进行压缩,然后在通道维度进行特征学习,得到各个通道的权重,最后通过激励部分对各个通道进行分配不同权重

在这里插入图片描述

上图是SE模块的结构, 在压缩部分,输入特征图的尺寸为 H×W×C。压缩部分的功能是将维数从 H×W×C 压缩至1×1×C,即把 H×W 压缩为 1×1 维,这个过程由**全局平均池化(GAP)**实现。

激励部分,需要将压缩部分得到的 1×1×C 的维度融入全连接层,预测各个通道的重要程度,然后再激励到前面特征图对应通道上进行操作。采用简单的门控机制Sigmoid 激活函数

在通道注意力机制,学习各个通道的重要性时,是先对特征图的空间进行压缩,然后在通道维度进行学习,得到各个通道的重要性。

四、STN:空间注意力

原始论文:[2]

空间变形网络——STN

详细解读Spatial Transformer Networks(STN)-一篇文章让你完全理解STN了

通俗易懂的Spatial Transformer Networks(STN)(一)

通俗易懂的Spatial Transformer Networks(STN)(二)

从仿射变化到STN网络

1. STN网络简介

空间变换神经网络 (Spatial Transformer Networks,STN)是空间注意力机制的代表模型,STN 能够对各种形变数据在空间中进行转换并自动捕获重要区域特征。它能够保证图像在经过裁剪、平移或者旋转等操作后,依然可以获得和操作前的原始图像相同的结果。

举个例子,在MNIST 数字分类的中应用STN,该分类过程一共包含 4 个步骤:

  1. MNIST中的数字,是经过随机平移、缩放和旋转处理;把它们输入到STN网络中;
  2. 通过STN网络,预测前面输入数字的变换(是平移了?还是缩放了?或是旋转了?)
  3. STN网络预测出“变换前的数字”,即没经过变换的数字是怎样的
  4. 最终进行分类预测

在这里插入图片描述

上图中,a是输入图片,b 是 STN 中的 localisation 网络检测到的物体区域,c是 STN 对检测到的区域进行线性变换后输出,d 是有 STN 的分类网络的最终输出。

2. STN网络结构

STN更准确地说应该是 STL(spatial transformer layer),它就是网络中的一层,并且可以在任何两层之间添加一个或者多个。如下图所示,STL由三部分组成,分为是局部网络(localisation net)、网格生成器(grid generator, 参数化网络采样))和差分图像采样。

在这里插入图片描述

上图中,输入的特征图U被局部网络处理得到参数 θ \theta θ,然后经过网格生成器得到采样器,映射到原图U上,从而得到输出V。

2.1 局部网络

局部网络 用于预测输入数字的变换(是平移了?还是缩放了?或是旋转了?)

2.2 网格生成器

网格生成器获得输出特征图坐标点在输入特征图中坐标点的对应位置。

五、CBAM:混合注意力

BAM:[3]

CBAM:[4]

github代码:attention-module

注意力机制BAM和CBAM详细解析(附代码)

CBAM:通道注意力和空间注意力的集成者

CBAM网络简介

卷积注意力模块(Convolutional Block Attention Module,CBAM)是混合注意力机制的代表模型,它包括通道注意力模块、和空间注意力模块。

CBAM的模型结构如下,它对输入的特征图,首先进行通道注意力模块处理;得到的结果,再经过空间注意力模块处理,最后得到调整后特征。

在这里插入图片描述

六、参考文献

[1] Hu J, Shen L, Sun G. Squeeze-and-excitation networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7132-7141.

[2] Jaderberg M, Simonyan K, Zisserman A. Spatial transformer networks[J]. Advances in neural information processing systems, 2015, 28.

[3] Park J, Woo S, Lee J Y, et al. Bam: Bottleneck attention module[J]. arxiv preprint arxiv:1807.06514, 2018.

[4] Woo S, Park J, Lee J Y, et al. Cbam: Convolutional block attention module[C]//Proceedings of the European conference on computer vision (ECCV). 2018: 3-19.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1426877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

上位机图像处理和嵌入式模块部署(二进制图像的读写)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 之前我们说过,对于图像处理而言,势必会涉及到文件的读写。但是不同格式文件的读写,这本身又是体力活&#xff0…

大数据学习之Redis、从零基础到入门(三)

目录 三、redis10大数据类型 1.哪十个? 1.1 redis字符串(String) 1.2 redis列表(List) 1.3 redis哈希表(Hash) 1.4 redis集合(Set) 1.5 redis有序集合&#xff08…

提升CKA考试胜算:一文带你全面了解RBAC权限控制!

RBAC概述 RBAC引入了四个新的顶级资源对象。Role、ClusterRole、RoleBinding、 ClusterRoleBinding。同其他 API 资源对象一样,用户可以使用 kubectl 或者 API 调用等 方式操作这些资源对象。kubernetes集群相关所有的交互都通过apiserver来完成,对于这…

【CSS】移动端适配

移动端适配怎么做? 适配的目的是在屏幕大小不同的终端设备拥有统一的界面,让拥有更大屏幕的终端展示更多的内容。 meta viewport (视口) 移动端初始视口的大小默认是980px,因为世界上绝大多数PC网页的版心宽度为980px ,如果网页…

Kudu数据库详解

文章目录 1、概要2、 Kudu产品特点:3 、Kudu架构4、 基础概念5、 服务端口6、 启停命令7 、kudu与impala结合8、 使用限制9、 使用kudu-client操作kudu 1、概要 Apache Kudu 是由 Cloudera开源的列式存储系统,可以同时提供低延迟的随机读写和高效的数据…

运行程序时出现“无效类”的解决方法

最近做开发时,遇到了一个奇怪的问题,打开的烧录软件突然出现了“无效类”的字样,以前打开却时正常的,真的是莫名其妙。 然后找了很久的解决办法,终于在某一天运行一个系统软件出现了同样的问题,有提示到WMI…

JS 异常处理

1、抛出异常 throw 1.throw抛出异常信息,程序也会终止执行 2.throw后面跟的是错误提示信息 3.Error对象配合 throw使用,能够设置更详细的错误信息 示例 function fn(x, y) {if (!x || !y) {throw new Error(没有参数传进来) }return x y } fn()打印结果…

0201-2-进程的描述与控制

第二章进程的描述与控制 前驱图和程序执行 程序并发执行 程序的并发执行 程序并发执行时的特征 间断性失去封闭性不可再现性 进程的描述 进程的定义 进程是程序的一次执行进程是一个程序及其数据在处理机上顺序执行时所发生的活动进程是具有独立功能的程序在一个数据集合…

业务流程自动化平台在制造业应用案例,助力业务自动化、智能化

捷昌驱动成立于2000年,并于2018年9月在上海证券交易所上市,是一家专注于线性驱动产品研发、生产及销售的科技集团。 公司整合全球资源,为智慧办公、医疗康护、智能家居、工业自动化等关联产业提供驱动及智能控制解决方案,以科技驱…

华为手机滚屏翻译:双指长按屏幕,快速翻译屏幕上的一屏或多屏内容,自动检测英日法韩西俄等10种语言

翻译作为沟通工具,能够帮助跨越各种语言的障碍,让人们能够与来自不同文化背景的人有效交流。翻译也是文化传播的重要途径,它允许不同语言和文化的故事、思想、知识和艺术形式被广泛传播,增进了人们对异域文化的理解和尊重。 在手机…

「C/C++」常见注释格式

✨博客主页何曾参静谧的博客📌文章专栏「C/C++」C/C++程序设计📚全部专栏「VS」Visual Studio「C/C++」C/C++程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid函数说明

使用 PyTorch 构建 NLP 聊天机器人

一、说明 聊天机器人提供自动对话,可以帮助用户完成任务或寻求信息。随着深度学习的最新进展,聊天机器人正变得越来越具有对话性和实用性。这个全面的教程将利用 PyTorch 和 Python 从头开始构建聊天机器人,涵盖模型架构、数据准备、训练循环…

妤带皇冠必承其重:刘芊妤从模特到演员的蜕变

刘芊妤自2015年至2017年参加了十几场国内外的知名模特大赛,选美大赛,多次荣获冠军,十佳以及单项奖,2017年赴台湾和埃及,赴土耳其参加国际赛事,荣获奖项, 为国争光,她聪明睿智,乘风破…

基于Java SSM框架实现智能快递分拣系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现智能快递分拣系统演示 JAVA简介 Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,JSP(java serv…

CV论文--2024.2.2

1、Motion Guidance: Diffusion-Based Image Editing with Differentiable Motion Estimators 中文标题:运动引导:利用可微分运动估计器进行基于扩散的图像编辑 简介:当根据文本描述生成图像时,扩散模型能够产生引人注目的图像&…

Kafka常见生产问题详解

目录 生产环境常见问题分析 消息零丢失方案 1、生产者发消息到Broker不丢失 2、Broker端保存消息不丢失 3、消费者端防止异步处理丢失消息 消息积压如何处理 如何保证消息顺序 ​问题一、如何保证Producer发到Partition上的消息是有序的 问题二:Partition中…

IDEA 配置和缓存目录 设置

IDEA系列产品&#xff0c;一般会在用户目录创建 配置 和 缓存 目录&#xff1a; %APPDATA%\JetBrains%LOCALAPPDATA%\JetBrains 一般会展示为&#xff1a; C:\Users\<username>\AppData\Roaming\JetBrainsC:\Users\<username>\AppData\Local\JetBrains 一般占用…

为啥监管层要打击量化交易?

&#xff08;1&#xff09;李鬼量化交易&#xff1a;程序化交易 我先讲讲李鬼。它本来不属于量化交易&#xff0c;但是人们说它是量化交易&#xff0c;好吧&#xff0c;三人成虎众口铄金&#xff0c;既然大家说鹿就是马&#xff0c;那鹿就是马&#xff0c;至于鹿是不是马&#…

中国文化之光:微博数据的探索与可视化分析

大家好&#xff0c;我是八块腹肌的小胖 下面我们针对主题“中国文化”相关的微博数据进行爬取 使用LDA、情感分析、情感演化、词云等可视化操作进行相关的展示 1、导包 第一步我们开始导包工作 下面这段代码&#xff0c;首先&#xff0c;pandas被请来了&#xff0c;因为它是…

睿尔曼超轻量仿人机械臂——外置按钮一键启停程序配置

在睿尔曼超轻量仿人机械臂—外置按钮盒使用说明一文中&#xff0c;介绍了外置按钮盒的安装及使用。它能够使机械臂的使用变得更加编辑&#xff0c;仅需按钮即可完成运动程序的启停等控制&#xff0c;而无需进入示教界面操作。 在示教界面中&#xff0c;我们可以完成运动程序的…