Mask R-CNN 论文翻译
摘要
提出了一个概念上简单,灵活和通用的目标分割框架。我们的方法有效地检测图像中的目标,同时为每个实例生成高质量的分割掩码。称为Mask R-CNN的方法通过添加一个与现有目标检测框回归并行的,用于预测目标掩码的分支来扩展Faster R-CNN。Mask R-CNN训练简单,相对于Faster R-CNN,只需增加一个较小的开销,运行速度可达5 FPS。此外,Mask R-CNN很容易推广到其他任务,例如,允许我们在同一个框架中估计人的姿势。我们在COCO挑战的所有三个项目中取得了最佳成绩,包括目标分割,目标检测和人体关键点检测。在没有使用额外技巧的情况下,Mask R-CNN优于所有现有的单一模型,包括COCO 2016挑战优胜者。我们希望我们的简单而有效的方法将成为一个促进未来目标级识别领域研究的坚实基础。我们稍后将提供代码。
1. Introduction
目标检测和语义分割的效果在短时间内得到了很大的改善。在很大程度上,这些进步是由强大的基线系统驱动的,例如,分别用于目标检测和语义分割的Fast/Faster R-CNN 和全卷积网络(FCN)框架。这些方法在概念上是直观的,提供灵活性和鲁棒性,以及快速的训练和推理。我们在这项工作中的目标是为目标分割开发一个相对有力的框架。
目标分割是具有挑战性的,因为它需要正确检测图像中的所有目标,同时也精确地分割每个目标。因此,它结合了来自经典计算机视觉任务目标检测的元素,其目的是对目标进行分类,并使用边界框定位每个目标,以及语义分割(通常来说,目标检测来使用边界框而不是掩码来标定每一个目标检测,而语义分割以在不区分目标的情况下表示每像素的分类。然而,目标分割既是语义分割,又是另一种形式的检测。)鉴于此,人们可能认为需要一种复杂的方法才能取得良好的效果。然而,我们的研究表明,使用非常简单,灵活和快速的系统就可以超越先前的最先进的目标分割结果。
我们称之为Mask R-CNN的方法通过添加一个用于在每个感兴趣区域(RoI)上预测分割掩码的分支来扩展Faster R-CNN [34],这个分支与用于分类和目标检测框回归的分支并行执行,如下图(图1)所示(用于目标分割的Mask R-CNN框架):
掩码分支是作用于每个RoI的小FCN,以像素到像素的方式预测分割掩码。Mask R-CNN易于实现和训练,它是基于Faster R-CNN这种灵活的框架的。此外,掩码分支只增加了很小的计算开销。
原理上,Mask R-CNN是Faster R-CNN的直接扩展,而要获得良好的结果,正确构建掩码分支至关重要。最重要的是,Faster R-CNN不是为网络输入和输出之间的像素到像素对齐而设计的。在《how RoIPool》 中提到,实际上,应用到目标上的核心操作执行的是粗略的空间量化特征提取。为了修正错位,我们提出了一个简单的,量化无关的层,称为RoIAlign,可以保留精确的空间位置。尽管是一个看似很小的变化,RoIAlign起到了很大的作用:它可以将掩码准确度提高10%至50%,在更严格的位置度量下显示出更大的收益。其次,我们发现解耦掩码和分类至关重要:我们为每个类独立地预测二进制掩码,这样不会跨类别竞争,并且依赖于网络的RoI分类分支来预测类别。相比之下,FCN通常执行每像素多类分类,分割和分类同时进行,基于我们的实验,对于目标分割效果不佳。
Mask R-CNN超越了COCO实例分割任务[28]上所有先前最先进的单一模型结果,其中包括COCO 2016挑战优胜者。作为副产品,我们的方法也优于COCO对象检测任务。在消融实验中,我们评估多个基本实例,这使我们能够证明其鲁棒性并分析核心因素的影响。
我们的模型可以在GPU上以200毫秒每帧的速度运行,使用一台有8个GPU的机器,在COCO上训练需要一到两天的时间。我们相信,快速的训练和测试速度,以及框架的灵活性和准确性将促进未来目标分割的研究。
最后,我们通过COCO关键点数据集上的人体姿态估计任务来展示我们框架的通用性。通过将每个关键点视为one-hot二进制掩码,只需要很少的修改,Mask R-CNN可以应用于人体关键点检测。不需要额外的技巧,Mask R-CNN超过了COCO 2016人体关键点检测比赛的冠军,同时运行速度可达5 FPS。因此,Mask R-CNN可以被更广泛地看作是用于目标级识别的灵活框架,并且可以容易地扩展到更复杂的任务。
我们将发布代码以促进未来的研究。
2. 主要贡献
Mask R-CNN是大神何凯明的力作,将Object Detection与Semantic Segmentation合在了一起做。它的贡献主要是以下几点。
- 第一,神经网络有了多个分支输出。Mask R-CNN使用类似Faster R-CNN的框架,Faster R-CNN的输出是物体的bounding box和类别,而Mask R-CNN则多了一个分支,用来预测物体的语义分割图。也就是说神经网络同时学习两项任务,可以互相促进。
- 第二,在语义分割中使用Binary Mask。原来的语义分割预测类别需要使用0 1 2 3 4等数字代表各个类别。在Mask R-CNN中,检测分支会预测类别。这时候分割只需要用0 1预测这个物体的形状面具就行了。
- 第三,Mask R-CNN提出了RoiAlign用来替换Faster R-CNN中的RoiPooling。RoiPooling的思想是将输入图像中任意一块区域对应到神经网络特征图中的对应区域。RoiPooling使用了化整的近似来寻找对应区域,导致对应关系与实际情况有偏移。这个偏移在分类任务中可以容忍,但对于精细度更高的分割则影响较大。
为了解决这个问题,RoiAlign不再使用化整操作,而是使用线性插值来寻找更精准的对应区域。效果就是可以得到更好地对应。实验也证明了效果不错。下面展示了与之前方法的对比,下面的图是Mask R-CNN,可以看出精细了很多。