语义分割中的深度学习方法全解:从FCN、SegNet到各代DeepLab

图像语义分割就是机器自动从图像中分割出对象区域,并识别其中的内容。

下面将从以下几个方面分别介绍:
语义分割的概念、相关解决方法、相关研究的综述。

语义分割是什么?

语义分割方法在处理图像时,具体到像素级别,也就是说,该方法会将图像中每个像素分配到某个对象类别。下面是一个具体案例。

在这里插入图片描述
左边为输入图像,右边为经过语义分割后的输出图像。

该模型不仅要识别出摩托车和驾驶者,还要标出每个对象的边界。因此,与分类目的不同,相关模型要具有像素级的密集预测能力。

目前用于语义分割研究的两个最重要数据集是VOC2012和MSCOCO。

VOC2012:
https://link.zhihu.com/?target=http%3A//host.robots.ox.ac.uk/pascal/VOC/voc2012/

MSCOCO:
https://link.zhihu.com/?target=http%3A//mscoco.org/explore/

有哪些方法?

在深度学习应用到计算机视觉领域之前,研究人员一般使用纹理基元森林(TextonForest)或是随机森林(Random Forest)方法来构建用于语义分割的分类器。

卷积神经网络(CNN)不仅能很好地实现图像分类,而且在分割问题中也取得了很大的进展。

最初,图像块分类是常用的深度学习方法,即利用每个像素周围的图像块分别将各像素分成对应的类别。其中,使用图像块的主要原因是分类网络通常具有全连接层,其输入需为固定大小的图像块

2014年,加州大学伯克利分校的Long等人提出的完全卷积网络(Fully Convolutional Networks),推广了原有的CNN结构,在不带有全连接层的情况下能进行密集预测。

这种结构的提出使得分割图谱可以生成任意大小的图像,且与图像块分类方法相比,也提高了处理速度。在后来,几乎所有关于语义分割的最新研究都采用了这种结构。

除了全连接层结构,在分割问题中很难使用CNN网络的另一个问题是存在池化层。池化层不仅能增大上层卷积核的感受野,而且能聚合背景同时丢弃部分位置信息。然而,语义分割方法需对类别图谱进行精确调整,因此需保留池化层中所舍弃的位置信息。

研究者提出了两个不同形式的结构来解决这个问题。

第一种方法是编码器–解码器结构,其中,编码器使用池化层逐渐缩小数据的空间维度,而解码器通过反卷积层等网络层逐步回复图目标的细节和相应的空间维度。从解码器到编码器之间,通常存在直接的信息链接, 来帮助解码器更好的恢复目标细节。 在这种方法中,一种典型的网络结构就是U-Net 网络。

在这里插入图片描述
一种典型的编码器-解码器结构U-Net

第二种方法使用了成为空洞卷积的结构,而且去除了池化层结构。

在这里插入图片描述
空洞卷积,当比率为1时,即为经典的卷积结构。

**条件随机场(Conditional Random Field,CRF)**方法通常在后期处理中用于改进分割效果。CRF方法是一种基于底层图像像素强度进行“平滑”分割的图模型,在运行时会将像素强度相似的点标记为同一类别。加入条件随机场方法可以提高1~2%的最终评分值

在这里插入图片描述
发展中的CRF方法效果。b图中将一维分类器作为CRF方法的分割输入;c、d、e图为CRF方法的三种变体;e图为广泛使用的一种CRF结构。

接下来,我会梳理一些代表性论文,来介绍从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

于2014年11月14日提交到arvix

https://arxiv.org/abs/1411.4038

主要贡献:

将端到端的卷积网络推广到语义分割中;
重新将预训练好的Imagenet网络用于分割问题中;
使用反卷积层进行上采样;
提出了跳跃连接来改善上采样的粗糙程度。

具体解释:

本文的关键之处: 分类网络中的全连接层就是利用卷积核遍历整个输入区域的卷积操作。

这相当于在重叠的输入图像块上评估原始的分类网络,但是与先前相比计算效率更高,因为在图像块重叠区域,共享计算结果。

尽管这种方法并不是这篇文章中所特有的,还有一篇关于overfeat的文章也使用了这种思想,但是确实显著提高了在VOC2012数据集上的实际效果。

在这里插入图片描述
用卷积运算实现的全连接结构

再将VGG等预训练网络模型的全连接层卷积话后, 由于CNN网络中的池化操作, 得到的特征图谱仍需要上采样。

反卷积在进行上采样时,不是简单的双线性插值, 而是通过学习实现插值操作, 由此网络层被成为上卷积, 完全卷积, 转置卷积或是分层卷积。

池化操作丢失了部分特征, 使得即使通过上采样加上反卷积也会产生粗糙的分割图, 由此,本问还从高分辨率的特征图谱中引入了跳跃连接方式。

在这里插入图片描述
个人评论:

本文的研究贡献非常重要,但是最新的研究已经很大程度地改进了这个结果。

