(论文翻译)Coordinate Attention for Efficient Mobile Network Design(坐标注意力 CVPR2021)

Coordinate Attention for Efficient Mobile Network Design(CVPR2021)

文章目录

  • Coordinate Attention for Efficient Mobile Network Design(CVPR2021)
    • 摘要
    • 1.引言
    • 2.相关工作
    • 3.方法:Coordinate Attention
      • 3.1.Revisit Squeeze-and-Excitation Attention
      • 3.2.Coordinate Attention Blocks
        • 3.2.1.Coordinate Information Embedding
        • 3.2.2.Coordinate Attention Generation
      • 3.3.Implementation
    • 4.实验
    • 5.结论

实验部分详见原文,文章为原文翻译,如有错误请参照原文

摘要

  • 挑战:最近在移动网络设计的研究在通道注意力上(如SENet)表现出引人注意的效果,但是他们普遍忽略了位置信息,这对生成空间注意力特征映射是重要的

  • 方法

    • 在本文中,我们通过将位置信息嵌入到通道注意力中,提出一种新颖的移动网络注意力机制,名为“coordinate attention”
    • 不同于通道注意力将特征张量经过二维池化操作转换成单一特征向量,coordinate attention将通道注意力分解为两个一维特征,分别沿两个空间方向聚集特征
    • 这样可以在一个空间方向上捕获远程依赖关系,同时在另一个空间方向上保持精确的位置信息
    • 然后将得到的特征图分别编码为一对方向感知和位置敏感的注意映射,它们可以互补地应用于输入特征映射,以增强感兴趣目标的表示
    • 我们的coordinate attention 是简单的,可以灵活地插入经典的移动网络,如MobileNetV2, MobileNeXt,是几乎没有计算开销的高效率网络
  • 贡献

  • 大量的实验表明,我们的 coordinate attention 关注不仅有利于ImageNet分类,更有趣的是,在下游任务中,如目标检测和语义分割中表现更好

  • code:https://github.com/Andrew-Qibin/CoordAttention

1.引言

在这里插入图片描述

Figure 1. Performance of different attention methods on three classic vision tasks. The y-axis labels from left to right are top-1 accuracy, mean IoU, and AP, respectively. Clearly, our approach not only achieves the best result in ImageNet classification [33] against the SE block [18] and CBAM [44] but performs even better in down-stream tasks, like semantic segmentation [9] and COCO object detection [21]. Results are based on MobileNetV2 [34].

1st Para:

  • 注意机制,用来告诉模型“what”和“where”,已经被广泛研究,并提高现代深度神经网络的性能
  • 然而,它们在移动网络中的应用(模型大小有限)明显落后于大型网络
  • 这主要是因为大多数注意力机制带来的计算开销对于移动网络来说是无法承受的

2st Para:

  • 考虑到移动网络有限的计算能力,迄今为止,移动网络中最流行的注意力机制仍然是(squeeze-and-excitation, SE)注意力
  • 它在2D全局池化的帮助下计算通道注意力,并以相当低的计算成本提供显著的性能提升
  • 然而,SE注意力只考虑了通道间信息的编码,而忽略了位置信息的重要性,而位置信息对于视觉任务中捕获目标结构至关重要
  • 后来的研究,比如BAM和CBAM试图通过降低输入张量的通道维数,然后使用卷积计算空间注意力来利用位置信息,如Figure 2(b)
  • 然而,卷积只能捕获局部关系,而不能对视觉任务所必需的长期依赖关系进行建模

3st Para:

  • 在本文中,除了第一项工作之外,我们提出了一种新颖有效的注意机制,通过将位置信息嵌入到通道注意中,使移动网络能够关注大区域,同时避免产生显著的计算开销
  • 为了减轻二维全局池化造成的位置信息丢失,我们将通道注意分解为两个并行的一维特征编码过程,以有效地整合空间坐标信息到生成的注意力映射
  • 具体来说,我们的方法利用两个一维全局池化操作,分别将垂直和水平方向的输入特征聚合到两个独立的方向感知特征映射中
  • 这两个嵌入了特定方向信息的特征映射被分别编码成两个注意力映射,每个注意力映射可以沿一个空间方向捕获输入特征映射的远程依赖关系
  • 因此,位置信息可以保存在生成的注意力映射中
  • 然后,通过乘法将两个注意映射应用于输入特征映射,以强调感兴趣的表示
  • 我们将提出的注意方法命名为coordinate attention,因为它可以区分空间方向(即坐标)并生成坐标感知的注意力映射

