赞
踩
Faster RCNN 组成
(1)基础特征提取网络(2)RPN (Region Proposal Network) (3)Fast-RCNN
共享:RPN和Fast-RCNN共享特征提取卷积层
思路:提取proposal + 分类
Faster RCNN 和 SPPNet
我们先整体的介绍下上图中各层主要的功能
RPN(Region Proposal Networks):
RPN网络主要用于生成 region proposals
首先生成一堆 Anchor box,对其进行裁剪过滤后通过softmax判断anchors属于前景(foreground)或者后景(background),即是物体or不是物体,所以这是一个二分类;同时,另一分支bounding box regression修正anchor box,形成较精确的proposal(注:这里的较精确是相对于后面全连接层的再一次box regression而言)
RPN网络为CNN后面接一个3*3的卷积层,再接两个1*1的卷积层(原文称这两个卷积层的关系为sibling),其中一个是用来给 softmax 层进行分类,另一个用于给候选区域精确定位。
代替之前的 search selective
Roi Pooling:
该层利用RPN生成的proposals和VGG16最后一层得到的feature map,得到固定大小的proposal feature map,进入到后面可利用全连接操作来进行目标识别和定位
输出候选区域所属的类,和候选区域在图像中的精确位置。
Multi-task Loss Function
多任务损失函数(Multi-task Loss Function)
Anchors的生成规则
经过Conv layers后,图片大小变成了原来的1/16
在生成Anchors时,我们先定义一个base_anchor,大小为1616的box
(因为特征图(6040)上的一个点,可以对应到原图(1000600)上一个1616大小的区域)
源码中转化为[0,0,15,15]的数组,参数ratios=[0.5, 1, 2],scales=[8, 16, 32]
先看[0,0,15,15],面积保持不变,长、宽比分别为[0.5, 1, 2] 产生的Anchors box
经过scales变化,即长、宽分别均为 (168=128)、(1616=256)、(16*32=512),对应anchor box如图
综合以上两种变换,最后生成9个Anchor box
最终base_anchor=[0,0,15,15]生成的9个Anchor box坐标如下:
[[ -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.]]
具体计算过程见 Pytorch - Anchor
这21600 个anchor怎么筛选呢??这就用到下面的 RPN 了
RPN
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。