论文阅读: Fast R-CNN

Introduction

structure层面

论文中给出了Fast R-CNN的大致结构。需要注意的是,右半边的结构图(灰底色)中,黑框表示operation红框表示output
这里写图片描述

我画了一个流程图,用来解释Fast R-CNN的形成:
这里写图片描述

如图所示,R-CNN留下了两大问题亟待后人解决:

  1. feature map不共享;
  2. mutli-stage (特征抽取、SVM分类、location回归) 太复杂太costly。

第一个问题,被前辈SPPNet通过 共享卷积 (本质上就是共享特征提取的结果) 解决了。
Fast R-CNN继承了SPPNet这一思想,并把SPPNet的SPP layer改进为了RoI Pooling。

Note

  • SPP layer是在RP上做3-stage (每个scale宽高比相等但 H × W H×W H×W大小不等) 的average pooling;RoI Pooling将之简化为1-stage的max pooling。
  • 由于SPP layer有着明显的缺陷——pooling后得到的一根根tensor并没有按原先的位置排放成阵列,而是直接头尾相接,从而放弃了重要的位置信息,对RoI的分类不利。Fast R-CNN对此进行了修正。

针对第二个问题,特征抽取网络、SVM分类器、location回归器在Fast R-CNN中被整合到了同一个深度学习网络中,从此可以便捷快速地一起训练了。

loss层面

L l o c L_{loc} Lloc :由R-CNN、SPPNet时代沿用的 L 2 L_2 L2 演化为了 S m o o t h   L 1 Smooth\ L_1 Smooth L1

batch层面

RBG大神提出了mini-batch (即N=2) 的认知。

basemodel层面

出于basemodel的限制,R-CNN、SPPNet的basemodel用的都是AlexNet。到了Fast R-CNN的时候,已经有VGG了。于是Fast R-CNN采用了VGG-16作为其basemodel。

在SPPNet中,由于其basemodel是AlexNet这种小网络,所以SPPNet的作者们说,train的时候只fine-tune最后的几个fc层,模型精度最高。
RBG大神说,这套定理到了以VGG-16为basemodel的深网络中就不适用了。RBG大神做了一系列ablation,发现沿用SPPNet的fine-tune定理会掉点:
这里写图片描述

而如果把fine-tune的范围往前一直扩大到conv3_1 (再往前就对mAP几乎没有提升了) 则效果最好。

compute层面

从time的角度来看,fc层的存在对于单图的cls任务而言,耗时占比小于前面的那些conv层;但在detection任务中,conv只需执行一次,fc却要执行几千次 (对每个RoI都要完整地走一遍fc) ,此时在fc上的耗时就占到了总耗时的50%。

RBG大神给出了解决方案:通过TSVD (截断奇异值分解) 来简化计算。
该方法节省了30%的detection耗时,mAP只牺牲了0.3%:
这里写图片描述

Innovation

宏观上,

  • 从 stage 的角度来看,是从 four-stage 到 two-stage 的演进;
  • 从 task system 的角度来看,是从 two-network system (将分类器和定位回归器用两个网络分开,各自独立训练) 到 one-network system (虽然这两个task是并行的,但都属于同一个network,可以一起训练) 的演进。

Result

Fast R-CNN在VOC数据集上吊打其他算法。

VOC2007:
这里写图片描述

VOC2010:
这里写图片描述

VOC2012:
这里写图片描述

Thinking

Fast R-CNN最吸引我的地方是它第一个将三个独立的任务 (feature extraction、cls、loc regression) 三合为一。将原本笨拙的Detection惯用设计大大精简,Simple is powerful。

到了Faster R-CNN,更是将Selective Search也替换为了能无缝衔接的RPN,从此,Detection的四大任务 (feature extraction、region proposal、cls、loc regression) 归于一统 (可以被一起训练了) 。


[1] Fast R-CNN

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值