faster_rcnn学习

RPN具体详解:

右边是RPN的结构,使用滑动窗口在特征图上滑动,每滑动到一个位置上,会生成1个一维的向量,(256_d 是 backbone的输出通道数(此处所用网络ZF,若用VGG16,就变成512-d)),在此向量上,分别通过两个全连接层,目标概率(cls layer)和边界框回归参数。

2k是针对k个anchor box,是针对每个anchor生成的2个概率,一个是背景的概率,一个是前景的概率,针对每个anchor都会生成4个边界框回归参数。

anchor是怎样生成的嫩?

首先找出特征图上对应在原图上的点,如何find?将原图的X/特征图的x=stride1,同理原图Y/y=stride2,eg:特征图上那个黑的方块x=3,y=3,映射回原图上X=x*stride1,同理,Y=y*stride2,

之后将映射回到原图上的点为中心,画出k个anchor box.

有关2k,4k的使用:

cls  2个一组, 第一组:背景概率|前景概率=0.1|0.9

reg 4个一组 对应生成的预测框的中心点坐标及长宽

关于3*3滑动窗口在特征图上感受野的问题:

 anchor面积共有三种,对应长宽比也有3种,如右图圆圈,对应anchor面积128*128,有三种形状的的anchor. 而当使用VGG时,它的感受野只有228,那当anchor面积512*512时,他怎么预测呢?论文指出当人眼看到物体一部分时,也能识别物体,这里就是这个道理。

(补充:感受野定义及计算:

    感受野:CNN每一层输出的特征图上的像素点映射回原始图像上的图像大小。

 损失计算:

RPN损失=分类损失+边界框回归损失

分类损失:使用二值交叉熵损失,对每个anchor对应的cls计算损失(不是按一组组计算喔)

zuuz

边界框回归损失: 

 Fast损失=分类损失+边界框回归损失

 由上图可见,分类损失也是采用多类别交叉熵损失的。

存在问题:

1.对小目标检测不友好

  只是在一个特征层上进行预测的,而此特征层经过多重卷积,featuremap被抽象到一个比较高的层次,细节信息丢失了很多,而小目标检测正需要比较多的细节信息。

2.模型大,检测速度慢

  two-stage检测网络通病

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值