4st Para:

  • 我们的coordinate attention 提供了以下优势
  • 首先,它不仅可以捕获跨通道信息,还可以捕获方向感知和位置敏感信息,这有助于模型更准确地定位和识别感兴趣的目标
  • 其次,我们的方法灵活且轻量级,可以很容易地插入到移动网络的经典构建块中,例如MobileNetV2中提出的residual块和MobileNeXt中提出的sandglass块,通过强调信息表示来增强特征
  • 第三,作为一个预训练模型,我们的coordinate attention 可以为移动网络的下游任务带来显著的性能提升,特别是对于那些密集预测的任务(例如,语义分割),我们将在我们的实验部分中展示

5st Para:

  • 为了证明本文提出的方法相对于以往移动网络关注方法的优势,我们在ImageNet分类和流行的下游任务(包括目标检测和语义分割)中进行了大量实验
  • 通过相当数量的可学习参数和计算,我们的网络在ImageNet上的top1分类准确率中实现了0.8%的性能提升
  • 在目标检测和语义分割方面,我们也观察到与其他注意机制的模型相比有了显著的改进,如Figure 1
  • 我们希望我们简单高效的设计能够促进未来移动网络注意力机制的发展

2.相关工作

在这里插入图片描述

Figure 2. Schematic comparison of the proposed coordinate attention block © to the classic SE channel attention block [18] (a) and CBAM [44] (b). Here, “GAP” and “GMP” refer to the global average pooling and global max pooling, respectively. ‘X Avg Pool’ and ’Y Avg Pool’ refer to 1D horizontal global pooling and 1D vertical global pooling, respectively.

3.方法:Coordinate Attention

  • coordinate attention block可以被看作是一个旨在增强移动网络学习特征的表达能力的计算单元
  • 它可以取任何中间特征张量 X = [ x 1 , x 2 , … , x C ] ∈ R C × H × W \mathbf{X} = [\mathbf{x}_1,\mathbf{x}_2,\ldots,\mathbf{x}_C] \in \mathbb{R}^{C\times H\times W} X=[x1,x2,,xC]RC×H×W 作为输入并输出具有增广表示的与 X \mathbf{X} X 尺寸相同的变换张量 Y = [ y 1 , y 2 , … , y C ] \mathbf{Y} = [\mathbf{y}_1,\mathbf{y}_2,\ldots,\mathbf{y}_C] Y=[y1,y2,,yC]
  • 为了清晰地描述所提出的coordinate attention,我们首先回顾在移动网络中广泛使用的SE注意

3.1.Revisit Squeeze-and-Excitation Attention

1st Para:

  • 如文献[18]所示,标准卷积本身很难对通道关系进行建模
  • 显式地构建通道相互依赖关系可以提高模型对最终分类决策贡献更大的信息通道的敏感性
  • 此外,使用全局平均池化还可以帮助模型捕获全局信息,这是卷积所缺乏的

2st Para:

  • 在结构上,SE块可分解为squeeze和excitation两个步骤,分别用于全局信息嵌入和通道关系的自适应重新校准
  • 给定输入 X \mathbf{X} X ,对第 c c c 个通道的squeeze可以表示为:

z c = 1 H × W ∑ i = 1 H ∑ j = 1 W x c ( i , j ) , (1) z_c=\frac{1}{H\times W}\sum_{i=1}^{H}\sum_{j=1}^{W}x_c(i,j),\tag{1} zc=H×W1i=1Hj=1Wxc(i,j),(1)

  • 其中 z c z_c zc 是第 c c c 个通道的输出
  • 输入 X \mathbf{X} X 是直接来自一个卷积层与一个固定的核大小,因此可以视为一个集合的局部描述
  • squeeze操作使得收集全局信息成为可能

