在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考。

在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果。

点击本文底部的「阅读原文」即刻加入社区,查看更多最新论文推荐。

这是 PaperDaily 的第 44 篇文章

关于作者:陈泰红,小米高级算法工程师,研究方向为人脸检测识别,手势识别与跟踪。

■ 论文 | Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

■ 链接 | https://www.paperweekly.site/papers/1676

前言

临近春节,Google 团队也不休假,趁着中国人每年一度大迁徙,他们在 arXiv 放出了 DeepLabv3+,在语义分割领域取得新的 state-of-the-art 水平。本文将带大家回顾 DeepLabv1-v4 系列的发展历程,看看 Google 团队这些年都在做什么。

DeepLabv1


DeepLab 是结合了深度卷积神经网络(DCNNs)和概率图模型(DenseCRFs)的方法。

在实验中发现 DCNNs 做语义分割时精准度不够的问题,根本原因是 DCNNs 的高级特征的平移不变性,即高层次特征映射,根源于重复的池化和下采样。

针对信号下采样或池化降低分辨率,DeepLab 是采用的 atrous(带孔)算法扩展感受野,获取更多的上下文信息。

分类器获取以对象中心的决策是需要空间变换的不变性,这天然地限制了 DCNN 的定位精度,DeepLab 采用完全连接的条件随机场(CRF)提高模型捕获细节的能力。

除空洞卷积和 CRFs 之外,论文使用的 tricks 还有 Multi-Scale features。其实就是 U-Net 和 FPN 的思想,在输入图像和前四个最大池化层的输出上附加了两层的 MLP,第一层是 128 个 3×3 卷积,第二层是 128 个 1×1 卷积。最终输出的特征与主干网的最后一层特征图融合,特征图增加 5×128=640 个通道。

实验表示多尺度有助于提升预测结果,但是效果不如 CRF 明显。

论文模型基于 VGG16,在 Titan GPU 上运行速度达到了 8FPS,全连接 CRF 平均推断需要 0.5s ,在 PASCAL VOC-2012 达到 71.6% IOU accuracy。

DeepLabv2

DeepLabv2 是相对于 DeepLabv1 基础上的优化。DeepLabv1 在三个方向努力解决,但是问题依然存在:特征分辨率的降低、物体存在多尺度,DCNN 的平移不变性。 

因 DCNN 连续池化和下采样造成分辨率降低,DeepLabv2 在最后几个最大池化层中去除下采样,取而代之的是使用空洞卷积,以更高的采样密度计算特征映射。

物体存在多尺度的问题,DeepLabv1 中是用多个 MLP 结合多尺度特征解决,虽然可以提供系统的性能,但是增加特征计算量和存储空间。

论文受到 Spatial Pyramid Pooling (SPP) 的启发,提出了一个类似的结构,在给定的输入上以不同采样率的空洞卷积并行采样,相当于以多个比例捕捉图像的上下文,称为 ASPP (atrous spatial pyramid pooling) 模块。

DCNN 的分类不变形影响空间精度。DeepLabv2 是采样全连接的 CRF 在增强模型捕捉细节的能力。

论文模型基于 ResNet,在 NVidia Titan X GPU 上运行速度达到了 8FPS,全连接 CRF 平均推断需要 0.5s ,在耗时方面和 DeepLabv1 无差异,但在 PASCAL VOC-2012 达到 79.7 mIOU。

DeepLabv3

好的论文不止说明怎么做,还告诉为什么。DeepLab 延续到 DeepLabv3 系列,依然是在空洞卷积做文章,但是探讨不同结构的方向。

DeepLabv3 论文比较了多种捕获多尺度信息的方式:

1. Image Pyramid:将输入图片放缩成不同比例,分别应用在 DCNN 上,将预测结果融合得到最终输出。

2. Encoder-Decoder:利用 Encoder 阶段的多尺度特征,运用到 Decoder 阶段上恢复空间分辨率,代表工作有 FCN、SegNet、PSPNet 等工。

3. Deeper w. Atrous Convolution:在原始模型的顶端增加额外的模块,例如 DenseCRF,捕捉像素间长距离信息。

4. Spatial Pyramid Pooling:空间金字塔池化具有不同采样率和多种视野的卷积核,能够以多尺度捕捉对象。

DeepLabv1-v2 都是使用带孔卷积提取密集特征来进行语义分割。但是为了解决分割对象的多尺度问题,DeepLabv3 设计采用多比例的带孔卷积级联或并行来捕获多尺度背景。

