当前位置: 首页 > 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;可供选…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...