核心思想

RCNN的缺点

R-CNN is slow because it performs a ConvNet forward pass for each object proposal, without sharing computation.

SPPnet的缺点

SPPnet also has notable drawbacks. Like R-CNN, training is a multi-stage pipeline that involves extracting features, fine-tuning a network with log loss, training SVMs, and finally fitting bounding-box regressors. Features are also written to disk

FAST RCNN贡献

The Fast R-CNN method has several advantages:

  1. Higher detection quality (mAP) than R-CNN, SPPnet
  2. Training is single-stage, using a multi-task loss
  3. Training can update all network layers
  4. No disk storage is required for feature caching

引言部分

深度卷积网络在图像识别和目标检测领域取得了很大的成功。目前的方法:RCNN、SPPnet、overfeat、segDeepM都有一定的局限性,他们都是多阶段的pipline,速度慢,结果不精确。

模型与网络越来越复杂是因为对物体定位的准确性要求越来越高,由此带来的两大挑战:

  • 要产生大量的候选框
  • 候选框只是一个粗略的定位,还需要进一步调整才能达到精确定位

由此作者提出了Fast RCNN,采用的是VGG16网络架构,并在当时取得了state-of-the-art的效果。

之后作者详细解释了下RCNN与sppnet的缺点,对于RCNN来说,主要有:

  • Training is a multi-stage pipeline.首先对卷积网络进行fine-tune,之后训练SVM分类器来代替采用softmax**函数的全连接层,在之后训练一个边框回归器
  • Training is expensive in space and time.训练时间空间的复杂度都很高
  • Object detection is slow.检测速度慢

作者一针见血的指出,RCNN比较慢的原因在于:它对每一个proposal都过了一遍卷积网络,而SPPnet就没有采用这种策略,作者总结了下SPPnet的优点与缺点:

  • 优点在于:SPPnet计算出整个图像的feature map,然后为每个候选区域从feature map中提取出相应的feature vector(通过max pooling得到)
  • 缺点在于:SPPnet也是一个multi-stage pipeline,并且无法更新卷积层的参数

FAST RCNN

模型结构如下:

经典论文重读---目标检测篇(二):Fast RCNN

其中roi pooling层的引入对与速度的提升起到了至关重要的作用,作者对ROI pooling层进行了详解。roi pooling layer会通过max pooling的方式一个region proposal对应的feature map变为一个小型的feature map(在原文中是7x7的feature map)。根据原文可得具体操作如下:

  1. 根据输入的image得到对应的feature map,找到roi在feature map上对应的区域位置。
  2. 将roi在feature map上对应的区域位置划分成大小相同的H×W个section(原文中是7×7)
  3. 对每一块section采用max pooling得到该roi最终的feature map

具体例子如下,来源于deepsense

经典论文重读---目标检测篇(二):Fast RCNN

FAST RCNN论文细节

rcnn,sppnet与FRCN在fine-tune上的差异

首先sppnet不能够通过 spatial pyramid pooling layer更新权值,而FRCN则可以通过反向传播更新权值。因为与RCNN一样,SPPnet每个ROI都来自不同的图片。并且每个ROI都有着非常大的感受野,而前向传导处理的是整个感受野,故训练的输入非常大。而对于FRCN,SGD minibatch是通过先随机采样N张图片,再从每张图片随机采样R/N个ROI作为一个minibatch的。(原文中N=2,R=128)

除了以上的hierarchical sampling策略,FRCN并没有分阶段训练,而是采用streamlined training process直接对 softmax classifier and bounding-box regressors进行fine-tune和优化。

loss函数的设计

FAST RCNN有两个输出层:

  • 第一个输出:p=(p0,...,pk),对于k+1类物体每个的可能性大小,p由softmax层计算得出
  • 第二个输出:tk=(txk,tyk,twk,thk),即对于所有K种物体来说,他们的边框位置

文中使用联合了分类损失和边框回归损失作为多任务损失函数:

