图像分割经典论文调研:DeepLabV3、DeepLabV3+、DenseASPP

简介: 采用大的膨胀系数时,输入图像不能过小,否则卷积后的特征图点与点之间无相关性,即3x3卷积的效果,逐渐和1x1卷积后的效果一样

引言:本文选取了三篇图像分割初期的经典论文:DeepLabV3、DeepLabV3+、DenseASPP,重点关注每篇论文要解决什么问题、针对性提出什么方法、为什么这个方法能解决这个问题


DeepLabV3


文章名:《Rethinking Atrous Convolution for Semantic Image Segmentation》

论文下载:https://arxiv.org/abs/1706.05587v1

官方代码:非官方Pytorch实现代码:pytorch_segmentation/deeplab_v3

解决的问题


1.步距恒定不变的膨胀卷积会削减细节信息,导致网格化现象

2.采用大的膨胀系数时,输入图像不能过小,否则卷积后的特征图点与点之间无相关性,即3x3卷积的效果,逐渐和1x1卷积后的效果一样

0a98142c80d0874314d33101c0636bd3.png

思路和主要过程


1.对于第一个问题,参考HDC的做法,每一次卷积都采用不同倍率的膨胀系数,同时,每一个普通卷积都换成了膨胀卷积

例如:Block1,Block2,Block3,Block4是原始ResNet网络中的层结构,但在Block4中将第一个残差结构里的3x3卷积层以及捷径分支上的1x1卷积层步距stride由2改成了1(即不再进行下采样),并且所有残差结构里3x3的普通卷积层都换成了膨胀卷积层。Block5,Block6和Block7是额外新增的层结构,他们的结构和Block4是一模一样的,即由三个残差结构构成

9e7fa2d1c84dba57d45b5217869e6cd8.png

2.对于第二个问题,改进ASPP模块,比如新增全局池化、双线性插值的方式进行上采样等,注意:每一个Conv和ReLu之间都有一个BN层

这里做个简单的对比:

DeepLabV2_ASPP:

1212.png


DeepLabV3_ASPP:

image-20221101213658920.png


27a53e4219117e133f03f6ba47a0d635.png


主要贡献和启发


  • 使用膨胀卷积时,要采用合适的步距以达到最好的效果

如下图,不同步距对应着不同的mIOU,可见stride=8的时候效果最好

2ec30270035b925b2ef9fea10df70b39.png

  • 池化操作能获取全局信息,但不易获取细节;卷积则反之
  • 没有再使用包括 CRF 在内的其他后处理手段(因为精度已经够高了😂😂😂)


DeepLabV3+

619ffa287db9ba46821320304950e9fe.png

文章名:《Rethinking Atrous Convolution for Semantic Image Segmentation》

论文下载:https://arxiv.org/abs/1802.02611

官方代码:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_segmentation/deeplab_v3

解决的问题


1.DeepLabV3处理后的特征图分辨率仅是原始输入图像的1/4或者1/8,造成了很大的计算量

2.DeepLabV3简单地双线性上采样16倍,无法成功恢复分割对象的细节


思路和主要过程


1.针对第一个问题:如何减少计算量?

。作者依旧采用DeepLabV3的思想,用卷积中的rate代替stride,并把DeepLabV3的输出,作为编码器的输出

。使用带步距(stride)的DW卷积,替代池化操作,这样子不仅能利用DW卷积来减少计算量(参考MobileNet),同时也能控制输出特征的分辨率


2.针对第二个问题,如何恢复细节?

。在网络的开始,提取浅层特征,并输入到解码器中,与后来的深层语义信息共同发挥作用

。采用了Xception模型,并在每个DW-Conv3*3的操作后面,依次新增BN、ReLu


在深层提取的特征具有更强的语义感知能力,但由于池化和步幅卷积,失去了空间细节。

来自浅层的特征更注重细节,如强边缘。在这种情况下,这两种类型的特征的适当合作有可能提高语义分割的性能。

主要贡献和启发


  • 在网络浅层提取细节特征,和深层网络提取的上下文语义信息一起作为解码器输入,构建了一个更简单有效的的编码器-解码器模块
  • 可以通过膨胀卷积控制特征图的分辨率,以控制计算量
  • 采用了Xception模型和DW卷积


DenseASPP


文章名:《DenseASPP for Semantic Segmentation in Street Scenes》

论文下载:https://openaccess.thecvf.com/content_cvpr_2018/papers/Yang_DenseASPP_for_Semantic_CVPR_2018_paper.pdf

