1. 引言
图像语义分割是基于标签数据的像素到像素的分类,将像素(Pixel)按照图像中表达语义含义的不同进行分组(Grouping)/分割(Segmentation),也称图像语义标注(Image semantic labeling)、像素语义标注(Semantic pixel labeling)或像素语义分组(Semantic pixel grouping),具体实例如图1所示。图像语义分割是获取一些有意义的信息以提取所需信息的基本技术 [1],是当今最具挑战性的领域之一。它在教育、医学、天气预报、气候变化预测等各个领域都有着更多的应用 [2]。特别是近年来,基于深度学习分割方法的出现,图像语义分割研究发展趋势强劲上升 [3]。研究表明,完美的分类可以导致更好的语义分割结果,所以不断有最先进技术用于语义分割,基于区域的分割、基于图的分割、图像分割、实例分割,他们都具有相同语义分割基础。全面认识语义分割领域的进步,有利于图像分割技术的发展和壮大,也有力的促进计算机视觉的研究。
2. 图像语义分割方法发展历程
图像语义分割方法始于上世纪七十年代,直到深度学习算法的应用,才出现各种各样的图像语义分割方法,应用场景也越来越丰富,极大的促进其发展。经过几十年的研究,相关技术不断被完善。以深度学习应用于图像语义分割时间节点,将图像语义分割发展史分2个阶段:传统图像语义分割方法阶段和基于深度学习图像语义分割方法阶段:
1) 传统方法的图像语义分割方法时期
受限于计算机的硬件设备限制,图像分割技术仅能对灰度图像进行处理,后期才逐渐发展到可以对 RGB图像进行处理的阶段。在这一时期主要是通过图像的低级特征进行分割,经此技术处理之后所输出的图像无法达到实现语义标注的效果。简而言之,这时期的图像分割技术只能被称为图像分割,无法达到语义的概念。
2) 基于深度学习方法的图像语义分割方法时期
当卷积神经网络(CNN) [4] 出现后,学者们开始利用神经网络模型训练像素的特征分类器实现语义分割,这种方法受到传统语义分割方法诸多不足的限制,准确性普遍较低。由Long [5] 等人提出了全卷积神经网络(FCN),至此图像语义分割方法进入到了全卷积神经网络时期。全卷积神经网络在深度学习中表现出了强大的潜力,计算机在图片通过深度学习网络进行深度学习后能够清楚地归纳出输入图片中的具有相同语义含义的像素点。深度学习方法成为了现今解决语义分割问题的主流。对比传统方法,基于全卷积神经网络深度学习的语义分割技术能够获得更高的精度以及更好的运算效率,因此这一时期的语义分割技术新方法多,进展快。
3. 传统的图像语义分割方法
传统的图像语义分割算法始于上世纪七十年代,由于当时计算机硬件设备不足的限制,研究者只能根据图像的颜色、纹理信息和空间结构等特征将图像分割成不同的区域,同一区域内具有一致的语义信息,不同区域之间属性不同,以手工为主对图像中的目标物进行分割,开发出许多各种不同方法用以图像语义分割,从最简单的阈值分割、区域生长、边缘检测到图划分的分割方法。图划分是经典的传统图像语义分割方法,其中最常用的就Normalized cut和Grab cut方法,N-cut是一种考虑全局信息的方法来进行图割,用以改变经典的min-cut算法操作中的不足,创新点在于将两个分割部分与全图节点的连接权重也考虑进算法之中,根据图像中的像素给出的阈值将图像一分为二。缺点在于这种分割方式比较简单直接,只能利用图像的像素进行分割,对于整体物体的影响考虑不周。为了改进这一缺点,Grab cut的创新在于预先将图片中需要进行分割处理的部分进行人工标定,在计算机处理的时候也需要人工进行干预,对图像进行标注,指导辅助计算机进行判断分割。总之,传统的图像分割算法由于没有数据训练阶段,计算复杂度不高,在较困难的分割任务上,分割性能的提升空间有限。几类传统的图像分割方法详细阐述如下:
1) 基于阀值的图像分割方法:原理是需要人为找出相关阀值,并将图像中各像素值与阈值进行比较,根据对比结果将各像素划分到不同区域,典型方法如最大熵法、模糊阀值法、自适应阀值法等。这类方法在初期凭借着运算量小且易于实现等优点逐步在各领域进行了广泛的应用,但其一般适用于单通道的灰度图像数据,无法适用后期大量出现的深通道彩色图像,是其存在的较大局限性。
2) 基于交互式的图像分割方法:原理主要基于早期的二分类理论,具体表现为以人工方式进行seed (种子点)标注,seed一般位于图像目标物的边界处,接着算法将以此作为约束条件,演算出最终的分割结果。很明显这类方法无法快速高效的批量处理各种复杂场景下的图像,且需要耗费较大的人力财力。
3) 基于边缘检测的图像分割方法:则是借助了图像不同区域块的特征差异性较大的特点,这种差异性具体表现为某像素值相邻两侧的灰度值跳跃过大,因此可以利用这一特性找出各区域块的边界从而实现图像目标物的边缘检测。若待分割的图像背景噪声较少,则该类方法一般能得到比较理想的结果。然而遇到图像各目标边缘复杂、有重叠或有大量噪声干扰的情况时,该类方法难以得到较好的结果。
4) 基于概率图模型(PGM)的分割方法:以PGM作为基石对像素进行分类分割。PGM一般分为生成模型和判别模型,生成模型原理是通过在各概率图节点与各像素点之间建立起对应关系,从而达到分割图像的目的。譬如在1997年,Friedman N等人 [6] 提出的Bayesian network (贝叶斯网络)就是创建出一个具备科学严谨的推导且操作简便的有向图模型,这个有向图模型由变量节点之间的条件概率分布情况构成。然而,图像各像素点之间通常具有上下文语义信息关联,并不完全独立,而概率图的构造是根据各变量节点的独立性, 因此研究人员难以为各像素建立完全准确的数学相关性。综合来看,基于PGM的分割算法比较适用于单一场景下的图像分割。
5) 基于聚类的图像分割方法:类比机器学习领域当中聚类的思想,根据图像中像素的灰度值相近与否对像素点进行分类,最终将图像划分为多个不同区域,该类方法的特点是不需任何先验信息且不需要特征提取这一操作,关键是要找准各大聚类中心初始化点的位置。总体来讲,基于聚类的分割方法其精确度一般不够理想。
4. 基于深度学习的图像语义分割方法
由于基于深度学习的语义分割模型数量繁多,以下按照模型架构进行介绍。
4.1. 全卷积网络(FCN)
Long等人 [5] 提出了第一批用于语义图像分割的深度学习方法之一,使用了全卷积网络(FCN)。一个FCN (图2)仅包括卷积层,这使得它能够拍摄任意大小的图像并产生相同大小的分割图。该网络不同于现有的CNN架构,如VGG16和GoogLeNet,用全卷积层替换所有全连接层来管理非固定大小的输入和输出。因此,模型输出的是空间分割图,而不是分类分数。

