简介
本文介绍的 C V P R 2020 {\rm CVPR\ 2020} CVPR 2020的一篇关于目标检测文章,该文章关注点是目标检测模型中的检测头。以往的目标检测模型检测头有全连接和卷积两种,论文详细探讨并论证了这两种检测头的检测结果,提出双检测头结构。文章以 F P N {\rm FPN} FPN为基础模型,在基于 R e s N e t {\rm ResNet} ResNet- 50 50 50和 R e s N e t {\rm ResNet} ResNet- 101 101 101的骨干网络上分别获得了 3.5 3.5 3.5和 2.8 2.8 2.8的提升。论文原文
0. Abstract
在基于区域的目标检测模型中,常用的检测头包括全连接和卷积两种。论文通过分析发现关于这两种检测头的一大特点:全连接检测头更适合于分类任务,卷积检测头更适合于定位任务。同时,通过分析两种检测头的输出特征,全连接检测头的空间敏感度比卷积的更高。因此,全连接检测头善于通过物体的部分特征而推断出物体的类别,但对于物体的定位没有鲁棒性。基于大量观察及实验分析,作者提出一种双检测头结构:全连接检测头用于目标分类,卷积检测头用于目标定位。
论文贡献:(一)由大量实验分析得出目标检测中常用的全连接检测头和卷积检测头的特点;(二)结合全连接检测头和卷积检测头的特点提出双检测头的结构,提高了原基于单检测头的目标检测模型的性能。
1. Introduction
大多数两阶段目标检测算法的分类和回归任务共用一个检测头。例如
F
a
s
t
e
r
{\rm Faster}
Faster-
R
C
N
N
{\rm RCNN}
RCNN中使用的是卷积的检测头,
F
P
N
{\rm FPN}
FPN中使用的是全连接的检测头。但其实,不同的检测头对不同的任务具有不同的敏感度。在论文中,作者通过比较大量全连接检测头卷积检测头,提出这两种检测头是互补的:全连接检测头更适于分类任务,卷积检测头更适用于回归任务。作者认为这是由于全连接检测头的空间敏感性,针对候选区域的不同部分给出不同的响应;而卷积检测头在候选区域的所有部分都共享参数。作者通过对两种检测头的输出特征图进行分析,得到全连接检测头的空间敏感度更高。即,全连接检测头更擅长区分一个完整的物体或物体的一部分(对应于分类任务);卷积检测头更擅长回归整个物体(对应于回归任务)。如下图
(
a
)
{\rm (a)}
(a)和
(
b
)
{\rm (b)}
(b)分别是全连接检测头和卷积检测头:
2. Related Work
- 一阶段检测算法: O v e r F e a t {\rm OverFeat} OverFeat, S S D {\rm SSD} SSD, Y O L O {\rm YOLO} YOLO, R e t i n a N e t {\rm RetinaNet} RetinaNet以及基于关键点的一阶段目标检测算法等;
- 两阶段检测算法: R C N N {\rm RCNN} RCNN系列、 S P P N e t {\rm SPPNet} SPPNet、 R {\rm R} R- F C N {\rm FCN} FCN、 F P N {\rm FPN} FPN等;
- 骨干网络: V G G {\rm VGG} VGG- 16 16 16、 R e s N e t {\rm ResNet} ResNet、 D C N {\rm DCN} DCN、 T r i d e n t N e t {\rm TridentNet} TridentNet、 M o b i l e N e t {\rm MobileNet} MobileNet、 S h u f f l e N e t {\rm ShuffleNet} ShuffleNet等;
- 检测头: L i g h t {\rm Light} Light- H e a d R C N N {\rm Head\ RCNN} Head RCNN、 C a s c a d e R C N N {\rm Cascade\ RCNN} Cascade RCNN、 M a s k R C N N {\rm Mask\ RCNN} Mask RCNN、 M a s k S c o r i n g R C N N {\rm Mask\ Scoring\ RCNN} Mask Scoring RCNN、 I o U {\rm IoU} IoU- N e t {\rm Net} Net等。
3. Analysis: Comparison between fc-head and conv-head
3.1 Data Processing for Analysis
为了客观的对比,为每个目标预设定约
14000
14000
14000个候选框,预选框通过滑动窗口产生。对于每个候选框,全连接检测头和卷积检测头产生分类和回归结果。并且,根据候选框和对应真实框的交并比将所有候选框分为
20
20
20组。
上图第一行是分类得分图,第二行是回归交并比图。由第一行的结果图得知,在交并比较高时,全连接检测头得到的分类得分比卷积检测头的更高,尤其是对于小目标;由第二行的结果图得知,在交并比较高时(大于 0.4 0.4 0.4),卷积检测头得到的交并比比全连接检测头的更高。
3.2 Comparison on Classification Task
为了验证上图中第一行所得到结果的规律,论文计算了交并比与分类得分之间的皮尔逊相关系数(用于衡量两个变量之间的相关性),得到的结果如下:
由上图可知,全连接检测头与交并比的皮尔逊相关系数比卷积检测头的更高。前面提到的建议框是通过滑动窗口产生的,作者又使用
R
P
N
{\rm RPN}
RPN产生建议框和
N
M
S
{\rm NMS}
NMS后的结果来做对比实验,如下图:
该图的实验结果与上图类似。
3.3 Comparison on Localization Task
见 ( 3.1 ) (3.1) (3.1)中的第二行结果图分析。
3.4 Discussion
为什么全连接检测头中分类得分和交并比的相关性更大?作者给出的解释是:全连接检测头的空间敏感度更高。直观上来讲,全连接检测头对于输入特征图的连接方式是全连接,这丢失了许多空间信息。因此,全连接检测头能够却分整个物体或物体的一部分。相反,卷积检测头使用卷积操作共享参数,然后使用全局平均池化以保留输入特征图中的空间信息。
进一步,卷积检测头的输出是一个
7
×
7
7×7
7×7的特征图,使用相应的两个特征向量之间的余弦距离来计算任意一对位置的相关性。每个位置的产生一个
7
×
7
7×7
7×7的相关矩阵表示当前位置与其他位置的相关性。然后将所有相关矩阵叠加,就可以得到下图:
全连接检测头的输出是一个
1024
1024
1024维的向量,论文通过以下方法来构建它的输出特征图:基于空间位置分割全连接层(
256
⋅
7
⋅
7
×
1024
256·7·7×1024
256⋅7⋅7×1024)的权重矩阵,即
7
×
7
7×7
7×7特征图上的每个位置都是
256
×
1024
256×1024
256×1024维的向量。全连接检测头的相关矩阵如下:
4. Our Approach: Double-Head
4.1 Network Structure
上图是论文提出的第一种双检测头结构。在全连接检测头中,输出维度是
1024
1024
1024,参数是
13.25
M
{\rm 13.25M}
13.25M。在卷积检测头中,一共堆叠了
K
K
K个残差模块,输出维度也为
1024
1024
1024。第一个残差模块如下图
(
a
)
{\rm (a)}
(a)所示,后面几个残差模块如图
(
b
)
{\rm (b)}
(b)/
(
c
)
{\rm (c)}
(c)所示。
对于这种双检测头,损失函数定义如下: L = ω f c L f c + ω c o n v L c o n v + L r p n (1) \mathcal{L}=\omega^{fc}\mathcal{L}^{fc}+\omega^{conv}\mathcal{L}^{conv}+\mathcal{L}^{rpn}\tag{1} L=ωfcLfc+ωconvLconv+Lrpn(1)
4.2 Extension: Leveraging Unfocused Tasks
除此之外,论文还提出另一种双检测头结构,如下图:
图中的卷积操作如图 ( 9 ) (9) (9)所示。对于这种双检测头,全连接检测头的损失函数定义如下: L f c = λ f c L c l s f c + ( 1 − λ f c ) L r e g f c (2) \mathcal{L}^{fc}=\lambda^{fc}L_{cls}^{fc}+(1-\lambda^{fc})L_{reg}^{fc}\tag{2} Lfc=λfcLclsfc+(1−λfc)Lregfc(2)
卷积检测头的损失函数定义如下: L c o n v = ( 1 − λ c o n v ) L c l s c o n v + λ c o n v L r e g c o n v (3) \mathcal{L}^{conv}=(1-\lambda^{conv})L_{cls}^{conv}+\lambda^{conv}L_{reg}^{conv}\tag{3} Lconv=(1−λconv)Lclsconv+λconvLregconv(3)
分类信息的融合方式如下: s = s f c + s c o n v ( 1 − s f c ) = s c o n v + s f c ( 1 − s c o n v ) (4) s=s^{fc}+s^{conv}(1-s^{fc})=s^{conv}+s^{fc}(1-s^{conv})\tag{4} s=sfc+sconv(1−sfc)=sconv+sfc(1−sconv)(4)
5. Experimental Results
论文首先做了关于双全连接检测头、双卷积检测头、双检测头和逆双检测头的对比实验:
6. Conclusions
论文通过分析全连接检测头和卷积检测头的特点,得出全连接检测头更适合分类任务,卷积检测头更适合定位任务,由此提出双检测头的结构。实验结果为在原单检测头结构的基础上提高了目标检测模型性能。
参考
- Wu Y, Chen Y, Yuan L, et al. Rethinking Classification and Localization for Object Detection[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 10186-10195.