FastRCNN论文详解

Fast RCNN的paper地址:https://arxiv.org/abs/1504.08083

FastRCNN是基于RCNN和SPPnet等网络的基础上上做了系列的创新型的改进得到的,比起前面的工作既提高了训练和测试的速度,也提高了一点准确度。

文章作者分析了RCNN和SPPnet各自的 缺点,然后对比指出自己的Fast RCNN带来了哪些贡献。

RCNN文章分析:RCNN个人理解

RCNN的缺点:

  1. Training is a multi-stage pipeline 。RCNN训练是一个多阶段的流程,分三个阶段,分别是为一、CNN做fine-tuning;二、利用微调之后得到的特征训练SVM;三、训练bounding box regressor。
  2. Training is expensive in space and time. 训练所需空间与时间耗费巨大,为了训练bb regressor,需要将每个图片中的每个proposal的被提取出来的特征写入磁盘;每个proposal都要单独的一次前向传播,就很费时!
  3. Object detection is slow.测试时由于也需要将同学中每个候选框单独的前向传播提取特征,所以时间较长。

SPPnet文章分析:SPPnet简介
SPPnet的缺点:
反向传播时无法(inefficient/expensive)更新空间金字塔池化层前面的卷积层。

原因是:
SPP-Net中fine-tuning的采样是RoI-centric sampling,从所有图像的RoI种采样,而反向传播需要计算每一个RoI感受野的卷积层梯度,通常所有RoI会覆盖整个图像,如果用RoI-centric sampling方式需要计算每张图像的梯度,也就需要同时计算和存储这些图像的Feature Map,时间和空间上都very expensive.

(RCNN和SPPnet一样也是先提取所有图像的proposal,然后提取出特征,在从所有的特征中sample 样本做训练,同一个batch中的所有RoI全部来自不同的图片)

Fast RCNN的改进:

训练是一个阶段的,使用了多任务损失函数来训练。 Fast R-CNN 在一个fine-tuning中同时优化softmax分类器和bounding-box regressors。

1、训练可以更新所有的层。Fast RCNN训练的时候采样是image-centric sampling,每次从N张图片中采样,每张图片采样R/N个Roi,这样总共还是R个RoI,但是不同的是只需要计算出N张图片的feature map,因为同一张图片的RoI在前向传播和反向传播中共享计算和存储资源,这样内存的消耗就大大减少,可以更新到全部的卷积层了。

(作者在后面列出,并不需要真的更新到所有的卷积层,对于深层次的网络只需从第三个Conv3 -1开始更新,而较浅的从Conv2-1开始就行,Conv1提取得到的是一些公共特征,与具体任务无关,所以每必要更新)。

2、Fast RCNN由损失函数计算由分类损失和定位损失两部分组成,从而能够同时优化这两部分呢;其中bb regressor的损失改为了Smooth-L1范式,有更强鲁棒性;

3、将RCNN中的SVM替换为了softmax,实验表明这样准确度更高;文章中还提到了mAP和Average Recall的关系,指出IoU的阈值会对这两个起到很大影响;

4、 使用SVD来减少了全连接层的参数数量,将单个较大的全连接层替换为两个紧邻的全连接层,中间没有非线性激活;

5、Fast RCNN采用的一个max pooling将任意RoI中的特征采样为H×W空间大小的feature map,然后在传入全连接层,这里RoI layer可以看作SPPnet中 spatial pyramid pooling layer的一个特例,注意每个Pooling针对每个channel独立操作的。

虽然Fast RCNN对输入图片的尺寸没有了限制,但是实验表明单一尺寸的图片结果要好些,这里尺寸是训练时的输入尺寸,test时任意尺寸的图片都行,直接输入;

proposal是否越多越好呢,实验表明2000左右的时候mAP和AR曲线相较,也就是2000的时候最合适;
实验数据是否越多越好呢,of cause,voc2007+voc2012表现最好。

在这里插入图片描述

参考上图,我表诉一下detection的步骤:

  • 首先输入的数据为整张图片和selective search得到的2000个proposal,输入整个图片经过CNN提取特征得到我们的feature map;
  • 然后对应每个proposal映射到feature map上得到的RoI,在每个RoI上进行RoIPooling,全都得到一个固定大小H×W的feature map;
  • 之后将这些feature map经过全连接传到softmax和bounding box regressor,得到每个Roi对应每个类的概率值以及bounding box的边框偏置,将边框偏置带入边框回归公式,就可得到最终的候选框位置G’。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值