Figure 2. The FCN for making pixel-accurate predictions [5]
图2. 用于像素精确预测的FCN网络 [5]
通过使用跳过连接,其模型最终层的特征图被上采样并与较早层的特征图融合,该模型结合了语义信息(深的、粗糙的层)和外观信息(浅的、精细的层),以便产生精确和详细的分割。该模型在PASCAL VOC、NYUDv2和SIFT Flow上进行了测试,取得了最先进的分割性能。
这项工作被认为是图像分割的里程碑,证明了深度网络可以在可变大小的图像上以端到端的方式进行语义分割。然而,尽管传统的FCN模型流行且有效,但它也有一些局限性——它对于实时推理来说不够快,没有以有效的方式考虑全局上下文信息,并且它不容易转换成3D图像。一些学者试图克服FCN的部分局限性。例如,Liu等人 [7] 提出了一个名为ParseNet的模型,来解决FCN的一个问题——忽略了全局上下文信息。ParseNet通过使用图层的平均要素来扩充每个位置的要素,从而将全局上下文添加到FCN中。图层的要素地图被合并,整个图像产生一个上下文向量。该上下文向量被归一化和去池化,以产生与初始特征图相同大小的新特征图。然后将这些要素地图连接起来。简而言之,ParseNet是一个FCN,所描述的模块取代了卷积层(图3)。

