热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深度学习语义分割(三)DeepLab(1,2,3,3+,autodeeplab)系列论文解读

文章目录1.引言2.DeepLab1&22.1DeepLabv1详解2.2DeepLabv2详解3.DeepLab33.1网络结构3.2实验结果4.DeepLab34.1网络结构4


文章目录

  • 1.引言
  • 2.DeepLab1&2
    • 2.1 DeepLabv1详解
    • 2.2 DeepLabv2详解
  • 3.DeepLab3
    • 3.1 网络结构
    • 3.2 实验结果
  • 4.DeepLab3+
    • 4.1 网络结构
    • 4.2 实验结果:
  • 5. AutoDeepLab
    • 5.1 架构搜索空间
    • 5.2 方法
    • 5.3 优化
    • 5.4 实验结果


1.引言

在语义分割领域,DeepLab系列算法占据了半壁江山,而DeepLabv3+是常被提及的state-of-the-art。最近同样出自谷歌的Auto-DeepLab问世,使用改进的神经架构搜索技术自动搜索图像语义分割的网络架构。本文按照时间顺序依次解读DeepLab系列论文。


2.DeepLab1&2

最早deeplab版本,为之后后面的v3和v3+奠定了基础,但其结构已经不是最先进的,但是为了完整性和连贯性,所以大概介绍这两个系列。


  1. 论文地址:DeepLab1,DeepLab2
  2. 代码地址:DeepLab1,DeepLab2

2.1 DeepLabv1详解

DeepLabv1是在VGG16的基础上做了修改:


  1. VGG16的全连接层转为卷积
  2. 最后的两个池化层去掉了下采样
  3. 后续卷积层的卷积核改为了空洞卷积
  4. 在ImageNet上预训练的VGG16权重上做finetune

利用空洞卷积进行特征提取

在这里插入图片描述
优点:
在DCNN中应用了空洞卷积密集的提取特征,对于普通利用pooling层进行缩减图像尺寸的方法:输出步幅是16,需要上采样16倍得到预测结果,结果是比较模糊的;而利用空洞卷积方法:空洞卷积采样率rate=2,保持步幅为8,只需要上采样8倍,结果清晰了很多。

利用CRF结构恢复边界信息

在这里插入图片描述
DCNN存在分类和定位之间的折中问题,预测到目标的大概位置但比较模糊,利用马尔可夫随机场进行优化边界。

实验结果:

在这里插入图片描述


2.2 DeepLabv2详解


  • 用多尺度获得更好的分割效果(使用ASPP)
  • 基础层由VGG16转为ResNet
  • 使用不同的学习策略(poly)

提出ASSP
在多尺度上存储目标;在给定的特征层上使用不同采样率的卷积有效的重采样
;使用不同采样率的空洞卷积并行采样。
在这里插入图片描述
ASPP中在给定的Input Feature Map上以r=(6,12,18,24),r=(6,12,18,24)的3×33×3空洞卷积并行采样。
融合特征

在这里插入图片描述
训练
v2用Resnet 101作为backbone,有一定提升,v1和v2都用了CRF。关于CRF的不再赘述了,其实后面的版本都没有用这个了。训练用的poly策略。

实验结果:
在这里插入图片描述


3.DeepLab3


  • 论文地址:DeepLab3
  • 代码地址:github
  • 创新:提出了更通用的框架,适用于任何网络;复制了ResNet最后的block,并级联起来;在ASPP中使用BN层,没使用CRF

3.1 网络结构

语义分割网络结构概述
在这里插入图片描述
(a)图像金字塔。输入图像进行尺度变换得到不同分辨率input,然后将所有尺度的图像放入CNN中得到不同尺度的分割结果
(b)编码-解码。类似FCN和UNet等结构
(c)本文提出的串联结构。
(d)本文提出的Deeplab v3结构。最后两个结构右边其实还需要8×/16×的upsample,在deeplab v3+中有所体现。
ASSP改进
针对ASPP,作者设计了一种“纵式”的结构,如下图:
在这里插入图片描述
改进后的aspp长下图那个样子,多了个1x1的conv和global avg pool。
(1)1x1卷积,论文中3.3第一段解释的有点意思,当rate=feature map size时,dilation conv就变成了1x1 conv,所以这个1x1conv相当于rate很大的空洞卷积。(2)此外引入了全局池化这个branch,这个思想是来源于PSPnet,简言之就是spp在分割上的应用,多尺度pooling。(3)每个branch后面都没有relu,其实有没有BN,BN是线性操作,可以合并到conv里面,论文的Sec 4.1 说明了V3的所有层是用了BN的,BN可以加速训练还有弱正则,所以一般都会用。
串联结构
对RestNet进行改进,利用空洞卷积进行扩大视野的操作,提出了串联结构,经过实验发现有较高的精度,但还是不及改进的ASSP
在这里插入图片描述


3.2 实验结果

最好的结果包含:ASPP输出步幅为8,翻转和随机缩放的数据增强

在这里插入图片描述

在这里插入图片描述


4.DeepLab3+


  • 论文地址:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
  • 代码地址:github
  • 创新:设计基于v3的decode module;用modify xception作为backbone。

4.1 网络结构

网络结构概述
在这里插入图片描述
(a)DeepLabv3的纵式结构
(b)是常见的编码—解码结构
(c)是本文提出的基于deeplab v3的encode-decode结构
改进的Xception网络
在这里插入图片描述
具体结构参照下图。和原来的xception不一样的地方:(1)Middle flow重复了16次,ori xception是8次,也就是用了more layers;(2)pooling均换为了dw+pw+s=2;(3)在所有的dw层后面加上了BN和relu
整体网络结构

