Faster R-CNN(2016)

在这里插入图片描述

introduction

Faster R-CNN 是第一个真正意义上的端到端的深度学习目标检测算法。Fast R-CNN虽然增加了检测的速度和精度,但是object proposal 仍然需要通过外部算法来产生,暴露出了region proposal computation 仍然是一个瓶颈。论文引入一种RPN(Region proposal Network),与检测网络共享full-image的卷积特征,几乎不需要额外的计算资源。

作者观察发现被基于region的检测网咯使用的卷积特征映射(如Fast R-CNN)也可以用于产生region proposals 。在这些卷积特征的基础上,我们通过添加几个额外的卷积层来构建RPN,这些卷积层同时回归规则网格上每个位置的区域边界和对象性分数。因此,RPN是一种全卷积网络(FCN),可以对生成检测建议框的任务进行端到端的训练。

在这里插入图片描述
解决多尺度和不同长宽比的方法,之前的方法 使用图像金字塔(图a)和特征金字塔(图b),RPN的设计有效预测了具有不同尺度和长宽比的region proposal,引入了一种新颖的锚框作为对尺度和长宽比的参考。这个方案可以被视为回归参考的金字塔,避免了枚举多尺度和不同长宽比的图像和滤波器。在训练和测试单尺度图像时,这个方法表现很好,因此有助于加速计算。

为了将RPN与Fast R-CNN目标检测网络统一起来,提出了一种训练方案,在保持proposals不变的情况下,在region proposal task的微调和object detection的微调之间交替进行。该方案收敛速度快,产生了一个统一的网络,该网络具有卷积特性,可在两个任务之间共享参数。

Faster R-CNN

在这里插入图片描述
Faster R-CNN由两部分组成,第一部分是一个深度全卷积网络用来产生proposal region,第二部分是使用proposed regions的检测器。整个系统是简单的、统一的目标检测网络。使用流行的术语“attention”mechanism ,RPN模块告诉Fast R-CNN朝那里“看”。

Region Proposal Networks

RPN将任意大小的一张图像作为输入并输出一系列矩形目标建议框,每一个都带有目标分数。作者对具有5层可共享卷积层的Zelier 和Fergus model以及13层可共享的卷积层的Simonyan 和Zisserman model进行了调查。

为了生成region proposal,我们在最后一个共享卷积层输出的卷积特征图上滑动一个小网络。这个小网络将输入卷积特征映射的nxnspatial window作为输入。每个滑动窗口都映射到一个低维特征(ZF为256-d,VGG为512-d,ReLU如下)。该特征被输入到两个同级别(即 并行)的全连接层中——一个box回归层(reg)和一个box分类层(cls)。在本文中,我们使用n=3,注意到输入图像上的有效感受野很大(ZF和VGG分别为171和228像素)。图3(左)中的单个位置显示了这个mini-network。请注意,由于mini-network以滑动窗口方式运行,因此全连接 层在所有空间位置共享。这种体系结构自然地由一个n xn卷积层和两个同级1 x1卷积层(分别用于reg和cls)实现。
在这里插入图片描述

Anchors

在每个滑动窗口位置,我们同时预测多个region proposals,其中每个位置的最大可能建议数表示为k。因此,reg层有4k输出,编码为k个box的坐标(一个box包括4个坐标),cls层输出2k个分数,用于估计每个box对应的目标(非目标)的概率。K个proposal相对于K个reference box参数化,称之为anchor
在这里插入图片描述

位于所讨论的滑动窗口的中心,并与尺度和纵横比相关联(图3,左侧)。默认情况下,我们使用3个尺度和3个纵横比,在每个滑动位置产生k=9个锚(两两结合3*3)。对于大小为WxH(通常为 2400)的卷积特征图,总共有WHk个锚(一个像素对应k个具有不同scale和aspect ratios 的 anchor)。

Translation-Invariant Anchors–平移不变锚

作者方法的一个重要特性是,它在anchor和计算相对于anchor的proposal的函数方面都是平移不变的。如果一个人移动图像中的一个目标,proposal也应该移动,同样,函数也应该能够预测对应位置的proposal。
作者的方法保证了这种平移不变性。作为比较,Multi-box方法[27]使用k-means生成800个锚,这些锚不是平移不变的。因此,如果一个目标被移动,MultiBox不能保证生成相同的proposal。

