这一部分是针对R-CNN的大致流程的概括,更多详细的说明会在后面介绍。
一、预训练
在预训练的过程中,采用的数据集是ILSCRC样本集。ILSCRC 只有不同类别标签,没有物体对应边框的标注。预训练过程采用的是Alexnet,学习率设为0.001,输入图片大小为227*227,输出为1000类,将训练好的网络参数(除了分类层外)保存。
二、微调
1、选择搜索
通过选择搜索策略,找出2000个候选区域
2、给定label
将这2000个候选区域与Ground Truth比较,若IOU>0.5,则标记为该类
3、Wrap
将候选区域做wrap操作,使得变换后的图像大小为227*227
4、微调网络
仍然采用Alexnet,将一中预训练好的参数直接使用,但最后的分类器改为(N+1)。分类器的初始参数随机给定,将网络训练好,保存参数。
三、SVM
1、给定label
将2000个候选区域与Ground Truth比较,若IOU<03,则标记为负样本
2、SVM 分类
将微调网络的第5个池化层后提取的特征作为SVM的输入。由于SVM是一个二分类器,故要训练N个SVM。
3、非极大值抑制
通过SVM,获得2000*20维的矩阵,即每个bounding box属于各个类的概率。鉴于一个物体可能被多个bounding box包围,故采用非极大值抑制操作。
4、边框回归
通过与真实标注的边框对比,对极大值抑制后的结果进行边框回归