原文链接:http://blog.csdn.net/u011771047/article/details/72779221
http://blog.csdn.net/u014451076/article/details/71101850
https://www.cnblogs.com/Jie-Liang/archive/2017/06/29/6902375.html
摘要
图像语义分割越来越受到计算机视觉和机器学习的研究人员的热爱。越来越多新兴的应用领域需要精确地和高效的分割机制:自动驾驶,室内导航,甚至虚拟或增强现实系统等。这种需求几乎与计算机视觉等相关领域或应用目标(包括语义分割)的深度学习方法的兴起保持一致。本文对基于深度学习的语义分割在各个领域的应用做了综述。首先,描述了这个领域术语以及特定的背景概念。紧接着,罗列出主要的数据集和挑战,以便帮助研究人员决定哪些是最适合自己的需求和目标。然后,回顾现有的一些方法,突出的贡献以及在该领域的重要意义,最后,给出所述方法的量化结果和所用的数据集,以及对结果的一些论述,最终,我们指出了一系列有希望的future work,并使用深度学习技巧来得出state of the art关于语义分割的结论。
▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▆▅▃▂▁▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▆▅▃▂▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▆▅▃▂▁
1.引言
如今,仍然在二维图像、视频甚至三维或者volumetric data(容积式的数据)上应用甚广的语义分割是计算机视觉领域的至关重要的问题之一。总体上来说,语义分割是一项高水平任务,这将为完成场景理解奠定基础。事实上,场景理解作为核心计算机视觉问题的重要性在于越来越多的应用程序从图像中进行推理。
其中一些应用包括自动驾驶[1] [2] [3],人机交互[4],计算机摄影 [5],图像搜索引擎 [6]和现实增强。过去使用各种传统计算机视觉和机器学习技术已经解决了这样的问题。尽管这样的方法得了普及,但深度学习革命已经扭转了整个形势,包括语义分割的很多计算机视觉问题都利用深层结构[7] [8] [9] [10] [11](通常为CNN)得到了解决,这些结构在精度甚至效率上都远远超过了其他一些方法。然而,深度学习所实现的成熟远不止计算机视觉和机器学习的其他老旧分支所达到的,因此,缺乏统一的作品和艺术评论(review)。不断发生变化现状使得发展难度很大,并且新文学产生量的增加,时刻跟进其演化的速度也是一项令人难以置信的耗时的工作。这使得很难跟踪处理语义分割的结果,并妥善解释他们的提案,修剪次要的方法和验证结果。
尽我们所知,这是第一篇对深度学习在语义分割上的清晰的评论。已经存在的诸多语义分割调查,比如[12][13],都在总结和分类现有的方法,讨论数据集和衡量标准并且对未来研究方向提出了设计选择上做了一项伟大的巨作。但是,他们缺少一些最新的数据集,他们没有分析框架,并且也没有提供深度学习技术的细节。因此,我们的工作是具有新颖有益的且对研究界将会有重大的贡献。
图1.目标识别和场景理解的演化过程,从粗粒度(coarse-grained)到细粒度(fine-grained)推理:分类,检测或者定位,语义分割,实例分割。
我们的工作的主要贡献在以下几点:
• 我们对现有的数据集进行了广泛的调查,这些数据集将会对深度学习技术的分割项目有益。
• 对那些用深度学习进行语义分割的重要方法进行深度的有组织的评论,包括他们的起源和贡献。
• 全面的性能评估,可以收集诸如准确性,执行时间和内存占用等量化指标。
• 对上述提到的结果进行论述,列出了即将到来的进展的未来可能作品,以及总结目前该领域的最高水平。
文章剩余部分按照以下结构进行组织:
首先,section 2介绍了语义分割的问题以及文学中常用的符号和惯例。对一些常见的深度网络的一些背景概念也进行了综述。然后,section 3详细描述了现有的数据集,挑战和基准。section 4 基于他们的贡献,依照自底向上的复杂性秩序进行了回顾。这一部分主要集中在描述这些方法的理论和突出贡献,而不是进行量化评估。最后,section 5对现有的方法在上述数据集上基于他们的量化结果进行了个简单的讨论,另外,也指出了未来的研究方向。section 6 对本文进行了对该领域最高水平的工作进行了总结并得出结论。
▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▆▅▃▂▁▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▆▅▃▂▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▇▆▅▃▂▁▁▂▃▅▆▇▆▅▃▂▁
2 专用术语和背景知识
为了正确的理解语义分割是如何通过近代深度神经结构进行处理的,重要的是知道深度神经网络并不是一个孤立的领域,而是在由粗到细推理过程中一个自然而然的步骤。
最初起源于分类任务,包括对整张输入图片的预测,比如预测一幅图像中包含的物体类别或者甚至提供一个排序列表,如果包含多个物体的话。定位或检测是继续进行fine-grained推理的下一步,不仅提供类别,并且根据这些类别的空间位置提供一些额外的信息,比如中心点或者边框。有了上述的推理,很明显,进行语义分割便是达到fine-grained推理的自然而然的步骤,目标:对每一个像素进行密度预测推理标签,这样的恶化,每一个像素便被标记为它封闭的目标或者区域的类别。可以进一步改进,比如实例分割(对同一类的不同实例物体单独标注)和基于部件的分割(对已经分割的物体进一步分解为他们所包含的部件)
图1 展示了上述提到了演变。本文我们将主要集中关注通常的场景标记,例如,每个像素的分割,但是我们依然会回顾在实例分割和基于部件分割的最重要的方法。
最后,像素标记问题可以简化为下列公式:从标签空间L到随机变量X,找到一种方法进行标记状态。L中每个标签l代表一个不同的类别或者目标,例如飞机,汽车,交通标志,或者背景。这些标签空间包含有k中可能的状态,通常被扩展为k+1种,其中l0作为背景或者空类。通常,X是一个包含WxH=N个像素x的二维图像。当然,这个随机变量序列可以被拓展为任意维度,比如容积数据或者高光谱图像。
除了将问题公式化外,重要的是remark一些背景概念,从而将对读者理解这篇论述文章有所帮助。首先,一些经常用于深度语义分割系统基础的常见的神经网络,方法,设计决策。另外,常用的训练技巧如迁移学习。最后数据预处理和数据增强等方法。
2.1 常见的深度神经网络架构
正如我们之前阐述的那样,一些深度神经网络已经在该领域做出了重要的贡献,并且也成为广为人知的标准。正如ALexNet,VGG-16,GoogleNet ,和ResNet,他们现在被用来作为很多分割系统的建设结构块,这些正是他们的重要性,因此,我们将会用整个部分来回顾他们。
2.1.1 AlexNet
AlexNet是最早的神经卷积神经网络(deep CNN),曾经在ILSVRC-2012比赛中以84.6%的top-5测试准确率取胜,而使用传统技术而不是深层架构的最直接的竞争对手在同样的挑战中的准确率为73.8%。这个Krizhevsky设计的结构是相对简单的,包括5个(卷积层,最大池化层,起非线性作用的ReLus线性修正单元),3个(全连接层,和dropout).图2展现了CNN架构。
2.1.2 VGG
Visual Geometry Group(VGG)是牛津大学VGG实验室推出的CNN模型,他们提出多种深度CNN模型和配置,其中一个提交在ILSVRC-2013上。这个模型,由于是由16个权重层组成的所以被称为VGG-16,以其92.7%的top-5准确率深受人们的欢迎。图3 展示了VGG-16的配置。和之前的主要不同是VGG-16在第一个层次使用了一系列小接受域的卷积层代替拥有较大感受域的较少层(减少感受野的大小,增大卷积层的数量)。这样导致较少的参数数量和更多的非线性,因此,使得决策函数更有区分能力,模型更容易训练。
2.1.3 GoogleNet
GoogleNet是Szegedy设计的一个神经网络,在ILSVRC-2014挑战赛中以93.3%的top-5准确率赢得比赛。这个CNN结构的特征主要是他的复杂性,主要体现在它是由22层和一个新引进的inception(见图4)的建设结构块组成。这种新的方法证实了神经网络网络层是可以以多种方式堆叠的,而不单是一种传统的顺序方式。事实上,这些模型都是由NiN 层,池化操作,大尺度的卷积层,和小尺度的卷积层组成的。全部都是以并行化的方式计算的,并且都是用1x1的卷积操作来减少维度的。由于这些模块,这个网络通过显著减少参数和操作的数量,特别考虑了内存和计算成本。
2.1.4 ResNet
微软发布的ResNet在ILSVRC-2016挑战赛中以96.4%的精确度尤其显著。除了这一事实,这个网络也由于其深度(152层)和引入的残差结构块(residual blocks)而著名,残差结构通过引入一致的跳跃连接从而能够很好的处理在真正深层结构训练时候的问题,这些跳跃的连接能够使这些层将输入直接拷贝到下一个层。
2.1.5 ReNet
为了将循环神经网络结构(RNNs)扩展到多维任务,Graves提出了多维循环神经网络(MDRNN)架构,该网络将标准的RNNs中的每一个单独的循环连接替换成了d连接,其中d是时空数据的维度数。在这个最初的方法的基础上,Visin等人提出了ReNet结构,该网络中,他们利用常见的序列RNNs来替代多维RNNs。这样一来,每一层中RNNs的数量根据输入二维图像的维度数d进行线性扩增。按照这种方法,在图像中横向和纵向的扫描每一个维度,然后将每一个卷积层(卷积+池化)用4个RNNs替换.正如我们在图6中看到的那样。
2.2 迁移学习
从零开始训练一个深度神经网络不是容易的,其中会有各种各样的原因:需要一个数量足够大的数据集,达到收敛需要消耗很长时间。即使上述问题满足的情况下,使用一个预训练过的权重来代替随机初始化,也是对网络训练很有帮助的。通过继续训练过程来微调一个预训练过的网络权重,是一个主要的迁移学习方案。
Yosinski等人证实了,即使从远距离的任务迁移特征也是比随机初始化效果好的,已将考虑到随着预训练任务和目标任务之间的差异性增加,特征的迁移能力就会降低。
但是,使用这一迁移学习技术也不完全是简答的。一方面,结构约束上必须满足使用一个预训练的神经网络。然而,既然不是随意就能想出一个完整的全新架构的,但重用已经存在的网络结构(或者组件)还是很常见的,从而实现迁移学习。另一方面,从零开始训练的过程和微调的也只有一点点的不同。因此选择哪些层需要微调(通常是网络的一些high-level部分,因为低层部分往往包含更多普通的特征)并且选择合适策略来调整学习速率也是很重要的,学习速率通常是很斯奥的,因为预训练权重预计是相对好的,所以没有必要大幅度的改变他们。
由于收集和制作标签数据集固有难度,使得分割的数据库不像分类数据库(ImageNet)规模那么大,当处理的数据是RGB-D或者是三维图像的时候,这个问题会更加严重,数据库将会更小。由于这个原因,实际上从一个预训练过的分类网络上微调进行分割也是常见的趋势,而且已成功的应用在下列我们即将阐述的一些方法上。
2.3 数据预处理和数据增强
数据增强是一个常见的技术,而且已经被证明有利于机器模型和深度结构的学习。不管是在加速收敛或者作为一个正则化项,以此避免过拟合并且增加泛华能力。
通常包括一组在数据或者特征空间进行转换的应用。最常见的数据增强是在数据空间进行实现的。这种类型的增强产生通过对现有的数据进行转换产生新的样本,有很多转换功能可以应用:translation,旋转,扭曲变形 ,缩放,色彩空间转换,裁剪等等。这些转换的目标是产生更多的样本以制造一个更大的数据集、防止过拟合和规范化模型,平衡在该数据集内的类别,甚至综合产生更能代表手头工作的新样本。
数据增强对小数据集特别有用,并且很多成功的案例已经证实了其效率。例如,在[26]中,1500张人像的数据集通过数据增强综合处理4种新尺度,(0.6; 0.8; 1.2; 1.5),4种旋转角度(−45; −22; 22; 45)和4种伽马变量(0.6; 0.8; 1.2; 1.5)来产生一个包含19000张训练图像。这种扩增处理使得人像分割系统的在IoU上的指标从73.09上升到94.20。
3 Datasets
以下两种读者应该阅读本部分内容:一是刚刚开始研究本领域问题的读者,再就是已经很有经验但是想了解最近几年其他研究者研究成果的可取之处的读者。虽然第二种读者一般很明确对于开始语义分割相关的研究来说数据集及竞赛是很重要的两个方面,但是对于初学者来说掌握目前最优的数据集以及(主流的)竞赛是很关键的。因此,本章的目标便是对研究者进行启发,提供一个对数据集的简要总结,这里面可能有正好他们需求的数据集以及数据增强或预处理等方面的技巧。不过,这也可以帮助到已经有深入研究的工作者,他们可能想要回顾基础或者挖掘新的信息。
值得争辩的是,对于机器学习来说数据是最重要的或者最重要的之一。当处理深度网络时,这种重要性更加明显。因此,收集正确的数据放入数据集对于任何基于深度学习的分割系统来说都是极为重要的。收集与创建一个足够大而且能够正确代表系统应用场景的数据集,需要大量的时间,需要领域专门知识来挑选相关信息,也需要相关的基础设施使得系统可以正确的理解与学习(捕捉到的数据)。这个任务的公式化过程虽然相比复杂的神经网络结构的定义要简单,但是其解决过程却是相关工作中最难的之一。因此,最明智的做法通常是使用一个现存的足够可以代表该问题应用场景的标准数据集。使用标准数据集还有一个好处就是可以使系统间的对比更加公平,实际上,许多数据集是为了与其他方法进行对比而不是给研究者测试其算法的,在对比过程中,会根据方法的实际表现得到一个公平的排序,其中不涉及任何数据随机选取的过程。
接下来我们将介绍语义分割领域最近最受欢迎的大规模数据集。所有列出的数据集均包含像素级别或点级别的标签。这个列表将根据数据内在属性分为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 Methods
深度学习技术在各种高层视觉任务上取得了巨大的成功,尤其是监督方法如卷积神经网络CNN用于图像分类或物体检测 [14,15,16],这激励着研究者们探索这些方法的像素级别标注能力,如语义分割能力。这些深度学习技术区别于传统方法的关键优势在于其强大的针对当前问题学习合适的特征表示的能力,例如,对于一个特定数据集的像素级标注问题,其使用一种端对端的方法而不是手工设计的特征,而手工设计特征需要领域专门知识、耗时耗力而且有时太过精细化以致于只能在某个特定的场景下使用。
图 7 [65]中的全卷积神经网络示意图。将全连接层替换为卷积层,便可将用于分类的CNN网络转化为生成空间热区的网络。加入反卷积层来实现上采样,使得网络可以进行密集推理并学到每个像素点的标签。
最近,最成功用于语义分割的深度学习技术均来自同一个工作,即全卷积网络FCN [65],该方法的出色之处在于,其利用了现存的CNN网络作为其模块之一来产生层次化的特征。作者将现存的知名的分类模型包括AlexNet、VGG-16、GoogLeNet和ResNet等转化为全卷积模型:将其全连接层均替换为卷积层,输出空间映射而不是分类分数。这些映射由小步幅卷积上采样(又称反卷积)得到,来产生密集的像素级别的标签。该工作被视为里程碑式的进步,因为它阐释了CNN如何可以在语义分割问题上被端对端的训练,而且高效的学习了如何基于任意大小的输入来为语义分割问题产生像素级别的标签预测。本方法在标准数据集如PASCAL VOC分割准确率上相对于传统方法取得了极大的进步,且同样高效。由于上述及更多显著的贡献,FCN成为了深度学习技术应用于语义分割问题的基石,其处理过程如图7所示。
尽管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 Discussion
这部分主要是对以上方法的分析.
评估标准 首先,在语义分割系统中最受欢迎的系统评估标准:exection time, memory footprint, accuracy.
结果 接下来,给出了大量数据集上使用上述评估标准的代表性结果.(这部分的结果感觉十分有用,如果需要对自己的方法和其他方法进行比较,可以直接使用这些数据.需要的自己去论文看吧.)
结果分析 接下里,总结了这些结果的结论.分析结果发现,有些实验无法repeat,原因是有些方法并没有标准数据集上进行测试,还有的没有给出实验配置和源代码.另外,很多方法没有给出执行时间信息和内存占用信息,他们更多关注IoU,但是其他的信息对于一些特定场景的应用是十分重要的.最后,DeepLab在RBG图像数据集上都表现的十分出色.
未来方向 最后,指出了作者认为重要的未来的语义分割的发展方向:
(1)3D datasets: 数据可以推动技术的发展,现在还缺乏语义分割的3D的数据集,2018年ILSVRC将会加入3D数据.
(2)Sequence datasets
(3)Point cloud segmentation使用图像卷积网络.也就是处理3D数据的方法的研究.
(4)Context Knowledge. 关于上下文信息的利用,作者认为还有很大空间.
(5)Real-time segmentation. 实时分割的应用前景就不说了,在实际中至少要求25fps,但是目前FCN-8s只有10fps,crfasrnn只有2fps.
(6) Memory.相应意味着模型变小.
(7)Temporal coherency on sequences.
(8)Multi-view integration. 多视角(视图)集成.