论文学习笔记(四)ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation

本文主要是介绍论文学习笔记(四)ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

『写在前面』

2018上半年出品的语义分割轻量级网络。

论文出处:ECCV 2018

作者机构:Sachin Mehta等,University of Washington

原文链接:https://arxiv.org/abs/1803.06815v2

相关repo:https://github.com/sacmehta/ESPNet


目录

摘要

1 介绍

2 相关工作

关于卷积加速

膨胀卷积

3 ESPNet

3.1 ESP模块

将标准卷积转化成ESP模块的过程 

 ESP模块详解

3.2 与其他CNN模块的关系

MobileNet Module

ShuffleNet Module

Inception Module

ResNext Module

Atrous spatial pyramid (ASP) module

不同Module在参数量、内存开销、感受野大小方面的对比

4 网络结构


摘要

  • 基于传统卷积模块设计,提出一种高效空间金字塔卷积模块(ESP Module),有助于减小模型运算量和内存、功率消耗,以提高在终端设备上的适用性。

1 介绍

  • ESP Module基于卷积分解原理,将标准卷积分解为两个步骤:
    • 1)point-wise convolutions 逐点卷积
    • 2)spatial pyramid of dilated convolutions 空间金字塔型膨胀卷积
  • ESP运算高效,并且可以用在CNNs的不同空间级别上(主要是相对ASP而言)
  • 理论上,ESP模块比Inception 和 ResNext的模块更高效。另外的试验结果表明,在相同硬件和计算条件下,ESP模块也优于现有表现最佳的MobileNet 和 ShuffleNet

2 相关工作

关于卷积加速

  • 卷积分解:将卷积运算分解为多个步骤以降低计算复杂度,比如Inception,ResNext,Xception,MobileNets等都使用了这样的技巧来减轻计算量。
  • 网络压缩:主要通过散列、修剪、矢量量化和收缩等方法,以减小预训练的模型大小。
  • 低位网络:通过量化模型的权重来减小模型大小和复杂度。
  • 稀疏CNNs:为了消除CNN的冗余,借助稀疏分解和稀疏结构学习等思路压缩模型大小。

膨胀卷积

  • 为了能够在不增加参数数量的情况下提高卷积核的感受野,便诞生了膨胀卷积(Dilated Convolution)
  • 简单而言,在标准卷积核中的每个参数中间插入一定数量的0元素便得到了卷积膨胀的卷积核
  • 这样一来,对于一个n \times n的卷积核,设膨胀率(即相邻元素之间的插0个数)为r,则其感受野增大到\left [ (n-1)r+1 \right ]^2
  • 想更深入的了解可以参考:https://blog.csdn.net/wangyuxi__/article/details/83003357

3 ESPNet

3.1 ESP模块

将标准卷积转化成ESP模块的过程 

  • ESP模块是ESPNet的核心组成部分,其基于"reduce-split-transform-merge"的策略设计,主要由point-wise conv基于空间金字塔的膨胀卷积两部分组成。
  • 基于卷积分解理论,ESP模块首先通过1x1 conv对输入特征进行降维,然后使用多个不同膨胀率的卷积核对低维特征特征进行卷积,因为各个膨胀卷积核的感受野不同,而且从小到大都有,有点类似空间金字塔,所以作者将其命名为ESP模块

  • 对于一个n \times n \times M @ N的标准卷积核,ESP模块将其分解为以下三步:

    Step-1: Reduce(Point-wise convolutions):d1\times1\times M的卷积核,将M维的输入feature map降至d

    Step-2: Split & Transform(Spatial pyramid of dilated convolutions):使用K个不同膨胀率的卷积核对上一步输出的feature map并行进行卷积,将会得到K个相同大小的feature map

    Step-3*: HFF(Hierarchical feature fusion,图中未体现):分层特征融合,即将上一步得到的K个相同大小的feature map按照一定规则进行拼接,得到最终的输出feature

 ESP模块详解

  •  ESP模块的参数量为\frac{MN}{K}+\frac{(nN)^2}{K},其中每部分参数数量如下,加一起就是了:
    • Reduce部分:M\times\frac{N}{K}
    • Split部分:K\times n^2 \times \left ( \frac{N}{K} \right )^2
  • ESP模块的感受野大小为\left [ (n-1)2^{K-1}+1 \right ]^2,这个比较好理解,其实就是K个膨胀卷积核中最大的那一个的感受野

