PolyTransform: Deep Polygon Transformer for Instance Segmentation论文阅读

Title PolyTransform: Deep Polygon Transformer for Instance Segmentation
标题 PolyTransform: 深度多边形变换用于实例分割
pdf https://arxiv.org/abs/1912.02801

摘要

在本文中,我们提出了一种新的实例分割算法PolyTransform,该算法结合了当前分割方法和现代基于多边形的方法的优点,可以产生精确的、几何保持的掩模。特别是,我们首先利用分割网络来生成实例掩码。然后,我们将遮罩转换为一组多边形,然后将这些多边形输入变形网络,变形网络将这些多边形转换为更适合物体边界的形状。我们在具有挑战性的Cityscapes数据集上的实验表明,我们的PolyTransform显著提高了骨干实例分割网络的性能,并在Cityscapes测试集排名第一。我们还展示了交互注释设置方面令人印象深刻的成果。

1.简介

实例分割方法的目标是识别场景中所有可计数的对象,并为每个对象生成一个遮罩。借助实例分割,我们可以更好地理解场景[68],设计能够完成复杂操作任务[17]的机器人系统,改进自动驾驶汽车[44]的感知系统。然而,这项任务极具挑战性。与传统的语义分割任务推断出图像中每个像素的类别相比,实例分割还要求系统具有单个对象的额外概念,以便将每个像素与其中一个像素关联起来。处理对象在尺度和外观上的大变异性以及遮挡和运动模糊使这个问题变得非常困难。

为了解决这些问题,大多数现代实例分割方法采用两阶段过程[21,63,42],首先创建对象建议,然后在每个边框内执行前景背景分割。在box的帮助下,他们可以更好地处理其他方法经常无法解决的情况(如咬合)。虽然这些方法在多个基准测试中都达到了最先进的性能(例如COCO [38], Cityscapes[11]),但它们的输出常常过于平滑,无法捕捉到细粒度的细节。

另一种工作解决了交互式注释的问题[5,2,62,39]。这些技术是在循环中有一个注释器的上下文中开发的,其中提供了一个ground truth边界框。这些工作的目标是通过为注释器提供一个初始的多边形来加速注释工作,因为从头开始注释是一个非常昂贵的过程。在这项工作中,方法利用多边形来更好地捕捉物体的几何形状[5,2,39],而不是把问题当作像素标记任务。这将导致更精确的蒙版和可能更快的注释速度,因为注释器能够通过移动顶点来简单地修正多边形。然而,这些方法在存在大的遮挡或当对象被分割成多个不相连的组件时会受到影响。

考虑到这些问题,在本文中,我们开发了一个新的模型,我们称为多边形变换,并解决实例分割和交互注释问题。我们的方法背后的想法是,分割掩模产生的常见分割方法可以视为一个起点,以计算一组多边形,然后可以细化。我们通过一个变形网络来实现这种改进,该网络可以预测每个多边形的每个顶点的位移,并考虑到所有顶点的位置。通过变形每个多边形,我们的模型能够更好地捕捉物体的局部几何形状。与[5,2,39]不同,我们的模型对用于描述每个对象的多边形数量没有限制。这允许我们自然地处理由于遮挡而将物体分割成部分的情况。

我们首先在Cityscapes数据集上证明了我们方法的有效性[11]。 在实例分割的任务上,我们的模型将验证集的边界度量标准的初始化提高了3.0 AP和10.3。 重要的是,我们在测试集排行榜上排名第一,以3.7 AP领先于当前水平。 我们将在一个新的自动驾驶数据集上进一步评估我们的模型。 我们的模型通过边界度量中的2.1 AP和5.6改进了初始化。 在交互式注释的上下文中,我们在边界度量方面比现有技术水平[62]高出2.0%。 最后,我们进行了一个实验,其中众包标签器使用模型输出的多边形对对象实例进行注释。 我们证明这可以将注释时间缩短35.

2.相关工作

在本节中,我们简要回顾一下有关循环中实例分割和注释的相关文献。

2.1 基于提案的实例分割:

