Faster RCNN

Faster RCNN

1.背景简介

Faster R-CNN是作者Ross Girshick继Fast R-CNN后的又一力作。同样使用VGG16作为网络的backbone,推理速度在GPU上达到5fps(包括候选区域的生成),准确率也有进一步的提升。在2015年的ILSVRC以及COCO竞赛中获得多个项目的第一名。

2.Faster R-CNN算法流程

  • 1.将图像输入网络得到相应的特征图
  • 2.使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵
  • 3.将每个特征矩阵通过ROI pooling层缩放到7×7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。
  • RPN + Fast R-CNN
    -使用RPN替代Selective Search,RPN是指Region Proposal Network,建议区域生成网络。Faster RCNN中用RPN来代替了Fast RCNN中的SS算法
    在这里插入图片描述

3.RPN网络

在这里插入图片描述

如上图所示,conv feature map是图像输入网络得到的相应的特征图,通过sliding window处理之后产生一个256d的一维向量。该向量通过两个全连接层,分别输出分类概率scores和边界框回归参数coordinates。

其中k是指k个anchor boxes,2k个scores是每个anchor box分别为前景和背景的概率(anchor中只区分前景和背景,所有检测类别都是前景),4k个coordinates是因为每个anchor box有四个参数

  • 什么是anchor box

    首先anchor不是候选框(Proposal)。再特征图中找一个点,可以通过原图和特征图的映射关系找到原图中对应的点,以该点为中心,画出9个不同大小和长宽比的框,成为anchor。

    在这里插入图片描述

如上图所示,这些anchor里面可能包含目标,也可能没有目标。因为我们再一张图中想找的目标的大小和长宽比并不是固定的,所以这里用9个不同大小和长宽比的anchor来进行预测。

论文原文中给出了每个anchor的面积和长宽比:

在这里插入图片描述

在这里插入图片描述

所以特征图中的每个位置再原图中都会生成3×3=9个anchor,如上所示,蓝色的三个anchor是面积为128×128,依次类推。

  • RPN生成proposal的过程

    对于一张1000x600x3的图像(三通道),用3×3的卷积核进行特征提取得到60×40的特征图,则共有60×40×9(约2w个)anchor。忽略超过边界的anchor后,剩下约6000个anchor。

    对于这6000个anchor,通过RPN生成的边界框回归参数将每个anchor调整为proposal(前面提到了每个anchor结果RPN都输出两个概率和4个边界框回归参数),这里就能看到anchor和proposal的区别。这个过程就是RPN生成候选框的过程。

    RPN生成候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每张图片只剩2k个候选框。

4.Faster RCNN框架

Faster RCNN 在Fast RCNN的基础上更进一步,将候选框生成也融入到CNN网络中,使得 候选框生成、特征提取、候选框分类、候选框边界回归这四大部分都结合在一个CNN网络中,避免了分步训练,实现了真正端到端的目标检测。

5.训练数据的采样

  • 正负样本定义:
  • 1.只要anchor和标注的准确的目标边界框IOU超过0.7就是一个正样本
  • 2.标注准确的目标相交最大的最大的anchor就是正样本

6.RPN损失

在这里插入图片描述

在这里插入图片描述

  • 1.分类损失

    在这里插入图片描述

在这里插入图片描述

如上图所示第一个anchor真实标签为1,所以Lcls=-log0.9。第二个anchor真实标签为0,所以Lcls=-log0.2。依次类推

注意:使用二值交叉熵损失,cls layer之预测 k scores

在这里插入图片描述

  • 边界框回归损失

    在这里插入图片描述

在这里插入图片描述

7.Faster R-CNN训练

直接采用RPN Loss+Fast R-CNN Loss的联合训练方法。

原论文中采用分别训练RPN及Fast R-CNN Loss的联合训练方法

  • 利用ImageNet与训练分类模型初始化前置卷积网络层参数,并开始单独训练RPN网络参数
  • 固定RPN网络独有的卷积层以及全连接层参数,再利用ImageNet预训练分类模型初始化前置卷积网络参数,并利用RPN网络生成的目标建议框去训练Fast RCNN网络参数
  • 固定利用Fast RCNN训练好的前置卷积网络层参数,去微调RPN网络独有的卷积层以及全连接层参数
    用Fast RCNN训练好的前置卷积网络层参数,去微调RPN网络独有的卷积层以及全连接层参数
  • 同样保持固定前置卷积网络层参数,去微调Fast RCNN网络的全连接层参数。最后RPN网络与Fast RCNN网络共享前置卷积网络层参数,构成一个统一的网络
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Faster-RCNN是一种用于目标检测的深度学习网络。它的训练过程可以分为三个步骤。首先,在第一步中,使用预训练的ImageNet权重来初始化网络的共享卷积层,然后随机初始化Faster-RCNN特有的层。接下来,在第二步中,使用第一步训练好的共享卷积层和Faster-RCNN特有层来初始化Faster-RCNN网络,并只对特有部分进行微调。最后,在第三步中,再次使用ImageNet的预训练权重来初始化Faster-RCNN网络的共享卷积层,然后训练整个Faster-RCNN网络。在这个过程中,共享卷积层和Faster-RCNN特有层的权重都会被更新。\[2\]\[3\] Faster-RCNN的网络框架包括一个共享卷积层和两个子网络:区域建议网络(Region Proposal Network,RPN)和目标分类网络。RPN用于生成候选目标区域,而目标分类网络用于对这些候选区域进行分类和定位。RPN通过滑动窗口在不同位置和尺度上生成候选框,并使用锚框来对这些候选框进行调整和筛选。然后,目标分类网络对这些候选框进行分类,确定它们是否包含目标,并对目标进行精确定位。整个网络的训练过程是通过最小化分类误差和边界框回归误差来进行的。 总的来说,Faster-RCNN是一种用于目标检测的深度学习网络,通过共享卷积层和两个子网络(RPN和目标分类网络)来实现目标的检测和定位。训练过程包括三个步骤,其中使用预训练的ImageNet权重来初始化网络的共享卷积层,并通过微调和更新权重来提高网络的性能。\[2\]\[3\] #### 引用[.reference_title] - *1* [【15】Faster-RCNN网络详细解读](https://blog.csdn.net/qq_33612665/article/details/111354100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [一文读懂Faster RCNN(大白话,超详细解析)](https://blog.csdn.net/weixin_42310154/article/details/119889682)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值