论文笔记 | SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation

原文链接:SegNet: A Deep ConvolutionaEncoder-Decoder Architecture for Image Segmentation

一、论文摘要:

SegNet:

  1. 一种新的、实用的深度全卷积神经网络用于像素级语义分割。包括编码网络、解码网络及像素级分类层。
  2. 解码层对低分辨率的特征图进行上采样,上采样时使用与下采样相同的下标映射。从而省去上采样的参数学习。
  3. 上采样后的特征图是稀疏的(大部分参数为零),之后与训练好的分类器卷积,产生密集特征图。
  4. 该网络旨在用于场景理解任务,设计时考虑其内存占用及计算效率。在内存及计算时间上均较高效。参数量少,可使用随机梯度下降实现端到端训练。通过不同模型在街景及SUN RGB-D数据集上的性能比较,显示出SegNet 有竞争性的推理时间最高效的推理时内存占用

二、语义分割应用场景及方法概括:

应用场景

  • 语义分割在场景理解、物体间支撑关系推断及自动驾驶等领域都有着广泛应用。

2.1 早期方法:

  • 早期基于低级别视觉曲线分割的方式迅速被广受欢迎的机器学习算法所取代。
  • 依靠手工设计的特征对像素独立分类。典型地,将一个图块输入分类器,如,随机森林,级联分类器等,预测中心像素的类概率。之后使用对间(pair wise)或更高阶的条件随机场(CRF)平滑以提升准确率。或者使用流行的手工设计特征及时空域超像素化获得更高的准确率。
  • 图像语义分割像素标签分布不均的问题:在CamVid测试最佳的技术提出结合目标检测输出结果及CRF框架的类标签,以解决标签频率不平衡的问题。
  • RGBD数据集的语义分割:NYU数据集使得RGBD像素级语义分割变得流行,也显示出深度通道对于提高分割效果的重要性。相关研究使用RGB-SIFT和depth-SIFT等特征和像素位置作为神经网络的输入以进行类预测。之后利用CRF平滑预测结果。使用更丰富的特征集包括LBP及区域分割可以获得更高的准确率。
  • 类间分割和支撑关系推断:使用RGB和基于深度的曲线。
  • 实时联合重构(real-time joint reconstruction)及语义分割。使用随机森林作为分类器,也有研究人员在类间分割之前进行边缘检测及层次化聚类。相同的是,这些方法都使用手工设计的特征对RGB或RGBD图像进行分类。

2.2 基于深度学习的方法:

  • 深度学习在手写数字识别、语音识别、图像分类及检测方面已经取得巨大成功。像素级语义分割成为一个热门的研究领域。深度学习在目标分类领域的成功使研究人员开始进一步探索其在诸如分割等结构化预测问题上的特征学习能力。

    • 直接将用于分类的深度架构用于像素级标注,其结果虽然令人鼓舞,但相对粗糙。这主要因为最大池化及降采样减少了特征图的分辨率。
    • 使用递归神经网络合并几个低分辨率预测结果,生成输入图像大小的像素级预测。
    • 这些方法的性能已经超过了基于手工特征的方法,但在边缘刻画能力上还相对欠缺。
  • 最近的语义分割模型通过学习解码,或将低分辨率图像表征映射到像素级预测,已经取得了当下最佳性能。

    • 编码器:使用VGG16分类器(包含13个卷积层及3个全连接层)产生低分辨率的特征。经常利用ImageNet物体分类训练集上的权重作为预训练权重。
    • 解码器形式多样。FCN通过学习对输入特征图的上采样,并将其与相应编码器特征图相结合作为下一层解码器的输入。该网络编码器网络参数量巨大(134M),而解码器参数量极少(0.5M)。这导致端到端训练极为困难,从而出现多阶段训练过程。解码器被逐渐加入训练好网络中,直到性能不再提高。其解码网络只包含三个解码器,因此忽略了高分辨率的特征图,导致边缘信息的一定损失(有文献证明哦,不是乱说的)。除此之外,编码器特征图的重复利用导致测试时内存占用高(需要保持编码器的特征图)。
    • 后处理:在网络之后添加在大数据集微调过的RNN可以提高FCN性能。RNN层有着CRFs类似的边缘刻画能力,拓展了FCN的特征表示能力。RNN显著提高了FCN-8的性能,同时随着训练数据的增加,这种性能提升在减小。有趣的是,反卷积网络的性能显著优于FCN,虽然其训练及推理花销较大。这也导致了一个疑问,当使用更优的前向分割引擎时,是否CRF-RNN的优势将会减弱。无论如何,CRF-RNN可以添加在任何语义分割架构之后。
  • 多尺度语义分割:
    • 使用多尺度图像输入
    • 结合模型中不同层间的特征图
    • 利用多尺度下提取出的特征提供局部及全局上下文信息,利用底层编码器的特征以保留更多的高频细节(边缘特征) 。部分架构由于参数较多难以训练,或使用数据增强进行多阶段训练。其由于在特征提取时有多路卷积故而推理时间较长。
  • 作者相信使用CRF能够提升性能,是因为在前向分割引擎中解码器的性能欠缺。
  • 最近提出的反卷积网络(deconvolutional network)及其半监督变种解耦网络(decouple network)使用编码特征图中最大元素位置,在解码网络中进行非线性上采样。其编码器包含VGG16全连接层,约占网络所有参数的90%。导致训练非常困难,需要借助区域提取等方法才能训练。推理时同样使用区域提取,极大地增加了推理时间。从标准的(benchmark)角度而言,这同样使得不借助其他辅助技术,进行架构性能比较变得困难。
  • 生物U-Net并未复用最大池化下标,而是将相应编码器的特征图(内存占用较大)传入解码器中,融合之后进行上采样。U-Net中没有VGG16中的conv5和max-pool5。而SegNet使用了VGG16的所有预训练卷积层。

