【论文笔记】DeepLab系列

这篇具有很好参考价值的文章主要介绍了【论文笔记】DeepLab系列。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【深度学习】总目录

DeepLab系列是谷歌团队提出的一系列语义分割算法。DeepLab v1于2014年推出,随后2017到2018年又相继推出了DeepLab v2,DeepLab v3以及DeepLab v3+。

  • DeepLab v1《Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs》两个创新点是空洞卷积(Atros Convolution)和基于全连接条件随机场(Fully Connected CRF),通过两个模块级联,在PASCAL语义分割挑战中获得了第一,准确率超过第二名7.2%
  • DeepLab v2《DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs》,提出了空洞空间金字塔池化(Atros Spatial Pyramid Pooling,ASPP)。
  • DeepLab v3《Rethinking Atrous Convolution for Semantic Image Segmentation》,重新讨论了空洞卷积的使用,改进了ASPP结构,并把CRFs后处理给移除掉了
  • DeepLab v3+《Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation》,仿照U-Net的结构添加了一个向上采样的解码器模块,用来优化边缘的精度。

语义分割面临的挑战

  • 信号下采样连续的池化或下采样操作会导致图像的分辨率大幅度下降,从而损失了原始信息,且在上采样过程中难以恢复。
  • 空间不变性以获取图像中物体为核心的决策,必然需要空间不变性/不敏感,固有地限制了模型的空间精度。换句话说,对于同一张图片进行空间变换(如平移、旋转),其图片分类结果是不变的。但对于图像分割,对一张图片进行空间变换后,其结果是改变的。
  • 多尺度特征将不同尺度的特征图送入网络做融合,对于整个网络性能的提升很大,但是由于图像金字塔的多尺度输入,造成计算时保存了大量的梯度,从而导致对硬件的要求很高。

DeepLab V1

亮点:空洞卷积

空洞卷积也叫扩张卷积或者膨胀卷积,简单来说就是在卷积核元素之间加入一些空格(零)来扩大卷积核的过程。相同kernel size的空洞卷积和标准卷积的权重shape是一样的,二者的差异在于空洞卷积改变了输入的采样方法, 标准卷积是连续地、不间隔地采样,而空洞卷积是跳跃式地采样,跳跃的步长就是dilation(r)。当r=1时,空洞卷积和普通卷积一样。当r=2时,如下图所示,空洞卷积的感受野大小为7x7,r=3时,感受野大小为15x15。

【论文笔记】DeepLab系列

亮点:CRF(Conditional Random Field)

输入图像经过多层卷积下采样后会导致分辨率大幅下降,这使得像素的位置信息丢失,导致还原图像尺寸的过程pixel的定位有偏失,体现为pixel-wise的最终预测结果不准确,这最主要表现在物体的边缘位置。为了解决这个问题作者采用了fully-connected CRF方法,将网络的输出作为CRF的输入,利用不同位置的像素类别信息关系,通过建立概率图的方式,有效缓解了边缘定位不准确的问题。在DeepLab V3中移除了。

【论文笔记】DeepLab系列

网络结构

【论文笔记】DeepLab系列

(1)使用VGG16作为backbone,和FCN网络一样将全连接层的权重转成了卷积层的权重,构成全卷积网络。第一个全连接层的改空洞卷积,通道数为1024,卷积核大小为3×3(FCN中是7×7),dilate rate设为12时(LargeFOV)效果比设为4时好。对于第二个全连接层(FC2)卷积核个数也由4096采样成1024。

(2)Maxpool略有不同,VGG论文中是kernel=2,stride=2,但在DeepLabV1中是kernel=3,stride=2,padding=1

(3)skip subsampling:将最后两个Maxpool层的stride全部设置成1,不再下采样。并且最后三个3×3卷积采用了空洞卷积,系数r=2

实验

下表为在PASCAL VOC2012验证集上,改变第一个全连接层kernel size和空洞卷积rate后网络的性能和训练速度。

