Encoder-decoder with atrous separable convolution for semantic image segmentation

经典语义分割论文解读-Deeplab系列 - 知乎作为使用深度学习方法解决计算机视觉问题的一个重要分支,语义分割一直是一个重要的研究方向,一大堆研究人员前仆后继的往这个坑里跳,也相继的产出了很多惊艳的研究成果,今天我们一起了解下语义分割中很重要的一…https://zhuanlan.zhihu.com/p/357082897关于全卷积神经网络的思考 - 知乎最近一个月先后想明白了目标检测和图像分类、语意分割和图像分类之间的联系。 通过论文《Single-Stage Multi-Person Pose Machines》和《PolarMask: Single Shot Instance Segmentation with Polar Representation…https://zhuanlan.zhihu.com/p/89954785

如何理解空洞卷积(dilated convolution)? - 知乎论文,Multi-scale context aggregation with dilated convolutions:Multi-Scale Context Aggregation b…https://www.zhihu.com/question/54149221

        全卷积网络在语义分割上的应用还是很广泛的,语义分割是cv中最为主流的方向之一,在很多方向上的应用也比较广泛,像素级的分类。其实现在语义分割的方法在文档篡改检测上已经成为一个主流的方向了。这篇文章是v3+,讲的整体线路就比较简单了,前面的结构演化可能已经写的比较多了。

1.abstract

        空间特征金字塔池化模块和encoder-decoder结构广泛的应用于语义分割任务,前者能够使用滤波器或者池化操作以多种rate和多个有效感受野探测输入特征从而编码多尺度上下文信息,后者可以通过逐渐恢复空间信息来捕获更清晰的对象边界。deeplabv3+对解码器做了改进,细化分割结果。

2.introduction

Encoder-decoder with atrous separable convolution for semantic image segmentation_第1张图片

上面这个图是关键,图a是spatial pyramid pooling module,图b是encoder-decoder结构,这个结构现在应用是及其广泛的,图a在经过backbone的2x2x2=8倍降采样之后,通过neck的aspp,再经过8倍的上采样线性插值恢复到原图上,这个思路基本和现在的文字检测的思路比较一致,主要还是监督的head上所有差异,图b是非常标准的上采样多尺度融合,这个看起来像是fpn,降采样了32倍,由于降采样的尺度过大,一定要做多尺度融合,否则直接从最后一层做上采样效果肯定不太行,centernet的backbone也只做了4倍降采样,dbnet和east都是四倍,多了插值回来的图就会有很大的误差,图c是文本的方法,降采样了16倍,但是有一层特征融合,相当于取了个均衡。

        为了在多个尺度上捕获上下文信息,deeplabv3应用了几个具有不同速率的并行空洞卷积(aspp),而pspnet在不同的网格尺寸上应用池化操作,空洞卷积可以起到分辨率不降低但是感受野增大的效果,但是速度会变慢。尽管最后一个特征图中编码了丰富的语义信息,但是由于主干网中的池化或stride卷积操作,缺少与对象边界相关的详细信息。this could be alleviated by applying the atrous convolution to extract denser feature maps.可以通过空洞卷积去提取更加密集的特征图来缓解。就是说主干网中的池化和步长卷积带来的下采样可以通过空洞卷积来处理,空洞卷积是扩大感受野的但不降低分辨率,如果只采用无步长的卷积,有个问题,感受野不变,其实频繁采样意义不大,相当于在局部信息上多了多次特征提取,还不如在同一层多加个通道,空洞卷积通过扩大感受野模拟了下采样的过程还不改变分辨率,但是也有大问题,在有效的gpu内存上,8倍或者4倍的输出特征图的计算量是很大的,centernet的backbone的输出特征图就是4倍,加dcn的dla效果还是很不错的,其实像fpn这种结构本身都是相互融合的,在文字检测上非常常用,在目标检测上由于目标的分而治之,所以其实存在多个fpn上目标的分配问题,特征的多尺度融合并不是效果提升的关键,这点在分割上可能更加有效,毕竟是像素级的分类。 以 ResNet-101为例,当应用 atrous 卷积提取比输入分辨率小 16 倍的输出特征时,最后 3 个残差块(9 层)内的特征必须被扩张。如果需要比输入小 8 倍的输出特征,则 26 个残差块(78 层!)将受到影响。因此,如果为此类模型提取更加密集的输出特征,则计算量会很大,encoder-decoder的结构的输出也可以做到降采样不多,可以拿到清晰的对象边界。因此把两者结合是比较好的选择。        其实我个人感觉到这里,这篇文章就基本了然了,图c也很清晰,空洞卷积用在aspp模块,encoder-decoder结构用来还原原图,是16倍的降采样,本文的backbone使用了xception的结构,即深度可分离卷积。

3.related work

Encoder-decoder with atrous separable convolution for semantic image segmentation_第2张图片

4.methods

4.1 encoder-decoder with atrous convolution

空洞卷积允许我们显式的控制由cnn计算的特征的分辨率并调整滤波器的视野以捕获多尺度的信息。

Encoder-decoder with atrous separable convolution for semantic image segmentation_第3张图片

rate决定了我们对输入信号进行采样的步幅。r=1,通过改变苏履职自适应的修改过滤器的视野。

deeplabv3 as encoder:采用空洞卷积以任意分辨率提取深度卷积神经网络的特征,在这里,我们将输出步幅表示为输入图像空间分辨率与最终输出分辨率之间的比率(在全局池化或全连接层之前)。对于图像分类任务,最终特征图的空间分辨率通常比输入图像分辨率小32倍,但对于语义分割任务,可以采用stride=16/8,通过移除最后一个或两个块中的stride并相应的应用空洞卷积(rate=2,rate=4分别应用在最后两个块艺术处stride=8)。

proposed decoder:deeplabv3的编码器特征通常使用stride=16计算,被双线性上采样16倍,可以被认为是一个简单的解码器模块,然而这个简单的解码器模块可能无法成功的恢复对象分割细节。本文,编码器特征首先被双线性上采样4倍,然后与来自backbone的低阶特征相连接,使用1x1conv来减少通道数量,,然后是另一个简单的双线性4倍,就是说,解码器是两个双线性,在两个双线性上采样中间做了一次特征融合。

4.2 modified aligned xeception

左右的最大池化操作都被带stride的深度可分离卷积取代。

5.experimental evaluation

Encoder-decoder with atrous separable convolution for semantic image segmentation_第4张图片

VOC2012包括20个前景类别和一个背景类。性能是根据21个类miou的平均像素交叉联合来衡量的。输入图像大小是513x513.

你可能感兴趣的:(图像分割,深度学习,计算机视觉,人工智能)