论文链接:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
摘要:
最先进的目标检测网络依赖于候选区域提取算法来假设目标位置。SPPnet和Fast R-CNN网络等技术的进步降低了这些检测网络的运行时间,也暴露了基于候选区域算法的计算瓶颈。在这篇文章中,作者引入了一个与检测网络共享全图像卷积特征的候选区域生成网络(RPN),几乎不需要计算代价生成候选区域。R-CNN是采用selective search方法来生成候选区域,比较耗时。RPN是一个全卷积的网络,它同时预测每个位置的目标边界框和目标的得分。对RPN进行端到端训练,生成高质量的候选区域,这些候选区域可以被Fast R-CNN用来做目标检测。作者通过共享它们的卷积特征将RPN和Fast R-CNN合并到一个单一的网络,类似于现在神经网络中的注意力机制,RPN告诉网络在哪个区域有待检测的目标。对于VGG-16模型,Faster R-CNN检测系统在GPU上的帧率为5fps(包括所有步骤),同时在PASCAL VOC 2007、2012和MS COCO数据集上实现了最先进的目标检测精度,每张图像只有300个候选区域。在ILSVRC和COCO 2015年的比赛中,Faster R-CNN和RPN是在多个比赛获得第一名的基础。
思路:
基于候选区域的目标检测算法取得了很好地性能,但是计算非常耗时,从最开始的R-CNN,selective search方法生成候选区域,逐个提取每个候选区域的特征向量,到Fast R-CNN将逐个计算每个候选区域特征改进为全图一次性计算并结合RoI获取每个候选区域的特征向量,极大提高了计算效率。但是selective search方法生成候选区域也是很耗时的,已经变成了基于候选区域目标检测算法计算效率的瓶颈。分析原因,selective search方法是运行在CPU上的,并行计算效率很低,而CNN可以在GPU上加速,如果使用CNN来生成候选区域并且放到GPU上加速,是一个不错的解决方案,但是,单独用一个CNN来生成候选区域会忽略后面的检测网络,错过共享计算的重要机会。所以作者提出了RPN来替代selective search方法,通过共享目标检测的主干网络,RPN生成候选区域几乎不需要计算代价,处理一张图仅需10毫秒。RPN为了能在有效的预测出不同尺度和宽高比的目标,采用了anchor框的方法,和图像金字塔实现多尺度检测不同,RPN在特征图的每个位置都检测几个不同的anchor框中是否含有目标。避免了枚举多个尺度或纵横比的图像或卷积核。因为刚开始两个分支(RPN和检测器)都不具备检测目标的功能,仅仅能提取特征,但是如果要训练检测器,则RPN要先能生成候选区域,如果先训练RPN,那么RPN训练好的主干网络特征会被检测器破坏,导致主干网络提取的特征没法共享,就是说要不偏向RPN,要不偏向检测器。作者提出了交替训练两个分支,这样做,就可以让主干网络既学到有利于生成RPN的特征,又有利于检测器的特征,实现了权重共