SPP、ASPP与PPM

article/2025/9/14 17:06:27

SPP、ASPP与PPM

    • SPP
    • PPM
    • ASPP

SPP

SPP模块是何凯明大神在2015年的论文《Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition》中被提出。
在R-CNN中需要固定输入图片的尺寸,因为卷积层后面的全连接层的结构是固定的。但在现实中,我们的输入的图像尺寸总是不能满足输入时要求的大小,然而通常的手法就是裁剪(crop)和拉伸(warp),但这样做总归是不好的,其扭曲了原始的特征。而SPP层通过将候选区的特征图划分为多个不同尺寸的网格,然后对每个网格内都做最大池化,这样依旧可以让后面的全连接层得到固定的输入。

在这里插入图片描
Fast-RCNN中的ROI pooling层实际上就是一种特殊的spatial pyramid pooling,它们思想是类似的,只是ROI pooling只用一种尺寸的网格来池化,而spatial pyramid pooling同时用了多种尺寸的网格。

PPM

PPM(Pyramid Pooling Module)是PSPNet中提出的一个模块,PSPNET是用于语义分割的一个网络。
现在大多数先进的语义分割框架大多数基于FCN,FCN不能有效的处理场景之间的关系和全局信息。
一般来说网络越深感受野越大(resceptive field),但是理论上的感受野和实际网络中的感受野还是有差距的(实际的感受野小于理论的感受野),这使得网络无法有效的融合全局特征信息,作者提出的PPM就解决了这个问题。
GAP(Global Average Pooling,全局平均池化)能够有效的融合全局上下文信息,但是其对信息的融合和提取能力有限,而且简单的使用GAP将信息压缩为一个通道很容易损失很多有用的信息,因此将不同感受野的特征和子区域的特征融合可以增强特征表征能力。
在这里插入图片描述
上图就是PPM模块,从前面网络中提取出的特征图在此处分成两个分支,一个分支分为多个子区域进行GAP(这与PSP模块中的结构类似·),接着用1*1的卷积调整通道大小,再通过双线性插值获得未池化前的大小,最后将两个分支融合。
PSP模块能够聚合不同区域的上下文从而达到获取全局上下文的目的。

ASPP

ASPP(atrous spatial pyramid pooling)是在deeplab中提出来的,在后续的deeplab版本中对其做了改进,如加入BN层、加入深度可分离卷积等,但基本的思路还是没变。
讲到ASPP时,首先需要提到空洞卷积(Atrous/Dilated Convolution)。在于语义分割任务中,想要对图片提取的特征具有较大的感受野,并且又想让特征图的分辨率不下降太多(分辨率损失太多会丢失许多关于图像边界的细节信息),但这两个是矛盾的,想要获取较大感受野需要用较大的卷积核或池化时采用较大的strid,对于前者计算量太大,后者会损失分辨率。而空洞卷积就是用来解决这个矛盾的。即可让其获得较大感受野,又可让分辨率不损失太多。空洞卷积如下图:
在这里插入图片描述
(a)是rate=1的空洞卷积,卷积核的感受野为3×3,其实就是普通的卷积。
(b)是rate=2的空洞卷积,卷积核的感受野为7x7
(c)是rate=4的空洞卷积,卷积核的感受野为15x15
空洞卷积的好处是不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。

进行分割任务时,图像存在多尺度问题,有大有小。一种常见的处理方法是图像金字塔,即将原图resize到不同尺度,输入到相同的网络,获得不同的feature map,然后做融合,这种方法的确可以提升准确率,然而带来的另外一个问题就是速度太慢。DeepLab v2为了解决这一问题,参考了SPP、PPM等引入了ASPP(atrous spatial pyramid pooling)模块,即是将feature map通过并联的采用不同膨胀速率的空洞卷积层用于捕获多尺度信息,并将输出结果融合得到图像的分割结果。如下图所示,这是在deeplab v3中改进后的ASPP。用了一个1×1的卷积和3个3×3的空洞卷积,每个卷积核有256个且都有BN层。事实上,1×1的卷积相当于rate很大的空洞卷积,因为rate越大,卷积核的有效参数就越小,这个1×1的卷积核就相当于大rate卷积核的中心的参数。

在这里插入图片描述


http://chatgpt.dhexx.cn/article/jqGYX5UR.shtml

相关文章

PPM文件

PPM文件 简介文件分类及扩展举例 简介 PPM(Portable Pixmap Format)是一种简单的图像格式,仅包含格式、图像宽高、bit数等信息和图像数据。 用txt打开.ppm文件的话,文件内容会如下所示: 文件分类及扩展 除开PPM还有两个与之相关…

ppm理解与代码实现

PWM指的是脉宽调制,狭义说就是舵机信号中正脉冲宽度,就是高电平宽度来表示控制量大小,PPM是脉冲和脉冲之间间隔调制,狭义的说,对于遥控器输出或者接收机输出而言,两个脉冲上升沿之间间隔表示控制量大小.在遥控设备的传统中PWM通常是单通道的控制量,而PPM则是以帧为单位,帧内每个…

[图像处理] PPM、PGM、PBM图像格式剖析

