论文阅读(二十六):Dual Attention Network for Scene Segmentation
文章目录
- 1.Introduction
- 3.DANet
- 3.1Position Attention Module
- 3.2Channel Attention Module
论文:Dual Attention Network for Scene Segmentation
论文链接:Dual Attention Network for Scene Segmentation
代码链接:Github
1.Introduction
语义分割的目的在于将场景图像分割和解析为与语义类别相关的不同图像区域,包括事物(例如天空、道路、草地)和离散对象(例如人、汽车、自行车)。本文提出了一种双注意力网络 D A N e t ( D u a l A t t e n t i o n N e t w o r k f o r S c e n e S e g m e n t a t i o n ) DANet(Dual Attention Network for Scene Segmentation) DANet(DualAttentionNetworkforSceneSegmentation),分别捕获空间和通道维度的特征依赖关系。具体来说,本研究在FCN上增加了位置注意力模块、空间注意力模块共两个并行的注意力模块:
- 位置注意力模块:引入了自注意力机制来捕获特征图的任意两个位置之间的空间依赖关系。对于某个位置的特征,它是通过加权求和聚合所有位置的特征来更新的,其中权重由相应两个位置之间的特征相似性决定。即,任何两个具有相似特征的位置都可以促进相互改进,无论它们在空间维度上的距离如何。
- 通道注意力模块:使用类似的自注意力机制来捕获任意两个通道映射之间的通道依赖关系,并使用所有通道映射的加权和更新每个通道映射。
最后将这两个注意力模块的输出融合在一起,以进一步增强特征表示。
本研究的贡献如下:
- 1.提出双注意力网络 D A N e t ( D u a l A t t e n t i o n N e t w o r k f o r S c e n e S e g m e n t a t i o n ) DANet(Dual Attention Network for Scene Segmentation) DANet(DualAttentionNetworkforSceneSegmentation),以增强特征表示对场景分割的判别能力。
- 2.提出了一个位置注意力模块来学习特征的空间相互依赖性,并设计了一个通道注意力模块来模拟通道相互依赖性。二者通过局部特征的丰富上下文依赖关系进行建模,显著改善了分割结果。
3.DANet

本文共设计了两种类型的注意力模块,为更方便展示模块的效果,设计了一个以ResNet为主干架构的网络模型。其中,作为编码器的ResNet中删除了下采样操作并在最后两个ResNet模块中使用了膨胀卷积,从而将最终特征图大小的大小缩小到到输入图像的 1 8 \frac{1}{8} 81。之后将其输入到两个并行的注意力模块中。
3.1Position Attention Module

位置注意力模块将更广泛的上下文信息编码为局部特征,从而增强它们的表示能力,本研究中的位置注意力模块通过矩阵乘法实现细节增强。两个特征的乘积可以揭示两个特征共存的重要信息,有利于协同识别对象。而两个特征的求和可以全面地捕捉两个特征所包含的信息。给定特征图 A ∈ R C × H × W A∈R^{C×H×W} A∈RC×H×W,通过卷积操作生成新的特征图 B 、 C ∈ R C × H × W B、C∈R^{C×H×W} B、C∈RC×H×W。之后将二者重塑为大小 R C × N , N = H × W ( 像素个数 ) R^{C×N},N=H×W(像素个数) RC×N,N=H×W(像素个数),并将B转置后与C执行矩阵乘法,再使用 s o f t m a x softmax softmax生成空间注意力图,大小为 N × N = ( H × W ) × ( H × W ) N×N=(H×W)×(H×W) N×N=(H×W)×(H×W):

以 s j i s_{ji} sji衡量第i个位置对第j个位置的影响,两个位置的特征表示越相似,它们之间的相关性越大,注意力图对应位置的权重就越大。将A经过卷积运算得到特征图 D ∈ R C × H × W D∈R^{C×H×W} D∈RC×H×W并重塑为 R C × N R^{C×N} RC×N,将其与注意力图相乘并重塑为大小 R C × H × W R^{C×H×W} RC×H×W。最后将其乘以可学习权重 α α α并与A残差连接得到输出 E ∈ R C × H × W E∈R^{C×H×W} E∈RC×H×W:

