2015_Fast R-CNN(ICCV2015)Ross Girshick
一、背景及意义(动机)
R-CNN虽然效果好,但是存在很多缺点:1)训练过程需要多个阶段。2)训练时间缓慢而且需要较大的存储空间。3)测试时间较慢。虽然SPPnet对R-CNN做了些许改进(针对R-CNN对于每个proposal都需要提取特征的情况进行优化,让每张图片只需要提取一次特征,作者主要是在特征提取和分类器之间最后的pooling层替换为一个空间金字塔pooling层),但是仍然存在很多缺点没有改进。针对R-CNN的这些缺点,作者提出一个更加快速,有效的目标检测方法叫Fast R-CNN。该方法在训练和测试速度以及性能方面,都要优于先前方法。该方法训练要比R-CNN快9倍,测试要快213倍;相较于SPPnet,训练快了3倍,测试快了10倍,并且都更加准确。
二、使用什么方法来解决问题(创新点)
主要贡献
- 提出fast R-CNN框架,训练速度,测试速度以及准确率都比R-CNN和SPPnet要好
- 训练过程不需要多个阶段,并且使用了多任务loss(回归和分类放在一起训练)。
- 采用端到端的方式,训练可以更新所有网络层。(主要采用了ROI pooling层)
- 不需要把特征预先存储起来。
重要结论
- 多任务有助于提高性能。
- 多尺度虽然可以提升效果,但是提升的幅度并没有使用大模型并使用单尺度的高,反而会增加测试时间。所以权衡下,用单尺度,大模型会更好。
- 更多的数据更多的迭代次数效果更好。
- softmax与svm效果差不多,但是使用softmax速度更快
- 更多的候选框,无法达到更好的效果
三、方法介绍
3.1 网络的框架和训练
- fast rcnn的输入是整一张图片
- 在最后的卷基层使用了ROIpooling从对应的proposal提取特征送入全连接层。
- 使用两个分支,1个预测类别,一个用来修正当前类别的bounding box的位置。
3.2 RoI pooling 层:
ROI pooling层是单层的空间金字塔pooling层。具体的会根据输入的卷积feature map的大小,以及输出的feature map的大小,计算每个子窗口的大小。然后对每个子窗口利用max pooling操作得到响应值。
3.3 对预训练网络的修改:
- 最后的maxpooling层改为使用ROIpooling,H=W=7
- 最后的全连接层和softmax层改为两个任务,一个是全连接层和softmax,一个是全连接层和类别相关的bounding-box回归。
- 网络修改为2个数据的输入,一个是图像,一个是图像的ROI。
3.4 利用检测数据来fine-tune整个网络:
对于RCNN和SPPnet来说,fine-tune整个网络效率是很慢的,因为它们的采用策略是从每个图片中提取一个ROI用来训练。为此作者提出一个更加有效的训练方式,假如训练的mini-batch的ROI数为R,图片的候选数为N,则使用提取R/N张图片用于训练。采用这种方式的一个问题可能是过拟合问题,但是从结果来看并不会这样。
- 在fine-tune的时候,fast rcnn联和优化了两个目标,分类与回归。对于分类,采用了一个softmax with loss 来训练,对于回归作者采用了smooth L1 loss,回归的目标使用了ground truth 和proposal 的一个变换,使其对尺度不敏感。两个任务的权重都为1.0
- 每个minibatch的采样方式:从两张图片中采128个样本,每个图片64个样本。其中取1/4为正样本,即IOU大于0.5的proposal。3/4负样本,为IOU在0.1到0.5之间的proposal。数据增强方式只是按0.5的概率进行水平翻转。
- 梯度传播方式:在ROIpooling层会记录每个输出来自于哪一个输入,然后在方向传播时,将相同输入的梯度累加起来,继续往下传播。
- 用于分类和回归的全链接层分别采用标准差为0.01和0.001,0均值的高斯分布来进行初始化。bias初始化为0.所有的层的权重使用per-layer学习率为1.0,bias使用per-layer学习率为2.0。在VOC07和VOC12数据集上,头30k个迭代使用一个全局的学习率为0.001,后10k次迭代使用一个全局学习率为0.0001.当训练集更大的时候,会使用更多次迭代。动量设置为0.9,权重衰减系数设置为0.0005.
3.5 测试:
测试的时候,首先提取proposal,然后利用fast rcnn得到每个proposal属于每个类别的得分,以及对应的bounding box 偏移。然后利用每个类别的得分以及非最大化抑制得到最后结果。
使用truncated SVD可以加快测试时间
四、实验结果及重要结论
- 多任务学习提高mAP
- 多尺度虽然可以提升效果,但是提升的幅度并没有使用大模型并使用单尺度的高,反而会增加测试时间。所以权衡下,用单尺度,大模型会更好。
- 更多的数据更多的迭代次数效果更好。
- softmax与svm效果差不多,但是使用softmax速度更快
- 更多的候选框,无法达到更好的效果
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 524813168@qq.com
文章标题:2015_Fast R-CNN(ICCV2015)Ross Girshick
文章字数:1.4k
本文作者:xieweihao
发布时间:2016-11-20, 17:25:24
最后更新:2020-01-23, 10:20:40
原始链接:http://weihaoxie.com/post/a58d66d1.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。