前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >yolo 实例分割_jacobi椭圆函数

yolo 实例分割_jacobi椭圆函数

作者头像
全栈程序员站长
发布2022-09-23 11:25:09
9950
发布2022-09-23 11:25:09
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Abstract

我们提出了一个简单的、完全卷积的实时实例分割模型,在MS-COCO上达到29.8map,在单个Titan Xp上以33.5fps的速度进行评估,这比以往任何竞争方法都要快得多。而且,我们只在一个GPU上训练就得到了这个结果。我们通过将实例分割分成两个子任务来实现这一点:(1)生成一组原型掩码;(2)预测每个实例的掩码系数。然后,我们通过将原型与掩码系数结合起来,生成实例masksby。我们发现,由于这个过程不依赖于再冷却,这种方法产生了非常高质量的掩模,并免费展示了时间稳定性。此外,我们还分析了原型的涌现行为,并展示了它们在完全卷积的情况下,以一种翻译变体的方式学会了自己定位实例。最后,我们还提出了快速NMS,它比仅具有边际性能损失的标准NMS快12 ms。

1. Introduction

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

“盒子是愚蠢的无论如何,我可能是一个真正的信仰面具,除了我不能让YOLO学习他们。“–约瑟夫·雷蒙,约洛夫3[36]

创建实时实例分割算法需要什么?在过去的几年里,vision社区在实例分割方面取得了长足的进步,部分原因在于它从成熟的对象检测领域中获得了强大的相似性。最新的实例分割方法,如Mask R-CNN[18]和FCIS[24]直接建立在快速R-CNN[37]和R-FCN[8]等对象检测技术的基础上。Y et,这些方法主要关注于速度上的性能,使得场景没有实例分割,与SSD[30]和YOLO[35,36]等实时对象检测器类似。在这项工作中,我们的目标是用一个快速的、一阶段的实例分割模型来填补这个空白,就像SSD和YOLO填补目标检测的空白一样。

然而,实例分割比目标检测困难得多。像SSD和YOLO这样的一级目标探测器能够通过简单地去除第二级并以其它方式弥补丢失的性能来加速现有的两级检测器,例如更快的R-CNN。然而,同样的方法不容易扩展到实例分割。目前最先进的两阶段实例分割方法在很大程度上依赖于特征定位来生成遮罩。也就是说,这些方法在一些边界框区域(例如,通过RoIpool/align)中“再现”特征,然后将这些现在已本地化的特征馈送给它们的掩码预测器。这种方法本质上是连续的,因此很难加速。与FCIS并行地执行这些步骤的一个阶段方法确实存在,但是它们在定位之后需要大量的后处理,因此仍然远远没有实时性。

为了解决这些问题,我们提出了一个实时实例分割框架YOLACT1,它放弃了显式的本地化步骤。相反,YOLACT将实例分割分成两个并行任务:(1)生成1您只需查看系数1 arXiv:1904.02689v2[cs.CV]2019年10月24日在整个图像上使用非局部原型掩码字典,以及(2)预测每个实例的一组线性组合系数。然后从这两个组件生成完整的图像实例分割很简单:对于每个实例,使用相应的预测系数线性组合原型,然后使用预测的边界框裁剪。我们展示了通过这种方式分割,网络学习如何自己定位实例掩码,在原型中视觉上、空间上和语义上相似的实例出现不同的地方。

此外,由于原型蒙版的数量与类别的数量无关(例如,可以有比原型更多的类别),YOLACT学习了一种分布式表示,其中每个实例都用跨类别共享的原型组合进行分段。这种分布式表示导致了原型空间中有趣的涌现行为:一些原型在空间上分割图像,一些局部化实例,一些检测实例轮廓,一些编码位置敏感的方向图(类似于FCIS中通过硬编码位置敏感模块获得的方向图[24]),而且大多数都是这些任务的组合(参见图5)。

这种方法也有一些实际的优点。首先也是最重要的是,它的速度很快:由于它的并行结构和极其轻量级的组装过程,YOLACT只为一级主干检测器增加了少量的计算开销,因此即使使用ResNet-101[19],也很容易达到30 fps;事实上,整个掩模分支的计算时间仅为5 ms。第二,掩模是高质量的:由于掩模充分利用了图像空间,而不会因重新冷却而造成任何质量损失,因此我们的大对象掩模的质量明显高于其他方法(见图7)。最后,它是一般的:生成原型和掩模系数的思想可以添加到几乎任何现代物体检测器中。

