A Review on Deep Learning Techniques Applied to Semantic Segmentation
2018-02-22 10:38:12
1. Introduction:
语义分割是计算机视觉当中非常重要的一个课题,其广泛的应用于各种类型的数据,如:2D image,video,and even 3D or volumetric data。
最近基于 deep learning 的方法,取得了非常巨大的进展,在语义分割上也是遥遥领先于传统算法。
本文对于比较流行的深度风格技术进行了总结,其主要贡献在于:
- 提供了一个非常广泛的现有分割数据集的总结;
- 一个深入的关于深度分割方法的总结,起源及其贡献;
- 关于常用的分割评价标准的总结,包括 accuracy,execution time,以及 memory footprint;
- 关于上述结果的总结,以及一系列可能的未来工作。
2. Terminology and Background Concepts:
本文对视觉认知看成是一个 coarse to fine 的过程,即:由粗到细的过程。
最基本的就是 classification,然后是 localization or detection,然后更高级的是 semantic segmentation,其中,更加细致的是:instance segmentation 以及 part-based segmentation。
语义分割的目标是:make dense predictions inferring labels for every pixel,i.e. each pixel is labeled with the class of its enclosing object or region.
2.1. Common Deep Network Architecture
本节重点回顾了一些经典且重要的网络结构,正是这些网络结构的出现,才使得分割领域取得了突飞猛进的进展。常见的网络结构有:Alexnet,VGG-16,GoogLeNet,and ResNet。
AlexNet:7 layers,属于 deep learning 早期的网络结构。
VGG:The main difference between VGG-16 and its predecessors is the use of a stack of convolution layers with small receptive fields in the first layers instead of few layers with big receptive fileds. This leads to less parameters and more non-linearities in between, thus making the decision function more discriminative and the model easier to train.
GoogLeNet:该网络进一步增加了 layer,并且引入了新的结构:Inception module。这种新的方法验证了 CNN layer 可用多种方式来堆叠,而不是传统的 sequential manner。实际上,这些模型由:a Network in Network (NiN) layer, a pooling operation, a large-size convolution layer, and small-sized convolution layer.
All of them are computed in parallel and followed by 1*1 convolution operations to reduce dimensionality.
ResNet:残差网络,更是将 CNN 的深度加深到变态的级别(1k+ layer),带来了更好的性能。这是通过一种 identity skip connections 来实现的,即:将他们的输入拷贝给下一层。这种方法底层的直观的想法是:这确保了下一层学习到了新的不同的东西,至少不同于前一层的输出(different from what the input has already encoded, since it is provided with both the output of the previous layer and its unchanged input)。此外,这种连接在某种程度上,缓解了梯度消失的问题(help overcoming the vanishing gradients problem)。
ReNet:Yoshua Bengio 等人提出 ReNet 网络结构,将 CNN 中的 Conv + Pooling 操作替换为 4 RNNs sweeping the image vertically and horizontally in both directions。
当然了,还有 CVPR 2017 年的 Dense Connected Network,这篇文章并没有回顾到,Dense Net 取得了更好的结果。
2.2 Transfer Learning:
从头开始训练一个网络是不可取的,因为这需要大量的数据,并且很难训练。现有的方法,基本都是在 pre-trained model 的基础上进一步微调出来的,而不是随机初始化一个网络参数。Yosinski et al. 已经证明,即使是 较远的 task 上迁移过来的 feature,都是比随机初始化要好的。
但是,直接将这种迁移技术应用过来也是不直观的:
一方面,想这么迁移特征,就要求那部分的网络结构要相同。这对于新提出的网络结构并不适用,因为迁移是需要利用现有网络结构的。
另一方面,当微调的时候,训练的方法和随机初始化那样的训练方法也是有很大区别的。选择哪一些层进行微调,也是非常重要的 --- 通常是网络的 high-level part of the network,因为底层的特征通常会包含一些通用的 feature --- 学习率的选择也是非常重要的,因为原本模型的参数已经很好了,这个时候,没有必要进行较大幅度的改变。
由于采集和处理分割的数据是比较困难的,导致数据量不是很大,特别是对于 RGB-D 或者 3D datasets,这些数据更是少的可怜。所以,迁移学习或者 微调技术,就显得更加重要了。所以,迁移学习已经称为分割领域一个大的趋势和一项非常重要且有效的技术了。
2.3 Data Preprocessing and Augmentation:
数据增广是一项已经被广泛应用的技术,可以增强模型的泛化能力,防止过拟合。通常是在图像或者特征空间进行一系列的转换。
常见的是在 data space 进行转换,可以产生更多的训练样本,常见的操作有:translation, rotation, warping, scaling, color space shifts, crops, etc.
3. Datasets and Challengs
数据集这部分,感兴趣的可以参考原本,这里不一一介绍,只是列出其 dataset 名字。
3.1 2D datasets
- PASCAL Visual Object Classes (VOC)
- PASCAL Context
- PASCAL Part
- Semantic Boundaries Dataset (SBD)
- Microsoft Common Objects in Context (COCO)
- SYBTHetic Collection of Imagery and Annotations (SYNTHIA)
- Cityscapes
- Cam Vid
- KITTI
- Youtube-Objects
- Adobe‘s Portrait Segmentation
- Materials in Context (MINC)
- Densely-annotated VIdeo segmentation (DAVIS)
- Stanford background
- SiftFlow
3.2 2.5D Datasets
- BYUD v2
- SUN3D
- SUNRGBD
- The Object segmentation database (OSD)
- RGB-D object detection
3.3 3D datasets :
- ShapeNet Part
- Stanford 2D-3D-S
- A Benchmark for 3D Mesh Segmentation
- Sydney Urban Objects Dataset
- Large-Scale point cloud classification benchmark
4. Methods
将深度学习应用到语义分割中的一个比较成功的方法是:FCN(fully convolutional network)。 这个工作被认为是 deep learning 在分割领域的一个里程碑。
4.1 Decoder Variants
后续的很多拓展工作,都是基于 encoder-decoder framework,encoder 用于编码输入图像,decoder 用于解码输出的feature map,表示分割的结果。
SegNet 这种网络的典型代表,其网络结构示意图如下所示:
另一方面,FCN-based architecture 利用了可学习的反卷积滤波器(the learnable deconvolution filters to upsample feature maps)。在此之后,上采样的 feature maps 和 之前 卷积层的 feature map 进行相加。下图展示了这两种操作的具体细节:
4.2 Integrating Context Knowledge
Local 和 Global 的信息对于分割来说,是非常重要的。It also implies balancing local and global information.
On the one hand, fine-grained or local information is crucial to achieve good pixel-level accuracy.
On the other hand, it is also important to integrate information from the global context of the image to be able to resolve local ambiguities.
但是,vanilla CNNs 没有很好的达到这两者之间的平衡,所以,有很多的方法被提出来处理这个问题,常见的有:refinement as a post-processing step with Conditional Random Fields (CRFs), dilated convolutions, multi-scale aggregation, or even defer the context modeling to another kind of deep networks such as RNNs.
4.2.1 Conditional Random Fields