【论文笔记】DeepLab系列

  • DeepLab-CRF-7x7:直接将FC1按照FCN论文中的方法转换成7x7大小的卷积层,并且膨胀因子r=4(receptive field=224)。
  • DeepLab-CRF:将7x7下采样到4x4大小的卷积层,同样膨胀因子r=4(receptive field=128),可以看到参数减半,训练速度翻倍,但mean IOU下降了约4个点。
  • DeepLab-CRF-4x4:在DeepLab-CRF的基础上把膨胀因子r改成了8(receptive field=224),mean IOU又提升了回去了。
  • DeepLab-CRF-LargeFOV:将7x7下采样到3x3大小的卷积层,膨胀因子r=12(receptive field=224),相比DeepLab-CRF-7x7,参数减少了6倍,训练速度提升了3倍多,mean IOU不变

DeepLab V2

亮点: ASPP(Atrous Spatial Pyramid Pooling)

 

【论文笔记】DeepLab系列

上图(a)为DeepLab-LargeFOV主干网络VGG16最后的全连接改卷积的部分,图(b)将Pool5输出的特征层并联4个分支,每个分支分别通过一个3x3的空洞卷积层,1x1的卷积层,1x1的卷积层(卷积核的个数等于num_classes)。最后将四个分支的结果进行Add融合即可。 如右图 所示,为了对中心像素(橙色)进行分类,ASPP通过使用具有不同rate的多个空洞卷积来获得多尺度特征。不同颜色的框表示中心像素在不同rate下的感受野。如果是以ResNet101做为Backbone的话,每个分支只有一个3x3的膨胀卷积层,卷积核的个数等于num_classes。

在论文中有给出两个ASPP的配置,ASPP-S(四个分支膨胀系数分别为2,4,8,12)和ASPP-L(四个分支膨胀系数分别为6,12,18,24),下表是对比LargeFOV、ASPP-S以及ASPP-L的效果。这里只看CRF之前的(before CRF)对比,ASPP-L优于ASPP-S优于LargeFOV

【论文笔记】DeepLab系列

网络结构

【论文笔记】DeepLab系列

(1)以ResNet101作为backbone,将Layer3中的Bottleneck1的3×3卷积(stride=2)的stride设置为1,即不在进行下采样,同时3x3卷积层全部采用空洞卷积,系数为2。在Layer4中也是一样,取消了下采样,所有的3x3卷积层全部采用空洞卷积,系数为4。

(2)在backbone输出的Feature Map上并联四个分支,每个分支的第一层都是使用的空洞卷积,但不同的分支使用的膨胀系数不同(即每个分支的感受野不同,从而具有解决目标多尺度的问题)。当以ResNet101为Backbone时,每个分支只有一个3x3的空洞卷积层,卷积核的个数等于num_classes。

实验

【论文笔记】DeepLab系列

  • MSC表示多尺度输入,即先将图像缩放到0.5、0.7和1.0三个尺度,然后分别送入网络预测得到score maps,最后融合这三个score maps(对每个位置取三个score maps的最大值)。
  • COCO就代表在COCO数据集上进行预训练。
  • Aug代表数据增强,这里就是对输入的图片在0.5到1.5之间随机缩放。

使用ResNet-101取代VGG16作为backbone后,mIOU由65.76%提升到68.72。MSC提升了2.55%,COCO预训练提升了2.01%,数据增强提升了1.6%,LargeFOV(3×3空洞卷积,rate=12)提升了0.6%,池化金字塔提升了0.8%,利用CRF后处理后达到了77.69%。

DeepLab V3

文中有给出两个模型,分别是cascaded modelASPP model,在cascaded model中是没有使用ASPP模块的,在ASPP model中是没有使用cascaded blocks模块的。作者说ASPP model比cascaded model略好点。包括在Github上开源的一些代码,大部分也是用的ASPP model。

Cascaded model

【论文笔记】DeepLab系列

上图中,Block1,Block2,Block3,Block4是原始ResNet网络中的层结构,后面又增加了额外的Block5,Block6,Block7,结构和Block4一样,即由三个残差结构构成。如图(a)中所示,这么设计的原因是引入的stride使在更深的block中捕获long range information变得容易。比如图(a)中整个图像特征可以总结在最后一个小分辨率特征图中。但是连续的stride削弱细节信息,因此加入空洞卷积,并且根据output_stride调整空洞卷积的rate。图(b)是论文中提出的cascaded model,但在Block4中将第一个残差结构里的3x3卷积层以及捷径分支上的1x1卷积层步距stride由2改成了1(即不再进行下采样),并且所有残差结构里3x3的普通卷积层都换成了空洞卷积层

从下表可以看出,随着添加更多的block,模型性能会提高,但提高的幅度会变小。增加block7使得ResNet-50略微降低了性能,但仍提高了ResNet-101的性能。

