您的位置:首页 > 运维架构

faster-RCNN理解

2018-03-05 10:36 253 查看
RPN是regional proposal networks的缩写,是faster-RCNN结构中的一部分。
faster-RCNN由两个子网络构成。
第一个子网络RPN的作用是在给定图像上提取一定数量带有objectness(是否包含目标的置信度)。
第二个子网络直接利用fast-rcnn中的特征提取网络,用RPN获得的proposal替代fast-RCNN中selective search获取的proposal。
4k cordinates:每个窗口的坐标。这个坐标并不是anchor的绝对坐标,而是通过anchor回归groundtruth的位置所需要的偏差。

RPN网络的作用是输入一张图像,输出一批矩形候选区域,类似于以往目标检测中的Selective Search一步。网络结构是基于卷积神经网络,但输出包含二类softmax和bbox回归的多任务模型。网络结果如下(以ZF网络为参考模型):



其中,虚线以上是ZF网络最后一层卷积层前的结构,虚线以下是RPN网络特有的结构。首先是3*3的卷积,然后通过1*1卷积输出分为两路,其中一路输出是目标和非目标的概率,另一路输出box相关的四个参数,包括box的中心坐标x和y,box宽w和长h。

从卷积运算本身而言,卷积相当于滑窗。假如输入图像是1000*600,则经过了几次stride后,map大小缩小了16倍,最后一层卷积层输出大约为60*40大小。因此,在对60*40的map进行滑窗时,以中心像素为基点构造9种anchor映射到原来的1000*600图像中,映射比例为16倍。那么总共可以得到60*40*9大约2万个anchor

假如某anchor与任一目标区域的IoU>0.7,则判定为有目标。

RPN网络得到的大约2万个anchor不是都直接给Fast-RCNN,因为有很多重叠的框。文章通过非极大值抑制的方法,设定IoU为0.7的阈值,即仅保留覆盖率不超过0.7的局部最大分数的box(粗筛)。最后留下大约2000个anchor,然后再取前N个box(比如300个)给Fast-RCNN。Fast-RCNN将输出300个判定类别及其box,对类别分数采用阈值为0.3的非极大值抑制(精筛),并仅取分数大于某个分数的目标结果(比如,只取分数60分以上的结果)。

窗口分类和位置精修

分类层(cls_score)输出每一个位置上,9个anchor属于前景和背景的概率。
窗口回归层(bbox_pred)输出每一个位置上,9个anchor对应窗口应该平移缩放的参数(x,y,w,h)。
对于每一个位置来说,分类层从256维特征中输出属于前景和背景的概率;窗口回归层从256维特征中输出4个平移缩放参数。



在图5中,要注意,3*3卷积核的中心点对应原图(re-scale,源代码设置re-scale为600*1000)上的位置(点),将该点作为anchor的中心点,在原图中框出多尺度、多种长宽比的anchors。所以,anchor不在conv特征图上,而在原图上。对于一个大小为H*W的特征层,它上面每一个像素点对应9个anchor, 这里有一个重要的参数feat_stride = 16, 它表示特征层上移动一个点,对应原图移动16个像素点(看一看网络中的stride就明白16的来历了)。把这9个anchor的坐标进行平移操作,获得在原图上的坐标。之后根据ground truth label和这些anchor之间的关系生成rpn_labels。

9*4的矩阵值是如何产生的?,可参考如下网址:

http://blog.csdn.net/xzzppp/article/details/52317863



基尺寸为16*16,以(7.5,7.5)为圆心,分别以(128,256,512)1:1,1:2,2:1 ,9个尺寸标坐标。

根据以下代码先求出256等面积下2:1, 1:1 ,1:2的宽和高 (23*12,16*16,11*22)



根据以下公式,获得左上角和右下角的坐标,分别乘以8,16,32



举个例子:若是想得到2:1的128*128的四个坐标值,则:

x1= 7.5 – 0.5 *(23*8-1) = -84
y1= 7.5 – 0.5 *(12*8-1) = -40
x2= 7.5 + 0.5 *(23*8-1) = 99
y2= 7.5+ 0.5 *(12*8-1) = 55
解读loss_bbox层

http://blog.csdn.net/wfei101/article/details/77778462

loss_bbox评估检测框定位的损失函数,如下图所示:





VGG16中,13个卷积层的最后一层和RPN提取的区域都输入到RCNN中进行检测,如下图所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息