理解用于目标检测的FPN

Understanding Feature Pyramid Networks for object detection (FPN)

本篇翻译仅供学习参考。严禁转载,严禁用于商业用途。

检测不同尺度的物体是一项挑战,尤其是对小物体。我们可以使用不同比例的相同图像的金字塔来检测物体。然而,多尺度图像的处理是费时的,内存要求太高,无法同时进行端到端训练。因此,我们可能只在推理中使用它来尽可能地提高准确性,特别是在不考虑速度的比赛中。或者,我们创建一个特征金字塔,并将其用于目标检测。然而,接近由低层结构组成的图像层的特征图对于精确的目标检测是无效的。
1
特征金字塔网络(FPN)是为这种金字塔概念而设计的一种特征提取器,具有精度高、速度快的特点。它代替了像Faster R-CNN检测器的特征提取器,生成了多个特征图层(多尺度特征图)。对目标检测,具有比常规特征金字塔更好信息质量。

Data Flow

2
FPN由自底向上和自顶向下两部分组成。自底向上路径是常用的特征提取卷积网络。当沿路径向上升时,空间分辨率下降。随着检测到更多的高级结构,每一层的语义值都会增加。
3
SSD从多个特征图中进行检测。但是,没有选择底层进行目标检测。它们的分辨率很高,但语义值不够高,不足以证明它们值得使用,因为速度下降是显著的。因此,SSD只使用上层进行检测,因此对小物体检测的性能要差得多。
4
FPN提供了一种自顶向下的方法来从语义丰富的层构建更高分辨率的层。
5
重新构建的层语义较强,但上下采样后的目标位置不精确。我们在重构层和相应的特征图之间添加横向连接,以帮助检测器更好的预测位置。它还充当了跳跃连接,让训练更容易(与ResNet类似)。
6

Bottom-up pathway

自底向上路径使用ResNet构建自底向上路径。它由许多卷积模块(convi,i等于1到5)组成,每个模块都有许多卷积层。当我们向上移动时,空间维度减少了1/2(即双倍步幅)。每个卷积模块的输出被标记为Ci,然后在后面的自顶向下路径中使用。
7

Top-down pathway

我们使用一个1×1卷积核将C5的通道深度降低到256-d来创建M5。这将成为第一个用于目标预测的feature map层。

当我们沿着自顶向下的路径下降时,我们使用最近邻上采样对上一层进行2倍上采样。我们再次对自底向上路径中对应的特征图进行1×1卷积。然后逐元素相加它们。我们对所有合并的层应用3×3卷积。该滤波器降低了当与上采样层合并时的混叠效果。
8
我们对P3和P2重复同样的过程。但是,我们在P2处停止,因为C1的空间维度太大。否则,它将大大拖慢速度。由于我们对每个输出特征图都使用相同的分类器和边界盒回归器,所以所有的金字塔特征图(P5、P4、P3和P2)都有256-d的输出通道。

FPN with RPN

FPN本身并不是一个目标检测器。它是一个与目标检测器一起工作的特征检测器。例如,我们使用FPN提取多个特征映射层,并将它们提供给RPN(使用卷积和锚的目标检测器)来检测物体。RPN对特征图进行3×3卷积,然后分别进行1×1卷积进行类预测和边界盒回归。这些3×3和1×1的卷积层称为RPN头。相同的头部应用于所有的特征图。
9

FPN with Fast R-CNN or Faster R-CNN

下面让我们快速浏览一下Fast R-CNN和Faster R-CNN数据流。它使用一个特征图来创建ROI。我们使用ROI和特征图层来创建要输入ROI pooling的feature patches。
10
在FPN中,我们生成了一个特征图金字塔。我们应用RPN(在前一节中描述的)来生成ROI。根据ROI的大小,选择最合适尺度的feature map层提取feature patches。
11
选取特征图的公式是基于ROI的宽度w和高度h。

k = ⌊ k 0 + l o g 2 ( w h / 224 ) ⌋ k = \lfloor k_0+log_2(\sqrt{wh}/224) \rfloor k=k0+log2(wh /224) Where k 0 = 4 k_0=4 k0=4 k k k P k P_k Pk层 在FPN中用于生成feature patch的

所以当k=3时,我们选择P3作为特征图。将它应用于ROI pooling然后将结果输入到Fast R-CNN头部(Fast R-CNN和Faster R-CNN的头部是相同的)来完成预测。

Segmentation

与Mask R-CNN一样,FPN也善于提取Mask进行图像分割。5×5个窗口在特征图上滑动,生成14×14段。稍后,我们合并不同尺度的Mask,以形成最终的Mask预测。
12

Results

将FPN放在RPN中可以将AR(平均召回率:捕获对象的能力)提高到56.3,比RPN基线提高8.0个点。在小对象上的性能提高了12.9个百分点。
13
基于FPN的Faster R-CNN在单个NVIDIA M40 GPU上用ResNet-50对每幅图像的运算时间达到0.148秒,而单尺度的ResNet-50基线运行时间为0.32秒。下面是使用Faster R-CNN的FPN的基线比较。(FPN为FPN中的那些额外层引入了少量额外成本,但在FPN具体实现中具有更轻的重量头。)
14
FPN对最先进的检测器非常有竞争力。事实上,它击败了2016年和2015年COCO挑战赛的冠军。
15

Lessons learned

以下是从实验数据中得到的一些教训。

  • 在单个高分辨率特征图上增加更多的anchor并不能提高精度。
  • 自顶向下路径恢复分辨率的同时保留丰富的语义信息。
  • 但是我们需要横向连接来添加更精确的物体空间信息。
  • 在COCO数据集上,自顶向下路径加上横向连接可以提高8个点的准确性。对于小物件,它提高了12.9点。

原文作者: Jonathan Hui

原文链接:<https://medium.com/@jonathan_hui/understanding-feature-pyramid-networks-for-object-detection-fpn-45b227b9106c

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值