CVPR 2021 | CA:用于高效移动网络设计的同位注意力 | 代码开源

简介: Coordinate Attention (CA) 可以插入到移动网络中,如助力MobileNetV2、EfficientNet等网络涨点,性能优于SE、CBAM等注意力模块,还可提高检测、分割性能,代码已开源!

640.png


Coordinate Attention (CA) 可以插入到移动网络中,如助力MobileNetV2、EfficientNet等网络涨点,性能优于SE、CBAM等注意力模块,还可提高检测、分割性能,代码已开源!


640.png


作者单位:南洋理工大学

代码:https://github.com/Andrew-Qibin/CoordAttention

论文:https://arxiv.org/pdf/2103.02907.pdf

移动网络设计的最新研究表明,通道注意力(例如,SE注意力)对于提升模型性能具有显著效果,但它们通常会忽略位置信息,这对于生成空间选择性注意图非常重要。


在本文中,我们通过将位置信息嵌入到通道注意力中提出了一种新颖的移动网络注意力机制,我们将其称为“coordinate attention”。与通过2D全局池化将特征张量转换为单个特征向量的通道注意力不同,coordinate注意力将通道注意力分解为两个1D特征编码过程,分别沿两个空间方向聚合特征。这样,可以沿一个空间方向捕获远程依赖关系,同时可以沿另一空间方向保留精确的位置信息。


然后将生成的特征图分别编码为一对方向感知和位置敏感的注意图,可以将其互补地应用于输入特征图,以增强关注对象的表示。


640.png


我们的coordinate注意力很简单,可以灵活地插入到经典的移动网络中,例如MobileNetV2,MobileNeXt和EfficientNet,而几乎没有计算开销。


协调注意块(Coordinate Attention Blocks)


算法细节(推荐看原文,深入学习)


我们的注意力集中在两个步骤中,利用精确的位置信息对渠道关系和远程依存关系进行编码:嵌入信息协调注意力生成。所建议的坐标注意块的图可以在图2的右侧找到。在下文中,我们将对其进行详细描述。


坐标信息嵌入


全局池通常用于频道注意中以对空间信息进行全局编码,但是它将全局空间信息压缩到频道描述符中,因此很难保留位置信息,这对于在视觉任务中捕获空间结构至关重要。为了鼓励注意力块利用精确的位置信息在空间上捕获远程交互,我们将等式中公式化的全局池分解。


image.png


式(1)进行一对1D要素编码操作。具体来说,给定输入X,我们使用池核的两个空间范围(H,1)或(1,W)分别沿水平坐标和垂直坐标对每个通道进行编码。因此,高度为h的第c个通道的输出可表示为


image.png


类似地,第c个通道在宽度w处的输出可以写成


image.png


上面的两个变换分别沿两个空间方向聚合了特征,从而生成了一对方向感知的特征图。这与产生单个特征向量的通道注意方法中的压缩操作(等式(1))完全不同。这两个变换还使我们的注意力块能够捕获沿一个空间方向的远距离依赖关系,并沿另一空间方向保留精确的位置信息,这有助于网络更准确地定位感兴趣的对象。


协调注意力生成


如上所述等式(4)和等式(5)启用全局接受域并编码精确的位置信息。为了利用由此产生的表现形式,我们提出了第二种转换,称为坐标注意力生成。我们的设计参考以下三个标准。首先,关于移动环境中的应用程序,新的转换应该尽可能简单和便宜。其次,它可以充分利用捕获的位置信息,从而可以准确地突出显示感兴趣的区域。最后但并非最不重要的一点是,它还应该能够有效地捕获渠道间的关系,这在现有研究中已被证明是必不可少的。


640.png


设计轻量级注意力块的一些技巧


  1. SiLU激活(代码中的h_swish)比ReLU6更好
  2. 水平或垂直方向注意都与SE注意相同
  3. 当应用于MobileNeXt时,在第一个深度3x3卷积后添加关注块效果更好
  4. 请注意,如果在水平和垂直要素之间应用softmax,结果是否会更好


640.jpg

640.jpg


实验结果


大量实验表明,我们的coordinate注意力不仅有益于ImageNet分类,而且更有趣的是,它在下游任务(如目标检测和语义分割)中表现更好。


640.png

640.png

640.png

640.png

640.png


相关文章
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
|
1月前
|
机器学习/深度学习 数据可视化 测试技术
YOLO11实战:新颖的多尺度卷积注意力(MSCA)加在网络不同位置的涨点情况 | 创新点如何在自己数据集上高效涨点,解决不涨点掉点等问题
本文探讨了创新点在自定义数据集上表现不稳定的问题,分析了不同数据集和网络位置对创新效果的影响。通过在YOLO11的不同位置引入MSCAAttention模块,展示了三种不同的改进方案及其效果。实验结果显示,改进方案在mAP50指标上分别提升了至0.788、0.792和0.775。建议多尝试不同配置,找到最适合特定数据集的解决方案。
323 0
|
9天前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
46 5
|
1月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
72 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
1月前
|
网络协议 物联网 虚拟化
|
9天前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
2月前
|
安全 C#
某网络硬盘网站被植入传播Trojan.DL.Inject.xz等的代码
某网络硬盘网站被植入传播Trojan.DL.Inject.xz等的代码
完成切换网络+修改网络连接图标提示的代码框架
完成切换网络+修改网络连接图标提示的代码框架
|
2月前
|
JSON 监控 编译器
|
3月前
|
开发者 图形学 API
从零起步,深度揭秘:运用Unity引擎及网络编程技术,一步步搭建属于你的实时多人在线对战游戏平台——详尽指南与实战代码解析,带你轻松掌握网络化游戏开发的核心要领与最佳实践路径
【8月更文挑战第31天】构建实时多人对战平台是技术与创意的结合。本文使用成熟的Unity游戏开发引擎,从零开始指导读者搭建简单的实时对战平台。内容涵盖网络架构设计、Unity网络API应用及客户端与服务器通信。首先,创建新项目并选择适合多人游戏的模板,使用推荐的网络传输层。接着,定义基本玩法,如2D多人射击游戏,创建角色预制件并添加Rigidbody2D组件。然后,引入网络身份组件以同步对象状态。通过示例代码展示玩家控制逻辑,包括移动和发射子弹功能。最后,设置服务器端逻辑,处理客户端连接和断开。本文帮助读者掌握构建Unity多人对战平台的核心知识,为进一步开发打下基础。
130 0

热门文章

最新文章