综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation

近期主要在学习语义分割相关方法,计划将arXiv上的这篇综述好好翻译下,目前已完成了一部分,但仅仅是尊重原文的直译,后续将继续完成剩余的部分,并对文中说起的多个方法给出本身的理解。html

论文地址:https://arxiv.org/abs/1704.06857web

应用于语义分割问题的深度学习技术综述算法

 

 

摘要服务器

 

计算机视觉与机器学习研究者对图像语义分割问题愈来愈感兴趣。愈来愈多的应用场景须要精确且高效的分割技术,如自动驾驶、室内导航、甚至虚拟现实与加强现实等。这个需求与视觉相关的各个领域及应用场景下的深度学习技术的发展相符合,包括语义分割及场景理解等。这篇论文回顾了各类应用场景下利用深度学习技术解决语义分割问题的状况:首先,咱们引入了领域相关的术语及必要的背景知识;而后,咱们介绍了主要的数据集以及对应的挑战,帮助研究者选取真正适合他们问题须要及目标的数据集;接下来,咱们介绍了现有的方法,突出了各自的贡献以及对本领域的积极影响;最后,咱们展现了大量的针对所述方法及数据集的实验结果,同时对其进行了分析;咱们还指出了一系列的将来工做的发展方向,并给出了咱们对于目前最优的应用深度学习技术解决语义分割问题的研究结论。网络

 

1 引言架构

 

现在,语义分割(应用于静态2D图像、视频甚至3D数据、体数据)是计算机视觉的关键问题之一。在宏观意义上来讲,语义分割是为场景理解铺平了道路的一种高层任务。做为计算机视觉的核心问题,场景理解的重要性愈来愈突出,由于现实中愈来愈多的应用场景须要从影像中推理出相关的知识或语义(即由具体到抽象的过程)。这些应用包括自动驾驶[1,2,3],人机交互[4],计算摄影学[5],图像搜索引擎[6],加强现实等。应用各类传统的计算机视觉和机器学习技术,这些问题已经获得了解决。虽然这些方法很流行,但深度学习革命让相关领域发生了翻天覆地的变化,所以,包括语义分割在内的许多计算机视觉问题都开始使用深度架构来解决,一般是卷积神经网络CNN[7-11],而CNN在准确率甚至效率上都远远超过了传统方法。然而,相比于固有的计算机视觉及机器学习分支,深度学习还远不成熟。也所以,尚未一个统一的工做及对于目前最优方法的综述。该领域的飞速发展使得对初学者的启蒙教育比较困难,并且,因为大量的工做相继被提出,要跟上发展的步伐也很是耗时。因而,追随语义分割相关工做、合理地解释它们的论点、过滤掉低水平的工做以及验证相关实验结果等是很是困难的。框架

 

就我所知,本文是第一篇致力于综述用于语义分割的深度模型技术的文章。已经有较多的关于语义分割的综述调查,好比[12,13]等,这些工做在总结、分类现有方法、讨论数据集及评价指标以及为将来研究者提供设计思路等方面作了很好的工做。可是,这些文章缺乏对某些最新数据集的介绍,他们不去分析框架的状况,并且没有提供深度学习技术的细节。所以,咱们认为本文是全新的工做,并且这对于深度学习相关的语义分割社区有着重要意义。机器学习

 

图 1 物体识别或场景理解相关技术从粗粒度推理到细粒度推理的演变:四幅图片分别表明分类、识别与定位、语义分割、实例分割。ide

 

本文核心贡献以下:函数

1)咱们对于现有的数据集给出了一个全面的调查,这些数据集将会对深度学习技术推进的分割项目发挥做用;

2)咱们对于多数重要的深度学习语义分割方法进行了深度有条理的综述,包括他们的起源、贡献等;

3)咱们进行了完全的性能评估,使用了多种评价指标如准确率、运行时间、内存占用等;

4)咱们对以上结果进行了讨论,并给出了将来工做的一系列可能的发展方向,这些方向可能在将来的发展进程中取得优点。咱们还给出了该领域目前最好方法的总结。

 

本文剩余部分安排:

第二章介绍了语义分割问题,同时引入了相关工做中经常使用的符号、惯例等。其余的背景概念如通用的深度神经网络也在这章中回顾;

第三章介绍了现有的数据集、挑战及实验基准;

第四章回顾了现有方法,基于其贡献自下而上排序。本章重点关注这些方法的理论及闪光点,而不是给出一个定量的评估;

第五章给出了一个简短的对于现有方法在给定数据集上定量表现的讨论,另外还有将来相关工做的发展方向;

第六章则总结全文并对相关工做及该领域目前最优方法进行了总结。

 

 

2 术语及背景概念

 

为了更好地理解语义分割问题是如何用深度学习框架解决的,有必要了解到其实基于深度学习的语义分割并非一个孤立的领域,而是在从粗糙推理到精细化推理过程当中很天然的一步。这能够追溯到分类问题,包括对整个输入作出预测,即预测哪一个物体是属于这幅图像的,或者给出多个物体可能性的排序。对于细粒度推理来讲,将接下来进行物体的定位与检测,这将不止提供物体的类别,并且提供关于各种别空间位置的额外信息,好比中心点或者边框。这样很显然,语义分割是实现细粒度推理的很天然的一步,它的目标是:对每一个像素点进行密集的预测,这样每一个像素点均被标注上期对应物体或区域的类别。这还能够进一步改进,好比实例分割(即对同一类的不一样实例标以不一样的标签),甚至是基于部分的分割(即对已经分出不一样类别的图像进行底层分解,找到每一个类对应的组成成分)。图1展现了以上提到的演变过程。在本文中,咱们主要关注通常的场景标注,也就是像素级别的分割,可是咱们也会回顾实例分割及基于部分的分割的较重要的方法。

 

最后,像素级别的标注问题能够松弛为如下公式:对于随机变量集合 中的每一个随机变量,找到一种方法为其指派一个来自标签空间 中的一个状态。每一个标签 表示惟一的一个类或者物体,好比飞机、汽车、交通标志或背景等。这个标签空间有 个可能的状态,一般会被扩展为  +1个,即视 为背景或者空的类。一般, 是一个二维的图像,包含W*H=N的像素点x。可是,这个随机变量的集合能够被扩展到任意维度,好比体数据或者超谱图像

 

除了问题的定义,回顾一些可能帮助读者理解的背景概念也是必要的。首先是一些常见的被用做深度语义分割系统的网络、方法以及设计决策;另外还有用于训练的一些常见的技术好比迁移学习等。最后是数据的预处理以及加强式的方法等。

 

2.1 常见的深度网络架构

 

正如以前所讲,某些深度网络已经对该领域产生了巨大的贡献,并已成为众所周知的领域标准。这些方法包括AlexNet,VGG-16,GoogLeNet,以及ResNet。还有一些是因为其被用做许多分割架构的一部分而显得重要。所以,本文将在本章致力于对其进行回顾。

 

2.1.1 AlexNet

 

AlexNet(以做者名字Alex命名)独创了深度卷积神经网络模型,在2012年ILSVRC(ImageNet大规模图像识别)竞赛上以top-5准确率84.6%的成绩获胜,而与之最接近的竞争者使用了传统的而非深度的模型技术,在相同的问题下仅取得了73.8%的准确率。由Krizhecsky等人[14]给出的架构相对简单,包括卷积层、max-pooling层及ReLU层各五层做为非线性层,全链接层三层以及dropout层。图2给出了这个架构的示意。

 

图 2 文献[14]中给出的AlexNet卷积神经网络架构。

2.1.2 VGG

 

VGG是由牛津大学Visual Geometry Group提出的卷积神经网络模型(以课题组的名字命名)。他们提出了深度卷积神经网络的多种模型及配置[15],其中一种提交到了2013年ILSVRC(ImageNet大规模图像识别)竞赛上。这个模型因为由16个权重层组成,所以也被称为VGG-16,其在该竞赛中取得了top-5上92.7%的准确率。图3展现了VGG-16的模型配置。VGG-16与以前的模型的主要的不一样之处在于,其在第一层使用了一堆小感觉野的卷积层,而不是少数的大感觉野的卷积层。这使得模型的参数更少,非线性性更强,也所以使得决策函数更具区分度,模型更好训练。

 

图 3  VGG-16卷积神经网络模型架构,本图经许可取自Matthieu Cord的演讲。

 

 

2.1.3 GoogLeNet

 

GoogLeNet是由Szegedy等人[16]提出的在ILSVRC-2014竞赛上取得top-5上93.3%准确率的模型。这个CNN模型以其复杂程度著称,事实上,其具备22个层以及新引入的inception模块(如图4所示)。这种新的方法证明了CNN层能够有更多的堆叠方式,而不只仅是标准的序列方式。实际上,这些模块由一个网络内部的网络层(NiN)、一个池化操做、一个大卷积核的卷积层及一个小核的卷积层组成。全部操做均并行计算出来,然后进行1×1卷积操做来进行降维。因为这些模块的做用,参数及操做的数量大大减小,网络在存储空间占用及耗时等方面均取得了进步

 

