参考学习博客:https://blog.csdn.net/wopawn/article/details/52133338
1 创新点
- 采用CNN网络提取图像特征,从经验驱动的人造特征范式HOG、SIFT到数据驱动的表示学习范式,提高特征对样本的表示能力;
- 采用大样本下有监督预训练+小样本微调的方式解决小样本难以训练甚至过拟合等问题。
2 测试过程
-
输入一张多目标图像,采用selective search算法提取约2000个建议框;
-
先在每个建议框周围加上16个像素值为建议框像素平均值的边框,再直接变形为227×227的大小;
-
先将所有建议框像素减去该建议框像素平均值后【预处理操作】,再依次将每个227×227的建议框输入AlexNet CNN网络获取4096维的特征【比以前的人工经验特征低两个数量级】,2000个建议框的CNN特征组合成2000×4096维矩阵;
-
将2000×4096维特征与20个SVM组成的权值矩阵4096×20相乘【20种分类,SVM是二分类器,则有20个SVM】,获得2000×20维矩阵表示每个建议框是某个物体类别的得分;
-
分别对上述2000×20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框;
-
分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box。
3 训练过程
微调阈值0.5 + SVM训练阈值0.3
3.1 有监督预训练
样本 | 来源 |
正样本 | ILSVRC2012 |
负样本 | ILSVRC2012 |
-
ILSVRC样本集上仅有图像类别标签,没有图像物体位置标注;
-
采用AlexNet CNN网络进行有监督预训练,lr=0.01
-
该网络输入为227×227的ILSVRC训练集图像,输出最后一层为4096维特征->1000类的映射,训练的是网络参数
3.2 特定样本下的微调
样本 | 来源 |
正样本 | Ground Truth+与Ground Truth相交IoU≥0.5的建议框 【由于Ground Truth太少了】 |
负样本 | 与Ground Truth相交IoU<0.5的建议框 |
-
PASCAL VOC 2007样本集上既有图像中物体类别标签,也有图像中物体位置标签;
-
采用训练好的AlexNet CNN网络进行PASCAL VOC 2007样本集下的微调,学习率=0.001【0.01/10为了在学习新东西时不至于忘记之前的记忆】;
-
mini-batch大小为128,包括32个正样本和96个负样本,采样的正样本较少是因为它们与背景相比非常罕见;
-
该网络输入为建议框【由selective search而来】变形后的227×227的图像,修改了原来的1000为类别输出,改为21维【20类+背景】输出,训练的是网络参数。
3.3 SVM训练
样本 | 来源 |
正样本 | Ground Truth |
负样本 | 与Ground Truth相交IoU<0.3的建议框 |
-
由于SVM是二分类器,需要为每个类别训练单独的SVM;
-
SVM训练时输入正负样本在AlexNet CNN网络计算下的4096维特征,输出为该类的得分,训练的是SVM权重向量;
-
由于负样本太多,采用hard negative mining的方法在负样本中选取有代表性的负样本。
3.4 Bounding-box回归
样本 | 来源 |
正样本 | 与Ground Truth相交IoU最大的Region Proposal,并且IoU>0.6的Region Proposal |
4 结果
PASCAL VOC 2012train微调,trainval优化SVM
-
PASCAL VOC 2010测试集上实现了53.7%的mAP;
-
PASCAL VOC 2012测试集上实现了53.3%的mAP;
- ILSVRC 2013检测测试集上实现了31.4%的mAP;
-
计算Region Proposals和features平均所花时间:13s/image on a GPU;53s/image on a CPU。
5 可视化
特征矩阵:2000*4096
SVM:4096*N,N为类别数,有几个类就有几个线性SVM
2000*N:表示建议框是某个类别的得分
-
ImageNet N=1000(N为类别)
-
VOC N=20
-
ILSVRC2013 N = 200
将AlexNet CNN网络中Pool5层特征进行了可视化,该层的size是6×6×256=9216维,有256种表示不同的特征
6 网络结构
(1)输入一张图像;(2)提取约2000个自下而上区域提案;(3)使用大的卷积神经网络(CNN)计算每个提案的特征;(4)使用类别特定的线性SVM
- conv1-pool1→conv2- pool2→conv3→conv4→conv5-pool5→fc6→fc7→fc8(softmax)
- AlexNet网络是由八层网络组成的,包括5层卷积层和3层全连接层
- AlexNet的输入部分是224*224*3的图片,经过预处理之后,变为227*227*3的大小,作为网络的输入部分。
- ReLU:g(z)=max(0,z)
7 注意点
-
对图像缩放前,先填充p=16,再进行缩放
-
在运行选择性搜索之前,需要将每个图像的大小调整为固定的宽度(500像素)
-
选择性搜索导致每个图像上平均有2403个区域提案
-
R-CNN中的三个阶段需要训练数据:CNN微调;检测器SVM训练;Bounding-box回归训练。
-
CNN的大部分表达能力来自其卷积层,而不是来自于更密集的全连接层。