论文地址:https://arxiv.org/pdf/1903.00241.pdf
代码:https://github.com/zjhuang22/maskscoring_rcnn
文章借鉴其他网文,表示感谢,若侵权请联系
论文翻译
Abstract
让一个深度网络意识到自己预测的质量是一个有趣但重要的问题。在实例分割任务中,大多数实例分割框架都采用实例分类的置信度作为Mask质量分数。然而,被量化为mask实例与其groud truth之间的IoU的Mask质量通常与分类分数相关性不强。在本文中,我们研究了这个问题,并提出了包含一个网络块的Mask Score R-CNN来学习预测实例Mask的质量。提出的网络块将实例特征和相应的预测Mask结合起来,对Mask IoU进行回归。Mask Scoring 策略校正Mask质量和Mask Score 之间的偏差,通过在COCO AP评估过程中优先考虑更准确的Mask预测,提高实例分割性能。通过对COCO数据集的广泛评估,Mask scoring R-CNN为不同的模型带来了一致和显著的收益,并且优于最先进的Mask R-CNN。我们希望我们的简单有效的方法将为改进实例分割提供一个新的方向。The source code of our method is available at https:// github.com/zjhuang22/maskscoring_rcnn.
1.Introduction
深度网络极大地推动了计算机视觉的发展,在分类[22,16,35]、目标检测[12,17,32,27,33,34]、语义分割[28,4,37,18]等任务中取得了一系列的最新进展。从计算机视觉中深度学习的发展可以看出,深度网络的能力正逐步从图像水平预测[22]发展到区域/box预测[12]、像素级预测[28]、实例/Mask预测[15]。细粒度的预测的能力不仅仅需要更细节的标签,也需要更多精细的网络结构设计。
本文主要研究的是实例分割问题,这是目标检测从粗糙的框级实例识别到精确像素级分类的自然下一步。具体地说,本文提出了一种对实例分割假设进行评分的新方法,这对于实例分割的评价是十分重要的。究其原因,大部分的评价指标都是根据假设分数来定义的,更精确的分数有助于更好的表征模型的性能。例如,precision-recall curve和average precision (AP)常用于具有挑战性的实例分割数据集COCO[26]。如果一个实例分割假说不是正确得分,可能会错误地认为是假阳性或假阴性,从而导致AP的减少。
然而,在大多数实例分割管道,如Mask R-CNN[15]和MaskLab[3],实例Mask的分数与box-level分类置信度共享,由分类器应用于预测建议功能。使用分类置信度来度量Mask质量是不合适的,因为它只用于区分proposal的语义类别,而不知道实例Mask的实际质量和完整性。分类置信度与Mask质量的偏差如图1所示,其中实例分割假设得到准确的box-level定位结果和较高的分类分值,但对应的Mask不准确。显然,使用这样的分类分数对Mask进行 Score 会降低评价结果。
不像以前的方法,目的是获得更准确的实例定位或分割Mask,我们的方法侧重于 Score 的Mask。为了实现这个目标,我们的模型学习每个Mask的一个分数,而不是使用它的分类分数。为了清晰起见,我们称之为“习得分数蒙版分数”learned score mask score。
受AP指标的启发,实例分割利用预测Mask与groud truth Mask之间的像素级相交过并(IoU)来描述实例分割质量,提出了一种直接学习IoU的网络。在本文中,这个IoU表示为MaskIoU。一旦我们在测试阶段得到了预测的Mask分数,通过将预测的Mask分数与分类分数相乘来重新评估Mask分数。因此,Mask Score 同时考虑语义类别和实例Mask的完整性。
学习MaskIoU不同于proposal classification或mask prediction,它需要将预测的mask与object feature进行比较。在Mask RCNN框架中,我们实现了一个名为MaskIoU head的Mask预测网络。它以mask head的输出和RoI特征作为输入,使用简单的回归损耗进行训练。我们将提出的模型命名为带MaskIoU head的Mask R-CNN,即Mask score R-CNN (MS R-CNN)。我们使用Mask R-CNN进行了大量的实验,结果表明,我们的方法提供了一致和显著的性能改进,这归因于Mask质量和 Score 之间的一致性。
总而言之,这项工作的主要贡献如下
1. 我们提出了Mask Score R-CNN,这是第一个解决实例分割假设评分问题的框架。为提高实例分割模型的性能开辟了新的方向。考虑到实例Mask的完整性,如果实例Mask的分类分数较高,而Mask不够好,则可以对实例Mask的分数进行扣分。
2. 我们的MaskIoU head非常简单有效。在具有挑战性的COCO基准测试上的实验结果显示,当使用来自MS R-CNN的Mask Score 而不是仅仅使用分类置信度时,AP在不同的主干网络上持续提高约1.5%。
2.Related Work
2.1. Instance Segmentation
目前的实例分割方法大致可以分为两类。一种是基于检测的方法,另一种是基于分割的方法。基于检测的方法利用最先进的检测器,如速度更快的R-CNN [33], R-FCN[8],获取每个实例的区域,然后预测每个区域的Mask。Pinheiro et al.[31]等人提出了deepMask,以滑动窗口的方式对中心对象进行分割和分类。Dai et al.[6]等人提出了 instance-sensitive FCNs来生成位置敏感的映射,并将它们组装起来以获得最终的Mask。FCIS[23]使用具有内/外分数的位置敏感映射来生成实例分割结果。He et al.[15]提出了一种基于FasterR-CNN的Mask R-CNN,通过添加instance level语义分割分支。Chen等人在Mask RCNN的基础上提出了MaskLab,利用position sensitive scores来获得更好的结果。然而,这些方法的一个潜在缺陷是Mask质量仅由分类分数来衡量,从而导致了上面讨论的问题。
基于分割的方法首先对每个像素的类别标签进行预测,然后将其分组形成实例分割结果。Liang等人使用光谱聚类对像素进行聚类。其他工作,如[20,21],在聚类过程中添加边界检测信息。Bai等人预测像素级的能量值,并使用分水岭算法进行分组。最近,有一些研究[30,11,14,10]使用度量学习来学习嵌入。具体来说,这些方法学习每个像素的嵌入,以确保来自相同实例的像素具有类似的嵌入。然后,对学习到的嵌入进行聚类来获取最终实例标签。由于这些方法没有显式的分数来度量实例Mask质量,因此它们必须使用平均像素级分类分数作为替代。上述两类方法都没有考虑Mask分数和Mask质量之间的对齐。由于Mask分数的不可靠性,如果一个Mask假设的借据对groud truth的比值较高,则该Mask假设的Mask分数较低,则该假设的优先级较低。在这种情况下,最终的AP因此降级。
2.2. Detection Score Correction
针对检测框的分类分数校正方法有几种,其目标与我们的方法相似。Tychsen-Smith等人[36]提出了fitnessNMS,利用检测到的边界框和它们的ground truth之间的IoU来校正检测分数。将box预测作为分类任务。我们的方法与此方法的不同之处在于,我们将MaskIoU估计作为一项回归任务。Jiang et al.[19]提出了直接regressed box IoU的IoU- net,并将预测的IoU用于NMS和bounding box细化。在[5]中,Cheng等人对假阳性样本进行了讨论,并使用一个单独的网络对这些样本的分数进行校正。SoftNMS[2]使用两个框之间的重叠来纠正低分值框。Neumann et al.[29]等人提出放宽Softmax来预测用于安全关键行人检测的标准softmax中的温度比例因子值。
与这些侧重于边界框级别检测的方法不同,我们的方法是为实例分割而设计的。在我们的MaskIoU head中对实例Mask进行了进一步的处理,使得网络能够感知到实例Mask的完整性,最终的Mask分数能够反映出实例分割假设的实际质量。这是提高实例分割性能的一个新方向。
3.Method
3.1. Motivation
在当前的Mask R-CNN框架中,检测的分数(即假设由分类得分中最大的元素决定。由于背景杂波、遮挡等问题,分类分数可能较高,但Mask质量较低,如图1所示。为了定量分析这个问题,我们将mask R-CNN的vanilla mask Score 与预测的mask及其ground truth mask (MaskIoU)之间的实际IoU进行比较。具体来说,我们使用Mask R-CNN和ResNet-18 FPN对COCO 2017验证数据集进行实验。然后选取MaskIoU和classification scores均大于0.5的Soft-NMS检测假设。MaskIoU在分类分数上的分布情况如图2 (a)所示,每个MaskIoU区间的平均分类分数如图2 (c)所示为蓝色,说明在Mask R-CNN中,分类分数与MaskIoU的相关性并不好。
在大多数实例分割评估协议中,如COCO,检测假设的MaskIoU低,分数高是有害的。在许多实际应用中,确定检测结果何时可信以及何时不可用[29]非常重要。这促使我们根据MaskIoU为每一个检测假设学习一个校准过的Mask Score 。在不丧失通用性的情况下,我们研究了Mask R-CNN框架,并提出了Mask Score R-CNN (MS R-CNN),这是一个带有附加MaskIoU模块的MaskR-CNN,该模块学习Mask对齐的Mask评分。我们框架的预测Mask得分如图2 (b)所示,橙色直方图如图2 (c)所示。
3.2. Mask scoring in Mask R-CNN
Mask scoring R-CNN概念简单:Mask RCNN带MaskIoU Head,将实例特征与预测Mask一起作为输入,预测输入Mask与ground truthMask之间的IoU,如图3所示。我们将在下面的小节中介绍我们的框架的详细信息。
Mask R-CNN:我们首先简要回顾一下Mask R-CNN[15]。在Faster R-CNN[33]之后,Mask R-CNN由两个阶段组成。第一阶段是区域建议网络(RPN)。它提出了候选对象边界框,而不考虑对象类别。第二阶段称为R-CNN阶段,对每个proposal使用RoIAlign提取特征,并进行proposal分类、包围盒回归和Mask预测。
Mask scoring:我们将·Smask定义为预测Mask的评分。理想Smask等于预测Mask与其匹配的ground truth Mask之间的像素级IoU,之前称为MaskIoU。理想的Smask也应该只对ground truth类别有正的值,对其他类为零,因为Mask只属于一个类。这要求Mask Score 在两项任务上都能很好地工作:将Mask分类到正确的类别,以及对前景对象类别的Mask进行回归。
仅仅使用一个目标函数来训练这两个任务是很困难的。为了简化,我们可以将mask score学习任务分解为mask分类和IoU回归,对于所有对象类别,记为 smask = scls ·siou 。Scls侧重于对proposal进行分类,Siou侧重于回归MaskIoU。
对于scls, scls的目标是对属于哪个类的proposal进行分类,这已经在R-CNN阶段的分类任务中完成。所以我们可以直接取相应的分类分数。回归siou是本文的研究目标,下文将对此进行讨论。
MaskIoU head:MaskIoU head的目的是将预测Mask与其Mask gt之间的iou进行回归。我们将RoIAlign层的feature与预测的mask连接起来作为MaskIoU head的输入。在拼接时,我们使用kernel size为2,stride为2的max pooing layer使得预测的mask具有与RoI相同的空间尺寸。对于ground truth类,我们只选择返回MaskIoU(对于测试,我们选择预测的类),而不是所有的类。我们的MaskIoU head由4个卷积层和3个全连通层组成。对于4个卷积层,我们按照MaskIoU head,将所有卷积层的核大小和滤波器个数分别设置为3和256。对于3个完全连接的(FC)层,我们遵循RCNN head,将前两个FC层的输出设置为1024,最后一个FC层的输出设置为类的数量。
Training:对于MaskIoU head的训练,我们使用RPN proposal作为训练样本。训练样本在proposal box和匹配的ground truth box之间需要有一个IoU大于0.5,与Mask R-CNN的Mask head的训练样本相同。为了生成每个训练样本的回归目标,我们首先得到目标类的预测Mask,并使用0.5的阈值对预测Mask进行二值化,然后利用二进制Mask与其匹配的ground truth之间的Mask作为目标Mask。我们使用l2损失来回归MaskIoU,损失权重设置为1。将提出的MaskIoU head集成到Mask R-CNN中,对整个网络进行端到端训练。
Inference:在推理过程中,我们只使用MaskIoU head对R-CNN生成的分类分数进行校正。具体假设Mask R-CNN的R-CNN阶段输出N个边框,其中选取SoftNMS[2]后的top-k(即k = 100)计分框。然后将top-k盒输入MaskIoU head,生成多类Mask。这是标准的Mask R-CNN推断过程。我们也遵循这个过程,并输入top-k目标Mask来预测Mask。将预测的Mask与分类分数相乘,得到新的校准Mask分数作为最终Mask置信度。
4.Experiments
所有实验均在COCO数据集[26]上进行,对象类别80个。我们遵循COCO 2017设置,使用115k图像训练分割进行训练,5k验证分割进行验证,20k测试开发分割进行测试。我们使用COCO评估指标AP(平均超过IoU阈值)报告结果,包括AP@0.5、AP@0.75和APS、APM、APL(不同规模的AP)。AP@0.5(或AP@0.75)表示使用IoU阈值0.5(或0.75)来确定在评估中预测的边框或Mask是否为正。除非特别说明,AP使用mask IoU进行评估。
1. Implementation Details
我们使用复制的Mask R-CNN进行所有实验。我们使用基于ResNet-18的FPN网络进行消融研究,使用基于Faster RCNN/FPN/DCN+FPN[9]的ResNet-18/50/101与其他基线结果进行比较。对于resnet - 18fpn,输入图像将大小调整为短轴为600px,长轴为最大1000px,以便进行培训和测试。与标准FPN[25]不同,ResNet-18中RPN方案和feature extractor只使用C4, C5。对于ResNet-50/101,输入图像的短轴调整为800px,长轴调整为1333px,用于训练和测试。ResNet-50/101的其余配置遵循检测器[13]。我们对所有网络进行18次训练,在14次和17次训练后,学习率降低0.1倍。使用动量0.9同步SGD作为优化器。在测试中,我们使用SoftNMS并保留每个图像的前100分检测。
2. Quantitative Results
我们在ResNet-18/50/101等不同的backbone网和更快的R-CNN/FPN/DCN+FPN[9]等不同的框架上报告了我们的结果,证明了我们方法的有效性。结果如表1、表2所示。我们使用APm报告实例分割结果,APb报告检测结果。我们报告复制的Mask R-CNN结果和Mask R-CNN结果。如表1所示,与Mask R-CNN相比,我们的Mask R-CNN对backbone网不敏感,能够在所有backbone网上实现稳定的改善:我们的Mask R-CNN能够得到显著的改善(约1.5 AP)。特别是对于AP@0.75,我们的方法可以将基线提高2个点左右。表2表明,我们的Mask R-CNN对不同的框架具有鲁棒性,包括更快的R-CNN/FPN/DCN+FPN。此外,我们的Mask R-CNN不影响边框检测性能;实际上,它略微提高了边界框检测性能。test-dev的结果如表3所示,仅报告实例分割结果。
3. Ablation Study
我们对COCO的评价方法进行了综合评价2017验证集。我们使用ResNet-18 FPN进行所有消融研究实验。
The design choices of MaskIoU head input:
我们首先研究MaskIoU head的设计选择输入,Mask的融合预测分数地图(28×28×C)从mask head和RoI特征。图4所示为几种设计方案,说明如下:
(a)目标mask拼接RoI特征:取目标类的分数映射,最大合并,与RoI特征拼接。
(b)目标mask乘以RoI特征:取目标类的分数图,最大合并,与RoI特征相乘。
(c)所有蒙版连接RoI特性:所有c类蒙版分数映射都是max-pooled并连接RoI特征。
(d)目标mask连接高分辨率RoI特征:分数的地图目标类被连接和28×28 RoI特征。
结果如表4所示。我们可以看到mask head的性能对不同的融合mask预测和RoI特征的方法是鲁棒的。在各种设计中都可以观察到性能的提高。由于将目标分数图和RoI特性连接起来可以得到最好的结果,所以我们将其作为默认选择。
The choices of the training target:
如前所述,我们将mask score learning任务分解为mask classification和MaskIoU regression。有可能直接学习蒙版分数吗?此外,RoI可能包含多个类别的对象。我们应该学习所有类别的MaskIoU吗?如何设定MaskIoU head的培训目标还有待探索。培训目标有很多不同的选择:
1. 学习目标类别的MaskIoU,同时忽略建议中的其他类别。这也是本文默认的训练目标,也是这一段所有实验的对照组。
2. 学习所有类别的MaskIoU。如果某个类别没有出现在RoI中,则将其目标MaskIoU设置为0. 此设置表示仅使用回归进行预测MaskIoU,它要求回归者意识到没有不相关的类别。
3.学习所有正面类别的MaskIoU,其中正面类别指的是类别app
表5给出了上述训练目标的结果。通过对比设置1和设置2,我们可以发现所有类别的训练MaskIoU(回归仅基于MaskIoU预测)都会显著降低性能,这验证了我们认为使用单一目标函数进行训练分类和回归是困难的观点。
设置3的性能不如设置1,这是合理的,因为所有正面类别的回归MaskIoU会增加MaskIoU head的负担。因此,学习目标类别的MaskIoU是我们的默认选择。
How to select training samples:
由于所提出的MaskIoU head是建立在Mask R-CNN框架之上的,所以根据Mask R-CNN的设置,MaskIoU head的所有训练样本都有一个大于0.5的box-level IoU,其ground truth boundary box。然而,他们的Mask不能超过0.5。给定一个阈值τ,我们使用的样本MaskIoU大于τ训练MaskIoU head。表6显示了结果。结果表明,所有实例的训练效果最好。
4. Discussion
在本节中,我们将首先讨论预测的mask质量,然后研究Mask Score R-CNN的上界性能,如果预测的最后分析了mask head的计算复杂度。在讨论中,所有结果在COCO 2017验证集上同时使用weak backbone网,即, ResNet-18 FPN和强大的weak backbone网,即resnet - 101 DCN+FPN。
The quality of the predicted MaskIoU:
我们使用groud truth与预测mask之间的相关系数来衡量我们预测的质量。回顾我们的测试过程,我们根据分类分数选择SoftNMS后的前100个评分框,将检测到的框输入mask head,得到预测mask,然后使用预测mask和RoI特性作为Mask head的输入。将mask head输出和分类分数进一步整合到最终mask分数中。
在COCO 2017验证数据集中,我们为每张图像保留100张预测MaskIoU,从所有5000张图像中收集50万张预测。我们在图5中绘制了每个预测及其对应的基本事实。我们可以看到,MaskIoU预测与它们的ground truth有很好的相关性,尤其是对于MaskIoU较高的预测。ResNet-18 FPN和ResNet-101 DCN+FPN骨干网预测结果与groud truth的相关系数均在0.74左右。结果表明,预测的质量对backbone网的变化不敏感。这一结论也与表1一致。由于之前没有对MaskIoU进行预测的方法,我们参考了之前[19]对IoU边界框进行预测的工作。[19]得到的相关系数为0.617,低于我们的相关系数。
The upper bound performance of MS R-CNN:
在这里,我们将讨论方法的上界性能。对于每个预测的Mask,我们可以找到匹配的ground truthMask;然后我们用ground truth MaskIoU来代替ground truth MaskIoU大于0时的预测MaskIoU。结果如表7所示。结果表明,Mask Score R-CNN始终优于蒙版R-CNN。与理想的Mask Score R-CNN预测相比,实际Mask Score R-CNN仍有提高的空间,ResNet-18 FPNb backbone net有2.2%的AP, ResNet-101 DCN+FPNb backbone net有2.6%的AP。
Model size and running time:
我们的MaskIoU head每套方案有0.39G的FLOPs, Mask head每套方案有0.53G的FLOPs。我们使用一个TITAN V GPU来测试速度(秒/图像)。对于ResNet-18 FPN, Mask R-CNN和MS R-CNN的速度都在0.132左右。ResNet-101 DCN+FPN Mask R-CNN和MS R-CNN的速度都在0.202左右。Mask Score R-CNN中mask head的计算成本可以忽略不计。
Conclusion
本文研究了实例分割Mask的计分问题,提出了Mask计分RCNN。通过在Mask R-CNN中添加一个Mask head,几十个Mask与MaskIoU对齐,这在大多数实例分割框架中通常被忽略。所建议的Mask head非常有效且易于实现。在COCO的基准测试中,大量的结果显示Mask对R-CNN的评分一致且明显优于Mask R-CNN。它还可以应用于其他实例分割网络中,获得更可靠的Mask分数。我们希望我们的简单有效的方法可以作为一个基准,并帮助未来的实例分割任务的研究。
网友评论