Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks
摘要:前沿的目标检测网络通过区域提取(regionproposal)算法来预测目标的位置。SPPnet与Fast R-CNN算法已经一部分改进了时间的问题,当前的瓶颈在于区域提取上。本文中,我们提出了一种与检测网络共享全卷积特征的区域提取网络(RPN),使区域提取几乎不再耗时。RPN是一种同时预测目标位置与每个目标概率的全卷积网络。RPN通过端到端的训练得到提取的区域,再利用Fast R-CNN来进行检测。我们进一步通过共享他们的卷积特征将RPN与Fast R-CNN合成一个网络,利用“attention”机制,RPN组建告诉网络哪些是可能的区域。在GPU模式下如果用VGG-16模型,我们的检测系统可以达到5fp的帧率。我们只用了300个可能区域就在PASCAL VOC 2007,2012与MS COCO数据集上得到了很好的效果。在ILSVRC与COCO2015比赛中,Faster R-CNN与 RPN获得及几乎所有的冠军。目前代码已经公布。
关键词: 目标检测 区域提取 卷积神经网络
1、概述
当前目标检测快速发展得益于区域提取技术与基于区域的卷积神经网络(R-CNN)技术的成功。原版的R-CNN计算成本很高,但是通过共享提取区域的卷积,目前计算量已经显著的下降。最新的衍生算法Fast R-CNN中以及可以使用较深的网络取得几乎实时的效果,如果不计算区域提取的时间的话。如今区域提取是测试时计算的瓶颈。
传统的去提取算法使用简单的特征与低时耗的方案。Selective Search是其中最流行的一种方法,它通过人工特征贪婪的合并超像素。然而当对比有效的检测网络,Selective Search慢了一个数量级,在CPU下每张图要几乎2秒钟。EdgeBoxes是当前在准确率与时间上最均衡的一种方法,0.2秒可以处理一张图片。尽管如此,区域提取还是消耗了目标检测太多的时间。
有人可能注意到,FastR-CNN使用了GPU,然而区域提取方法是实现在CPU下,是的这样的时间对比不平等。一个显而易见的加速方法就是讲区域提取算法在GPU下重新实现。这个可能是一个很好的工程化解决方案。但是这样可能会没考虑到对检测网络的影响,而且失去了共享计算的重要机会。
本文中,我们展示了一种算法层面的改进:简洁有效的使用深层卷积神经网络来计算区域,是区域提取在目标检测网络中基本不消耗时间。在这里,我们提出了一种全新的Region Proposal Networks(RPNs),这种方法与最好的目标检测网络共享卷积层。通过卷积层的共享,在测试时,计算区域的时间变得很少(10ms每张图)。
通过观察可以知道,用于FastRCNN中用于检测的卷积特征同样可以用来生成目标区域。在这些卷积特征的顶部,我们构建了RPN,通过添加一些额外的卷积层在一些规则网格上来同时进行区域回归与每个目标的概率的计算。RPN一定程度上算是一种全连接卷积神经网络,可以为完成检测区域进行端到端的训练。
RPNs设计用来有效的预测不同尺寸与比例的目标区域。与当前流行的算法利用图像金字塔或者滤波器金字塔的方法不同,我们引入了一种全新的锚点(anchor)框的概念,用来解决不同尺寸与比例的问题。我们的结构相当于回归参考区域的金字塔,这样就可以不用美剧出图像或滤波器的不同尺度与不同比例。这样的模型在使用单尺度样本的训练与测试时都有不错的效果,而且也减少了时间。
为了是RPNS与Fast R-CNN目标检测网络合并,我们提出了一种训练流程:轮流微调RPN网络与目标检测网络,并保持可能区域的数目不变。这种结构可以很快就收敛,并且产生一个两个网络共享的卷积特征。
我们在PASCAL VOC上对我们的算法进行了综合的评价,基于RPN的Fast R-CNNs检测准确率远高于基于Selective Search的方法。同时,我们的算法在测试时没有Selective Search这种大计算量的工作,实际的区域提取时间只需要10ms。使用超深的网络测试