【论文】R-FCN: Object Detection via Region-based Fully Convolutional Network总结

一、简介

R-FCN是一个与faster r-cnn有类似结构的two-stage网络,首先通过一个网络共同提取特征,之后通过一个RPN来提出候选框,然后对候选框进行微调以及对物体进行识别。RPN与faster r-cnn一样,改变的是后面的网络,R-FCN使用了一种全卷积网络结构,降低了最后一层全连接层所带来的速度影响,而且提出了两个概念: translation-invariance以及translation-variance,指出了分类任务和定位任务的矛盾,并提出了改进。所谓的region-based指的是使用了region proposal技术,分为两步来走。

分类任务和定位任务的矛盾主要体现在,分类任务需要高层语义,定位任务则需要精细的空间语义。高层语义体现在分类网络的后层特征,它体现的是对于物体的一个本质理解,因此,也具有相当的平移不变性(translation-invariance),而定位任务所需要的是空间位置的精确性,也就是网络能够对物体空间位置的反映给出敏感的判断,这就是平移可变性(translation-variance)。这两者是互相矛盾的,在网络的越浅层,越是表层特征,对位置变化就越敏感,在网络深层则更多的是语义特征。也正因此,大量的错误来源于定位错误而非识别错误,faster R-CNN的ResNet版本就使用了conv4的特征去RPN,然后再加一层获得语义信息。那有没有一种方法能够让浅层的位置信息传递到深层呢?设计一个网络结构去完成它。

二、结构

主要是RPN之后的网络结构,分为两个部分,首先来说说他的设计思想:它的思想是设计一种方法,让卷积层产生出的特征是能够与描述物体各部分相关位置空间网格相对应。这个想法的来源是:Instance-sensitive fully convolutional networks,文中提出了instance-sensitive score maps,目的是解决如何区分两个空间上相近的物体的语义。如下图:

 

它首先使用检测的方法将单个物体框柱,然后使用了9个score map对物体在这9个格内对应的部分进行分割,每一个score map只对应空间中固定的相对位置产生响应,最终综合结果,得到分割。这里头就有一些问题,1.每个scope是对应于b-box响应位置的分割结果,那么它是怎么知道自己是对应于那一块的呢?这就体现在最终的拼接上了,我们只将每个score map中对应于相对位置的那一块剪出来,进行训练,那么反向传播的时候,它学习到的就是如何能够更好的对具有这种样式的块进行语义判别,这里头隐含了一个假设,就是如果我们对一个物体,按照上述形式来分块,那么相对空间位置的块一定具有相似性,比如说上部有头,下部有脚,我们的网络才能够进行学习。如果出现了上边有脚,下边有头的情况,那么上部的map无法输出头的分割,它输出的是下部的头部分割,而上部中啥都没有,下边的map无法输出脚的分割,它输出的是上部的脚的分割,这样子分割就失败了。所以,这样子输出的分割就很糟糕了。再举一个例子,如果我们对猫的图像进行分割,假设猫的头部都是在左上角的,我们的网络进行学习,训练的时候有个猫的头是右上角了,这时分割出来的结果就是猫没有头了,所以这种方法是对物体各个部分的相对位置有一个很强的假设,只要可能性没有出现,分割就会失败。

但是,不同的空间位置也可以有相似的图像,但这并不影响到结果,只要每个map能够确实的给出那个部分的分割就行了。但是,这样带来的结果可能就是需要大量样本取学习关于每一个部分的特征。让我们做一些思想实验来想想这么做是不是合理的,首先,feature map映射出了一些杂乱的特征,之后,通过反向传播,如果map输出的特征有错,那么就会进行修正,由于卷积核是通过平移来产生特征的,它能将这种特征产生方法应用于其他相同类别,相同部位的分割上。逻辑上没有问题。那么还有一个问题就是这种划分是否合理,这种划分固然是有点简单了,但是也并没有太大的错误。这种结构相当于将原本统一的语义进行了分离,让关于位置的特征彼此分开。

也就是说它可以在深层的特征层上重现出位置相关性,如果检测框中的物体没能展现出这种位置相关性(各个块错了位),那么分割就会失败,这就迫使网络来学习位置相关性。如果将它用于分类和检测的话,首先要问的问题是这两个任务有没有像分割那样的对于位置相关性的强需求。如果是用于分类任务的话,对于每个块,b-box出现物体,我们就投正票,而没有出现物体,就投反票,似乎与块间的空间相关性关系不大,只要我们通过前面的特征,每一个块都产生了正确的投票,就能够正确分类,这是因为分类任务得到的是最高层的语义,它不需要位置相关性。b-box的检测当然需要用到空间相关性,但是它也并不需要相对位置的描述,它需要的语义比分割要强一点,他并不需要每个像素点的归属。但是比分类要弱一点。如果损失函数没能设计成和位置相关的话,即使网路结构具有这种可能性,也不能训练出相应可能性的网络。

1. Position-sensitive score maps 

这一部分是用来将

2.Position-sensitive RoI pooling

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值