【论文笔记】DeepLab系列

下表为以ResNet-50为backbone使用7个block时不同output_stride下的mIOU。当output_stride增大且应用空洞卷积时,mIOU从20.29%提升到75.18%,说明在语义分割中使用更多block级联时空洞卷积是很有必要的

【论文笔记】DeepLab系列

上面blocks中真正采用的膨胀系数应该是图中的rate乘上这里的Multi-Grid参数。下表是以cascaded model(ResNet101作为Backbone为例)为实验对象,研究采用不同数量的cascaded blocks模型以及cascaded blocks采用不同的Multi-Grid参数的效果。通过实验发现,当采用三个额外的Block时(即额外添加Block5,Block6和Block7)将Multi-Grid设置成(1, 2, 1)效果最好。

【论文笔记】DeepLab系列

 

Parallel model(ASPP)

虽然论文大篇幅的内容都在讲cascaded model以及对应的实验,但实际使用的最多的还是ASPP model,ASPP model结构如下图所示:

【论文笔记】DeepLab系列

这里的ASPP结构有5个并行分支,分别是一个1x1的卷积层,三个3x3的膨胀卷积层,以及一个全局平均池化层(后面还跟有一个1x1的卷积层,然后通过双线性插值的方法还原回输入的W和H)。然后通过Concat的方式将这5个分支的输出进行拼接(沿着channels方向),最后在通过一个1x1的卷积层进一步融合信息

在并行分支加入image-level feature是因为作者为了解决空洞卷积带来的一个问题:

【论文笔记】DeepLab系列

随着空洞卷积的rate增大,卷积核有效参数越来越少。比如标准卷积conv3×3,rate=1,只有在feature map最外面一圈会有卷积核参数超出边界而无效,当rate变大,越来越多外圈的位置是有卷积核参数失效的,用极限思想思考一下,如果rate=size(feature map),那么每次卷积都是卷核中心对应的feature map像素点被计算了,卷积核参数也只有中心那个点没有失效,退化成了1×1卷积核

为了解决这一问题,并且包含全局上下文信息,作者在并联结构中加入image-level feature。做法是先对输入的feature map全局平均池化(global average pooling),后接256通道的1×1卷积层,BN层,最后用户双线性插值的方法上采样到目标大小,即与ASPP输出的feature map尺寸相同。

下表是ASPP模型在output_stride=16的情况下,multi-grid和image-level features的效果。首先,在三个3×3卷积的并行分支中采用rate=(6,12,18),然后block4中使用三种不同的multi-grid,可以看出multi-grid=(1,2,4)效果最好。多加一个并行分支rate=24会使得mIOU下降0.12%,使用image-level features可以提升0.63%

【论文笔记】DeepLab系列

两个模型比

【论文笔记】DeepLab系列

  • MG代表Multi-Grid,刚刚在上面也有说在ASPP model中采用MG(1, 2, 4)是最好的。
  • ASPP三个3×3的空洞卷积rate分别为6,12,18
  • Image Pooling代表在ASPP中加入全局平均池化层分支。
  • OS代表output_stride,在训练时将output_stride设置成16,验证时将output_stride设置成8效果会更好。
  • MS代表多尺度,和DeepLabV2中类似。不过在DeepLab V3中采用的尺度更多scales = {0.5, 0.75, 1.0, 1.25, 1.5, 1.75}。
  • Flip代表增加一个水平翻转后的图像输入。
  • COCO代表在COCO数据集上进行预训练。挑选COCO数据集中有VOC定义的类别的图,将VOC中不包含的类别当作背景类。

ASPP模型的效果(79.77%)好于Cascaded模型(79.35%),所以deeplab v3一般也是指ASPP的结构。

DeepLab V3+

空间金字塔池化模块网络能够通过不同空洞率的、具有不同感受野的空洞卷积或池化操作,编码多尺度上下文信息,而编码器-解码器结构可以通过逐步恢复空间信息来捕获更清晰的目标边界。deeplab v3+结合了这两种方法的优点。添加了解码器模块细化分割结果,特别是沿着对象边界。同时进一步探索了Xception模型,并将深度可分离卷积应用于空间空间金字塔池化和解码器模块,从而得到一个更快更强的编解码器网络。

空洞可分离卷积(atrous seperable convolution)

 