大多数现代实例分割模型采用两阶段流程。首先,识别出一组过于完整的分割提案,然后利用投票过程来确定保留哪个提案[8,14],因为显式特征提取过程[53]非常耗时[19,20],戴等 [13,12]将特征池集成到神经网络中以提高效率。尽管与以前的方法相比,速度得到了极大的提高,但是由于这些方法受到传统的基于检测的管道的限制,因此速度仍然相对较低。考虑到这个问题,研究人员研究了直接在网络中生成实例掩码并将其视为提案的方法[51,52]。基于这种思想,Mask R-CNN [21]引入了一种联合方法来进行掩膜预测和识别。它在Faster R-CNN [54]的基础上,除了用于边界框识别的现有分支外,还添加了一个额外的并行头以预测对象的蒙版。刘等 [42]提出了一种路径汇聚网络,以改善Mask R-CNN中的信息流并进一步提高性能。最近,Chen等 [6]将边界框回归,掩码回归和语义分割交织在一起以提高实例分割性能。徐等[64]通过让网络学习系数,将Chebyshev多项式拟合到实例,这允许实时实例分割。黄等[25]通过预测每个蒙版的IoU而不仅仅是分类得分来优化边界框的评分。 Kuo等 [34]从边界框开始,并使用形状先验优化它们。熊等 [63]和Kirillov等 [31]将Mask R-CNN扩展到全景分割任务。杨等[65]将Mask R-CNN扩展到视频实例分割的任务。

2.2 无提案实例分割:

此研究线旨在在没有显式对象提案的情况下分割场景中的实例。张等。 [67,66]首先在提取的多尺度补丁中预测实例标签,然后利用密集的条件随机场[33]获得完整图像的一致标签。在取得令人印象深刻的结果的同时,他们的方法需要大量的计算。 Bai和Urtasun [4]利用深层网络预测分水岭变换的能量,使每个盆地对应一个对象实例。通过一个简单的切割,他们无需任何后处理即可获得整个图像的实例蒙版。同样,[32]利用边界预测来将同一语义类别中的实例分开。尽管速度更快,但在处理边界不明确的远小物体时,它们仍会受苦。为了解决这个问题,Liu等人[41]提出了一种顺序分组的方法,该方法采用神经网络逐步地从较简单的元素组成对象。它可以可靠地处理将单个实例拆分为多个部分的情况。 Newell和Deng [49]通过让模型预测每个像素的语义类别和标签,将分组概念隐式编码为神经网络。标签是将每个像素彼此关联的一维嵌入。肯德尔等。 [28]提出了一种方法,将像素分配给对象,使每个像素点都指向其对象的中心,以便可以对其进行分组。 Sofiiuk等。 [58]使用点提议网络生成实例可以放置的点,然后由CNN处理以输出每个位置的实例掩码。 Neven等。 [48]提出了一种新的聚类损失,该聚类损失将属于同一实例的像素的空间嵌入拉在一起,以实现实时实例分割,同时具有很高的准确性。高等。 [18]提出了一个单镜头实例分割网络,该网络输出一个像素对亲和力金字塔,以计算两个像素是否属于同一实例,然后将它们与预测的语义分割相结合,以输出单个实例分割图。

2.3 交互式注释:

交互式注释的任务也可以摆在寻找最适合对象边界的多边形或曲线上。实际上,使曲线变形以适合对象轮廓的概念可以追溯到80年代,当时主动轮廓模型首次被引入[27]。从那时起,已提出ACM [10、47、9]的变体以更好地捕获形状。最近,在循环分割中以人为背景探讨了利用多边形表示实例的想法[5,2]。 Castrejon等文献[5]采用RNN顺序预测多边形的顶点。 Acuna等 [2]通过合并图神经网络和增加图像分辨率来扩展[5]。尽管这些方法在公共基准上显示出令人鼓舞的结果[11],但它们需要gt边界框作为输入。 Ling等 [39]和董等人 [16]利用样条曲线作为替代参数。它们不是从头开始绘制整个多边形/曲线,而是从圆开始对其进行变形。 Wang等。但是,由于使用级别集[62]通过隐式曲线解决了该问题,因为输出不是多边形,所以注释器无法轻松地对其进行校正。在[46]中,Maninis等人。使用极限边界作为输入而不是边界框和Majumder等。 [45]使用用户点击来生成内容感知的指导图;所有这些都有助于网络学习更强的线索,以生成更准确的细分。但是,由于它们是逐个像素的蒙版,因此注释者不容易修改它们。 Acuna等。 [1]开发了一种方法,该方法可通过与CNN和水平集公式共同对对象边界进行推理来完善嘈杂的注释。在离线地图领域,Homayounfar等人的几篇论文。和梁等。 [23,35,24,36]通过预测结构化的输出(例如折线)解决了自动注释人行横道,道路边界和车道的问题。

