DeepLab V2

  • 遇到的相关问题以及解决方法
  • 对于DeepLab V1的优化
  • 模型总结
    • 补充的一个小知识点
    • ASPP
    • Learning rate policy
  • 消融实验
  • 实验结果

遇到的相关问题以及解决方法

和DeepLab V1中遇到的问题几乎没有什么太大的差别,在文章的引言部分作者提出了在语义分割中遇到的问题:

  • 分辨率被降低(主要由于下采样stride>1的层导致)
  • 目标的多尺度问题
  • DCNNs的不变性(invariance)会降低定位精度

DeepLab V2对于上述的三个问题提出了自己进一步解决方法:

  • 针对分辨率被降低的问题 : 一般就是将最后的几个Maxpooling层的stride设置成1(如果是通过卷积下采样的,比如resnet,同样将stride设置成1即可),配合使用膨胀卷积。
  • 针对目标多尺度的问题 : 最容易想到的就是将图像缩放到多个尺度分别通过网络进行推理,最后将多个结果进行融合即可。这样做虽然有用但是计算量太大了。为了解决这个问题,DeepLab
    V2 中提出了ASPP模块(atrous spatial pyramid pooling)。
  • 针对DCNNs不变性导致定位精度降低的问题,和DeepLab V1差不多还是通过CRFs解决,不过这里用的是fully connected pairwise CRF,相比V1里的fully connected CRF要更高效点。(在DeepLab V1中添加了CRF对于结果提升了大概4个点,但是在DeepLab V2中只有1个多点,而且在DeepLab V1中也知道使用CRF是非常耗时的)

对于DeepLab V1的优化

  • DeepLab V2首先的改变是将DeepLab V1的backbone从VGG16变成了ResNet(因为换了一个Backbone实验的结果提升了3个点,在后续消融实验会介绍)
  • 提出了一个新的模块ASPP

模型总结

backbone:resnet101
不考虑MSC的情况下如图:

补充的一个小知识点


论文作者通过对于先下采样然后空洞卷积再上采样和直接通过空洞卷积计算,对比了两者的差距。作者的主要是的意思还是为了阐述第一个问题,在图像分辨率降低的同时会造成信息丢失的情况。

ASPP


这个ASPP模块感觉就像是DeepLab V1中LargeFOV的升级版(加入了多尺度的特性)。上图是原论文中介绍ASPP的示意图,就是在backbone输出的Feature Map上并联四个分支,每个分支的第一层都是使用的膨胀卷积,但不同的分支使用的膨胀系数不同(即每个分支的感受野不同,从而具有解决目标多尺度的问题)。

上图有画出更加详细的ASPP结构(这里是针对VGG网络为例的),将Pool5输出的特征层并联4个分支,每个分支分别通过一个3x3的膨胀卷积层,1x1的卷积层,1x1的卷积层(卷积核的个数等于num_classes)。最后将四个分支的结果进行相加融合即可。 如果是以ResNet101做为Backbone的话,每个分支只有一个3x3的膨胀卷积层(没有后边两层的FC),卷积核的个数等于num_classes。


对于ASPP论文给了两种配置,前者的膨胀系数分别为(2,4,8,12),后者是(6,12,18,24)。对比实验结果ASPP-L的效果无论是在添加CRF前还是后都是最好的。

Learning rate policy

在DeepLab V2中训练时采用的学习率策略叫poly,相比普通的step策略(即每间隔一定步数就降低一次学习率)效果要更好。文中说最高提升了3.63个点。poly学习率变化策略公式如下:


其中 lr 为初始学习率,iter 为当前迭代的step数,max_inter 为训练过程中总的迭代步数。

上图为控制不同的poly得到的不同的mean IOU的对比,通过第一行和最后一行发现,如果利用这个策略可以提高3.6个点

消融实验


MSC : 代表是否使用多尺度的输入。讲(0.5,.075,1)(1代表的是原始的大小)然后分别送入网络预测得到score maps,最后融合这三个score maps(对每个位置取三个score maps的最大值)。

Multi-scale inputs: We separately feed to the DCNN images at scale = { 0.5, 0.75, 1 } , fusing their score maps by taking the maximum response across scales for each position separately.

COCO : 是否在COCO数据集上进行预训练。

Models pretrained on MS-COCO

Aug : 代表数据增强,这里就是对输入的图片在0.5到1.5之间随机缩放。

Data augmentation by randomly scaling the input images (from 0.5 to 1.5) during training. In Tab.

接上文说到的更换了Backbone之后提高了3个点

our simplest ResNet-101 based model attains 68.72%, compared to 65.76% of our DeepLab-LargeFOV VGG-16 based variant, both before CRF

实验结果