【论文笔记】DeepLab系列

上图中(a)是深度卷积,单独的为每个channel进行卷积操作;(b)是点卷积用来融合channel间的信息。(a)和(b)就组成了深度可分离卷积。那如果将(a)中的标准卷积操作替换为空洞卷积,如图(c)所示就实现了带有空洞卷积的深度可分离卷积,论文称之为空洞可分离卷积(atrous seperable convolution)。论文应用空洞可分离卷积极大的减少所提出模型的计算复杂度与此同时维持了与原模型相似或者更好的模型效果。

Encoder

将Deeplab v3作为编码器模块,输出特征图包含256个通道数。DeepLab v3+以Xception作为骨干网络,并对其进行了微调(如下图所示):

  • 更深的Xception结构,原始middle flow迭代8次,微调后迭代16
  • 所有max pooling结构被stride=2的深度可分离卷积替代
  • 每个3x3的depthwise convolution后都跟BNRelu 

【论文笔记】DeepLab系列

Decoder

DeepLabv3直接将特征上采样16倍,无法成功地恢复目标分割的细节。因此,作者提出了一个简单而有效的解码器模块,如下图红色框内。编码器特征首先提前上采样4倍,然后与网络主干中具有相同空间分辨率的相应低级特征连接。同时应用一个1×1的卷积调整通道数(256个),在连接之后,应用几个3×3卷积来细化特征,然后使用双线性插值,将特征上采样4倍。

【论文笔记】DeepLab系列

评估decoder中1×1卷积的作用

使用resnet-101,Conv2的特征图和256个3×3卷积,分别将low level features减少到8,16,32,48,64通道数,其中48通道效果更好

【论文笔记】DeepLab系列

设计3×3卷积结构

concat特征图之后,利用2个256通道的3×3卷积效果比用1个和3个要好,减少通道数或者减小kernel size都会使得效果变差。下面的Conv3是指,将特征图上采样两倍和Conv3特征图concat,再与Conv2特征图concat。

【论文笔记】DeepLab系列

效果

当使用Xception作为DeepLabv3+的backbone时,为了比较精度和速度的变化,观察了mIOU以及Multiply-Adds。得益于空洞卷积,模型在训练时能够在不同分辨率下获取特征以及在模型验证时使用单一模型。

【论文笔记】DeepLab系列

  • OS代表output_stride,在训练时将output_stride设置成16,验证时将output_stride设置成8效果会更好。
  • Decoder表示是否使用本文提出的decoder模块
  • MS代表多尺度,和DeepLabV2中类似。不过在DeepLab V3中采用的尺度更多scales = {0.5, 0.75, 1.0, 1.25, 1.5, 1.75}。
  • Flip代表增加一个水平翻转后的图像输入。
  • SC表示是否采用深度可分离卷积在ASPP以及decoder模块中
  • COCO代表在COCO数据集上进行预训练。挑选COCO数据集中有VOC定义的类别的图,将VOC中不包含的类别当作背景类。
  • JFT表示模型是否在JFT上预训练

以resnet-101为骨干网络时mIOU为80.57%,相同策略下以Xception为骨干网络时为81.63%,Decoder提升了0.29%

 

 

参考

1. DeepLabV3网络简析

2. DeepLab系列(v1,v2,v3,v3+)总结

3. 我对DeepLab V3的理解(基于V1和V2)

4. DeepLab系列

5. DeepLabv3+文章来源地址https://www.toymoban.com/news/detail-452927.html

