博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DilatedNet - 扩张卷积(语义分割)
阅读量:7051 次
发布时间:2019-06-28

本文共 2467 字,大约阅读时间需要 8 分钟。

TB1m.4sO9zqK1RjSZFpXXakSXXa.jpg

本文为 AI 研习社编译的技术博客,原标题 :

Review: DilatedNet — Dilated Convolution (Semantic Segmentation)

作者 | Sik-Ho Tsang

翻译 | 斯蒂芬·二狗子         

校对 | 酱番梨        审核 | 约翰逊·李加薪       整理 | 立鱼王

原文链接:

https://towardsdatascience.com/review-dilated-convolution-semantic-segmentation-9d5a5bd768f5

注:本文的相关链接请访问文末【阅读原文】

这次,对来自普林斯顿大学和英特尔实验室的Dilated Convolution一文进行了简要回顾。扩张卷积的思想来自小波分解。它也被称为“atrous convolution”,“algorithmeàtrous”和“hole algorithm”。因此,如果我们能够将它们转变为深度学习框架,那么可以认为过去的任何想法仍然是有用的。

当我写这篇故事时,这个扩张卷积已经在2016年ICLR上发表,引用超过1000次。(SH Tsang @ Medium)

涉及的内容

扩张卷积

多尺度上下文聚合(上下文模块)

结果

   1.扩张卷积

TB1iBO3PgHqK1RjSZFPXXcwapXa.png

标准卷积(左),扩张卷积(右)

左边是标准卷积。正确的是扩张卷积。我们可以看到,在求和时,s+lt=p 我们将在卷积期间跳过一些点。

当  l = 1时,它是标准卷积。

当  l > 1时,它是扩张的卷积。

TB1Peq5PgHqK1RjSZFEXXcGMXXa.gif

标准卷积(l = 1)

TB1DMSZPb2pK1RjSZFsXXaNlXXa.gif

扩张卷积(l = 2)

上面给出了当l = 2 时扩张卷积的一个例子  。我们可以看到,与标准卷积相比,感受野更大。

TB1h6C5PbrpK1RjSZTEXXcWAVXa.png

l = 1(左),l = 2(中),l = 4(右)

上图显示了有关感受野的三个示例。

   2.多尺度的上下文聚合(上下文模块)

基于扩张卷积来构建的上下文模块Context Module,如下所示:

TB1uc90PbvpK1RjSZPiXXbmwXXa.png

 基础的上下文模块,和大的上下文模块

如图,context module有7层,这些层采用不同扩张率的3×3 kernel size 的扩张卷积,扩张的率分别为1,1,2,4,8,16,1。

最后一层用了一个1×1的卷积,将通道数映射为与输入通道数相同大小。因此,输入和输出具有相同数量的通道。它可以插入到不同类型的卷积神经网络中。

基本上下文模块basic context module在整个模块中仅有1个通道(1C,1 channel),而大上下文模块large context module从1C 作为输入到第7层的32C的通道数。

   3.结果

3.1. PASCAL VOC 2012

VGG-16 作为一个前端模块(预训练)。删除了最后的两个池化层和striding 层,并将context上下文模块插入其中。中间的特征图的padding也被移除了。作者只是对输入的特征图加了一个宽度为33的padding。Zero Padding (填充0)和 reflection padding(使用输入边界的反射填充,一种padding方式)在我们的实验中得出了类似的结果。此外,使用输入和输出的通道channels的数量的权重来初始化的方式代替标准随机初始化模型参数。

TB1iufXPhjaK1RjSZFAXXbdLFXa.jpg

PASCAL VOC 2012 测试集

与原作者训练的公共模型相比,扩张卷积方法在测试集上的性能优于FCN-8s 模型 和 DeepLabv1 模型 约5个百分点。

获得了67.6%的mean IoU(平均交并比)

TB10pKqPmzqK1RjSZPcXXbTepXa.jpg

