目标检测模型Mask R-CNN

简介

Mask R-CNN由Faster R-CNN拓展而来,可以同时在一个网络中做目标检测和实例分割,特征提取采用ResNet-FPN的架构,另外多加了一个Mask预测分支,并引入了RoI Align代替Faster RCNN中的RoI Pooling。

特点:Mask预测分支

我们知道在Faster R-CNN中,对于每个ROI(文中叫candidate object)主要有两个输出,

  • 一个输出是分类结果,也就是预测框的标签;

  • 一个输出是回归结果,也就是预测框的坐标offset。

而Mask R-CNN则是添加了第三个输出:object mask,也就说对每个ROI都输出一个mask,该支路是通过FCN网络(如上图中的两个卷积层)来实现的。以上这三个输出支路相互之间都是平行关系,相比其他先分割再分类的实例分割算法相比,这种平行设计不仅简单而且高效。

特点:RoIAlign

RoIPool的目的是从RPN(区域候选网络)确定的ROI中导出较小的特征图(eg 7x7),ROI的大小各不相同,但是RoIPool后都变成了7x7大小。RPN网络会提出若干RoI的坐标以[x,y,w,h]表示,然后输入RoI Pooling,输出7x7大小的特征图供分类和定位使用。

问题就出在RoI Pooling的输出大小是7x7上,如果RON网络输出的RoI大小是8*8的,那么无法保证输入像素和输出像素是一一对应,首先他们包含的信息量不同(有的是1对1,有的是1对2),其次他们的坐标无法和输入对应起来。这对分类没什么影响,但是对分割却影响很大。RoIAlign的输出坐标使用插值算法得到,不再是简单的量化;每个grid中的值也不再使用max,同样使用差值算法。

优点

  • 精准:识别精度高,分割准确

  • 高效:掩码层只给整个系统增加一小部分计算量,运行速度很快

  • 泛化性强:使用FasterRCNN的架构,可以兼容泛化到其他任务上

适用领域

广泛应用于目标检测、实例分割等领域。

  • 在COCO比赛目标检测(object detection)、实例分割(instance segmentation)和行人关键点检测(person keypoint detection)任务上获得第一名

参考文献

@article{He_2017,
   title={Mask R-CNN},
   journal={2017 IEEE International Conference on Computer Vision (ICCV)},
   publisher={IEEE},
   author={He, Kaiming and Gkioxari, Georgia and Dollar, Piotr and Girshick, Ross},
   year={2017},
   month={Oct}
}