我们的主要贡献是第一个实时(>30fps)实例分割算法,它在具有挑战性的MS-COCO数据集上具有竞争性的结果[28](见图1)。此外,我们还分析了YOLACT原型的紧急行为,并提供了实验来研究在不同的主干架构、原型数量和图像分辨率下获得的速度与性能的权衡。我们还提供了一种新的快速NMS方法,它比传统NMS快12毫秒,性能损失可以忽略不计。YOLACT的代码可以在https://github.com/dbolya/YOLACT上找到。

2. Related Work

由于实例分割的重要性,为了提高实例分割的准确性,人们做了大量的研究工作。Mask-RCNN[18]是一种典型的两阶段实例分割方法,它首先生成候选兴趣区域(roi),然后在第二阶段对这些roi进行分类和分割。后续工作试图通过丰富FPN特性[29]或解决掩码的置信度与其定位精度之间的不相容性来提高其准确性[20]。这两个阶段的方法需要为每个ROI重新汇集特征,并通过后续计算对其进行处理,这使得它们即使在减小图像大小时也无法获得实时速度(30 fps)(见表2c)。

单阶段实例分割方法生成位置敏感映射,这些映射通过位置敏感池组合成最终的掩码[6,24]或组合语义分割逻辑和方向预测逻辑[4]。虽然在概念上比两阶段方法快,但它们仍然需要重新冷却或其他非琐碎的计算(例如,掩码投票)。这严重限制了它们的速度,使它们远离实时性。相比之下,我们的组装步骤更加轻量级(仅为线性组合),可以实现为一个GPU加速矩阵乘法,使我们的方法非常快速。

最后,一些方法首先执行语义分割,然后执行边界检测[22]、像素聚类[3,25]或学习嵌入以形成实例掩码[32,17,9,13]。同样,这些方法有多个阶段和/或涉及昂贵的聚类过程,这限制了它们在实时应用中的可行性。

实时实例分割,而实时对象检测(30, 34, 35,36),语义分割(2, 41, 33,11, 47)方法存在,很少有工作集中于实时实例分割。直通形状[21]和Box2Pix[42]可以实时执行实例分割(直通形状在Pascal SBD 2012[12,16]上为30 fps,而Box2Pix在城市景观[5]上为10.9 fps,在KITTI[15]上为35 fps),但它们的精度与现代基线相差甚远。实际上,Mask R-CNN[18]仍然是语义上具有挑战性的数据集(如COCO[28])上最快的实例分割方法之一(5502px图像上为13.5fps;见表2c)。

原型学习原型(又称词汇或码本)在计算机视觉领域得到了广泛的研究。经典的表现形式包括文本[23]和视觉词汇[40],通过稀疏性和位置优先性进行了改进[44,43,46]。其他人设计了用于目标检测的原型[1,45,38]。尽管相关,但这些作品使用原型来表示特征,而我们使用它们来组装用于实例分割的遮罩。此外,我们学习特定于每个图像的原型,而不是整个数据集共享的全局原型。

3. YOLACT

类比Mask R-CNN之于Faster R-CNN,YOLACT旨在现有的one-stage型检测器上添加一个mask分支来达到实例分割的目的,但这一过程中不希望引入特征定位步骤。为此,我们将复杂的实例分割任务分解为两个简单的并行任务,这些任务可以组合起来形成最终的掩码。第一个分支使用FCN[31]生成一组图像大小的“原型掩码”,不依赖于任何一个实例。第二分支是在目标检测分支中添加一个额外的头部,以预测每个锚的“遮罩系数”向量,这些锚对原型空间中的实例表示进行编码。最后,在NMS步骤后,通过将两分支的输出结果进行线性组合来得到最后的预测结果。

基本原理 我们以这种方式执行实例分割,主要是因为遮罩在空间上是一致的;也就是说,彼此靠近的像素可能是同一实例的一部分。虽然卷积(conv)层自然地利用了这种一致性,但完全连接(fc)层则没有。这就带来了一个问题,因为一级目标检测器作为fc层的输出为每个锚生成类系数和盒系数。2两级方法(如Mask R-CNN)通过使用定位步骤(如roalign)来解决这个问题,它保留了特征的空间一致性,同时也允许掩码是conv层输出。然而,这样做需要模型的很大一部分等待第一阶段RPN提出本地化候选,从而导致显著的速度损失。