PASCAL VOC 2012 验证集

通过对来自 微软-COCO数据集 的图像进行训练,如上所示,对扩张卷积本身进行消融实验研究。

Front end:前端模块

Basic:基本上下文模块

Large:大型上下文模块

CRF:使用DeepLabv1和  DeepLabv2中 提到的条件随机场的对模型输做处理步骤 

RNN:通过递归神经网络使用条件随机场的后处理步骤

我们可以看到采用扩张卷积(basic 或 large)总能改善结果,并且还可以继续使用其他后续处理步骤,如CRF。

获得了73.9%的mean IoU(平均交并比)  

TB1rJncPhYaK1RjSZFnXXa80pXa.jpg

PASCAL VOC 2012  测试集

上表中的前端模块也是通过对来自Microsoft COCO数据集进行训练而获得的。使用CRF-RNN(即上表中的RNN),获得75.3%的平均IoU。雷锋网雷锋网(公众号:雷锋网)雷锋网

3.2. 定性结果

TB1IrOVPmzqK1RjSZFLXXcn2XXa.jpg

PASCAL VOC 2012

所有模型都使用  VGG-16  进行特征提取,使用扩张卷积在分割结果上具有更好的效果

TB1Vvr0ce3tHKVjSZSgXXX4QFXa.jpg

PASCAL VOC 2012

使用CRF-RNN作为后面的处理步骤,以获得了更好的结果。但CRF-RNN使得该过程不是端到端的学习。

TB13T_qPhnaK1RjSZFtXXbC2VXa.jpg

失败案例

如上所示的一些模型分割出错的情况,当对象被遮挡时,分割出错。

在附录中给出不同的数据集的测试结果,即CamVid,KITTI和Cityscapes,请随时阅读本文。他们还发布了应用扩张卷积的残差网络Dilated Residual Networks。希望我能在将来写到它。:)

参考

[2016 ICLR] [Dilated Convolutions]

Multi-Scale Context Aggregation by Dilated Convolutions

我的相关评论

[ VGGNet ] [ FCN ] [ DeconvNet ] [ DeepLabv1和DeepLabv2 ]

想要继续查看该篇文章相关链接和参考文献?

点击【DilatedNet - 扩张卷积(语义分割)】即可访问:

https://ai.yanxishe.com/page/TextTranslation/1538

机器学习大礼包

限时免费\18本经典书籍/Stanford经典教材+论文

点击链接即可获取:

https://ai.yanxishe.com/page/resourceDetail/574

转载地址:http://sjcol.baihongyu.com/

你可能感兴趣的文章
HTTP协议的特点
查看>>
聊聊flink的ConnectionManager
查看>>
聊聊hikari连接池的idleTimeout及minimumIdle属性
查看>>
设计模式 | 迭代器模式及典型应用
查看>>
1小时学会:最简单的iOS直播推流(十一)sps&pps和AudioSpecificConfig介绍(完结)...
查看>>
Oracle APEX 系列文章6:Oracle APEX 到底适不适合企业环境?
查看>>
ubuntu搭建nodejs生产环境——快速部署手册
查看>>
探索解析微服务下的RabbitMQ
查看>>
谈一谈 Spring-Mybatis 在多数据源配置上的坑
查看>>
SpringMVC源码解析系列4-HandleAdapter
查看>>
iOS开发中多线程的那些事
查看>>
使用 React 一年后,我学到的最重要经验
查看>>
字面量-数组、字典
查看>>
从零开始学Python(七):文件存储I/O流和异常捕捉
查看>>
JavaScript基础(5) - IDE与调试
查看>>
Android 性能优化之旅5 电量优化
查看>>
如何为你的App配置多环境变量
查看>>
学习OpenGL ES之什么是Shader?
查看>>
RxJava学习之结合(组合)型操作符
查看>>
Python基础(三): 数值和布尔
查看>>