每个位置的生成特征 E ∈ R C × H × W E∈R^{C×H×W} E∈RC×H×W是所有位置和原始特征的特征的加权和。因此,它具有全局上下文视图,并根据空间注意力图选择性地聚合上下文。
3.2Channel Attention Module

每个高级特征的通道图都可以看作是一个特征二维大小的响应,不同的特征之间是相互关联的,此时可通过利用每个通道方向的二维矩阵来对特征之间的依赖关系进行建模,并生成相应的通道注意力图。本研究构建了一个通道注意力模块来显式实现该建模操作。
如上图所示,不对原始特征 A ∈ R C × H × W A∈R^{C×H×W} A∈RC×H×W进行卷积操作,而是直接重塑为大小 R C × N , N = H × W ( 像素个数 ) R^{C×N},N=H×W(像素个数) RC×N,N=H×W(像素个数),并将其与自身的转置进行矩阵乘法运算,再通过 s o f t m a x softmax softmax获得通道注意力图 X ∈ R C × C X∈R^{C×C} X∈RC×C。

以 x j i x_{ji} xji衡量第i个通道对第j个通道的影响,两个通道的特征表示越相似,它们之间的相关性越大,注意力图对应位置的权重就越大。将A的转置与注意力图相乘并重塑为大小 R C × H × W R^{C×H×W} RC×H×W。最后将其乘以可学习权重 β β β并与A残差连接得到输出 E ∈ R C × H × W E∈R^{C×H×W} E∈RC×H×W:

