R-CNN原理详解与代码超详细讲解(一)--训练与预测过程讲解

R-CNN原理详解与代码超详细讲解(一)–训练与预测过程讲解

强调文本 强调文本

R-CNN算法,就不用多说了,它的出现,改变了目标检测的总思路,所以也称之为:深度学习在目标检测领域的先行者!!

废话不多说,直接进入正题~~~
R-CNN是所有目标检测算法中最基础,但是其中所含的思想也是最重要的,我结合github以及自己的理解,整理出了一套源码实现,直接上干货~

一、R-CNN的训练过程

这里我就偷一下懒,直接借用该博主的一张图
https://blog.csdn.net/m0_37537898/article/details/81542889

引自: https://blog.csdn.net/m0_37537898/article/details/81542889

训练过程详解及其中需要注意的问题

-1. 特征提取网络的训练
    -a. 模型:TensorFlow深度学习模型
    -b. 训练方式:在AlexNet的基础上进行fine tune微调训练(分类网络)
    -c. 训练数据:
        正样本:将所有Ground Truth(GT)以及和GT的IoU值在0.5以上的边框图形作为正样本(正样本中按照这个物体进行分类)
        负样本:讲和GT的IoU的值在0.5以下的边框图作为负样本
-2. SVM模型训练
    -a. 模型:sklearn的svm模型, 每个类别一个SVM模型(每个svm模型仅区分是否属于当前类别,还是属于背景)
    -b. 训练方式:基于AlexNet微调后的FC7层输出的特征(是因为预训练中模型学习的就是边框的类别信息)来训练SVM模型
    -c. 训练数据:
        NOTE: 使用FC7层输出的4096维高阶特征进行训练
        正样本: 所有GT实际边框的高阶特征作为正样本
        负样本:所有和GT的IoU值在0.3以下的边框作为负样本;而且由于正负样本的比例是比较悬殊的,所以最好在模型训练的时候使用一些比较难区分的负样本的数据,所以这里就采用一种hard negative mining来进行模型训练。
-3. 回归模型训练
    -a. 模型:TensorFlow深度学习模型
    -b. 训练方式:基于AlexNet微调后的Conv5层输出的特征(是因为预训练中模型学习的就是边框的类别信息, 而回归中实际上是需要基于位置信息来进行边框的微调)来训练回归模型
    -c. 训练数据:
        NOTE:使用Conv5卷积层后的输出特征,AlexNet中提出为9216维高阶向量
        训练数据:所有的GT以及和GT的IoU值在0.6以上的候选框全部作为训练数据。
-4. 额外需要的内容:
    -a. Selective Search的实现
    -b. NMS非极大值抑制的实现 

预测过程详解及其中需要注意的问题

-1. Selective Search产生候选框(候选框以及坐标)
-2. 使用训练好的特征提取网络提取候选框对应的高阶特征
    -a. 用于分类的SVM高阶特征一
        使用AlexNet的FC7层输出特征作为高阶特征
    -b. 用于回归的高阶特征二
        使用Conv5池化层输出特征作为高阶特征
-3. 使用训练好的SVM模型,对候选框提取的高阶特征一进行分类,得到当前候选框是否属于当前类别以及属于当前类别的概率值/置信度
    -a. 使用N个SVM模型分类进行预测
-4. 对于确定为物体的候选框,使用BBR对候选框进行微调。
-5. 对SVM和回归的输出结果: 候选框属于哪个类别、属于这个类别的概率值以及精修的边框位置来使用NMS非极大值抑制来确定最终的边框。
  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进我的收藏吃灰吧~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值