Fater-RCNN

Faster-RCNN详解

1 Faster-RCNN

(1)输入测试图像; (2)将整张图片输入CNN,进行特征提取; (3)用RPN生成建议窗口(proposals),每张图片生成300个建议窗口; (4)把建议窗口映射到CNN的最后一层卷积feature map上; (5)通过RoI pooling层使每个RoI生成固定尺寸的feature map; (6)利用Softmax Loss(探测分类概率) 和Smooth L1 Loss(探测边框回归)对分类概率和边框回归(Bounding box regression)联合训练.

1.1 Conv layers

        包含了conv,pooling,relu三种层

1.1.1 VGG

        Conv  layers部分共有13个conv层,13个relu层,4个pooling层。这里有一个非常容易被忽略但是又无比重要的信息,在Conv  layers中:

        所有的conv层都是: kernel_size=3kernel\_size=3kernel_size=3 , pad=1pad=1pad=1 ,stride=1stride=1stride=1

        所有的pooling层都是: kernel_size=2kernel\_size=2kernel_size=2 , pad=0pad=0pad=0 , stride=2stride=2stride=2

Conv layers中的conv层不改变输入和输出矩阵大小

​​​​​​​1.2 Region Proposal Networks(RPN)

        遍历Conv layers计算获得的feature maps,为每一个点都配备这9种anchors作为初始的检测框,检测框不准确,还需要精修。 

        在原文中使用的是ZFmodel中,其Conv   Layers中最后的conv5层num_output=256,对应生成256张特征图,相当于一张feature   map每个点用256-D的特征表示。

        由于输入图像M=800,N=600,且Conv Layers做了4次Pooling,feature map的长宽为[M/16, N/16]=[50, 38] 在conv5之后,做了rpn_conv/3×3卷积,num_output=256,相当于每个点使用了周围3×3的空间信息,同时256-d不变,如图3红框,同时对应图4中的红框      中的3×3卷积

        假设一共有k个anchor,而每个anhcor要分foreground和background,所以cls=2k scores;而每个anchor都有[x, y, w, h]对应4个偏移量,所以reg=4k coordinates

第一个支路:18表示2∗92*92∗9,foreground和background,9个锚框

caffe的数据结构:blob=[batch_size, channelheightwidth]

reshape前在caffe blob中的存储形式为[1, 18, H, W] reshape后在caffe blob中的存储形式为[1, 2, 9*H, W],单独“腾空”出来一个维度以便softmax分类

经过softmax后再reshape恢复原状

第二个支路:36表示4∗94*94∗9,[x, y, w, h]对应4个偏移量,9个锚框

        其实RPN就是在原图尺度上,设置了密密麻麻的候选Anchor。然后用cnn去判断哪些Anchor是里面有目标的foreground     anchor,哪些是没目标的backgroud,仅仅是个二分类。

代码下载在附件

版权声明:本文为CSDN博主「郝源」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44710924/article/details/121910848

郝源

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

FPN 特征金字塔 理解

Feature Pyramid Networks 对于Faster Rcnn使用FPN,cocoAP提升2.3个点,pascalAP提升3.8个点 1*1的conv,调整通道数,原论文中

非极大值抑制 (Non-Maximum Suppression, NMS)

NMS 基本过程 当前的物体检测算法为了保证召回率,对于同一个真实物体往往会有多于 1 个的候选框输出。由于多余的候选框会影响检测精度,因此需要利用 NMS 过滤掉重叠的候选框,得到最佳的预测输出