目标检测RCNN流程

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:

https://blog.csdn.net/xjz18298268521/article/details/52412991

https://www.cnblogs.com/gongxijun/p/7071509.html?utm_source=debugrun&utm_medium=referral

https://www.cnblogs.com/gongxijun/p/7071509.html?utm_source=debugrun&utm_medium=referral

猜你喜欢

转载自blog.csdn.net/XLM11/article/details/81703907