【论文笔记】R-FCN 最全论文解析!只需一文即可读懂!

深度学习 同时被 3 个专栏收录
462 篇文章 14 订阅
440 篇文章 7 订阅
78 篇文章 8 订阅

R-FCN


概述

R-FCN是 Region-based 的目标检测方法之一。主要是在 ResNet 版的 Faster R-CNN 框架基础上做的改造,针对RPN生成的ROI其后续计算无法共享,导致速度仍然不够快的问题,借鉴和结合了全卷积网络FCN的思想,引入 position-sensitive score map 与 position-sensitive Roi pooling,使得所有可学习的层都是可卷积和可共享的,从而加快了目标检测的速度。
论文地址

​ 测试用例工程地址:https://github.com/YuwenXiong/py-R-FCN

知识依赖

知识准备

  1. Faster R-CNN、FCN、预训练、迁移学习相关

  2. 平移不变性、平移变换性、InstanceFCN、OHEM算法


  • a) 平移不变性:图片分类任务性质,就是说图片中某个对象通过平移位置发生改变不影响网络的特征提取与分类判别结果;
  • b) 平移敏感性:目标检测任务性质,网络对检测目标的相对位置变化情况会做出相应的响应(理解:检测目标平移了,那么最后预测的框也会变化);
    在这里插入图片描述

(如:框框移动一小步,相同pixel的激活值发生改变,即相同像素在不同Instance中有不同的响应)

  • c) InstanceFCN:实例某一部分相对于目标实例整体的相对位置的敏感性衡量,对比原始FCN的每一个输出像素是一个是否为目标类目的分类器,InstanceFCN每个输出像素则是判断相对于目标实例相对位置的分类器。详情见InstanceFCN论文Instance-sensitiveFully Convolutional Network 论文笔记
  • d) OHEM算法:SGD在目标检测领域的改良,用于 Region-based 的目标检测训练过程的效率提升,具体假设每个图像在前向训练时产生N个区域建议proposals,算所有proposals的损失loss。按损失排序所有的Rois,选择loss损失最高的B个Rois作 hard example组成batch进行反向传播更新。

为缓解Region-based目标检测任务中,平移不变性与敏感性之间的矛盾,Faster R-CNN考虑插入ROI pooling 到卷积层的同时,也引入了region-wise layers(不共享计算的ROI-wise subnetwork(下采样层和fc层) ) ,所以Faster-RCNN算是个半卷积网络。而下面介绍的R-FCN是改良的全卷积网络,几乎一张图像上所有的计算都是共享的。

Table1

R-FCN简介

全局结构

基于ResNet-101,我们去掉了每个卷积层的global average pooling和最终的fc layer,只利用卷积层来计算feature maps,最后一个卷积块是2048-d,作者附加了一个随机初始化的1024d的1×1的卷积层来降低维度,之后进入RPN和后续的目标检测过程。
本论文的R-FCN方法参考R-CNN,也是使用two-stage的目标检测策略,即

  • a) region proposal
  • b) region classification

我们首先通过region proposal Network(RPN) 来抽取候选区域RoIs,它自身是一个全卷积结构。接下来,我们在RPN和R-FCN中共享这些特性,对于每一个给定一个RoI,R-FCN架构对RoI进行投票分类与回归定位。具体在分类上R-FCN中最后的卷积层为单个RoI每个类别(C+1类) 产生k^2个position-sensitive score maps对RoI做k^2个区域划分,卷积层后position-sensitive RoI pooling layer则在此基础上聚合k^2个score maps上的输出并产生单个RoI的得分vector(C+1维) ,后接 softmax 输出单个RoI的分类结果。

R-FCN整体结构图

Position-sensitive score maps & Position-sensitive RoI pooling

Position-sensitive score maps & Position-sensitive RoI pooling

