神刀安全网

用语义分割突破边界框

摘要: 语义分割是一项计算机视觉任务,视觉输入的不同部分可以分成不同的语义解释类。那么,语义分割在边界框标记上有什么优势呢?

我们应该如何描述一个场景?我们可以说窗户下面有一张桌子,或者沙发右边有一盏灯。理解图像的关键就是:将场景分解成一个个单独的实体,这也有助于我们理解对象的行为。

对象检测有助于绘制某些实体周围的边界框。但人类想要对场景有真正的理解,还需要能够以像素级精度对每个实体的边界进行检测和标记。随着我们开始构建无人驾驶汽车和智能机器人,而这些就需要细致了解周围环境,因此,绘制边界框也变得越来越重要。

什么是语义分割?

语义分割是一项计算机视觉任务,我们将视觉输入的不同部分分成不同的语义解释类。“语义解释”,也就是说,这些类具有某些真实世界的含义。例如,我们可能想要获取属于汽车类别的图像的所有像素,并将其着色为蓝色。

用语义分割突破边界框

虽然聚类等无监督算法可用于分割,但并不适用于语义分割。这些方法不会对他们接受过训练的类别上进行分割,而是更广义上找到区域的边界,参见Thoma et al.2016。

相对于图像分类和对象检测,语义分割更有助于我们更详细地了解图像。这种详细的理解在很多领域都非常重要,包括无人驾驶、机器人和图像搜索引擎等。 本文将使用深度学习进行监督语义分割。

数据集和度量标准

常用于训练语义分割模型的数据集包括:

1.Pascal VOC 2012数据集:包含20个对象类别,包括Person,Vehicle和其他类别。目标是分割对象类或背景。

2.Cityscapes数据集:包含50个城市的语义城市场景的理解。

3.Pascal Context数据集:包含400多个类别的室内和室外场景。

4.Stanford Background数据集:包含至少有一个前景对象的室外场景集。

用语义分割突破边界框

评估语义分割算法性能的一个度量标准是平均交并比IOU(Intersection Over Union),其中,IOU定义如下:

用语义分割突破边界框

这个度量标准确保了我们能够捕捉到每个对象(使预测标签与真是对象重叠),并且,也能够做到精确(使之尽可能的接近重叠)。

管道(Pipeline)

用于语义分割模型的管道通常如下:

用语义分割突破边界框

下面,我们将进一步讨论管道的分类器(Classifier )和后处理(Post-Processing )阶段。

模型架构和方法

用卷积神经网络进行分类

现在,语义分割架构通常使用卷积神经网络(CNN)为每个像素分配一个初始类别标签。卷积层可以有效地捕捉图像中的局部特征,并以分层的方式嵌套许多这样的层,试图提取更广泛的结构特征。通过使用能够捕捉图像中越来越复杂特征的连续卷积层,CNN可以将图像编码为其内容的紧凑表示。

为了将各个像素映射为类别标签,我们需要将标准CNN编码器扩展为编码-解码器。在这里,编码器使用卷积层和池化层将图像的宽度和高度缩小为较低维表示(representation);解码器收到该表示,通过上采样(通过转置卷积)“恢复”空间维度,从而在每步解码中扩展表示的大小。在某些情况下,编码器的中间步骤有助于帮助解码。最终,解码器会生成一个表示原始图像标签的数组。

用语义分割突破边界框

在许多语义分割架构中,CNN希望最小化的损失函数是交叉熵损失。该目标函数测量每个像素的预测概率分布(在类别上)与实际概率分布之间的距离。

然而,语义分割的交叉熵损失并不理想。由于图像的最终损失仅仅是每个像素的损失之和,所以交叉熵损失并不会使附近的像素保持一致。因为交叉熵损失不能在像素之间施加更高级别的架构,所以使交叉熵损失最小化的标签通常不完整或模糊,并且后续也需要进行处理。

用条件随机场优化

CNN产生的原始标签通常是“斑点”图像,其中有些小区域可能有与其周围像素标签不匹配的错误标签。为了解决这一不连续性,可以采用一种平滑方法。我们希望这样能够确保对象占据图像中的连通区域,并且给定的像素可能与其大多数邻居具有相同的标签。

为了解决这一问题,一些模型架构使用条件随机场(CRF),它使用原始图像中的像素相似性对CNN的标签进行细化。

用语义分割突破边界框

条件随机场是一个随机变量的图形。在这种情况下,每个顶点代表

1.某个像素的CNN标签(绿色顶点Xi)

2.某个像素的实际对象标签(黄色顶点Yi)

边缘编码两种类型的信息:

1.蓝色框:两个像素的实际对象标签之间的依赖性物理上彼此接近。

2.红色框:CNN的原始预测与给定像素的实际对象标签之间的依赖性。

