R-FCN

  • Introduction
    RCNN系列存在两个问题:1. 分类任务要求平移不变性而检测任务必须对位置敏感,因为目标位置改变的话预测坐标必须随之变化。用resnet做检测任务时将ROI pooling置于卷积层之间,因为ROI POOLING后是region级训练,每一个region跑一遍后面的网络,当region改变时预测坐标自然跟着改变。 2. ROI POOLING层前是计算共享的,即整张图跑一遍网络就满足所有计算的需要,而后面的计算为region级每个region都要跑一遍网络,所以计算量是相当大的。在r-fcn中将所有计算放置于roi pooling之前所以减少了计算量,在rfcn中通过生成score map加入了位置信息。

  • 网络结构

主要是对ROI POOLING后的fast rcnn进行改造,骨架网络是resnet101,去掉后面的avg pooling和softmax,加上1x1x1024(降维)和 11 k 2 ( C + 1 ) 11k^{2}(C+1) 11k2(C+1) 卷积得到 H W k 2 ( C + 1 ) HWk^{2}(C+1) HWk2(C+1)的score map这是存储相对位置信息的特征图。由k方个C+1层的map堆叠而成,每个C+1层的map和ROI的网格一一对应,因为ROI也分成kxk个网格,当k=3时,ROI由左上,中上…右下组成,那么第一个小map( H W ( C + 1 ) HW(C+1) HW(C+1))对应左上角网格信息,每个点表示特征图上相应位置点位于目标左上角,通道中每个值表示位于目标左上角且属于第c累的概率。第二大层map表示中上部分类推。所以说score map存储这相对位置信息。

  • 具体流程
    将RPN的输出ROI分成kxk网格,每个网格都从对应的c+1 的map上取,左上网格取第一大层map,中上网格取第二个。。。最后得到 k k ( C + 1 ) kk(C+1) kk(C+1)的网格图,对每个网格内取平均值得到 k k ( C + 1 ) kk(C+1) kk(C+1)特征图。去掉fast rcnn中的fc对map在宽高维度上平均得到c+1的向量送入softmax归一化,这一部分只有计算平均和归一化位于pooling后计算量可以忽略;而回归部分是直接在score map上卷积得到 H W 4 k 2 HW4k^2 HW4k2的map表示坐标信息后面ROI pooling得到 k k 4 kk4 kk4的向量取平均后得长度为4的向量即坐标值。,这样所有计算在pooling之前,但注意这个回归是class-agnostic的要与类别关联,前面应该卷积为 H W k 2 ( C + 1 ) 4 HWk^{2}(C+1)4 HWk2(C+1)4的特征图。

卷积网络的平移不变性和平移可变性
平移不变性比较好理解,在用基础的分类结构比如ResNet、Inception给一只猫分类时,无论猫怎么扭曲、平移,最终识别出来的都是猫,输入怎么变形输出都不变这就是平移不变性,网络的层次越深这个特性会越明显,因为层数越深下采样率越高,特征图上只是感兴趣区域(attention)的特征,原图上产生的微小位移根本感觉不到。平移可变性则是针对目标检测的,一只猫从图片左侧移到了右侧,检测出的猫的坐标会发生变化就称为平移可变性。当卷积网络变深后最后一层卷积输出的feature map变小,物体在输入上的小偏移,经过N多层pooling后在最后的小feature map上会感知不到,这就是为什么原文会说网络变深平移可变性变差。

https://www.jianshu.com/p/409fd61db9db

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值