[关闭]
@devilogic 2019-03-03T16:29:40.000000Z 字数 5257 阅读 3091

使用深度学习进行语义分割

神经网络


什么是语义分割

语义分割是将图片上每一个像素表示的对象进行自动分类。例如:

ss1.jpg-33.8kB ss2.png-4.1kB

算法可以自行对图像进行像素分割,鉴别出对象。

VOC2012MSCOCO有很多关于语义分割的数据库

与直接近似的区别

在深度学习取代计算机视觉之前,人们使用TextonForestRandom Forest based classifiers进行语义分割。在分割问题上图像分类,卷积网络获得了巨大的成功。

最初的深度学习近似流行之一的技术是patch classification,这种算法将每个像素分别的分类到若干个小图片上。主要使用这种小图片补丁来输入到一个全链接层的网络进行分类因此需要固定图片的尺寸。

2014年,来自伯克利的Long等人的全卷积网络(full tional Networks, FCN)使CNN架构在没有完全连接的层的情况下实现了密集预测。这使得可以为任何大小的图像生成分割映射,而且与patch分类方法相比,分割映射也快得多。几乎所有后续的语义分割技术都采用了这种模式。

除了全连接的层之外,使用CNNs进行分割的主要问题之一是池化层。池层增加了视图的字段,并且能够在丢弃“where”信息的同时聚合上下文。然而,语义分割需要类映射的精确对齐,因此需要保存信息的“位置”。为了解决这个问题,文献中出现了两种不同的体系结构。

首先是编码器-解码器架构。编码器通过池化层逐渐减小空间维数,解码器逐渐恢复对象细节和空间维数。编码器与解码器之间通常有快捷连接,以帮助解码器更好地恢复对象细节。U-Net是这个类中的一个流行架构。

unet.png-139.8kB

第二类体系结构使用所谓的dilated/atrous convolutions,而不使用池层。

dilated_conv.png-60.9kB

通常采用条件随机域(CRF)后处理技术来提高分割效果。CRFs是一种基于底层图像强度的图像平滑分割模型。它们的工作原理是基于这样的观察:相似的强度像素往往被标记为相同的类。CRFs可以使分数提高1-2%。

crf.png-664.8kB

CRF插图。(b)一元分类器是CRF的分割输入。(c, d, e)是CRF的变体,其中(e)被广泛使用。

在下一节中,我将总结几篇从FCN开始描述分割架构发展的论文。所有这些架构都在VOC2012评估服务器上进行了基准测试。

摘要

  1. FCN
  2. SegNet
  3. Dilated Convolutions
  4. DeepLab (V1 & v2)
  5. RefineNet
  6. PSPNet
  7. Large Kernel Matters
  8. DeepLab v3

对于每一篇论文,我都会列出它们的主要贡献并加以解释。我还展示了他们在VOC2012测试数据集上的基准分数(平均IOU)。

FCN

Fully Convolutional Networks for Semantic Segmentation
Submitted on 14 Nov 2014
Arxiv Link

主要贡献:

解释:

关键的观察结果是,分类网络中完全连接的层可以看作是覆盖了整个输入区域的内核的卷积。这相当于对原始分类网络的重叠输入patch进行评估,但由于计算是在patch的重叠区域上共享的,因此效率要高得多。尽管这一发现并非本文所独有(参见overfeat这篇文章),但它极大地改善了VOC2012的技术水平。

FCN-illustration.png-134.4kB

在对像VGG这样的imagenet预训练网络中的完全连接层进行卷积之后,由于CNNs中的池操作,仍然需要对feature map进行上采样。与简单的双线性插值不同,反卷积层可以学习插值。这一层也被称为up卷积,全卷积,转置卷积或部分带卷积。
然而,向上采样(即使使用反容积层)会产生粗糙的分割映射,因为在池化过程中会丢失信息。因此,从高分辨率的feature map中引入了快捷/跳过连接。

Benchmarks (VOC2012):

分数 注释 链接
- leaderboard
更多的冲量 leaderboard

评价:

SegNet

SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
Submitted on 2 Nov 2015
Arxiv Link

主要贡献:

解释:

尽管有上卷积层和一些快捷连接,FCN仍然可以生成粗糙的分割映射。因此,引入了更多的快捷连接。但是,不像FCN那样复制编码器特性,而是复制maxpooling中的索引。这使得SegNet比FCN的内存效率更高。
segnet_architecture.png-114.4kB

Benchmarks (VOC2012):

分数 注释 链接
- leaderboard

评价:

Dilated Convolutions

Multi-Scale Context Aggregation by Dilated Convolutions
Submitted on 23 Nov 2015
Arxiv Link

主要贡献:

解释:

池化有助于分类网络,因为接受域增加了。但这不是分割的最佳方法,因为池化会降低分辨率。因此,作者使用了膨胀卷积层,其工作原理如下:
dilation.gif-122kB
这里是它的一个实现:链接
膨胀卷积层(在DeepLab中也称为无卷积层)可以在不降低空间维数的情况下使视场呈指数增长。
去除预处理分类网络(这里是VGG)的最后两层池化层,用扩张卷积替换后续卷积层。其中,池-3和池-4之间的卷积具有扩张2,池-4之后的卷积具有扩张4。利用该模块(本文称为前端模块),在不增加参数数量的情况下,实现了稠密预测。
将前端模块的输出作为输入单独训练一个模块(本文称为上下文模块)。该模块是由不同扩展的卷积级联而成,可以对多尺度上下文进行聚合,提高对前端的预测能力。

