deeplab v3+---Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation_deeplabv3+上采样替换-程序员宅基地

技术标签: paper  

一.摘要:

1.spp是什么?

问题:分割

我们提出了什么:

1.deeplab v3+ 在deeplab v3的基础上加了一个简单的decoder模块来改善分割结果,尤其是对于边界区域

2.我们采用xception当中的深度壳分离卷积,来应用到aspp和decoder模块中去,能够得到一个更好和更快的结果

结果:

我们证明了所提出的模型在PASCAL VOC 2012语义图像分割数据集上的有效性,并且在没有任何后处理的情况下在测试集上实现了89%的性能

 

二.介绍:

1.在我们的工作里,我们考虑了两种类型的神经网络

    (1).基于spp的(能够捕捉丰富的上下文信息) (2).基于编码器和解码器的(能够获得更加清楚的边界)

2.deeplabv3 采用aspp,pspnet采用池化操作和不同的网格尺度,池化会丢失一些细节信息,使用孔洞卷积可以解决这一个问题,但是会增大计算量。以ResNet-101 [27]为例,当应用atrous卷积提取比输入分辨率小16倍的输出特征时,最后3个残余块(9层)内的特征必须扩大。 更糟糕的是,如果需要比输入小8倍的输出特征,则会影响26个残余块(78层!)(???)

3.我们在deeplab v3的基础上加了一个decoder,这个可以恢复一些目标边界的信息,同时还采用了深度可分离卷积

贡献:

1.我们使用deeplab v3作为encoder,并加入了一个decoder

2.我们提出了一个encoder-decoder结构,可以通过孔洞卷积来控制encoder的特征的分辨率,来权衡准确率和计算量,这是现有目标的网络结构所没有的

3.我们采用Xception中的深度可分离卷积应用在encoder和aspp中,使得网络更强大也更快

4.我们在pascal voc 2012中取得了the state of art的结果

5.我们公开了自己的tensorflow代码.

 

图a是deeplab v3, 图b是encoder-decoder结构,图3是deeplab v3+ 的结构使用一个轻编码器

 

方法:

DeepLabv3 as encoder:

DeepLabv3中也使用atrous卷积提取特征。我们将输入和输出的分辨率比值记为output_stride,对于图像分类任务,最终的feature map 的大小一般是输入图像的 1/32,即 output_stride=32;对于语义分割任务,将下采样(普通卷积操作)替换为atrous卷积,这样就可以调整 output_stride = 16(或8),从而进行更密集的特征提取(例如,我们应用rate = 2和rate = 4到最后两个blocks,则output_stride = 8)。

DeepLabv3的ASPP模块使用了多个平行的atrous卷积,配合了图像级特征(即全局平均池化)。我们将DeepLabv3的logit前的输出特征作为encoder-decoder模型的encoder输出。此时输出的feature通道为256并包含丰富的语义信息。另外,可已通过使用 atrous 卷积来匹配计算资源的限制。
Proposed decoder:

在原先的DeepLabv3中,取预测的feature 直接双线性上采样16倍到期望尺寸,这样的简易的decoder模块不能成功的恢复分割细节。因此加入了一个有效的 decoder 模块,如下图所示:编码器特征先进行 factor=4 的双线性上采样,然后与具有相同空间分辨率的网络主干的相应低级特征(例如,在ResNet-101 [25]中跨越之前的Conv2)连接在一起。

DeepLabv3+的整体的架构如下图所示:

改进后的Xception为encodet网络主体,替换原本DeepLabv3的ResNet101.

Experiment

我们采用ImageNet-1k预训练的ResNet-101或修改后的Aligned Xception 来通过taros 卷积提取密集的特征图。采用与 DeepLabv3 相同的训练方式,简而言之,当output_stride = 16时,在训练期间使用相同的学习率计划(即[“poly”策略](Liu, W., Rabinovich, A., Berg, A.C.: Parsenet: Looking wider to see better. arXiv:1506.04579 (2015))和相同的初始学习率0.007)、crop大小513×513 、 batch normalization 参数,以及随机比例数据增强(random scale data augmentation) 。 请注意,我们还在解码器模块中包含批量标准化参数。

这里提出的模型是端到端(end-to-end)训练的,没有对每个组件进行分段预训练。。
Decoder Design Choise

