目前将语义分割应用到道路垃圾识别上的应用较少,在垃圾的识别方面,Mittal 等将深度学习应用到垃圾检测,其运用的网 络主要是全卷积神经网络.(Fully convolutional network.,FCN),通过 FCN 来实现图像之中检测到的垃圾区域的分割,实验结果显示,其在数据集的测试集上精度达到了 87.69%。这种方法虽然可以比较精确地识别出垃圾区域的边缘,然而,其产生的错误检测也比较多,有较多错检、误检的情况发生。魏书法等采用了深度学习的方法,运用了Faster-RCNN 网络,同时,为了加强测试模型的可靠性以及实时性,其使用迁移学习、样本融合、数据加强等方式来提高检测精度,在较少数据集的城市场景垃圾图像中获得了较好的识别效果。然而,当在不同尺度上测试集中 的数据样本和训练集中的数据样本相差较大时,其检测精度会有明显的下降。
深度学习在图像分割上的应用早已有之,近些年呈现爆发态势。卷积网络的首次实现可追溯至.1980 年 Fukushima提出的新识别机,而反向传播算法是Rumelhart等人在 1988 年提出的。在 1998 年,LeCun 等人开发出了 LeNet-5.网络模型,其是第一个在手写数字识别 MNIST 数据集上成功的网络,是卷积神经网络 (.Convolutional Neural .Network,CNN)的鼻祖。因此,从这个时候开始,就已经确定下来了卷积层、池化层以 及全连接层这三部分 CNN 最基本的框架。但由于当时的计算机性能差,而神经网络需要良好的计算资源作为基础,因此,在当时神经网络并没有引起人们足够的重视。 2012 年,Alex 等人提出了 AlexNet, Alex 在 ImageNet 比赛(.ILSVRC2012)上取得了最好的成绩,也渐渐吸引了人们对深度学习的注意,从此之后在深度学习上的研究也越来越多。.AlexNet 网络包括了 5 个卷积层以及 3 个全连接层,与LeNet-5 相比,AlexNet 在深度上加了不少,在层数上也要更多,其使用了数据增强方法来提高模型的自适应能力,还使用了线性整流函数(Rectified Linear Unit,ReLU)替代 Sigmoid 函数作为激活函数,大大减少了计算时间,使随机梯度下降的收敛速度更快。AlexNet 的全连接层中采用了 Dropout,Dropout 针对模型过拟合的问题,有一定的概率可以使神经元不被激活,但是卷积神经网络总的流程并没有多大变化。
2013 年,Zeiler 等人提出了 ZFNet, ZFNet 的网络结构没有特殊的改进,只对一些参数进行了调整,但是性能相较 AlexNet 而言提升了不少,在 ImageNet 比赛(ILSVRC2013)中夺得了分类任务的冠军。
2014 年,Simonyan 等人提出的 VGGNet(Visual Geometry Group Network)和 Szegedy 等人提出的 GoogLeNet 在 ImageNet 比赛(ILSVRC2014)中分别获得了第一名与第二名。VGGNet 采用了卷积核数量加倍,其将 AlexNet 原有的卷积核全部替换成 3×3 的小卷积核,并对其进行重复的堆叠操作,用来加深网络,同时,VGGNet 的池化层大小全部为 2×2 的尺寸,上述这些改进点使得 VGGNet的非线性表达变多,同时参数量也大大减少。GoogLeNet 也被称为 Inception-v1,其开发了 Inception 块来选择卷积类型,因此减少了人工操作。GoogLeNet 为了提取到图像的不同尺度上的信息,采取了不同尺寸的卷积核,为了减少特征图的维度,还使用了一个 1×1 的卷积核,这些输出都被连接在一起作为下一层的输入,其还提出了 Inception 网络,对 Inception 块进行堆叠操作,同时,为了进一步减少参数量,该网络没有采用全连接层,取而代之的是全局均值池化层。
2015 年, Long 等人针对之前的语义分割方法存在的缺陷,提出了 FCN 网络,FCN 网络是在 VGGnet 的基础上,将 VGGnet 上的全连接层换成了卷积层,同时,其引入了一个跳跃体系的结构,这个结构可以将不同层次的语义信息和外观信息等进行连接,从而兼顾不同方面以提高分割效果。何凯明等提出了深度残差网络(Residual Networks, ResNet), ResNet 通过引入的残差学习模块,将训练网络深度突破性地增加到 152 层,并在内部的残差块之中应用了跳跃连接,有效减轻了加深深度梯度消失的难题。同年,Ioffe S 等人提出了批处理规范化(Batch Normalization,BN),BN 作为模型体系结构的一部分,针对每个训练小批量执行归一化,以使得每一层神经网络的输入保持相同分布。BN 使得训练时可以使用更高的学习率,减小了在初始化时的局限性,其还可以充当正则化器,在某些情况下可以不使用 Dropout。同年,Szegedy 等人在 Inception-v1 上做出改进,提出了升级版本的 Inception-v2 以及 Inception-v3, Inception-v2 学习了 VGG,使用了 BN 的同时采用两个较小卷积的堆叠代替一个 5×5 的大卷积,不仅保持了感受野,还减小了参数量。在 Inception-v3 中,其在 Inception-v2 的基础上使用了卷积分解,将 7×7 的卷积分解成 1×7 和 7×1 的两层串联,将 3×3 的卷积分解成 1×3 和 3×1 的两层串联,这样不仅计算速度提高以及网络的分线性增强,同时还减小了过拟合的概率。
2016 年,Szegedy 等人对 Inception-v3 进行优化改进,提出 Inception-v4 以及 Inception-ResNet, Inception-v4 的创新之处是把残差连接和 Inception 架构进行结合,因此 Inception 在训练时的速度得到了加强。同年,Chollet对 Inception-v3 进行了又一种改进,提出了 Xception,Xception 不仅引入了残差模块,.还将深度可分离卷积加入其中,深度可分离卷积操作可以代替原来 Inception-v3 中的卷积操作,其主要思想是通过对每个输入通道应用单个滤波器来将标准卷积分解为深度卷积,之后再进行 1×1 卷积,其可以跨越通道组合深度卷积的输出,因此计算的复杂度得到了极大减小。
2017 年,Huang 等人提出了密集卷积网络(Dense Convolutional Network,DenseNet), DenseNet 不再采用 Inception 的对网络结构进行加宽或者 ResNet 的对网络层数进行加深的方法,其主要思想是采用旁路(Bypass)以及特征重用,这样做不仅可以有效解决梯度消失的难题,还能够减少模型的参数量。
2018 年,何恺明等人提出了群组归一化(Group Normalization, GN)用来替代 BN,GN的原理是将图像通道划分为不同的组,在不同的组内对平均值以及方差进行计算,之后对其采取归一化。因此批次大小与 GN 的计算精度没有关系,这使得其在不同的批次大小中都能保持较高的精度。ResNet、VGG、DenseNet 等这些经典的结构都可以用做语义分割的特征提取骨干网络。
由上述可知,图像的语义分割是在 FCN 之后快速发展的,同时,在语义分割领域通常存在下列两个问题:1)在网络的下采样过程之中,会造成特征图分辨率的不断缩小,因此使得一部分像素被丢失;2)不能尽可能利用图像的空间位置,也就是说无法充分兼顾到图像的每个像素之间的联系。学者们对这两个问题进行深入研究,.在 FCN.的基础上进行改进,得出了一些新方法。根据不同的网络结构,语义分割的方法基本上可以分为下列四种方法:基于 FCN 的方法、. 基于优化卷积结构的方法、. 基于编码器 -解码器的方法以及基于特征融 合的方法。
(1)基于 FCN 的方法
除上述介绍的 FCN 方法外,Chen 等根据 FCN 建立了 DeepLab 网络,其相较 FCN 有两个改进之处:首先是在编码阶段中引入了空洞卷积,从而扩大了对特征图的感受野,以解决由于特征图分辨率减少而导致的信息丢失;同时在 DeepLab的解码上采样阶段,其使用了双线性插值算法以及应用于后处理部分的全连接条件随机场 ( Conditional Random Field,CRF),一起对分割图像的边界进行了优化。何凯明等基于 DeepLab 进行改进,建立了 DeepLabv2 网络,其是采用与空间金字塔池化(Sparial Pyramid Pooling,SPP)相类似的结构,结合带孔卷积以及 SSP 方法,使用不同采样率的空洞卷积对输入进行并行采样,等同于使用多个比例来得到图像的上下文信息,同时 CRF 也运用在了 DeepLabv2 的后处理部分中。Chen 等在 DeepLab 以及 DeepLabv2 的基础上,针对多尺度上的图像分割问题提出了 DeepLabv3,其使用了一种级联或者并行的空洞卷积模块,这种模块可以使用不同的空洞速率来得到不同尺度上的信息。DeepLavb3 还扩充了 SPP 模块,可以采用编码全局上下文的图像级特征来进行探究多尺度的卷积特征。DeepLabv3 中虽然没有加入 CRF,但是该网络的分割准确率依然比 DeepLab 以及DeepLabv2 还要高。Zheng 等将 CRF 的概率图形建模与 CNN 结合起来,提出了 CRFasRNN 网络,其将具有高斯成对势和均值近似推断的条件随机场公式化为递归神经网.络,并将其作为 CNN 的一部分插入,因此,该网络可以获得 CNN 以及 CRF 分别所需要的深层网络的属性,并且其把 CRF 的建模和 CNN.进行集成,因此其训练网络的方式改进为使用一般的反向传播算法来进行端到端的训练。
(2)基于优化卷积结构的方法
在优化结构的方向,许多学者也做了很多尝试,Yu 等为了更系统地集成上下文的多尺度的信息的同时保留分辨率而提出了空洞卷积。由于在双线性采样过程之中,一些比较完整的信息可能会丢失,因此,Wang 等设计了密集的上采样卷积(Dense upsampling convolution,DUC)来生成像素级预测,该网络可以捕获以及解码缺少的信息。同时,该网络还提出了一种混合膨胀卷积框架,这种框架不仅在编码阶段可以通过增加网络的感受野的方式来更好地把握整体的信息,而且还可以减少在标准的扩展卷积运算中会产生的.“网格问题”。Dai 等为了增强卷积神经网络对变换的适应能力,引入了可变形卷积以及可变形兴趣区域池化这两种新的模块,这两种模块的主要思想都是使模块对空间采样的位置信息进行更一步的位移调整,而这种位移调整不需要其它的监督信号,可以在目标任务里通过自主学习得到。
(3)基于编码器-解码器的方法
这类方法的主要思想是从编码解码的过程之中得来的。Ronneberger 等提出了 Unet 网络,其可以依靠较少的数据来实行端到端的训练。Unet 具有两条对称的路径,分别是捕捉上下文信息的下采样路径,以及与之对称的上采样路径,通过上采样路径还原图像的分辨率以实现精确的定位。Badrinarayanan 等提出了 SegNet 网络,该网络由编码器网络以及与之相对称的解码器网络两大部分组成,左边部分是编码器网络,下采样操作时的网络结构参考了 VGG-16,与其前面13 个卷积层保持一致,采取卷积、池化等方式来提取图像的高层特征;右半边部分是解码器网络,进行上采样操作,由于经过下采样之后输出的特征图分辨率变低,因此该部分将其还原至与输入图像相一致的尺寸,最后的分类网络从像素级别进行分类。Peng 等提出了全局卷积网络,采用基于残差结构的边界优化模块来实现更精细的边缘的分割,还解决了在稠密预测的任务里面分类以及定位需要同时进行的难题。Chen 等对 DeepLabv3 进行优化,提出了 DeepLabv3+,为了减少模型的参数量,其改进了 DeepLabv3 中使用的普通卷积,将其替代为深度可分离卷积以及空洞卷积来对解码部分进行优化,同时改进了解码器的结构以对上采样部分进行优化。
(4)基于特征融合的方法
在特征融合方向上,Zhao 等为了提高网络获取全局信息的能力,提出了金字塔场景解析网络(Pyramid Scene Parsing Network,PSPNet)网络,来实现获取不同区域之间的各个层次的信息。Zhao 和 Qi 等提出了图像级联网络(Image Cascade Network,ICNet),该网络通过适当的标签指导,将多分辨率分支结合在了一起,同时还采用了级联特征融合单元,因此可以对图像进行快速高效的分割的同时保证分割质量,因此,其在实时性与准确性上都具有不错的表现。ICNet 提高分割速度的主要思想是,首先对输入的不同尺寸大小的图像降低分辨率,下采样之后再将得到的高层次的图像通过 CNN 网络,使用级联特征融合单元把高分辨率的图像的特征进行融合。