『举个例子』

类比一个(w*h*M*N)大小的标准卷积核,即设输入的feature map大小为128*128*M,输出的feature map大小为128*128*N。ESP模块的具体计算如下:

① 经过Reduce以后,变为128*128*d

② 经过Split后,可以得到K张128*128*d的feature map

③ 经过HFF融合以后,变为128*128*(d*K)注意d=N/K,所以输出大小为128*128*N

如:当n=3,N=M=128,K=4时,一个标准卷积核参数量是一个ESP模块参数量的3.6倍,但ESP模块的感受野可以达到17*17.

  • 因为使用了大感受野的膨胀卷积,导致了gridding artifacts现象,如下图所示。本文提出了使用HFF方法来解决该问题,具体做法就是从最小的膨胀卷积核输出的那张feature map开始,逐级叠加。这样的做法并没有引入任何新的参数,同时计算量上也没有增加太多,但却有效地改善了网格效应。

  • 此外,还将输入的feature map也通过“逐元素求和”的方式加到了最终输出的feature map上,以改善信息传递

3.2 与其他CNN模块的关系

MobileNet Module

  • 如图所示,MobileNet模块 = Depth-wise Conv + Point-wise Conv
  • 与ESP模块相比,参数量,内存占用,感受野
  • 对ESP模块而言,当K=N时,与MobileNet模块很相似,只是两步的顺序颠倒一下
  • 与MobileNet模块相比,ESP模块的优势主要是感受野大

 

ShuffleNet Module

  • 基于reduce-transform-expand策略设计
  • ResNet中bottleneck模块的改进:
    • 1x1 conv => 1x1 grouped conv
    • 3x3 conv => 3x3 depth-wise conv
  • 与ESP模块相比,虽然ShuffleNet模块的参数量少,但会占用更大的内存同时无法扩大感受野  

Inception Module

  • 基于split-reduce-transform-merge策略设计
  • 每个支路上的往往具有特定的通道数、大小等
  • ESP模块在参数量、内存占用、感受野三个方面都优于

    Inception Module

 

ResNext Module

  • 是ResNet中bottleneck模块的并行版本
  • 基于split-reduce-transform-expand-merge策略设计
  • ESP模块借鉴了其分支求和的思想
  • 但ESP模块在参数量、内存占用、感受野三个方面都优于ResNext Module

 

Atrous spatial pyramid (ASP) module

  • 基于split-transform-merge策略设计
  • 通过在不同的分支上使用不同大小的膨胀卷积来捕捉不同大小的感受野
  • 由于其感受野较大,在分割任务上表现出色
  • 缺点是内存占用较大,且参数量较多

 

不同Module在参数量、内存开销、感受野大小方面的对比

4 网络结构

文中给出了4种网络结构,其中前3种网络的输出mask为输入尺寸的1/8。为了适配不同的应用场景,引入了超参数\alpha_l,其实就是ESP模块的重复堆叠个数。因为在网络前两个stage(l=0,1),feature map较大,占用内存和计算开销较多,所以没有堆叠,主要都是在后面几级堆ESP模块。

四种网络结构(从简到繁)简单解释如下:

  • ESPNet-A:基本网络。学习不同级别的特征,最后通过1x1 conv得到mask;
  • ESPNet-B:在A的基础上添加了跨步连接,改善了信息流;
  • ESPNet-C:在B的基础上继续添加跨步连接,这次连接的是下采样后的输入图像;
  • ESPNet:最终形态。在ESPNet-C的基础上,添加了一个轻量级的解码器,从而得到与输入图像相同分辨率的mask。

这篇关于论文学习笔记(四)ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/545150

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个