Figure 3. ParseNet produces a segmentation [7]
图3. ParseNet生成分割 [7]
4.2. 带有图形模型的卷积模型
如前所述,FCN忽略了潜在有用的场景级语义上下文,为了集成更多上下文,一些方法将概率图形模型,例如条件随机场(CRF)和马尔可夫随机场(MRF)结合到DL架构中。Chen等 [8] 提出了一种基于细胞神经网络和全连接条件随机场相结合的语义分割算法(图4)。深层CNN的最后一层的响应对于精确的对象分割来说不够局部化(由于使CNN适用于诸如分类之类的高级任务的不变性)。为了克服深层CNN较差的定位特性,他们将最终CNN层的响应与完全连接的CRF相结合。与以前的方法相比,他们的模型能够以更高的准确率定位线段边界。
Schwing和Urtasun [9] 提出了用于图像分割的全连通深度结构化网络,该网络是一种联合训练CNN和全连接CRF进行语义图像分割的方法,并在具有挑战性的PASCAL VOC 2012数据集上取得了令人鼓舞的结果。Lin等人 [10] 提出了一种基于上下文深度条件随机场的高效语义切分算法。他们探索了“补丁–补丁”上下文(图像区域之间)和“补丁–背景”上下文,以通过使用上下文信息来改进语义分割。
4.3. 基于编码器-解码器的模型
另外用于图像语义分割的模型有很多是基于卷积编码器–解码器架构的,其中大多数基于深度学习的分割工作使用编码器–解码器模型。将这些工作分为两类,用于一般图像分割的编码器–解码器模型和用于医学图像分割的编码器–解码器模型。
4.3.1. 用于一般图像分割的编码器–解码器模型
Noh等人 [11] 提出了一篇基于反卷积(又名转置卷积)语义分割的方法,他们的模型(图5)由两部分组成,一个编码器使用VGG 16层网络的卷积层,一个去卷积网络将特征向量作为输入并生成逐像素类别概率图。去卷积网络由去卷积图层和去卷积图层组成,用于识别按像素分类的标注并预测分割掩膜。

