作者的本意说白了就是:
让 ‘生成RP’ 这个task也能享受到GPU的利好。
RP原本主要用SS (Selective Search) 来生成,只能在CPU上跑。一张图片生成~2,000个proposal,效率0.5fps,实在太慢。 想让GPU来揽下这个活儿,就必须把问题转换成GPU能接受的任务形式:network。
对应的,设计出来的network自然就叫 RPN (Region Proposal Network) 了。 RPN抱上了GPU的大腿,每张图片还是生成~2,000个proposal,但是效率飞跃到了100fps。
以下是我画的Faster R-CNN结构:
RPN的本质是 “ 基于滑窗的无类别object检测器 ” 。
以下是我画的RPN结构:
RPN的运用使得region proposal的额外开销就只有一个两层网络。 从此,“生成RP”的市场被RPN完全垄断了。 至于one-stage系,它们压根不需要生成RP,自然也就从未引进RPN。
Note:
没有了SS,network要如何“从无到有”地生成~2,000个proposal呢?RBG大神想到了在输入RPN的feature map (起初是topmost,后来变成multi-scale) 上穷举出anchor。
Note:
后来的SSD承接了Faster R-CNN的设计,选用的“anchor套餐”和Faster R-CNN不一样:
“anchor套餐” | 生成方式 | 生成位置 | 生成anchor数 | k值 |
---|---|---|---|---|
Faster R-CNN 的选择 | conv:3×3 | conv5_3 | k⋅W⋅Hk⋅W⋅Hk\cdot W\cdot H | 3×3=9 |
SSD 的选择 | conv:3×3(前五层)、conv:1×1(第六层) | conv4_3、fc7、conv8_2、conv9_2、conv10_2、conv11_2 | k⋅W⋅Hk⋅W⋅Hk\cdot W\cdot H | 6(第二~四层)、4(第一、五、六层) |
从multi-scale的角度看:
Faster R-CNN一共有4个loss,包括:
RPN的出现,使得SS走入历史。
speed上:
accuracy上:
Faster R-CNN将Fast R-CNN中的“网络化”趋势做到了极致,实现了“All in one network”。
[1] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks