目标检测:R-CNN,Fast R-CNN,Faster R-CNN(详解)

目标检测:R-CNN,Fast R-CNN,Faster R-CNN(详解)

1. R-CNN

R-CNN主要分为下面四个步骤:

  1. 候选区域生成: 一张图像生成1K~2K个候选区域 (采用Selective Search 方法),然后裁剪出每个候选区并说放到227x227大小
  2. 特征提取: 对每个候选区域,使用深度卷积网络提取特征 (CNN)
  3. 类别判断: 特征送入每一类的SVM 分类器,判别是否属于该类
  4. 位置精修: 使用回归器精细修正候选框位置

2. Fast R-CNN

Fast R-CNN主要是对R-CNN的后面三个步骤进行改进

Fast R-CNN的主要步骤:

  1. 输入图像:输入一张待检测的图像

  2. 候选区域生成: 使用Selective Search算法,在输入图像上生成1K~2K个候选区域

  3. 特征提取:将整张图像传入CNN提取特征

  4. 候选区域特征:利用RolPooling分别生成每个候选区域的特征

    RolPooling:利用特征采样,将不同大小的特征,变成大小一致的特征

  5. 候选区域分类和回归:利用扣取的特征,对每个候选区域进行分类和回归

3. Faster R-CNN

Faster R-CNN主要是对Fast R-CNN的候选区域生成进行改进,使用Region Proposal Network(RPN)结构进行区域生成,所以,FasterR-CNN可以简单的看做是RPN+Fast R-CNN。
Faster R-CNN可以大致分为三部分,首先是backbone,用来提取特征图,可以使用VGG16,ZF网络等进行特征提取,然后就是RPN,进行候选框生成,最后就是ROlPooling与分类网络,对候选框进行分类和微调。下图是FasterR-CNN的大致流程图
在这里插入图片描述

RPN结构

经过backbone后得到的特征图传入RPN,其中backbone中的网络可以使用VGG16,ZF网络等,如果使用VGG16训练得到的特征图,则是特征图的深度是512,如果使用ZF网络,则是256。
然后将特征图padding=1,再对特征图使用3x3的卷积核以步长为1进行卷积,并计算以卷积核中心点对应原始图像上的中心点,并计算出K个anchor boxes,生成的anchor有三种面积,三种比例,也就是每个中心点都会生成3x3=9个anchor boxes
在这里插入图片描述
特征图经过一个共同的3x3卷积层,两个独立的1x1深度为2k和4k的卷积层,输出2k个scores,和4k个coordinates
在这里插入图片描述
2k个scores2个为一组,分别表示每个anchor为前景和后景的概率,4k个coordinates4个为一组,分别表示每个anchor的中心坐标和宽度高度,
在这里插入图片描述
用这些回归参数,将生成的anchor去调成成候选框,此时生成的候选框还存在大量的重叠,再使用cls得分,采用非极大值抑制,去除大量重叠和不是目标的候选框。
最后,从这些候选框中选出正负样本,对于每一个ground truth box ,选择和它重叠度(IoU)最高的一个anchor作为正样本,
对于剩下的anchor,从中选择和任意一个ground truth box重叠度超过0.7的anchor,作为正样本,正样本的数目不超过128个。随机选择和ground truth box重叠度小于0.3的anchor作为负样本。负样本和正样本的总数为256,其余的anchor丢弃。

损失函数

L ( { p i } , { t i } ) = 1 N c l s ∑ i L c l s ( p i , p i ∗ ) + λ 1 N r e g ∑ i p i ∗ L r e g ( t i , t i ∗ ) L(\{p_i\},\{t_i\})=\frac{1}{N_{cls}}\sum_i{L_{cls}(p_i,p_i^*)+\lambda\frac{1}{N_{reg}}\sum_i{p_i^*L_{reg}(t_i,t_i^*)}} L({pi},{ti})=Ncls1iLcls(pi,pi)+λNreg1ipiLreg(ti,ti)
其中,
p i p_i pi表示第i个anchor预测为真实标签的概率
p i ∗ p_i^* pi当为正样本时为1,当为负样本时为0
t i t_i ti表示预测第i个anchor的边界框回归参数
t i ∗ t_i^* ti表示第i个anchor对应的ground truth box的边界框回归参数
N c l s N_{cls} Ncls表示一个mini-batch中的所有样本数量256
N r e g N_{reg} Nreg表示anchor位 置的个数(不是anchor个数)约2400

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_-CHEN-_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值