系列文章目录

DeepLab语义分割系列(一):
SS-Model【2】:DeepLabv1
DeepLab语义分割系列(二):
SS-Model【3】:DeepLabv2
DeepLab语义分割系列(三):
SS-Model【4】:DeepLabv3


文章目录

  • 系列文章目录
  • 前言
  • 1. Abstract & Introduction
    • 1.1. Abstract
    • 1.2. Introduction
  • 2. Methods
    • 2.1. Structure
    • 2.2. Atrous Convolution
    • 2.3. ASPP
    • 2.4. CRF
    • 2.5. Learning rate policy
  • 总结

前言

DeepLabv2是一个用于语义分割的架构,它建立在DeepLab的基础上,有一个无轨的空间金字塔集合方案。在这里,我们在输入特征图中应用了不同速率的平行扩张卷积,然后将它们融合在一起。由于同一类别的物体在图像中可能有不同的尺寸,ASPP有助于解释不同的物体尺寸。

原论文链接:
DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs


1. Abstract & Introduction

1.1. Abstract

回顾下 DeepLab v1 ,其主要是在 FCN 的基础上对 VGG 网络进行调参 fine tuning,并在最后加上一个全连接的 CRF,保证对 FCN 得到的结果在局部细节(边界)上进行优化。

DeepLab v2 的主要贡献有三个,具体如下:

  • Atrous Convolution 代替原来上采样的方法,作为密集预测任务的强大工具,空洞卷积能够明确的控制 DCNN 内计算特征响应的分辨率。 既可以有效的扩大感受野,在不增加参数量和计算量的同时获取更多的上下文
  • ASPP (atrous spatial pyramid pooling) ,基于空间空洞金字塔池化的多尺度分割方法,即多尺度特征提取,ASPP 并行的采用了多个采样率的空洞卷积层来预测,用多个比例捕获对象以及图像上下文
  • 全连接的CRF,利用低层的细节信息对分类的局部特征(边缘)进行优化
    • 通过组合 DCNN 和 概率图模型 DenseCRF,改进分割边界结果。在 DCNN 中最大池化和下采样组合存在平移不变性,通过最终的DCNN层相应与全连接的CRF结合,来克服这个问题

DeepLab v2 是在 DeepLab v1 的基础上进行改进。改进点有三个,具体如下:

  • backbone:用 RestNet 网络替代了 VGG网络
  • ASPP:解决了多尺度上存在对象的问题
  • DenseCRF:公式的更新

主要优点

  • 效果:在 PASCAL VOC2012、PASCAL-Context、PASCALPerson-Part、Cityscapes 上都获得当时的最优的性能
  • 速度:现代 GPU 上,运行效率达到 8 FPS,DenseCRF 平均需要 0.5s(与v1一样)
  • 简单:系统是由两个非常成熟的模块结合而来,DCNN、CRF(与v1一样)

1.2. Introduction

在语义分割任务中,DCNN 面临三方面挑战:

  • 传统分类DCNNs中连续的池化和下采样将导致空间分辨率明显下降,不利于图像分割

    • 对应的解决方案:去掉最后几个最大池化层下采样,而在随后的卷积层中进行上采样,从而得到了采样率更高的特征图
  • 对象多尺度检测问题
    • 常用方法:将不同尺度重新调节至尺度相同并聚合特征图或分数图,但计算量大大增加
    • 解决方案:对特征层重采样,得到多尺度的图像文本信息,使用具有不同采样率的多个并行的空洞卷积层来有效地实现多尺度采样,提出的技术称为 ASPP
  • 以物体为中心的分类器,需要保证空间转换不变性 ,导致细节信息丢失
    • 使用跳跃层结构,从多个网络层中抽取高层次特征进行预测,并且使用全连接条件随机场增强捕捉精细细节能力,进行边界预测优化

DeepLab 系统的整个过程(将 VGG16 和 ResNet-101 迁移到语义分割中),如下所示:

  • 将全连接层转为卷积层
  • 通过空洞卷积提高特征图分辨率,将原图降低8倍,而不是32倍
  • 使用双线性插值得到原图的分辨率
  • 输入到CRF得到最后的分割结果。