在这里插入图片描述


4.2 实验结果:

在这里插入图片描述


5. AutoDeepLab


  • 论文地址:Auto-DeepLab: HierarchicalNeuralArchitectureSearchforSemanticImageSegmentation

  • 代码地址(非官方):github

  • 特点:1. 当然是搜索到了优秀的架构,语义分割计算量小精度依然优秀;2. 搜索计算量小,是少数平民能训练得起的神经架构搜索算法;

  • 参考博客:机器之心
    在这里插入图片描述
    它可以在两级分层架构上进行有效搜索,在单个GPU上只需3天。


5.1 架构搜索空间

两级分层结构搜索空间。 对于内部单元级,复用前人中采用的方法,从而与以前的工作保持一致。对于外部网络级,基于对许多流行设计的观察和总结提出了一种新颖的搜索空间。
单元级搜索空间
我们将一个小的全卷积模块定义为一个单元(cell),通常它会在整个神经网络中重复很多次。更具体地说,一个单元是由BBB个块(block)组成的有向无环图。每个块是双分支结构,将两个输入张量(tensor)映射到一个输出张量。OOO是输入张量的层类型的选择。
可能的层类型OOO的集合由以下8个操作(operator)组成,这些操作在现代CNN中都很普遍:
(1)3 × 3的深度分离卷积;(2)5 × 5的深度分离卷积;(3)3 × 3的孔洞卷积 ,孔洞率为2;(4)5 × 5的孔洞卷积 ,孔洞率为2;(5)3 × 3的平均池化;(6)3 × 3的最大池化;(7)跳跃连接;(8)无连接
网络级搜索空间
在由图像分类NAS框架中,一旦找到单元结构,整个网络就使用预定义的模式构建。因此,网络级不是架构搜索的一部分,因此其搜索空间从未被提出或设计过。
这种预定义的模式简单明了:通过插入“缩小单元”(将空间分辨率除以2并将滤波器数乘以2的单元),将许多“正常单元”(保持特征张量空间分辨率的单元)平等的分隔开。这种下采样策略在图像分类情况下是合理的,但在密集图像预测中,保持高空间分辨率也很重要,因此存在更多的网络级别变化[9,56,55]。
用于密集图像预测的各种网络架构中,我们注意到两个一致的原则:
(1)下一层的空间分辨率要么是两倍大,要么是两倍小,要么保持不变。
(2)最小的空间分辨率是下采样32倍。
我们提出以下网络级搜索空间。网络的开头是一个双层“枝干”(stem)结构,每个枝干都将空间分辨率降低2倍。之后,总共有L层具有未知空间分辨率的单元,分辨率的最大值是被下采样4倍,最小值是被下采样32倍。由于每层空间分辨率可能至多为2倍不同,因此枝干后的第一层只能被下采样4倍或8倍。我们在图1中说明了我们的网络级搜索空间。我们的目标是在这个L层网格中找到一条好的路径。
在这里插入图片描述
在下图中,我们展示了我们的搜索空间足以覆盖许多流行的设计。在未来,我们计划进一步放宽这个搜索空间以包括U-net架构。
在这里插入图片描述


5.2 方法

我们首先介绍与上述分层架构搜索完全匹配的连续松弛的(指多数个)离散架构。然后,我们讨论如何进行架构搜索优化,以及如何在搜索终止后解码一个离散架构。
单元架构
在这里插入图片描述
这一节和上一节中块的五元组(I1,I2,O1,O2,C)(I_1,I_2,O_1,O_2,C)(I1,I2,O1,O2,C) 对应,求解HHH这也就是上一节节中说的简单的对应元素相加。
网络架构
在这里插入图片描述
显示了如何将两级分层结构的连续松弛编织在一起。


5.3 优化

引入这种连续松弛的优点是控制不同隐藏状态之间的连接强度的标量现在是可微分计算图的一部分。因此,它们可以通过梯度下降方法得到有效的优化。并将训练集分为两个不相交的集合trainA和trainB。优化在以下二者之间交替进行


5.4 实验结果

在这里插入图片描述
10 次随机试验中,40 个 epoch 中架构搜索优化的验证准确率。

在这里插入图片描述
使用本研究提出的分层神经架构搜索方法找到的最优网络架构和单元架构。
灰色虚线箭头表示每个节点处具备最大 β 值的连接。atr 指空洞卷积(atrous convolution),sep 指深度可分离卷积(depthwise-separable convolution)。
在这里插入图片描述
模型在推断过程中使用多尺度输入时在 Cityscapes 测试集上的结果。
ImageNet:在 ImageNet 上预训练的模型。Coarse:利用粗糙注释的模型。
在这里插入图片描述
在CityScapes上可视化结果。


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 统一知识图谱学习和建议:更好地理解用户偏好
    本文介绍了一种将知识图谱纳入推荐系统的方法,以提高推荐的准确性和可解释性。与现有方法不同的是,本方法考虑了知识图谱的不完整性,并在知识图谱中传输关系信息,以更好地理解用户的偏好。通过大量实验,验证了本方法在推荐任务和知识图谱完成任务上的优势。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
  • ICRA2019最佳论文  Making Sense of Vision and Touch: SelfSupervised Learning of Multimodal Representatio
    文章目录摘要模型架构模态编码器自监督预测控制器设计策略学习控制器设计实验结论和展望会议:ICRA2019标题:《MakingSenseofVision ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • 本博文基于《Amalgamationofproteinsequence,structureandtextualinformationforimprovingprote ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
author-avatar
临沂李晓楠
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有