【Double Head】《Rethinking Classification and Localization for Object Detection》

发布于:2024-12-21 ⋅ 阅读:(15) ⋅ 点赞:(0)

在这里插入图片描述

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.

https://openaccess.thecvf.com/content_CVPR_2020/papers/Wu_Rethinking_Classification_and_Localization_for_Object_Detection_CVPR_2020_paper.pdf

CVPR-2020



1、Background and Motivation

R-CNN 目标检测框架的头部结构中,full connection 和 full convolution 被广泛应用于分类和回归任务

However, there is a lack of understanding of how does these two head structures work for these two tasks.

作者实验分析了两种头部结构的优缺点,结合两种结构的优点,提出了 double head 结构,涨点明显

在这里插入图片描述

2、Related Work

  • One-stage Object Detectors

  • Two-stage Object Detectors

  • Backbone Networks

  • Detection Heads

3、Advantages / Contributions

基于 R-CNN 二阶段的目标检测框架,分析了全卷积头和全连接头的优缺点,结合两者的长处提出 double head,COCO 上提涨点明显

4、Method

4.1、Analysis: Comparison between fc-head and conv-head

(1)Data Processing for Analysis

公平起见,作者没有采用训练好的RPN产生RoI,而是通过在ground-truth box 周围滑动窗口(sliding window)来生成大小和交并比都不同的proppsals。然后比较在相同交并比的情况下,fc-head 和 conv-head 在classification 任务上的精度和 bbx regression 任务后的 IoU,以及相应的均值和标准差。

The predefined proposals include sliding windows around the ground truth box with different sizes

读第一遍的时候确实没有读出来 sliding window 的意思,看了同行的小伙伴解读才豁然开朗

在这里插入图片描述

(2)Comparison on Classification Task

图2,第一行是纵坐标是分类 score(得分应该是 train 出来的,不太清楚是 sliding window proposal 后只训头还是整体训完后替换 rpn 的 proposal),横坐标是 sliding window 的 proposal 和 GT 的 IoU

可以看到 fc-head 确实比 Conv-head 对位置更加敏感

classification score is more correlated to the intersection over union (IoU) between a proposal and its corresponding ground truth box

在这里插入图片描述
图 3 左图也能佐证这一点,皮尔逊系数的介绍看本文最后章节

图 3 右图没有用 sliding window 的 proposal,而是用 RPN 的 proposal(anchor + bbox regression),也看出同样的趋势

(3)Comparison on Localization Task

图 2 第二行,横坐标是 sliding window 的 proposal regression 后的 bbox 与 GT 的 IoU

实话说,区别不是很明显(蓝色比红色高了一点点)

作者还是给出了 conv-head has better regression ability than fc-head.

(4)Discussion

在这里插入图片描述
本文将特征层输出的7x7的feature map,以余弦距离计算其相似度,每一个feature point 都要与其他 48个计算相似度,所以一共 49 张小图,每一个有7x7的网格

确实可以看出,一个是 fc-head 对位置敏感,一个是 fc-head 可能更擅长物体部分区域的响应,而不是整体区域(可以理解为感受野有限吗?)

fc-head is better to distinguish between a complete object and part of an object (classification)

4.2、Our Approach: Double-Head

在这里插入图片描述

(1)Network Structure

基于 mask rcnn 框架

backbone 用的是 resnet50 or resnet101,配合 FPN(【FPN】《Feature Pyramid Networks for Object Detection》

改进:引入了 non-local 模块(【NL】《Non-local Neural Networks》

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

作者权衡速度和精度采用的是 3 residual blocks and 2 non-local blocks (K = 5 in the second group)

损失函数

在这里插入图片描述

也即头部的 loss 和 rpn 结构的 loss 的加权,分类用的是 cross entropy loss,回归用的是 Smooth-L1 loss

回顾一下 mask rcnn 的 RPN 细节

在这里插入图片描述

(2)Extension: Leveraging Unfocused Tasks

在这里插入图片描述
Ext 是 extension 的意思

unfocused task supervision
在这里插入图片描述
在这里插入图片描述

fc-head 和 conv-head 都有,然后两者的分类损失和回归损失加权在了一起

加权系数 λ f c \lambda^{fc} λfc λ c o n v \lambda^{conv} λconv 均为 1 时,double-head-ext 就等价于 double head


作者仅融合了分类损失,没有融合回归损失,细节如下(Complementary Fusion of Classifiers

在这里插入图片描述

s f c s^{fc} sfc 是 fc-head 的 classification score

s c o n v s^{conv} sconv 是 conv-head 的 classification score

5、Experimental Results

5.1、Datasets and Metrics

  • MS COCO2017

  • Pascal VOC07

AP

5.2、Ablation Study

  • Double-FC

  • Double-Conv

  • Double-Head
    作者的方法

  • Double-Head-Reverse
    倒反天罡,fc for bbox regression,conv for classification

在这里插入图片描述

在这里插入图片描述

作者的 double-head 效果最好
在这里插入图片描述

single-conv 比 double-conv 的分类效果更好,所以作者在 double-conv 的基础上升级加权成了 double-conv-ext

在这里插入图片描述

sliding window analysis,double-fc 比 single-fc 要强一些的——有没有一种可能,是头部的参数量多了一些,网络的上限可以更高了

这里作者想说明,sharing two tasks in a single fully connected head (Single-FC) is not as good as separating them in two heads (Double-FC).


More training iterations,这个就有点赖皮了,万精油基本上是,不过参数量多了,确实可能要多训一些,2x有点太多了

Double-Head gains 0.6 AP (from 39.8 to 40.4)


Balance Weights λ f c \lambda ^{fc} λfc λ c o n v \lambda ^{conv} λconv

在这里插入图片描述
这个应该是只训练了 double-head-ext,然后选择不同的 head,配合 λ \lambda λ 做的实验

还是作者的方法精度最高,实验做的无懈可击,哈哈,很完整

double-head-ext 看起来确实比 double-head 整体精度是要好


Fusion of Classifiers

在这里插入图片描述

这里实验的是 fc-head 和 conv-head 的 classification 的融合形式,作者融合的方法效果最好

5.3、Main Results

Comparison with Baselines on VOC07
在这里插入图片描述

Comparison with Baselines on COCO,table 5
在这里插入图片描述

Comparison with State-of-the-art on COCO,table 6

作者只比较 only has one training stage,抛开这个约束的话,slightly below Cascade RCNN (42.8 AP)

fc-head has more capability to distinguish a complete object from part of an object, but is not robust to regress the whole object.

5.4、APPENDIX

(1)Sliding Window Analysis on Different Difficulty Levels of Classes
在这里插入图片描述

classes 的难易程度怎么区分的呢?

rank all object classes based upon AP results of the FPN

在这里插入图片描述

确实 fc-head 有利于分类,这个信号特别明显

(2)Effect of Joint Training in Double-Head-Ext
在这里插入图片描述
还是在 classification 上信号特别明显,double-head-ext 冠绝全场

在 bbox regression 上并不是特别的明显

(3)Qualitative Analysis
在这里插入图片描述
d在这里插入图片描述
inaccurate proposal

It is not suppressed by NMS

就会导致重复检测

6、Conclusion(own) / Future work / Reference