1

在聊Feature Pyramid Networks(FPN)和Region Proposal Networks(RPN)之间先熟悉一下Faster R-CNN的背景。
Faster RCNN分为四个工作:

  • Conv Layers。用几组基础的conv+relu+maxpooling层提取图像的feature map。
  • Region Proposal Networks。RPN网络用于生成region proposals。该层通过softmax判断anchors属于positive或者negative,再利用bounding box regression修正anchors获得精确的proposals。
  • Roi Pooling。该层收集输入的feature maps和proposals,综合这些信息后提取proposal feature maps,送入后续全连接层判定目标类别。
  • Classification。利用proposal feature maps计算proposal的类别,同时再次bounding box regression获得检测框最终的精确位置。


one stage算法如yolo系列相比,Faster RCNN做为典型的two stage算法最大的区别就在于其先通过RPN找到proposal,在对proposa分类,经历了两个网络。

RPN

RPN网络的任务是找到proposals输入:feature map。输出:proposal。
总体流程:生成anchors -> softmax分类器提取positvie anchors -> bbox reg回归positive anchors -> Proposal Layer生成proposals
image.png

1.softmax判定positive与negative

在feature map上,设置了密密麻麻的候选Anchor。然后用cnn去判断哪些Anchor是里面有目标的positive anchor,哪些是没目标的negative anchor。所以,RPN做的只是个二分类!

2.对proposals进行bounding box regression

图中红框为positive anchors,绿框为GT。anchor和GT的梯度可以有dx, dy, dw, dh四个变换表示,bounding box regression通过线性回归学习到这个四个梯度,使anchor不断逼近GT,从而获得更精确的proposal。

FPN

特征金字塔(Feature Pyramid Networks)是目前用于目标检测、语义分割、行为识别等方面比较重要的一个部分,对于提高模型性能具有非常好的表现。

不同大小的目标都经过了相同的降采样比例后会出现较大的语义代沟,最常见的表现就是小目标检测精度比较低。特征金字塔具有在不同尺度下有不同分辨率的特点,不同大小的目标都可以在相应的尺度下拥有合适的特征表示,通过融合多尺度信息,在不同尺度下对不同大小的目标进行预测,从而很好地提升了模型的性能。FPN输入image,输出多尺度的feature map。

特征金字塔的两种构建方式

  • 通过多次降采样生成不同分辨率的层构成,这种方式应用比较广,比较常见的应用有SSD, FPN, YOLO_v3, ...此外还有很多。
    image.png
  • 通过多条具有不同空洞率的空洞卷积的支路来构建。目前这方面的应用有ASPP, RFP等。
    image.png
    上图分别是FPN和ASPP的构建方式。这是两种基础的特征金字塔,根本目的都是为了更好的融合信息生成更好的feature map。以FPN在Faster RCNN里的应用为例,FPN产生的每一个尺度的feature map都要送进RPN做一次proposal的提取。ASPP将多个支路进行concate,输出single feature map。
    之后学者对特征金字塔进行多方面的改进,这里不做一一赘述。

    Reference

    1.FPN: https://arxiv.org/abs/1612.03...
    2.Faster R-CNN: https://ieeexplore.ieee.org/s...
    3.https://zhuanlan.zhihu.com/p/...


anie
4 声望0 粉丝

引用和评论

0 条评论