Fast-rcnn
2
图一展示了fast-RCNN的结构,一个fast_RCNN是将整个图片和一系列object proposal作为输入,网络首先用几个卷积层和最大池化层来处理图像,产生一个conv特征图,然后从特征图中的每一个ROI池化层提取一个固定长度的特征向量,每一个特征向量被输入一系列全连接层中,最后被输出到两个兄弟输出层,一个是产生softmax概率估计(K个目标类加一个背景类),另一个层是对每一个K目标类输出4个真值数量,每一组4值编码改善K类中某一种类的边界框位置。
2.1
ROI池化层使用最大池化将小于任何有效ROI的转换成有固定尺寸H*W的特征图。H和W是独立于任何ROI的层超参数,在这篇论文中,一个ROI是一个矩形窗口 ,每一个ROI是被一个四元组(r,c,h,w)定义的。
ROI的最大池化层通过将(h*w)的ROI窗口分成H*W的网格,每个尺寸h/W*w/W,然后将每一个子窗口的值进行最大池化成相应的输出网格单元。就像标准的最大池化,池化被单独应用在每一个特征图上。ROI层只是SPPnets上的额空间金字塔池化的特例,ROI池化只有一个金字塔值。
2.2预训练网络的初始化
我们在实验中用了三个预训练ImageNet网络,在5到13个卷积层中间有5个最大池化层,当一个预训练网络初始化一个fast-RCNN网络,它经历了三个变换,首先最后一个最大池化层被ROI池化层代替,池化层通过设置H和W来和第一个全连接层兼容。其次,网络的最后一个全连接层和softmax被两个兄弟层取代(),最后是网络被改为两个输入,一些突破按,和一些图片的ROIs。
2.3微调检测
用反向传播训练所有的网络权重是Fast R-CNN的重要特点。首先让我们说明为什么SPPnet不能在空间金字塔池化层下面更新权值,根本原因在于当当来自不同图像的每一个训练样本通过SPP层时BP算法是效率很低的,效率低源于每一个ROI可能有非常大的感受野,经常横跨整个输入图像,因为前向传输必须处理整个感受野,训练输入是非常大的(经常是整个图像)
我们提出了一个非常有效的训练方法,利用在训练过程中特征共享,在Fast R-CNN训练中,随机梯度下降mini-batch分层次采样