PAN(Pyramid Attention Network for semantic segmentation)paper解读

news2025/1/4 19:41:05

Pyramid Attention Network for Semantic Segmentation讲PAN用于语义分割,网络结构类似encoder-decode, u-shape。

背景

encoder-decoder结构,
在encoding到高维度特征的过程中,原始的纹理信息会遭遇空间分辨率损失,例如FCN。
PSPNet和DeepLab用了空间金字塔和空洞卷积(ASPP)来对应这个问题,
然而ASPP容易引起grid artifacts, 空间金字塔会损失像素级别的定位信息。
作者从SENet和Parsenet中获得灵感,从高维特征中提取pixel level的attention信息。

PAN由2个结构组成,FPA(Feature Pyramid Attention)和GAU(Global Attention Upsample),
FPA类似于encoder和decoder的连接处,作用是增大感受野,区分较小的目标。
GAU类似FCN后面decoder的上采样,同时还能从高维度特征中提取attention信息,计算量也不会很大。

Related work

PAN结构类似于encoder-decoder, attention, 还考虑了PSPNet中的空间金字塔结构,
所以类似的work就有encoder-decoder, Global Context Attention, 空间金字塔。

encoder-decoder: 结构就不多说了,主要特点是连接相邻stage的特征,但没有考虑到全局的特征信息。
Global Context Attention:起源于ParseNet, 应用了一个global branch来增加感受野,加强pixel-wise分类的一致性。
DFN用了一个global pooling分支在U-shape的顶端,使U-shape变成了V-shape. 本文作者也用了global
average pooling加在decoder branch, 以选择有区分性的特征。
空间金字塔:用于提取多尺度信息。Spatial pyramid pooling适用于有不同尺度的目标。PSPNet和DeepLab系列把global pooling扩展为Spatial pyramid pooling和ASPP,虽说效果不错,但计算量很大。

PAN

PAN包括了FPA和GAU,模块如下图,backbone为ResNet-101,
FPA相当于encoder decoder的转折处。
在这里插入图片描述

FPA

目的是为CNN的high-level特征提供pixel-wise的attention.
最近的语义分割中,金字塔结构可以提取不同尺度的特征,增大感受野,不过这种结构缺乏全局的信息(缺乏选择channel的机制)。
同时,如果选择channel attention的向量,那么又不能提取多尺度的特征,缺少了pixel-wise的信息。

作者把 pixel-wise的attention 和 多尺度的特征 结合起来。
于是,这个module就把3个不同尺度的特征用一个U-shape结构结合起来,为了提取不同尺度的特征,金字塔中用了3x3, 5x5, 7x7的卷积层。因为用的是高维特征,高维特征图通常比较小,所以较大的卷积核并不会带来很大的计算量。

然后,CNN输出的input特征通过一个1x1卷积之后,就可以和FPA输出的特征pixel-wise地相乘。起到了pixel wise attention的作用,又结合了多尺度。

又加上了前面提到的global branch, 用了global average pooling, 加到output特征。
最后得到的结构如下图,
在这里插入图片描述

作者提到了在处理相乘之前做了channel reduce, 所以并不像PSPNet和ASPP那样耗大量的计算。

GAU

这块属于decoder,PSPNet和Deeplab中用了双线性插值上采样,可看作是简单的decoder.
一般的encoder-decoder网络主要考虑用不同尺度的特征,在decoder中逐渐恢复目标的边界。这种网络一般很复杂,计算量较大。

最近研究显示把CNN和金字塔结合起来可以提高效果, 类别信息也会加强。
作者考虑利用高维特征加辅助的类别信息 为 低维信息 提供权重,用来选择准确的细节。

GAU用了global average pooling提供全局信息,给低维特征提供权重,用来选择类别定位细节。
细节上,给低维特征过3x3卷积,用来reduce channel(减小计算量)。
高维特征通过global average pooling层,再过一个1x1卷积+BN+ReLU得到权重向量, 用这个权重和低维output相乘,
相乘的结果和原高维特征相加。
在这里插入图片描述

网络结构

