Faster RCNN原理分析 :Region Proposal Networks详解

本文详细探讨了Faster RCNN中的关键组件,包括anchors的生成、foreground与background的softmax判定、bounding box regression的原理以及Proposal Layer的工作流程。通过分析ZF model的conv5层,解释了如何进行多通道图像卷积,以及在RPN中如何处理不同大小的anchors,最终筛选出高质量的proposals。
摘要由CSDN通过智能技术生成
缩进Region Proposal Networks是Faster RCNN出新提出来的proposal生成网络。其替代了之前RCNN和Fast RCNN中的selective search方法,将所有内容整合在一个网络中,大大提高了检测速度(语文水平差,所以历史科普请看其他文章T_T)。
缩进在正文前,还要多解释几句基础知识,已经懂的看官老爷跳过就好。
  1. 对于单通道图像+单卷积核做卷积,上一篇文章已经介绍了(参考上文图4);
  2. 对于多通道图像+多卷积核做卷积,计算方式如下:

图1 多通道+多卷积核做卷积示意图(摘自Theano教程)
缩进如图2,输入图像layer m-1有4个通道,同时有2个卷积核w1和w2。对于卷积核w1,先在输入图像4个通道分别作卷积,再将4个通道结果加起来得到w1的卷积输出;卷积核w2类似。所以对于某个卷积层, 无论输入图像有多少个通道,输出图像通道数总是等于卷积核数量!特殊的,对于多通道做1x1卷积,其实就是将输入图像于每个通道乘以卷积系数后加在一起。这样做的结果就是把原图像中本来各个独立的通道“联通”在了一起。

(一)anchors

缩进提到RPN网络,就不能不说anchors。所谓anchors,实际上就是一组由rpn/generate_anchors.py生成的矩形。直接运行generate_anchors.py得到以下输出:
[[ -84.  -40.   99.   55.]
 [-176.  -88.  191.  103.]
 [-360. -184.  375.  199.]
 [ -56.  -56.   71.   71.]
 [-120. -120.  135.  135.]
 [-248. -248.  263.  263.]
 [ -36.  -80.   51.   95.]
 [ -80. -168.   95.  183.]
 [-168. -344.  183.  359.]]
其中每行的4个值[x1,y1,x2,y2]代表矩形左上和右下角点坐标。9个矩形共有3种形状,长宽比为 大约为:width:height = [1:1, 1:2, 2:1]三种,如图2。实际上通过anchors就引入了检测中常用到的多尺度方法。

图2 anchors示意图
注:关于上面的anchors size,其实是根据检测图像设置的。在python demo中,会把任意大小的输入图像reshape成800x600(即上文中提到的M=800,N=600)。再回头来看anchors的大小,anchors中长宽1:2中最大为352x704, 长宽2:1中最大736x384, 基本是cover了800x600的各个尺度和形状。
那么这9个anchors是做什么的呢?借用Faster RCNN论文中的原图,如图3,遍历Conv layers计算获得的feature maps,为每一个点都配备这9种anchors作为初始的检测框。 这样做获得检测框很不准确,不用担心,后面还有2次bounding box regression可以修正检测框位置。

图3
解释一下上面这张图的数字。
  1. 在原文中使用的是ZF model中,其Conv Layers中最后的conv5层num_output=256,对应生成256张特征图,所以相当于feature map每个点都是256-d
  2. 由于输入图像M=800,N=600,且Conv Layers做了4次Pooling,feature map的长宽为[M/16, N/16]=[50, 38]
  3. 在conv5之后,做了rpn_conv/3x3卷积,num_output=256,相当于每个点使用了周围3x3的空间信息,同时256-d不变,如图3红框,同时对应图4中的
  • 10
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值