因此,我们将问题分解为两个并行部分,分别使用擅长产生语义向量的fc层和擅长产生空间相干掩模的conv层来产生“掩模系数”和“原型掩模”。然后,由于prototypes和maskcoefficients可以独立计算,2为了说明这是一个问题,我们开发了一个“fc mask”模型,该模型为每个锚生成掩码,作为fc层的重塑输出。如我们在表2c中的实验所示,简单地将遮罩添加到一级模型中作为fc输出只得到20.7map,因此非常不足。与主干检测器相比,主干检测器的计算开销主要来自组装步骤,组装步骤可以实现为单矩阵乘法。这样,在保持特征空间的空间一致性的同时,仍然是一个阶段和快速的。

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

3.1。原型生成

原型生成分支(protonet)为整个图像预测一组k个原型遮罩。我们将protonet实现为一个FCN,它的最后一层有k个通道(每个原型一个通道),并将其附加到主干特征层(见图3)。虽然这个公式类似于标准的语义分割,但它的不同之处在于,我们在原型上没有显示出明显的损失。相反,对这些原型的所有监督都来自组装后的最终掩模损耗。

我们注意到两个重要的设计选择:从更深层的主干特征中提取protonet会产生更健壮的掩模,而高分辨率的原型会产生更高质量的掩模,并在较小的对象上获得更好的性能。因此,我们使用FPN[26],因为它最大的特性层(在我们的例子中是p3;参见图2)是最深的。然后,我们将其放大到输入图像的四分之一,以提高对小对象的性能。

最后,我们发现protonet的输出是无限的,因为这允许网络为它非常有信心的原型(例如,明显的背景)产生巨大的、强大的激活。因此,我们可以选择跟随带有ReLU或没有非线性的protonet。我们选择ReLU来获得更多可解释的原型。

3.2 掩模系数

典型的基于锚的目标检测器在其预测头中有两个分支:一个用于预测c类置信度,另一个用于预测4个包围盒回归。对于掩模系数预测,我们简单地添加一个并行的第三个分支来预测k个掩模系数,一个对应于每个原型。因此,我们不是生成每个锚的4+c系数,而是生成4+c+k。

然后对于非线性,我们发现能够从最终的掩模中减去原型是很重要的。因此,我们将tanh应用于k个掩模系数,它在没有非线性的情况下产生更稳定的输出。这个设计选择的相关性在图2中很明显,因为如果不允许减法,两个掩码都是不可构造的。

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

图3:Protonet体系结构标签表示图像大小为550×550的特征尺寸和通道。箭头表示3×3 conv层,但最终conv层为1×1。尺寸的增加是一个增加的样本,随后是一个conv.灵感来自于[18]中的掩模分支。

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

图4:头部结构我们使用比RetinaNet[27]浅的预测头部,并添加一个掩模系数分支。这是针对c类、特征层Pi和k原型的锚定。请参见图3中的键。

3.3 面罩组件

为了生成实例掩码,我们将原型分支和掩码系数分支的工作结合起来,使用前者和后者的线性组合作为系数。然后我们通过一个sigmoid非线性来产生最终的掩模。使用单矩阵乘法和sigmoid可以有效地实现这些操作:

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

其中P是原型掩模的h×w×k矩阵,C是n个实例在NMS和分数阈值下的掩模系数的n×k矩阵。其他更复杂的组合步骤是可能的;但是,我们使用基本的线性组合使其保持简单(和快速)。

损失我们使用三个损失来训练我们的模型:分类损失

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

、盒子回归损失

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

和掩模损失

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

,权重分别为1、1.5和6.125。

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

的定义与[30]中的定义相同。然后,为了计算掩模损失,我们简单地取组装掩模M和地面真值掩模Mgt之间的像素二元交叉熵:Lmask=BCE(M,Mgt)。

裁剪遮罩在评估期间,我们使用预测的边界框裁剪最后的遮罩。在训练过程中,我们使用地面真值边界框裁剪,并根据地面真值边界框区域分割

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

以保留原型中的小对象。

3.4 紧急行为

我们的方法可能看起来令人惊讶,因为关于实例分割的普遍共识是,因为FCNs是平移不变的,任务需要在[24]中加上平移方差。因此,像FCIS[24]和Mask R-CNN[18]这样的方法试图显式地添加翻译方差,无论是通过方向图和位置敏感重定位,还是通过将Mask分支放在第二阶段,使其不必处理本地化实例。在我们的方法中,我们添加的唯一平移方差是裁剪带有预测边界框的最终遮罩。但是,我们发现我们的方法也可以在不裁剪中大型对象的情况下工作,因此这不是裁剪的结果。相反,YOLACT通过原型中的不同激活来学习如何独立地本地化实例。