3st Para:

  • 第二步,excitation,旨在完全捕获通道关系,可以表示为:

X ^ = X ⋅ σ ( z ^ ) , (2) \hat{\mathbf{X}}=\mathbf{X}\cdot\sigma(\hat{\mathbf{z}}),\tag{2} X^=Xσ(z^),(2)

  • 其中, ⋅ \cdot 表示通道的乘法, σ \sigma σ 表示sigmoid, z ^ \hat{\mathbf{z}} z^ 是由转换函数生成的结果:

z ^ = T 2 ( ReLU ( T 1 ( z ) ) ) . (3) \hat{\mathbf{z}}=T_2(\text{ReLU}(T_1(\mathbf{z}))).\tag{3} z^=T2(ReLU(T1(z))).(3)

  • 其中, T 1 T_1 T1 T 2 T_2 T2​ 是两个线性变换,可以通过学习来捕捉每个通道的重要性

4st Para:

  • SE模块已广泛应用于最近的移动网络,并被证明是实现最先进性能的关键组件
  • 然而,它只考虑通过建模通道关系来重新权衡每个通道的重要性,而忽略了位置信息,正如我们将在第4节中通过实验证明的那样,位置信息对于生成空间选择性注意图是重要的
  • 在下面,我们介绍了一种新的注意块,它同时考虑了通道间关系和位置信息

3.2.Coordinate Attention Blocks

  • 我们通过坐标信息嵌入和坐标注意生成两个步骤,对通道关系和远程依赖进行精确的位置信息编码
  • 所提出的坐标注意块示意图如Figure 2.右侧所示
  • 在下面,我们将详细描述它
3.2.1.Coordinate Information Embedding

1st Para:

  • 全局池化通常用于通道注意力中,以全局编码空间信息,但它将全局空间信息压缩成一个通道描述符,因此难以保留位置信息,而位置信息对于在视觉任务中捕捉空间结构是至关重要的
  • 为了鼓励注意力模块在空间上捕捉具有精确位置信息的长交互,我们将全局池化如公式(1)所示分解为一对一维特征编码操作
  • 具体来说,给定输入 $ X $,我们使用两种空间范围的池化核 ( H , 1 ) (H, 1) (H,1) ( 1 , W ) (1, W) (1,W),分别沿水平坐标和垂直坐标对每个通道进行编码
  • 因此,第 $ c $ 个通道在高度 $ h $ 处的输出可以表示为:

z c h ( h ) = 1 W ∑ 0 ≤ i < W x c ( h , i ) . (4) z_c^h(h)=\frac{1}{W}\sum_{0\leq i<W}x_c(h,i). \tag{4} zch(h)=W10i<Wxc(h,i).(4)

  • 类似地,第 $ c $ 个通道在宽度 $ w $ 处的输出可以表示为:

z c w ( w ) = 1 H ∑ 0 ≤ j < H x c ( j , w ) . (5) z_c^w(w)=\frac{1}{H}\sum_{0\leq j<H}x_c(j,w). \tag{5} zcw(w)=H10j<Hxc(j,w).(5)

2st Para:

  • 上述两种变换分别沿两个空间方向聚合特征,生成一对方向感知特征映射
  • 这与通道注意力方法中的压缩操作 Eq(1)产生单一特征向量的方式截然不同
  • 这两种变换还使我们的注意力模块能够沿一个空间方向捕捉长程依赖关系,并沿另一个空间方向保留精确的位置信息,从而帮助网络更准确地定位感兴趣的目标
3.2.2.Coordinate Attention Generation

1st Para:

  • 如上所述,Eq(4)和 Eq(5)实现了全局感受野并编码了精确的位置信息
  • 为了利用所得的表现力强的表示,我们提出了第二种变换,称为坐标注意力生成
  • 我们的设计遵循以下三个标准
  • 首先,新变换在移动环境中的应用应该尽可能简单和廉价
  • 其次,它可以充分利用捕获到的位置信息,以便准确突出感兴趣的区域
  • 最后但同样重要的是,它还应能够有效捕捉通道间的关系,这在现有研究中已被证明是至关重要的