用DeepLabv3作为encoder,对于f 个k×k 的卷积操作记为$[k×k,f] $,先前DeepLabv3是在输出结果上继续双线性上采样16倍得到预测结果,这在PASCAL VOC2012 验证集上达到了77.21%。论文在此基础上,提出了改进的decoder模块。关于decoder的设计有多个方案:

使用1×1卷积减少来自低级feature的通道数

下图示意部分为1×1 卷积:

在这里插入图片描述

为了评估1×1 卷积的重要性,在encoder中取了 Conv2 尺寸为[3×3,256] 为输出,减少通道数在48到32之间性能最佳。结果如下表:

最终采用了[1×1,48]来做通道降维。

是否需要3×3卷积逐步获取分割结果

即下图示意部分3×3卷积恢复信息:


实验部分包括使用1×1,256 的卷积,一组、二组、三组的3×3,256 卷积,使用3×3,128 的卷积,结果如下:

结果显示使用两组3×3,256 卷积性能最佳。

使用哪部分的低级特征帮助提供细节

即下图示意部分:

论文实验了如果使用Conv2 和Conv3 同时预测,Conv2 上采样2倍后与Conv3 结合,再上采样2倍,结果如下:

这并没有显著的提升性能,考虑到计算资源的限制,论文最终采样简单的decoder方案,即取Conv2 Conv2Conv2上采样后再与top feature concatenate。

ResNet-101 as Network Backbone

以ResNet为encoder模型,测试了以下几种变体:

    Baseline: 在下表的第一组。都没有使用decoder。测试了不同output_stride output_strideoutput_stride,多尺度输入,左右翻转操作。
    Adding decoder: 下表的第二组。采用的decoder。相对来说增加了计算消耗。
    Coarser feature maps: 测试了使用output_stride=32 ,这样计算速度更快。但是相对于output_stride=16 准确率下降了1-2%左右。

可以看到使用多尺度MS MSMS计算量计算量增加一个数量级,使用左右翻转Flip FlipFlip计算量翻倍。

Xception as Network Backbone

ImageNet pretraining: 改进后的Xception网络在ImageNet-1K上做了预训练。训练设置如下:

可以看到Modified Xception性能要好点。

整体的使用Modified Xception做为网络骨架,使用如下几种变体:

    Baseline: 不使用decoder.
    Adding decoder: 添加了decoder.
    Using depthwise separable convolution: 在ASPP和decoder中使用深度分离卷积。计算量下降了30-40%.
    Pretraining on COCO: 在MS-COCO数据集上预训练
    Pretraining on JFT: 在IamgeNet-1K和JFT-300M上预训练

可以看到使用深度分离卷积可以显著降低计算消耗。

与其他先进模型在VOC12的测试集上对比:

在目标边界上的提升

使用trimap实验测量模型在分割边界的准确度。计算边界周围扩展频带(称为trimap)内的mIoU。结果如下:

与双线性上采样相比,加decoder的有明显的提升。trimap越小效果越明显。

加了decoder的可视化结果如下:

 

部分转载:https://blog.csdn.net/Lin_Danny/article/details/87924277

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zxyhhjs2017/article/details/90236575

智能推荐

SSM整合web项目访问同时html和jsp页面_jsp和ssm冲突吗-程序员宅基地

文章浏览阅读2.3k次。ssm 配置请看:https://blog.csdn.net/qq_19688207/article/details/114578526?spm=1001.2014.3001.5501更改其中SpringMVC-servlet.xml和web.xml一、SpringMVC-servlet.xml配置:新增: <!-- 载入静态资源文件 --> <mvc:resources location="/resources/" mapping="/resources..._jsp和ssm冲突吗

谷歌浏览器安装json格式化插件_chrom92 json-程序员宅基地

文章浏览阅读268次。实际开发工作中经常用到json数据,那么就会有这样一个需求:在谷歌浏览器中访问URL地址返回的json数据能否按照json格式展现出来。比如,在谷歌浏览器中访问:http://jsonview.com/example.json展现效果如下:那么安装了JsonView扩展程序后的展现效果如下:很明显,后者的效果更好。实现步骤如下:1、下载JsonView扩展程序压缩包下载地址:https://github.com/gildas-lormeau/JSONView-for-Chro_chrom92 json

Datawhale 零基础入门CV赛事-Task5 模型集成-程序员宅基地

文章浏览阅读106次。Task5 模型集成思维导图参考链接Datawhale 零基础入门CV赛事-Task5 模型集成