图 4 GoogLeNet框架中带有降维的Inception模块。

 

2.1.4 ResNet

 

微软提出的ResNet[17]因为在ILSVRC-2016中取得的96.4%的准确率而广受关注。除了准确率较高以外,ResNet网络还以其高达152层的深度以及对残差模块的引入而闻名。残差模块解决了训练真正深层网络时存在的问题,经过引入identity skip connections网络各层能够把其输入复制到后面的层上。

 

本方法的关键想法即是,保证下一层能够从输入中学到与已经学到的信息不一样的新东西(由于下一层同时获得了前一层的输出以及原始的输入)。另外,这种链接也协助解决了梯度消失的问题。

 

图 5 ResNet中的残差模块。

 

2.1.5 ReNet

 

为了将循环神经网络RNN模型扩展到多维度的任务上,Graves等人[18]提出了一种多维度循环神经网络(MDRNN)模型,将每一个单一的循环链接替换为带有d个链接的标准RNN,其中d是数据的spatio-temporal维度。基于这篇工做,Visin等人[19]提出了ReNet模型,其不使用多维RNN模型,而是使用常见的序列RNN模型。这样,RNN模型的数量在每一层关于d(输入图像的维数2d)线性增加。在ReNet中,每一个卷积层(卷积+池化)被4个同时在水平方向与竖直方向切分图像的RNN模型所替代,如图6所示:

 

图 6 ReNet架构中的一层,对竖直与水平方向的空间依赖性建模

 

2.2 迁移学习

 

从头训练一个深度神经网络一般是不可行的,有这样两个缘由:训练须要足量的数据集,而这通常是很可贵到的;网络达到收敛须要很长的时间。即使获得了足够大的数据集而且网络能够在短期内达到收敛,从以前的训练结果中的权重开始训练也总比从随机初始化的权重开始训练要好[20,21]。迁移学习的一种重要的作法即是从以前训练好的网络开始继续训练过程来微调模型的权重值。

 

Yosinski等人[22]证实了即使是从较不相关的任务中迁移学习来的特征也要比直接从随机初始化学习的特征要好,这个结论也考虑到了随着提早训练的任务与目标任务之间差别的增大,可迁移性将减少的状况。

 

然而,迁移学习技术的应用并无如此的直接。一方面,使用提早训练的网络必须知足网络架构等的约束,不过,由于通常不会新提出一个全新的网络结构来使用,因此使用现有的网络架构或网络组件进行迁移学习是常见的;另外一方面,迁移学习中的训练过程自己相对于从头开始的训练过程来讲区别很是小。合理选择进行微调的层是很重要的,通常选网络中较高的层由于底层通常倾向于保留更加通用的特征;同时,合理地肯定学习率也是重要的,通常选取较小的值,由于通常认为提早训练的权重相对比较好,无需过分修改。

 

因为收集和建立像素级别的分割标注数据集的内在的困难性,这些数据集的规模通常不如分类数据集如ImageNet[23,24]等的大。分割研究中数据集的规模问题在处理RGB-D或3D数据集时更加严重,由于这些数据集规模更小。也所以,迁移学习,尤为是从提早训练好的分类网络中微调而来的方式,将会成为分割领域的大势所趋,而且已经有方法成功地进行了应用,咱们将在后面几章进行回顾。

 

2.3 数据预处理与数据加强

 

数据加强技术被证实了有利于通用的尤为是深度的机器学习架构的训练,不管是加速收敛过程仍是做为一个正则项,这也避免了过拟合并加强了模型泛化能力[15]。

 

数据加强通常包括在数据空间或特征空间(或两者均有)上应用一系列的迁移技术。在数据空间上应用加强技术最多见,这种加强技术应用迁移方法从已有数据中获得新的样本。有不少的可用的迁移方法:平移、旋转、扭曲、缩放、颜色空间转换、裁剪等。这些方法的目标均是经过生成更多的样原本构建更大的数据集,防止过拟合以及对模型进行正则化,还能够对该数据集的各个类的大小进行平衡,甚至手工地产生对当前任务或应用场景更加具备表明性的新样本。

 

数据加强对小数据集尤为有用,并且其效用已经在长期使用过程当中被证实。例如,在[26]中,有1500张肖像图片的数据集经过设计4个新的尺寸(0.6,0.8,1.2,1.5),4个新的旋角(-45,-22,22,45),以及4个新的gamma变化(0.5,0.8,1.2,1.5)被加强为有着19000张训练图像的数据集。经过这一处理,当使用加强数据集进行微调时,其肖像画分割系统的交叠准确率(IoU)从73.09%提高到了94.20%。

 

 

3 数据集及竞赛

 

如下两种读者应该阅读本部份内容:一是刚刚开始研究本领域问题的读者,再就是已经颇有经验可是想了解最近几年其余研究者研究成果的可取之处的读者。虽然第二种读者通常很明确对于开始语义分割相关的研究来讲数据集及竞赛是很重要的两个方面,可是对于初学者来讲掌握目前最优的数据集以及(主流的)竞赛是很关键的。所以,本章的目标即是对研究者进行启发,提供一个对数据集的简要总结,这里面可能有正好他们需求的数据集以及数据加强或预处理等方面的技巧。不过,这也能够帮助到已经有深刻研究的工做者,他们可能想要回顾基础或者挖掘新的信息。

 

值得争辩的是,对于机器学习来讲数据是最重要的或者最重要的之一。当处理深度网络时,这种重要性更加明显。所以,收集正确的数据放入数据集对于任何基于深度学习的分割系统来讲都是极为重要的。收集与建立一个足够大并且可以正确表明系统应用场景的数据集,须要大量的时间,须要领域专门知识来挑选相关信息,也须要相关的基础设施使得系统能够正确的理解与学习(捕捉到的数据)。这个任务的公式化过程虽然相比复杂的神经网络结构的定义要简单,可是其解决过程倒是相关工做中最难的之一。所以,最明智的作法一般是使用一个现存的足够能够表明该问题应用场景的标准数据集。使用标准数据集还有一个好处就是能够使系统间的对比更加公平,实际上,许多数据集是为了与其余方法进行对比而不是给研究者测试其算法的,在对比过程当中,会根据方法的实际表现获得一个公平的排序,其中不涉及任何数据随机选取的过程。

 

接下来咱们将介绍语义分割领域最近最受欢迎的大规模数据集。全部列出的数据集均包含像素级别或点级别的标签。这个列表将根据数据内在属性分为3个部分:2维的或平面的RGB数据集,2.5维或带有深度信息的RGB(RGB-D)数据集,以及纯体数据或3维数据集。表1给出了这些数据集的概览,收录了全部本文涉及的数据集并提供了一些有用信息如他们的被构建的目的、类数、数据格式以及训练集、验证集、测试集划分状况。

 

表 1  常见的大规模分割数据集

 

3.1  2维数据集

 

自始至终,语义分割问题最关注的是二维图像。所以,二维数据集在全部类型中是最丰富的。本章咱们讨论语义分割领域最流行的二维大规模数据集,这考虑到全部的包含二维表示如灰度或RGB图像的数据集。

 

