美文网首页
Faster R-CNN

Faster R-CNN

作者: 深度厌学 | 来源:发表于2017-07-09 17:54 被阅读0次

    Fast R-CNN提出后,RP的生成成为了计算瓶颈(SS在CPU下需要2s)。Faster R-CNN中的RPN网络就是解决这个问题。

    RPN

    用n * n(3 * 3)大小的窗口在conv 特征映射上滑动,每个窗口生成一个低维向量(256-d for ZF and 512-d for VGG)。这向量后接两个并行的全连接层,一个是分类层(2k维,2类,9个anchor),一个是回归层(4k维,(k=9, 3 * 3, 3尺度,3长宽比))

    由于窗口是滑动的,参数也是共享的,所以整个过程可以用全卷积来实现:

    conv(3,3,512,1) -> conv(1,1,18,1)和conv(1,1,36,1)

    损失函数 

    称anchor是正的,若与某个GT的IOU是最高的或大于0.7;

    称anchor是负的,若与所有的GT的IOU都小于0.3;

    其余的anchor非正非负,损失函数不计算这些anchor。

    注意这个和Fast R-CNN的定义不一样。

    p是预测的包含物体的概率值,p*=1 if anchor 是正 else 0

    Ncls=256(batch size), Nreg~2400(anchor size),λ=10,Lreg=R(t-t*),R是Smooth L1.


    优化

    每个batch(256)的anchor都来自同一张图片,正:负 = 1:1,如果正样本少于128,则用负样本补足。


    Faster R-CNN训练

    1. RPN训练

    2. 使用RPN得到的框训练Fast R-CNN

    3. 将Fast R-CNN的卷基层权重赋予 RPN的卷基层权重,只调整RPN独有层权重。

    4. 固定Fast R-CNN的共享层, 只FT全连接层权重。

    实现细节

    1. 将同比例放到图片,使得最短边s = 600。

    2. 出于速度和准确率的权衡,训练和测试都是单尺度的。

    3. 三尺度(128 * 128,256 * 256, 512 * 512),三长宽比(1:1, 1:2, 2:1)。对于尺度大于感受野,文中的解释是:人能在物体中部可见的情况下,大致推断出该物体的类别

    4. 训练时不考虑超出边界的anchor,因为如果把这些anchor加到loss里,会导致训练不收敛。测试的时候如果anchor超出边界,就把它们裁剪至边界。

    5. 对RPN提出的RP进行NMS,阈值是0.7,这样就剩下2K左右的RP,然后取top-N(300)来检测。

    实验

    参考文献

    1. Faster R-CNN [code]

    2. Fast R-CNN

    相关文章

      网友评论

          本文标题:Faster R-CNN

          本文链接:https://www.haomeiwen.com/subject/qtoshxtx.html