深度学习 -- Faster rcnn 算法流程详解

本文详细介绍了Faster R-CNN目标检测算法的流程,包括CNN特征提取、RPN网络、ROI Pooling和分类器。重点阐述了卷积操作、Anchors的概念以及RPN网络的 bounding box regression。通过对算法的理解,有助于掌握目标检测的关键技术。
摘要由CSDN通过智能技术生成

      经典论文,后续很多论文以此为基础,所以搞懂流程比较重要,中间如果 有写的不对、有问题或者看不懂的地方,还望指正。如果有了新的理解,我会持续更新。

      Faster Rcnn是目前学术上用的非常多的目标检测算法,这里来认真的梳理一遍该算法的流程,主要看检测的部分。

      一、 网络结构:           

      这是faster rcnn的整个网络结构,一共有四个部分组成:

      1. CNN特征提取网络:

      2. RPN网络:

      3. ROI Pooling :

      4. classifier :

      想要把整个流程走下来,首先要理解几个必须知道的关键词:

      1.1 卷积操作(conv layer)

      何为卷积操作,看下图,图中有一个黄色的 3*3 的矩阵在绿色的矩阵上做滑窗,生成了粉色的计算结果,每一次计算都是一次卷积,这就是最简单的平面卷积,黄色的滑窗也被称为滤波器(filter)或者卷积核(Convolution kernel)。

      然后,卷积核的个数增加时,卷积的结果就等于卷积核的个数,例如 30*30*256 的 feature map 和 (3*3*256)*256作卷积,pading = 1 ,strip = 1 得到的结果仍然是30*30*256。

      1.2  anchors:

      anchors是一组由 rpn/generate_anchors.py 生成的矩形。是RPN网络提出的候选框的雏形,因为RPN网络最终要生成一定数量的 proposal(候选区域的提议),所以要先在CNN网络提取到的 feature map 上提出anchors,每个点上提出9个anchor。anchor的格式如下:

[[ -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.]]

# 从前到后分别是anchor左上角的坐标,右下角的坐标。
# 一共有9个矩形,3种形状,长宽比为大约为 1:1 ,2:1,1:2 三种,网络的多尺度方法就是通过anchors就引入的。

      然后来看这9个 anchors 的作用,下图是Faster RCNN论文中的原图,最下面的是卷积后得到的 feature maps ,为每一个点都配备这 9 种 anchors 作为初始的检测框。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值