Anchors以三种尺度128128、252256、512*512 ) 三种纵横比) 1:1、1:2、2:1 ),如下图所示,在RPN网络中的特征地图中
然后,根据图像的大小计算滑动窗口的中心点与原区域对应的中心点,根据中心点和size可以得到滑动窗口的位置和原位置的映射关系,根据该原位置与Ground Truth的重复率贴上正负的标签,在RPN上贴上其aan
2、RPN网络
RPN网络前面的五楼租用了ZF网络。 把这个网络的结构图往下切,分析为什么是这样的。
1、首先,输入图像大小为2242243 该3为3通道,即RGB种)。
2、且第一层卷积核维数为773*96。 因此,请认识到卷积核都是四维的。 在caffe的矩阵计算中就是这样实现的。 )
3、因此,conv1得到的结果来自11011096 该110为) 224-7 pad )/2 1。 这个pad是常见的填充,即在图像周围补充像素。 这是为了能被整除,因为用2整除是图中的stride。 这种计算方法在上面建议的文档中有说明和推导)
4、然后进行一次池化,得到pool1。 由于池化核的大小为33,因此池化后的图像的维度为5555*96110-3pad )/2 1=55 ) ) ) ) ) ) ) 652 )
5、然后接下来再折叠一次。 这次卷积核的维数为5596256,得到conv2:2626*256;
6、因为接下来是类似的过程,所以不详细地一步一步计算。 请注意,有不能除法的地方。 作者正在填充。 在caffe的prototxt文件中,可以看到每一层的pad大小。
7、最后作者取了conv5的输出,也就是1313256发送到RPN网络的;
让我们来看看RPN部分的结构:
1、前面指出,这个conv feature map的维度是1313256;
2、作者在文章中,滑动窗口大小为33,那么如何得到这个256-d的向量呢? 这很简单。 有了四维卷积核如33256256 ),每个3*3滑动窗口都可以卷积到256维向量中。
在这里读者要注意哦。 作者在这里描绘的形象只是针对滑动窗口的; 在实际实现中,我们有很多滑动窗口,所以我们可能很清楚得到的不是一维256-d向量,而是写为for循环实际上还是三维矩阵数据结构)进行滑动窗口
3、然后k=9,所以cls layer是18个输出节点。 在中,在256-d和cls层之间使用1125618的卷积核心可以获得cls层。 当然,这个1125618的卷积核心是大家平时理解的全连接; 因此,全连接是卷积操作的特殊情况卷积核大小为1*1时);
4、reg layer也一样。 由于reg layer的输出为36个,因此对应的卷积核为11256*36。 这样可以得到reg layer的输出。
5、然后cls layer和reg layer跟随自己的损失函数,给出损失函数值,同时根据求导结果给出反向传播的数据