[深度学习论文笔记][arxiv 1702]Understanding Convolution for Semantic Segmentation

来源:互联网 发布:java中遍历数组 编辑:程序博客网 时间:2024/05/16 10:01

Understanding Convolution for Semantic Segmentation

from UCSD & CMU & UIUC & TuSimple

paper link

这篇文章提出了对深度语义分割网络的两点改进,包括:
1. 一种高效上采样方法以恢复分割结果的分辨率(Dense Upsampling Convolution, DUC);
2. 一种改进了的洞算法/膨胀卷积操作(Hybrid Dilated Convolution, HDC)。

DUC

与DUC一致的上采样方法最早出现在CVPR 16年的文章“Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network”中。其基本思想是:在网络对特征降采样后,空间特征信息更多地储存在了维度更高的通道(channels)之中,而非单张特征图之中。这一思想也被许多文章所利用,例如检测领域的“End-to-end people detection in crowded scenes”、同为分割领域的“Laplacian Reconstruction and Refinement for Semantic Segmentation”以及其它很多文章。

其具体实现非常简单明了,示意图如下。设需要上采样的倍数为r,当前网络特征图的维度为C×H×W,分割任务共需要预测L类结果。则DUC模块仅需要在之前的特征后添加一个全连接层,输出(L×r2)×H×W的分割结果。其中心点在于DUC将最后需要预测得到的高分辨率分割结果(尺寸为L×rH×rW)拆分为更小、通道数更多的小分割结果。

这里写图片描述

HDC

在Deeplab中,作者将vgg网络pool4层的降采样去掉。为了保持网络的视野域,在conv5的三个卷积层中使用洞算法/膨胀卷积操作,且每层的膨胀率(dilation rate)为2。这样会造成一个问题,如下图所示。conv5_1和conv5_2层的每次卷积操作只从9个像素点取值。如果回溯conv5_2的卷积操作到pool4的特征图上,则会发现其每个卷积结果只能从25个点上获得信息,虽然两层卷积的视野覆盖了81个pool4中的像素。该现象在conv5_3中更甚,其视野覆盖的169个像素中有120个点的信息没有获取到。作者将这种现象称为网格问题(gridding problem)。

事实上,凡是级联的卷积层的膨胀率具有大于一的公约数时,网格现象都会发生。网格问题其实是对特征信息的浪费。为了解决这个问题,作者提出这些级联的卷积应使用不同的膨胀率。如2-2-2的膨胀率(对应下图的第一行)可以改为1-2-3的膨胀率(对应下图的第二行),且最终的视野域保持不变。

这里写图片描述

Experiments

对于DUC的作用,作者在Cityscapes上进行了对比试验。使用上采样率为8的反卷积层、使用级联的上采样率为2和4的两个反卷积层以及使用DUC的网络分别取得了75.1%,75%和75.7%的mIoU性能。

对于HDC,作者并没有提供在同一视野域下使用相同膨胀率的网络和使用HDC网络之间的对比。

阅读全文
0 0
原创粉丝点击