要了解这是如何实现的,首先要注意,在没有填充的FCN中,图5中的纯红图像(图a)的原型激活实际上是不可能的。因为卷积输出到一个像素,如果它在图像中的每个地方的输入都是相同的,那么conv输出中的每个地方的结果都是相同的。另一方面,在像ResNet这样的现代fcn中,一致的边缘填充使网络能够判断像素离图像边缘有多远。从概念上讲,实现这一点的一种方法是让多个层按顺序将填充的0从边缘向外扩展到中心(例如,使用类似于[1,0]的内核)。例如,这意味着ResNet本身就是翻译变体,我们的方法充分利用了这一特性(图像b和c表现出明显的翻译变体)。

我们观察到许多原型在图像的某些“分区”上被激活。也就是说,它们只在隐式学习边界一侧的对象上激活。在图5中,原型1-3就是这样的例子。通过组合这些划分图,网络可以区分同一语义类的不同(甚至重叠)实例;例如,在图像d中,通过从原型2中减去原型3,可以将绿色伞与红色伞分离。

此外,作为学习对象,原型是可压缩的。也就是说,如果protonet结合了将多个原型合并为一个,mask coefficient分支可以了解哪些情况需要哪些功能。例如,在图5中,prototype 2是一个分区原型,但在左下角的实例上也是最强烈的。原型3是相似的,但在右边的例子。这就解释了为什么在实践中,即使使用低至k=32的原型,模型的性能也不会降低(见表2b)。另一方面,增加k值很可能是无效的,因为预测系数是困难的。如果由于线性组合的性质,网络即使在一个系数上产生较大的误差,生成的掩模也可能消失或包括来自其他对象的泄漏。因此,网络必须发挥平衡作用才能产生正确的系数,而添加更多的原型会使这一点更加困难。事实上,我们发现对于k值较高的情况,网络只是添加了冗余的原型,其边缘级别的变化很小,稍微增加了AP95,但没有太多其他变化。

4 骨干探测

对于我们的主干检测器,我们优先考虑速度和特征丰富性,因为预测这些原型和系数是一项困难的任务,需要好的特征才能做好。因此,我们的主干探测器的设计紧跟RetinaNet[27]的步伐,强调速度。

YOLACT检测器我们使用ResNet-101[19],FPN[26]作为我们的默认特征主干,基本图像大小为550×550。为了得到一致的每幅图像的评价时间,我们不保留长宽比。与RetinaNet一样,我们通过不产生p2和产生p6和p7来修改FPN,作为从P5(不是C5)开始的连续3×3跨2 conv层,并在每个层上放置3个长宽比为[1,1/2,2]的锚。p3的锚具有24像素平方的区域,并且每个后续层的比例都是前一层的两倍(由此产生比例[24,48,96192 384])。对于每个Pi上的预测头,三个分支共享一个3×3conv,然后每个分支并行得到自己的3×3conv。与RetinaNet相比,我们的预测头设计(见图4)更轻,速度更快。我们将smooth-L1loss应用于列车箱回归器,并以与SSD[30]相同的方式编码箱回归坐标。为了训练类预测,我们使用带c个正标签和1个背景标签的softmax交叉熵,使用3:1负正比例的OHEM[39]选择训练示例。因此,与 RetinaNet不同的是,我们不使用focal loss,这在我们的情况下是不可行的。

通过这些设计选择,我们发现这种主干比使用ResNet-101[19]修改的具有相同图像大小的SSD[30]性能更好、速度更快。

5 其他改进

我们还讨论了其他一些改进,这些改进要么提高速度而对性能影响不大,要么提高性能而不降低速度。

快速NMS在生成每个锚的包围盒回归系数和类置信度之后,就像大多数目标检测器一样,我们执行NMS来抑制重复检测。在以往的工作中[35,36,30,37,18,27],NMS是按顺序执行的。也就是说,对于数据集中的每个c类,按置信度降序对检测到的框进行排序,然后对于每个检测,删除所有置信度低于它且IoU重叠大于某个阈值的框。虽然这种顺序方法在5 fps左右的速度下足够快,但它成为获得30 fps的一个大障碍(例如,5 fps时的10 ms改进会导致0.26 fps的提升,而30 fps时的10 ms改进会导致12.9 fps的提升)。

为了解决传统网络管理系统的顺序性问题,我们引入了快速网络管理系统(Fast-NMS),它是一种网络管理系统的版本,可以决定并行保存或丢弃每个实例。为此,我们只允许已移除的检测抑制其他检测,这在传统的NMS中是不可能的。这种放松使我们能够完全在标准GPU加速矩阵运算中实现快速NMS。

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

