论文:Fast R-CNN

检测需要目标的准确位置,这带来了两个挑战,一个是大量的proposals,另一个是这些候选框只提供了大概的位置,必须refine,获得准确的位置。

1.1 R-CNN and SPPNet
R-CNN有三个缺陷:
1)是一个 multi-stage pipeline过程
提取proposals,输入CNN提取特征,使用SVM进行分类,进行bounding-box regressor
2)训练在时间和空间上花费大
因为特征是从每一个proposal上提取的
3)测试的时候,检测很慢
R-CNN很慢,因为其对每一个object proposal 进行计算,没有share computation. SPPNet为R-CNN加速而提出,它share computation.SPPNet在一整个图上计算feature map ,在feature map 上使用特征向量提取出来的proposals上进行分类,使用proposal 来max pool feature map 来实现。
但是SPPNet也有缺陷,也是一个multi-stage pipeline过程。包括特征提取,SVM,fit bounding-box regressors.

2 Fast R-CNN architecture and training
输入是一整个图片和一系列的object proposals,网络首先通过卷积层和池化层生成feature map,然后在feature map 上对每一个 object proposals应用 ROI pooling layer来提取feature vector.每一个特征向量都被馈送到fc层的序列中。之后分支到两个output layer.一个是用来产生类别信息,一个用来产生属于某一类的bounding-box 的position.
这里写图片描述

2.1 The RoI pooling layer
RoI pooling 的输入有两部分:
data:进入rpn层之前的feature map ,通常称为“share_conv”
rois:指的是rpn层的输出,一堆矩形框,坐标的参考不是针对feature map,而是针对原图。
输出是固定大小的feature map
例如将h*w的roi,划分成H*W的窗口,每一个窗口的大小是(h/H)*(w/W)。然后使用max-pool操作,产生一个H*W的feature map.
这里写图片描述
RoI pooling layer是SPPnets中spatial pyramid pooling layers的特殊形式,这个只有一层pyramid.

2.2 Initializing from pre-trained networks
在基础的网络中做了三个改变
第一,最后一层max-pooling 层用 RoI Pooling 层代替
第二,最后一层fully connected layer和softmax被两个兄弟层替换(一个fully connected layer + softmax over(K+1 class) /+category-specific bounding-box regressors).
第三,网络的输入是两个,一个是 a list of images ,另一个是 a list of RoIs in those images.

2.3 Fine-tuning for detection
在Fast R-CNN训练中一个图片上的RoI share computation and memory. 同时不会因为ROI都来自于一个图片导致收敛缓慢。

Multi-task loss:
有两个输出层
第一个对每一个roi输出一个离散的概率分布,有K+1类。通常在全连接后使用softmax。
第二个是输出一个bounding-box regression offsets 这里写图片描述,for each of k object class.
每一个training ROI is label with a ground-truth class U and a ground-truth bounding-box regression target V. 当 u >=1 的时候,[ u >=1] =1 ,否则 u = 0 的时候, [ u >=1] =0,所有的背景类都设为 u=0,对于 background roi 没有必要算 ground-truth bounding box,所以 Lloc 上忽略了它
每个ROI 上 loss L 是这里写图片描述
这里写图片描述

训练时,设置 mini-batch 为 R=128,每一个 image 的 ROIs 是64,有25%的 ROIs 的 IoU 大于0.5,这些 ROIs 的 u>=1,剩下的 IoU 在[0.1,0.5)之间,这些 u=0

超参数:
softmax classfication 和 bounding-box regression 层初始化为 zero-mean Gaussian 分布,deviation 分别为0.01和0.001.
Bias 初始化为零
lr 0.001 30k pre-train
lr 0.0001 10k finetune

4.4Truncated SVD
使用奇异值分解,减少时间

4.5 Which layers to fine-tune
在比较小的网络中, conv1 是通用的,不依赖于任务,对不对 conv1 fine tune 对 mAP没有什么影响
在 VGG16 网络中,fine tune conv3_1 及以上的层,因为从 conv2_1的话会降低速度,mAP 没有很大提高

因为 single-scale process 在速度和准确度之间有一个很好的平衡,所以整个实验都使用 single-scale training and testing

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值