Fast RCNN论文详解

Fast RCNN

1. Introduction

1.1 R-CNN

R-CNN存在以下几个问题:

  1. Training is a multi-stage pipeline: 训练分多步,每次训练需要fine tuning一个预训练网络,然后region proposals要通过selective search算法获取,还有针对每一个类别都训练一个SVM分类器,最后还要用regressorbounding box进行回归
  2. Training is expensive in space and time: 时间和内存消耗比较大,在训练SVM分类器和bounding box回归器时需要用网络提取的特征作为输入,特征保存在磁盘上再读入的时间消耗是比较大的
  3. Object detection is slow: 测试时比较慢,每张图片的每个region proposals都要卷积,重复操作太多

1.2 Contributions

  1. 更好的检测效果相较于RCNN和SPPNet
  2. 训练是单阶段的,使用多任务损失,即分类损失和回归损失组合在一起
  3. 训练可以更新所有的网络层
  4. 不需要磁盘来存储特征

2. Architecture

Fast RCNN论文详解_第1张图片

Fast RCNN步骤如下:

  1. 利用selective search算法提取region proposals候选区域
  2. 将整张图片输入 C N N CNN CNN网络中,提取特征,获得feature maps
  3. region proposals候选区域映射到feature maps上,得到RoI projection
  4. 通过ROI Pooling LayerRoI projection变成固定大小的特征图
  5. 将固定大小的特征图通过一系列FC层得到固定长度的特征向量输入到softmaxbbox regressor中。利用softmax loss分类损失和smoothL1 loss回归损失进行联合训练

3. ROI Pooling Layer

RoI池化层使用最大池化将任何有效区域内的特征转化成一个小的带有固定空间范围HxW(比如下图2x2)的特征图
Fast RCNN论文详解_第2张图片

4. Multi-task Loss

4.1 分类损失

与RCNN不同,Fast RCNN使用softmax作为分类器,其真实类别为 u u u的损失定义如下
L c l s ( p , u ) = − l o g p u L_{cls}(p,u)=-logp_u Lcls(p,u)=logpu
其中 p u p_u pu代表预测为类别 u u u的概率

4.2 回归损失

类别 u u u的真实边界框定义为: v = ( v x , v y , v w , v h ) v=(v_x, v_y, v_w, v_h) v=(vx,vy,vw,vh);类别 u u u的预测边界框定义为: t u = ( t x u , t y u , t w u , t h u ) t^u=(t_x^u, t_y^u, t_w^u,t_h^u) tu=(txu,tyu,twu,thu)。对于回归损失定义如下:
L l o c ( t u , v ) = ∑ i ∈ { x , u , w , h } s m o o t h L 1 ( t i u − v i ) L_{loc}(t^u, v)=\sum_{i \in \{x,u,w,h\}}smooth_{L1}(t_i^u-v_i) Lloc(tu,v)=i{x,u,w,h}smoothL1(tiuvi)
其中:
s m o o t h L 1 ( x ) = { 0.5 x 2 i f ∣ x ∣ < 1 ∣ x ∣ − 0.5 o t h e r w i s e smooth_{L1}(x) = \begin{cases} 0.5 x^2 & if \quad |x| < 1 \\ |x|-0.5 & otherwise \end{cases} smoothL1(x)={0.5x2x0.5ifx<1otherwise

4.3 联合损失

L ( p , u , t u , v ) = L c l s ( p , u ) + λ [ u ≥ 1 ] L l o c ( t u , v ) L(p,u, t^u, v)=L_{cls}(p, u) + \lambda[u \geq 1]L_{loc}(t^u, v) L(p,u,tu,v)=Lcls(p,u)+λ[u1]Lloc(tu,v)
其中中括号项代表这样一个函数:当 u ≥ 1 u ≥ 1 u1时,返回1,否则返回0。根据约定代表全部剩余一切的背景类标注成 u = 0 u=0 u=0。所以对于背景而言,没有标注框信息,因而 L l o c L_{loc} Lloc就忽略了。

5. Fast RCNN网络结构

Fast RCNN论文详解_第3张图片

论文中还有采用SVD分解改进全连接层Mini-Batch 采样RoI 反向传播,在此只介绍较为重要的部分。


参考资料:

  1. https://blog.csdn.net/u014380165/article/details/72851319
  2. https://perper.site/2019/02/14/Fast-RCNN%E8%AF%A6%E8%A7%A3/
  3. https://deepsense.ai/region-of-interest-pooling-explained/

你可能感兴趣的:(目标检测,fast,rcnn,目标检测)