目标检测论文解读11——Mask R-CNN
目的
让Faster R-CNN能做实例分割的任务。
方法
模型的结构图如下。
与Faster R-CNN相比,主要有两点变化。
(1) 用RoI Align替代RoI Pool。
首先回顾一下RoI Pool,流程为:将RPN产生的原图侯选框映射到CNNs输出的feature map上,显然原图比feature map大,所以映射后的像素坐标可能会有小数,这里的做法是用近邻插值法,通俗讲,坐标四舍五入。
而这种做法肯定会带来一些空间位置上的小误差,而我们后面的实例分割是逐像素的,接受不了这种误差,因此采用RoI Align,用双线性插值法替代近邻插值法(具体可以参考博客:https://zhuanlan.zhihu.com/p/49832888)
(2)添加了一个基于FCN的Mask分支,用来对feature map上的RoI进行实例分割。
经过RoI Align得到的feature map,经过几层卷积,最终得到一个m*m的二值特征图,object与background,逐像素分类即可。这里之所以采用FCN,是因为我们最终所做的实例分割,需要保留空间信息;如果最后一层接FC的话得到的就是一维向量。
总结
Mask R-CNN的实例分割效果很好,尤其对于那种目标偏小的图片效果也很好,主要是因为他是先通过前面的RoI Align把目标给框出来了,后面实例分割的话是在包含目标的小框中进行的。