论文:Path Aggregation Network for Instance Segmentation
代码:https://github.com/ShuLiu1993/PANet
出处:CVPR2018 | 香港大学 北大 商汤 腾讯优图
一、背景
PANet 的动机:
- 低层特征的信息对高层也很重要,但传输路径很长,增加了传输准确定位信息的难度
- 每个 proposal 都是基于单层特征的 grid 预测的,缺失了其他层特征的信息
- Mask 的预测是基于单个层的,没有和其他更有力的特征结合
PANet 做了什么(前两点也适用于目标检测):
- 在 FPN 的后面增加了一个自底向上的路径:为了缩短信息传输路径,并强化低层特征的准确定位信息的作用,建立了一个自底向上的信息传输路径,融合方式如图 2(3x3-s=2 的 conv 进行下采样,然后后 P 进行逐点相加,之后再使用 3x3 conv 进行特征融合,增强表达能力,最后再使用 ReLU 进行非线性化,N2 直接复制 P2,N3-N5 使用如图 2 的融合方式)
- 增加了两个 shortcut 连接:图 1 中的绿色和红色线,
- 使用 adaptive pooling 为每个 proposal 都引入整个图的全局特征:为了恢复被打破的 proposal 和 all feature 之间的信息,使用了 adaptive pooling,为每个 proposal 都引入整张图的全局特征
- 为了从多方面捕捉 proposal 的特征,作者使用 tiny fully-commected layer 来强化 mask 的预测,和 Mask-RCNN 中的 FCN 互补
二、方法
2.1 Bottom-up Path Augmentation
高层的特征包含全局特征,低层的特征包含细节定位特征,所以 FPN 中的自顶向下的信息传输方式能够给低层特征引入全局信息,利于分类能力的提升。
PANet 认为如果使用从下到上的传输路径,则能够将底层的细节定位纹理信息传递到高层,所以,其建立了两个非常“干净”的旁侧路径:
- 图 1 所示绿色线,其包含的层数 < 10,将底层特征直接传递给高层
- 图 1 所示红色线,认为 FPN 传输的路径过长,100+ 层,所以直接传递
PANet 具体是怎么强化自己的特征传输的?
以使用 ResNet 为例,并且使用 FPN 输出的 P 2 P_2 P2 到 P 5 P_5 P5 层特征,PANet 在 FPN 的后面(图 1 中展示为右侧)增加了一个特征路径:
- 输入为 FPN 的 P 2 P_2 P2
- 然后逐步上采样(自底向上),并和 FPN 对应层的特征融合,每次上采样 2 倍,得到的特征表示为 N 2 N_2 N2 到 N 5 N_5 N5( P 2 P_2 P2 和 N 2 N_2 N2 其实是相同的特征)
- N i N_i Ni 会和 coarse 的 P i + 1 P_{i+1} Pi+1 融合,然后生成新的 N i + 1 N_{i+1} Ni+1
- 每个 N i N_i Ni 先经过 stride=2 的 3x3 卷积,然后和经过下采样的 P i + 1 P_{i+1} Pi+1 相加,相加后再经过 3x3 卷积,得到 N i + 1 N_{i+1} Ni+1
2.2 Adaptive Feature Pooling
FPN 中,根据 proposal 大小的不同,会被分配到不同分辨率的特征上去,这就导致小 proposal 被分配到低层去预测,大 proposal 被分配到高层去预测,但这并非最优的,假设两个 proposal 相差 10-pixel,就可以能被分配到不同吃的的特征图上去,但这两个目标可能非常相近。
此外,高层特征是由很大的感受野的,能够捕捉到更多的上下文信息,如果小 proposal 能够接收到这些信息的话,会有利于预测。低层特征会蕴含很多细节和定位特征,让大 proposal 接收到这些信息的话,也会有利于预测。
所以,PANet 中,将每个 proposal都提取了 pooling 特征,然后将他们聚合起来,这个过程称为 adaptive feature pooling。
怎么聚合呢?—— max 聚合,也就是在每个点上选择最大值
下图 3 中 level 1-4 表示 low-to-high levels:
- 蓝线表示小 proposal,其接近 70% 的特征都来自高层特征
- 黄线是大 proposal,50%+ 的特征是从其他低层 pooled 得到的
- 这也说明了不同层的特征聚合对提升准确性很有必要
三、效果