每个依赖性都与一个势函数相关联,势函数是一个有两个相关随机变量值的函数。例如,当相邻像素的实际对象标签相同时,第一种依赖性可能就有较高的可能性。直观上来说,对象标签用作隐藏变量,能够根据某种概率分布产生可观察的CNN像素标签。

为了使用CRF来改进标签,首先使用交叉验证对带有训练数据的图形模型的参数进行学习。然后,我们修改参数将概率P(Y1,Y2,… Yn | X1,X2,… Xn最大化。CRF推断的输出是原始图像像素的最终对象标签。

实际上,CRF图形是完全连接的,这就意味着,物理上距离较远像素的节点之间仍然可以共享边缘。这样的图形具有数十亿个边缘,使得精确的推断在计算上难对其进行处理。CRF架构倾向于使用高效的近似技术进行推理。

分类器的架构

CNN分类和CRF细化仅仅是语义分割过程的一个例子。一些研究论文已经对这方面进行了论述:

1.U-Net(2015)通过生成原始训练数据的失真版本,对其训练数据进行增强。这使CNN编码-解码器能够抵抗这种变形,并从更少的训练图像中进行学习。在少于40张的生物医学数据集图像上进行训练时,其IOU值仍高至92%。

2.DeepLab(2016)将CNN编码-解码器与CRF细化相结合,来生成对象标签(作者重点介绍了解码中的上采样)。空洞卷积(Dilated Convolutions)在每个层使用不同大小的滤波器,使得每个层都可以捕捉各种不同比例的特征。在Pascal VOC 2012测试装置上,此架构的平均IOU为70.3%。

3.Dilation10(2016)是空洞卷积的替代方法。完整的管道将空洞卷积“前端模块”连接到上下文模块和CRF-RNN,以便做进一步处理。Dilation10在Pascal VOC 2012测试装置上的平均IOU为75.3%。

其他的训练体系

本小节介绍现在主要的的偏离分类器和CRF模型的训练方案。这些方法并不是由单独的组件和优化组成,而是一些端到端的方法。

完全可微的条件随机场

Zheng等人的CRF-RNN模型介绍了一种方法:将分类和后处理合并为单一端到端模型,可以共同优化两个图形。因此,模型可自动学习类似于CRF高斯内核权重的参数——将推理逼近算法中的步骤用卷积表示来实现,并且通过使用递归神经网络(RNN)来对推理算法的完全迭代进行建模。

用语义分割突破边界框

对抗训练

对抗训练有助于提高高阶一致性。受生成对抗网络(GAN)的启发,Luc等人训练了一个标准CNN(用于语义分割)和对抗网络(尝试学习区分标记过的真实数据分割和分割网络的预测)。分割网络旨在产生分割,而这种分割是对抗网络无法从真实分割中区分开来的。

在这里,我们希望分割看起来能够尽可能贴近真实。如果其他网络很容易将预测与实际情况分开,那么我们的预测就不够好。

用语义分割突破边界框

时间上的分割

我们如何对未来的对象进行预测?为了实现这一点,可以通过对场景中的连续分割进行建模。这比较适用于机器人或无人驾驶场景,其中对物体的运动进行建模对计划有用。

Luc等人的文章表明,直接预测未来语义分割,比先预测未来帧再进行分割的性能要好。他们使用自回归模型,使用过去的分割来预测下一个分割St + 1。然后使用Si和St + 1预测下一个分割St + 2。

用语义分割突破边界框

他们对模型在不同时间尺度上的表现进行了对比:在Cityscapes数据集上,预测模型在下一帧、未来0.5秒和未来10秒上的性能。结果显示,模型在10s的时间尺度上表现不佳,但在下一帧和未来0.5s的时间尺度上表现较好。总体来说,该方法在性能上要比由基于光流的经典技术组成的基线方法好的多。

总结

这些方法(如U-Net)基本上都遵循一个基本结构:采用深度学习(卷积网络)进行预处理,再用经典概率技术对其输出做后处理。尽管卷积网络的原始输出可能不完美,但后处理能够更好的使用与人类直觉相匹配的分割,输出“好的”标签。

其余的方法(如对抗学习),可以作为语义分割的端到端解决方案。与前面介绍的CRF步骤不同,端到端技术不需要手动对各个组件进行建模,来完善原始预测。由于端到端解决方案的性能更加优于多级管道方法,未来的研究可能会越来越多地关注端到端算法。

以上为译文。

本文由阿里云云栖社区组织翻译。

文章原标题《Going beyond the bounding box with semantic segmentation》,译者:Mags,审校:袁虎。

阅读原文

本文为云栖社区原创内容,未经允许不得转载。

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 用语义分割突破边界框

分享到:更多 ()