2st Para:

  • 具体来说,给定由 Eq 4 和 Eq 5 生成的聚合特征图,我们首先将它们拼接起来,然后将它们发送到共享的 1 × 1 1 \times 1 1×1 卷积变换函数 $ F_1 $​,得到:

f = δ ( F 1 ( [ z h , z w ] ) ) , (6) \mathbf{f}=\delta(F_1([\mathbf{z}^h,\mathbf{z}^w])), \tag{6} f=δ(F1([zh,zw])),(6)

  • 这里, [ ⋅ , ⋅ ] [\cdot, \cdot] [,] 表示沿空间维度的连接操作,$ \delta $ 是非线性激活函数,$ f \in \mathbb{R}^{C/r \times (H+W)} $ 是中间特征图
  • 其中 $ r $​ 是减少比例,用于控制块大小,就像 SE 块中一样,它编码了水平方向和垂直方向的空间信息
  • 然后,我们沿着空间维度将 $ f $ 分割成两个单独的张量 $ f_h \in \mathbb{R}^{C/r \times H} $ 和 $ f_w \in \mathbb{R}^{C/r \times W} $
  • 再利用另外两个 1 × 1 1 \times 1 1×1 卷积变换 $ F_h $ 和 $ F_w $ 分别将 $ f_h $ 和 $ f_w $ 转换为与输入 $ X $​ 通道数相同的张量,得到:

g h = σ ( F h ( f h ) ) , (7) \mathbf{g}^h=\sigma(F_h(\mathbf{f}^h)), \tag{7} gh=σ(Fh(fh)),(7)

g w = σ ( F w ( f w ) ) . (8) \mathbf{g}^w=\sigma(F_w(\mathbf{f}^w)). \tag{8} gw=σ(Fw(fw)).(8)

  • 回想一下,$ \sigma $ 是 sigmoid 函数
  • 为了降低模型复杂度,我们通常使用适当的减少比例 $ r $(例如,32)来减少 $ f $ 的通道数
  • 我们将在实验部分讨论不同减少比例对性能的影响
  • 然后,输出 $ g_h $ 和 $ g_w $ 分别被扩展并用作注意力权重
  • 最后,我们的坐标注意力块的输出 $ Y $​ 可以写成:

y c ( i , j ) = x c ( i , j ) × g c h ( i ) × g c w ( j ) . (9) y_c(i,j)=x_c(i,j)\times g_c^h(i)\times g_c^w(j). \tag{9} yc(i,j)=xc(i,j)×gch(i)×gcw(j).(9)

3st Para: Discussion

  • 与仅关注重新加权不同通道重要性的通道注意力不同,我们的坐标注意力块还考虑编码空间信息
  • 如上所述,沿水平和垂直方向的注意力同时应用于输入张量
  • 两个注意力图中的每个元素反映了感兴趣的对象是否存在于相应的行和列中
  • 这种编码过程使得我们的坐标注意力能够更准确地定位感兴趣对象的确切位置,从而帮助整个模型更好地识别
  • 我们将在实验部分详细展示这一点

3.3.Implementation

在这里插入图片描述

Figure 3. Network implementation for different network architectures. (a) Inverted residual block proposed in MobileNetV2;(b) Sandglass bottleneck block proposed in MobileNeXt.

  • 由于本文的目标是探究一种更好的方法来增强移动网络的卷积特征,在这里,我们以两种经典的轻量级架构(即 MobileNetV2 和 MobileNeXt)为例,这两种架构具有不同类型的残差块,以展示所提出的坐标注意力块相对于其他著名的轻量级注意力块的优势
  • Figure 3显示了我们如何将注意力块插入到MobileNetV2的反向残差块和MobileNeXt的 sandglass 块中

4.实验

5.结论

  • 本文提出了一种新的移动网络轻量级注意机制——coordinate attention
  • 我们的coordinate attention继承了通道注意方法(例如,squeeze-and-excitation注意)的优势,这些方法可以模拟通道间的关系,同时通过精确的位置信息捕获远程依赖关系
  • 在ImageNet分类、目标检测和语义分割方面的实验证明了该方法的有效性

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RHEL8/Centos8 install for PXE