今天突然需要用到PPM这个图像文件格式,之前没见过,在此记录一下。 PPM、PGM、PBM这三个图像文件格式很少见,其实也不难,分别用于彩色图像、灰度图像、二值图像。这里以PPM格式为例。 PPM格式有两种类型:字节码和ASCII。…

PPM文件格式详解

PPM图像格式是由Jef Poskanzer 在1991年所创造的。 PPM(Portable Pixmap Format)还有两位兄长,大哥名叫「PBM」,二哥人称「PGM」,他们三兄弟各有所长,下面为你们一一介绍: PBM 是位图&#xf…

什么是ppm,如何转化到西格玛水平

本文共678字,预计阅读需要2.5分钟 我们经常听到,如果一家公司的质量水平达到了六个西格玛水平,那么也就意味着在100万次出错机会中出现的缺陷数不会超过3.4个,也就是3.4ppm。那ppm到底是什么呢? ppm是英文parts per mi…

PPM信号介绍

原文地址:http://nicekwell.net/blog/20161223/ppmxin-hao-jie-shao.html 我们知道PWM信号可以控制舵机,一般信号周期是20ms,脉宽在500us~2500us之间。   实际上这种pwm信号不仅可以控制舵机,航模中使用的电调(有刷和…

晶振PPM指标、频率和时间偏差

目录 PPM的含义频率随温度的变化振荡器的分类 PPM的含义 PPM是Parts Per Million的缩写,定义为百万分之一,1ppm即是一百万分之一。 PPM是晶振、TCXO等振荡器的一个重要参数,它代表频率误差的精准度,PPM值越小越精准。 频率随温度…

Laravel快速接入JWT用户认证(多用户认证)tymon/jwt-auth

JWT应用 创建新项目安装快速接入创建 Token 完成接口多用户认证创建 Admin JWT 是 JSON Web Token 的缩写,它是一个规范,让用户和服务器之间传递安全可靠的信息。 创建新项目 创建一个 Laravel的新项目,我们依然推荐大家使用 LTS 的版本&am…

JIT是什么

什么是JIT 一些其他解释的网站:http://www.sohu.com/a/169704040_464084 1、动态编译(dynamic compilation)指的是“在运行时进行编译”;与之相对的是事前编译(ahead-of-time compilation,简称AOT&#xf…

JWT入门教程

简介 JWT,JSON Web Token,开放的、行业标准(RFC 7519),用于网络应用环境间安全传递声明。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的…

JT项目-1

DAY01 学习京淘的意义 1 为什么选择电商项目作为java培优部分的重要项目 火(用户量广) 技术难点多,高(高并发,高可用)尤其是在中国 谷歌是全球并发最高的网站 学习成本低(无需精通业务部分) 2 学习完京淘项目对我们的就业有什么好处 代替1-2年工作经验 技术就业范…

JWT --- 入门学习

不知道为什么,不用springboot test测试或者启动类启动,会报这个错误,找不到类路径 1.常见的认证机制 basic auth : 每次请求都会携带用户的username,password,易被黑客拦截。 Cookie auth : 我们请求服务器,创建一个session对象,…

Jetty

本文介绍一个使用Jetty开发的Web的小例子。 Jetty是一个开源的servlet容器,它为基于Java的web容器(例如JSP和servlet)提供运行环境。可以把它理解为和Tomcat一样,不过Jetty更小更轻量级。如果想更深入学习Jetty推荐看&#xff1a…

JWT入门详解

目录 一、JWT简介 1.什么是JWT? 2.为什么要使用JWT? 二、JWT的工作原理 三、JWT的组成 1.Header(头部) 2.Payload(载荷) Reserved claims(保留) Public claims(公有) Private claims(私有) 3.s…

Ubuntu系统搭建后端Websocket服务器--基于Apache Tomcat

目录 一、概述二、基本安装2.1 Java安装2.2 Apache Tomcat安装2.3 Eclipse EE安装 三、正式部署3.1 创建一个简单java web项目3.2 服务端部署3.3 运行3.4 局域网连接Websocket 一、概述 本文针对Ubuntu系统(Win10下的虚拟机)进行详述,本文测…

部署Nginx+Tomcat+Php-fpm+mariadb主主

要求 1、前端1台Nginx,均衡后端2台php-fpm,均衡后端2台Tomcat,2台MYSQL采用主主架构,用户通过域名访问前端Nginx 域名v1.jd.com v2.jd.com访问到Discuz和Jforum不同的网站。 2、将第一道题目的部署步骤和架构图画出来。架构图上要…

【JavaWeb】WEB开发概述以及Tomcat

🔎这里是【JavaWeb】,关注我学习JavaWeb不迷路 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 👀专栏介绍 【JavaWeb】 目前主要更新JavaWeb,一起…

tomcat环境搭和管理及实现jsp通过tomcat连接mysql

25.1 什么是Tomcat 官方网站:http:#tomcat.apache.org/ Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。由于有了 Sun 的参与和支持…

Tomcat的Https设置及Http自动跳转Https (Linux环境下)

1.场景还原 近期项目中要对信息传输过程中进行安全加密,那么第一时间浮现笔者脑海的当然是https,接下来笔者将介绍如何在web服务器Tomcat中配置Https及Http自动跳转Https 2.Https相关介绍 Https是由NetScape公司设计的一个基于Http的加密传输协议,可以这…