(1)L(p,u,tu,v)=Lcls(p,u)+λ[u1]Lloc(tu,v)Lcls=logpuLloc(tu,v)=i(x,y,w,h)smoothL1(tiuvi)smoothL1(x)={0.5x2if|x|<1|x|0.5otherwise

其中每个RoI区域都有 ground-truth class u和ground-truth bounding-box regression target v。即v=(vx,vy,vw,vh),当u1[u1]取值为1,否则为0(即为背景)。超参数λ是用来调整两个任务的损失权重的,在文中设置为λ=1.

通过RoI池化层的反向传播

普通的max pooling层的反向传播示意图如下,参考博客

经典论文重读---目标检测篇(二):Fast RCNN

通过反向传播求出梯度,对于输入层节点xi和输出层节点yj

Lxi={0,δ(i,j)=0Lyj,δ(i,j)=1

因为由链式法则有Lxi=Lyjyjxi,而yjxi=1,δ(i,j)的含义表示为xi不在yj范围内,或者xi不是最大值

而对于roi pooling layer的反向传播,作者则是采用如下方法:

经典论文重读---目标检测篇(二):Fast RCNN

对于不同候选区域,节点8都存在梯度,所以反向传播中损失函数 L 对输入层节点 xi 的梯度为损失函数 L 对各个有可能的候选区域 r( 被候选区域r的第j个输出节点选为最大值 )输出 yrj 梯度的累加:

Lxi=rj[i=i(r,j)]Lyrj

[i=i(r,j)] 表示输入层第 i 节点是否被候选区域r 的第j 个输出点选为最大值输出.

尺度不变性

有两种实现尺度不变性的方式:

  • “brute force” learning(蛮力学习法)
  • image pyramids(图像金字塔)

对于蛮力学习法,每个图像在训练和测试阶段被预先处理成特定的大小,期望网络能够学习到尺度不变性。

对于多尺度方法,主要通过图像金字塔提供尺度不变性。在测试阶段,使用图像金字塔将每个object proposal归一化。再训练阶段,则在每次对图像采样时对金字塔的尺度进行随机采样,以此作为数据增强。

作者说到采用小网络时才进行多尺度训练,因为后面的实验证明类似于vgg16的深层网络可以很好的从单一尺度学习尺度不变性。

截断奇异值分解进行FRCN检测

SVD(Singularly Valuable Decomposition)奇异值分解主要用于数据压缩,其表明任意矩阵均存在满秩分解,如下:

经典论文重读---目标检测篇(二):Fast RCNN

具体解释和证明过程详见博客

那么截断SVD在这里有什么用处呢?对于单纯的图像分类,卷积层花费的时间比全连接层计算的时间多得多。但对于检测,由于RoI数量众多,基本上一般的前向传播时间用于对这些RoI在全连接层进行计算:

经典论文重读---目标检测篇(二):Fast RCNN

列如对于全连接层的输出Y与输入X,有如下关系:

Y=W×X

其中W是权重矩阵,其维度为
u×v
,而使用SVD,我们可以讲权重矩阵W近似表示为:
W=UDVT

矩阵U的维度为
u×t
,矩阵D是一个
t×t
的对角矩阵(包含矩阵W的前t个奇异值),矩阵V的维度为
v×t
(包含矩阵W的前t个右奇异值)。通过截断SVD,可以将计算的维度从uv降到t(u+v),并且当t<<min(u,v)时,计算效率将得到显著提升,此时单个全连接层被两个全连接层替代:

经典论文重读---目标检测篇(二):Fast RCNN

相关文章:

  • 2021-12-05
  • 2022-12-23
  • 2021-03-31
  • 2021-05-09
  • 2021-06-06
  • 2021-11-30
  • 2021-10-21
猜你喜欢
  • 2021-09-11
  • 2021-10-27
  • 2021-07-06
  • 2021-09-26
  • 2021-11-06
相关资源
相似解决方案