图6:COCO测试开发集的YOLACT评估结果。该基础模型以33.0 fps的速度达到29.8 mAP。所有图像的置信阈值都设置为0.3。

为了实现快速的NMS,我们首先计算c×n×n对IoU矩阵X,对每个c类的前n个检测结果按得分降序排序。GPU上的批处理排序很容易获得,计算IoU可以很容易地矢量化。然后,如果对应的IoU大于某个阈值t,则删除任何得分较高的检测。我们通过首先将X的下三角形和对角线设置为0:Xkij=0,∀k,j,i≥j(可以在一个批处理的triu调用中执行),然后取列最大值来有效地实现这一点:

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

计算每个检测的最大IOU值的矩阵K。最后,使用

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

将指示为每个类保留哪些检测。

由于放松,快速NMS有去除稍微过多盒子的效果。然而,与速度的显著提高相比,由此造成的性能影响可以忽略不计(见表2a)。在我们的代码库中,快速NMS比传统NMS的Cython实现快11.8 ms,同时只降低了0.1 mAP的性能。在Mask R-CNN基准测试套件[18]中,快速NMS比传统NMS的CUDA实现快15.0 ms,性能损失仅为0.3 mAP

语义分割损失虽然快速NMS以少量的性能换取速度,但有一些方法可以在不降低速度的情况下提高性能。其中一种方法是,在使用测试时未执行的模块进行培训期间,对模型应用额外的损失。这有效地增加了特征的丰富性,同时没有速度惩罚。

因此,我们使用仅在训练期间评估的层在我们的特征空间上应用语义分割损失。注意,因为我们从实例注释中构造了这个丢失的基本事实,所以这并不能严格地捕获语义分割(即,我们没有强制标准的每像素一个类)。为了在训练期间创建预测,我们只需将带有c输出通道的1×1 conv层直接连接到主干中最大的特征映射(P3)。由于每个像素可以被分配到多个类,我们使用sigmoid和c通道,而不是softmax和c+1。这个损失被赋予1的权重,并导致+0.4地图增强。

6. Results

我们使用标准度量在MS-COCO[28]和Pascal 2012 SBD[16]上报告实例分割结果。对于COCO,我们在2017年培训,评估val2017和测试开发。

实现细节我们使用ImageNet[10]预训练权重在一个GPU上训练批大小为8的所有模型。我们发现这是一个足够大的批量使用批量范数,所以我们让预处理的批量范数解冻,但不添加任何额外的bn层。我们用SGD训练800k次迭代,从10-3的初始学习率开始除以10在280k、600k、700k和750k的迭代中,使用5×10-4的权重衰减、0.9的动量以及SSD中使用的所有数据增强[30]。对于Pascal,我们训练120k次迭代,将学习速率除以60k和100k,并将锚定标度乘以4/3,因为对象往往更大。培训需要4-6天(取决于配置)在一个泰坦Xp为可可和不到1天的帕斯卡。

掩模结果我们首先在表1中比较YOLACT和MS COCO测试设备上的最新方法。因为我们的主要目标是速度,所以我们比较其他没有测试时间增加的单一模型结果。我们报告所有的速度计算在一个单一的泰坦Xp,所以有些列出的速度可能比原来的文件更快。

YOLACT-550提供了具有竞争力的实例分割性能,而速度是COCO上先前最快的实例分割方法的3.8倍。我们还注意到,与其他方法相比,我们的方法的性能有一个有趣的差异。支持我们在图7中的定性结果,YOLACT-550和Mask R-CNN在50%重叠阈值下的差距是9.5ap,而在75%IoU阈值下的差距是6.6。这与FCIS的性能不同,例如,与间隙一致的Mask R-CNN相比(AP值分别为7.5和7.6)。此外,在最高(95%)IoU阈值下,我们的性能优于掩模R-CNN,前者为1.6,后者为1.3

我们还在表1中报告了备用模型配置的编号。除了基本的550×550图像尺寸模型外,我们还训练了400×400(YOLACT-400)和700×700(YOLACT-700)模型,并相应地调整了锚定比例(sx=s550/550*x)。降低图像大小会导致性能大幅下降,这表明实例分割自然需要更大的图像。然后,提高图像大小会显著降低速度,但也会像预期的那样提高性能。

除了ResNet-101[19]的基本骨干外,我们还测试ResNet-50和DarkNet-53[36]以获得更快的结果。如果更高的速度是可取的,我们建议使用ResNet-50或DarkNet-53而不是降低图像大小,因为这些配置的性能比YOLACT-400好得多,而只是稍微慢一些。

