Fast R-CNN论文笔记《Fast R-CNN》

1.Introduction

在之前介绍的R-CNN中,训练是分多阶段进行的(multi-stage pipeline),基本上都要分为4步extracting features、fine-tuning a network with log loss、training SVMs和fitting bounding box regressors。新提出的SPPnet网络也和这个过程类似,故导致训练比较缓慢。本文中,提出了一个新的单阶段训练算法,它可以同时学习去分类物体建议框和改善他们的空间位置,对应于原文中就是:We propose a single-stage training algorithm that jointly learns to classify object proposals and refine their spatial locations

2.Fast R-CNN的结构和训练

Fast R-CNN的整体结构如下所示:

      Fast R-CNN论文笔记《Fast R-CNN》_第1张图片
    

首先,输入的是一张完整图片和一组物体建议框(也叫RoIs)。


然后,对Conv feature map进行特征提取。每一个区域经过RoI pooling layer和FC layers得到一个固定长度的feature vector(这里需要注意的是,输入到后面RoI pooling layer的feature map是在Conv feature map上提取的,故整个特征提取过程,只计算了一次卷积。关于这一点的详细说明,大家可以看SPP net的论文,也可以看我前面的关于Spp-net论文笔记 ,虽然在最开始也提取出了大量的RoI,但他们还是作为整体输入进卷积网络的,我理解的最开始提取出的RoI区域只是为了最后的Bounding box 回归时使用,用来输出原图中的位置)。


最后,这些特征向量在经过全接连层之后进入两个并列的输出层:softmax layer,输出每一个RoI的概率分布;
bbox regressor,输出每一个种类的的边界盒回归偏差(至于如何理解bounding box regression,见上一篇R-CNN论
文笔记)整个结构是使用多任务损失的端到端训练(trained end-to-end with a multi-task loss)

2.1 RoI pooling layer

在本文中,每一个RoI都有一个四元组(r,c,h,w)表示,其中(r,c)表示左上角,而(h,w)则代表高度和宽 度。这一层使用最大池化(max pooling)来将RoI区域转化成固定大小的H*W的特征图。假设一个RoI的窗口大小为 h*w,则转换成 H*W之后,每一个网格都是一个h/H * w/W大小的子网,利用最大池化将这个子网中的值映射到H*W窗 口即可。Pooling对每一个特征图通道都是独立的,这是SPP layer的特例,即只有一层的空间金字塔。

2.2 从预训练的网络中初始化数据

有三种预训练的网络:CaffeNet,VGG_CNN_M_1024,VGG-16,他们都有5个最大池化层和5到13个不等的卷积层。用他们来初始化Fast R-CNN时,需要修改三处:
①最后一个池化层被RoI pooling layer取代
②最后一个全连接层和softmax被替换成之前介绍过的两个兄弟并列层
③网络输入两组数据:一组图片和那些图片的一组RoIs


2.3 检测中的微调

使用BP算法训练网络是Fast R-CNN的重要能力,前面已经说过,SPP-net不能微调spp层之前的层,主要是因为当每一个训练样本来自于不同的图片时,经过SPP层的BP算法是很低效的(感受野太大). Fast R-CNN提出SGD mini_batch分层取样的方法:首先随机取样N张图片,然后每张图片取样R/N个RoIs  e.g.  N=2 and R=128
除了分层取样,还有一个就是FRCN在一次微调中联合优化softmax分类器和bbox回归,看似一步,实际包含了多任务损失(multi-task loss)、小批量取样(mini-batch sampling)、RoI pooling层的反向传播(backpropagation through RoI pooling layers)、SGD超参数(SGD hyperparameters)。

多任务损失

两个输出层,第一个是(K+1)个类别的离散分布概率
第二个是k个类别的Bounding box regression offset
整体loss:

左边是分类损失,右边是定位损失,由于本人对数学实在无感,自己看的也是摸不到头脑,这里不再献丑,欢迎大神指导。









    

你可能感兴趣的:(深度学习,Fast,R-CNN)