当前位置: 代码迷 >> 综合 >> 【转载】Dilated Convolution 简单介绍
  详细解决方案

【转载】Dilated Convolution 简单介绍

热度:19   发布时间:2023-12-13 04:37:54.0

本次介绍一篇有关语义分割的文章,其核心思想是如何不失分辨率的扩大感受野,该方法已被caffe默认支持。 该思想也可以应用到目标检测上来。

文章链接: 《MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS》

github项目链接: https://github.com/fyu/dilation

Introduction

什么是图像语义分割?

图像语义分割可以看作是pixel级别的分类,如下图,判断每一个像素属于哪一类目标。

float

还有其它一些应用比如图像去噪、关键点检测、超分辨图像重建等,这些应用与语义分割有着相同的需要着重考虑的地方:

(1) 像素级别的精度,即怎样处理局部信息;

(2) 目标级别的分割,即怎样整合全局信息;

为了解应对上面的问题,之前主要有两种处理策略:

(1) FCN系列,通过不断pooling下采样来得到更大感受野,最后反卷积回去原图尺寸;

(2) 金字塔系列,将图像resize到多个尺度分别分割,最后整合分割结果;

显然,上面两种方式为了获得全局信息(更大的感受野),所需要的参数量(计算量)都是比较大的。

Dilated Convolutions

直观来讲,Dilated Convolutions就是为了获得大的感受野。

插播一句:何谓感受野? 感受野范围内的任意元素变化都会影响到输出。

下图很直观的介绍了什么是 Dilated Convolutions 以及 感受野。

float

(a) 原始的 卷积,1-dilated,感受野为3 × 3 

(b) 在(a)的基础上进行 卷积,2-dilated,感受野为7 × 7 

(c) 在(b)的基础上进行 卷积,4-dilated,感受野为15 × 15 

由于padding和卷积的stride=1,卷积前后feature map大小可以保持不变,但每个元素的感受野指数增大。

Implementation

目前caffe的Convolution层直接支持Dilated操作:

  repeated uint32 dilation = 18; // The dilation; defaults to 1
    
Dilated Convolution的最大价值是可以不改变feature map的大小而增大感受野。而之前的FCN使用pooling下采样来增大感受野,但随后又不得不通过Deconvolution或者upsampling来增大feature map大小,这样的一小一大总会损失很多信息。
  相关解决方案