最后,我们还在表3中的Pascal 2012 SBD上训练和评估ResNet-50模型。YOLACT明显优于报告SBD性能的流行方法,同时也显著更快。

掩模质量是因为我们生产的最终掩模尺寸为138×138,并且由于我们直接从原始特征创建掩模(没有重新冷却来转换和潜在的不对准特征),我们的大对象掩模的质量明显高于掩模R-CNN[18]和FCIS[24]。例如,在图7中,YOLACT生成一个完全沿着手臂边界的遮罩,而FCIS和mask R-CNN都有更多的噪声。此外,尽管总体上差5.9map,在95%IoU阈值下,我们的基本模型达到1.6ap,而Mask R-CNN得到1.3。这表明,重新冷却确实会导致可量化的面膜质量下降。

时间稳定性尽管我们只使用静态图像进行训练,不应用任何时间平滑,但我们发现我们的模型在视频上生成的时间稳定性遮罩比遮罩R-CNN要多,后者的遮罩即使在对象静止时也会在帧间抖动。我们相信我们的掩模在一定程度上更稳定,因为它们质量更高(因此帧之间的误差空间更小),但主要是因为我们的模型是一个阶段。两阶段方法产生的掩模高度依赖于第一阶段的区域建议。与我们的方法相反,即使模型预测了不同的帧框,原型也不会受到影响,从而产生更稳定的时间掩模。

7。讨论

尽管我们的掩模具有更高的质量和很好的时间稳定性等特性,但我们在总体性能上落后于最先进的实例分割方法,尽管速度要快得多。大多数错误都是由检测器中的错误引起的:错误分类,盒子

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

然而,我们已经确定了由YOLACT的掩模生成算法引起的两个典型错误。定位失败如果在一个场景中的一个点上有太多的对象,则网络可能无法在自己的原型中定位每个对象。在这些情况下,网络将输出比组中某些对象的实例分段更接近前景遮罩的内容;例如,在图6的第一幅图像(第1行第1列)中,红色飞机下的蓝色卡车未正确定位。

泄漏我们的网络利用了一个事实,即面具是在组装后裁剪的,并没有试图抑制裁剪区域以外的噪音。当边界框是精确的时,这种方法可以很好地工作,但如果不是,则该噪波可能会悄悄地进入实例遮罩,从而从裁剪区域外部创建一些“泄漏”。当两个实例彼此相距较远时,也可能会发生这种情况,因为网络已经了解到不需要对较远的实例进行本地化,裁剪将处理这些实例。但是,如果预测的边界框太大,则遮罩也将包括一些远处实例的遮罩。例如,图6(第2行第4列)显示了这种泄漏,因为掩码分支认为三个滑雪者距离足够远,不必将他们分开。

然而,了解AP间隙,定位失败和泄漏本身不足以解释YOLACT的基本模型和Mask R-CNN之间的近6个mAP间隙。实际上,我们基于COCO的基础模型在其test dev mask和box mAP(29.8 mask,32.3 box)之间只有2.5个mAP差异,这意味着即使使用完美的mask,我们的基础模型也只能获得几个mAP点。此外,Mask R-CNN具有相同的映射差异(35.7 Mask,38.2 box),这表明两种方法之间的差距在于检测器的性能相对较差,而不是我们生成掩码的方法。

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

A. Appendix

A.1. Box Results

由于YOLACT除了生成遮罩之外还生成框,因此我们还可以将其对象检测性能与其他实时对象检测方法进行比较。此外,虽然我们的掩模性能是实时的,但我们不需要生成掩模来运行YOLACT作为对象检测器。因此,当运行以生成框时,YOLACT比运行以生成实例分段时更快。在表4中,我们将我们的性能和速度与YOLOv3的各种偏差进行了比较[36]。因此,我们能够以相似的速度获得与YOLOv3相似的检测结果,而不采用YOLOv2和YOLOv3中的任何额外改进,如多尺度训练、优化锚定盒、基于细胞的回归编码和目标评分。由于我们在观察中对检测性能的改进主要来自于使用FPN和带面具的训练(两者都与YOLO所做的改进是正交的),因此我们很可能将YOLO和YOLACT结合起来创建一个更好的检测器。此外,这些检测结果表明,我们的掩模分支总共只需要6毫秒来评估,这说明我们的掩模计算是多么的少。

A.2. More Qualitative Results