对于每个RoI,我们需要编码位置信息。通过网格把每个RoI分成k×k(下图为3×3共9个) 个bins,对于w×h的RoI区域,每一个bin的大小为≈w/k×h/k,对于第i行第j列的bin(0≤i
, j≤k-1) ,作者定义了一个位置敏感的池化操作来计算score map,其score
map的计算公式为:
R-FCN结构图
​ $r_c(i,j|\Theta) = \sum_{(x,y)\in bin(i,j)} z_{i,j,c}(x + x_0, y + y_0|\Theta)/n. $

  • 其中 r c ( i , j ) r_c(i,j) rc(i,j) 表示从第c类中得到的第(i,j)个bin的池化相应
  • z i , j , k z_{i,j,k} zi,j,k k 2 ( C + 1 ) k^2(C+1) k2(C+1) 个sorce maps中的一个
  • ( x 0 , y 0 ) (x_0, y_0) (x0,y0) 表示一个RoI的左上角
  • n表示这个bin中的像素的数量
  • θ \theta θ 表示网络中所有需要学习的权重参数

也就是说,R-FCN中最后的卷积层(共k^2(C+1)个卷积层对应score maps的数量) 为单个RoI每个类别(C+1类) 产生k^2个position-sensitive score maps,每个map中像素点的取值为点到某一 Region的距离(如到物体左上角or中心的距离) ,如上图实现对单个RoI做9个区域划分之后,每个网格bin以像素点为单位做平均池化,然后再对这9个bins的score maps进行average voting,最后得到单个RoI的一个C+1维的score向量,通过计算每一个目录项的softmax响应,输出概率值向量并求loss。

Position-sensitived的理解

Position-sensitive的理解
Figure 3
Figure 4

特定的 feature map 对应目标的特定位置,或者说不同的 feature map 掌管一个物体不同的部分,上图单个RoI的九宫格中每一格都来自不同的 feature map, 每个bin就是判断是否在persen这个目标实例某个相对位置的分类器,颜色越浅代表置信度越高,说明越能够被激活也越敏感(如第一个图的RoI9个位置都比较敏感,第二个图只有部分位置敏感)。 其它score maps也类似,分别对相对于目标实例的不同位置表现出敏感特性。

回归定位简述

使用和物体检测分类相似的方法,对需要学习的参数 t = ( t x , y , w , h ) t =(tx,y,w,h) t=(tx,y,w,h),在卷积之后每个RoI产生 4×k^2个 position-sensitive score maps,然后通过average voting将其聚合成4维向量,之后以和 Faster R-CNN 相同的方法进行bbox的微调更新。

R-FCN训练

整个结构是端对端(end-to-end) 的学习,所有可学习的层在整幅图片中都是可卷积和可共享的,主要学习用于物体检测的空间信息编码,即学习专门的position-sensitive score maps。

    1. 对于输入图像,其尺寸调整到600×600像素,预训练模型卷积后得到多个feature
      maps,采用 RPN 方法得到最高score的300个ROIs;(这里的score?)
    1. 采用IoU阈值0.3的Non-maximum suppression (NMS)方法来去除重合度较高的ROIs. 将剩余的ROIs根据最高的分类scores来进行分类;
    1. 如果ROI的box与最近的ground truth(GT)物体的IoU大于0.5,则该ROI是positive的;否则,该ROI是negative.;
    1. 从Resnet101的预训练模型进行初始化,其它的权重进行随机初始化;
    1. R-FCN和RPN联合交替训练,以实现特征共享

损失函数定义:

L ( s , t x , y , w , h ) = L c l s ( s c ∗ ) + λ [ c ∗ > 0 ] L r e g ( t , t ∗ ) ) L(s,t_{x,y,w,h}) = L_{cls}(s_{c^*}) + \lambda[c^* > 0] L_{reg}(t, t^*)) L(s,tx,y,w,h)=Lcls(sc)+λ[c>0]Lreg(t,t))

