基于深度学习的图像语义分割综述(译)

一、语义分割是什么?

语义分割,指在图像上找到具有同一语义的像素,并将其归为一类,是计算机视觉中的关键问题之一,属于高级的视觉任务,是完全场景理解的基础。许多新兴的应用需要精准和高效的语义分割:自动驾驶、室内导航、虚拟现实和增强现实。这些需求随着深度学习方法的崛起一同迸发,衍生了大量计算机视觉相关的应用。具体的应用如下图所示。

left:input image.Right:semantic segmentation

除了要识别摩托车和车上的人外,我们还需要描绘出每个物体的边界。所以,不同于分类任务,我们需要从我们的模型中得到密集的像素集的预测结果。

VOC2012和MSCOCO是语义分割任务中最成功的数据集。

##二、两种方法的区别

在深度学习的方法流行之前,人们使用 TextonForest^1 和 Random Forest based classifiers^2 来进行语义分割。说到语义分割,卷积神经网络(CNN)在分割任务上也有大量成功的应用。

最早将深度学习成功应用于分割任务的方法是 patch classification^3,它将每一个像素根据周围的图片块分别分类。使用图片块的主要原因是分类网络通常有全连接层并且需要固定大小的图片。

在2014年,伯克利的 Lond 等人提出了 Fully Convolutional Nerworks(FCN)^4。推广了基于 CNN 的网络架构,在不使用全连接层的情况下进行密集预测。这使得用任意大小的图片来生成分割图成为可能,并且比块分类的速度更快。后来几乎所有的语义分割领域最优秀的成果都是对 FCN 进行的改进。FCN 可以称作是深度学习在语义分割领域的里程碑。

除了全连接层外,另一个使用 CNN 进行语义分割时会遇到的问题是池化层。池化层能够增加感知野并且能够在丢弃部分空间信息的同时聚合上下文信息。然而语义分割需要对像素的分类有明确的区分,需要将空间信息保留。有两种不同的网络架构可用来解决这个问题。

首先是编码-解码架构。编码通常是配合着池化层降低了空间维度,解码则是逐渐恢复对象细节和空间维度。网络中有很多直连编码器与解码器的链接,来复制解码器更好地恢复对象细节。U-Net^5 是这一架构的经典实现。

第二种架构是使用 dilated/atrous convolutions^6来替代传统的卷积操作。

Conditional Random Field(CRF) postprocessing^7通常用来提升语义分割的效果。CRFs 是一种图模型,可以使得语义分割的结果更加平滑,对于强度相似的像素更趋向于把它们标为一类。CRFs 可以提高 1~2% 的分数。

三、论文汇总

接下来我将介绍一些自 FCN 以来的能代表语义分割领域进展的论文(所有的论文都以 VOC2012 作为基准)

  1. FCN
  2. SegNet
  3. Dilated Convolutions
  4. DeepLatb(v1 & v2)
  5. DeepLab v3

对于每一篇论文,我列出了它们的主要贡献,并对主要工作进行了说明,并在最后列出了它们在 VOC2012 数据集上的得分,这样就能更直观地感受到语义分割领域的发展进程。

1.FCN^4

Fully Convolutional Networks for Semantic Segmentation

Submitted on 14 Nov 2014

关键贡献:

  • 推广了端到端的卷积神经网络在语义分割上的应用
  • 将 ImageNet 上的预训练模型应用在了语义分割上
  • 使用反卷积层上采样
  • 引入了跳转链接来提高上采样时的稀疏性

概要:

FCN的主要贡献是提出了利用分类网络中的全连接层来对输入图片的全部区域做卷积。这和传统的分类网络在输入图片块上做的操作是等价的,但是全连接层更加的高效,因为卷积核的共享权重机制。尽管这点贡献并不是这篇 Paper 独家提供的,它仍然将当时 VOC2012 数据集的分割效果做到了最好。

在对 ImageNet 上预训练的模型 VGG 进行全连接层的卷积操作后,特征图仍然需要上采样,因为 CNN 中的池化操作已经对特征图降了维。不同于使用简单的双线性插值,使用反卷积层可以自动学习插值的功能。这一层也被称为上卷积、全卷积、反置卷积等。