3. PolyTransform

PolyTransform: Deep Polygon Transformer for Instance Segmentation论文阅读
我们的目标是设计一个鲁棒的分割模型,该模型能够为每个单独的对象生成精确的,保留几何形状的蒙版。为了实现这一目标,我们开发了PolyTransform,这是一种新颖的深度架构,将流行的分割方法[21,63]与基于现代多边形的方法[5,2]相结合。通过利用两全其美的优势,我们能够在各种挑战性场景下生成高质量的分割蒙版。

在本节中,我们将从描述用于特征提取和多边形初始化的主干架构开始。接下来,我们介绍一种新颖的变形网络,该网络变形初始多边形以更好地捕获对象的局部几何形状。我们的方法概述如图1所示。

3.1 实例初始化

我们的实例初始化模块的目标是为每个单独的对象提供良好的多边形初始化。为此,我们首先利用模型为场景中的每个实例生成一个蒙版。我们的实验表明,我们的方法可以显着提高各种分割模型的性能。如果分割模型输出建议框,则使用它们裁剪图像,否则,我们将边界框安装到蒙版上。裁剪后的图像随后被调整为正方形,并馈入特征网络(在第3.2节中进行了描述),以获得一组可靠的深层特征。实际上,我们将裁剪后的图像调整为(Hc,Wc)=(512,512)。要初始化多边形,我们使用[60]的边界跟踪算法从预测的蒙版中提取轮廓。通过在轮廓中每隔10 px的距离放置一个顶点,可以得到一组初始顶点。根据经验,我们发现这种密集的顶点插值可以在性能和内存消耗之间提供良好的平衡。

3.2 特征提取网络

PolyTransform: Deep Polygon Transformer for Instance Segmentation论文阅读
我们的特征提取网络的目标是学习强大的对象边界特征。这是必不可少的,因为我们希望多边形捕获高曲率和复杂形状。因此,我们采用特征金字塔网络(FPN)[37]来学习和利用多尺度特征。该网络将实例初始化阶段获得的(Hc,Wc)作物作为输入,并输出处于不同金字塔等级的一组特征。我们的骨干网如图2所示。

3.3 变形网络

我们从图像裁剪中计算了多边形初始化和FPN的深层特征。接下来,我们为所有N个顶点构建特征嵌入,并学习可有效预测每个顶点的偏移量的变形模型,从而使多边形更好地捕捉到对象边界。

3.3.1 顶点嵌入

我们基于从上一部分的主干FPN网络中提取的多尺度特征来构建顶点表示。特别是,我们采用P2,P3,P4,P5和P6特征图,并对它们每个应用两个横向卷积层,以将特征通道的数量从256个减少到64个。由于特征图是原始比例的1 / 4、1 / 8、1 / 16、1 / 32和1/64,因此我们对它们进行双线性升采样以恢复原始大小,并将它们连接起来以形成Hc×Wc×320Hc \times Wc \times320特征张量。为了给网络一个关于每个顶点在哪里的概念,我们进一步附加了一个2通道的CoordConv层[40]。通道代表相对于crop框架的x和y坐标。最后,我们利用空间变换器网络的双线性插值操作[26]从特征张量中采样初始多边形顶点坐标处的特征。我们将这样的N×320+2N \times(320 + 2)嵌入表示为zz

3.3.2 变形网络

在多边形中移动顶点时,两个附着的边也将随之移动。这些边缘的移动取决于相邻顶点的位置。因此,每个顶点都必须了解其邻居,并且需要一种相互通信的方式,以减少不稳定和重叠的行为。在这项工作中,我们利用自检变压器网络[61]对这种复杂的依赖关系进行建模。我们利用注意力机制在顶点之间传播信息并改善预测的偏移量。更正式地说,给定顶点嵌入zz,我们首先使用三个前馈神经网络将其转换为Q(z),K(z),V(z),其中Q,K,V代表查询,键和值。这种注意机制可以写成:
PolyTransform: Deep Polygon Transformer for Instance Segmentation论文阅读
其中dk是查询和键的维数,用作防止极小的梯度的缩放比例。我们将相同的操作重复固定次数,在我们的实验中为6次。在最后一个Transformer层之后,我们将输出反馈到另一个前馈网络,该网络会预测顶点的N×2N \times 2偏移。我们将偏移量添加到多边形初始化中以变换多边形的形状。