SegNet

主要贡献:
将最大池化操作转置了解码器中,改善了分割的分辨率。

具体解释:
在FCN网络中, 通过上卷积层和一些跳跃连接 产生了粗糙的分割图, 为了提升效果引入了更多的跳跃连接。

然而,FCN网络仅仅复制了编码器特征,而Segnet网络复制了最大池化指数。这使得在内存使用上,SegNet比FCN更为高效。

在这里插入图片描述
SegNet网络结构

SegNet网络结构

个人评论:
FCN和SegNet 都是最先出现的编码器–解码器结构,但是SegNet的网络结构的基准分值还不能满足实际的使用的需求。

空洞卷积

主要贡献:

使用了空洞卷积,这是一种可用于密集预测的卷积层;
提出在多尺度聚集条件下使用空洞卷积的“背景模块”。

具体解释:

池化操作增大了感受野,但是是得分辨率降低, 因此该论文提出的空洞卷积层是如此工作的。

在这里插入图片描述
空洞卷积示意图:

空洞卷积层在不降低空间维度的前提下增大了相应的感受野指数。

在接下来将提到的DeepLab中,空洞卷积被称为多孔卷积(atrous convolution)。

从预训练好的分类网络中(这里指的是VGG网络)移除最后两个池化层,而用空洞卷积取代了随后的卷积层。

特别的是,池化层3和池化层4之间的卷积操作为空洞卷积层2,池化层4之后的卷积操作为空洞卷积层4。

这篇文章所提出的背景模型(frontend module)可在不增加参数数量的情况下获得密集预测结果。

这篇文章所提到的背景模块单独训练了前端模块的输出,作为该模型的输入。该模块是由不同扩张程度的空洞卷积层级联而得到的,从而聚集多尺度背景模块并改善前端预测效果。

在这里插入图片描述

个人评论:

需要注意的是,该模型预测分割图的大小是原图像大小的1/8。这是几乎所有方法中都存在的问题,将通过内插方法得到最终分割图。

DeepLab(v1和v2)

主要贡献:

提出了空洞卷积
提出了在空间维度上实现金字塔的空洞池化
使用全连接条件随机场

具体解释:

空洞卷积在不增加参数数量的情况下增大了感受野,按照上文提到的空洞卷积论文的做法,可以改善分割网络。

我们可以通过将原始图像的多个重新缩放版本传递到CNN网络的并行分支(即图像金字塔)中,或是可使用不同采样率(ASPP)的多个并行空洞卷积层,这两种方法均可实现多尺度处理。

我们也可通过全连接条件随机场实现结构化预测,需将条件随机场的训练和微调单独作为一个后期处理步骤。

在这里插入图片描述
DeepLab2网络的处理流程

在这里插入图片描述

PSPNet

主要贡献:

提出了金字塔池化模块来聚合背景信息;
使用了附加损失(auxiliary loss)。

具体解释:

全局场景分类很重要,由于它提供了分割类别分布的线索。金字塔池化模块使用大内核池化层来捕获这些信息。

和上文提到的空洞卷积论文一样,PSPNet也用空洞卷积来改善Resnet结构,并添加了一个金字塔池化模块。该模块将ResNet的特征图谱连接到并行池化层的上采样输出,其中内核分别覆盖了图像的整个区域、半各区域和小块区域。

在ResNet网络的第四阶段(即输入到金字塔池化模块后),除了主分支的损失之外又新增了附加损失,这种思想在其他研究中也被称为中级监督(intermediate supervision)。

在这里插入图片描述
PSPNet网络结构

在这里插入图片描述

DeepLab v3

主要贡献:

改进了空间维度上的金字塔空洞池化方法(ASPP);
该模块级联了多个空洞卷积结构。

具体解释:

与deeplabv2 一样,都加入了空洞卷积, 这项研究也用了空洞卷积/ 多空卷积来改善ResNet的网络结构。

这篇论文提出三种改善ASPP的方式, 涉及了像素级的连接, 加入了1X1 的卷积和三个不同比比率下的3x3的空洞卷积, 还在每个并行卷积之后都加入批量归一化操作。

级联模块实际上是一个残差模块, 但其中的空洞卷积层是以不同的比率构建的, 这个模块与空洞卷积模块中的背景模块是相似的, 但直接应用到中间特征谱, 而不是置信图谱,。置信图谱是指其通道数与类别数相同的CNN网络顶层特征图谱。

该论文独立评估了这两个所提出的模型,尝试结合将两者结合起来并没有提高实际性能。两者在验证集上的实际性能相近,带有ASPP结构的模型表现略好一些,且没有加入CRF结构。

这两种模型的性能优于DeepLabv2模型的最优值,文章中还提到性能的提高是由于加入了批量归一化层和使用了更优的方法来编码多尺度背景。

在这里插入图片描述

△ DeepLabv3 ASPP结构

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪子私房菜

给小强一点爱心呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值