图6显示了许多相邻人员和车辆的示例,但其他类的示例不多。为了进一步支持YOLACT不仅仅是做语义分割,我们在图8中为具有相同类的相邻实例的图像包含了更多的定性结果。例如,在一个有两个大象的图像(图8第2行第2列)中,尽管两个实例框相互重叠,但它们的遮罩显然将实例分隔开。斑马(第4行第2栏)和鸟类(第5行第1栏)的例子也清楚地表明了这一点。请注意,对于其中一些图像,该框并没有完全裁剪掉遮罩。这是因为速度的原因(因为模型是这样训练的),我们在原型分辨率(所以是图像分辨率的四分之一)下裁剪掩模,每个方向都有1倍的填充。另一方面,对应的框以原始图像分辨率显示,不带填充。

yolo 实例分割_jacobi椭圆函数
yolo 实例分割_jacobi椭圆函数

References [1] Shivani Agarwal and Dan Roth. Learning a sparse represen- tation for object detection. In ECCV, 2002. [2] Vijay Badrinarayanan, Alex Kendall, and Roberto Cipolla. Segnet: A deep convolutional encoder-decoder architecture for image segmentation. CoRR, 2015. [3] Min Bai and Raquel Urtasun. Deep watershed transform for instance segmentation. In CVPR, 2017. [4] Liang-Chieh Chen, Alexander Hermans, George Papan- dreou, Florian Schroff, Peng Wang, and Hartwig Adam. Masklab: Instance segmentation by refining object detection with semantic and direction features. In CVPR, 2018. [5] Marius Cordts, Mohamed Omran, Sebastian Ramos, Timo Rehfeld, Markus Enzweiler, Rodrigo Benenson, Uwe Franke, Stefan Roth, and Bernt Schiele. The cityscapes dataset for semantic urban scene understanding. In CVPR, 2016. [6] Jifeng Dai, Kaiming He, Yi Li, Shaoqing Ren, and Jian Sun. Instance-sensitive fully convolutional networks. In ECCV, 2016. [7] Jifeng Dai, Kaiming He, and Jian Sun. Instance-aware se- mantic segmentation via multi-task network cascades. In CVPR, 2016. [8] Jifeng Dai, Yi Li, Kaiming He, and Jian Sun. R-fcn: Object detection via region-based fully convolutional networks. In NeurIPS, 2016. [9] Bert De Brabandere, Davy Neven, and Luc V an Gool. Semantic instance segmentation with a discriminative loss function. arXiv preprint arXiv:1708.02551, 2017. [10] Jia Deng, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Li Fei-Fei. Imagenet: A Large-Scale Hierarchical Image Database. In CVPR, 2009. [11] Nikita Dvornik, Konstantin Shmelkov, Julien Mairal, and Cordelia Schmid. Blitznet: A real-time deep network for scene understanding. In ICCV, 2017. [12] Mark Everingham, Luc V an Gool, Christopher Williams, John Winn, and Andrew Zisserman. The pascal visual object classes (voc) challenge. International Journal of Computer Vision, 88(2):303–338, June 2010. [13] Alireza Fathi, Zbigniew Wojna, Vivek Rathod, Peng Wang, Hyun Oh Song, Sergio Guadarrama, and Kevin Murphy. Se- mantic instance segmentation via deep metric learning. arXiv preprint arXiv:1703.10277, 2017.

[14] Cheng-Yang Fu, Mykhailo Shvets, and Alexander C Berg. Retinamask: Learning to predict masks improves state- of-the-art single-shot detection for free. arXiv preprint arXiv:1901.03353, 2019. [15] Andreas Geiger, Philip Lenz, and Raquel Urtasun. Are we ready for autonomous driving? the kitti vision benchmark suite. In CVPR, 2012. [16] Bharath Hariharan, Pablo Arbeláez, Lubomir Bourdev, Subhransu Maji, and Jitendra Malik. Semantic contours from inverse detectors. In ICCV, 2011. [17] Adam Harley, Konstantinos Derpanis, and Iasonas Kokki- nos. Segmentation-aware convolutional networks using local attention masks. In ICCV, 2017. [18] Kaiming He, Georgia Gkioxari, Piotr Dollár, and Ross Gir- shick. Mask r-cnn. In ICCV, 2017. [19] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In CVPR, 2016. [20] Zhaojin Huang, Lichao Huang, Y ongchao Gong, Chang Huang, and Xinggang Wang. Mask scoring r-cnn. In CVPR, 2019. [21] Saumya Jetley, Michael Sapienza, Stuart Golodetz, and Philip Torr. Straight to shapes: real-time detection of en- coded shapes. In CVPR, 2017. [22] Alexander Kirillov, Evgeny Levinkov, Bjoern Andres, Bog- dan Savchynskyy, and Carsten Rother. Instancecut: from edges to instances with multicut. In CVPR, 2017. [23] Thomas Leung and Jitendra Malik. Representing and rec- ognizing the visual appearance of materials using three- dimensional textons. IJCV, 2001. [24] Yi Li, Haozhi Qi, Jifeng Dai, Xiangyang Ji, and Yichen Wei. Fully convolutional instance-aware semantic segmentation. In CVPR, 2017. [25] Xiaodan Liang, Liang Lin, Y unchao Wei, Xiaohui Shen, Jianchao Yang, and Shuicheng Yan. Proposal-free network for instance-level object segmentation. TPAMI, 2018. [26] Tsung-Yi Lin, Piotr Dollár, Ross Girshick, Kaiming He, Bharath Hariharan, and Serge Belongie. Feature pyramid networks for object detection. In CVPR, 2017.