2. Methods

2.1. Structure

backbone 为 ResNet-101 的网络结构如下所示(不考虑MSC):

2.2. Atrous Convolution

一维上的空洞卷积,如下所示:

其中rate是膨胀因子,空洞卷积公式如下:
y[i]=∑k=1Kx[i+r⋅k]w[k]y[i] = \displaystyle\sum^K_{k=1} x[i + r \cdot k] w[k]y[i]=k=1∑K​x[i+r⋅k]w[k]

参数含义:

  • y:输出信号
  • x:输入信号
  • w:卷积模板
  • K:滤波器长度
  • r:输入信号的采样间隔

二维上的空洞卷积,如下所示:

空洞卷积有两种实现方式:

  • 方式一:先下采样输入特征图,使得特征图变为原来的 1 / 2,隔行去采样最后产生 r2r^2r2 个子特征图,然后正常卷积,最后插值返回与输入大小相等的特征图
  • 方式二:先对卷积核上采样,将卷积核参数之间插入 ( r - 1 ) 个 0
    • 例如 K 大小的卷积核上采样之后大小为 k + ( k - 1 ) ( r - 1 )

更详细的内容可以参考我的另一篇blog:SS【1】:转置卷积与膨胀卷积

2.3. ASPP

尝试的两种在多尺度上进行分割的方案:

  • 通过 resize 多尺度输入图片,取对象像素点位置最大的响应结果为最终结果
  • 受spatial pyramid pooling (SPP) 启发,得到 ASPP 结构

ASPP 具体结构如下所示:

文中提出了 2 组感受野的尺寸:

  • ASPP-S: r = {2, 4, 8, 12}
  • ASPP-L: r = {6, 12, 18, 24}
    • 需要注意的是,在 DeepLabv1 中,我们堆叠使用空洞卷积层,该情况下堆叠空洞卷积层的空洞系数需要满足对应的条件(如:各空洞卷积层的空洞系数的最大公约数为1,具体信息请参考我的另一篇blog:SS-Model【2】:DeepLabv1)
    • 此处所使用的一组空洞卷积层并不是堆叠使用,只是每次使用一组并将对应的结果融合,所以无需满足特定的条件

将 ASPP 添加到 backbone 为 VGG16 的网络结构中:

2.4. CRF

对于每个像素位置 iii 具有隐变量 xix_ixi​ (这里隐变量就是像素的真实类别标签,如果预测结果有21类,则 i∈1,2,..,21i \in 1, 2, .. ,21i∈1,2,..,21),还有对应的观测值 yiy_iyi​(即像素点对应的颜色值)。以像素为节点,像素与像素间的关系作为边,构成了一个条件随机场(CRF)。通过观测变量 yiy_iyi​ 来推测像素位置i对应的类别标签xi。条件随机场示意图如下:

比起 DeepLabv1 的 CRF,v2 中的 CRF 修改了能量函数和二元势函数的表达式,给模型带来了一定程度的提升

此处涉及到复杂的数学推导与计算,博主不是很了解,建议大家自行在网上搜索,到了 Deeplabv3 的时候,将不再使用 CRF 了

2.5. Learning rate policy

lr×(1−itermax_iter)powerlr \times (1 - \frac{iter}{max\_iter})^{power}lr×(1−max_iteriter​)power

参数:

  • lr:初始学习率
  • iter:当前训练的“步数”
  • max_iter:整个训练过程所需迭代的“步数”
  • power:超参数,论文中的值为 0.9

总结

视频资料

DeepLabv2 将空洞卷积应用到密集的特征提取,进一步的提出了空洞卷积金字塔池化结构、并将 DCNN 和 CR F融合用于细化分割结果。实验表明,DeepLabv2 在多个数据集上表现优异,有着不错的分割性能。