参数:

  •  *c\** 表示 RoI 的 ground-truth label(c\*等于0表示背景类) 
    
  •  t\* 表示 RoI 的 ground-truth 边框
    
  •  λ 被初始化设置为1
    
  •  *Sc\**表示softmax每一类的概率输出
    
  •  decay:0.0005
    
  •  momentum:0.9
    
  •  single-scale training。 
    
  •  B=128
    
  •  lr = 0.001 \~20k, 0.0001 \~ 10k(mini-batches) 
    
  •  采用OHEM方法交叉训练 RPN & F-RCN
    

R-FCN效果

  • 测试效果表明,RoI size 中 7×7 比 3×3 的效果要好,R-FCN的训练速度在300个RoIs左右是Faster R-CNN的3倍之多,且随着测试用RoIs数量的增多差距会越明显,测试速度关系保持在2.5倍,且R-FCN的准确度略有提升。
    Table 2Table 3COCO数据集上的测试效果
    Figure 6
    R-FCN论文总结

    1. R-FCN借鉴了全卷积网络FCN的思想,通过将Faster R-CNN中用于目标分类和边框回归的Fast R-CNN部分换成共享的全卷积结构,使得所有可学习的层都是可卷积和可共享的,从而加快了目标检测的速度。
    1. 传统FCN通过反卷积至原分辨率做Segmentation每个图像只生成一个score
      map,每个像素的值表示该像素是否属于目标的概率;而R-FCN用于Detection,生成k^2个负责检测目标的不同相对位置的score
      maps,每个像素的值表示该像素是否属于某一类的某个相对位置的概率,相当于对检测对象的位置信息进行了编码,将目标检测的transformation
      variance性质与FCN结合。
    1. 与Faster-RCNN的比较
  • 3.1) Faster-RCNN是半卷积网络,在卷积子网络中是计算共享的,在另一个子网络是各自计算立的区域(在ResNet的检测方法中插入了ROI pooling layer到卷积层,引入了大量的region-wise layers) ;而R-FCN是全卷积网络,几乎一张图像上所有的计算都是共享的。
    3.2) 与基础的Faster-RCNN提取候选区域,再在feature
    map上做基于整个Roi的特征映射不同,R-FCN这里把RPN产生的候选区域分割为k^2个大小相同的bins,每个bin都有各自的位置编码,第一个位置取第一块特征对应的
    featuremap 的,第二个位置取第二块,这样取完了再 assembling 起来,拼成一个新的
    feature map。
  • 3
    点赞
  • 2
    评论
  • 8
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
First release: 26 October 2017 www.sciencemag.org (Page numbers not final at time of first release) 1 The ability to learn and generalize from a few examples is a hallmark of human intelligence (1). CAPTCHAs, images used by websites to block automated interactions, are examples of problems that are easy for humans but difficult for comput-ers. CAPTCHAs are hard for algorithms because they add clutter and crowd letters together to create a chicken-and-egg problem for character classifiers — the classifiers work well for characters that have been segmented out, but segmenting the individual characters requires an understanding of the characters, each of which might be rendered in a combinato-rial number of ways (2–5). A recent deep-learning approach for parsing one specific CAPTCHA style required millions of labeled examples from it (6), and earlier approaches mostly relied on hand-crafted style-specific heuristics to segment out the character (3, 7); whereas humans can solve new styles without explicit training (Fig. 1A). The wide variety of ways in which letterforms could be rendered and still be under-stood by people is illustrated in Fig. 1. Building models that generalize well beyond their train-ing distribution is an important step toward the flexibility Douglas Hofstadter envisioned when he said that “for any program to handle letterforms with the flexibility that human beings do, it would have to possess full-scale artificial intelli-gence” (8). Many researchers have conjectured that this could be achieved by incorporating the inductive biases of the vis-ual cortex (9–12), utilizing the wealth of data generated by neuroscience and cognitive science research. In the mamma-lian brain, feedback connections in the visual cortex play roles in figure-ground-segmentation, and in object-based top-down attention that isolates the contours of an object even when partially transparent objects occupy the same spatial locations (13–16). Lateral connections in the visual co
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值