PXE介绍 PXE&#xff08;Preboot Execution Environment&#xff09;是预引导执行环境的缩写。它是由Intel设计的&#xff0c;允许客户端计算机通过网络从服务器上加载操作系统镜像。PXE通常用于大规模部署操作系统&#xff0c;例如在企业或学校环境中。 PXE工作流程如下&…

C++ | Leetcode C++题解之第139题单词拆分

题目&#xff1a; 题解&#xff1a; class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {auto wordDictSet unordered_set <string> ();for (auto word: wordDict) {wordDictSet.insert(word);}auto dp vector <bool> (s.…

【el-tooltips改造】Vue实现文本溢出才显示el-tooltip,否则不显示el-tooltips

实现原理&#xff1a; 使用disabled属性控制el-tooltip的content显示与隐藏&#xff1b; 目标&#xff1a; 1行省略、多行省略、可缩放页面内的文本省略都有效。 实现方式&#xff1a; 1、自定义全局指令&#xff0c;tooltipAutoShow.js代码如下&#xff08;参考的el-table中的…

04 架构核心技术之分布式消息队列

本课时的主题是分布式消息队列&#xff0c;分布式消息队列的知识结构如下图。 本课时主要介绍以下内容。 同步架构和异步架构的区别。异步架构的主要组成部分&#xff1a;消息生产者、消息消费者、分布式消息队列。异步架构的两种主要模型&#xff1a;点对点模型和发布订阅模型…

C# 异步方法async / await 任务超时处理

一、需求 如果调用一个异步方法后&#xff0c;一直不给返回值结果怎么办呢&#xff1f;这就涉及到怎么取消任务了。 二、Task取消任务 static CancellationTokenSource source new CancellationTokenSource();static void Main(string[] args){Task.Run(() >{for (int i …

【基于C++与OpenCV实现魔方图像识别和还原算法】施工总览图

文章目录 主要效果展示思维导图魔方还原算法 本系列博客长期更新&#xff0c;分为两大部分 OpenCV实现魔方六面识别 C编写科先巴二阶段还原算法实现三阶魔方的还原 主要效果展示 摄像头识别六面 3D图像构建&#xff0c;提供还原公式 动画演示还原过程 思维导图 魔方还原算法 参…

PowerDesigner导入Excel模板生成数据表

PowerDesigner导入Excel模板生成数据表 1.准备好需要导入的Excel表结构数据,模板内容如下图所示 2.打开PowerDesigner,新建一个physical data model文件,填入文件名称,选择数据库类型 3.点击Tools|Execute Commands|Edit/Run Script菜单或按下快捷键Ctrl Shift X打开脚本窗口…

免费开源图片转文字识别软件:Umi-OCR

目录 1.介绍 2.项目亮点 3.项目功能&#xff08;已实现&#xff09; 4.功能体验 5.项目集成&#xff08;调用接口&#xff09; 6.项目地址 1.介绍 Umi-OCR&#xff1a;免费&#xff0c;开源&#xff0c;可批量的离线OCR软件&#xff0c;目前适用于 Windows7 x64 及以上。…

【机器人和人工智能——自主巡航赛项】进阶篇

文章目录 案例要求创建地图rviz仿真 保存地图坐标点定位识别训练主逻辑理解语音播报模块匹配二维码识别多点导航讲解视频其余篇章 案例要求 创建地图 ./1-gmapping.sh 把多个launch文件融合在sh文件里面 rviz仿真 rviz是rose集成的可视化界面&#xff0c;查看机器人的各项数…

深度学习:如何静悄悄地改变我们的日常生活

深度学习 深度学习&#xff1a;如何静悄悄地改变我们的日常生活一、消费电子产品智能手机与个人助理娱乐与社交媒体 二、医疗健康三、汽车与交通四、公共安全五、总结 深度学习&#xff1a;如何静悄悄地改变我们的日常生活 在近年来&#xff0c;深度学习技术因其强大的数据处理…

