空洞卷积,广泛应用于语义分割与目标检测等任务中,语义分割中经典的 deeplab 系列对空洞卷积进行了深入的思考。空洞卷积可以任意扩大感受野,且不需要引入额外参数。
空洞卷积就是在标准的 convolution map 里注入空洞,以此来增加 reception field。相比标准的 convolution,dilated convolution 多了一个称为 dilation rate 的 hyper-parameter,指的是kernel 的间隔数量。标准卷积与空洞卷积在实现上基本相同,标准卷积可以看做空洞卷积的特殊形式(正常的 convolution 是 dilatation rate = 1)。空洞卷积在卷积核中间填充 0,其主要有实现方式有两种,为卷积核填充 0 或输入等间隔采样。
Deep CNN 对于其他任务还有一些致命性的缺陷
- Up-sampling / pooling layer is deterministic;
- 内部数据结构丢失;空间层级化信息丢失;
- 小物体信息无法重建 (假设有四个pooling layer,则任何小于 2 4 = 16 2^4 = 16 24=16 pixel 的物体信息将理论上无法重建)。
空洞卷积的作用主要有
- 扩大感受野。降采样可以增大感受野,但空间分辨率随之降低。可使用空洞卷积扩大感受野,同时保证分辨率;
- 捕获多尺度上下文信息。空洞卷积中可通过设置不同的 dilation rate 调节感受野大小,即获取多尺度信息。多尺度信息在视觉任务中相当重要。
HDC
ASPP
先通过 k ˉ = k + ( k − 1 ) ( r − 1 ) \rm \bar{k}=k+(k-1)(r-1) kˉ=k+(k−1)(r−1) 确定空洞卷积的实际卷积核大小 k ˉ \rm \bar{k} kˉ,再确定输出的尺寸。
【参考】