RCNN训练流程
1、用标注图片有监督预训练CNN网络
迁移学习,可解决标注框不多,训练样本少的问题
2、selective search提取候选框(region proposal)
先根据纹理、色彩、直方图等特征将图片划分出不同的区域,分别计算这n个区域的两两相似度,再将相似度最大的两个区域合并,去掉合并的两个区域,重新计算两两相似度,再合并,直到只剩一个区域,最初划分的区域并上这个过程中产生的所有区域即为候选框,一般一张图选择2k个候选框。
3、将候选框调整成227*227大小
所用网络为AlexNet,所以输入大小是227*227,可以直接在原图上扩展,或者暴力resize,或者在原图上扩展部分再resize
4、与Ground Truth的IOU>0.5为正例(N类),与所有Ground TruthIOU<=0.5为背景(1类),以这种方式挑选候选框微调CNN分类网络
为什么要微调,微调能让cnn学到针对特定任务的特征,更有针对性。
训练时,mini-batch为32个正样本和96个负样本,因为负样本太多。学习率为0.01/10,变小是因为避免忘记之前特征。
5、再次选择样本,与所有Ground Truth的IOU全都小于0.3为负例,真实标定类别的Ground Truth为正例,用3中微调的网络提取特征,训练N个SVM分类器
两次训练样本选择标准不一样是因为:微调阶段是由于CNN对小样本容易过拟合,需要大量训练数据,故对IoU限制宽松:Ground Truth+与Ground Truth相交IoU>0.5的建议框为正样本,否则为负样本; SVM这种机制是由于其适用于小样本训练,故对样本IoU限制严格:Ground Truth为正样本,与Ground Truth相交IoU<0.3的建议框为负样本。
6、每张图片,根据N个svm分类器的分类结果,用非极大抑制删除大面积重复的候选框,只保留跟Ground Truth的IOU最大的那个
① 对2000×20维矩阵中每列按从大到小进行排序;
② 从每列最大的得分建议框开始,分别与该列后面的得分建议框进行IoU计算,若IoU>阈值,则剔除得分较小的建议框,否则认为图像中存在多个同一类物体;
③ 从每列次大的得分建议框开始,重复步骤②;
④ 重复步骤③直到遍历完该列所有建议框;
⑤ 遍历完2000×20维矩阵所有列,即所有物体种类都做一遍非极大值抑制;
⑥ 最后剔除各个类别中剩余建议框得分少于该类别阈值的建议框。
7、用剔除后的候选框训练回归器
损失函数的意义:预测值到GroundTruth的映射要尽可能接近从预选框变换到Ground truth的映射
reference: