image.png
    image.png
    faster rcnn有两个地方会用到nms,第一个地方在rpn生成候选区域的时候,它会把rpn输出的分类分支、回归分支和anchor进行解码,得到候选框,然后再做一些筛选,筛选之后会得到一些box跟score;第二个地方会在bbox head的阶段,也就是最后的预测阶段,它会把head部分的分类分支、回归分支和输入的roi解码得到box,输入nms中。
    注意:rpn和bbox head是同时(一起)训练的,rpn和bbox head各自都有分类分支和回归分支,然后这四个分支的loss加和,一起优化的。

    事实上,上面faster rcnn的各个组件都有一定的优化空间,因此衍生了许多新模型。
    image.png

    image.png
    image.png
    “检测不同大小尺度物体的能力”:换句话说,怎么在一张图上同时检测出大象和老鼠,不要和512512,368368这种不同尺度混淆了,不是一个意思。

    image.png
    将resnet的每个小层从浅到深分别命名为c2到c5。

    image.png
    因为fpn输出的是多个特征图,所以rpn和roi align的处理方式也要发生变化。

    image.png
    在faster rcnn当中,anchor是在一张特征图上产生的;现在由于fpn会输出多张特征图,每张特征图的尺度还不一样,所以可以将面积不同的anchor去分配到不同的尺度上。也就是说,fpn的输出层p2到p6,每层只生成一种面积的anchor,譬如p2只生成32*32的anchor,长宽比有1:1,1:2,1:3三种。p6是直接通过p5下采样得到的。

    image.png
    这里不同的rpn head的权重是共享的。作者对比过不共享权重的方式,发现精度是相似的,也可以说明fpn产生的特征信息是相似的。

    image.png
    把roi分配到不同的层级上,各自做自己的roi align

    image.png