论文链接:https://arxiv.org/abs/1504.08083
代码链接:https://github.com/rbgirshick/fast-rcnn.
Abstract
这篇论文提出了一种基于卷积神经网络做目标检测的算法——Fast R-CNN,它是建立在之前R-CNN的基础上使用深度卷积神经网络进行高效的目标检测。Fast R-CNN做了几点创新来提高训练和测试阶段的速度,同时提高了检测的准确率。
- Fast R-CNN使用的是VGG16网络,训练速度比R-CNN快了9倍,测试速度快了213倍,并且在PASCAL VOC 2012上实现了更高的map;
- 与SSPnet相比,Fast R-CNN训练速度快了3倍,测试速度快了10倍,并且准确率更高;
1. Introduction
目前深度神经网络已经极大的提高了图形分类和目标检测的精度,与图像分类相比,目标检测明显更为复杂,现在的方法在训练网络时会分多个阶段,这样会导致训练和运行时间过长。
目前检测有两个最基本的挑战:
- 如何产生候选框;
- 候选框只是提供了一个粗略的定位范围,所以需要进一步的修正才可以得到更精确的定位,这意味着我们的方法需要在速度、精度和简单性之间做权衡;
在本片论文中,我们简化了训练过程,提出了以一种单阶段的训练算法——分类和边框回归的loss合并,梯度回传。
1.1 R-CNN and SPPnet
在谈Fast R-CNN之前,我们先来说说R-CNN存在的问题:
- 训练分多步。通过上一篇博文我们知道R-CNN的训练先要fine tuning一个预训练的网络,然后针对每个类别都训练一个SVM分类器,最后还要对每个类别用regressor模型对bounding-box进行回归(分类和边框预测是分开的,但实际上两者之间是有联系的,是个待解决问题),另外region proposal也要单独用selective search的方式获得,步骤比较繁琐。
- 时间和内存消耗比较大。在训练SVM和回归的时候分别需要用网络训练得到的fc7和pool5层的特征作为输入,特征保存在磁盘上再读入的时间消耗还是比较大的。举个例子,当使用深度神经网络(如VGG16),对于5k张VOV07训练集上的图片做训练大约需要2.5GPU-days。这些特征需要上千GB的存储空间。
- 测试的时候也比较慢,每张图片的每个region proposal都要做卷积,重复操作太多。用VGG16做检测一张图片需要47s。
制约R-CNN速度的一个重要因素在于每个候选框(大约2000个)都需要经过卷积神经网络,这里面没有共享计算,里面有大量的冗余计算(有很多重叠部分)。空间金字塔层池化网络(Spatial pyramid pooling networks,SSPnets)可以通过计算共享来加速R-CNN,SSPnet是先对整张图片做卷积,由于卷积池化之后得到的特征图与原图片的特征位置是相对应的,所以直接在特征图上截取候选框,然后再使用做不同尺寸的最大池化将得到的特征向量拼接得到最终

Fast R-CNN是一种基于深度学习的目标检测算法,显著提升了检测速度和精度。它整合了R-CNN和SPPnet的优点,采用单阶段训练,多任务损失函数,以及RoI池化层,减少了冗余计算,实现了比前代算法更快的训练和测试速度。


被折叠的 条评论
为什么被折叠?



