Fast R-CNN
概要
这篇文章基于《Rich feature hierarchies for accurate object detection and semantic》中提出的目标检测方法R-CNN,提出了一种改进方法,即Fast R-CNN。该方法相比R-CNN在训练和测试速度以及目标检测精确度上都有较大提升。使用VGG16网络时训练速度是R-CNN的9倍,测试速度213倍。
R-CNN的缺陷
R-CNN在一下几个方面具有明显的不足:
- R-CNN的训练分为多个阶段,首先对CNN网络进行训练提取特征,然后训练用作分类器的支持向量机(SVM),最后还要训练框回归器。
- R-CNN的训练过程十分消耗时间和空间。对于SVM和框回归训练,需要对每张图的每一个候选框提取特征。这一过程若使用VGG16网络需要耗费2.5个GPU日才能计算完VOC07数据集的所有图像,同时需要存储的特征值还会占用数百GB空间。
- R-CNN的目标检测速度较慢,使用VGG16和一个GPU进行检测每张图像需要耗时47秒。
R-CNN速度较慢的原因是每一个候选框都需要经过CNN网络进行计算,这一步骤耗费了大量时间。一个改进方法SPPnet(《Spatial pyramid pooling in deep convolutional networks for visual recognition》)提出通过将这一部分计算共享的方法提升检测速度。它直接对整个输入图像使用CNN网络计算特征图,然后在检测每个候选区域时从共享特征图中取对应的部分特征,并通过最大值池化的方法转变成几个固定大小,再通过空间金字塔池化得到最后的结果。SPPnet可以使测试速度加快10至100倍,训练速度加快3倍。