Vue运行报错webpack-dev-server --inline --progress --config build/[email protected] dev: `webpack-dev-server ---程序员宅基地

文章浏览阅读4.7k次,点赞5次,收藏12次。vue 项目 npm run dev 运行时报错:npm ERR! [email protected] dev: `webpack-dev-server --inline --progress --config build/webpack.dev.conf.js原因:新版的webpack-dev-server 3.1.14 存在问题。解决方法:package.json 中指定 webpack-dev-server 低版本号方法1:“webpack-dev-server”: “^2.9.1”删除 [email protected] dev: `webpack-dev-server --inline --progress --config

JS中的空字符串""包含(isNaN()判断)_isnan判断空字符串-程序员宅基地

文章浏览阅读3k次。注意:在 JS中 ,空字符串&quot;&quot;代表的是数字0,而不是NaN_isnan判断空字符串

关于excel导出日期格式变化问题处理_导出数据时间是*号-程序员宅基地

文章浏览阅读6.1w次,点赞2次,收藏2次。关于excel导出日期格式变化问题处理1.问题描述:java web项目,本来部署在windows下,导出数据库数据是,创建日期格式为2018-08-08 08:08:08。因服务器性能问题,迁移服务器至linux(centos 7.5)。现成操作人员导出后发现时间格式为:。2.查找原因:发现代码中导出用的GBK。发现服务器为英文版的centos 7.4解决办法:修改英文版为中文版..._导出数据时间是*号

随便推点

【STM32H7】第3章 ThreadX FileX移植SDIO接口SD的基础知识_stm32h7 sdmmc filex-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏6次。论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=100749第3章 ThreadX FileX移植SDIO接口SD的基础知识本章节为大家讲解SDMMC(Secure digital input/output MultiMediaCard interface)总线的基础知识和对应的HAL库API。为下个章节SD卡的移植做准备。目录第3章 ThreadX FileX移植SDIO接口SD的基础知识3...._stm32h7 sdmmc filex

css伪类之input输入框鼠标点击边框变色效果_css 伪类选择器 鼠标键入input框-程序员宅基地

文章浏览阅读5w次,点赞13次,收藏37次。css相关,鼠标点击输入域后出现有颜色的边框.problem input:focus{ border-style:solid; border-color: #03a9f4; box-shadow: 0 0 15px #03a9f4;}css相关,鼠标点击输入域后出现有颜色的边框效果如下:进行更多交流微信扫描_css 伪类选择器 鼠标键入input框

支付宝H5支付调不起来,提示ERR_UNKNOWN_URL_SCHEME_h5 app 支付宝页面无法打开 net::err_unknoen_url_scheme-程序员宅基地

文章浏览阅读4.2k次。在WebView中如果使用到支付宝,需要添加以下代码,否则操作系统会将支付宝的URL拦截,导致你打不开支付宝页面。mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, _h5 app 支付宝页面无法打开 net::err_unknoen_url_scheme

长春高中计算机考试时间安排,2019年长春中考考试时间安排,长春中考考试科目时间安排表...-程序员宅基地

文章浏览阅读304次。2019年长春中考考试时间安排,长春中考考试科目时间安排表每年的长春中考时间每年大约在6月中下旬及7月上旬,具体详细时间要等每年教育局具体出通知。本文小编整理了关于2019年长春中考考试时间及考试科目安排的相关资讯,再次提醒具体准确时间和科目请参考长春教育局官方发布的通知公告。一、长春中考考试时间安排及科目6月27日上午8:30—10:30,语文6月27日下午14:00—15:40,物理和化学(合..._长春美术自动化考试

SPI协议讲解与总结_spimode-程序员宅基地

文章浏览阅读5.3k次,点赞9次,收藏25次。SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。它们分别是MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)、CS(片选)。_spimode

iOS和macOS体验合一?苹果还得解决这些_macos 玩ios手机游戏-程序员宅基地

文章浏览阅读463次。尽管苹果已经公开表示,iOS 是为移动设备设计的系统,而 macOS 的主场是桌面,这就决定了它们在很多操作逻辑上的不同。不过在一定程度上,两个系统之间还是能够融为一体的。通过云网络进行相同账户共享,我们只要还在苹果的生态中,就能享受到各个系统之间的无缝体验。  从最近两三年 iOS 和 macOS 的发展里,我们就能够看到这种趋势。它们虽然算不上合二为_macos 玩ios手机游戏

推荐文章

热门文章

相关标签