官方代码:https://gitcode.net/mirrors/DeepMotionAIResearch/DenseASPP?utm_source=csdn_github_accelerator

解决的问题


自动驾驶场景中输入的图像分辨率高,所以要求更大的感受野,但同时物体的尺度变化大,所以现有的ASPP结构无法解决这两个问题

思路和主要过程


5b215cdc2d1fb2974631b586b8773647.png


设计了一种DASPP(空洞空间卷积池化金字塔)模块

  • 首先经过一个基本主干网络,得到输出,如(1)的浅蓝色部分
  • 将每一次膨胀卷积后的输出,输送到后面的卷积层前
  • 设置合理的膨胀率,即d<=24
  • 最后将(1)和(2)的输出堆叠,最终生成语义图


主要贡献和启发


  • 设计了一个DAPP模块,该模块可以使用多种不同空洞率的膨胀卷积,使网络拥有较大范围的感受野,同时不丢失检测细节的能力


9939f8dd86f094171e7d55576abd9bcf.png


上图中的DenseASPP(粉红色部分)的膨胀率有3,6,12,18,每一层的数字分别表示由对应的膨胀率的卷积组成,长度表示每一层的卷积核尺寸,很明显,每一个堆叠层的空洞卷积的密集连接能够构成更密集的特征金字塔模型,所以DenseASPP的感受野比ASPP的更大

相关文章
|
机器学习/深度学习 编解码 PyTorch
DenseNet的应用--语义分割--(DenseASPP )
转载自:https://blog.csdn.net/u011974639 DenseASPP DenseASPP for Semantic Segmentation in Street Scenes 原文地址:DenseASPP 收录:CVPR2018(IEEE Conference on Computer Vision and Pattern Recognition) 代码: PyTorch 简介: 将DeepLab系列中的ASPP和DenseNet中的密集连接相结合,构成了DenseASPP。
5690 1
|
存储 数据库
Dataset之ADE20k:ADE20k数据集的简介、安装、使用方法之详细攻略
Dataset之ADE20k:ADE20k数据集的简介、安装、使用方法之详细攻略
Dataset之ADE20k:ADE20k数据集的简介、安装、使用方法之详细攻略
|
机器学习/深度学习 人工智能 数据可视化
ShuffleNet:极致轻量化卷积神经网络(分组卷积+通道重排)
我们引入了一个高效计算的CNN结构名字叫做shuffleNet,这个结构被设计用来解决部署算力非常有限的移动设备问题,这个新的结构使用了两个新的操作,pointwise group convolution 和 channel shuffle能够在极大减少计算量的同时保持一定的精度。我们在ImageNet classification和MS COCO目标检测数据集上做实验论证了ShuffleNet和其他的结构相比有着很好的性能。比如,相比于mobilenet,shufflenet在ImageNet 分类任务上有着更低的top-1错误率(错误率是7.8%)需要的计算量为40MFLOPs。在一个AR
3623 0
ShuffleNet:极致轻量化卷积神经网络(分组卷积+通道重排)
|
机器学习/深度学习 计算机视觉 文件存储
【轻量化网络系列(3)】MobileNetV3论文超详细解读(翻译 +学习笔记+代码实现)
【轻量化网络系列(3)】MobileNetV3论文超详细解读(翻译 +学习笔记+代码实现)
6258 0
【轻量化网络系列(3)】MobileNetV3论文超详细解读(翻译 +学习笔记+代码实现)
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
2930 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
机器学习/深度学习
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
本文探讨了深度可分离卷积和空间可分离卷积,通过代码示例展示了它们在降低计算复杂性和提高效率方面的优势。
2958 2
深度学习笔记(十二):普通卷积、深度可分离卷积、空间可分离卷积代码
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
19950 0
|
XML 机器学习/深度学习 数据格式
YOLOv8训练自己的数据集+常用传参说明
YOLOv8训练自己的数据集+常用传参说明
21264 3
|
机器学习/深度学习 编解码 TensorFlow
MobileNetV3架构解析与代码复现
MobileNet模型基于深度可分离卷积,这是一种分解卷积的形式,将标准卷积分解为深度卷积和`1*1`的点卷积。对于MobileNet,深度卷积将单个滤波器应用于每个输入通道,然后,逐点卷积应用`1*1`卷积将输出与深度卷积相结合。
2792 0
MobileNetV3架构解析与代码复现
|
机器学习/深度学习 自然语言处理 大数据
【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解
【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解
7617 2
【Transformer系列(2)】注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制超详细讲解