混合域注意力机制(空间+通道)
在计算机视觉任务中,空间域注意力通常关注图像中不同位置的重要性,例如突出图像中的关键对象或区域。而通道域注意力则侧重于不同通道(特征图)的重要性,决定哪些特征对于任务更具判别力。混合域注意力机制结合了空间域注意力机制与通道注意力机制。它同时考虑空间和通道维度的重要性,通过学习每个空间位置和通道的权重,动态调整特征图中不同位置和通道的重要性,以增强模型对视觉任务的表达能力和性能。
具体来说,它通常会经过以下步骤实现:
1. 输入:假设输入特征图的尺寸为C×H×W,其中C是通道数,H和W分别是高度和宽度。
2. 计算空间域注意力:空间注意力权重通过对特征图的空间位置进行分析得到。
3.计算通道注意力: 通道注意力权重则通过对特征图的通道进行分析,例如使用全局平均池化或全局最大池化来汇总通道信息,然后经过全连接层等操作生成权重。
4. 特征加权融合:将得到的空间和通道注意力权重与原始特征图相乘,实现对特征的重新加权和聚焦。
下面分享几篇经典的混合域注意力机制论文。
1.CBAM: Convolutional Block Attention Module
论文地址:https://arxiv.org/abs/1807.06521
文章中提出注意力机制不仅能够提示网络应该关注那些区域,还能够增强这些区域的重要性。所以,本文结合注意力机制提出了一个新的网络模块(CBAM),通过关注通道和空间信息,来达到增强有效的特征,抑制不太有效的特征。
如图1所示,CBAM的结构由两部分组成。一是通道注意力模块(Channel attention module),二是空间注意力模块(Spatial attention module)。下面就来看看这两部分的结构。
1.通道注意力模块(Channel attention module)
如图2所示,通道空间注意力模块由三个操作组成。具体来说,首先分别使用全局平均池化和全局最大池化生成两个不同的空间描述符和,用来代表空间信息。然后,将和送入到一个共享的MLP当中去生成不同的通道注意力分数。最后,将MLP输出的两个不同的注意力分数相加,并通过Sigmoid函数激活便得到了最终的通道注意力权重。
2.空间注意力模块(Spatial attention module)
如图3所示,空间空间注意力模块由三个操作组成。与通道注意力模块不同的是,空间注意力模块首先分别使用全局平均池化和全局最大池化沿通道轴生成两个不同的特征图和。然后,将和沿通道拼接在一起,并通过一个的卷积去生成通空间注意力图。最后,通过Sigmoid函数激活便得到了最终的空间注意力权重。
此外,文章中还在ResBlock(ResNet)中集成了CBAM,结构如下图4所示。
2.Dual Attention Network for Scene Segmentation
论文地址:https://arxiv.org/abs/1809.02983
文章中提出了一种双注意网络(Dual Attention Network, DANet,网络结构如下图5所示)来自适应地整合局部特征及其全局依赖关系。具体来说,它结合了自注意力机制(transformer)设计了两个模块(Position Attention Module和Channel Attention Module),用来捕获空间和通道维度上的特征依赖关系,然后将这两个模块的输出进行融合,进一步增强特征的表达。下面就来看看这两个模块的结构。
1.Position Attention Module(PAM)
PAM的结构如图6所示,它通过以下步骤来实现。
1. 输入特征图,其中C是通道数,H和W分别是高度和宽度。
2. 将A用不同卷积层生成新的特征图B和C,其中B和C都。然后将B和C除通道外拉成一条向量变形成。
3. 将C和B的转置进行矩阵乘法,再使用softmax操作即得到空间注意力图S。
4.将A用卷积层生成特征图D,并将D拉成一条向量变形成。然后,再将D与上一步得到的空间注意力图S的转置执行矩阵乘法,并将结果重塑成。
5. 最后,对上一步得到的结果乘以尺度参数,并与原始输入特征执行元素加法,便得到最终的输出特征。输出特征实现了有选择性的聚合上下文信息。
2.Channel Attention Module(CAM)
CAM的结构如图6所示,它通过以下步骤来实现。
1. 输入特征图,其中C是通道数,H和W分别是高度和宽度。
2. 将A变形成,与A的转置执行矩阵乘法,然后通过softmax操作得到通道注意力图X。
4.将A的转置与上一步得到的通道注意力图X执行矩阵乘法,并将结果重塑成。
5. 最后,对上一步得到的结果乘以尺度参数,并与原始输入特征执行元素加法,便得到最终的输出特征。
混合域注意力机制能够有效地提升模型的性能,增强模型对关键信息的捕捉能力,从而在图像分类、目标检测、语义分割等计算机视觉任务中取得更好的效果。
最后,欢迎关注公众号“AI小家”。
相关文章:
混合域注意力机制(空间+通道)
在计算机视觉任务中,空间域注意力通常关注图像中不同位置的重要性,例如突出图像中的关键对象或区域。而通道域注意力则侧重于不同通道(特征图)的重要性,决定哪些特征对于任务更具判别力。混合域注意力机制结合了空间域…...
springboot长春旅游安全地图平台-计算机毕业设计源码90075
摘 要 本文详细阐述了基于微信小程序前端和Spring Boot后端框架的长春旅游安全地图平台的设计思路与实现过程。该平台旨在为长春游客提供安全、便捷的旅游服务,同时为旅游管理部门提供高效的信息管理和应急响应机制。 在平台设计上,我们充分考虑了用户体…...
apex正则表达式匹配富文本字段内容,如何只匹配文本而忽略富文本符号
在Apex中处理富文本字段时,如果你只想匹配其中的纯文本而忽略富文本符号,可以使用正则表达式来去除HTML标签,然后再进行文本匹配。以下是一个示例代码,展示了如何实现这一点: public class RichTextHandler {// Funct…...
空气净化器对去除宠物毛有效吗?小型猫毛空气净化器使用感受
作为一个养猫多年的猫奴,家里有两只可爱的小猫咪:小白和小花。虽然相处起来很开心,但也给生活带来了一些小麻烦。谁懂啊,我真的受够了,每天都在粘毛。猫窝的猫毛一周不清理就要堆成山,空气中也全是浮毛&…...
vue的nextTick是下一次事件循环吗
如题,nextTick的回调是在下一次事件循环被执行的吗? 是不是下一次事件循环取决于nextTick的实现,如果是用的微任务,那么就是本次事件循环;否则如果用的是宏任务,那么就是下一次事件循环。 我们看下Vue3中…...
5.4.软件工程-系统设计
考试占比不高 概述 系统设计的主要目的就是为系统制定蓝图,在各种技术和实施方法中权衡利弊,精心设计,合理地使用各种资源,最终勾画出新系统的详细设计方案。系统设计的主要内容包括新系统总体结构设计、代码设计、输出设计、输…...
Apache Kylin与BI工具集成:数据可视化实战
Apache Kylin与BI工具集成:数据可视化实战 1. 引言 Apache Kylin是一个开源的分布式分析引擎,专注于大数据的OLAP(在线分析处理)。它可以快速地对大量数据进行多维分析,并支持与多种BI(商业智能ÿ…...
通过idea图形化界面就能push到github流程
建好自己要提交的项目 建好github想提交的地址 git initgit remote add origin https://github.com/usernamezhaozhao/github2test/tree/maingit branch maingit checkout main创建一个文件,我起了一个a.txt git pull origin main 好了,可以idea打开了 …...
C语言初阶(10)
1.野指针 野指针就是指向未知空间的指针,有以下几种情况 (1)指针未初始化 int main() {int a0;int*b;return 0; } 上面指针就是没有初始化,形成一种指向一个随机空间的地址的指针,我们可以修改成 int main() {int a0;int*bNU…...
Javaweb用过滤器写防跳墙功能和退出登录
一、什么是防跳墙功能: 防跳墙功能通常指的是防止用户在未完成认证的情况下直接访问受保护资源的功能。在 Web 开发中,这种功能通常被称为“登录拦截”或“身份验证拦截”。 在 Spring MVC 中,实现这种功能通常使用的是“拦截器”(…...
小试牛刀-Telebot区块链游戏机器人(TS升级)
目录 1.编写目的 2.为什么使用TypeScript实现? 3.实现功能 3.1 AI图片生成 3.2 签到 3.3 邀请 3.4 WalletConnect连接 4.功能实现详解 4.1 AI图片生成 4.2 签到 4.3 邀请 4.4 WalletConnect连接 5.功能截图 6.问题整理 Welcome to Code Blocks blog 本篇文章主…...
MySQL:Prepared Statement 预处理语句
预处理语句(Prepared Statement) 是一种在数据库管理系统中使用的编程概念,用于执行对数据库进行操作的 SQL 语句。 使用预处理语句的具体方式和语法依赖于所用的编程语言和数据库管理系统。常见的编程语言如 Java、PHP、Python 和 C# 都提供…...
Java:Thread类以及线程状态
文章目录 Thread类等待一个线程 - join()获取当前线程的引用sleep 线程状态 Thread类 等待一个线程 - join() 操作系统,针对多个线程的执行,是一个"随机调度,抢占式执行“的过程. 线程等待就是在确定两个线程的"结束顺序”. 我们无法确定两个线程调度执行的顺序,但…...
如何通过前端表格控件实现自动化报表?
背景 最近伙伴客户的项目经理遇见一个问题,他们在给甲方做自动化报表工具,项目已经基本做好了,但拿给最终甲方,业务人员不太买账,项目经理为此也是天天抓狂,没有想到合适的应对方案。 现阶段主要面临的问…...
Upload-labs靶场Pass01-Pass21全解
文章目录 Pass-01 前端JSJS绕过上传或者用burp抓包的方式 Pass-02 MIME检测Pass-03 特殊文件后缀黑白名单绕过特殊文件名绕过 Pass-04 .htacess上传Pass-05 user.ini文件上传Pass-06 大小写绕过Pass-07 空格绕过Pass-08 .绕过Pass-09 ::$DATA绕过Pass-10 .空格.绕过Pass-11 双写…...
使用openpyxl库对Excel数据有效性验证
哈喽,大家好,我是木头左! 本文将重点介绍如何使用openpyxl库进行Excel数据验证。 什么是Excel数据验证 Excel数据验证是一种功能,可以限制单元格中输入的数据类型和范围。例如,可以设置一个单元格只能输入日期,或者只能输入大于0的数字。这样,可以确保数据的准确性和一…...
【算法】浅析深度优先搜索算法
深度优先搜索算法:深入探索,穷尽可能 1. 引言 在计算机科学中,深度优先搜索(Depth-First Search,简称DFS)是一种用于遍历或搜索树或图的算法。这种算法会沿着一个分支走到底,直到这个分支结束…...
鸿蒙系统开发【ASN.1密文转换】安全
ASN.1密文转换 介绍 本示例对使用kit.CryptoArchitectureKit加密后的密文格式进行转换。kit.CryptoArchitectureKit加密后的密文格式默认为以base64显示的ASN.1格式问题,通过对密文进行base64变换后得到字符数组,以16进制数字显示,再此基础…...
【期末复习】软件质量保证与测试
考试内容 a卷 前三个部分(就业前景、岗位、发展前景(第一部分最后一个知识点),第四部分缺陷管理不考) 单选 10*2 判断 12*1 简单3*10 四个小题 (7个 pta部分涵盖+ppt) 设计 10+18 简答题(PTA简答题+PPT) 背完80分以上基本没问题 一、什么是软件。 软件是计算…...
CTFHub——XSS——反射型
1、反射型: 发现为表单式,猜测哪个可能存在注入漏洞,分别做测试注入发现name框存在xss漏洞 输入发现有回显但不是对方cookie,参考wp发现要用xss线上平台 将xss平台测试语句注入,将得到的url编码地址填入url框…...
docker 部署 libreoffice
创建 jdk 镜像 1、创建 Dockfile 文件 FROM centos:7 ADD jdk-8u212-linux-x64.tar.gz /usr/local RUN mv /usr/local/jdk1.8.0_212 /usr/local/jdk ENV JAVA_HOME=/usr/local/jdk ENV JRE_HOME=$JAVA_HOME/jre ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH ENV P…...
预测各种开发语言的市场占比
预测各种开发语言的市场占比是一个复杂且动态的任务,因为它受到多种因素的影响,包括市场需求、技术趋势、项目类型、开发团队的经验和偏好等。然而,我可以根据当前的技术趋势、编程语言排行榜以及市场需求情况,给出一个大致的预测…...
mybatisplus 通用字段自动赋值与更新
1、数据库级别的自动赋值与更新 比如自动更新时间和插入时间 default current_timestamp 插入的时候获取当前 default current_timestamp on update current_timestamp 修改的时候更新时间 无法用数据库更新的通用字段 借助 mybatisplus 的 metaobjecthandler 实现metaob…...
图像生成中图像质量评估指标—FID介绍
文章目录 1. 背景介绍2. 实际应用3. 总结和讨论 1. 背景介绍 Frchet Inception Distance(\textbf{FID})是一种衡量生成模型性能的指标,它基于Inception网络提取的特征来计算模型生成的图像与真实图像集合之间的距离。 FID利用了Inception模…...
uniapp全局分享功能实现方法(依赖小程序右上角的分享按钮)
1、uniapp开发小程序时默认是关闭分享功能的。点击右上角三个点可查看,效果图如下: 2、在utils文件夹下新建share.js文件,名字任起。(使用的是全局分享,因为一个一个页面的去分享太麻烦且没必要。) export…...
Redis中BigKey的判定查找建议
判定依据 key本身的数据量过大:string类型的key它的值为5MBkey中的成员数量过多:一个zset类型的key成员数量为10000个key中的成员数据量过大:一个hash类型的key他的成员只有1000个但是这些value总大小超过100MB查看内存命令 127.0.0.1:6379> hset k1 name 123 age 123 sex…...
Swift-语法基础
一、声明 变量声明 以关键字 var 开头的声明引入变量,该变量在程序执行期间可以具有不同的值。 var str: String "hello" str "hello, world" 常量声明 以关键字 let 开头的声明引入只读常量,该常量只能被赋值一次。 let s…...
面向对象进阶:多态、内部类、常用API
目录 Java中的接口 Java中的内部类 常用API StringBuilder类 Java高级面向对象编程 在这篇博客文章中,我们将探索Java中的高级面向对象编程概念,包括接口、内部类和常用API。每个概念都将通过代码示例来演示它们的应用。 Java中的接口 什么是接口&…...
寸(英寸)、码、斤、公顷等日常中大概的换算单位你清楚吗
这些单位和概念是我们日常生活和工作中不可或缺的部分,理解它们的用途和转换关系可以让我们更有效地处理信息、进行交流和解决问题。 1、寸(英寸) 1寸(或英寸)等于0.0254米,2寸等于:20.0254&a…...
Python面试宝典第26题:最长公共子序列
题目 一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。比如:"ace" 是 "abcde" 的子序列,但 "…...
方维o2o 2.9蓝色团购网站程序源码模板/一键生成原创文案
1. reduce 函数原型:void cv::reduce(InputArray _src, OutputArray _dst, int dim, int rtype, int dtype-1) src :输入矩阵 dst :输出的通过处理输入矩阵的所有行/列而得到的单行/列向量 dim :矩阵被简化后的维数索引. 0-意味着矩阵被处理成一行, 1-意味着矩…...
林州网站建设策划/人工智能培训
其实我纠结挺久,要不要写这一篇文章,不怎么想让大家感觉我好像只会字符集一样。。Mysql在数据的存储上,提供了不同的字符集支持。在数据的比对上,又提供了不同的字符序支持。与Oracle实例级别的设置不同,Mysql很灵活&a…...
临沂网站公司哪家好/邯郸网站优化公司
随着USB3.0被消费者不断推广采用,成本还将持续降低。目前销售的PC有九成已经内置了USB3.0接口,消费者无需为之支付额外费用。USB3.0连接器和线缆等组件一应俱全。此外,USB3.0线缆能提供4.5W的功率,足以为机器视觉摄像头供电&#…...
站内seo怎么做/专业推广公司
百度的Ueditor编辑器出于安全性考虑,用户在html模式下粘贴进去的html文档会自动被去除样式和转义。虽然安全的,但是非常不方便。做一下修改把这个功能去掉。一、打开ueditor.all.js二、大概9300行找到 ///plugin 编辑器默认的过滤转换机制,把…...
用cms做的网站 的步骤/产品宣传推广方式有哪些
今天是2月19日,农历正月初十。 算算从去年2月6号来公司实习,到后来正式入职,到现在已经两年出头了。去年这一年,回想起来似乎并无可以骄傲的事情。只是从原来的移动开发领域跳进了大数据领域。从去年七月份到现在,其实…...
电影网站制作模板/seo算法优化
装饰器函数 楔子 作为一个会写函数的python开发,我们从今天开始要去公司上班了。写了一个函数,就交给其他开发用了。 def func1(): print(in func1) 季度末,公司的领导要给大家发绩效奖金了,就提议对这段日子所有人开发的成果进行…...