R-CNN 目标检测算法详细总结分析(two-stage)(深度学习)(CVPR 2014)

版权声明:转载时,请务必注明文章出处网址,谢谢! https://blog.csdn.net/Gentleman_Qin/article/details/84366841

论文名称:《 Rich feature hierarchies for accurate object detection and semantic segmentation 》

论文下载:https://arxiv.org/pdf/1311.2524.pdf

论文代码:https://github.com/rbgirshick/rcnn


一、 网络结构:

图1 R-CNN网络结构

二、训练过程:

    1、有监督预训练

数据集为ILSVRC2012,ILSVRC样本集上仅有图像类别标签,没有图像物位

置标注; 
采用AlexNet CNN网络进行有监督预训练,学习率=0.01; 该网络输入为

227×227的ILSVRC训练集图像,输出最后一层为4096维特征—>1000类的映

射,训练网络参数。

    2、特定样本下的微调

PASCAL VOC 2007样本集上既有图像中物体类别标签,也有图像中物体位

置标签; 
采用训练好的AlexNet CNN网络进行PASCAL VOC 2007样本集下的微调,

学习率=0.001【0.01/10为了在学习新东西时不至于忘记之前的记忆】; 

mini-batch为32个正样本和96个负样本【由于正样本太少】; 该网络输入

为候选框【由selective search而来】变形后的227×227的图像,修改了原来的1000为类别输出,改为21维【20类+背景】输出,训练的是网络参数。

正样本: Ground Truth+与Ground Truth相交IoU>0.5的建议框

负样本:与Ground Truth相交IoU≤0.5的建议框

    3、SVM训练

正样本: Ground Truth

负样本:与Ground Truth相交IoU≤0.3的建议框
由于SVM是二分类器,需要为每个类别训练单独的SVM; 
SVM训练时输入正负样本在AlexNet CNN网络计算下的4096维特征,输出为该类的得分,训练的是SVM权重向量; 
由于负样本太多,采用hard negative mining的方法在负样本中选取有代表性的负样本,该方法具体见。

    4、Bounding-box regression训练

正样本:与Ground Truth相交IoU最大的Region Proposal,并且与Ground Truth相交IoU>0.6的建议框

学习从建议框向Ground Truth变换的横向和纵向平移、放缩这四种线性变换函数的权值。

三、测试流程:

  1. 输入一张多目标图像,采用selective search算法提取约2000个建议框;
  2. 在每个建议框周围加上16个像素值为建议框像素平均值的边框,再直接将框变形为227×227的大小;
  3. 将所有建议框像素减去该建议框像素平均值后【预处理操作】,再依次将每个227×227的建议框输入AlexNet CNN网络获取4096维的特征,将CNN的fc7层的输出作为特征,2000个建议框的CNN特征组合成2000×4096维矩阵;
  4. 将每个region proposal提取到的CNN特征输入到每一类的SVM进行分类,判别是否属于该类:将2000×4096维特征与20个SVM组成的权值矩阵4096×20相乘【20种分类,SVM是二分类器,则有20个SVM】,获得2000×20维矩阵表示每个建议框是某个物体类别的得分;
  5. 分别对上述2000×20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框;
  6. 分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,精细修正候选框位置,最终得到每个类别的修正后的得分最高的bounding box。

四、selective search算法:

采取过分割手段,将图像分割成小区域,再通过颜色直方图,梯度直方图

相近等规则进行合并,最后生成约2000个建议框。

五、非极大值抑制:

(1)对2000×20维矩阵中每列按从大到小进行排序; 
(2)从每列最大的得分建议框开始,分别与该列后面的得分建议框进行IoU计算,若IoU>阈值,则剔除得分较小的建议框,否则认为图像中存在多个同一类物体; 
(3)从每列次大的得分建议框开始,重复步骤(2); 
(4)重复步骤③直到遍历完该列所有建议框; 
(5)遍历完2000×20维矩阵所有列,即所有物体种类都做一遍非极大值抑制; 
(6)最后剔除各个类别中剩余建议框得分少于该类别阈值的建议框。

六、创新点:

(1)采用高容量的CNN进行特征提取

(2)采用大样本下有监督预训练+小样本微调的方式解决小样本难以训练甚至过拟合等问题。小样本数据训练很容易造成网络过拟合,但是在大样本训练后利用其参数初始化网络可以很好地训练小样本,这解决了小样本训练的难题。文中利用ILSVRC2012的训练集先进行有监督预训练,再利用PASCAL 2007进行微调。

七、存在问题:

(1)需要多级训练,特征提取网络,分类器,边界回归需要分别训练。

(2)计算复杂度高,重复计算。建议框的数量有几千个,多数都是互相重叠,重叠部分会被多次重复提取特征,训练的时间和空间开销大。

(3)为每个目标候选框进行卷积神经网络正向传递,而不共享计算,导致检测速度很慢。

 

猜你喜欢

转载自blog.csdn.net/Gentleman_Qin/article/details/84366841