Benchmarks (VOC2012):

分数 注释 链接
frontend 在论文中进行了报告
frontend + context 在论文中进行了报告
frontend + context + CRF 在论文中进行了报告
frontend + context + CRF-RNN 在论文中进行了报告

评价:

DeepLab (v1 & v2)

v1 : Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs
Submitted on 22 Dec 2014
Arxiv Link

v2 : DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs
Submitted on 2 Jun 2016
Arxiv Link

主要贡献:

解释:

Atrous/Dilated 卷积增加了视场而不增加参数的数量。网络按照论文(dilated convolutions paper)进行修改。
多比例处理是通过将原始图像的多个缩放版本传递给并行CNN分支(图像金字塔)并/或使用具有不同采样率的多个并行无卷积层(ASPP)来实现的。
结构预测由全连通CRF完成。CRF作为后处理步骤单独进行训练/调优。
deeplabv2.png-144.1kB

Benchmarks (VOC2012):

分数 注释 链接
ResNet-101 + atrous Convolutions + ASPP + CRF leaderboard

RefineNet

RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation
Submitted on 20 Nov 2016
Arxiv Link

主要贡献:

解释:

使用dilated/atrous卷积的方法并非没有缺点。膨胀卷积在计算上非常昂贵,并且占用大量内存,因为它们必须应用于大量高分辨率的特征图。这阻碍了高分辨率预测的计算。例如,DeepLab的预测是原始输入的1/8。
因此,本文提出采用编码器-解码器架构。编码器部分为ResNet-101块。解码器具有RefineNet块,它连接/融合来自编码器的高分辨率特性和来自以前RefineNet块的低分辨率特性。
refinenet_architecture.png-164.5kB
每个RefineNet块都有一个组件,用于通过向上采样较低的分辨率特征来融合多个分辨率特征,以及一个组件,用于基于重复的5 x 5 stride 1池化层捕获上下文。这些组件中的每一个都采用了遵循标识映射思维模式的剩余连接设计。
refinenet-block.png-183.1kB

Benchmarks (VOC2012):

分数 注释 链接
Uses CRF, Multiscale inputs, COCO pretraining leaderboard

PSPNet

Pyramid Scene Parsing Network
Submitted on 4 Dec 2016
Arxiv Link

主要贡献:

解释:

全局场景分类很重要,因为它为分割类的分布提供了线索。金字塔池化模块通过应用大型内核池层来捕获这些信息。
与(dilated convolutions论文)[https://arxiv.org/abs/1511.07122]一样,展开卷积对Resnet进行了修改,并添加了一个金字塔池模块。该模块将ResNet的特征映射与并行池层的上采样输出连接起来,内核覆盖图像的整个、一半和小部分。
在ResNet (i.e金字塔池化模块输入)。这个想法在其他地方也被称为中间监管。
pspnet.png-120kB

Benchmarks (VOC2012):

分数 注释 链接
MSCOCO pretraining, multi scale input, no CRF leaderboard
no MSCOCO pretraining, multi scale input, no CRF 在论文中有所报告

Large Kernel Matters

Large Kernel Matters -- Improve Semantic Segmentation by Global Convolutional Network
Submitted on 8 Mar 2017
Arxiv Link

主要贡献:

解释:

语义分割要求对分割后的对象进行分割和分类。由于在分割体系结构中不可能存在完全连接的层,所以使用非常大的内核进行卷积。
采用大内核的另一个原因是,尽管像ResNet这样的深层网络具有非常大的接受域,但研究表明,网络倾向于从更小的区域(有效接受域)收集信息。
较大的内核在计算上很昂贵,并且有很多参数。因此,卷积近似为的卷积之和。本文将该模块称为全球卷积网络(Global tional Network, GCN)。
说到架构,ResNet(没有任何膨胀的卷积)形成架构的编码器部分,而GCNs和反卷积形成解码器。还使用了一个简单的残差块边界细化(BR)。
large_kernel_matter.png-206.2kB

Benchmarks (VOC2012):

分数 注释 链接
- 在论文中有所报告
- leaderboard

DeepLab v3

Rethinking Atrous Convolution for Semantic Image Segmentation
Submitted on 17 Jun 2017
Arxiv Link

主要贡献:

解释:

ResNet模型被修改为使用DeepLab v2dilated convolutions中的dilated/atrous 卷积。改进的ASPP包括图像级特征的串联、卷积和三个不同速率的无卷积。批处理规范化在每个并行卷积层之后使用。
级联模块是一个resnet块,除了组件卷积层是用不同的速率生成的。这个模块类似于展开卷积论文中使用的上下文模块,但它是直接应用于中间特征图而不是belief map (belief map是最终的CNN特征图,通道数量等于类的数量)。
这两个模型都是独立评估的,试图将两者结合并没有改善性能。它们在验证集上的表现非常相似,ASPP的表现稍好一些。不使用CRF。
这两个模型都优于DeepLab v2中的最佳模型。作者指出,这种改进来自于批处理规范化和编码多尺度上下文的更好方法。
deeplabv3.png-72.5kB

Benchmarks (VOC2012):

分数 注释 链接
used ASPP leaderboard
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注