Figure 5. Deconvolutional semantic segmentation [11]
图5. 反卷积语义分割 [11]
Badrinarayanan等人 [12] 提出了一种用于图像分割的卷积编解码器架构,类似于去卷积网络,SegNet的核心可训练分段引擎包括编码器网络和相应的解码器网络,编码器网络在拓扑上与VGG16网络中的13个卷积层相同,解码器网络之后是逐像素分类层。与其他架构相比,SegNet的可训练参数数量也少得多。同时作者还提出了SegNet的贝叶斯版本,以对用于场景分割的卷积编码器–解码器网络固有的不确定性进行建模 [12]。
其他部分方法采用转置卷积或编码器–解码器进行图像语义分割,Fu等人 [13] 提出了改善网络中的信息流和梯度传播并增强区分特征表示,利于网络优化的堆叠解卷积网络(SDN),其他如高分辨率网络(HRNet),Linknet,W-Net,以及用于RGB-D分割的位置敏感去卷积网络。
4.3.2. 用于医学和生物医学图像分割的编码器–解码器模型
受FCNs和编码器–解码器模型的启发,最初用于医学/生物医学图像语义分割的模型包括U-Net [14] 和V-Net [15],现在也用于医疗领域之外。
Ronneberger等人 [14] 提出了用于分割生物显微图像的U-Net。他们的网络和训练策略依赖于使用数据增强来有效地从很少的带注释的图像中学习。U-Net架构,包括两个部分,捕获上下文的收缩路径和实现精确定位的对称扩展路径。下采样或收缩部分有一个类似FCN的结构,用3 × 3卷积提取特征。上采样或扩展部分使用上卷积(或去卷积),减少了增加特征地图的数量,同时增加它们的尺寸网络的下采样部分的特征映射被复制到上采样部分,以避免丢失模式信息。最后,1 × 1卷积处理特征图以生成对每个特征图进行分类的分割图,输入图像的像素。
由Milletari等人提出 [15] 的V-Net是另一个著名的基于FCN的模型,用于三维医学图像分割。对于模型训练,他们引入了一种基于Dice系数的新目标函数,使模型能够处理前景和背景中体素数量之间存在强烈不平衡的情况。关于医学图像分割的一些其他相关工作包括用于从胸部CT图像中快速和自动分割肺叶的渐进密集V-net (PDV-Net)等,以及用于病变分割的3D-CNN编码器。
4.4. 基于多尺度和金字塔网络的模型
多尺度分析是图像处理中的一个相当古老的概念,已经被部署在各种神经网络架构中。Lin等人提出的特征金字塔网络(FPN)就是这类模型中最经典的一个 [16],它主要是为对象检测而开发的,但后来也应用于图像分割。Zhao等 [17] 提出了金字塔场景解析网络(PSPN),这是一个多尺度网络,用于更好地学习场景的全局上下文表示。使用残差网络(ResNet)作为特征提取器,利用扩展网络,从输入图像中提取不同的模式。这些特征地图随后被输入金字塔汇集模块,以区分不同尺度的模式。它们以四种不同的规模汇集在一起,每一种对应于金字塔等级并降低它们的维数。输出的金字塔等级被上采样并与初始特征图连接,以捕捉局部和全局上下文信息。最后,卷积层用于生成逐像素预测。
还有其他使用多尺度分析进行分割的模型,如DM-Net (动态多尺度过滤网络),背景对比网络和门控多尺度聚集(CCN),自适应金字塔上下文网络(APC-Net),多尺度上下文交织(MSCI),以及显著对象分割。
4.5. 基于R-CNN的模型
区域卷积网络(R-CNN)及其扩展(Fast R-CNN、Faster R-CNN、Mask-RCNN)已被成功运用于目标检测应用中,其中,Faster R-CNN [18] 架构(图6)使用区域提议网络(RPN)来提议边界框候选。RPN提取感兴趣区域(RoI),RoI pool层从这些建议中计算特征,以便推断边界框坐标和对象的类别。R-CNN的一些扩展已经被大量用于解决实例分割问题,即同时执行对象检测和语义分割的任务。

Figure 6. Faster R-CNN architecture [18]
图6. Faster R-CNN架构 [18]
在这个模型的一个扩展中,He等人 [19] 提出了一个用于对象实例分割的掩模R-CNN,该R-CNN在许多COCO挑战中击败了所有以前的基准。该模型有效地检测图像中的对象,同时为每个实例生成高质量的分割掩模。Mask R-CNN本质上是一个更快的R-CNN,有3个输出分支(图7),第一个计算边界框坐标,第二个计算关联的类,第三个计算二进制遮罩以分割对象。掩模R-CNN损失函数组合了边界框坐标、预测类和分割掩模的损失,并联合训练它们。

