论文阅读: R-FCN

Introduction

检测算法的速度瓶颈主要包括以下三个:

速度瓶颈解决者时间解决方案
特征抽取SPPNet2014共享特征抽取
proposal生成Faster R-CNN2015由CNN来生成proposal
proposal的后处理R-FCN2016共享proposal处理

由上表易知,R-FCN就是为了 解决 不共享的proposal后处理过程 而诞生的。

在这之前,SPPNet通过“共享特征抽取”,免去了前半段网络的重复计算;而后半段的网络依然要重复无数次 (对每个proposal都要计算一遍) ,极其耗时。

而到了Fast R-CNN中,由于在FCN里契入了负责处理位置信息RoI Pooling,提出前半段负责“特征抽取”,后半段负责“proposal处理”的检测网络 (其实后面还有cls和reg双分支,这里略过) 。然而依然没有针对后半段网络的重复计算进行改进。

R-FCN针对这个痛病,将处理位置信息的任务交给了 “ position-sensitive score map ” (位置敏感得分图) 来做,从而炒了RoI Pooling的鱿鱼。检测网络的前半段和后半段被完整地连到了一起,形成一个FCN (全卷积网络):
这里写图片描述

position-sensitive score map是通过一个 k 2 ( C + 1 ) k^2 (C+1) k2(C+1) 的卷积操作来得到的:
这里写图片描述

其中:

  • k:表示每个RoI在每个维度上会被k等分,一般取值3;k=1时,表示在整个RoI上直接做global pooling。
  • C:表示总的前景类别数,C+1表示总的类别数 (前景加背景) 。

每种颜色代表RoI的一个相对位置(如“左上角”、“右下角”等等),每种颜色对应的channel数为C+1(注意不是C),表示该相对位置是第c类**(也可能是第0类,即背景)**的可能性。

对RoI可能的每个类别而言,对应有不相邻 k 2 k^2 k2个map块。抠出来分别做 global average pooling (论文说global max pooling也行) :
这里写图片描述

得到的 k 2 k^2 k2个单值分别按照正方形的相对位置填进去,组成一个 k × k × 1 k×k×1 k×k×1的小grid。由于每个RoI对应 C + 1 C+1 C+1种可能的类,于是每个RoI最终能得到一个 k × k × ( C + 1 ) k×k×(C+1) k×k×(C+1)的厚grid。这里面既包含了位置信息,也包含了分类信息。

接着如传统的two-stage检测算法惯用做法一样,NMS降低其数量级,接着送入双分支(cls和reg)。

Innovation

有了position-sensitive score map机制,则如果一个bbox能很好地overlap上某个类别为c(也可能是第0类,即背景)的object,那么c类别下对应的 k 2 k^2 k2个小grid应该都会得到较好的activation。将它们取global average pooling,就可以得到较高的score。对所有的C+1个类别得到的C+1个score进行softmax,就能判定该RoI属于类别c:
这里写图片描述

同理,和所有object的overlap都较小的RoI,不管在哪一种类别的判别下,对应的 k 2 k^2 k2个小grid都很难(或者只是小部分)被activate。经过global average pooling后,无一例外只能得到较低的score。从而该RoI被判为 类别0 (即“背景”):
这里写图片描述

Result

将R-FCN与当时的主流检测网络Faster R-CNN进行性能对比。

在VOC2007上:
这里写图片描述

在VOC2012上:
这里写图片描述

在COCO上:
这里写图片描述

总而言之:

  • R-FCN的 accuracy 和Faster R-CNN相差无几(实际上稍逊于Faster R-CNN);

  • inference speed 却快了整整2.5~20倍。

附上R-FCN的一些检测效果图:
这里写图片描述

Thinking

R-FCN是一个兼顾精度和速度的经典算法,开启了检测算法的一个新研究方向。此后的Light-Head R-CNN、R-FCN-3000、DetNet,均是踩着R-FCN的肩膀提出的。

论文Speed/accuracy trade-offs for modern convolutional object detectors中指出:
这里写图片描述

  • R-FCN的精度稍逊于Faster R-CNN,优于SSD;

  • R-FCN的速度快于Faster R-CNN,慢于SSD;

  • R-FCN由于其设计的动机就是为了免去proposal的重复计算,所以R-FCN的性能(精度和速度)对于proposal的数量不敏感,proposal数量取100时性能最优;

  • Faster R-CNN一旦将proposal数量降到50个,就会在速度和精度上接近proposal数量取100的R-FCN。

但是呢,R-FCN所设计的position-sensitive score map虽然免去了proposal的重复处理,却也由于其自身厚重的设计而为人所诟病。这也为Li Zeming大神提出score map更轻薄的Light-Head R-CNN埋下了伏笔。


[1] R-FCN: Object Detection via Region-based Fully Convolutional Networks
[2] 论文阅读: Speed/accuracy trade-offs for modern convolutional object detectors
[3] 论文阅读: Light-head R-CNN

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值