分割掩模 RCNN 和 FPN

5

我正在阅读 Facebook 研究团队的论文https://research.fb.com/wp-content/uploads/2017/08/maskrcnn.pdf

Mask RCNN 基于 Faster RCNN 检测器,但进行了一些改进,例如 FPN(特征金字塔网络)、ROI Align。相较于 ROI pooling,ROI Align 似乎更准确。但是,我不理解 FPN 和 Mask RCNN 中的掩码架构。事实上,FPN 可以在不同尺度下获得特征图,但从论文中的图像来看,我不明白他们是否只使用了 FPN 上的最后一个特征图。

enter image description here

所以,问题是:我们只使用RPN的最后一个特征图,然后使用一些卷积层来预测掩模(用于分割),还是我们也使用RPN的中间层?

1个回答

3

在Mask R-CNN的mask分支中,FCN使用由FPN产生的所有特征图。
这里是一个Mask R-CNN的实现示例。 下面是代码片段:

# Attach 3x3 conv to all P layers to get the final feature maps.
P2 = KL.Conv2D(256, (3, 3), padding="SAME", name="fpn_p2")(P2)
P3 = KL.Conv2D(256, (3, 3), padding="SAME", name="fpn_p3")(P3)
P4 = KL.Conv2D(256, (3, 3), padding="SAME", name="fpn_p4")(P4)
P5 = KL.Conv2D(256, (3, 3), padding="SAME", name="fpn_p5")(P5)
# P6 is used for the 5th anchor scale in RPN. Generated by
# subsampling from P5 with stride of 2.
P6 = KL.MaxPooling2D(pool_size=(1, 1), strides=2, name="fpn_p6")(P5)

# Note that P6 is used in RPN, but not in the classifier heads.
rpn_feature_maps = [P2, P3, P4, P5, P6]
mrcnn_feature_maps = [P2, P3, P4, P5]  <--------------


这里是作者使用FPN特征图的代码行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接