RPN网络的anchor机制

RPN网络的Anchor机制涉及一组预定义的参考窗口,包括不同尺度和长宽比,用于匹配潜在的目标物体。Anchors作为模板,通过计算与Ground Truth的重合度进行正负样本标记,RPN网络以此学习检测物体。网络结构中,如ZF网络的前五层被复用,通过一系列卷积和池化操作得到特定尺寸的特征图,随后RPN部分使用3x3滑动窗口和全连接层进行分类和回归,输出物体框的预测。
摘要由CSDN通过智能技术生成

Anchors是一组大小固定的参考窗口:三种尺度{128128,252256,512*512}×三种长宽比{1:1,1:2,2:1},如下图所示,表示RPN网络中对特征图滑窗时每个滑窗位置所对应的原图区域中9种可能的大小,相当于模板,对任意图像任意滑窗位置都是这9中模板。

继而根据图像大小计算滑窗中心点对应原图区域的中心点,通过中心点和size就可以得到滑窗位置和原图位置的映射关系,由此原图位置并根据与Ground Truth重复率贴上正负标签,让RPN学习该Anchors是否有物体即可。

在这里插入图片描述

2、RPN网络

RPN网络前面的5层借用的是ZF网络,这个网络的结构图我截个图放在下面,并分析下为什么是这样子的;

在这里插入图片描述

1、首先,输入图片大小是 2242243(这个3是三个通道,也就是RGB三种)

2、然后第一层的卷积核维度是 773*96 (所以大家要认识到卷积核都是4维的,在caffe的矩阵计算中都是这么实现的);

3、所以conv1得到的结果是11011096 (这个110来自于 (224-7+pad)/2 +1 ,这个pad是我们常说的填充,也就是在图片的周围补充像素,这样做的目的是为了能够整除,除以2是因为2是图中的stride, 这个计算方法在上面建议的文档中有说明与推导的);

4、然后就是做一次池化,得到pool1, 池化的核的大小是33,所以池化后图片的维度是5555*96 ( (110-3+pad)/2 +1 =55 );

5、然后接着就是再一次卷积,这次的卷积核的维度是5596256 ,得到conv2:2626*256;

6、后面就是类似的过程了,我就不详细一步步算了,要注意有些地方除法除不尽,作者是做了填充了,在caffe的prototxt文件中,可以看到每一层的pad的大小;

7、最后作者取的是conv5的输出,也就是1313256送给RPN网络的;

我们看看RPN部分的结构:

在这里插入图片描述

1、前面我们指出,这个conv feature map的维度是1313256的;

2、作者在文章中指出,sliding window的大小是33的,那么如何得到这个256-d的向量呢? 这个很简单了,我们只需要一个33256256这样的一个4维的卷积核,就可以将每一个3*3的sliding window 卷积成一个256维的向量;

这里读者要注意啊,作者这里画的示意图 仅仅是 针对一个sliding window的;在实际实现中,我们有很多个sliding window,所以得到的并不是一维的256-d向量,实际上还是一个3维的矩阵数据结构;可能写成for循环做sliding window大家会比较清楚,当用矩阵运算的时候,会稍微绕些;

3、然后就是k=9,所以cls layer就是18个输出节点了,那么在256-d和cls layer之间使用一个1125618的卷积核,就可以得到cls layer,当然这个1125618的卷积核就是大家平常理解的全连接;所以全连接只是卷积操作的一种特殊情况(当卷积核的大小是1*1的时候);

4、reg layer也是一样了,reg layer的输出是36个,所以对应的卷积核是11256*36,这样就可以得到reg layer的输出了;

5、然后cls layer 和reg layer后面都会接到自己的损失函数上,给出损失函数的值,同时会根据求导的结果,给出反向传播的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值