论文在最后几页提及到跟当前几个比较不错的模型在一些数据集上进行对比,就不一一复制图片进行对比介绍了,就是一个字:好。

推荐视频讲解

DeepLab V2学习笔记相关推荐

  1. DeepLab V3学习笔记

    DeepLab V3 遇到的问题和解决方法 相关工作 DeepLab V3中的两种模型结构 cascaded model ASPP model 相对于DeepLab V2的优化 Multi-grid ...

  2. ant design pro V2 学习笔记

    该笔记分为两部分,前面部分为官方文档介绍,后面为实际项目改造的历程 本文档不定时更新,你想要的在实战部分 如果你对react.dva等一些概念不是很清晰,建议先看以下概念: react:https:/ ...

  3. DeepLab V1学习笔记

    DeepLab V1 摘要 相关的工作 遇到的问题和解决的方法 信号下采样 空间不变性(spatial insensitivity/invariance) 论文的优点(贡献) 网络的模型 空洞卷积 C ...

  4. ShuffleNet V2学习笔记

    paper:<ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design> 导语 神经网络架构的设计 ...

  5. NET 应用架构指导 V2 学习笔记(二十) 业务组件设计指导

    前言 业务组件的设计是非常重要的工作,如果你没有正确的设计业务组件的话,结果很可能就是代码难以维护和扩展.在设计和实现应用的时候,有多种类型的业务组件.包括业务逻辑组件,业务实体,业务流程或者是工作流 ...

  6. NET 应用架构指导 V2 学习笔记(十九) 表现层组件设计指导

    5 决定数据绑定的需求 数据绑定在应用中,提供了一种在用户界面的控件和数据或者逻辑组件建立连接的方式.数据绑定允许你将数据库的数据,或者是其他结构的数据进行显示或者和他们进行交互.数据绑定是绑定目标( ...

  7. 台大李宏毅Machine Learning 2017Fall学习笔记 (3)Bias and Variance (v2)

    台大李宏毅Machine Learning 2017Fall学习笔记 (3)Bias and Variance (v2) 这节课主要讲解了训练模型的误差来源及相应的解决方案. 模型的误差主要来源于数据 ...

  8. 【动手学深度学习v2李沐】学习笔记07:权重衰退、正则化

    前文回顾:模型选择.欠拟合和过拟合 文章目录 一.权重衰退 1.1 硬性限制 1.2 柔性限制(正则化) 1.3 参数更新法则 1.4 总结 二.代码实现 2.1 从零开始实现 2.1.1 人工数据集 ...

  9. 【学习笔记】语义分割综述

    语义分割就是图像分割,是图像像素级的分类,即给图像的每一个像素点分类.与之临近的一个概念叫实例分割,实例分割就是语义分割+目标检测.语义分割只能分割出所有同类的像素,目标检测把不同的个体分开就行了,如 ...

最新文章

  1. 《零基础》MySQL GROUP BY 语句(十九)
  2. 老式计算机显示器是什么类型的,电脑显示器面板类型有哪些,显示器什么面板好?...
  3. Latex 导数相关符号
  4. mysql的字段长度_【mysql】字段类型和长度的解释
  5. 快速学懂pandas
  6. java调用自身_Java有趣的自己调用自己
  7. System Repair Engineer (SREng)介绍
  8. 闪讯(NetKeeper)——OpenWrt安装闪讯(NetKeeper)插件(校园网电信宽带闪讯(NetKeeper)认证解决方案)
  9. 3dmax最基础的建模教程,初学者福利
  10. matlab求解常微分方程(组)---dsolve、ode系列函数详解(含例程)
  11. 谷歌浏览器Chrome播放rtsp实时视频,并抓图、录像、回放、倍速等
  12. 基于地理位置的Android AR app项目简述
  13. 在Mac上阻止相机和麦克风的方法
  14. stm32语音识别文字显示_『免费开源』基于STM32的之语音识别
  15. 小学生5年级计算机书,小学五年级作文:眼镜、电脑、书
  16. “成本刺客”防不胜防,如何应用亚马逊云科技驾驭云成本
  17. UE4使用蓝图实现自动双开关门
  18. C++编写库文件以及调用
  19. PacBio相关知识
  20. 展览活动项目管理的五个要素

热门文章

  1. 今晚QQ上线N次,次次目的不同
  2. Vector的线程安全问题
  3. SSL加密3389远程桌面连接
  4. 判断矩阵是否为单位矩阵
  5. QOS 优先级 PHB,EXP,浅解
  6. C++ Win32 遍历窗口
  7. linux常见问题解决方案总结(三)Linux下查看IP
  8. 南非世界杯 小组赛 阿根廷vs尼日利亚
  9. win32两种获取进程句柄的方式
  10. 傲游浏览器存在可信任路径漏洞