Figure 7. Mask R-CNN architecture [19]
图7. Mask R-CNN架构 [19]
Liu等提出的路径聚合网络 [20] 是基于掩模R-CNN和FPN模型。网络的特征提取器使用具有新的增强的自底向上路径的FPN架构,改进了低层特征的传播。第三条途径的每一个阶段都以大脑皮层的特征图作为输入,并且用3 × 3卷积层处理它们。输出被添加到相同阶段的特征图中并且这些特征图提供给下一阶段。如同在掩模R-CNN中一样,自适应特征池层的输出给三个分支。前两个使用完全连接的层来生成边界框坐标和相关对象类的预测,第三个用FCN处理RoI以预测对象遮罩。
Chen等 [21] 提出了一个实例细分模型MaskLab,通过基于更快的R-CNN使用语义和方向特征来细化对象检测。该模型产生三个输出,盒子检测、语义分割和方向预测。基于更快的RCNN对象检测器,预测框提供对象实例的精确定位。在每个感兴趣的区域内,MaskLab通过结合语义和方向预测来执行前景/背景分割。
相关学者基于R-CNN也提出了许多其他模型,Lee和Park [22] 提出了将新空间注意力引导Mask (SAG-Mask)分支,在Mask R-CNN中添加到无锚点单级对象检测器(FCOS)中从而关注信息像素并抑制噪声的CenterMask,还有TensorMask,R-FCN,DeepMask,PolarMask等。
4.6. DeepLab系列
Chen等人开发的DeepLabv1 [8] 和DeepLabv2 [23] 是目前最流行的图像语义分割模型之一,后者有三个关键特征,首先是使用扩张卷积来解决网络中分辨率下降的问题(由最大汇集和跨越引起)。第二个是阿特鲁空间金字塔池(ASPP),它以多种采样率使用过滤器探测传入的卷积要素图层,从而在多种尺度下捕捉对象和图像上下文,以在多种尺度下稳健地分割对象。第三是通过深度学习方法来改进对象边界的定位,例如VGG-16或ResNet-101之类的CNN模型以全卷积方式使用,使用扩展卷积,双线性插值阶段将特征图放大到原始图像分辨率。最后,完全连接的CRF细化分割结果以更好地捕捉对象边界 [23]。图4展示了DeepLab流程图,主要区别是使用了扩张卷积和ASPP。
随后,Chen等人 [24] 提出了DeepLabv3,它结合了扩张卷积的级联和并行模块。并行卷积模块被分组在ASPP。在ASPP中增加了1 × 1卷积和批量归一化。所有的输出被连接并通过另一个1 × 1卷积处理,以创建每个像素的具有logits的最终输出。进一步Chen等人 [25] 提出了Deeplabv3+,它采用了一种编解码架构,包括由深度方向卷积(输入的每个通道的空间卷积)和逐点卷积(以深度方向卷积作为输入的1 × 1卷积)。他们使用了DeepLabv3框架作为编码器。最相关的模型具有修改的例外主干,具有更多层、扩展的深度方向可分离卷积,而不是最大汇集和批量标准化。
4.7. 基于递归神经网络的模型
虽然CNN是计算机视觉问题的天然解决方案,但它们并不是唯一的可能性,RNN在对像素之间的短期/长期依赖性进行建模以(潜在地)改进分割图的估计方面是有用的。使用RNNs,可以将像素链接在一起并顺序处理,以模拟全局上下文并改进语义分割。然而,一个挑战是图像的自然2D结构。
Visin等人 [26] 提出了一个基于RNN的语义分割模型,称为ReSeg。这种模式主要是根据ReNet,它是为图像分类而开发的。每个ReNet层由四个RNN组成,它们在两个方向上水平和垂直扫描图像,对补丁/激活进行编码,并提供相关的全局信息。使用ReSeg模型执行图像分割,ReNet层堆叠在提取通用局部特征的预训练VGG-16卷积层之上。ReNet层之后是上采样层,以在最终预测中恢复原始图像分辨率。使用门控循环单元(gru)是因为它们在内存使用和计算能力之间提供了良好的平衡。
在另一项工作中,Byeon等人 [27] 开发了使用长–短时记忆(LSTM)网络的场景图像的像素级分割和分类。他们研究了自然场景图像的二维(2D) LSTM网络,考虑了标签的复杂空间依赖性。在这项工作中,分类,分割和上下文集成都是由2D LSTM网络进行的,允许在单个模型中学习纹理和空间模型参数。
Xiang与Fox [28] 提出了数据关联递归神经网络(DA-RNNs),用于联合3D场景映射和语义标记。DA-RNNs使用一种新的递归神经网络架构对RGB-D视频进行语义标记。网络的输出与Kinect-Fusion等映射方法相结合,以便将语义信息注入到重建的3D场景中。
4.8. 基于注意力的模型
近年来,注意力机制也被应用于图像语义分割。Chen等 [29] 提出了一种注意机制,学习在每个像素位置对多尺度特征进行软加权。他们采用了强大的语义分割模型,并用多尺度图像和注意力模型对其进行联合训练(图8)。其中,注意力模型学习给不同尺度的物体分配不同的权重,例如,该模型对小人(绿色虚线圆)上分配大的权重比例为1.0,而对大孩子(粉色虚线圆)上分配权重比例为0.5。注意机制优于平均池和最大池,它使模型能够评估不同位置和尺度的特征的重要性。

