经典网络解读系列(一):RegionProposal+CNN (rcnn)

论文来自《Rich feature hierarchies for accurate object detection and semantic segmentation

目标:

目标检测

 

模型结构:

1、使用select search对每张图像产生1k-2k个候选区域(这一步和目标类别无关)

2、对候选区域resize到统一尺寸。(227*227)这里resize的方法有三种:    

        1)在原图像上扩展候选框成一个正方形,然后resize到想要的尺寸(227*227)

        2)仍然是扩展成一个正方形,但扩展时候填充的内容不是图像,而是使用其他值,比如0,比如图像均值。最后再resize

        3)直接resize成227*227

对于超出图像边缘的候选框,填充图像均值。

讲resize后的候选框输入CNN提取特征。

3、输入SVM分类器,确定这些候选框的类别。

4、使用非极大值抑制减少冗余的候选框数量。对剩余的候选框通过检测框回归模型,修正最终的位置。

 

 

训练:

包括三部分:CNN的训练、SVM的训练、线性回归模型的训练。

训练时用到的数据:

预先提取出的候选区域和给定的检测框

 

1、CNN训练

首先使用大型的辅助集(ILSVRC 1000类)对CNN(VGG16等)进行图像级预训练(每张图片对应一个标签,没有检测框标记)----------->然后只使用提取出的region proposal进行训练,类别的数目是(N+1   N类目标+背景)替换上一阶段使用的1000类别的分类器层 。

标签的确定:

如果候选框与任意一个给定的检测框IOU>=0.5 认为该候选框是这个检测框对应的这一类(+),如果和所有检测框IOU<0.5,标记为负样本。   所有物体类别是+,背景是-。在训练的时候,每个批次输32个正样本+96个负样本----------->完成了CNN的训练。

不同的CNN结构对结果影响很大。

 

2、SVM训练

对于每一类训练一个SVM

输入是候选区域通过CNN提取出的4096维特征,输出是 是否属于此类

标签的确定:

如果候选框与某类给定的检测框IOU>=0.3认为该候选框是这个检测框对应的这一类(+),否则为-。

 

SVM训练完成。

 

作者有尝试使用softmax 发现效果不好。

 

3、检测框回归模型

我们对得到的候选框区域进行微调,使其更精确。

 

我们的训练算法的输入是一组NN个训练对(Pi,Gi)i=1,…,N(Pi,Gi)i=1,…,N,其中Pi=(Pix,Piy,Piw,Pih)Pi=(Pxi,Pyi,Pwi,Phi)指定提案PiPi的边界框中心的像素坐标以及宽度和高度(以像素为单位)。注意,除非需要,下文中我们不再写出上标ii。每个检测框真值GG以相同的方式指定:G=(Gx,Gy,Gw,Gh)G=(Gx,Gy,Gw,Gh)。我们的目标是学习将提案框PP映射到检测框真值G的转换。

我们使用四个函数dx(P),d
y(P)
dw(  P)和dh(P))参数化这个转换。前两个指定PP的边界框的中心的比例不变的平移,后两个指定P的边界框的宽度和高度的对数空间转换。在学习了这些函数后,我们可以通过应用转换将输入提案P转换成预测的检测框真值Gˆ。Gˆx=Pwdx(P)+Px(1)

Gˆy=Phdy(P)+Py(2)

Gˆw=Pwexp(dw(P))(3)

Gˆh=Phexp(dh(P))(4)

每个函数d⋆(P)d⋆(P)(⋆表示x,y,w,h中的一个)都建模为提案PP的pool5特征(记为ϕ5(P),对图像数据的依赖隐含的假定)的线性函数。即d⋆(P)=wTϕ5(P),其中w⋆w⋆表示模型和训练参数的一个向量,通过优化正则化最小二乘法的目标(脊回归)来学习w⋆w⋆。w⋆=argminwˆ⋆∑Ni(ti⋆−wˆTϕ5(Pi))2+λwˆ⋆∥2(5)

训练对(P,G)的回归目标t⋆t⋆定义为:tx=(GxPx)/Pw(6)

ty=(GyPy)/Ph(7)

tw=log(Gw/Pw)(8)

th=log(Gh/Ph)(9)

作为标准正则化最小二乘问题,可以有效的找到封闭解。

我们在实现边界回归的过程中发现了两个微妙的问题。第一是正则化是重要的:我们基于验证集,设置λ=1000。第二个问题是,选择使用哪些训练对(P,G)时必须小心。直观地说,如果PP远离所有的检测框真值,那么将PP转换为检测框真值G的任务就没有意义。使用像P这样的例子会导致一个无望的学习问题。因此,只有当提案P至少在一个检测框真值附近时,我们才执行学习任务。“附近”即,将PP分配给具有最大IoU的检测框真值G(在重叠多于一个的情况下),并且仅当重叠大于阈值(基于验证集,我们使用的阈值为0.6)。所有未分配的提案都被丢弃。我们为每个目标类别执行一次,以便学习一组特定于类别的检测框回归器。

在测试时,我们对每个提案进行评分,并预测其新的检测框一次。原则上,我们可以迭代这个过程(即重新评估新预测的检测框,然后从它预测一个新的检测框,等等)。但是,我们发现迭代不会改进结果。

 

 

 

测试:

对每幅图像-->2k个region proposal -->resize-->cnn fearture-->SVM

cnn feature 2000*4096

SVM权重矩阵 4096×N

点乘--2000×N

对于每一类,得到2000个得分(2000个候选框),使用非极大值抑制(NMS 改进版soft-NMS)消除掉大部分的候选框,最后对剩下的候选框回归修正。

评价标准:map

计算预测出来的框与GT框的IOU

然后判断哪些框预测正确,哪些预测错误。计算map

 

相关参考文献:

map:https://blog.csdn.net/qq_35608277/article/details/79070935

NMS:https://www.cnblogs.com/makefile/p/nms.html

IOU:https://blog.csdn.net/h_jlwg6688/article/details/76066890

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值