SS-Model【3】:DeepLabv2相关推荐

  1. CSI笔记【5】:Widar2.0: Passive Human Tracking with a Single Wi-Fi Link论文阅读

    CSI笔记[5]:Widar2.0: Passive Human Tracking with a Single Wi-Fi Link论文笔记 前言 Abstract 1 INTRODUCTION 2 ...

  2. CSI笔记【6】:Guaranteeing spoof-resilient multi-robot networks论文阅读

    CSI笔记[6]:Guaranteeing spoof-resilient multi-robot networks论文阅读 Abstract 1 Introduction 1.1 Contribut ...

  3. 【SE】:Java异常、由浅入深、由原理入面试题

    Java异常架构与关键字 异常处理机制 捕获异常:try-catch-finally try-catch的使用规则: try-catch-finally中finally的使用: 声明异常:throws ...

  4. CV-Model【8】:ConvNeXt

    文章目录 前言 1. Abstract & Introduction 1.1. Abstract 1.2. Introduction 2. Modernizing a ConvNet: a R ...

  5. CV-Model【6】:Vision Transformer

    系列文章目录 Transformer 系列网络(一): CV-Model[5]:Transformer Transformer 系列网络(二): CV-Model[6]:Vision Transfor ...

  6. CV-Model【5】:Transformer

    系列文章目录 Transformer 系列网络(一): CV-Model[5]:Transformer Transformer 系列网络(二): CV-Model[6]:Vision Transfor ...

  7. MS-Train【2】:nnFormer

    文章目录 前言 1. 安装 2. 训练与测试 2.1. 数据处理 2.1.1. 整理数据路径 2.1.2. 设置 nnFormer 读取文件的路径 2.1.3. 数据集预处理 2.2. 训练 2.2. ...

  8. OD-Model【2】:Fast R-CNN

    系列文章目录 目标检测之RCNN: OD-Model[1]:R-CNN 目标检测之Fast RCNN: OD-Model[2]:Fast R-CNN 目标检测之Faster RCNN: OD-Mode ...

  9. SS-Model【6】:U2-Net

    系列文章目录 U-Net语义分割系列(一): SS-Model[5]:U-Net U-Net语义分割系列(二): SS-Model[6]:U2-Net 文章目录 系列文章目录 前言 1. Abstra ...

最新文章

  1. 神经网络学习到的是什么?(Python)
  2. C# 学习笔记(18)操作SQL Server 中
  3. c语言while可以改为when,控制流:if、when、for、while
  4. 还贷的那些事I——还贷的基本概念
  5. 分析 C# 2.0 新特性 -- 空类型(Nullable Types)
  6. html 文本框 自动拼接,HTML 中table的结构以及拼接
  7. linux操作系统之竞态条件(时序竞态)
  8. GitHub.com上的那些东西你都知道什么意思吗?
  9. 稀疏矩阵的压缩存储--十字链表(转载)
  10. 数据结构与算法:动态数组(利用万能指针实现任意类型数组操作)
  11. Target runtime com.genuitec.runtime.generic.jee60 is not defined.报错解决
  12. 关于 Openresty 的两三事
  13. 【华为】对标谷歌Dropout专利,华为开源自研算法Disout,多项任务表现更佳
  14. M3U8下载,直播源下载,FLASH下载(四)-m3u8直播源下载工具类
  15. Adobe系列软件-快捷键(PS-Photoshop、PR-Premiere Pro、AE-After Effects)
  16. 3d人体智能测试软件,人体系统女性3Dapp
  17. Python selenium 模拟ip 代理ip地址访问
  18. 谷歌SEO算法更新大全(2010-2021)
  19. mib浏览器_大众汽车的第二代MIB信息娱乐系统图解
  20. Ant下载安装配置及使用

热门文章

  1. 物联网中使用了哪些技术?
  2. MCE公司:你所不知道的 MCE--光反应赖氨酸的高难度合成
  3. 学计算机Java和c语言哪个出路比较好
  4. ASP.NET 上传图片添加文字、Logo水印
  5. Who owns my data(2019/4/16)
  6. 哈尔滨工业大学 计算机系教授,哈尔滨工业大学计算机科学与技术学院导师简介:张田文...
  7. 计算机网络实验报告哈工大_哈工大计算机网络实验报告之五
  8. 可参考的oa系统demo,抠图网站,机票界面,博客开发网站
  9. vue-elemnt-admin npm run dev 运行报错
  10. picpick尺子像素大小精度不够准确_如何使用像素标尺在PicPick