Figure 8. Attention-based semantic segmentation model [29]
图8. 基于注意力的语义分割模型 [29]
Fu等人 [30] 提出了一种用于场景分割的双注意网络,该网络能够基于自我注意机制捕获丰富的上下文依赖。具体来说,他们在扩展FCN的基础上附加了两种类型的注意力模块,这两种模块分别在空间和通道维度上对语义相互依赖进行建模。位置注意模块通过所有位置的特征的加权和来选择性地聚集每个位置的特征。
相关学者将注意力机制应用于语义分割的研究,Choi等人 [31] 提出了根据像素的垂直位置选择性地强调信息性特征或类,利用属性来有效处理城市场景数据集中像素级分布不同的用于改进城市场景图像语义分割高度驱动注意力网络(HANet)。Zhang等人 [32] 提出了以split-attention blocks构造的ResNeSt,可以作为其它任务的骨架并达到先进的性能。其他如端对端实例分割,采用了受自我注意力机制启发的对象上下文池的OCNet,用于场景解析的PSANet和用于语义分割的判别特征网络,CCNet,期望最大化注意力(EMANet)等。
4.9. 生成模型与对抗性训练
GANs已经被广泛应用于计算机视觉中的任务,并且已经被用于图像语义分割。Luc等人 [33] 提出了一种用于语义分割的对抗性训练方法。他们训练了一个卷积语义分割网络,以及将地面实况分割图与由分割网络生成的分割图区分开的对抗网络,该方法未增加测试时使用的模型复杂性,并提高了在Stanford Background和PASCAL VOC 2012数据集上的标记精度。
Hung等人 [34] 提出了一个使用对抗网络的半监督语义分割框架。考虑到空间分辨率,他们设计了一个FCN鉴别器来区分预测的概率图和地面真实分割分布。该模型考虑的损失函数包含三项:基于分割事实的交叉熵损失、鉴别器网络的对抗性损失和基于置信图的半监督损失:鉴别器的输出。Xue等 [35] 提出了一种用于医学图像分割的具有多尺度L1损失的对抗网络,使用FCN作为分割器来生成分割标签图,并提出了一种新的具有多尺度L1损失函数的对立评论家网络,以迫使评论家和分割器学习全局和局部特征,这些特征捕捉像素之间的长程和短程空间关系。
还有其他基于对抗训练的分割模型,例如Xu等人 [36] 提出了利用线性可分离性进行聚类 GAN实现无监督语义分割,使用GANs的细胞图像分割等。
5. 语义分割算法的评价指标与数据集
5.1. 图像语义分割评价指标
图像语义分割技术经过几十年的发展,出现1000多种的算法、网络结构和模型,还有新方法、新方案在不断的涌现。同对分割算法的研究一样,针对分割算法的性能评价也一直是研究的热点问题,为此,Garcia-Garcia [37] 等人在2017年的CVPR会议上,专门发表了一篇对诸多数据集和网络模型进行评估的方法综述,提出了被认为是现在统一的标准和公认的算法评估指标。为了保证算法评价的公正性,衡量语义分割算法的性能,需要使用通用的客观评测指标。目前,运行时间、显存占用和准确率是3种常用的算法评测指标。本节介绍一些图像语义分割评价指标。
1) 运行时间。神经网络运行的时间包括网络模型的训练时间和测试时间。大多数算法需要实时预测分割结果。在某些情况下,提供算法确切的运行时间可能比较困难,因为运行时间非常依赖硬件设备及后台实现。然而,提供算法运行硬件的信息及运行时间有利于评估方法的有效性,以及在保证相同环境的条件下测试最快的执行方法。
2) 显存占用。数据的规模对神经网络模型的训练至关重要,因此训练神经网络模型需要高性能的硬件设施和软件实现。图形处理单元(GPU)具有高度并行特性以及高内存带宽,但是相比于传统的中央处理器(CPU),时钟速度更慢以及处理分支运算的能力较弱。在某些情况下,对于操作系统及机器人平台,其显存资源相比高性能服务器并不具优势,即使是加速深度网络的GPU,显存资源也相对有限。因此,在运行时间相同的情况下,记录算法运行状态下显存占用的极值和均值都很有意义。
3) 准确率。像素准确率(pixel accuracy, PA)是指分类正确的像素占总像素的比例,定义为公式(1):
(1)
其中,TP (True Positive):真正例,预测为正例,实际是正例;FP (False Positive):假正例,预测为正例,实际是反例;FN (False Negative):假反例,预测为反例,实际是正例;TN (True Negative):真反例,预测为反例,实际是反例。
4) 交并比 (intersection over union, IoU)是像素的真实值与预测值的交集除以像素的真实值和预测值的并集,定义公式(2):
(2)
其中,A:像素的真实值,B:像素的预测值。
而当测试集出现类别不均衡(不同类别:样本数量差别很大)情况时,像素准确率并不能客观反映模型性能。因此定义平均像素准确率(mean pixel accuracy, MPA) (公式3)和平均交并比(mean intersection-over-union, MIoU) (公式4)两种评测指标,其中平均交并比是最重要的性能评测指标,更能反映模型的准确程度。
(3)
(4)
其中,假设共有
个类(其中包含一个空类或背景),
表示预测与实际相符的像素,
表示实际属于类 但被预测为类j的像素,
表示实际属于类j但被预测为类i的像素。i表示真实值,j表示预测值,
表示将i预测为j的像素个数。
5.2. 图像语义分割数据集
图像语义分割数据库是图像目标提取乃至图像内容理解的算法研发、模型建立与算法测试的重要依赖环境。图像库的规模大小、所包含的目标的成像条件(光照、遮挡、姿态、尺等)变化、目标标准分割的结果(Ground-truth)等都对分割算法的鲁棒性以及算法评测的合理性与可信性有着很大的影响,在测试两种不同的网络结构或者模型的时候需要存在着一个统一的标准,同样的在研发出新的基于深度学习图像语义分割技术的网络模型时候也需要以一个共同的标准来进行判断,一些算法可以在给出的特定数据集上执行;它不会在其他数据集上提供相同的结果 [38] [39]。本节介绍一些常用公共数据集,见表1。

