当前位置: 首页 > news >正文

论文阅读(二十六):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) DANetDualAttentionNetworkforSceneSegmentation,分别捕获空间和通道维度的特征依赖关系。具体来说,本研究在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) DANetDualAttentionNetworkforSceneSegmentation,以增强特征表示对场景分割的判别能力。
  • 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} ARC×H×W,通过卷积操作生成新的特征图 B 、 C ∈ R C × H × W B、C∈R^{C×H×W} BCRC×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} DRC×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} ERC×H×W
在这里插入图片描述
每个位置的生成特征 E ∈ R C × H × W E∈R^{C×H×W} ERC×H×W是所有位置和原始特征的特征的加权和。因此,它具有全局上下文视图,并根据空间注意力图选择性地聚合上下文。

3.2Channel Attention Module

在这里插入图片描述
  每个高级特征的通道图都可以看作是一个特征二维大小的响应,不同的特征之间是相互关联的,此时可通过利用每个通道方向的二维矩阵来对特征之间的依赖关系进行建模,并生成相应的通道注意力图。本研究构建了一个通道注意力模块来显式实现该建模操作。
  如上图所示,不对原始特征 A ∈ R C × H × W A∈R^{C×H×W} ARC×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} XRC×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} ERC×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&#xff08;3&#xff09; priority_queue的模拟实现 priority_queue.h #include <vector>namespace soobin {template<class T, class Container vector<T>>class priority_queue{public://强制生成默认构造priority_queue() default;temp…...

怎样把学生的成绩单独告知家长?

期中考试季的到来让校园里的气氛似乎也变得紧张起来。家长们开始频繁地联系老师&#xff0c;希望了解孩子的表现&#xff1b;孩子们则在考试后&#xff0c;绞尽脑汁地想出各种理由&#xff0c;以期在成绩不理想时能减轻家长的失望。老师们更是忙得不可开交&#xff0c;不仅要批…...

vue3父组件控制子组件表单验证及获取子组件数值方法

1、关键部分的代码如下&#xff0c;我努力交代清楚了&#xff0c;希望能让大家看懂。 <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 解决内存可见性问题和指令重排序问题 一、设计模式 在讲解案例前&#xff0c;先介绍一个概念设计模式&#xff…...

Java.6--多态-设计模式-抽象父类-抽象方法

一、多态 1.定义--什么是多态&#xff1f; a.同一个父类的不同子类对象&#xff0c;在做同一行为的时候&#xff0c;有不同的表现形式&#xff0c;这就是多态。&#xff08;总结为&#xff1a;一个父类下的不同子类&#xff0c;同一行为&#xff0c;不同表现形式。&#xff0…...

JAVA Maven 的安装与配置

一、下载地址 官方网站&#xff1a;Maven – Download Apache Maven 我这里是3.8.6版本 二、安装步骤 maven安装之前要先安装jdk&#xff0c;请确保你的系统已经安装了jdk环境。 1.将下载好的 Maven 进行解压 apache-maven-3.6.8-bin.zip 2.配置本地仓库:修改 conf/settin…...

【程序分享】PCB元件坐标对齐工具 V1.3

↑↑↑点击上方蓝字&#xff0c;关注我们&#xff01; “PCB元件坐标对齐工具 V1.3”脚本程序在PCB文档中将元件的坐标自动移动到参考圆弧的中心&#xff0c;参考圆弧支持机械层1层和禁止布线层&#xff0c;参考图元的位置任意&#xff0c;不局限于栅格位置。 程序会自动…...

[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版本&#xff1a; 1.8Hutool版本&#xff1a; 5.8.25 问题描述 客服端文件上传主要代码&#xff1a; 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制作图像处理工具的文章&#xff0c;也知道pyqt通过使用label控件显示图像的…...

反向传播的微积分原理 | Chapter 4 | Deep Learning | 3Blue1Brown

目录 前言1. 简介2. 神经网络中的链式法则3. 微积分的计算4. 公式含义5. 代价函数对权重偏置的敏感度6. 多个神经元的情形7. 回顾相关资料结语 前言 3Blue1Brown 视频笔记&#xff0c;仅供自己参考 这个章节主要来深度讲解反向传播中的一些微积分理论 官网&#xff1a;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&#xff0c;Ra…...

基于springboot+vue实现的助学兼职系统(源码+L文+ppt)4-092

基于springbootvue实现的助学兼职系统&#xff08;源码L文ppt&#xff09;4-092 第4章 系统设计 4.1 总体功能设计 一般学生、招聘公司和管理者都需要登录才能进入助学兼职系统&#xff0c;使用者登录时会在后台判断使用的权限类型&#xff0c;包括一般使用者和管理者,一般使…...

⌈ 传知代码 ⌋ 农作物病害分类(Web端实现)

&#x1f49b;前情提要&#x1f49b; 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间&#xff0c;对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…...

CMU生成式人工智能大模型:从入门到放弃(九)

引言 在前面的系列博客中&#xff0c;我们深入探讨了生成式对抗网络&#xff08;GANs&#xff09;和变分自编码器&#xff08;VAEs&#xff09;等生成式模型。今天&#xff0c;我们将探索扩散模型&#xff08;Diffusion Models&#xff09;的进一步应用&#xff0c;并讨论在上…...

HTML基础总结

一、简介 HTML&#xff08;HyperText Markup Language&#xff09;即超文本标记语言&#xff0c;是用于创建网页的标准标记语言。它通过使用各种标签来定义网页的结构和内容&#xff0c;告诉浏览器如何显示网页。HTML 文档由标签和文本组成&#xff0c;标签用于描述文本的性质…...

EXCELL中如何两条线画入一张图中,标记坐标轴标题?

1&#xff0c;打开excel&#xff0c;左击选中两列&#xff0c; 2&#xff0c;菜单栏>“插入”>”二维折线图”选中一个 3&#xff0c;选中出现的两条线中的一条右击>最下一行&#xff0c;“设置数据系列格式” 4&#xff0c;右测“系列选项中”>点击“次坐标轴” 5…...

Zabbix企业级分布式监控环境部署

“运筹帷幄之中&#xff0c;决胜千里之外”。在IT运维中&#xff0c;监控占据着重要的地位&#xff0c;按比例来算&#xff0c;说占30%一点也不为过。对IT运维工程师来说&#xff0c;构建一个真正可用的监控告警系统是一项艰巨的任务。在监控系统的开源软件中&#xff0c;可供选…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...