Faster R-CNN
引言
根据以往R-CNN系列的分析,现在影响网络性能的是候选区域提取的部分。比如SS算法,在CPU上处理一张图片大约要2秒。
文中提出了一种算法的改进——使用卷积神经网络来生成候选区域,命名为Region Proposal Networks (RPN)
。RPN共享现有的目标检测网络的卷积层。这种方法既优雅又高效,几乎是 cost-free
的(每张图片在测试时大约10ms)。
使用VGG16作为主干网络,一秒大约处理5帧(张)图片
文中观察到,基于区域的目标检测网络产生的特征图也可以用于生成候选区域。 在这些卷积特征图的基础上,通过增加一些额外的卷积层来构造一个RPN。添加的这些卷积层在特征图的每个位置同时进行区域边界的回归以及是否有对象的打分判定。
RPN是一种全卷积网络(FCN),可以通过端到端的训练,专门用于产生候选区域。
RPN的设计是为了有效地预测具有广泛尺寸和纵横比的候选区域。 与使用图像金字塔或滤波器金字塔的方法不同,文中引入了**“锚框”**的概念,在多个尺度和纵横比下作为参考。
正文
网络分为两个模块:
- RPN
- Fast R-CNN
RPN
RPN将任意大小的图像作为输入,然后输出一组矩形候选框,每个候选框都有一个对象性分数。
为了生成候选框,文中在最后一个共享卷积层输出的卷积特征图后面接一个小型网络。
这个小型网络将特征图上的 n × n 窗口作为输入。 每个滑动窗口都映射到一个低维特征(ZF 为 256-d,VGG 为 512-d,随后是 ReLU 层)。 这个特征被输入到两个全连接层——一个回归层(reg)和一个分类层(cls)。
文中使用 n = 3,注意输入图像上的有效感受野很大(ZF 和 VGG 分别为 171 和 228 像素)。 由于小网络以滑动窗口方式运行,因此全连接层在所有空间位置之间共享。 这种架构自然是用一个 n×n 卷积层和两个同级 1×1 卷积层(分别用于 reg 和 cls)来实现的。
这里的意思是说,用1 x 1 的卷积代替了全连接层