[27] Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, and Piotr Dollár. Focal loss for dense object detection. In CVPR, 2017. [28] Tsung-Yi Lin, Michael Maire, Serge Belongie, James Hays, Pietro Perona, Deva Ramanan, Piotr Dollár, and Lawrence Zitnick. Microsoft coco: Common objects in context. In ECCV, 2014. [29] Shu Liu, Lu Qi, Haifang Qin, Jianping Shi, and Jiaya Jia. Path aggregation network for instance segmentation. In CVPR, 2018. [30] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, and Alexander Berg. Ssd: Single shot multibox detector. In ECCV, 2016. [31] Jonathan Long, Evan Shelhamer, and Trevor Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015. [32] Alejandro Newell, Zhiao Huang, and Jia Deng. Associa- tive embedding: End-to-end learning for joint detection and grouping. In NeurIPS, 2017. [33] Adam Paszke, Abhishek Chaurasia, Sangpil Kim, and Euge- nio Culurciello. Enet: A deep neural network architecture for real-time semantic segmentation. CoRR, 2016. [34] Joseph Redmon, Santosh Divvala, Ross Girshick, and Ali Farhadi. Y ou only look once: Unified, real-time object de- tection. In CVPR, 2016. [35] Joseph Redmon and Ali Farhadi. Y olo9000: Better, faster, stronger. In CVPR, 2017. [36] Joseph Redmon and Ali Farhadi. Y olov3: An incremental improvement. arXiv:1804.02767, 2018. [37] Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. In NeurIPS, 2015. [38] Xiaofeng Ren and Deva Ramanan. Histograms of sparse codes for object detection. In CVPR, 2013. [39] Abhinav Shrivastava, Abhinav Gupta, and Ross Girshick. Training region-based object detectors with online hard ex- ample mining. In CVPR, 2016. [40] Josef Sivic and Andrew Zisserman. Video google: A text retrieval approach to object matching in videos. In ICCV, 2003. [41] Michael Treml, José Arjona-Medina, Thomas Unterthiner, Rupesh Durgesh, Felix Friedmann, Peter Schuberth, An- dreas Mayr, Martin Heusel, Markus Hofmarcher, Michael Widrich, et al. Speeding up semantic segmentation for au- tonomous driving. In NeurIPS Workshops, 2016. [42] Jonas Uhrig, Eike Rehder, Björn Fröhlich, Uwe Franke, and Thomas Brox. Box2pix: Single-shot instance segmentation by assigning pixels to object boxes. In IEEE Intelligent V e- hicles Symposium, 2018. [43] Jinjun Wang, Jianchao Yang, Kai Y u, Fengjun Lv, Thomas Huang, and Yihong Gong. Locality-constrained linear cod- ing for image classification. In CVPR, 2010. [44] Jianchao Yang, John Wright, Thomas Huang, and Yi Ma. Im- age super-resolution via sparse representation. IEEE Trans- actions on Image Processing, 2010. [45] Xiaodong Y u, Li Yi, Cornelia Fermüller, and David Doer- mann. Object detection using shape codebook. In BMVC, 2007.

[46] Tianzhu Zhang, Bernard Ghanem, Si Liu, Changsheng Xu, and Narendra Ahuja. Low-rank sparse coding for image clas- sification. In ICCV, 2013. [47] Hengshuang Zhao, Xiaojuan Qi, Xiaoyong Shen, Jianping Shi, and Jiaya Jia. Icnet for real-time semantic segmentation on high-resolution images. In ECCV, 2018.

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172419.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档