3.4 学习

我们以端到端的方式训练变形网络和特征提取网络。具体来说,我们将两个损失的加权总和最小化。首先,当顶点偏离地面真相时对模型进行惩罚。第二个规则化多边形的边缘,以防止顶点重叠和不稳定移动。

多边形变换损失:我们使用类似于[23]的“倒角距离”损失,将我们预测的多边形P的顶点移近gt多边形Q。“倒角距离”损失的定义为:
PolyTransform: Deep Polygon Transformer for Instance Segmentation论文阅读
其中p和q是多边形P和Q的栅格化边缘像素。为防止顶点不稳定移动,我们在顶点之间的边ee的长度上增加了偏差损失。根据经验,我们发现,如果没有这一项,顶点会突然移位很大的距离,从而造成很大的损失并导致梯度爆炸。我们将标准偏差损失定义为:

PolyTransform: Deep Polygon Transformer for Instance Segmentation论文阅读
其中e\overline{e}表示边的平均长度。

4.实验我们在实例细分和交互式注释设置的背景下评估模型。实验设置:我们使用分布式训练框架Horovod [56]在8个Titan 1080 Ti GPU上训练模型1天。我们使用1,ADAM [30],1e-4学习率和1e-4权重衰减的批次大小。我们通过水平随机翻转图像来增强数据。在训练过程中,我们仅训练其提议的框与地面真(GT)框的联合交集(IoU)重叠超过0.5的实例进行训练。我们对使用建议的盒子和GT盒子制作的实例进行训练,以进一步增强数据。对于我们的实例细分实验,我们在训练和测试期间将框的大小增加了3%至+ 3%,框扩展了2%。对于我们的交互式注释实验,我们在每边扩展5px的盒子上进行训练和测试;仅当预测顶点与地面真实多边形至少相距2px时,我们才计算倒角损失。在对损失进行加权时,我们发现确保损失值近似平衡可产生最佳结果。对于我们的PolyTransform FPN,我们使用ResNet50 [22]作为主干,并使用来自Cityscapes的UPSNet [63]的相同预训练权重。对于我们的变形网络,我们不使用预训练的权重。

4.1 实例分割

4.1.1 数据集:

我们使用具有高质量像素级实例分割注释的Cityscapes [11]。在27个城市中收集了1024 2048张图像,并将它们分为2975、500和1525张图像进行火车/验证/测试。有8个实例类:自行车,公共汽车,人,火车,卡车,摩托车,汽车和骑手。我们还将针对收集到的新数据集报告结果。它由10235/1139/1186的火车/停车/测试拆分图像组成,并带有10类注释:汽车,卡车,公共汽车,火车,人,骑手,带骑手的自行车,自行车,带骑手的摩托车和摩托车。每个图像的大小为1200 1920。

4.1.2 指标:

对于我们的实例分割结果,我们报告了预测遮罩的平均精度(AP和AP50)。在这里,AP是按照10个IoU重叠阈值计算的,范围从0.5到0.95,以0.05的步长跟随[11]。 AP50是重叠率为50%的AP。我们还引入了关注边界的新指标。特别是,我们使用类似于[62,50]的度量标准,其中为每个蒙版计算精度,召回率和F1分数,如果预测在距地面真相的某个距离阈值内,则预测是正确的。我们使用1px的阈值,仅计算TP的指标。我们使用相同的10个IoU重叠阈值(范围从0.5到0.95,步长为0.05)来确定TP。计算完所有类别和阈值的F1分数后,我们将所有示例的平均值作为AF。

4.1.3 实例初始化:

我们想要使用强大的实例初始化来表明我们仍然可以改善结果。我们采用公开可用的UPSNet [63],并用WideResNet38 [55]替换其主干,并添加PANet [42]的所有元素,但同步批处理归一化(我们使用组归一化)。然后,我们对COCO进行预训练,并在主干中使用可变形卷积(DCN)[15]。

4.1.4 与SOTA的比较:

如图1所示,我们在“城市景观”的val和测试集中的每个度量中均胜过所有基线。我们获得了最新的40.1AP测试结果。在AP和AP50m中,这分别比PANet高出3.7和2.8点。在官方的Cityscapes排行榜上,它也排名第一。我们在表2中的新数据集上报告结果。在此排行榜中,我们获得了最强的测试AP结果。我们看到,PANet提高了6.2点,与UPSNet相比,UPSNet提高了3.8点。
PolyTransform: Deep Polygon Transformer for Instance Segmentation论文阅读

4.1.5 初始化的鲁棒性

我们在Cityscapes的表3中报告了用于初始化的不同实例细分网络的改进,这些结果显示了所有模型中val AP的显着且一致的改进。当我们在DWT [4]实例之上训练模型时,我们看到AP和AF分别提高了+ 2.2,+ 5.8点。我们还将在原始论文的UPSNet结果以及带有WRes38 + PANet的UPSNet的基础上进行训练,以重现PANet的当前SOTA val AP。我们的AP和AF表现为+ 1.6,+ 4.9点的改善。最后,我们通过AP和AF中的+ 1.6,+ 4.2 AP点改进了最佳初始化。正如我们所看到的,我们的边界指标在所有模型中的AF都有非常一致的4%10%的增益。这表明我们的方法大大改进了边界处的实例。我们注意到,AP的大幅增长(从WRes38 + PANet到WRes38 + PANet + DCN)并不一定会转化为AF的大幅增长,但是,我们的模型将始终在该指标上提供显着提高。我们还在表4中报告了针对新数据集的不同实例细分网络上的验证AP改进。我们看到我们可以在Mask RCNN [21]上将AP,AF中的+ 2.2,+ 5.6点改进。对于不同的UPSNet模型,我们在1.4-2.2 AP点之间对其进行了改进。再一次,我们的模型在所有初始化中都显示出一致而强大的改进。我们还看到,所有模型的AF都非常一致地提高了3%6%。

4.1.6 注释效率

我们进行了一项实验,要求众包标注者对新数据集中的150张图像进行注释,其中车辆的实例大于24x24px,行人/骑手的实例大于12x14px。我们执行了一个对照实验,在该实验中,实例完全从头开始注释(没有使用我们的方法),在平行实验中,我们使用模型输出实例,以供他们修复以生成最终注释。在完全手动的实验中,注释每个图像平均需要60.3分钟。当为注释器提供PolyTransform输出以在其顶部进行注释时,平均需要39.4分钟来注释每个图像。因此减少了注释图像所需时间的35%。这样可以节省大量成本。

4.1.7 幼稚的优化器

我们实现了两个基准,这些基准在初始掩码的顶部应用了语义分割网络。 1)我们用DeepLabV3 [7]和PWC-Net [59]启发的优化网络替换了PolyTransform。它以相同的初始化蒙版,裁剪的RGB图像和裁剪的特征作为输入,并利用一系列卷积来完善二进制蒙版。 2)我们向UPSNet添加了一个额外的磁头,其中初始化掩码和裁剪的功能作为输入来优化二进制掩码。头的架构与语义头的架构相似(即使用UPSNet的FPN中的功能)。为了公平起见,两个基线的参数数量与PolyTransform相似。如标签所示。 5,我们的方法表现最好。
PolyTransform: Deep Polygon Transformer for Instance Segmentation论文阅读

4.1.8时间

我们的模型需要575毫秒来处理Cityscapes上的每个图像。可以通过增加GPU内存轻松地对此进行改进,因为这将允许批处理所有实例。此外,可以调整FPN的隐藏尺寸以加快模型的速度。

4.1.9 定性结果

我们在图3的验证集上显示了模型的定性结果。在实例细分输出中,我们看到在很多情况下我们的模型都能够处理遮挡。例如,在第3行中,我们看到模型可以捕获紫色和蓝色行人的脚,尽管他们的脚被挡住了。我们还在图4的新数据集上显示了定性结果。我们看到我们的模型能够捕获精确的边界,从而能够捕获困难的形状,例如汽车后视镜和行人。失败模式:当初始化不佳时,我们的模型可能会失败(图5的左图)。尽管能够处理遮挡,但如图5右侧所示,当遮挡复杂或模糊时,我们的模型仍然会失败。这里有一个半透明的围栏挡住了汽车。
PolyTransform: Deep Polygon Transformer for Instance Segmentation论文阅读
PolyTransform: Deep Polygon Transformer for Instance Segmentation论文阅读
PolyTransform: Deep Polygon Transformer for Instance Segmentation论文阅读