《R-FCN-3000 at 30fps:Decoupling Detection and Classification》论文笔记

1. 概述

导读:这篇文章提出的模型叫做R-FCN-3000(3000类目标)是一个目标定位与目标分类相互独立的实时大规模(分类数多)检测器,其含义是将目标定位与分类解耦,分别预测目标置信度(含检测框)与分类概率,最后将两个结果组合得到检测结果。该算法是在R-FCN的基础上进行修改得到的,但是原始的是COCO的80个类,在分类数目增加的情况下通过聚类的方式缩小头部(聚类分类的类别),从而加速检测。R-FCN-3000在COCO数据集上获得了34.9%的mAP,FPS为30,有望成为通用检测器。

对于一个RoI总的检测置信度度是通过该RoI为目标的置信度与细粒度的分类置信度相乘的结果,如下图1所示:
《R-FCN-3000 at 30fps:Decoupling Detection and Classification》论文笔记_第1张图片

large-scale detector 核心技术 精度 意义
YOLO-9000 语法树 较差 第一个large-scale detector
R-FCN-3000 解耦“定位”和“分类” 较好 第一个可实用的large-scale detector

2. 网络设计

2.1 R-FCN回顾

R-FCN的结构见下图所示,R-FCN生成了一个 k 2 ( C + 1 ) k^2(C+1) k2(C+1)的特征图,注意这里的 C C C是80,但是要是换成几千或是几万几十万这样的数量级那么网络的特征图就会很大很大,出于这样的考虑,这篇文章通过解耦分类支路的position-sensitive score map生成的过程(将原来的分类支路拆分成两条支路,而回归支路还是采用R-FCN的回归支路,这篇文章不做修改,这是因为增加检测类别数增加不影响回归支路的计算量),从而在保证速度(30FPS)的情况下将R-FCN的分类类别数延伸至3000类。
《R-FCN-3000 at 30fps:Decoupling Detection and Classification》论文笔记_第2张图片
R-FCN的一些trick效果,测试集和指标分别是VOC 07测试集和mAP。baseline是主网络为ResNet101且ROI输出尺寸 k = 3 k=3 k=3时,mAP是75.5,当 k = 7 k=7 k=7时,mAP是76.6。当训练时候加入OHEM ,mAP可以从76.6上升到79.5。当在训练中又加入multi-scale train,mAP可以从79.5上升到80.5。当再将训练数据调整为VOC07+VOC12+COCO(原来为VOC07+VOC12),mAP可以从80.5上升到83.6。

2.2 提出的网络结构

文章提出的网络结构见下图所示,主要分为检测框回归支路与目标分类支路
《R-FCN-3000 at 30fps:Decoupling Detection and Classification》论文笔记_第3张图片
对于Figure2上面那条支路,position sensitive层的filter数量是 ( K + 1 ) ∗ P ∗ P (K+1)*P*P K+1PP K K K表示super-class数量。借鉴的思想就是自然界很多类别之间的差异很小,因此类型相近的一些类可以看成是一个super-class(聚合在一起形成一个新的类),Figure2上面这条支路就是对这样的super-class做分类,这个super-class的数量是固定的,可以通过聚类得到。因此即便每个super-class里面的子类数量增加,也不会增加这条支路的计算量。简而言之,这条支路就是将原来R-FCN中的分类支路的类别数替换成了这里的super-class数量,其它不变。

对于Figure2下面那条支路,是用来做fine-grained classification的,所以可以看到这条支路中有一个包含 C C C个卷积核的卷积层, C C C就是所有object的类别数, C C C中有K个super-class。注意该部分没有用到position sensitive卷积层去得到score map,因此filter数量是C也比较大,但是相比R-FCN中 ( C + 1 ) ∗ P ∗ P , ( P = 7 ) (C+1)*P*P,(P=7) (C+1)PP,(P=7)时候的计算量,这里大约只有原来的 1 49 \frac{1}{49} 491。解耦之后,即便 C C C从20类增加为3000类,也不过是卷积层的卷积核数量从20增加到3000,这带来的计算量并不大。

在上面已经说完了检测支路与分类支路,那么怎么将两者的相结合起来呢?之前提到了super class的概念,其实就是聚类,那么按照每个类聚类的索引映射到对应的分类上就行了,下图就是这个过程,将目标的置信度与分类置信度相乘。
《R-FCN-3000 at 30fps:Decoupling Detection and Classification》论文笔记_第4张图片

3. 实验结果

下图(a)和(b)是在给定总类别数的前提下,super-class数量对实验结果的影响,当super-class数量为1的时候,就相当于用于object detection的那部分(Figure2中上面那条支路)是用来检测一个object是background还是foreground。可以看出实验效果基本上随着super-class数量的增加而提升。(c)则是在给定super-class=1的前提下,总的类别数对最后实验结果的影响。
《R-FCN-3000 at 30fps:Decoupling Detection and Classification》论文笔记_第5张图片
总的分类数目为3000的时候,聚类的数目对mAP与计算时间的影响:
《R-FCN-3000 at 30fps:Decoupling Detection and Classification》论文笔记_第6张图片
网络中各个模块对网络性能的影响:
《R-FCN-3000 at 30fps:Decoupling Detection and Classification》论文笔记_第7张图片

你可能感兴趣的:(#,General,Object,Detection,R-FCN-3000)