Faster-RCNN 理解

GPU上达到5fps

 

流程:

1、将图像输入网络得到相应的特征图

2、使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵

3、将每个特征矩阵通过ROI pooling层缩放到7*7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。

即:RPN+Fast R-CNN

 

256-d :ZF-Net 512-d:VGG16

在feature map 用3*3conv,padding=1,得到shape与feature map 相同的特征矩阵,再分别经过1*1卷积,卷积核个数为2k,4k进行处理,得到cls,reg。原论文中K=9

对于特征图上的每个3*3的滑动窗口,计算出滑动窗口中心点对应原始图像上的中心点,并计算出k个anchor boxes.

 步距=原图的宽度 / 特征图的宽度,再取整

 步距=原图的高度 / 特征图的高度,再取整

特征图黑点位置对应原图的位置:x:步距*3,y:步距*3

再以原图黑点为中心,生成k个anchor box,这个anchor可能包含目标,也可能不包含

cls :0.1:为背景概率,0.9为前景概率,每两个表示一个box,这里不进行分类

每个anchor的面积

 由中心点生成9个anchor,2*9个cls,4*9个reg

对于ZF-Net感受野:171

对于VGG感受野:228 ,但为什么在原图上能够预测比它大的的边界框?(如256,512)

原论文作者的看法:根据经验,只看到一部分,也能够大概猜出整体位置区域,实际使用也是有效的。

对于一张1000*600*3的图像,大约有60*40*9(20k)个anchor,忽略边界的anchor以后(即一些anchor超过了边界),剩下约6k个anchor。利用RPN生成的边界框回归参数将anchor调整到候选框,将6k个anchor调整为6k个候选框,这里的anchor与候选框不一样,对于RPN生成的候选框之间存在大量重叠,基于候选框的cls得分,采用极大值抑制,IoU设为0.7,这样每张图片只剩2k个候选框。

训练数据(正负样本):随机采样256个anchor,由正负样本组成(1:1),正样本不够128,负样本填充。

正样本:1、Iou超过0.7认为是正样本。2、找到与groundtruth 最大iou的anchor也定义为正样本

(一般取第一个条件足够)

负样本:iou<0.3

正负样本之外的全部丢弃掉

RPN损失:

 2400(60*40),lambda是平衡参数,256最终抽取候选框个数

简化:1/Ncls = lambda *1/Nreg   1/256=10*1/(2400)

分类损失:

 -log(0.9)-log(0.2)....

Fast -R-cnn损失这里不细说

如何利用反向传播进行训练:

直接联合,代码中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值