PASCAL视觉物体分类数据集(PASCAL-VOC[27] (http://host.robots.ox.ac.uk/pascal/VOC/voc2012/) : 包括一个标注了的图像数据集和五个不一样的竞赛:分类、检测、分割、动做分类、人物布局。分割的竞赛颇有趣:他的目标是为测试集里的每幅图像的每一个像素预测其所属的物体类别。有21个类,包括轮子、房子、动物以及其余的:飞机、自行车、船、公共汽车、轿车、摩托车、火车、瓶子、椅子、餐桌、盆栽、沙发、显示器(或电视)、鸟、猫、狗、马、绵羊、人。若是某像素不属于任何类,那么背景也会考虑做为其标签。该数据集被分为两个子集:训练集1464张图像以及验证集1449张图像。测试集在竞赛中是私密的。争议的说,这个数据集是目前最受欢迎的语义分割数据集,所以不少相关领域卓越的工做将其方法提交到该数据集的评估服务器上,在其测试集上测试其方法的性能。方法能够只用该数据集训练,也能够借助其余的信息。另外,其方法排行榜是公开的并且能够在线查询。

 

PASCAL 上下文数据集PASCAL Context [28] (http://www.cs.stanford.edu/∼roozbeh/pascal-context/):对于PASCAL-VOC 2010识别竞赛的扩展,包含了对全部训练图像的像素级别的标注。共有540个类,包括原有的20个类及由PASCAL VOC分割数据集得来的图片背景,分为三大类,分别是物体、材料以及混合物。虽然种类繁多,可是只有59个常见类是较有意义的。因为其类别服从一个幂律分布,其中有不少类对于整个数据集来讲是很是稀疏的。就这点而言,包含这59类的子集常被选做真实类别来对该数据集进行研究,其余类别一概重标为背景。

 

PASCAL 部分数据集PASCAL Part[29] (http://www.stat.ucla.edu/∼xianjie.chen/pascal part dataset/pascal part.html):对于PASCAL-VOC 2010识别竞赛的扩展,超越了此次竞赛的任务要求而为图像中的每一个物体的部分提供了一个像素级别的分割标注(或者当物体没有连续的部分的时候,至少是提供了一个轮廓的标注)。原来的PASCAL-VOC中的类被保留,但被细分了,如自行车被细分为后轮、链轮、前轮、手把、前灯、鞍座等。本数据集包含了PASCAL VOC的全部训练图像、验证图像以及9637张测试图像的标签。

 

语义边界数据集SBD[30] (http://home.bharathh.info/home/sbd):是PASCAL数据集的扩展,提供VOC中未标注图像的语义分割标注。提供PASCAL VOC 2011 数据集中11355张数据集的标注,这些标注除了有每一个物体的边界信息外,还有类别级别及实例级别的信息。因为这些图像是从完整的PASCAL VOC竞赛中获得的,而不只仅是其中的分割数据集,故训练集与验证集的划分是不一样的。实际上,SBD有着其独特的训练集与验证集的划分方式,即训练集8498张,验证集2857张。因为其训练数据的增多,深度学习实践中经常用SBD数据集来取代PASCAL VOC数据集。

 

微软常见物体环境数据集Microsoft COCO [31]:(http://mscoco.org/) 是另外一个大规模的图像识别、分割、标注数据集。它能够用于多种竞赛,与本领域最相关的是检测部分,由于其一部分是致力于解决分割问题的。该竞赛包含了超过80个类别,提供了超过82783张训练图片,40504张验证图片,以及超过80000张测试图片。特别地,其测试集分为4个不一样的子集各20000张:test-dev是用于额外的验证及调试,test-standard是默认的测试数据,用来与其余最优的方法进行对比,test-challenge是竞赛专用,提交到评估服务器上得出评估结果,test-reserve用于避免竞胜过程中的过拟合现象(当一个方法有嫌疑提交过屡次或者有嫌疑使用测试数据训练时,其在该部分子集上的测试结果将会被拿来做比较)。因为其规模巨大,目前已很是经常使用,对领域发展很重要。实际上,该竞赛的结果每一年都会在ECCV的研讨会上与ImageNet数据集的结果一块儿公布。

 

图像与注释合成数据集SYNTHIA[32] (http://synthia-dataset.net/)是一个大规模的虚拟城市的真实感渲染图数据集,带有语义分割信息,是为了在自动驾驶或城市场景规划等研究领域中的场景理解而提出的。提供了11个类别物体(分别为空、天空、建筑、道路、人行道、栅栏、植被、杆、车、信号标志、行人、骑自行车的人)细粒度的像素级别的标注。包含从渲染的视频流中提取出的13407张训练图像,该数据集也以其多变性而著称,包括场景(城镇、城市、高速公路等)、物体、季节、天气等。

 

城市风光数据集 [33] (https://www.cityscapes-dataset.com/)是一个大规模的关注于城市街道场景理解的数据集,提供了8种30个类别的语义级别、实例级别以及密集像素标注(包括平坦表面、人、车辆、建筑、物体、天然、天空、空)。该数据集包括约5000张精细标注的图片,20000张粗略标注的图片。数据是从50个城市中持续数月采集而来,涵盖不一样的时间以及好的天气状况。开始起以视频形式存储,所以该数据集按照如下特色手动选出视频的帧:大量的动态物体,变化的场景布局以及变化的背景。

 

CamVid数据集 [55,34] (http://mi.eng.cam.ac.uk/research/projects/VideoRec/CamVid/)是一个道路、驾驶场景理解数据集,开始是五个视频序列,来自一个安装在汽车仪表盘上的960x720分辨率的摄相机。这些序列中采样出了701个帧(其中4个序列在1fps处,1个序列在15fps处),这些静态图被手工标注上32个类别:空、建筑、墙、树、植被、栅栏、人行道、停车场、柱或杆、锥形交通标志、桥、标志、各类文本、信号灯、天空、……(还有不少)。值得注意的是,Sturgess等人[35]将数据集按照367-100-233的比例分为训练集、验证集、测试集,这种分法使用了部分类标签:建筑、树、天空、车辆、信号、道路、行人、栅栏、杆、人行道、骑行者。

 

KITTI [56] 是用于移动机器人及自动驾驶研究的最受欢迎的数据集之一,包含了由多种形式的传感器得出的数小时的交通场景数据,包括高分辨率RGB、灰度立体摄像机以及三维激光扫描器。尽管很受欢迎,该数据集自己并无包含真实语义分割标注,可是,众多的研究者手工地为该数据集的部分数据添加标注以知足其问题的需求。Alvarez等人[36,37]为道路检测竞赛中的323张图片生成了真实标注,包含三个类别:道路、垂直面和天空。Zhang等人[39]标注了252张图片,其中140张训练、112张测试,其选自追踪竞赛中的RGB和Velodyne扫描数据,共十个类。Ros等人[38]在视觉测距数据集中标注了170个训练图片和46个测试图片,共11个类。

 

YouTube物体数据集 [57] 是从YouTube上采集的视频数据集,包含有PASCAL VOC中的10个类。该数据集不包含像素级别的标注,可是Jain等人[42]手动的标注了其126个序列的子集。其在这些序列中每10个帧选取一张图片生成器语义标签,总共10167张标注的帧,每帧480x360的分辨率。

 

Adobe肖像分割数据集 [26] (http://xiaoyongshen.me/webpage portrait/index.html) 包含从Flickr中收集的800x600的肖像照片,主要是来自手机前置摄像头。该数据集包含1500张训练图片和300张预留的测试图片,这些图片均彻底被二值化标注为人或背景。图片被半自动化的标注:首先在每幅图片上运行一我的脸检测器,将图片变为600x800的分辨率,而后,使用Photoshop快速选择工具将人脸手工标注。这个数据集意义重大,由于其专门适用于人脸前景的分割问题。

 

上下文语料数据集(MINC[43] 是用于对块进行分类以及对整个场景进行分割的数据集。该数据集提供了23个类的分割标注(文中有详细的各个类别的名称),包含7061张标注了的分割图片做为训练集,5000张的测试集和2500张的验证集。这些图片均来自OpenSurfaces数据集[58],同时使用其余来源如Flickr或Houzz进行加强。所以,该数据集中的图像的分辨率是变化的,平均来看,图片的分辨率通常是800x500或500x800。

 

密集标注的视频分割数据集(DAVIS[44,45](http://davischallenge.org/index.html):该竞赛的目标是视频中的物体的分割,这个数据集由50个高清晰度的序列组成,选出4219帧用于训练,2023张用于验证。序列中的帧的分辨率是变化的,可是均被降采样为480p的。给出了四个不一样类别的像素级别的标注,分别是人、动物、车辆、物体。该数据集的另外一个特色是每一个序列均有至少一个目标前景物体。另外,该数据集特地地较少不一样的大动做物体的数量。对于那些确实有多个前景物体的场景,该数据集为每一个物体提供了单独的真实标注,以此来支持实例分割。

 

斯坦福背景数据集[40] (http://dags.stanford.edu/data/iccv09Data.tar.gz)包含了从现有公开数据集中采集的户外场景图片,包括LabelMe, MSRC, PASCAL VOC 和Geometric Context。该数据集有715张图片(320x240分辨率),至少包含一个前景物体,且有图像的水平位置信息。该数据集被以像素级别标注(水平位置、像素语义分类、像素几何分类以及图像区域),用来评估场景语义理解方法。

 

SiftFlow [41]:包含2688张彻底标注的图像,是LabelMe数据集[59]的子集。多数图像基于8种不一样的户外场景,包括街道、高山、田地、沙滩、建筑等。图像是256x256的,分别属于33个语义类别。未标注的或者标为其余语义类别的像素被认为是空。

 

 

3.2  2.5维数据集

 

随着廉价的扫描器的到来,带有深度信息的数据集开始出现并被普遍使用。本章,咱们回顾最知名的2.5维数据集,其中包含了深度信息。

 

NYUDv2数据集[46](http://cs.nyu.edu/∼silberman/projects/indoor scene seg sup.html)包含1449张由微软Kinect设备捕获的室内的RGB-D图像。其给出密集的像素级别的标注(类别级别和实力级别的均有),训练集795张与测试集654张均有40个室内物体的类[60],该数据集因为其刻画室内场景而格外重要,使得它能够用于某种家庭机器人的训练任务。可是,它相对于其余数据集规模较小,限制了其在深度网络中的应用。

 

SUN3D数据集[47](http://sun3d.cs.princeton.edu/):与NYUDv2数据集类似,该数据集包含了一个大规模的RGB-D视频数据集,包含8个标注了的序列。每一帧均包含场景中物体的语义分割信息以及摄像机位态信息。该数据集还在扩充中,将会包含415个序列,在41座建筑中的254个空间中获取。另外,某些地方将会在一天中的多个时段被重复拍摄。

 

SUNRGBD数据集[48](http://rgbd.cs.princeton.edu/)由四个RGB-D传感器得来,包含10000张RGB-D图像,尺寸与PASCAL VOC一致。该数据集包含了NYU depth v2 [46], Berkeley B3DO [61], 以及SUN3D [47]数据集中的图像,整个数据集均为密集标注,包括多边形、带方向的边界框以及三维空间,适合于场景理解任务。

 

物体分割数据集(OSD[62](http://www.acin.tuwien.ac.at/?id=289)该数据集用来处理未知物体的分割问题,甚至是在部分遮挡的状况下进行处理。该数据集有111个实例,提供了深度信息与颜色信息,每张图均进行了像素级别的标注,以此来评估物体分割方法。可是,该数据集并无区分各个类,使其退化为一个二值化的数据集,包含物体与非物体两个类。

 

RGB-D物体数据集[49] (http://rgbd-dataset.cs.washington.edu/)该数据集由视频序列构成,有300个常见的室内物体,分为51个类,使用WordNet hypernym-hyponym关系进行分类。该数据集使用Kinect型三维摄像机进行摄制,640x480RGB图像,深度信息30赫兹。对每一帧,数据集提供了RGB-D及深度信息,这其中包含了物体、位置及像素级别的标注。另外,每一个物体放在旋转的桌面上以得出360度的视频序列。对于验证过程,其提供了22个标注的天然室内场景的包含物体的视频序列。

 

 

3.3  3维数据集

 

纯粹的三维数据集是稀缺的,一般能够提供CAD网格或者其余的体元表示如点云等。为分割问题获取三维数据集是困难的,所以不多有深度学习方法能够处理这种数据。也所以,三维数据集目前还不是很受欢迎。尽管如此,咱们仍是介绍目前出现的相关数据集来解决现有的问题。

ShapeNet部分数据集[50](http://cs.stanford.edu/ericyi/project page/part annotation/)是ShapeNet[63]数据集的子集,关注于细粒度的三维物体分割。包含取自元数据及16个类的31693个网格,每一个形状类被标注为二到五个部分,整个数据集共有50个物体部分,也就是说,物体的每一个部分好比飞机的机翼、机身、机尾、发动机等都被标注了。真实标注按照被网格分割开的点呈现。

 

斯坦福2D-3D-S数据集[51](http://buildingparser.stanford.edu)是一个多模态、大规模室内空间数据集,是斯坦福三维语义分析工做[64]的扩展。提供了多个模态:二维RGB,2.5维添加深度信息的图片、三维网格和点云,均提供分割标注信息。该数据集有70496张高分辨率的RGB图像(1080x1080分辨率),以及其对应的深度图谱、表面法线、网格以及点云,军事带有像素级别及点级别的语义标注信息。这些数据取自6个室内区域,分别来自三个不一样的教育与办公建筑。共有271个房间,大约7亿个点,被标以13个类。

 

三维网格分割基准数据集[52](http://segeval.cs.princeton.edu/)该基准数据集有380个网格,被分为19个类。每一个网格手动的被分割为不一样的功能区域,主要目标是提供对于人们如何分配网格功能的一个几率分布。

 

悉尼城市物体数据集[53](http://www.acfr.usyd.edu.au/papers/SydneyUrbanObjectsDataset.shtml)该数据集包含多个常见的城市道路物体,由Velodyne HDK-64E LIDAR扫描获得,共有631个独立扫描的点云,由车辆、行人、标志、树木等类别组成。有趣的是,除了正常的扫描以外,还提供了全景360度的扫描标注。

 

大规模点云分类基准数据集[54](http://www.semantic3d.net/)该基准数据集提供手工标注的三维点云,面向天然与城市场景。该数据集在造成点云时保留了细节与密度等信息,训练集和测试集各包含15个大规模的点云,其规模达到超过十亿个标注点的级别。

 

 

 

4 方法

 

深度学习技术在各类高层视觉任务上取得了巨大的成功,尤为是监督方法如卷积神经网络CNN用于图像分类或物体检测 [14,15,16],这激励着研究者们探索这些方法的像素级别标注能力,如语义分割能力。这些深度学习技术区别于传统方法的关键优点在于其强大的针对当前问题学习合适的特征表示的能力,例如,对于一个特定数据集的像素级标注问题,其使用一种端对端的方法而不是手工设计的特征,而手工设计特征须要领域专门知识、耗时耗力并且有时太过精细化以至于只能在某个特定的场景下使用。

 

 

图 7 [65]中的全卷积神经网络示意图。将全链接层替换为卷积层,即可将用于分类的CNN网络转化为生成空间热区的网络。加入反卷积层来实现上采样,使得网络能够进行密集推理并学到每一个像素点的标签。

 

最近,最成功用于语义分割的深度学习技术均来自同一个工做,即全卷积网络FCN [65],该方法的出色之处在于,其利用了现存的CNN网络做为其模块之一来产生层次化的特征。做者将现存的知名的分类模型包括AlexNet、VGG-1六、GoogLeNet和ResNet等转化为全卷积模型:将其全链接层均替换为卷积层,输出空间映射而不是分类分数。这些映射由小步幅卷积上采样(又称反卷积)获得,来产生密集的像素级别的标签。该工做被视为里程碑式的进步,由于它阐释了CNN如何能够在语义分割问题上被端对端的训练,并且高效的学习了如何基于任意大小的输入来为语义分割问题产生像素级别的标签预测。本方法在标准数据集如PASCAL VOC分割准确率上相对于传统方法取得了极大的进步,且一样高效。因为上述及更多显著的贡献,FCN成为了深度学习技术应用于语义分割问题的基石,其处理过程如图7所示。

表 2  基于深度学习的语义分割方法总结

 

图 8 所说起方法的形象化展现

 

尽管FCN模型强大而普适,它任然有着多个缺点从而限制其对于某些问题的应用:其固有的空间不变性致使其没有考虑到有用的全局上下文信息,其并无默认考虑对实例的辨识,其效率在高分辨率场景下还远达不到实时操做的能力,而且其不彻底适合非结构性数据如3D点云,或者非结构化模型。这些问题咱们将在本节进行综述,同时给出目前最优的解决这些问题的办法。表2给出了这个综述的总结,展现了全部的说起的方法(按照本节中出现的前后排序)、他们所基于的架构、主要的贡献、以及基于其任务目标的分级:准确率、效率、训练难度、序列数据处理、多模式输入以及3D数据处理能力等。每一个目标分为3个等级,依赖于对应工做对该目标的专一程度,叉号则表明该目标问题并无被该工做考虑进来。另外,图8对说起方法的关系进行了形象化的描述。

 

4.1 解码器变体

 

除了FCN以外,还有其余的变体来将原用于分类的网络转化为适合分割的形式。有争议的说,基于FCN的架构更加受欢迎,也更成功,可是其余替代的架构也一样值得注意。通常来讲,这些网络均选用一种分类网络如VGG-16,而后去掉其全链接层。分割网络的这个部分一般被称之为编码器,产生低分辨率的图像表示或者特征映射。而问题在于学习如何解码或者将这些低分辨率的图像为分割问题映射到像素级别的预测上去。这部分被称为解码器,通常是这种架构的不一样方法的区别所在。

 

 

图 9 SegNet架构示意图。一个编码器加一个解码器,而后是一个softmax分类器用于像素级别的分类,图来自[66]。

 

SegNet [66] 是理解这种区别的很明显的例子(见图9)。解码器部分由一系列的上采样及卷积层组成,最终接上一个softmax分类器来预测像素级别的标签,以此做为输出,能够达到与输入图像相同的分辨率。解码器部分的每一个上采样层对应于编码器中的一个最大池化层,解码器中的这些层用索引自编码器阶段的对应的特征映射来进行最大池化,从而对目前的特征映射进行上采样。这些上采样得来的映射接下来将由一系列的可训练的滤波器集合来进行卷积,从而产生密集的特征映射。当特征映射被修复为与原输入相同分辨率的时候,其将被输入softmax分类器中获得最终的分割结果。

 

 

图 10 SegNet(左)与FCN(右)解码器的对比。SegNets用对应的编码器部分最大池化来进行上采样,而FCN学习出反卷积滤波器来进行上采样(其中加入编码器中对应的特征映射)。图取自[66].

 

而另外一方面,基于FCN的架构利用了可学习的反卷积滤波器来对特征映射进行上采样,而后,上采样获得的特征映射将按照元素优先的方式加入到编码器部分卷积层获得的对应的特征映射中。图10展现了两种方法的对比。

 

4.2 整合上下文知识

 

语义分割须要对多种空间尺度的信息予以整合,也须要对局部与全局信息进行平衡。一方面,细粒度的或者局部的信息对于提升像素级别的标注的正确率来讲是关键的;另外一方面,整合图像全局的上下文信息对于解决局部模糊性问题来讲也是重要的。

 

通常的CNN模型对于处理这种平衡不是很擅长。池化层能够使网络取得某种程度的空间不变性并保持一样的计算效率,却丢失了全局的上下文信息。即使是纯的CNN网络,即没有池化曾的CNN,也一样受限,由于其神经元的感觉野只能随着层数线性增加。

 

能够采用不少方法来使CNN对全局信息敏感:用条件随机场(CRF)做为后处理过程来调优结果,多尺度聚合,或者甚至是将对上下文的建模延缓到另外一种深度模型中,如RNN。

 

4.2.1  条件随机场

 

如前所述,CNN结构内在的空间转化不变性限制了其应用到分割问题上的准确率(尤为是其在空间位置上的准确性)。调优分割架构的输出并强化其捕捉细粒度信息的一个通用的办法就是引入条件随机场(CRF)做为其后处理模块。CRF促成了底层图像信息(如像素间的相互关系[92,93])与产生像素级别的类别标签的多类别推理输出的结合,这种结合对于捕捉长期依赖性质尤为重要,这也是关注于局部细节的CNN所未能考虑到的。

 

DeepLab模型[68,69]使用了全链接的两两之间的CRF模型[94,95]做为其流程中的一个独立的后处理步骤,以此对分割结果进行调优。该模型将每一个像素建模为某区域内的一个节点,不管两个像素距离多远,其两两之间的关系都会被衡量,所以,本模型也被称为密集或全链接因子图。使用此模型后,不管短时间的仍是长期的像素相互关系都被考虑进来,使得系统能够考虑到分割过程当中须要的细节信息,而因为CNN的空间不变性,这些信息是CNN结构所未能考虑的。尽管全链接模型一般是低效的,该模型因为能够用几率推理来近似,因此也能够达到相对地高效。图11展现了这种基于CRF的后处理过程对DeepLab模型产生的得分和信念映射产生的影响。

 

图 11 DeepLab中展现的CRF调优每次迭代带来的影响。第一行是得分映射(softmax以前的层的输出),第二行是信念映射(softmax的输出)。

 

Wild网络[43]中的材质识别使用了多种CNN模型用来识别MINC数据集中的块。这些CNN模型被以滑动窗口的方式使用,用来分类这些块,他们的权重值被转移到FCN的组成网络中,而FCN经过添加对应的上采样层来整合这些网络。多个输出取平均便获得了一个平均的映射。最后,与DeepLab中相同的CRF(只不过是离散化优化的)被用来预测与调优每一个像素点处的材质。

 

应用CRF来调优FCN网络的分割结果的另外一个显著的工做即是Zheng等人提出的CRFasRNN模型[70]。该工做主要的贡献即是将密集CRF重写为带有成对势能的形式,做为网络的组成部分之一。经过展开均值场推理的各个步骤,并将其视为RNN结构,该工做成功地将CRF与RNN整合在一块儿成为一个完整的端对端的网络。这篇文章的工做说明了将CRF重写为RNN模型来构造出深度网络的一部分,与Pinheiro等人[81]的工做行成了对比,而该工做使用RNN来对大规模的空间依赖性进行建模。

 

4.2.2 扩张的(dilated)卷积

 

扩张卷积,又称`a-trous卷积,是对考虑Kronecker的卷积核[96]的扩展,而这种卷积核能够指数级地扩大感觉野而不丢失分辨率。换句话说,扩张卷积是常规的利用上采样滤波器的方法。扩张率 控制着上采样因子,如图12所示,堆叠的以l为扩张率的扩张卷积使得感觉野呈现指数级的增加,而滤波器的参数保持线性增加。这意味着扩张卷积能够在任意分辨率图片上高效地提取密集特征。另外,值得注意的是通常的卷积只是扩张率为1时的特殊状况。

 

图 12  [71]所展现的不一样扩张率的扩张卷积滤波器。(a)中扩张率为1,每一个单元有3*3的感觉野;(b)中扩张率为2,每一个单元有7*7的感觉野;(c)中扩张率为3,每一个单元有15*15的感觉野。

 

实际上,这与作正常的卷积以前扩张卷积核是等同的,这意味着根据扩张率扩充其尺寸,为空元素位置补零,换句话说,当扩张率大于1时,滤波器参数将与非近邻元素相配对。图13展现了这种扩张的滤波器。

 

图 13  滤波器元素根据扩张率与输入元素进行配对

使用扩张卷积的最重要的工做即是Yu等人[71]提出的多尺度上下文聚合模型、上文说起的DeepLab模型(其升级版本)[69]、以及实时处理网络ENet[72]。全部这些将愈来愈大的各类扩张率结合,使得模型具备更大的感觉野,同时不增添额外的消耗,也不会过分地对特征映射进行下采样。这些工做同时具备相同的趋势:扩张卷积与紧密多尺度上下文聚合紧密耦合,这咱们将在后面章节中解释。

 

4.2.3 多尺度预测

 

整合上下文知识的另外一种可能的作法即是使用多尺度预测。CNN中几乎每一个单独的参数都会影响到获得的特征映射的大小,换句话说,很是类似的架构也会对输入图像的像素数量产生较大的影响,而这关系到每一个特征映射。这意味着滤波器将会潜在地检测特定尺度的特征(大体上有着特定的程度)。另外,网络的参数通常都与要解决的问题息息相关,也使得模型向不一样尺度的扩展变得更难。一种可能的解决方案即是使用多尺度的网络,这种网络通常都是选用多个处理不一样尺度的网络,最后将他们的预测结果结合,产生一个单一的输出。

Raj等人[73] 提出了全卷积VGG-16的一种多尺度版本,有着两个路径,一个是在原始分辨率上处理输入,使用的是一个浅层的卷积网络,再一个就是在两倍分辨率上处理,使用全卷积VGG-16和一个额外的卷积层。第二个路径的结果通过上采样后与第一个路径的结果相结合,这个串联起来的结果再通过一系列的卷积层,获得最终的输出。这样,这个网络便对尺度变换更加鲁棒了。

Roy等人[75]采起了另外的方法解决这个问题,他们选用了包含4个多尺度CNN的网络,而这4个网络有着相同的架构,取自Eigen等人[74]。其中之一致力于为当前场景找出语义标签。这个网络(总体上)以一个从粗糙到精细的尺度序列来逐步的提取特征(如图14)。

 

图 14  [74]中提出的多尺度CNN架构,利用一个尺度序列预测深度、法向来逐步将输出调优,而且对一个RGB的输入执行语义分割。

 

另外一个重要的工做是Bian等人[76]提出的网络,这个网络包含n个FCN,能够处理不一样尺度的问题。该网络提取的特征将融合在一块儿(先使用合适的填充方法进行必要的上采样),而后经过一个额外的卷积层以后获得最终的分割结果。这个工做的主要贡献即是这个两步的学习过程,首先,独立的训练每一个网络,而后,这些网络将结合,最后一层将被微调。这种多尺度的模型能够高效地添加任意数量的训练好的网络进来。

 

4.2.4 特征融合

 

再分割问题中,向全卷积神经网络架构中加入上下文信息的另外一种方式即是进行特征融合。特种融合技术将一个全局特征(由某网络中较前面的层提取获得)与一个相对局部的特征映射(后边的层提取得)相结合。常见的架构如原始FCN网络利用跳跃链接的方式进行延迟特征融合,也是经过将不用层产生的特征映射相结合(图15)

 

图 15 相似跳跃链接的架构,对特征映射进行延迟融合,其相似于在每一个层上作出独立的预测后再对结果进行融合。图来自[84]。(注:每一个层均有“分割结果”,最后融合之)

 

另外一种方法即是提早融合,这一方法来自ParseNet[77]中的上下文模块。全局特征被反池化为与局部特征相同的尺寸,而后,将这两种特征进行串联后获得一个合并的特征,输入到下一层或者直接用于分类器的学习。如图16所示。

 

图 16  ParseNet中的上下文模块示意图。较前面的层产生的全局特征与其下一层产生的特征相结合,以此来添加上下文的信息。图来自[77]。

SharpMask[84] 这个工做继续发展了这种特征融合的想法,其引入了一种先进的调优模块来将前面层产生的特征合并到后面的层,这个模块使用的是一种自上而下的架构。因为其重点关注实例分割方面,因此这个工做咱们将在后面章节介绍。

 

4.2.5 循环神经网络RNN

 

咱们注意到,CNN网络在非一维数据如图像等的处理上取得了成功,可是,这些网络依赖于手工设计的核,将网络限制于局部上下文中。而得益于其拓扑结构,循环神经网络成功地应用到了对长期或短时间序列的建模上。这样,经过将像素级别的以及局部的信息联系起来,RNN能够成功地建模全局上下文信息并改善语义分割结果。可是,一个重要的问题即是,图片中缺少天然的序列结构,而标准的RNN架构关注的偏偏是一维的输入。

 

图 17 ReSeg网络示意图。VGG-16的卷积层以第一层中的蓝色和黄色层展现,余下的架构基于微调目的的ReNet,图取自[78]。

 

基于面向分类的ReNet模型,Visin等人[19]提出了ReSeg模型[78]用于语义分割,如图17所示。在本方法中,输入图像在第一层VGG-16层中被处理,特征映射结果送入一个或更多的ReNet层中来进行微调。最终,特征映射的尺寸被调整,使用的是基于反卷积的上采样层。在本方法中,门循环单元(GRU)被用来平衡占用空间与计算复杂度。通常的RNN在建模长期依赖关系时表现很差,主要是由于梯度消失问题的存在。由此产生的长短时间记忆网络(LSTM)[97] 和GRU [98]是该领域目前最好的两种方法,能够避免以上问题。

受ReNet架构的启发,有人为场景标注问题提出了一种新型的长短时间记忆上下文融合模型(LSTM-CF)[99]。该方法使用了两种不一样的数据源:RGB信息和深度信息。基于RGB的部分依赖于DeepLab架构[29]的变体,串联了三种不一样尺度的特征来丰富特征表达(由[100]处得到启发)。全局信息在两个部分(深度信息部分与光学信息部分)都是竖直的,最终这两种竖直的上下文信息在水平方向上被融合。

咱们注意到,对图像全局上下文信息的建模与二维循环方法颇有关系,只需在输入图像上按照水平和竖直方向分别将网络展开。基于相同的想法,Byeon等人[80]提出了简单的二维的基于LSTM的架构,其中的输入图像被分割为无重叠的窗口,而后将其送入四个独立的LSTM记忆单元。该工做突出贡献是其计算复杂度较低、运行与单个CPU以及其模型的简单性。

另外一种捕获全局信息的方法依赖于更大的输入窗口的使用,这样就能够建模更大范围内的上下文信息。可是,这也下降了图像的分辨率,并且引入了其余相似于窗口重叠等的问题。然而,Pinheiro等人[81] 引入了循环卷积神经网络(rCNN)来使用不一样的窗口大小循环地训练,这至关于考虑了以前层中的预测信息。经过这种方法,预测出的标签将自动地平滑,从而使网络表现更好。

无向循环图(UCG)一样被用来建模图像上下文信息从而用于语义分割[82]。可是,RNN并不直接适用于UCG,为了解决这个问题,无向循环图被分解为了多个有向图(DAG)。在本方法中,图像在三个不一样的层中被处理,分别是:CNN处理获得图像的特征映射,DAG-RNN对图像的上下文依赖信息进行建模,反卷积层将特征映射上采样。这个工做说明了RNN如何能够与图相结合,被用来建模长期范围内的上下文依赖,并超过已有的最优方法。

 

4.3 实例分割

 

实例分割被认为是语义分割的下一步,与此同时其相对于其余底层像素级别分割技术来讲是最具挑战性的。该问题的主要目标是将同一类的不一样物体分割为各个实例,这个处理过程的自动化操做并不直观,所以,实例的数量并非预先知道的,对获得的预测的评估方法也不像语义分割同样达到像素级别。因此,这个问题至今仍有部分未被解决,可是考虑到其潜在的应用,目前领域研究者对此保有兴趣。实例标注为咱们分析遮挡状况提供了额外的信息,还能够数出属于同一类的物体的数量,从而能够为执行抓取任务的机器人检测出特定的物体。还有更多的其余应用。

基于此目的,Hariharan等人[10]提出了一种同时检测和分割(SDS)的方法来提升现有方法的表现。这个方法首先使用了

一种自下而上的层次化图像分割方法,称之为多尺度可结合组(MCG)[101],以此获得建议的分割区域。对于每一个区域,使用适合的区域CNN(R-CNN)[102]版原本提取特征,其是由MCG方法中给出的边界框微调而来,而不是由选择性的搜索以及前景区域得出。而后,对每一个建议的区域使用线性支持向量机(SVM)在CNN顶层特征上进行分类。最后,为了进行调优,非最大抑制(NMS)方法被应用到了先前的区域建议上。

接下来,Pinheiro等人[83]提出了深度遮盖(DeepMask)模型,这是一种对物体给出提议的方法,基于单个的卷积网络。这个模型对于一个输入的分块预测出一个分割的覆盖区域,并给出这个块中包含物体的几率。这两个任务同时被一个单个的网络所学习和计算,他们共享多数的层,除了最后一层实现特定任务的层。

上述做者基于DeepMask架构(并因为其有效性将其做为模型的起点)又提出了一种全新的模型,应用了一种自上而下的调优策略[84]解决物体实例分割问题,并在准确率和速度等方面取得了更好的表现。该过程的目标是高效的将底层特征与更后边的层中产生的高层语义信息相结合,这个过程包含了堆叠在一块儿的不一样的调优模块(每一个模块后都跟着池化层),目的在于经过生成一个新的上采样物体编码来转化池化的影响。图18展现了SharpMask中的调优模块。

 

图 18  SharpMask中的自上而下逐步调优的结构,这种调优是经过将底层特征与上层中编码的高层特征想融合,来实现空间上丰富信息融合的目的。图来自[83]。

 

另外一种方法由Zagoruyko等人[85]提出,使用快速R-CNN做为起点,使用DeepMask的物体提议而不是选择性搜索。这种结合多种方法的系统成为多路分类器,提升了COCO数据集上的表现,对于快速R-CNN作出了三处修改:使用整合的损失项改善了定位能力,使用中心区域提供上下文信息,以及最终跳过链接来为网络给出多尺度的特征。该系统相对于快速R-CNN取得了66%的提高。

能够看出,多数提到的方法依赖于现有的物体检测方法,这限制了模型的表现。即便这样,实例分割过程依然有不少问题未被解决,上述方法仅仅是这个有挑战性的方向的一小部分。

 

4.4 RGB-D数据(带有深度)

 

咱们注意到,至关数量的语义分割的工做都是使用的照片式的数据,可是,廉价的RGB-D传感器促进告终构化信息的使用,这种传感器提供了有用的来自深度信息的几何线索。一些关注于RGB-D场景分割的工做已经在细粒度标注准确率上取得了进步,使用了深度信息而不只仅是照片式的数据。利用深度信息进行分割更具挑战,因为不可预测的场景光照变化伴随着复杂遮挡致使的不完整的物体表示。可是,不少工做已经能够成功地使用深度信息提升准确率。

带有深度信息的图片并不能直接应用到专门处理照片式数据的模型中。深度数据须要被编码为每一个像素点上的三个通道,就好像是RGB图像同样。有许多不一样的技术,好比水平-高度-角度(HHA)[11]方法,这个方法被用于将深度信息编码为如下三个通道:水平方向的差距,距离“地面”的高度,以及局部表面法向与推知的重力方向的夹角。这样,咱们即可以向为RGB数据设计的模型中输入深度信息,并经过从结构化信息中学习新的特征来提升模型的性能。一些方法如[99]即是基于这种编码技术的。

相关工做中还有一些工做,如同使用RGB-D数据的方法同样,利用一种多视角的方法来提升目前的单视角的工做的性能。

Zeng等人[103]提出了一种使用多视角RGB-D数据和深度学习技术的物体分割方法。多视角捕获的RGB-D数据被送入FCN网络中,获得每一个图像每一个像素点分别做为40类的几率。分割标签由阈值截断,该阈值为各个视角下平均几率的三倍。另外,本工做训练多个网络(AlexNet [14] 和VGG-16 [15])来提取特征,而后来评估使用深度信息的优点。本工做发现,加入深度信息并无为分割效果带来任何的提升,而这多是深度信息的噪声致使的。这个工做是在2016年亚马逊挑选竞赛(Amazon Picking Challenge)上被提出的,是自RGB图像数据独立地输入FCN网络以来,对多视角深度学习系统的一个主要的贡献。

Ma等人[104]提出了一个全新的物体类别分割方法,使用的也是多视角深度学习技术。多个视角是由运动的RGB-D摄像机拍摄的,在训练阶段,使用RGB-D SLAM技术获取摄像机轨迹,而后将RGB-D图像扭曲成与真实标注数据相同尺度以保证训练中的多视角的连续性。该方法基于FuseNet[105],其在语义分割过程当中结合了RGB与深度图像,经过加入多尺度的损失最小化技术改善了原有工做的表现。

 

4.5 三维数据

 

三维几何数据如点云或多边形网格数据等是一种很是实用的数据表示形式,缘由在于其提供的附加的维度使得算法能够考虑更加丰富的空间信息,而这显然对分割颇有帮助。可是,绝大多数成功的深度学习分割技术,尤为是基于CNN的,开始并非被设计为解决上面提到的非结构化或者不规则的输入的。为了在卷积网络中促成参数共享以及其余优化形式,多数工做借助于三维立体网格或者映射来将非结构化或者不规则点云或网格转化为普通表示形式,而后再将其输入网络中。例如,Huang等人[86](图19)选取了一个点云,经过一个密集的立体网格对其进行分析,生成了一系列的占位体元,将其做为三维CNN的输入并为每一个体元产生一个标签,最后,算法将标签映射回点云。虽然该方法已被成功地应用,其仍有不足之处如难以量化、丢失空间信息以及没必要要的大规模表示等。所以,众多研究者致力于构造出一种能够直接处理非结构化三维点集或网格的深度模型。

 

图 19 Huang等人[86]提出的基于3DCNN的点云语义标注系统。点云通过一个密集的体元化处理过程,CNN将处理获得的每个体元,而后将结果映射回原来的点云。图片来自[86]。

 

PointNet[87]是一个先驱性的工做,提出了一种深度神经网络来将原始的点云做为输入,给出了一个同时进行分类和分割的联合的架构。图20展现了这种能够处理无序三维点集的双模块的网络。

 

图 20  PointNet联合结构,用于分类和分割,图来自[87]。

 

咱们能够看出,PointNet是一种不同凡响的深度网络架构,由于其基于全链接层而不是卷积层。该模型分为两部分,分别负责分类和分割。分类子网络以点云为输入,采用一系列变换以及多层感知机(MLP)来生成特征,而后使用最大池化来生成全局特征以描述原输入的点云。另外的MLP将对这些全局特征进行分类,而后为每个类得出分数。分割子网络将全局特征与分类网络生成的每一个点的特征串联起来,而后应用另外的两个MLP来生成特征,并计算出每一个点属于每一类的得分。

 

4.6 视频序列

咱们观察到,单幅图像的分割已经取得了较大的进展,可是,当处理图像序列时,许多系统简单地使用逐帧处理的方法,这种方法比较奏效,也一般能够获得不错的结果,可是,这样处理是机器耗时的,所以一般不可行。另外,这种方法彻底忽略了短时间连续性以及一致性信息,而这些信息很可能会提升系统准确率并减小运行时间。

可争辩地,这方面最具标志性的工做即是Shelhamer等人[88]提出的时钟FCN网络。该网络改编自FCN,使用视频中的短时间线索来减小推理时间,同时保证正确率。这种时钟的方法依赖于如下想法:特征速度,即网络中短时间的特征变化率,其在各层中通过某帧时是变化的,所以来自浅层的特征变化的比来自深层的特征要快。基于此假设,各层能够被分为不一样的阶段,因而能够按照其深度指定不一样的更新率来进行处理。这样,因为其语义上的稳定性,深度特征能够在各帧被保持,也就节省了推理时间。图21展现了这种时钟FCN的结构。

 

图 21 三阶段的时钟FCN模型,以及其对应的时钟速率。图来自[88]。

 

值得注意的是,做者提出了两种更新速率的策略:固定的和自适应的。固定的策略直接为每一个阶段设置一个常数时间来从新计算特征。自适应策略则使用数据驱动的方法来设置时钟,例如,时钟依赖于运动或语义改变的数量。图22展现了这种自适应策略的例子。

 

图 22 Shelhamer等人[88]提出的自适应的时钟方法。提取出的特征在静止的帧将会被保留,而在动态的帧时将会被从新计算。图来自[88]。

 

Zhang等人[106]采用了一种不一样的方式,使用了3DCNN这种本来被设计来学习三维体数据特征的方法,以此来从多通道输入如视频片断中学出层次化的时空联合特征。与此同时,该工做将输入片断过度割为超体元,而后利用这些超体元图并将学得的特征嵌入其中,最终将在超体元图上应用graph-cut[107]来获得分割结果。

另外一个重要的方法采用了三维卷积的思想,是由Tran等人[89]提出的一种深度的端对端的、体元对体元的预测系统。该方法将本身提出的三维卷积(C3D)网络应用于先前的工做[108]中,在最后添加了反卷积层以将其扩展为面向语义分割的算法。该系统将输入的视频片断分为包含16个帧的小片断,对每一个片断单独进行预测。其主要的贡献在于其使用的三维卷积技术。这种卷积技术使用了三维的滤波器,适应了从多通道数据中学出的时空联合特征,图23展现了应用到多通道输入数据上的二维和三维卷积的不一样之处,证实了视频分割状况下三维卷积核的有用性。

 

图 23  应用于一系列的帧的时候,二维和三维卷积的不一样。(a)中,二维卷积在各个帧(多通道)的各个深度使用的是相同的权重,产生的是一个单一的图像。(b)三维卷积使用的是三维的滤波器,卷积后产生的是三维体元,所以保留了帧序列的时间信息。

 

 

5 讨论

 

前面的章节咱们定性地回顾了现有的方法,也就是说,咱们没有考虑任何定量的结果。在本章,咱们从数学的角度讨论这些方法。首先,咱们将描述最经常使用的评价指标,这些指标在如下三方面度量语义分割系统的表现:运行时间、占用内存、准确率。而后,咱们将收集这些方法在最具表明性的数据集上运行的结果(以本文中所述的指标度量)。接着,咱们将总结这些结果。最终,咱们列举将来研究可能的方向,以及咱们认为的该领域的重点之处。

 

5.1 评价指标

 

对于一个分割系统来讲,要对该领域产生重要的影响,必须通过严格的评估。另外,评估过程当中必须使用标准的众所周知的评价指标,这样对于现有方法来讲才是公平的。进一步的,必须对方法的各个方面进行评估,而后才能断言该系统的有效性,这些方面包括运行时间、占用内存、准确率等。因为对目标或上下文的依赖性,某些指标可能会更加剧要,也就是说,在一个实时处理的应用中,可能会为了运行速度而牺牲准确率。可是,为了科学的严谨性,提供该方法的全部可能的评价指标度量是极其重要的。

 

5.1.1 运行时间

 

可是,考虑到可重复性以及对后续研究者的帮助,有必要在提供运行时间的同时给出系统运行的硬件信息,以及基准方法的配置。若是合理地作到了这些,后续的研究者们将能够判断出这个方法是否对其真实应用实用,而且能够使用相同的环境进行公平的对比。

 

5.1.2 占用存储空间

 

内存占用是分割问题中的另外一个重要的考量。虽然不及运行时间那样受限,由于扩充容量通常是可行的,其仍然做为系统的一个限制因素。在某些场景下,例如机器人平台上的板载芯片,内存并不会像高性能服务器中同样充裕。即便是广泛用来加速深度网络的高端的显卡(GPU)也不会搭载大容量的存储空间。基于这些考虑,以及与在时间问题上类似的对于实际应用的考虑,详细记录网络所占用的最大及平均存储空间是极其有用的。

 

5.1.3 准确率

 

已经提出了许多用于评估语义分割问题准确率的评价指标,这些指标一般是像素级准确率及IoU的变体。咱们报告了语义分割方面最经常使用的评价指标,用来度量逐个像素标注类的方法的表现。为便于解释,咱们给出下述标号的意思:咱们假设共有k+1类,(从L0到Lk,包括一个空类或者是背景),pij是本属于第i类却被分到第j类的像素数量。也就是说,pii表明的是分类正确的正例数量,其余几个p值相似。

 

像素准确率(PA:这是最简单的指标,仅仅计算正确分类的像素数量与全部像素数量的比值。

 

像素准确率平均值(MPA:对PA的轻微改进版本,正确分类像素的比例是按类计算的,最终由类总数取平均。

 

平均交并比(MIoU):这是用于分割问题的标准评价指标,其计算的是两个集合的交集与其并集的重合比例,在本问题中,其计算的即是真实分割与系统预测的分割之间的交并比。这个比例能够被从新定义为真实正例(交集)的数量除以总数量(包括真实正例、错误负例、以及错误正例(并集))。IoU也是按类计算最后取平均。

 

频率加权交并比(FWIoU):是对MIoU的改进,对每一个类别按照重要性进行加权,重要性来自于其出现的频率。

 

对于上述的全部指标,MIoU是最经常使用的一个,由于它最具表明性,且很是简单。许多竞赛以及研究者使用该指标来报告其结果。

 

5.2 结果

 

如前所述,第四章根据各自的任务给出了各个方法的功能描述,如今,咱们收集了这些方法对应论文中报告的全部的量化的结果。这些结果按照其输入数据集的不一样分为三个部分:二维RGB数据、2.5维RGB-D数据以及三维体数据或视频序列数据。

咱们选用了最经常使用的数据集,值得注意的是,这些论文在报告结果是并不统一。虽然多数的方法试图以标准数据集评估其方法,并尽可能提供充足的信息来保证其结果能够重现,以及尽可能使用最经常使用的评价指标来评价,但不少其余方法并无这样作。这也使得公平地对比这些方法变得很困难。

另外,咱们发现不多有做者提供除准确率以外的其余评价信息。尽管其余指标也是重要的,多数论文并无提供其运行时间或者占用内存的信息。有时候这些信息有,可是必要的程序再现性信息又没有给出,因此,没法得知这些方法的配置信息。

 

5.2.1 RGB图像

 

对于二维图像这一类,咱们选取了7个数据集:PASCAL VOC 20十二、PASCAL上下文、PASCAL人物、CamVid、CityScapes、斯坦福背景以及SiftFlow数据集。这些数据集涵盖了多种状况和优化目标。

首先是,值得争议的最终的数据集,也是绝大多数方法都会使用的PASCAL VOC 2012数据集。表3给出了提供该数据集上结果的方法在其测试集上的准确率。这个结果集展示了一个清晰的上升趋势(从第一个提出的方法SegNet以及原始FCN开始),直到最复杂的模型如CRFasRNN以及目前最优的DeepLab(IoU为79.70)。

 

表 3 PASCAL VOC 2012 上的表现结果

 

除了最多见的VOC数据集,咱们还收集了在上下文数据集上各方法的准确率,表4给出告终果统计,DeepLab依然是最高(IoU为45.70)。

 

表 4  PASCAL上下文数据集上的表现结果

 

另外,咱们考虑了PASCAL人物部分,结果见表5。在本数据集上仅有DeepLab进行了实验,结果IoU是64.94。

 

表 5  PASCAL人物部分数据集的表现结果

 

上面考虑了通用目标的数据集如PASCAL VOC,接下来咱们收集了两种最重要的城市驾驶数据集上的结果。表6给出了CamVid数据集上的方法的结果,一种基于RNN的方法即DAG-RNN取得了最优的IoU为91.60。

 

表 6  CamVid数据集上的表现结果

 

表7给出了更具挑战性且目前更经常使用的数据集及CityScape数据集上的结果。其表现出的趋势与PASCAL VOC上的类似,DeepLab以IoU70.40领跑。

 

表 7  CityScape数据集上的结果

 

表8给出了多种循环网络在斯坦福背景数据集上的结果,rCNN取得了最好的结果,其最大IoU为80.20。

 

表 8 斯坦福背景数据集上的结果

 

最后,其它常见数据集如SiftFlow等的结果在表9中展现。这个数据集一样被循环方法所霸占,尤为是DAG-RNN取得了最好的IoU85.30。

 

表 9 SiftFlow上的结果

 

5.2.2  2.5维数据

 

对于2.5为数据这一分类,也就是数据中不只包含RGB三个通道,还包含深度信息,咱们选择了三个数据集进行分析,分别是SUN-RGB-D、NYUDv二、SUN3D。表十、十一、12分别给出了这三个数据集上的结果。

 

表 10 SUN-RGB-D上的结果

 

 

表 11 NYUDv2上的结果

 

 

表 12  SUN3D上的结果

 

5.2.3 三维数据

 

选用了两个三维数据集:ShapeNet Part和Stanford-2D-3D-S。表13和表14分别展现了其结果。

 

表 13  ShapeNet Part数据集上的结果

 

 

表 14 Stanford-2D-3D-S数据集上的结果

 

5.2.4 序列数据

 

最后一个分类即是视频或序列数据数据集。咱们选取了两个适合于序列分割的数据集:CityScapes和YouTube-Objects。表15和表16分别展现告终果。

 

表 15 CityScapes数据集上的结果

 

 

表 16 Youtube-Objects数据集上的结果

 

 

5.3 总结

 

根据这些结果,咱们能够得出许多结论。最重要的结论与可重现性有关。正如咱们所观察到的同样,许多方法报告了非标准数据集上的结果,或者有些方法根本没有进行测试,这使其不可能参与对比。另外,有些方法没有描述其实验的配置,或者没有提供可执行的代码,因而这也使得重现起来很是困难。各个方法都应在标准数据集上评估其结果,尽量全地描述其训练过程,同时公开其模型与参数。

另外一个发现即是,不少方法缺乏对运行时间与占用内存的评价。几乎没有论文报告这两种信息,这些也都面临着没法重现的问题。多数方法关注准确率而忽视了时间与空间效率,这致使了其在分析这些问题上的空缺。可是,但其被应用时,这些问题是很重要的。实际上,多数算法将被应用于植入型设备上,如自动驾驶汽车、无人机、机器人等,这些应用都受限于计算消耗以及内存空间。

考虑到方法各自的结果,咱们认为DeepLab是最可靠的方法,其在几乎每一个RGB图像数据集上都远远超过了其余方法。2.5维和多模态数据集上,循环的网络如LSTM-CF起到了主导做用。三维数据的分割问题仍有很长的路要走,PointNet为解决无序点云的分割问题开辟了道路。最后,处理视频序列一样做为一个待开发区域,至今并无明确的方向,可是,时钟卷积神经网络凭借其效率和准确率仍是成为了最可靠的方法。三维卷积是值得关注的,因为其强大的功能及对多通道输入数据的可扩展性,且三维卷积能够同时捕获时间空间信息。

 

5.4 将来研究方向

 

基于以上回顾过的表明了目前最高水平的方法,咱们给出了一系列的将来研究的可能的方向。

1)三维数据集:充分利用三维数据的一些方法已经开始出现,可是,即便是最新的方案,仍然缺少对于最重要的构成成分之一即数据的考虑。目前急需一个大规模三维语义分割数据集,但这相对于其低维部分来讲是较难建立的。虽然已经有了一些不错的工做,仍然须要更多、更好、更富变化的数据集的出现。值得注意的是,真实世界的三维数据是极其重要的,由于目前几乎全部的工做都是使用的合成数据集。三维数据重要性的一个证实即是,2018年ILSVRC将会建立三维数据。

2)序列数据集:三维数据集上大规模数据集缺少的问题一样影响到了视频序列分割问题。目前仅有少数几个数据集是基于序列的,这些数据集对于利用时间序列信息的方法的发展颇有利。从本质上将二维及三维高质量数据联系起来必将引领新的研究方向。

3)使用图卷积网络(GCN)对点云进行分割:如以前所述,处理三维数据如点云等目前还没有解决,因为点云内在的无序性及非结构性,传统的架构如CNN等不能直接予以应用,除非使用某种离散化手段使其结构化。一个靠谱的研究方向便致力于将点云处理为图,而后在其上应用卷积[109,110,111]。这种作法的好处即是在不量化数据的基础上保留了每一个维度上的空间信息。

4)上下文知识:虽然FCN是语义分割领域中的一种坚实的方法,可是FCN网络缺少对于上下文等特征的建模,而这些信息有可能会提升准确率。将CRF重写为RNN来创造一种端对端的解决方法看起来是一个靠谱的方法,能够提升真实生活场景下的性能。多尺度及特征融合方法也取得了较大的进展。总之,这些方法已经取得了不小的进步,可是仍然有许多问题亟待解决。

5)实时分割:在不少应用场景下,准确率是重要的,可是,可以处理达到常见的摄像机帧率(至少25帧每秒)的输入速度也是很关键的。目前多数的方法远远达不到这个帧率,好比,FCN-8处理一张低分辨率的PASCAL VOC数据集中的图像须要100ms,同时,CRFasRNN须要500ms。所以,接下来几年,咱们期待会有一系列的工做关注于实时处理的限定,这些工做将必须在准确率与运行时间之间寻求一个平衡。

6)存储空间:某些平台受限于其存储空间。分割网络通常须要较大的存储空间,从而能够同时进行推理与训练。为了适应各类设备,网络必需要简单。虽然这能够经过下降复杂性(通常会牺牲准确率)来简单地实现,可是仍是能够采起另外的办法。剪枝是一种靠谱的研究方向,能够用来简化网络,使得网络在保留多数信息的同时变得轻量化,也所以同时保留了原网络的准确率。

7)序列数据的时间一致性:一些方法解决了视频或序列分割的问题,可是他们有些未利用时间序列信息来提升准确率或效率。然而,没有一种方法解决了一致性的问题。对于一个应用在视频流上的分割系统来讲,一致性信息是重要的,不只能够逐帧地处理数据,还能够对整个片断的处理保持一致,而不须要经过平滑为序列预测出的像素级别的标签而产生人工的信息。

8)多视角整合:在最近提出的分割网络上应用多视角信息目前仅仅限于RGB-D摄像机相关的场景,尤为是致力于单一物体分割的状况。

 

6 总结

 

就咱们所知,本文是第一篇对利用深度学习技术的语义分割技术的综述。对比其余综述文章,本文致力于深度学习这一正在崛起的研究领域,涵盖了最早进的相关工做。咱们对语义分割进行了公式化定义,同时为读者提供了必要的深度学习应用于语义分割任务的背景知识信息。咱们涵盖了相关工做中的方法和数据集,提供了对于28个数据集和27个方法的综述。咱们详细介绍了数据集的状况,阐述了这些数据集的目的和特色,这样,研究者即可以轻松地挑选出最适合他们问题的数据集。方法按照两个方面进行综述:其贡献和原始结果即准确率。咱们还以表格的形式提供了数据集和方法的总结,按照多种指标对其进行了分类。最后,咱们讨论了这些结果,提供了对将来工做方向的见解以及该领域一些开放问题的讨论。总之,语义分割问题已经被不少不错的方法所解决,可是仍然存在着开放的问题,这些问题一旦解决将会对真实场景的应用产生较大的帮助。另外,深度学习技术被证实了对于解决语义分割问题的强大性,所以,咱们期待接下来几年各类创新的不断涌现。

相关文章
相关标签/搜索