到了这里,关于【论文笔记】DeepLab系列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【论文笔记】基于深度学习的视觉检测及抓取方法

    工作 内容 效果 提升复杂环境中目标检测的效果 采用通道注意力机制对 YOLO-V3 进行改进,增强网络对图像特征提取的能力 平均识别率较改进前增加 0.32% 针对目前姿态估计角度存在 离散性 的问题 提出一种基于 VGG-16 主干网络嵌入最小面积外接矩形(MABR)算法,进行抓取位姿估

    2023年04月21日
    浏览(46)
  • 论文笔记: 深度学习速度模型构建的层次迁移学习方法 (未完)

    摘要 : 分享对论文的理解, 原文见 Jérome Simon, Gabriel Fabien-Ouellet, Erwan Gloaguen, and Ishan Khurjekar, Hierarchical transfer learning for deep learning velocity model building, Geophysics, 2003, R79–R93. 这次的层次迁移应该指从 1D 到 2D 再到 3D. 深度学习具有使用最少的资源 (这里应该是计算资源, 特别是预测

    2024年02月10日
    浏览(45)
  • 【唐宇迪 深度学习-3D点云实战系列】学习笔记

     课程目录如下: https://download.csdn.net/learn/35500/529919 3D点云领域都关注了哪些方向? 课程核心系列-PointNet系列 :点云数据如何处理、点云数据如何进行特征提取。 后续无论是分类、分割、补全、配准检测, 首先都要先对点云数据进行特征提取。 PointNet系列就是重点系列。

    2023年04月25日
    浏览(40)
  • [深度学习论文笔记]UNETR: Transformers for 3D Medical Image Segmentation

    UNETR: Transformers for 3D Medical Image Segmentation UNETR:用于三维医学图像分割的Transformer Published: Oct 2021 Published in: IEEE Winter Conference on Applications of Computer Vision (WACV) 2022 论文:https://arxiv.org/abs/2103.10504 代码:https://monai.io/research/unetr 摘要:   过去十年以来,具有收缩路径和扩展路径

    2024年01月24日
    浏览(56)
  • 【YOLO系列】YOLOv3论文超详细解读(翻译 +学习笔记)

    YOLOv3(《Yolov3:An incremental improvement》)是Joseph Redmon大佬关于YOLO系列的最后一篇,由于他反对将YOLO用于军事和隐私窥探,2020年2月宣布停止更新YOLO。  YOLOv3在YOLOv2的基础上改良了网络的主干,利用多尺度特征图进行检测,改进了多个独立的Logistic regression分类器来取代softmax来

    2024年02月07日
    浏览(63)
  • 【YOLO系列】YOLOv7论文超详细解读(翻译 +学习笔记)

    终于读到传说中的YOLOv7了~≖‿≖✧ 这篇是在美团的v6出来不到一个月就高调登场,作者还是我们熟悉的AB大神(对,就是v4那个),读起来又是“熟悉”的感觉(贯穿了我的整个五一假期(╯-_-)╯╧╧)。 其实关于YOLOv7的网络结构还有很多细节值得深入研究,以及代码

    2024年02月02日
    浏览(75)
  • 【YOLO系列】YOLOv1论文超详细解读(翻译 +学习笔记)

    从这篇开始,我们将进入YOLO的学习。YOLO是目前比较流行的目标检测算法,速度快且结构简单,其他的目标检测算法如RCNN系列,以后有时间的话再介绍。 本文主要介绍的是YOLOV1,这是由以Joseph Redmon为首的大佬们于2015年提出的一种新的目标检测算法。它与之前的目标检测算法

    2024年02月04日
    浏览(61)
  • 【YOLO系列】YOLOv2论文超详细解读(翻译 +学习笔记)

    时隔一年,YOLOv2隆重登场,新的YOLO版本论文叫《YOLO9000: Better, Faster, Stronger》,作者 Joseph Redmon 和 Ali Farhadi 在 YOLOv1 的基础上,进行了大量改进,提出了 YOLOv2 和 YOLO9000,重点解决YOLOv1召回率和定位精度方面的不足。 论文原文:[1612.08242] YOLO9000: Better, Faster, Stronger (arxiv.org) 项

    2023年04月08日
    浏览(54)
  • 《黑马程序员2023新版黑马程序员大数据入门到实战教程,大数据开发必会的Hadoop、Hive,云平台实战项目》学习笔记总目录

    本文是对《黑马程序员新版大数据入门到实战教程》所有知识点的笔记进行总结分类。 学习视频:黑马程序员新版大数据 学习时总结的学习笔记以及思维导图会在后续更新,请敬请期待。 前言:配置三台虚拟机,为集群做准备(该篇章请到原视频进行观看,不在文章内详细

    2024年02月03日
    浏览(70)
  • STM32 从入门到精通系列讲解 - 总目录

    👦 作者介绍:Bazinga bingo,专注C语言应用硬核干货分享,潜心修炼,虚心学习,立志做嵌入式相关赛道的Top。 📕 本文收录于《STM32开发》专栏,包含STM32内部模块介绍、片内资源开发、不同通信总线应用、屏幕显示等功能性开发。每篇文章包含相关知识点、代码编程详解以

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包