目标检测笔记-Faster R-CNN

Faster R-CNN

1.R-CNN

  • 2014年由Ross Girshick在论文Rich feature hierarchies for accurate object detection and semantic segmentation中提出。

    捕获

1)RCNN算法流程:

1.一张图片生成1K~2K个候选区域(使用Selective Search方法)

捕获

2.对每个候选区域,使用深度网络提取特征

捕获

3.特征送入每一类的SVM分类器,判别是否属于该类

捕获

捕获

4.使用回归器精细修正候选框位置

捕获

2)R-CNN存在的问题:

​ 1.测试速度慢

​ 2.训练速度慢

​ 3.训练所需空间大

2.Fast R-CNN

捕获

​ 在选取特征值时,R-CNN需要重复计算候选区域的特征值,fast R-CNN,只需要计算整张图的特征值,然后将候选区域映射到特征图上,从而大大减少了计算量。

​ 在训练时并不是选择所有的候选框,只会取一部分,训练数据的采样要有正样本和负样本,在作者的论文中,一次采用64个候选框,其中有正样本和负样本,作者认为只要候选框和真实的样本框IOU大于0.5那么就认定为正样本,小于0.5的就认证为负样本。

​ 选取样本后通过ROI Pooling 层缩放到7*7的大小

1)分类器

​ 输出N+1个类别的概率,N个检测目标的种类,一个背景,通过softmax函数后的所有概率相加的和为1。捕获

2)边界框回归器

​ 输出对应N+1个类别的候选边界框回归参数( d x , d y , d w , d h d_x,d_y,d_w,d_h dx,dy,dw,dh),共(N+1)*4个节点。
捕获
捕获

3)损失函数

​ 损失函数同样分为分类损失和边界框回归损失。

捕获

  • 分类损失: L c l s ( p , u ) = − l o g p u L_{cls}(p,u)=-log p_u Lcls(p,u)=logpu​​​即为softmax交叉熵损失​

    交叉熵损失(Cross Entropy Loss)

  1. 多分类问题(softmax输出,所有输出概率和为1)

H = − ∑ i o i ∗ l o g ( o i ) H = -\sum_io_i^*log(o_i) H=ioilog(oi)​​

  1. 二分类问题(sigmoid输出,每个输出节点之间互不影响)

H = − 1 N ∑ i = 1 N [ o i ∗ l o g o i + ( 1 − o i ∗ ) l o g ( 1 − o i ) ] H = -\frac{1}{N}\sum_{i=1}^N[o_i^*logo_i+(1-o_i^*)log(1-o_i)] H=N1i=1N[oilogoi+(1oi)log(1oi)]

ps: 其中 o i ∗ o_i^* oi​​为真实标签值, o i o_i oi​为预测值,默认 l o g log log​以 e e e​为底等于 l n ln ln

  • 边界框回归损失: [ u > = 1 ] [u>=1] [u>=1]​​​​​​是艾弗森括号​,当u>=1时为1,其余为0。
    艾弗森括号代表着,当检测目标为背景时边界框损失不存在
    捕获

    边界框回归参数 v i v_i vi使用 G i G_i Gi​公式反解即可。

4)Fast R-CNN框架

捕获

3.Faster R-CNN(RPN+Fast R-CNN)

1

2

​ 对比Fast R-CNN,Faster R-CNN只是使用一个RPN网络替代了SS候选框生成算法

1)RPN结构

捕获

  • 特征图的获取,使用ZF卷积网络得到256通道的特征图,使用VGG16卷积网络得到512通道的特征图

  • 根据特征图对应的原图位置(这里使用特征图与原图的等比例对应即可,允许有误差,即比例不为整时取整),框出K个指定大小(下面是作者使用的大小)的anchor boxes

    捕获

  • 通过上述步骤可以得到近2w个anchor boxes,去除跨越边缘的还剩6k,其中有很多框有重合部分,使用非极大值抑制IOU设置为0.7,这样每张图片只剩下2k个候选框。

  • 通过cls layer生成2K个类别分数(背景和物体的概率,此处使用softmax多分类,若使用sigmoid二分类则为K个类别分数),通过reg layer生成4K个边界框回归参数捕获

  • 关于正负样本:样本与标定框IOU大于0.7或者是最大的一个称为正样本小于0.3的称为负样本

2)RPN损失函数

捕获

分类损失使用的交叉熵计算(根据分类使用算法选择多分类还是二分类),边框回归损失计算同Fast R-CNN边界框损失计算一致 λ \lambda λ​文章中的取值为10,故可近似合并参数。后面Fast R-CNN网络的损失函数与之前一致。文章中采用双网络单独训练一般直接使用RPN和Fast R-CNN损失联合训练的方法

3)Faster R-CNN框架

捕获

4)存在的问题

  • 对小目标检测效果差高层次的抽象,导致特征丢失。
  • 模型大,检测速度较慢,主要原因是因为两次预测。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值