调查服务MORE>>
联系我们
联系人:张经理
手机号:18353158976
QQ 号:2827831689
地 址:上海市闸北恒通路360号一天下大厦12楼
  电子发烧友>>您当前位置: > 经典案例 >

电子发烧友

作者:采集侠 时间:2019-06-12 01:16

图像的语义分割是将输入图像中的每个像素分配一个语义类别,以得到像素化的密集分类。虽然自2007年以来,语义分割/场景解析一直是计算机视觉社区的一部分,但与计算机视觉中的其他领域很相似,自 2014 年 Long 等人首次使用全卷积神经网络对自然图像进行端到端分割,语义分割才有了重大突破。

电子发烧友

图1:输入图像(左),FCN-8s 网络生成的语义分割图(右)(使用pytorch-semseg训练)

FCN-8s 架构在 Pascal VOC 2012 数据集上的性能相比以前的方法提升了 20%,达到了 62.2% 的 mIOU。这种架构是语义分割的基础,此后一些新的和更好的体系结构都基于此。

全卷积网络(FCNs)可以用于自然图像的语义分割、多模态医学图像分析和多光谱卫星图像分割。与 AlexNet、VGG、ResNet 等深度分类网络类似,FCNs 也有大量进行语义分割的深层架构。

本文作者总结了 FCN、SegNet、U-Net、FC-Densenet E-Net 和 Link-Net、RefineNet、PSPNet、Mask-RCNN 以及一些半监督方法,例如 DecoupledNet 和 GAN-SS,并为其中的一些网络提供了 PyTorch 实现。在文章的最后一部分,作者总结了一些流行的数据集,并展示了一些网络训练的结果。

▌网络架构

一般的语义分割架构可以被认为是一个编码器——解码器网络。编码器通常是一个预训练的分类网络,像 VGG、ResNet,然后是一个解码器网络。这些架构之间的不同主要在于解码器网络。解码器的任务是将编码器学习到的可判别特征(较低分辨率)从语义上映射到像素空间(较高分辨率),以获得密集分类。

不同于分类任务中深度网络的最终结果(即类存在的概率)被视为唯一重要的事,语义分割不仅需要在像素级有判别能力,还需要有能将编码器在不同阶段学到的可判别特征映射到像素空间的机制。不同的架构采用不同的机制(跳远连接、金字塔池化等)作为解码机制的一部分。

一些上述架构和加载数据的代码可在以下链接获得:

Pytorch:https://github.com/meetshah1995/pytorch-semseg

这篇论文对语义分割(包括 Recurrent Style Networks)作了一个更正式的总结。

▌Fully Convolution Networks (FCNs) 全卷积网络

我们将当前分类网络(AlexNet, VGG net 和 GoogLeNet)修改为全卷积网络,通过对分割任务进行微调,将它们学习的表征转移到网络中。然后,我们定义了一种新架构,它将深的、粗糙的网络层语义信息和浅的、精细的网络层的表层信息结合起来,来生成精确的分割。我们的全卷积网络在 PASCAL VOC(在 2012 年相对以前有 20% 的提升,达到了62.2% 的平均 IU),NYUDv2 和 SIFT Flow 上实现了最优的分割结果,对于一个典型的图像,推断只需要三分之一秒的时间。

电子发烧友

图2:FCN 端到端密集预测流程

关键特点:

特征是由编码器中的不同阶段合并而成的,它们在语义信息的粗糙程度上有所不同。

低分辨率语义特征图的上采样使用通过双线性插值滤波器初始化的反卷积操作完成。

从 VGG16、Alexnet 等现代分类器网络进行知识转移的优秀样本来实现语义细分。

电子发烧友

图3:将全连接层转换成卷积层,使得分类网络可以输出一个类的热图。

如上图所示,像 VGG16 分类网络的全连接层(fc6,fc7)被转换为全卷积层。它生成了一个低分辨率的类的热图,然后用双线性初始化的反卷积,并在上采样的每一个阶段通过融合(简单地相加)VGG16 中的低层(conv4和conv3)的更加粗糙但是分辨率更高的特征图进一步细化特征。在这里可以找到更加详细的 netscope 风格的网络可视化。

在传统的分类 CNNs 中,池化操作用来增加视野,同时减少特征图的分辨率。这对于分类任务来说非常有用,因为分类的最终目标是找到某个特定类的存在,而对象的空间位置无关紧要。因此,在每个卷积块之后引入池化操作,以使后续块能够从已池化的特征中提取更多抽象、突出类的特征。

电子发烧友

图4:FCN-8s 网络架构

另一方面,池化和带步长的卷积对语义分割是不利的,因为这些操作造成了空间信息的丢失。下面列出的大多数架构主要在解码器中使用了不同的机制,但目的都在于恢复在编码器中降低分辨率时丢失的信息。如上图所示,FCN-8s 融合了不同粗糙度(conv3、conv4和fc7)的特征,利用编码器不同阶段不同分辨率的空间信息来细化分割结果。

电子发烧友

图5:训练 FCNs 时卷积层的梯度

第一个卷积层捕捉低层次的几何信息,因为这完全依赖数据集,你可以注意到梯度调整了第一层的权重以使模型适应数据集。VGG 中更深层的卷积层有非常小的梯度流,因为这里捕获的高层次的语义概念足够用于分割。

电子发烧友

图6:反卷积(卷积转置)

电子发烧友

空洞卷积

语义分割架构的另一个重要方面是,对特征图使用反卷积,将低分辨率分割图上采样至输入图像分辨率机制,或者花费大量计算成本,使用空洞卷积在编码器上部分避免分辨率下降。即使在现代 GPUs 上,空洞卷积的计算成本也很高。

论文链接:https://arxiv.org/abs/1411.4038

▌SegNet

SegNet 的新颖之处在于解码器对其较低分辨率的输入特征图进行上采样的方式。具体地说,解码器使用了在相应编码器的最大池化步骤中计算的池化索引来执行非线性上采样。这种方法消除了学习上采样的需要。经上采样后的特征图是稀疏的,因此随后使用可训练的卷积核进行卷积操作,生成密集的特征图。我们提出的架构与广泛采用的 FCN 以及众所周知的 DeepLab-LargeFOV,DeconvNet 架构进行比较。比较的结果揭示了在实现良好的分割性能时所涉及的内存与精度之间的权衡。

电子发烧友

图7:SegNet 架构

关键特点:

SegNet 在解码器中使用去池化对特征图进行上采样,并在分割中保持高频细节的完整性。

编码器不使用全连接层(和 FCN 一样进行卷积),因此是拥有较少参数的轻量级网络。

电子发烧友

图8:去池化




上一篇:电脑维修、企业外包、网络布线
下一篇:思晗科技总经理周小佳辞职去年上半年公司实现扭亏转盈