R-FCN笔记

  ↵

R-FCN: Region-based Fully Convolutional Networks

一,主要贡献

1,使用position-sensitive score maps解决目标检测中的位置敏感性问题;

2,提出基于区域的、全卷积、全部共享计算的网络。

二,网络结构和faster r-cnn类似,如下图:

最后一个卷积层会有3个分支:RPN和两个位置敏感得分图,位置敏感得分图的channels分别为(C+1)*k*k和4*k*k,后面接位置敏感的RoIpooling层,用于分类和回归。分类和回归原理相同,下面只讲分类,细节如下:

1,基础网络

使用ResNet101,去掉最后一个global average pooling层和fc层,并在最后一个卷积模块(2048维)后使用1*1卷积降维(生成1024维feature map)。

2,Position-sensitive score maps 和 Position-sensitive RoI pooling(核心部分)

首先把RoI划分为k*k个bins(除不尽则左上边缘向下取证,右下向上取整,总之,bins尽量大),并使得每个bin对应一个score map,因此每个类别生成k*k个score maps,所有类别一共有(C+1)*k*k个score maps。如上图,对于每一类,仅在第{i,j}个score map的第{i,j}个bin上执行平均池化,同一类别的9个bins放在同一层,故最后会生成(C+1)维score map。

然后进行投票,对于每个RoI,在每一维的score map上求平均值rc,得到(C+1)维向量。然后计算softmax置信度:

                                                s_c=e^{r_c}/\sum e^{r_c}

这个值既在训练时作为损失值,也在预测时对RoI排序用。

同理,边框回归中把C+1换成4即可,预测方法和Fast R-CNN相同。

3,训练

(1)损失函数

对于R-FCN网络(假设有计算好的region proposals),损失函数:

                                            L(s,t_{x,y,w,h}) = L_{cls}(s_{c^*})+\lambda [c^*>0]L_{reg}(t,t^*)

其中,c*是RoI的真实标签(0为背景),分类损失是简单的cross-entropy loss(-log(s)),回归损失和Fast R-CNN相同。

论文中λ为1。并将RoI和真实框IoU大于0.5记为正样本,其他为负样本。

(2)online hard example mining(OHEM)

首先对RPN获得的ROI(正负样本分别排序)进行排序操作;然后在正样本中选择前N个ROI,将正负样本的比例维持在1:3的范围内。如果不进行此操作的话,可能会出现抽取的所有样本都是背景,会影响网络的性能。

(3)训练参数

weight decay设为0.0005,momentum设为0.9,默认单尺度(把较短边resize到600像素)。每张图片选取128个RoI用于训练。用ImageNet与训练好的分类网络,然后使用VOC数据集fine-tune,前20k个mini-batch学习率设为0.001,接下来10k个设为0.0001。采用faster r-cnn中的4阶段法训练R-FCN和RPN。

4,步长和膨胀卷积

首先,把ResNet101中原stride32改为16,可以增大score map的分辨率。然后,保持conv4及之前层不变,把第一个conv5模块的stride由2改为1,然后所有conv5模块使用膨胀卷积以抵消stride的缩小。另,RPN从conv4接入,这样RPN不会受膨胀卷积的影响。

5,过滤背景Rol,

测试时,为了减少RoIs数量,在RPN提取阶段就对大约2W个proposals进行过滤,方法如下:

(1)去除超过图像边界的proposals;

(2)使用基于类别概率且阈值IoU=0.7的NMS过滤;

(3)按照类别概率选择top-N个proposals;

最后一般只剩下300左右个RoIs,当然这个数量是一个超参数。并且在R-FCN的输出300个预测框之后,仍然要对其使用NMS去除冗余的预测框。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值