Table 1. Common datasets for semantic image segmentation
表1. 图像语义分割常用数据集
6. 图像语义分割研究中存在的主要问题及解决方法
6.1. 存在的主要问题
1) 深度学习的图像语义分割算法都需要CNN作为最基础的框架,在进行语义分割时,除了语义信息还需要细节信息、上下文信息,对于物体边缘的分割效果不理想;还有在图像初始阶段输入到网络之时,由于CNN的卷积核不会太大,模型只能利用局部信息理解输入图像,影响编码器最后提取的特征的可区分性。
2) 模型的通用性能低,一些算法可以在特定数据集上执行;它不会在其他数据集上提供相同的结果 [38] 这是因为不同的数据集在进入训练阶段和测试阶段之前没有执行相同的操作;其次是在机器学习过程中,认为整个数据集没有任何歧义,这样就产生了有效和准确的最佳结果 [40];有时数据集的样本很少或很多时,会出现模型过度拟合和拟合不足的问题 [41]。这不仅是语义分割任务上存在的问题,只要基于深度学习的任务时都会面临的难题。
3) 耗费显存问题。
4) 图像遮挡区域语义分割问题。
6.2. 解决方法
对于深度学习的图像语义分割算法研究中存在上面的主要问题,研究人员一直根据各个算法的缺陷特点找出相应解决办法,有些办法需要进一步的改进和完善。具体的解决方案如下:
1) 语义分割对于物体边缘的分割效果不理想的边缘问题,可采取对网络输出的分割的边界增加额外的损失、让网络对边界的特征和区域内部的特征分开建模学习、简单有效的方法是提高输入图像的输入分辨率和中间层特征图的分辨率。到目前为止,还没有具体的针对边缘的好坏的评价指标,只能靠目测来确定,易产生不公平现象,如何客观公正也值得进一步探讨。
2) 增强模型的通用性,采用数据增强、正则化等很多基础的方法能增强模型的通用性,效果不理想。对不可获取的测试数据集,要从模型本身出发,迫使模型能够学习到更为鲁棒的特征;对可获取,但没有标签的测试数据集,要用无监督域语义分割方法:如FCAN与ADVENT的基于对抗学习法,使目标域与源域在同一Encoder后编码的特征能够尽量相似;CycleGAN风格迁移法,能转换源域图片的风格使得其与目标域相似;自监督学习法,在目标域上形成伪标签来训练模型。
3) 耗费显存问题:内存占用是评估基于深度学习的图像语义分割算法性能的主要指标之一,是语义分割算法研究中的一个重要影响因素,在多数场景下,内存是可以扩充的,由于显存是GPU计算中的稀缺资源,在语义分割网络训练常常遇到显存不足,为了解决这个问题,常用的方法就是调参:网络参数调整,比如减小训练图像大小,降低FC output个数,使用小的conv kernel size等。还有从卷积的实现(采用FFT、二值量化、不采用bias等)、卷积的方式(深度可分离卷积、各项异性卷积、空洞卷积等)、特征提取块(bottleneck结构、add替代concat融合特征、简化解码器module等)、网络结构(降低网络深度、宽度、输入分辨率,多分支网络等)等方面进行改进,在网络中构建不同图像之间损失或者特征交互模块 [42]。
4) 图像遮挡区域语义分割问题:对于带有遮挡的图像区域,当前的语义分割方法效果不理想,实现对遮挡的图像区域进行正确的语义分割将会使基于语义分割的图像理解技术更加接近人类图像理解的水平,有利于拓宽语义分割技术在现实中的应用场景,利用合理的上下文建模机制,能帮助网络猜测遮挡部分的语义信息 [43] [44],香港科技大学研究人员将图像建模为两个重叠图层,为网络引入物体间的遮挡与被遮挡关系,提出了一个轻量级的能有效处理遮挡的实例分割算法,大幅提升遮挡处理性能 [45]。
7. 总结与展望
图像语义分割是计算机视觉领域的重要研究方向之一,深度学习的出现明显提升了语义分割技术发展机遇。本文介绍了图像语义分割的研究发展历程,以及传统的与深度学习的图像语义分割方法、评价指标、常用数据库,提出基于深度学习图像语义分割研究中存在的部分问题及解决方法,在图像语义分割研究中仍然存在着很多的未知内容,需要今后深入探究。随着图像语义分割技术的不断发展,视频语义分割、三维数据集语义分割、实时语义分割等将是未来的研究方向,其挑战性更大,前景也更广阔。
基金项目
本文得到国家自然科学基金(No. 51979085)的资助。
NOTES
*通讯作者。