论文名称:《 Rich feature hierarchies for accurate object detection and semantic segmentation 》
论文下载:https://arxiv.org/pdf/1311.2524.pdf
论文代码:https://github.com/rbgirshick/rcnn
一、 网络结构:
二、训练过程:
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变换的横向和纵向平移、放缩这四种线性变换函数的权值。
三、测试流程:
- 输入一张多目标图像,采用selective search算法提取约2000个建议框;
- 在每个建议框周围加上16个像素值为建议框像素平均值的边框,再直接将框变形为227×227的大小;
- 将所有建议框像素减去该建议框像素平均值后【预处理操作】,再依次将每个227×227的建议框输入AlexNet CNN网络获取4096维的特征,将CNN的fc7层的输出作为特征,2000个建议框的CNN特征组合成2000×4096维矩阵;
- 将每个region proposal提取到的CNN特征输入到每一类的SVM进行分类,判别是否属于该类:将2000×4096维特征与20个SVM组成的权值矩阵4096×20相乘【20种分类,SVM是二分类器,则有20个SVM】,获得2000×20维矩阵表示每个建议框是某个物体类别的得分;
- 分别对上述2000×20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框;
- 分别用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)为每个目标候选框进行卷积神经网络正向传递,而不共享计算,导致检测速度很慢。