论文地址:https://arxiv.org/abs/1712.00726
文章内容:
-
论文总览
-
算法要点
-
双线性插值
论文总览:
Mask R-CNN是在Faster R-CNN基础上加了一个分支,来预测ROI的分割mask,是与分类和回归分支并列的分支。主要的一个改进是将ROI Pooling改为ROI Align,提升了mask的准确率。
算法要点:
Mask R-CNN分两个阶段:第一阶段由RPN提出候选框,第二阶段是做分类、回归、分割。
Loss:
多任务损失函数
前两个损失函数与Faster R-CNN一样,L(mask)是平均二值交叉熵,分割分支对每个ROI会产生K*m*m个维的输出,在m*m分辨率上有K个二分类masks,每个像素点都应用了sigmoid,这样的好处是为每个类别都产生mask,不会在类别之间产生竞争,互不干涉。需要注意的是,计算loss的时候,并不是每个类别的sigmoid输出都计算二值交叉熵损失,而是该像素属于哪个类,哪个类的sigmoid输出才要计算损失。并且在测试的时候,是通过分类分支预测的类别来选择相应的mask预测。这样,mask预测和分类预测就彻底解耦了。
ROI Align:
Faster R-CNN存在的问题是:特征图与原始图像是不对准的(mis-alignment),所以会影响检测精度。而Mask R-CNN提出了RoIAlign的方法来取代ROI pooling,RoIAlign可以保留更精确的空间位置。
首先,我们为什么要用ROIAlign呢 ?
ROI Align 是在Mask-RCNN这篇论文里提出的一种区域特征聚集方式,很好地解决了ROI Pooling操作中两次量化造成的区域不匹配(mis-alignment) 的问题。
这两次量化分别为:
region proposal的x,y,w,hx, y, w, h