平移不变属性也减少了模型大小。Multibox 有(4+1)x800 维的全连接输出层,然而作者方法在K=9 anchors的情况下只有(4+2)x9 维的卷积输出层。As a result, our output layer has 2.8 x104 parameters (512 x (4 + 2) x9 for VGG-16), two orders of magnitude fewer than MultiBox’s output layer that has 6.1x106 parameters (1536 x(4 + 1) x 800 for GoogleNet [34] in MultiBox [27]).如果考虑特征投影层,我们的proposal layer的参数仍然比MultiBox少一个数量级。我们希望我们的方法在小数据集(如PASCAL VOC)上具有较小的过拟合风险。

Multi-Scale Anchors as Recognition Reference

常用的解决多尺度和不同长宽比输入的方法有两种,一种是图像/特征金字塔,图像被reasize成好多个scale,然后计算每个scale的深度卷积特征。第二种是使用多个scale(长宽比)的滑动窗口应用在feature map 上,这种方法可以视为“滤波器金字塔”。这两种方法常常共同使用。

作为比较,作者将自己提出的基于anchor的方法视为构建在“a pyramid of anchors”之上,无论分类还是回归都参考不同scale和aspect ratios的anchor box ,计算效率更高。它仅仅依赖于单个scale的图像和feature map,并且使用single size scale 的filter。通过实验,作者证明了它的有效性。

由于基于anchors的multi-scale 设计,我们可以简单使用single-scale 图像上的卷积特征,正如Fast R-CNN做的一样。multi-scale anchors的设计是一种共享特征的重要组成部分,而不需要花费额外的代价解决scales。

loss function

正样本(前景样本)标签分配给两种anchor:

  1. IoU重叠
  2. IoU 不小于0.7
    负样本(背景样本)标签分配给IoU小于0.3的anchor。
    非正非负的anchor不参与训练,没有任何作用。

Multi-task loss:
在这里插入图片描述
这里,i是一个mini-batch的anchor的索引, p i p_i pi是anchor i 针对object的预测概率。如果anchor是正,标签 p i ∗ p^{*}_{i} pi是1,anchor为负,则是0. t i t_{i} ti是一个向量,代表预测bounding box坐标的4个参数, t i ∗ t_{i}^{*} ti是与positive anchor有关的ground-truth box 对应的4个参数。 L c l s L_{cls} Lcls分类损失是两个类别的log loss。对于回归损失,使用 L r e g ( t i , t i ∗ ) = R ( t i − t i ∗ ) L_{reg}(t_{i},t_{i}^{*})=R(t_{i}-t_{i}^{*}) Lreg(ti,ti)=R(titi),这里R是一种鲁棒的损失函数(smooth L 1 L_{1} L1). p i ∗ L r e g p_{i}^{*}L_{reg} piLreg意味着回归损失仅仅在positive anchors( p i ∗ = 1 p_{i}^{*}=1 pi=1)时使用,在 p i ∗ = 0 p_{i}^{*}=0 pi=0取消。

细节部分参看论文(手打太累了)。

Traning RPN

RPN可以通过反向传播和随机梯度下降(SGD)进行端到端训练。我们遵循“以图像为中心”采样策略来训练这个网络。每个小批量都来自一张包含许多正样本和负样本锚定的图像。优化所有anchors的损失函数是可能的,但这将偏向于负样本,因为它们占主导地位。
取而代之的是,我们在一幅图像中随机抽样256个anchors,以计算mini-batch的损失函数,其中抽样的正锚点和负锚点的比率高达1:1。如果一张图像中正样本少于128个,我们用负样本填充mini-batch。

我们通过从标准偏差为0.01的零均值高斯分布中提取权重,随机初始化所有新layers。所有其他层(即,共享卷积层)通过预训练ImageNet分类模型进行初始化,这是标准操作。我们对ZF网络的所有层进行了调优,并对VGG网络进行了conv3_1和升级以节省内存[2]。在PASCAL VOC数据集上,我们对60k个小批次使用0.001的学习率,对接下来的20k个小批次使用0.0001的学习率。我们使用0.9的动量和0.0005的权重衰减。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值