注意,在计算两个通道的关系之前并没有使用卷积层来嵌入特征,因为这样维护不同通道之间的关系。
相关文章:
论文阅读(二十六):Dual Attention Network for Scene Segmentation
文章目录 1.Introduction3.DANet3.1Position Attention Module3.2Channel Attention Module 论文:Dual Attention Network for Scene Segmentation 论文链接:Dual Attention Network for Scene Segmentation 代码链接:Github 1.Intr…...
Stack和Queue(3)
Stack和Queue(3) priority_queue的模拟实现 priority_queue.h #include <vector>namespace soobin {template<class T, class Container vector<T>>class priority_queue{public://强制生成默认构造priority_queue() default;temp…...
怎样把学生的成绩单独告知家长?
期中考试季的到来让校园里的气氛似乎也变得紧张起来。家长们开始频繁地联系老师,希望了解孩子的表现;孩子们则在考试后,绞尽脑汁地想出各种理由,以期在成绩不理想时能减轻家长的失望。老师们更是忙得不可开交,不仅要批…...
vue3父组件控制子组件表单验证及获取子组件数值方法
1、关键部分的代码如下,我努力交代清楚了,希望能让大家看懂。 <template><KeepAlive><component ref"comp" :is"compNames[steps[compIndex].comp]" /></KeepAlive><el-button click"prevBtn"…...
【JavaEE】【多线程】单例模式
目录 一、设计模式1.1 单例模式1.1.1 饿汉模式1.1.2 懒汉模式 1.2 线程安全问题1.3 懒汉模式线程安全问题的解决方法1.3.1 原子性问题解决1.3.2 解决效率问题1.3.3 解决内存可见性问题和指令重排序问题 一、设计模式 在讲解案例前,先介绍一个概念设计模式ÿ…...
Java.6--多态-设计模式-抽象父类-抽象方法
一、多态 1.定义--什么是多态? a.同一个父类的不同子类对象,在做同一行为的时候,有不同的表现形式,这就是多态。(总结为:一个父类下的不同子类,同一行为,不同表现形式。࿰…...
JAVA Maven 的安装与配置
一、下载地址 官方网站:Maven – Download Apache Maven 我这里是3.8.6版本 二、安装步骤 maven安装之前要先安装jdk,请确保你的系统已经安装了jdk环境。 1.将下载好的 Maven 进行解压 apache-maven-3.6.8-bin.zip 2.配置本地仓库:修改 conf/settin…...
【程序分享】PCB元件坐标对齐工具 V1.3
↑↑↑点击上方蓝字,关注我们! “PCB元件坐标对齐工具 V1.3”脚本程序在PCB文档中将元件的坐标自动移动到参考圆弧的中心,参考圆弧支持机械层1层和禁止布线层,参考图元的位置任意,不局限于栅格位置。 程序会自动…...
[bug] vllm 0.6.1 RuntimeError: operator torchvision::nms does not exist
[bug] vllm 0.6.1 RuntimeError: operator torchvision::nms does not exist 环境 python 3.10 torch 2.4.0cu118 torchvision 0.19.0cu118 vllm 0.6.1.post2cu118问题详情 if torch._C._d…...
处理Hutool的Http工具上传大文件报OOM
程序环境 JDK版本: 1.8Hutool版本: 5.8.25 问题描述 客服端文件上传主要代码: HttpRequest httpRequest HttpUtil.createPost(FILE_UPLOAD_URL); Resource urlResource new UrlResource(url, fileName); httpRequest.form("file&q…...
transforms的使用
示例代码 from PIL import Image from torch.utils.tensorboard import SummaryWriter from torchvision import transforms#打开该图片 img_path"hymenoptera_data/val/bees/10870992_eebeeb3a12.jpg" imgImage.open(img_path) writerSummaryWriter("logs&quo…...
python-PyQt项目实战案例:制作一个视频播放器
文章目录 1. 关键问题描述2. 通过OpenCV读取视频/打开摄像头抓取视频3. 通过PyQt 中的 QTimer定时器实现视频播放4. PyQt 视频播放器实现代码参考文献 1. 关键问题描述 在前面的文章中已经分享了pyqt制作图像处理工具的文章,也知道pyqt通过使用label控件显示图像的…...
反向传播的微积分原理 | Chapter 4 | Deep Learning | 3Blue1Brown
目录 前言1. 简介2. 神经网络中的链式法则3. 微积分的计算4. 公式含义5. 代价函数对权重偏置的敏感度6. 多个神经元的情形7. 回顾相关资料结语 前言 3Blue1Brown 视频笔记,仅供自己参考 这个章节主要来深度讲解反向传播中的一些微积分理论 官网:https://…...
matlab读取excel表格
使用matlab读取excel表格中的数据 使用推荐代码读取excel表格中的数据 path "C:\Users\24975\Desktop\503\GUI展示案例\Tx_20_0_Rx_40_90_0.1_95_L.xlsx";%文件路径 data readtable(path,Sheet,Sheet1,ReadRowNames,false,ReadVariableNames,false,Ra…...
基于springboot+vue实现的助学兼职系统(源码+L文+ppt)4-092
基于springbootvue实现的助学兼职系统(源码L文ppt)4-092 第4章 系统设计 4.1 总体功能设计 一般学生、招聘公司和管理者都需要登录才能进入助学兼职系统,使用者登录时会在后台判断使用的权限类型,包括一般使用者和管理者,一般使…...
⌈ 传知代码 ⌋ 农作物病害分类(Web端实现)
💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…...
CMU生成式人工智能大模型:从入门到放弃(九)
引言 在前面的系列博客中,我们深入探讨了生成式对抗网络(GANs)和变分自编码器(VAEs)等生成式模型。今天,我们将探索扩散模型(Diffusion Models)的进一步应用,并讨论在上…...
HTML基础总结
一、简介 HTML(HyperText Markup Language)即超文本标记语言,是用于创建网页的标准标记语言。它通过使用各种标签来定义网页的结构和内容,告诉浏览器如何显示网页。HTML 文档由标签和文本组成,标签用于描述文本的性质…...
EXCELL中如何两条线画入一张图中,标记坐标轴标题?
1,打开excel,左击选中两列, 2,菜单栏>“插入”>”二维折线图”选中一个 3,选中出现的两条线中的一条右击>最下一行,“设置数据系列格式” 4,右测“系列选项中”>点击“次坐标轴” 5…...
Zabbix企业级分布式监控环境部署
“运筹帷幄之中,决胜千里之外”。在IT运维中,监控占据着重要的地位,按比例来算,说占30%一点也不为过。对IT运维工程师来说,构建一个真正可用的监控告警系统是一项艰巨的任务。在监控系统的开源软件中,可供选…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
