Faster R-CNN 学习笔记

Abstract

在 Faster R-CNN 刚提出的那个时候,主流的目标检测框架都依赖于 region proposal 算法来预先假定目标所在的位置。当时的两大有代表性的目标检测框架 —— SPPnet 和 Fast R-CNN,已经能够大大缩短整个目标检测框架的运行时间。然而,计算 region proposal 所消耗的时间代价始终没有得到解决,而且成为了影响整个目标检测框架速度的瓶颈。Faster R-CNN 要解决的就是这样一个问题:它引入了 Region Proposal Network (RPN) ,通过和后续的检测网络(即 Fast R-CNN)共享整张图片的卷积特征,在几乎不消耗任何代价的情况下提供 region proposal 。作者在将 RPN 和 Fast R-CNN 合并成一个网络的时候,是将 RPN 视为一种注意力机制 —— RPN 告诉整个网络 “where to look” 。

1 INTRODUCTION

在 Faster R-CNN 提出的那个年代,当时推动目标检测算法继续往前发展的两大主流做法包括:region proposal methods 以及 region-based convolutional neural networks (R-CNNs) 。R-CNN 在刚被提出来的时候,计算代价是非常大的。但是随着后续工作的改进(如 Fast R-CNN),即通过在 proposal 之间共享卷积操作,这些计算代价已经被大大减小。当时 Fast R-CNN 是这方面最新的工作,在不考虑 region proposal 阶段所消耗的时间的情况下,Fast R-CNN 几乎可以做到 real-time 。因此,在当时,计算 proposal 是测试阶段的主要计算瓶颈。

作者举了当时两个有代表性的例子 —— Selective Search 和 EdgeBoxes,来举例说明 region proposal step still consumes as much running time as the detection network.

作者还指出,当时的 region proposal 方法是在 CPU 上实现的。那么一种可以加速这一过程的方法就是在 GPU 上进行复现,但是这一做法完全忽略了下游的检测环节,导致它和后续的检测环节无法共享计算。

所以在这篇文章中,作者提出了一种 elegant and effective solution —— computing proposals with a deep convolutional neural network,即引入 RPN ,并让它和 SOTA 目标检测网络共享卷积层。

作者观察到,由 CNN 提取的 feature map,不仅可以被后续的 region-based detector (如 Fast R-CNN) 使用,还可以被用来生成 region proposal。在这些 feature map 的基础上,作者搭建了 RPN —— 即加一些额外的卷积层来同时预测目标框和 objectness score,而且这些预测是在一个 regular grid 的每个位置上进行的。因此 RPN 是一种 fully convolutional network (FCN),这就使得它可以进行 end-to-end 训练,从而可以把生成 detection proposal 的过程纳入到整个目标检测框架中。

anchor 的概念又是怎么被提出来的呢?在当时,为了应对图像中目标多尺度的问题,有两种主流的做法 —— image pyramid 以及 filter pyramid,不同于这两种做法,作者提出了 reference pyramid,即 anchor boxes that serve as references at multiple scales and aspect ratios。reference pyramid 的好处是我们不用再去遍历 images or filters of multiple scales or aspect ratios,这样的话,我们只需要用 single-scale image 就可以进行训练和测试过程,因此对整个检测框架速度的提升大有裨益。

2 RELATED WORK

Object Proposals. 当时两大主流的 object proposal methods —— grouping super-pixels (e.g., Selective Search) and sliding window methods (e.g., EdgeBoxes)。不过当时的 object proposal methods 都是作为一种 external modules,它们和整个 object detector 是相互独立的。

Deep Networks for Object Detection. (未完待续)

上一篇:Faster R-CNN算法


下一篇:让你轻松摆脱事后追悔——FMEA | 案例分析