机器学习社区已经被大量基于深度学习的方法所淹没。卷积神经网络、递归神经网络、对抗神经网络、自编码等多种深部神经网络正有效地解决无约束环境下目标的检测、定位、识别和分割等具有挑战性的计算机视觉任务。在对目标检测或识别领域进行了大量分析研究的同时,在图像分割技术方面出现了许多新的深度学习技术。本文从分析的角度探讨了图像分割的各种深度学习技术。这项工作的主要目标是提供一个直观的理解,对图像分割领域作出重大贡献的主要技术。本文从传统的图像分割方法出发,阐述了深度学习对图像分割领域的影响。此后,大多数主要的分割算法都被逻辑地归类为专门针对其独特贡献的段落。有了大量直观的解释,读者就可以更好地看到这些过程的内部动态。
卷积神经网络是计算机视觉中最常用的方法之一,为了更好地完成分割任务,它采用了许多简单的改进。
全连通条件随机场条件随机场是一种无向判别概率图模型,常用于各种序列学习问题。与离散分类器不同,在对样本进行分类时,它会考虑其他相邻样本的标签。图像分割可以看作是一个像素分类序列。像素的标签不仅依赖于其自身的强度值,还依赖于相邻像素的值。这种概率图形模型的使用通常用于图像分割领域,因此它值得专门一节(第4.1.4节)。
到目前为止,几乎所有讨论的技术都涉及到语义图像分割。另一类分割问题,即实例级分割需要稍有不同的方法。与语义图像分割不同,这里将同一对象的所有实例分割为不同的类。这种类型的分割问题大多是作为一种学习来处理的,即给出一系列的对象段作为输出。因此,序贯模型在此类问题中发挥了作用。一些常用的主要体系结构是卷积LSTMs、递归网络、基于注意的模型等。
即使在缺乏适当的像素级注释的情况下,分割算法也可以利用较粗的注释(例如边界框,甚至图像级标签[161116])来执行像素级分割。利用边界框从数据标注的角度来看,与像素级分割相比,定义边界框的代价要低得多。具有边界框的数据集的可用性也比具有像素级分段的数据集大得多。边界框可用作生成像素级别分割图的弱监督。在文献[42]中,BoxSup使用区域建议方法(如选择性搜索)生成分割建议。在此基础上,采用多尺度组合分组法对候选模板进行组合,目标是选择具有最高IOU的最优组合。该分割图用于调整传统的图像分割网络,如FCN。在帕斯卡VOC2012测试集中,BoxSup能够达到75.1百万单位,而FCN为62.2,或DeepLabCRF为66.4。
图像分割是计算机视觉领域中最困难的挑战之一。在许多图像过于复杂、噪声大或光照条件差的情况下,用户的一点交互和引导可以显著提高分割算法的性能。即使是在深度学习范式之外,交互式分割也在蓬勃发展。然而,卷积神经网络具有强大的特征提取能力,可以减少交互量,达到一定程度。
交互式分割最直接的实现之一是具有两个并行分支,一个来自表示交互式流的图像,另一个来自图像,并将它们融合以执行分割[83]。交互输入以表示正类和负类的不同颜色点的形式出现。通过一些后处理,其中交互作用图的强度是根据与点之间的欧几里德距离计算的,我们得到两组图(每类一个),它们看起来像以点为中心的模糊voronoi单元。将映射按元素相乘以获得交互流的图像。这两个分支由卷积序列和池层组成。在每个分支的末端获得特征的Hadamard积被发送到融合网络,在融合网络中生成低分辨率分割图。另一种方法是跟随FCN的足迹,融合多尺度特征,得到更清晰的分辨率图像。
与双流方法相反,deepextremecut[138]使用一条管道从RGB图像创建分割图。此方法要求用户提供4个点,表示对象边界中的四个极端区域(最左边、最右边、最上面、最下面)。通过从这些点创建热图,一个4通道输入被输入到DenseNet101网络。网络的最终特征映射被传递到金字塔场景解析模块中,用于分析全局上下文以执行最终的分割。该方法在PASCAL测试集上可以得到80.3的mIOU。
PolygonRNN[26]采用与其他方法不同的方法。从典型VGG网络的不同层次提取多尺度特征,并将这些特征串接起来,为递归网络创建特征块。反过来,RNN应该提供一个点序列作为表示对象轮廓的输出。该系统主要设计为交互式图像标注工具。用户可以用两种不同的方式进行交互。首先,用户必须为感兴趣的对象提供一个紧边界框。其次,在建立多边形之后,允许用户编辑多边形中的任何点。但是,这种编辑不用于对系统的任何进一步培训,因此为改进系统提供了一条小途径。
虽然许多复杂的网络具有许多奇特的模块,可以提供非常好的语义分割质量,但将这样的算法嵌入到现实系统中则是另一回事。许多其他因素,如硬件成本、实时响应等,都带来了新的挑战。效率也是创建消费者级系统的关键。
ENet[163]提出了一些有趣的设计选择,以创建一个具有少量参数(37万)的非常浅的分割网络。它不是像SegNet或U-Net那样的对称编码器-解码器架构,而是具有更深的编码器和更浅的解码器。不是在池后增加通道大小,而是并行池操作与stride2的卷积一起执行,以减少总体特征。为了提高学习能力,与ReLU相比,PReLU被使用,使得传递函数保持动态,以便它可以模拟ReLU的作业以及所需的身份函数。这通常是ResNet中的一个重要因素,但是由于网络很浅,使用PReLU是一个更明智的选择。除此之外,使用因子化过滤器还允许使用较少数量的参数。
深层级联[116]解决了几个挑战,并作出了两个重大贡献。首先,分析了不同类别像素级分割的难度。在级联网络中,较容易的片段在早期被发现,而后一层则集中在需要更精细片段的区域。其次,提出的层级联可以与Inception-ResNet-V2(IRNet)等常用网络一起使用,在一定程度上提高了速度甚至性能。IRNet的基本原理是创建一个多级管道,在每个阶段中,一定数量的像素将被分类到一个段中。在早期阶段,最简单的像素将被分类,而不确定性较大的较难像素将进入后期阶段。在随后的阶段中,卷积将仅发生在那些在前一阶段无法分类的像素上,同时将更难的像素转发到下一阶段。通常,提出的模型分为三个阶段,每个阶段向网络添加更多的卷积模块。在分层级联的情况下,VOC12测试集的mIOU为82.7,DeepLabV2和Deep解析网络是最接近的竞争对手,mIOU分别为79.7和77.5。在速度方面,每秒处理23.6帧,而SegNet为14.6fps,DeepLab-V2为7.1fps。
过分割算法[1]在基于局部信息将图像分割成小块上得到了很好的发展。使用补丁分类算法,这些超混合可以转换为语义段。然而,由于过分割过程不考虑邻域关系,因此有必要将其纳入到斑块分类算法中。与像素级分类相比,执行面片分类要快得多,因为超像素的数量远小于图像中像素的数量。Farabet等人首次将CNNs用于超混合水平分类。[55]。然而,仅仅考虑没有上下文的超混合会导致错误的分类。在文献[46]的工作中,在补丁分类过程中,通过考虑不同级别的邻域超像素来捕获多个级别的上下文。通过使用加权平均、最大投票或基于不确定性的方法(如dempster-shafer理论)融合不同层次上下文的块级概率,提出了一种非常有效的分割算法。达斯等人的作品。与Farabet等人的74.56%相比,能够获得77.14%[46]的像素级精度。[55]。超混合可以用来建立有效的语义分割模型,反之亦然。相反,语义分割的基本事实可以用来训练网络执行过度分割[197]。利用卷积特征进行过分割,同时特别注意语义边界,可以计算出像素的相似度。
图像分割的另一个主要应用领域是医疗保健领域。许多诊断程序都涉及到处理对应于不同类型成像源和身体不同部位的图像。一些最常见的任务类型是分割有机元素,如血管[58]、组织[91]、神经[132]等。其他类型的问题包括异常的定位,如肿瘤[224145],动脉瘤[48131]等等。显微图像[85]还需要各种各样的分割,如细胞或细胞核检测、细胞计数、细胞结构分析等。这个领域面临的主要挑战是缺乏大量的数据来应对具有挑战性的疾病,由于所涉及的成像设备类型不同,图像质量也不同。医疗程序不仅涉及到人类,也涉及到其他动植物。
虹膜[125,65]、指纹[94]、手指静脉[170]、牙科记录[93]等生物特征验证系统涉及各种信息区域的分割,以便进行有效的分析。
监视系统[147,95,89]与各种问题有关,如遮挡,照明或天气状况。此外,监视系统还可以对来自高光谱源的图像进行分析[4]。监视系统还可以扩展到各种应用,如目标跟踪[82]、搜索[3]、异常检测[173]、威胁检测[137]、交通控制[208]等。图像分割对于将感兴趣的对象与自然场景中的杂波分离起着至关重要的作用。