因为在池化过程中部分信息的丢失,反卷积操作只能产生稀疏的分割图。因此,用跳转链接将高分辨率的特征图引入就是非常有必要的了。

Benchmarks(VOC2012):

2.SegNet^8

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

关键贡献

  • 使用Maxpooling indices来增强位置信息。

概要:

FCN的upconvolution层+shortcut connections产生的分割图比较粗糙,因此SegNet增加了更多的shortcut connections。不过,SegNet并不是直接将encoder的特征进行直接复制,而是对maxpooling中的indices进行复制,这使得SegNet的效率更高。

Benchmarks(VOC2012):

3.Dilated convolution^9

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

关键贡献:

  • 使用空洞卷积用来进行稠密预测(dense prediction)。
  • 提出上下文模块(context module),使用空洞卷积(Dilated Convolutions)来进行多尺度信息的的整合。

概要:

pooling操作可以增大感受野,对于图像分类任务来说这有很大好处,但由于pooling操作降低了分辨率,这对语义分割来说很不利。因此作者提出一种叫做dilated convolution的操作来解决这个问题。dilated卷积(在deeplab中称为atrous卷积)。可以很好地提升感受野的同时可以保持空间分辨率。

网络架构有两种,一种是前端网络,另外一种是前端网络+上下文模块,分别介绍如下:

  • 将VGG网络的最后两个pooling层给拿掉了,之后的卷积层被dilated 卷积取代。并且在pool3和pool4之间空洞卷积的空洞率=2,pool4之后的空洞卷积的空洞率=4。作者将这种架构称为前端(front-end)。
  • 除了前端网络之外,作者还设计了一种叫做上下文模块(context module)的架构,加在前端网络之后。上下文木块中级联了多种不同空洞率的空洞卷积,使得多尺度的上下文信息可以得到整合,从而改善前端网络预测的效果。需要注意的是前端网络和上下文木块是分开训练的,因为作者在实验中发现,如果是联合在一起进行端对端的训练并不能改善性能。

Benchmarks(VOC2012):

4.DeepLab(v1,v2)^10

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

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

关键贡献:

  • 使用atrous卷积,也就是后来的空洞卷积,扩大感受野,保持分辨率。
  • 提出了atrous spatial pyramid pooling (ASPP),整合多尺度信息。
  • 使用全连接条件随机场(fully connected CRF)进行后处理,改善分割结果。

概述:

  1. 空洞卷积可以在不增加参数的情况下增加感受野。
  2. 通过两种方式来进行多尺度的处理:A.将原始图像的多种尺度喂给网络进行训练。B.通过平行的不同空洞率的空洞卷积层来获得。
  3. 通过全连接条件随机场来进行后处理,以改善分割结果。

Benchmarks(VOC2012):

5.DeepLab(v3)^11

Rethinking Atrous Convolution for Semantic Image Segmentation

Submitted on 17 Jun 2017

关键贡献:

  • 提升了 atrous 空间金字塔池化(ASPP)
  • 使用了层叠的 atrous 卷积的模型

概要:

使用 dilated/atrous 卷积优化了残差模型。提到了使用串联的图片级的特征来提升 ASPP,这种特征由不同比例的1x1卷积和3x3 atrous 卷积生成。在每一个并行的卷积层后也用到了批正态化。

层叠模型由多个残差块组成,这些残差块中的卷积层由不同比例的 atrous 卷积层构成。这个模型和 dilated 卷积中的模型很像,但它直接应用了中间的特征图,而不是 belief maps(belief maps 是CNN中最后的等同于数字分类的特征图)。

这两个提出的模型可以分别被独立验证,将两个模型混合并不能提升整体的效果。两个模型都能在验证集上取得不错的效果,ASPP 更好一些。而 CRF 并没有被应用在其中。

这两个模型的性能都优于 DeepLabv2。作者提到了性能的提升主要来自于批正态化和更好地对多维度特征图进行编码的方法。

Benchmarks(VOC):

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×