Fast R-CNN

Fast R-CNN是要解决R-CNN和SPP-net两千个左右候选框带来的重复计算问题,其主要思想为:

(1) 使用一个简化的SPP层 —— RoI(Region of Interesting) Pooling层,操作与SPP类似;
(2) 训练和测试是不再分多步:不再需要额外的硬盘来存储中间层的特征,梯度能够通过RoI Pooling层直接传播;此外,分类和回归用Multi-task的方式一起进行;
(3) SVD:使用SVD分解全连接层的参数矩阵,压缩为两个规模小很多的全连接层。 

如图9所示,Fast R-CNN的主要步骤如下:

(1) 特征提取:以整张图片为输入利用CNN得到图片的特征层;
(2) 区域提名:通过Selective Search等方法从原始图片提取区域候选框,并把这些候选框一一投影到最后的特征层;
(3) 区域归一化:针对特征层上的每个区域候选框进行RoI Pooling操作,得到固定大小的特征表示;
(4) 分类与回归:然后再通过两个全连接层,分别用softmax多分类做目标识别,用回归模型进行边框位置与大小微调。

Fast R-CNN_第1张图片
图9 Fast R-CNN框架

Fast R-CNN比R-CNN的训练速度(大模型L)快8.8倍,测试时间快213倍,比SPP-net训练速度快2.6倍,测试速度快10倍左右。

Fast R-CNN_第2张图片
图10 Fast R-CNN, R-CNN, SPP-net的运行时间比较

blog.csdn.net/shenxiaolu1984/article/details/51036677(这里写的很好)

总结:应该是这样吧,图片,卷积,提取对应的候选框的特征,可以映射候选框对应的位置时,以候选框所在区域执行max-pooling ,获得候选框特征后,再后面接两个全连接层用于分类(K+1)和回归出框(输出4×(K+1)个值,分别是缩放和平移,估计只是最后计算loss的时候算的是所属类别的框带来的loss),训练的时候也就是训练提取特征的网络(先是在ImageNet上训练1000类分类器。结果参数作为相应层的初始化参数。再是用候选框去调优,前面初始化参数还是会被调优),以及后面的全连接层(后面有一个整体的loss去最小化训练)

你可能感兴趣的:(Fast R-CNN)