前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >论文阅读: R-FCN

论文阅读: R-FCN

作者头像
JNingWei
发布2018-09-27 11:32:03
8750
发布2018-09-27 11:32:03
举报
文章被收录于专栏:JNing的专栏

Introduction

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

速度瓶颈

解决者

时间

解决方案

特征抽取

SPPNet

2014

共享特征抽取

proposal生成

Faster R-CNN

2015

由CNN来生成proposal

proposal的处理

R-FCN

2016

共享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是通过一个 k2(C+1)k2(C+1)k^2 (C+1) 的卷积操作来得到的:

其中:

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

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

对RoI可能的每个类别而言,对应有不相邻的k2k2k^2个map块。抠出来分别做 global average pooling (论文说global max pooling也行) :

得到的k2k2k^2个单值分别按照正方形的相对位置填进去,组成一个k×k×1k×k×1k×k×1的小grid。由于每个RoI对应C+1C+1C+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类别下对应的k2k2k^2个小grid应该都会得到较好的activation。将它们取global average pooling,就可以得到较高的score。对所有的C+1个类别得到的C+1个score进行softmax,就能判定该RoI属于类别c:

同理,和所有object的overlap都较小的RoI,不管在哪一种类别的判别下,对应的k2k2k^2个小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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年06月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Introduction
  • Innovation
  • Result
  • Thinking
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档