此外,DeepLabv3 将修改之前提出的带孔空间金字塔池化模块,该模块用于探索多尺度卷积特征,将全局背景基于图像层次进行编码获得特征,取得 state-of-art 性能,在 PASCAL VOC-2012 达到 86.9 mIOU。

DeepLabv3+

DeepLabv3+ 架构 

DeepLabv3+ 继续在模型的架构上作文章,为了融合多尺度信息,引入语义分割常用的 encoder-decoder。在 encoder-decoder 架构中,引入可任意控制编码器提取特征的分辨率,通过空洞卷积平衡精度和耗时。

在语义分割任务中采用 Xception 模型,在 ASPP 和解码模块使用 depthwise separable convolution,提高编码器-解码器网络的运行速率和健壮性,在  PASCAL VOC 2012 数据集上取得新的 state-of-art 表现,89.0 mIOU。

Xception 改进 

Entry flow 保持不变,但是添加了更多的 Middle flow。所有的 max pooling 被 depthwise separable convolutions 替代。在每个 3x3 depthwise convolution 之外,增加了 batch normalization 和 ReLU。

实验

论文提出的模型在主干网络 ResNet-101 和 Xception均进行验证。两种方式均在 ImageNet 预训练。其中 Xception 预训练过程中,使用 50 个 GPU,每个 GPU batch size=32,分辨率 299x299。Xception 相比 ResNet-101,在 Top-1 和 Top-5 分别提高 0.75% 和 0.29%。

在实验过程中,分别考虑 train OS: The output stride used during training、eval OS: The output stride used during evaluation、Decoder: Employing the proposed decoder structure、MS: Multi-scale inputs during evaluation、 Flip: Adding left-right flipped inputs 等各种情况。

另外使用 depthwise separable convolution,使用 Pretraining on COCO 和 Pretraining on JFT,在这些 tricks 辅助下,PASCAL VOC 2012 test set 达到惊人的 89.0%,取得新的 state-of-the-art 水平。

结论

从 DeepLabv1-v4 系列看,空洞卷积必不可少。从 DeepLabv3 开始去掉 CRFs。

Github 目前还未有公布的 DeepLabv3,但是有网友的复现版本。DeepLabv3+ 更是没有源代码,复现起来估计有些难度。

DeepLabv3 复现:

https://github.com/NanqingD/DeepLabV3-Tensorflow

DeepLabv1-v4 没有用很多 tricks,都是从网络架构中调整,主要是如何结合多尺度信息和空洞卷积。从FCN,ASPP,Encoder-Decoder with Atrous Conv,每一个想法看上去在别的都实现过,但是论文综合起来就是有效。

Deeplabv1,v2 耗时为 8fps,从 Deeplabv3 开始,论文已经不说运行时间的问题,是否模型越来越慢了。

MobileNetV2 已经实现 Deeplabv3,并努力在 MobileNetV2 中复现 DeepLabv3+ 版本。

参考文献

[1] Semantic image segmentation with deep convolutional nets and fully connected CRFs

[2] DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

[3] Rethinking Atrous Convolution for Semantic Image Segmentation

[4] Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

本文由 AI 学术社区 PaperWeekly 精选推荐,社区目前已覆盖自然语言处理、计算机视觉、人工智能、机器学习、数据挖掘和信息检索等研究方向,点击「阅读原文」即刻加入社区!

  我是彩蛋 


解锁新功能:热门职位推荐!

PaperWeekly小程序升级啦

今日arXiv√猜你喜欢√热门职位

找全职找实习都不是问题

 解锁方式 

1. 识别下方二维码打开小程序

2. 用PaperWeekly社区账号进行登陆

3. 登陆后即可解锁所有功能

 职位发布 

请添加小助手微信(pwbot01)进行咨询

长按识别二维码,使用小程序

*点击阅读原文即可注册


关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

▽ 点击 | 阅读原文 | 查看原论文

