Superpixel Sampling Networks论文翻译

Superpixel Sampling Networks 超像素采样网络

摘要 超像素提供图像数据的有效低/中级表示,这极大地减少了后续视觉任务的图像基元的数量。 现有的超像素算法并不是不可靠的,因此很难将它们集成到其他端到端可训练的深度神经网络中。 我们开发了一种新的超像素采样差分模型,利用深度网络学习超像素分割。 由此产生的超像素采样网络(SSN)是端到端可训练的,它允许学习任务特定的超像素具有灵活的损失功能并具有快速运行时间。 广泛的实验分析表明,SSN不仅在传统的分割基准测试中胜过现有的超像素算法,而且还可以学习其他任务的超像素。 此外,SSN可以轻松集成到下游深度网络中,从而提高性能。

1介绍

超像素是通过基于低级图像属性对图像像素[33]进行分组而形成的图像的过分割。 它们提供图像内容的感知上有意义的细分,从而减少用于后续图像处理的图像基元的数量。 由于它们具有代表性和计算效率,超像素已经成为一种既定的低/中等级图像表示,并广泛应用于计算机视觉算法,如物体检测[35,42],语义分割[15,34,13],显着性 估计[18,30,43,46],光学估计[20,28,37,41],深度估计[6],跟踪[44]等等。 超像素尤其广泛用于传统能量最小化框架中,其中少量图像基元极大地降低了优化复杂性。
近年来,对于广泛的计算机视觉问题采用深度学习的情况急剧增加。 除了一些方法(例如,[13,18,34]),超像素几乎不与现代深度网络结合使用。 这有两个主要原因。 首先,形成大多数深层结构基础的标准卷积运算通常定义在规则网格上,并且当在不规则超像素网格上操作时变得无效。 其次,现有的超像素算法是不可分解的,因此在深度网络中使用超像素在其他端到端可训练网络架构中引入了非可分解模块。
在这项工作中,我们通过提出一种新的用于超像素分割的深度可微算法来缓解第二个问题。我们首先回顾广泛使用的简单线性迭代聚类(SLIC)超像素算法[1],并通过放宽SLIC中存在的最近邻约束将其转化为可扩展算法。这种新的可分辨算法允许端到端训练,并使我们能够利用强大的深度网络来学习超像素,而不是使用传统的手工制作的功能。这种深度网络与可靠的SLIC的组合构成了我们称为超像素采样网络(SSN)的端到端可训练超像素算法。图1显示了所提出的SSN的概述。给定的输入图像首先通过深度网络,在每个像素处产生特征。然后将这些深度特征传递到可差分SLIC上,该SLIC执行迭代聚类,产生所需的超像素。整个网络是端到端的可训练的。 SSN的可怜性质允许使用灵活的损失函数来学习任务特定的超像素。图1显示了一些样本SSN生成的超像素。
3个不同的分割基准数据集(包括BSDS500 [4],Cityscapes [10]和PascalVOC [11])的实验结果表明,所提出的超像素采样网络(SSN)对现有的显着超像素算法表现出色,同时也更快。 我们还通过简单地将我们的SSN框架集成到使用超像素的现有语义分割网络[13]中来证明,实现了性能改进。 此外,我们证明了SSN在学习其他视觉任务的超像素方面的灵活性。 具体而言,在Sintel光学数据集[7]的概念验证实验中,我们演示了如何学习更好地与光学边界而不是标准物体边界对齐的超像素。 与现有的超像素算法相比,所提出的SSN具有以下有利特性:
端到端可训练:SSN是端到端可训练的,可以轻松集成到其他深层网络架构中。 据我们所知,这是第一个端到端可训练的超像素算法。
{灵活和任务特定:SSN允许学习具有灵活的损失函数,从而学习任务特定的超像素。
{最先进的性能:对各种基准数据集的实验表明,SSN优于现有的超像素算法。
{有利的运行时间:SSN在运行时方面也对着名的超像素算法表现出色,使其能够在大型数据集上学习,并且对实际应用也有效。

2相关工作

超像素算法。 传统的超像素算法可以广泛地分为基于图形和基于聚类的方法。 基于图形的方法将超像素分割表示为图形分割问题,其中图形节点由像素表示,并且边缘表示相邻像素之间的连接强度。 通常,通过解决离散优化问题来执行图分区。 此类中一些广泛使用的算法包括标准化削减[33],Felzenszwalb和Huttenlocher(FH)[12],和熵率超像素(ERS)[26]。 由于离散优化涉及离散变量,优化目标通常是不可分的,因此难以在基于图的方法中利用深层网络。
另一方面,基于聚类的方法利用传统的聚类技术,例如用于超像素分割的k均值。此类中广泛使用的算法包括SLIC [1],LSC [25]和Manifold-SLIC [27]。这些方法主要进行k均值聚类,但其特征表示不同。虽然SLIC [1]将每个像素表示为5维位置和Lab颜色特征(XY Lab特征),但LSC [25]方法将这些5维特征投影到10维空间并在投影空间中执行聚类。另一方面,Manifold-SLIC [27]使用二维流形特征空间进行超像素聚类。虽然这些聚类算法需要迭代更新,但在SNIC方法[2]中提出了用于超像素分割的非迭代聚类方案。提出的方法也是一种基于聚类的方法。但是,与现有技术不同,我们利用深度网络通过端到端的培训框架来学习超像素聚类的功能。
正如最近的一篇调查论文[36]所详述的,其他技术被用于超像素分割,包括分水岭变换[29],几何[24],图形切割[39],平均移位[9]和爬山[5]。 然而,这些方法都依赖于手工制作的功能,将深度网络融入这些技术并非易事。 最新的SEAL技术[38]提出了一种通过非可微超像素算法绕过梯度来学习超像素分割的深度特征的方法。 与我们的SSN框架不同,SEAL不是端到端的可分辨性。
深度聚类。受到监督任务深度学习成功的启发,有几种方法研究了深度网络在无监督数据聚类中的应用。最近,Gre等人。人。 [17]提出神经期望最大化框架,他们使用深度网络模拟聚类标签的后验分布,并展开EM程序中的迭代步骤,以进行端到端训练。在另一项工作[16]中,梯形网络[31]用于建模用于聚类的分层潜变量模型。好时等人。 [19]提出了一种基于深度学习的聚类框架,用于分离和分割音频信号。谢等人人。 [40]提出了一个深度嵌入式集群框架,用于同时学习特征表示和集群分配。在最近的一份调查报告中,Aljalbout等。人。 [3]给出了基于深度学习的聚类方法的分类。在本文中,我们还提出了一种基于深度学习的聚类算法。与以前的工作不同,我们的算法是针对超像素分割任务而定制的,我们使用图像特定约束。此外,我们的框架可以轻松地结合其他视觉目标函数来学习任务特定的超像素表示。

3预备知识

SSN的核心是一种可靠的聚类技术,其灵感来自SLIC [1]超像素算法。 在这里,我们在下一节描述我们的SSN技术之前先看看SLIC。 SLIC是最简单的,也是最广泛使用的超像素算法之一。 它易于实现,具有快速运行时间,并且还可以生成紧凑且均匀的超像素。
尽管SLIC算法有几种不同的变体[25,27],但在原始形式中,SLIC是在五维位置和颜色空间(通常是缩放的XY Lab空间)中对图像像素执行的k均值聚类。 形式上,给定具有n个像素的5维XY Lab特征的图像,超像素计算的任务是将每个像素分配给m个超像素中的一个,即,计算像素 - 超像素关联图。 SLIC算法如下操作。 首先,我们在5维空间中对初始聚类(超像素)中心进行采样。 该采样通常在像素网格上均匀地进行,并且基于图像梯度具有一些局部扰动。 给定这些初始超像素中心S0,SLIC算法以迭代方式进行,在每次迭代t中具有以下两个步骤:
像素 - 超像素关联:将每个像素与五维空间中最近的超像素中心相关联,即,计算每个像素p处的新的超像素分配,
超像素中心更新:每个超像素簇内的平均像素特征(XY Lab)以获得新的超像素聚类中心St.对于每个超像素i,我们计算该聚类的质心,
这两个步骤构成了SLIC算法的核心,并重复进行,直到收敛或进行多次迭代。 由于计算公式中的距离D. 在所有像素和超像素之间的1是耗时的,该计算通常被约束到每个超像素中心周围的固定邻域。 最后,根据应用程序,有一个可选步骤,在每个超像素集群中的像素之间强制实现空间连接。 关于SLIC算法的更多细节可以在Achanta等人的文章中找到。人。[1]。 在下一节中,我们将阐明如何修改SLIC算法以开发SSN。

4超像素采样网络

如图1所示,SSN由两部分组成:一个生成像素特征的深层网络,然后传递给不可分割的SLIC。 在这里,我们首先描述可区分的SLIC,然后是SSN架构。

4.1 可微超像素

为什么SLIC不可微? 仔细观察SLIC中的所有计算表明,由于像素超像素关联的计算而产生不可微分性,其涉及不可微分的最近邻居操作。 这个最近邻居计算也构成了SLIC超像素聚类的核心,因此我们无法避免这种操作。
我们的方法的关键是将最近邻居操作转换为可区分操作。 而不是计算硬像素 - 超像素关联(在等式1中),我们建议计算像素和超像素之间的软关联Q 。 具体而言,对于迭代t处的像素p和超像素i,我们用以下像素 - 超像素关联替换SLIC中的最近邻计算(等式1)。
现在,每个SLIC迭代中的计算都是完全可微的,我们将这种修改算法称为可差的SLIC。 根据经验,我们观察到用可微分SLIC中的软像素替换SLIC中的硬像素 - 超像素关联不会导致任何性能下降。 由于这种新的超像素算法是可微分的,因此可以轻松地集成到任何深度网络架构中。 我们可以利用深度特征提取器并端到端地训练整个网络,而不是使用手动设计的像素特征Ip。 换句话说,我们将上述计算中的图像特征Ip(等式3和4)替换为使用深度网络计算的k维像素特征。 我们将深度网络与可微分SLIC的耦合称为超像素采样网络(SSN)。
算法1概述了SSN中的所有计算步骤。该算法从使用CNN的深度图像特征提取开始(第1行)。我们使用初始常规超像素网格中的平均像素特征初始化超像素聚类中心(第2行)(图2)。然后,对于v次迭代,我们使用上述计算(第3-6行)迭代地更新像素 - 超像素关联和超像素中心。虽然可以直接使用软像素 - 超像素关联Q来执行多个下游任务,但是根据应用需求,可以选择将软关联转换为硬关联(第7行)。此外,与原始SLIC算法一样,我们可以选择强制跨每个超像素集群内的像素进行空间连接。这是通过将小于某个阈值的超像素与周围的超像素合并,然后为每个空间连接的组件分配唯一的簇ID来实现的。请注意,这两个可选步骤(第7,8行)不具有可比性。
像素和超像素表示之间的映射。对于使用超像素的一些下游应用,像素表示被映射到超像素表示,反之亦然。利用提供硬聚类的传统超像素算法,这种从像素到超像素表示的映射是通过在每个聚类内部进行平均来完成的(方程2)。从超像素到像素表示的逆映射是通过将相同的超像素特征分配给属于该超像素的所有像素来完成的。我们可以使用与SSN超像素相同的像素 - 超像素映射,使用从SSN获得的硬簇(算法1中的第7行)。然而,由于这种硬关联的计算是不可区分的,因此在集成到端到端可训练系统时可能不希望使用硬簇。值得注意的是,由SSN生成的软像素 - 超像素关联也可以容易地用于像素和超像素表示之间的映射。式。图4已经描述了从像素到超像素表示的映射,其是与列标准化Q矩阵的转置的简单矩阵乘法:S = ^ Q> F,其中F和S分别表示像素和超像素表示。从超像素到像素表示的逆映射是通过将表示为~Q的行标准化Q与超像素表示F = ~QS相乘来完成的。因此,像素 - 超像素特征映射被给出为具有关联矩阵的简单矩阵乘法并且是可区分的。之后,我们将利用这些映射来设计损失函数来训练SSN。

4.2网络架构

图3显示了SSN网络架构。用于特征提取的CNN由一系列与批量归一化[21](BN)和ReLU激活交织的卷积层组成。我们使用max-pooling,在第2和第4个卷积层之后将输入下采样2倍,以增加接收域。我们对第4和第6卷积层输出进行双线性上采样,然后与第2卷积层输出连接以传递到最终卷积层。我们使用3 * 3卷积滤波器,每层输出通道数设置为64,除了输出k-5通道的最后一个CNN层。我们将这个k-5通道输出与给定图像的XY Lab连接,产生k维像素特征。我们选择这种CNN架构的简单性和高效性。可以想到其他网络架构。得到的k维特征被传递到可微分SLIC的两个模块上,迭代地更新像素 - 超像素关联和超像素中心以进行v次迭代。整个网络是端到端的可训练的。

4.3学习任务 - 特定超像素

端到端可训练SSN的主要优点之一是在损失函数方面的灵活性,我们可以使用它来学习任务特定的超像素。 与任何CNN一样,我们可以将SSN与任何特定于任务的特定损失功能相结合,从而学习针对下游计算机视觉任务进行优化的超像素。 在这项工作中,我们专注于优化超像素的表征效率,即学习能够有效地表示场景特征的超像素,如语义标签,光学,深度等。例如,如果我们想要学习超像素, 将要用于下游语义分割任务,期望产生遵循语义边界的超像素。 为了优化代表性效率,我们发现任务特定重建损失和紧凑性损失的组合表现良好。
任务特定重建损失。我们用超级像素表示我们想要有效表示的像素属性为R.例如,R可以是语义标签(作为一热编码)或光学地图。值得注意的是,我们在测试时间内无法访问R,即SSN仅使用图像数据预测超像素。我们仅在训练期间使用R,以便SSN可以学习预测适合表示R的超像素。如前所述在4.1节中,我们可以使用列标准化关联矩阵Q,将像素属性映射到超像素,其中l。然后将得到的超像素表示R映射回像素表示R 1。使用行标准化关联矩阵~Q,R? =〜QS,哪里R? 2 Rn?l。然后重建损失给出为
其中L(:; :)表示任务特定的损失函数。 在这项工作中,对于分割任务,我们使用L的交叉熵损失,并使用L1范数来学习光学上的超像素。 这里Q表示在可微分SLIC的最终迭代之后的关联矩阵Qv。 为方便起见,我们省略了v。
紧凑性损失。 除了上述损失之外,我们还使用紧凑性损失来鼓励超像素在空间上紧凑,即在每个超像素簇内具有较低的空间变化。 设IXY表示位置像素特征。 我们首先将这些位置特征映射到我们的超像素表示中,Sxy = Q * Ixy。 然后,通过将相同的超像素位置特征分配给属于该超像素的所有像素,Ixy = Sxy | Hp = i,使用硬关联H而不是软关联Q对像素表示进行逆映射。 紧凑性损失定义为以下L2规范:
这种损失促使超像素具有较低的空间方差。 SSN的灵活性允许使用许多其他损失函数,这使得未来有趣的研究。 我们在这项工作中使用的整体损失是这两个损失函数的组合,L = Lrecon + ALcompact,其中我们在所有实验中将A设置为10 ^ -5。

4.4实施和实验协议

我们在Caffe神经网络框架中使用CUDA将可微分SLIC实现为神经网络层[22]。 所有实验都是使用Caffe和Python界面进行的。 我们使用缩放的XY Lab特征作为SSN的输入,位置和颜色特征尺度分别表示为pos和color。 颜色的值与超像素的数量无关,并且设置为0.26,颜色值在0到255之间.post的值取决于超像素的数量,Ypos = n * max(mw / nw; mh / nh) ,其中mw; nw和mh; nh分别表示沿图像宽度和高度的超像素和像素的数量。 在实践中,我们观察到n = 2.5表现良好。
对于培训,我们使用大小为201 * 201和100个超像素的图像块。在数据增加方面,我们使用左右翻转,对于小型BSDS500数据集[4],我们使用图像块的随机缩放的附加数据增强。对于所有实验,我们使用亚当随机优化[23],批量大小为8,学习率为0:0001。除非另有说明,否则我们训练模型进行500K迭代,并根据验证精度选择最终训练模型。对于消融研究,我们训练具有不同参数的模型进行200K迭代。重要的是要注意,我们使用单个训练的SSN模型通过缩放输入位置特征来估计不同数量的超像素,如上所述。我们使用5次迭代(v = 5)的可微分SLIC进行训练,并在测试时使用10次迭代,因为我们观察到只有边际性能增益和更多迭代。有关代码和经过培训的模型,请参阅https://varunjampani.github.io/ssn/。

实验

我们在4个不同的基准数据集上进行实验。 我们首先演示了学习的超像素在突出的超像素基准BSDS500上的实验[4](第5.1节)。 然后,我们演示了在Cityscapes [10]和PascalVOC [11]数据集上使用任务特定超像素进行语义分割(第5.2节),以及在MPI-Sintel [7]数据集上使用光学(第5.3节)。 此外,我们演示了在使用超像素的下游语义分割网络中使用SSN超像素(第5.2节)。

5.1学习的超像素

我们在BSDS500基准数据集上进行消融研究并与其他超像素技术进行评估[4]。 BSDS500包括200个列车,100个验证和200个测试图像。 每个图像都使用来自多个注释器的地面实况(GT)段进行注释。 我们将每个注释视为一个单独的样本,产生1633个训练/验证对和1063个测试对。
为了学习遵循GT段的超像素,我们在重建损失中使用GT段标签(公式5)。 具体而言,我们将每个图像中的GT段表示为单热编码矢量,并将其用作重建损失中的像素属性R. 我们在方程式中使用L的交叉熵损失。 5.注意,与GT标签具有含义的语义分割任务不同,该数据集中的GT段不具有任何语义含义。 这对我们的学习设置没有任何问题,因为SSN和重建丢失都与像素属性R的含义无关。重建损失使用给定输入信号R及其重建版本R *生成损耗值,并且不考虑 是否在图像中保留了R的含义。
评估指标。超像素在各种视觉任务中都很有用,并且存在用于评估超像素的若干度量。在这项工作中,我们将可实现的分段准确度(ASA)视为我们的主要指标,同时还报告边界指标,如边界召回(BR)和边界精度(BP)指标。 ASA分数表示在超像素上执行的任何分割步骤可实现的精度的上限。另一方面,边界精度和召回率测量超像素边界与GT边界的对齐程度。我们在补充材料中更详细地解释了这些指标。这些得分越高,分割结果越好。我们通过改变生成的超像素的平均数量来报告平均ASA和边界度量。对边界精度和召回的公平评估期望超像素在空间上连接。因此,为了进行无偏差的比较,我们遵循计算硬集群的可选后处理并在SSN超像素上实施空间连接(算法1中的第7行{8)。消融研究。我们参考图3所示的主模型,在深网络中有7个卷积层,如SSNdeep。作为基线模型,我们评估使用像素XY Lab功能作为输入的可差SLIC生成的超像素。这类似于标准SLIC算法,我们将其称为SSNpix并且没有可训练的参数。作为另一个基线模型,我们用单个卷积层替换了深层网络,该层学习了线性变换输入XY Lab特征,我们将其称为SSNlinear。
图4显示了具有不同特征维度k的这些不同模型的平均ASA和BR分数以及可分辨SLIC中的迭代次数v。 SSNlinear的ASA和BR已经可靠地高于基线SSNpix,显示了我们的损耗函数的重要性,并通过超像素算法反向传播损耗信号。 SSNdeep进一步提高了ASA和BR得分。 我们观察到具有更高特征维度k的更好的分数以及更多的迭代v。出于计算原因,我们选择k = 20和v = 10并且从这里开始将该模型称为SSNdeep。
与现有技术比较。 图5显示了SSN与最先进的超像素算法的ASA和精度回读比较。 我们与以下突出的算法进行比较:SLIC [1],SNIC [2],SEEDS [5],LSC [25],ERS [26],ETPS [45]和SCALP [14]。 图表示SSNpix的性能与SLIC超像素类似,表明SLIC的性能在放松最近邻居约束时不会下降。 与其他技术的比较表明,SSN在ASA评分和精确召回方面表现更好。 图2显示了比较SSNpix和SSNdeep的视觉结果,图7显示了将SSNdeep与现有技术进行比较的视觉结果。 请注意,SSNdeep超像素平滑地跟随对象边界,并且也更集中在对象边界附近。

5.2用于语义分割的超像素

在本节中,我们将介绍Cityscapes [10]和PascalVOC [11]的语义分段基准测试结果。 实验设置与前一部分的实验设置非常相似,唯一的区别是使用语义标签作为重建损失中的像素属性R. 因此,我们鼓励SSN学习遵循语义段的超像素。
都市风景。 Cityscapes是一个大规模的城市场景理解基准,具有像素精确的语义注释。 我们使用2975列车图像训练SSN并评估500个验证图像。 为了便于实验,我们尝试使用半分辨率(512 * 1024)图像。 图6中的图表示SSNdeep在ASA方面与SEAL [38]超像素相当,而在精确回忆方面更好。 我们在图7中显示了一个视觉结果,在补充中有更多。
运行时分析。我们报告了不同技术的近似运行时间,用于在表1中的512 * 1024城市景观图像上计算1000个超像素。我们使用NVIDIA Tesla V100 GPU计算GPU运行时间。 SSNpix和SSNdeep之间的运行时比较表明SSN计算时间的重要部分是由可微分SLIC引起的。运行时表明SSN比几个超像素算法的实现快得多。 PascalVOC。 PascalVOC2012 [11]是另一种广泛使用的语义分割基准,我们用1464个训练图像训练SSN并验证1449个验证图像。图8(a)显示了不同技术的ASA分数。我们不分析该数据集上的边界分数,因为GT语义边界用忽略标签扩展。 ASA分数表明SSNdeep优于其他技术。我们还对该数据集上的BSDS训练模型进行了评估,并且仅观察到精度的微小下降(图8(a)中的“SSNdeep-BSDS”)。这显示了SSN对不同数据集的推广和鲁棒性。示例视觉结果如图7所示,补充中有更多。
我们进行了另外的实验,我们将SSN插入[13]的下游语义分段网络中,[13]中的网络具有双边初始层,利用超像素进行跨中间CNN表示的长距离数据自适应信息传播。 表2显示了对测试数据评估的该联合模型的联合交叉(IoU)分数。 与[13]中使用的原始SLIC超像素相比,IoU的改进表明,SSN还可以为使用超像素的下游任务网络带来性能改进。

用于光流的超像素

为了证明SSN对回归任务的适用性,我们进行了概念验证实验,我们学习了符合光流边界的超像素。 为此,我们在MPI-Sintel数据集[7]上进行实验,并使用SSN来预测给定一对输入帧的超像素。 我们使用GT光流作为重建损耗中的像素属性R(公式5)并使用L1损失L,鼓励SSN生成可以有效表示流的超像素。

总结

我们提出了一种新颖的超像素采样网络(SSN),它利用通过端到端训练学到的深层特征来估计任务特定的超像素。 据我们所知,这是端到端可训练的第一个深度超像素预测技术。 实验的几个基准测试表明,SSN始终如一地对最先进的超像素技术表现出色,同时也更快。 将SSN集成到语义分段网络[13]中还可以提高性能,显示SSN在下游计算机视觉任务中的实用性。 SSN快速,易于实施,可以轻松集成到其他深层网络中,具有良好的实证性能。
SSN解决了将超像素纳入深度网络的主要障碍之一,这是现有超像素算法的不可分割性质。 在深度网络中使用超像素可以具有几个优点。 超像素可以降低计算复杂度,尤其是在处理高分辨率图像时。 超像素也可用于强制分段不变的假设,也有助于远程信息传播[13]。 我们相信这项工作开辟了利用深层网络中的超像素的新途径,并激发了使用超像素的新深度学习技术。致谢。 我们感谢Wei-Chih Tu提供评估脚本。 我们感谢Ben Eckart对补充视频的帮助。

猜你喜欢

转载自blog.csdn.net/ningbo2016/article/details/84105350