Dilated Residual Network论文解读

Introduction

这篇文章来自于17年CVPR,同样是对空洞卷积的思考,但这篇文章不是把空洞卷积变着法得用在语义分割上,而是重新回到了图像分类领域,在看这篇文章的同时可以结合旷视和清华一起提出的另一篇论文DetNet一起阅读,这两篇论文都是利用了空洞卷积作为Backbone,把它的应用从分割扩展到了分类与检测。

DetNet: A Backbone network for Object Detection

但相对而言,DetNet这篇文章的内容丰富程度和DRN还是有一定的距离。
本片论文回到了图像分类的任务上,认为传统的CNN把输入图像不停的下采样到非常小的特征图会使场景的空间结构不那么清晰,不仅限制了分类的准确率,也影响到了把模型迁移到其他任务上的性能。因此文章提出使用空洞卷积作为分类网络的卷积,并通过实验证明了空洞残差网络的性能比普通残差网络的性能超出很多。同时文章也提出了类似Understanding Convolution for Semantic Segmentation中提出的 gridding g r i d d i n g 现象,并且提出了一种不同的方式去解决这个问题。

其实所有空洞卷积的出发点都是一样的:在不降低特征图分辨率与计算开销的情况下尽可能增加卷积核的感受野。在图像分类中,一般会使用5个池化或者步进2的卷积来进行下采样得到非常小的高维特征图,尽管这种方式被证明非常有用,但实际的分类中,很可能会有这种情况出现:一张图片中有各种尺度的物体,他们之间的相对关系对理解整个图片非常重要,比如桌子加椅子就是餐厅,桌子加沙发就可能是客厅;或者说背景是一座山,但前景存在一个不大却很重要的物体,那么这个物体的激活值在下采样的时候很可能会被背景的山产生的激活值所覆盖掉。一旦丢失了细节信息,几乎不可能通过上采样与训练再把它们恢复出来。

Dilated Residual Networks

DRN的结构与He大神的ResNet非常相似,最大的不同在于conv_stage 4/5 这两部分。这里我们使用 li G i l 代表第 l l 个conv_stage的第 i i 层。
在ResNet中,这两部分的第一个卷积层都会带有2的步进,而在DRN中,这两层的步进都要被调整为1。这样的话, 41 G 1 4 的卷积核感受野还是与原来相同,但 41 G 1 4 的输出特征图尺寸大了一倍,但后面的卷积核感受野则变为了之前的二分之一,因此对 41 G 1 4 后面的卷积核使用rate=2的空洞卷积。对于 51 G 1 5 ,输入的特征图变为原来的两倍大,输出的特征图变为原来的四倍大(长宽都是原来的四倍,面积是原来的十六倍),但卷积核的感受野是原来的二分之一,因此也使用rate=2的空洞卷积,但对于后面的卷积核,感受野变成了以前的四分之一,因此使用的卷积核rate=4 。最后 5 G 5 经过一个全局平均池化(Global Average Pooling),一个全卷积层得到分类的输出。
Dilated Residual Network论文解读_第1张图片
通过去掉最后一个GAP,加入一个 11 1 ∗ 1 卷积,DRN可以很容易得变成一个分割网络或者定位(Localization)网络
Dilated Residual Network论文解读_第2张图片

Degridding

文章同样观察到了 gridding g r i d d i n g 的现象,不过描述该问题的方式略有不同。
Dilated Residual Network论文解读_第3张图片
假设我们的输入有一个激活点,其他的像素位置都是没有激活的,如果使用一个Dilation=2的空洞卷积去卷,得到的输出会产生像网格一样的激活值,这种 gridding g r i d d i n g 的现象会使空洞卷积得到的特征图激活值呈现细碎的点状分布,得到的结果也不够精致,就像下图所示:
Dilated Residual Network论文解读_第4张图片
因此文章使用了三个措施来修改网络结构,改善 gridding g r i d d i n g 的现象。

Removing max pooling

在原始的ResNet中,在第一个 77 7 ∗ 7 的卷积后有一个max pooling,文章发现这个max pooling会导致输出高频高幅值的激活值,这些高幅值的激活就很容易被后面的卷积传播下去最后在顶层的空洞卷积处形成网格状激活,因此文章使用卷积来代替池化。
Dilated Residual Network论文解读_第5张图片
可以看到,去除pooling后特征图变得平滑许多。

Adding layers

为了去除 gridding g r i d d i n g ,文章在网络的最后加入了新的卷积层,通过卷积来平滑输出。这些卷积层的dilation要比前面 4 G 4 5 G 5 的小,比如加入一层dilation=2的卷积层与一层正常的卷积层。

Removing residual connections

然而仅仅在网络后面加卷积层也不足以完全去除 gridding g r i d d i n g 现象,因为残差连接会把底层的 gridding g r i d d i n g 激活直接传到顶层,因此,需要把最后两层的残差连接去掉。


经过以上三步,就得到了最终的DRN,文章命名为DRN-C,而介于最初的DRN和最终的DRN之间的网络,为DRN-B

Dilated Residual Network论文解读_第6张图片
简单来说,DRN-A是基础ResNet加了dilation得到的,DRN-B是DRN-A去除max pooling加入后两层得到的,DRN-C是DRN-B最后两层去掉残差连接得到的。

经过实验发现,DRN-C-26和DRN-A-34的分类精确度差不多,在分割和定位上精度比DRN-A-50还要好。而DRB-C-42在ImageNet上的分类准确率与ResNet-101相近,但在Cityscapes的分割上,精度高4%,深度却只有ResNet-101的1/2.4。

你可能感兴趣的:(Semantic,Segmentation,深度学习,CNN)