Fork me on GitHub

Instance Segmentation - Part2: Fast R-CNN

3. Fast R-CNN

Fast R-CNN 是 Ross Girshick 继R-CNN后提出的目标检测模型. 其构思精巧,流程更为紧凑,大幅提升了目标检测的速度. 论文原篇可寻HERE, 并在Github上提供了源码HERE. 本部分参照CSDN-shenxiaolu1984AI之路

作为 R-CNN 的升级版, Fast R-CNN解决了R-CNN的一些尤其在速度方面的问题, 同样使用最大规模的网络,Fast RCNN和RCNN相比,训练时间从84小时减少为9.5小时,测试时间从47秒减少为0.32秒. 在PASCAL VOC 2007上的准确率相差无几,约在66%-67%之间.

3.1 思想

3.1.1 R-CNN

简单来说,RCNN使用以下四步实现目标检测:

  1. 在图像中确定约1000-2000个候选框
  2. 对于每个候选框内图像块,使用深度网络提取特征
  3. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类
  4. 对于属于某一特征的候选框,用回归器进一步调整其位置

(关于R-CNN更多可见HERE)

3.3.2 Fast R-CNN 改进分析

Fast RCNN方法解决了RCNN方法三个问题

3.3.2.1 测试时速度慢

R-CNN 一张图像内候选框之间大量重叠,提取特征操作冗余. 本文将整张图像归一化后直接送入深度网络. 在邻接时,才加入候选框信息,在末尾的少数几层处理每个候选框.

3.3.2.2 训练时速度慢

原因同上. 在训练时,本文先将一张图像送入网络,紧接着送入从这幅图像上提取出的候选区域. 这些候选区域的前几层特征不需要再重复计算.

3.3.2.3 训练所需空间大

R-CNN 中独立的分类器和回归器需要大量特征作为训练样本. 本文把类别判断和位置精调统一用深度网络实现,不再需要额外存储.

然在 Fast R-CNN 之前有提出过 SPPnet 算法来解决 R-CNN 中重复卷积的问题,但是 SPPnet 依然存在和 R-CNN 一样的一些缺点比如:训练步骤过多,需要训练SVM分类器,需要额外的回归器,特征也是保存在磁盘上. 因此Fast RCNN相当于全面改进了原有的这两个算法,不仅训练步骤减少了,也不需要额外将特征保存在磁盘上. 基于VGG16的Fast RCNN算法在训练速度上比RCNN快了将近9倍,比SPPnet快大概3倍;测试速度比RCNN快了213倍,比SPPnet快了10倍. 在VOC2012上的mAP在66%左右.

本文标题:Instance Segmentation - Part2: Fast R-CNN

文章作者:Shixuan Li

发布时间:2019年05月23日 - 15:05

最后更新:2019年09月18日 - 20:09

原始链接:http://shixuanli.com/posts/7267/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。