Java——数组排序和查找

一、排序介绍 1、排序的概念 排序是将多个数据按照指定的顺序进行排列的过程。 2、排序的种类 排序可以分为两大类&#xff1a;内部排序和外部排序。 3、内部排序和外部排序 1&#xff09;内部排序 内部排序是指数据在内存中进行排序&#xff0c;适用于数据量较小的情况…

快速入门Linux及使用VSCode远程连接Linux服务器

在当前的技术环境中&#xff0c;Linux操作系统因其强大的功能和灵活性而广受欢迎。无论你是开发人员、系统管理员还是技术爱好者&#xff0c;学习Linux都是提升技术技能的重要一步。本文将介绍如何快速入门Linux&#xff0c;并使用Visual Studio Code&#xff08;VSCode&#x…

LabVIEW储油罐监控系统

LabVIEW储油罐监控系统 介绍了基于LabVIEW的储油罐监控系统的设计与实施。系统通过集成传感器技术和虚拟仪器技术&#xff0c;实现对储油罐内液位和温度的实时监控&#xff0c;提高了油罐监管的数字化和智能化水平&#xff0c;有效增强了油库安全管理的能力。 项目背景 随着…

【vector模拟实现】附加代码讲解

vector模拟实现 一、看源代码简单实现1. push_backcapacity&#xff08;容量&#xff09;sizereserve&#xff08;扩容&#xff09;operator[ ] &#xff08;元素访问&#xff09; 2. pop_back3. itorator&#xff08;迭代器&#xff09;4.insert & erase &#xff08;头插…

skywalking基础使用

skywalking基础使用 找链路追踪Id将链路追踪Id拿到skywalking-ui中筛选对应链路补充说明例如, sql的打印能让我们了解到代码中对应的sql是否符合预期 找链路追踪Id 在接口响应header中复制x-trace-id 这个接口响应正常了, 异常没有暴露到前端, 且调用链路很长, 但我们借助s…

高质量 HarmonyOS 权限管控流程

高质量 HarmonyOS 权限管控流程 在 HarmonyOS 应用开发过程中&#xff0c;往往会涉及到敏感数据和硬件资源的调动和访问&#xff0c;而这部分的调用就会涉及到管控这部分的知识和内容了。我们需要对它有所了解&#xff0c;才可以在应用开发中提高效率和避免踩坑。 权限管控了…

【安装笔记-20240608-Linux-动态域名更新服务之YDNS】

安装笔记-系列文章目录 安装笔记-20240608-Linux-动态域名更新服务之YDNS 文章目录 安装笔记-系列文章目录安装笔记-20240608-Linux-动态域名更新服务之YDNS 前言一、软件介绍名称&#xff1a;YDNS主页官方介绍 二、安装步骤测试版本&#xff1a;openwrt-23.05.3-x86-64注册填…

c++【入门】求圆环的面积

限制 时间限制 : 1 秒 内存限制 : 128 MB 题目 如下图所示的圆环铁片&#xff0c;中间是空心的&#xff0c;已知圆环外圆的半径是r1厘米&#xff08;如&#xff1a;10cm&#xff09;&#xff0c;内圆半径是r2厘米&#xff08;如&#xff1a;6cm&#xff09;&#xff0c;请编…

如何使用GPT-4o函数调用构建一个实时应用程序?

本教程介绍了如何使用OpenAI最新的LLM GPT-4o通过函数调用将实时数据引入LLM。 我们在LLM函数调用指南(详见https://thenewstack.io/a-comprehensive-guide-to-function-calling-in-llms/)中讨论了如何将实时数据引入聊天机器人和代理。现在&#xff0c;我们将通过将来自Fligh…

上位机快速开发框架

右上角向下按钮 -> 后台配置 系统菜单 角色管理 分配权限 用户管理 设备配置 通道管理 首页界面设计 设备1配置 带反馈按钮&#xff0c;如&#xff1a;用户按键00105&#xff0c;PLC反馈状态00106 设备2配置 参数说明&#xff1a; TagName_Main&#xff1a;主要信息&#…