R-CNN的学习笔记

关于R-CNN论文的学习总结。这是我人生中第一次写博客,以记录学习过程为主,才疏浅陋,还请各位看官多多包涵,如有错误,请您指正,感激不尽。



一、 三大步骤
  1. 生成独立候选区域
  2. 将候选区域送进卷积神经网络提取特征,得到特征图谱
  3. 训练多个支持向量机对特征图谱进行分类。
    流程图
二、 非极大值抑制NMS
  • 算法目标:消除由于滑动候选框导致一个目标有多个结果显示的问题。
    NMS
  • 算法原理:利用IOU来衡量两个目标的重合度,确定一个阈值。大于这个阈值表示两个候选框所选的目标为同一个。剔除所有大于该阈值的候选框。处理次大值,迭代直到任意两个候选框的IOU都小于该阈值。
  • 算法步骤:
    1.按照得分从大到小排序所有候选框,这里已经剔除得分较低的候选框。
    2.将得分最高的候选框依次与后面的候选框两两计算IOU,剔除所有大于阈值的候选框。
    3.处理次大值,迭代直到任意两个候选框的IOU都小于该阈值。
三、 图像缩放
  • 问题提出:CNN的输入端必须是固定尺寸的。

  • 原因:CNN的卷积层可以任意尺寸,但全连接层在设计的时候尺寸是固定的。因此在将候选框送入CNN时,必须做相应的尺寸变换

  • 具体方法:

    • 各项异性变换:不管时候扭曲,直接resize为CNN的输入尺寸大小。
    • 各项同性变换
      a)将bounding box延展为正方形,resize为CNN的输入尺寸。如果超出边界补bounding box内的颜色均值。
      b)用bounding box内的颜色均值填充为正方形,resize为CNN的 输入尺寸。

      scaling
四、 训练该网络
  • 训练CNN。
    CNN采用Alexnet架构搭建网络。采用迁移训练的方法,在已经训练好的Alexnet模型上微调得到现有的网络模型。在迁移训练时,将模型的最后一层f8替换成N+1个神经元,N为带分类数,加上背景这一维。当bounding box与ground truth的IOU大于0.5时,包括ground truth,我们认为所选区域为positive,否则为negative。
  • 训练SVM。
    SVM是一个二分类问题,对于每一类物体,需要训练一个SVM分类器。将ground truth作为正样本,ground truth与bounding box的IOU<0.3的作为负样本训练。
  • hard negative mining(难例挖掘
    在训练SVM的过程中,负样本远远大于正样本,为了避免SVM向多数样本靠拢,应该使用负样本的子集来训练。这类子集应当代表负样本集中容易错判的负样本。具体的,我们将初始训练的SVM来对负样本进行预测。将错判的负样本加入困难样本集,可以看作是错题集。重新训练网络直至准确率不再提升。
  • bounding box regression(边框回归
    考虑预测框与真实框的偏差,我们求得一个函数变换,使f(P)= G。其中P=(px,py,pw,ph)。G=(gx,gy,gw,gh)。这个变换可以表示为如下形式:
    G x = P w ∗ d x ( P ) + P x Gx = Pw*dx(P)+Px Gx=Pwdx(P)+
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值