网络结构贴在了PAN部分,再贴一遍吧
在这里插入图片描述
细节:
backbone: ResNet-101, 在ImageNet上预训练,
在res5b block上用rate=2的空洞卷积提取特征图,这样特征图的size是input image的1/16(和DeepLabv3+类似)。
把ResNet-101中的7x7卷积换成3个3x3conv(和PSPNet类似)

训练细节:
在这里插入图片描述

训练用的是扩充版的PASCAL, 参考数据集使用方法
github参考如下:
pytorch版目标分割
pytorch版语义分割

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/559851.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot进阶(39):SpringBoot之Jackson配置全局时间日期格式 | 超级详细,建议收藏

1. 前言🔥 不知道小伙伴对于日期字段,在项目中都是如何处理的,是单独给每个字段都自定义日期格式还是做全局格式设置?这个我之前啊,是对日期都是有做单独配置,给每个Entity带有日期字段的都配JsonFormat注解…

SolVES 模型与多技术融合【QGIS、PostgreSQL、ARCGIS、MAXENT、R】实现生态系统服务功能社会价值评估及拓展案例分析

生态系统服务是人类从自然界中获得的直接或间接惠益,可分为供给服务、文化服务、调节服务和支持服务4类,对提升人类福祉具有重大意义,且被视为连接社会与生态系统的桥梁。自从启动千年生态系统评估项目(Millennium Ecosystem Asse…

编译器设计(十四)——寄存器分配

文章目录 一、简介二、背景问题2.1 内存与寄存器2.2 分配与指派2.3 寄存器类别 三、局部寄存器分配和指派3.1 自顶向下的局部寄存器分配3.2 自底向上的局部寄存器分配3.3 超越单个程序块 四、全局寄存器分配和指派4.1 了解图着色4.2 找到全局活跃范围4.3 估算全局逐出代价4.4 冲…

前端列表页+element-puls实现列表数据弹窗功能

效果图: 这是一个修改的弹窗,我们要实现的功能是,在列表,点击修改按钮时,将数据带入到弹窗里面,点击保存时关闭弹窗。 1,点击修改展开弹窗 使用 eldialog组件,v-model绑定的值为tru…

fluent-operator在kubesphere中的实战详解

前言 最近收到一个小任务:熟悉kubesphere实现一个日志平台。基于这样的机会,将最近所整理的笔记进行汇总。 kubesphere开启日志收集 根据官网介绍只需要将 enabled 的 false 改为 true即可 执行kubectl get pod -n kubesphere-logging-system命令来检查…

QT课程 QT介绍

QT介绍(了解) Qt是一个基于C开发语言的图形用户界面开发(GUI)框架。界面开发知识Qt的一部分,实际上Qt也可以支持很多其他的功能,比如:网络编程、文件IO、图形图像处理等。 Qt在嵌入式领域最大…

Vue之插值表达式,v-bind(单向绑定),v-model(双向绑定)

文章目录 前言一、插值表达式二、v-bind指令三、v-model指令总结 前言 插值表达式{{…}} v-bind v-model 一、插值表达式 插值表达式支持匿名变量、三目运算符、四则运算符、比较运算符、数值类型的一些内置方法&#xff0c;还有数组的索引取值方法和对象属性。 <!DOCTYPE…

安全工具 | CMSeeK [指纹识别]

0x00 免责声明 本文仅限于学习讨论与技术知识的分享&#xff0c;不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;本文作者不为此承担任何责任&#xff0c;一旦造成后果请自行承担…

2023年北京.NET线下技术沙龙圆满落幕!

5月20日&#xff0c;MASA技术团队在北京举办的“2023年北京.NET线下技术沙龙”圆满落幕&#xff01;整个活动气氛热烈&#xff0c;嘉宾们的分享内容丰富多彩&#xff0c;现场观众都受益匪浅。我们期待着更多这样的技术交流活动&#xff0c;让.NET社区不断发展和进步。 本次活动…

材料电磁参数综合测试解决方案 材料吸波、屏蔽性能测试系统 (10MHz~500GHz)

材料吸波、屏蔽性能测试系统测试频率范围可达10MHz&#xff5e;500GHz&#xff0c;可实现材料反射率、屏蔽性能特性参数测试。系统由矢量网络分析仪、测试夹具、系统软件等组成&#xff0c;根据用户不同频率、材料性能测试需求&#xff0c;可选用弓形框法、便携式反射率测试法进…

如何快速实现接口自动化测试,常规接口断言封装实践

目录 前言&#xff1a; 一、框架设计思路 1. 封装请求方法 2. 断言封装 3. 接口封装 4. 接口统一管理 二、框架使用 三、总结 前言&#xff1a; 在当今互联网行业中&#xff0c;接口自动化测试已经成为了非常重要的测试手段之一。而在这个过程中&#xff0c;接口自动化…

3年外包裸辞,面试阿里、字节全都一面挂,哭死.....

测试员可以先在外包积累经验&#xff0c;以后去大厂就很容易&#xff0c;基本不会被卡&#xff0c;事实果真如此吗&#xff1f;但是在我身上却是给了我很大一巴掌... 所谓今年今天履历只是不卡简历而已&#xff0c;如果面试答得稀烂&#xff0c;人家根本不会要你。况且要不是大…

性能优化 面试

性能分析 1.页面加载性能&#xff08;加载时间&#xff1b;用户体验&#xff09; 2.动画与操作性能&#xff08;是否流畅无卡顿&#xff09; 3.内存占用&#xff08;内存占用过大&#xff0c;浏览器崩掉等&#xff09; 4.电量消耗&#xff08;游戏方面&#xff0c;暂不考虑&…

【SpringBoot】九:Web服务---文件上传

文章目录 1.MultipartFile API2.上传文件 1.MultipartFile API 在 Controller 的方法加入形参RequestParam MultipartFile。 MultipartFile 表示上传的文件&#xff0c;提供了方便的方法&#xff0c;保存文件到磁盘。 方法作用getName()参数名称&#xff08;upfile&#xff0…

pymongo给文档里的某个列表添加元素并去重以及操作符的表格

文章目录 问题描述知识点收集mongo的操作符:匹配符&#xff1a;选择符&#xff1a;函数操作&#xff1a;更新符&#xff1a;聚集符&#xff1a;字段操作符&#xff1a; 问题描述 给parts列表新增字典 新增前: 新增后: 代码: mongo_client get_mongo_client()col mongo_cli…

【ZYNQ】ZYNQ7000 UART 控制器及驱动示例

简介 UART 控制器介绍 UART 控制器是一个全双工异步收发控制器&#xff0c;ZYNQ 内部包含两个 UART 控制器&#xff0c;UART0 和 UART1。每一个 UART 控制器支持可编程的波特率发生器、64 字节的接收 FIFO 和发送 FIFO、产生中断、RXD 和 TXD 信号的环回模式设置以及可配置的…

第一个SpringBoot程序

如何创建一个SpringBoot项目&#xff0c;两种方式&#xff0c;官网或IDEA 官方提供了一个快速生成的网站&#xff0c;IDE集成了这个网站 spring官网 Spring | Homehttps://spring.io/进入spring官网&#xff0c;点击projects&#xff0c;点击SpringBoot&#xff0c;进到如下…

前端设计必须知道!7个超实用的工具推荐!

前端网络开发作为一个高薪行业&#xff0c;近年来的繁荣是业内人士所看到的。网络开发工具也在上升&#xff0c;市场上出现了越来越多的前端页面设计工具。但随着前端页面设计工具数量的增加&#xff0c;找到合适的前端页面设计工具来完成工作有时会让开发团队感到困惑。 本文…

看不上的年金险

前言 像我这种“资深”股民&#xff0c;激进的有股票期货&#xff0c;稳健的有国债、政策性金融债、地方政府债、城投债&#xff0c;中间的还有etf、宽基指数、指增基金&#xff0c;平时因为对冲风险买点保障性保险也就罢了&#xff0c;储蓄型的保险压根看不上。 但现在通过熬…

Golang语言初识

Windows 下搭建 Go 开发环境-安装和配置 SDK 采用文章 2.5.1介绍了 SDK SDK 的全称(Software Development Kit 软件开发工具包)SDK 是提供给开发人员使用的&#xff0c;其中包含了对应开发语言的工具包 2.5.2下载 SDK 工具包 1) Go 语言的官网为&#xff1a;golang.org , 因…