三、SegNet架构

  • 作者设计SegNet的目的就是为了将低分辨率的特征图映射到输入分辨率以进行像素级分类。该种映射必须能够产生利用准确边缘定位的特征。
    论文笔记 | SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation_第1张图片

3.1 SegNet设计初衷:

SegNet被设计为一种高效的像素级语义分割网络。主要用于要求对外观(道路,建筑),形状(车辆,行人)进行建模,及理解诸如道路及人行道等不同类别间空间关系(上下文)的街景识别应用。

  1. 平滑的分割:在典型街景中,大部分像素属于某个较大的类别,如道路、建筑等,因此网络必须能够产生光滑的分割。
  2. 边缘信息:根据形状区分物体,即使物体较小。因此在提取图像表征时保留边缘信息是重要的。
  3. 计算时间、内存占用等方面的高效性。
  4. 端到端训练。保证可重复性,能够使用诸如随机梯度下降等方法高效地更新权重。

3.2 SegNet模型架构:

编码器:

  1. 使用VGG16的13个卷积层,并用其在大数据集分类任务中训练的权重初始化。
  2. 移除VGG16的全连接层,减少参数量(从134M到14.7M),易于训练。

解码器:

  1. 解码网络包含于编码器对应的层次化编码器。
  2. 解码器接收对应的编码器的最大池化下标,之后对输入特征图进行非线性上采样。该想法来源于一种非监督特征学习的架构设计。最大池化下标的重复利用有如下优点:
    • 提高边缘区分度
    • 减少端到端训练的参数量
    • 只需少许修改,该种上采样方式就能够嵌入到任何编码-解码网络架构中。
  3. 与第一个编码器对应的解码器产生多通道的特征图,尽管其编码器输入只有三个通道(RGB),除此之外,网络中的解码器均产生于编码器相同输入大小的输出。
  4. 最后一个解码器产生的高维度特征图经过soft-max分类器得到最终的分类结果。soft-max的输出为K个通道的图像,其中K为类标签数。

四、与其他语义分割网络的比较:

大多数语义分割网络使用特定的编码网络,即,VGG16,主要不同之处在于解码器、训练及推理。与SegNet相比,其他网络存在的缺点有:

  1. 训练困难:使用规模几百兆的预训练的参数,导致端到端训练极为困难。进而导致多阶段的训练过程。如FCN,在预训练的架构后添加网络,推理过程中使用区域生成(region proposals),将分类与语义网络的训练相结合。使用额外的数据进行预训练及全训练。
  2. 性能量化评估困难:用于增强性能的后处理等方法提升了模型在特定数据集上的性能,但这导致从中抽取关键设计因素,并对其进行量化评估的困难性。

你可能感兴趣的:(深度学习图像处理)