DeepLabv3+:语义分割领域的新高峰相关推荐

  1. 憨批的语义分割重制版9——Pytorch 搭建自己的DeeplabV3+语义分割平台

    憨批的语义分割重制版9--Pytorch 搭建自己的DeeplabV3+语义分割平台 注意事项 学习前言 什么是DeeplabV3+模型 代码下载 DeeplabV3+实现思路 一.预测部分 1.主干 ...

  2. DeepLabV3+语义分割实战

    DeepLabV3+语义分割实战 语义分割是计算机视觉的一项重要任务,本文使用Jittor框架实现了DeepLabV3+语义分割模型. DeepLabV3+论文:https://arxiv.org/p ...

  3. 语义分割领域开山之作:Google提出用神经网络搜索实现语义分割

    来源: AI科技评论 1. Introduction 在 arxiv 浏览论文的时候,单独看文章名不知道属于 CV 哪个领域,怀着对一作 Liang-Chieh 敬畏的心,在摘要中扫描到 PASCAL ...

  4. 基于MindSpore复现Deeplabv3—语义分割

    基于MindSpore复现Deeplabv3-语义分割 实验介绍 本实验主要介绍使用MindSpore深度学习框架在PASCAL VOC2012数据集上训练Deeplabv3网络模型.本实验使用了Mi ...

  5. 跨模态学习在三维语义分割领域适应中的应用

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家 ...

  6. 类特征注意机制融合Deeplabv3+语义分割

    针对经典语义分割网络在高分辨率遥感图像语义分割中存在的边缘目标分割不准确.不同类型目标分割不一致.预测效率慢等问题,本文提出了一种融合改进的Deeplabv3+网络CFAMNet的分类特征注意机制,用 ...

  7. win10+tensorflow+cuda+cudnn,实现deeplabv3语义分割自己的数据集

    ** 参考: ** 1.使用 deeplabv3+ 训练自己的数据集经验总结 2.window环境下进行deeplab_tensorflow实验之第一阶段 3.window环境下进行deeplab_t ...

  8. 工程(二)——DeeplabV3+语义分割训练自制数据集

    目录 1.配置环境 1.1 利用conda新建一个环境并激活 1.2 安装pytorch 1.3 更新bashrc环境 2.安装DeeplabV3 2.1 克隆代码 2.2 下载数据集和预训练模型 3 ...

  9. 零基础入门图像语义分割必备概念整理,复制文件内容到Word观看效果更佳

    图像深度:是指存储每个像素所用的位数,也用于量度图像的色彩分辨率.确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数.它决定了彩色图像中可出现的最多颜色数,或灰度图像中的 ...

最新文章

  1. 【OpenCV 4开发详解】图像腐蚀
  2. 2018年中美自动驾驶进展分析报告
  3. python compile正则_Python 正则表达式:compile,match
  4. PHP实现飞信接口来通过网页免费发短信
  5. linux shell删除归档_linux打怪技能方向规划,送给迷茫学习的你
  6. 函数声明指令(stdcall, cdecl,pascal,register)
  7. Shell脚本中函数位置参数的用法笔记
  8. I must be strong and carry on
  9. 开发工具IDEA的使用
  10. 女朋友生气了吗?算法比直男更懂她
  11. 华为P30系列再曝光:屏幕参数揭晓 还要用水滴全面屏?
  12. 【渝粤教育】国家开放大学2018年春季 3922T汽车运用基础 参考试题
  13. Win10 配置 Python 环境变量
  14. 程序员心中的“女神”
  15. 【Luat-esp32c3】4.3 文件系统——加载jpeg图片并拆包
  16. VScode+esp-idf:编译腾讯物联网控制台ESP32例程(esp-qcloud)
  17. 苹果手机电池健康怎么看_电池的循环次数怎么看?关系到手机电池寿命
  18. hxxp://www.hao923.com.cn/劫持浏览器
  19. 用真实业务场景告诉你,高并发下如何设计数据库架构?
  20. 通过usb利用adb实现android手机和pc机通信

热门文章

  1. WUTOJ 1284: Gold Medal(Java)
  2. 微信公众号支付调用chooseWXPay提示“errmsg choosewxpay fail”
  3. 真核转录组(denovo/resequencing)及案例分析
  4. apache设置网页gzip压缩(亲测可用)
  5. 什么是进程控制块,他有什么用?
  6. 判定一个点是否在三角形内
  7. 指定的参数错误。Vim.Host.DiskPartitionInfo.-spec VSPHERE.LOCAL\Administrator WIN-DOPGQVRRU2C
  8. jsp的九大内置对象和四大作用域
  9. java 微信支付 md5_微信支付MD5签名算法实现
  10. as点击发送广播_Apache Flink 中广播状态的实用指南