论文笔记《Fast RCNN》

Fast RCNN是加强版的SPPnet,SPPnet的细节可以参考这里,Fast RCNN相比于RCNN在时间和性能上都做了改进。它避免对一幅图片的多个proposal分别计算CNN特征(大量的重复计算),而是对整幅图提取CNN特征之后,再划分对应proposal,从而加提高了检测效率;同时对RCNN的pipeline方法做了一定整合,提升了检测性能。

1 论文信息

发表会议:ICCV2015

代码

2 Motivation

SPPnet基于RCNN做改进,它主要有2个亮点:

  • 原图不用resize到统一大小,可直接输入网络,避免失真。因为CNN限制输入的size主要是因为全连接层的结点数是固定的,卷积层是无所谓的,所以在SPPnet中,对最后一个卷积层的结果做固定尺度(如1×1, 2×2, 4×4)的spatial pooling,使得全连接层结点数固定。

  • 不用对原图的多个互相重叠的proposal各自计算CNN特征,只需对原图计算CNN特征,然后将原图proposal的位置映射到特征图上即可。

Faster CNN借鉴了这两点,并且为了整合检测pipeline,将object classification和spatial location都整合到一个网络中,使得它们可以协同地训练。

3 Method

3.1 网络结构

论文笔记《Fast RCNN》_第1张图片

3.2 主要步骤

  • 经过多层的卷积和pooling得到一组feature map
  • 通过SPP net中的ROI projection在这层feature map上找到原图的proposal对应的区域(ROI)
  • 利用spatial pooling的思路,对每个ROI做pooling。具体来说就是把h×w的ROI划分为H×W个grid/sub-window,每个grid大小是h/H × w/W,在每个grid内取max。
  • 把ROI pooling layer对每个ROI(对应回原图就是每个proposal)输出的H×W长的max pooling feature vector接全连接层
  • 全连接层之后有两个输出层,一个softmax分类器,输出该ROI对应的proposal的object类别,一个是bounding box回归层,输出category specific bounding box

3.3 网络训练

3.3.1 用预训练的网络初始化

  • 首先对于pretrained ImageNet CNN,把最后一个pooling layer改为ROI pooling layer,并且设置H和W使得spatial pooling feature的维度和全连接层第一层的结点数一致。
  • 把网络的最后一个全连接层和softmax层换成两个输出层(object分类和bbox回归)。

3.3.2 finetune网络

  • share computation

在RCNN中和SPPnet中,特征提取的CNN是直接使用pretrained model,检测误差用来训练后面的分类和bbox回归。因为Fast RCNN是对整张图计算CNN特征之后才划分proposal,通过这种共享,可以将误差回传到特征提取部分。

  • loss function

object class有K类,对于每个ROI,p是一个K+1维概率值,是该ROI对应与原图的proposal的分类打分。u代表object class的ground truth, tu=(tux,tuy,tuw,tuh) 是该ROI属于类别u时预测的bbox,v是bbox的ground truth。

L(p,u,tu,v)=Lcls(p,u)+λ[u1]Lloc(tu,v)

其中 Lcls(p,u)=logpu 是预测结果中真实类别u的概率, Lloc(tu,v)=ix,y,w,hsmmothL1(tuivi) 是把预测结果中真实类别对应的bbox和groundtruth的坐标值进行比较,这里smooth函数的设计使得对outlier更加鲁棒。

  • batch sampling

网络训练时的batch size会对训练结果有一定影响,论文中经过多次实验确定参数。

  • bp

重新定义了网络结构和网络训练的目标函数后,要重新推导BP,主要是ROI pooling layer的误差回传,实质上这里和max pooling是类似的,因为是grid内取max,所以需要找到grid内的max值的位置然后收集残差即可: Lxi=rj[i=i(r,j)]Lyrj

4 Summary

Fast RCNN通过ROI映射使得一幅图中的proposal共享卷积层,大大减少前向传播的运算量,使得检测速度更快。进一步整合RCNN中的特征提取和目标检测,联合训练网络,提高了检测性能。

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