Double-Head:重新思考检测头,提升精度(附原论文下载)

关注并星标

从此不迷路

计算机视觉研究院

92bf54089461279e97d0b34fddb49868.gif

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

Double-Head:重新思考检测头,提升精度(附原论文下载)_第1张图片

论文地址:https://arxiv.org/pdf/1904.06493.pdf

计算机视觉研究院专栏

作者:Edison_G

两种头结构(即全连接头和卷积头)已广泛用于基于 R-CNN 的检测器中,用于分类和定位任务。然而,人们对这两种头结构如何为这两项任务工作缺乏了解。

一、背景

大多数两阶段目标检测器共享一个用于分类和边界框回归的头。两种不同的头结构被广泛使用。Faster RCNN在单级特征图(conv4)上使用卷积头(conv5),而FPN在多级特征图上使用全连接头(2-fc)。然而,关于两个任务(目标分类和定位),两个头结构之间缺乏理解。

在今天分享中,研究者对全连接头(fc-head)和卷积头(conv-head)在两个检测任务上进行了彻底的比较,即目标分类和定位。我们发现这两种不同的头结构是互补的。fc-head更适合分类任务,因为它的分类分数与建议与其对应的真实框之间的交集(IoU)更相关。同时,conv-head提供了更准确的边界框回归。

我们认为这是因为fc-head对空间敏感,候选的不同部分具有不同的参数,而conv-head的所有部分共享卷积核。为了验证这一点,研究者检查了两个头的输出特征图,并确认fc-head在空间上更加敏感。因此,fc-head更好地区分完整目标和部分目标的能力,而convhead更健壮地回归整个对象(边界框回归)。

Double-Head:重新思考检测头,提升精度(附原论文下载)_第2张图片

网络的backbone可以使用常用的网络,比如VGG、resnet,再加上FPN的结构,根据一个ROIPooling输出7×7×256大小的feature map,一般的做法是将这个featuremap接上一个全连接分支,在全连接后面接上一个分支输出预测的BoundingBox位置信息,一个分支输出对应位置的类别信息。如上图(a)所示。

在得到7×7×256大小的feature map后,接上几个卷积操作,再接上一个全连接,再在后面接上一个分支输出预测的BoundingBox位置信息,一个分支输出对应位置的类别信息。如上图(b)所示。

二、前言

两种头结构(即全连接头和卷积头)已广泛用于基于 R-CNN 的检测器中,用于分类和定位任务。然而,人们对这两种头结构如何为这两项任务工作缺乏了解。为了解决这个问题,研究者进行了彻底的分析并发现了一个有趣的事实,即两个头结构对两个任务有相反的偏好。具体来说,全连接头(fc-head)更适合分类任务,而卷积头(conv-head)更适合定位任务。

Double-Head:重新思考检测头,提升精度(附原论文下载)_第3张图片

此外,研究者检查了两个头的输出特征图,发现fc-head比conv-head具有更高的空间敏感性。因此,fc-head具有更强的区分完整目标和部分目标的能力,但对回归整个目标并不鲁棒。基于这些发现,研究者提出了一种Double-Head方法,它有一个专注于分类的全连接头和一个用于边界框回归的卷积头。没有花里胡哨,新的方法在MS COCO数据集上分别从具有ResNet-50和ResNet-101骨干网络的特征金字塔网络 (FPN) 基线获得+3.5和+2.8AP。


三、新框架详细分析

Data Processing for Analysis:

为了进行公平的比较,研究者对预定义的候选而不RPN生成的候选对两个头进行分析,因为两个检测器具有不同的候选。预定义的候选包括围绕不同大小的真实值框滑动窗口。对于每个真实对象,生成大约14,000个候选结果。这些候选与真实框之间的IoU(表示为proposal IoUs)逐渐从零(背景)变为一(真实框)。对于每个候选,两个检测器(fc-head和conv-head)生成分类分数和回归边界框。此过程适用于验证集中的所有目标。

Double-Head:重新思考检测头,提升精度(附原论文下载)_第4张图片

研究者将预定义的候选及其相应的GT之间的IoU统一分成20个bins,并相应地对这些候选进行分组。对于每组,计算分类分数的均值和标准差以及回归框的IoU。上图显示了小型、中型和大型目标的结果。

Loss Function:

这里的损失函数与平时的一个head的计算是类似的,只是多一个分支而已,损失函数如下所示,是doublehead的损失函数加上rpn的损失函数:

fcd927b4cba92770f032529cd98b5353.png

上式中,ωfc和ωconv分别是doublehead中全连接和卷积的loss权重,Lfc、Lconv和Lrpn分别是doublehead中fc-head,conv-head,rpn的loss函数。具体采用哪种损失函数,这里同FPN,回归采用smooth-l1,分类采用cross entropy loss。到这里基本就是doublehead的主要原理了,下面还有一些扩展

扩展的doublehead结构:

我们发现上面的原始doublehead中的每个分支都是关注自己的任务,比如卷积只关注回归操作,全连接关注分类操作,而不同的head不只关注自己的任务对检测器的性能还会有所提升。不只关注自己任务(Unfocused Task Supervision)的意思是,fc-head也会接受回归任务的监督信息,conv-head则会接受分类任务的监督信息。如下图所示。

Double-Head:重新思考检测头,提升精度(附原论文下载)_第5张图片

扩展doublehead中的损失函数:

在训练过程中,fc-head不仅要受到本身擅长的分类信息监督还要受到回归信息的监督,同理conv-head也要受到两个信息的监督,先拿fc-head来说,损失函数如下所示:

185093c4fc13ab2704acb2d9809ba38f.png

conv-head,它的损失函数计算同fc-head:

dcd15e9b4750ce8543fa92cefa3cf4ef.png

扩展doublehead中的推断:

看上面的结构图可以看出,分类结果是两个head融合的结果,而回归还是只采用卷积得到的结果。对于分类的融合方式如下式所示:

dd037c2975a054a9ba43bc87e207a126.png

四、实验结果

Double-Head:重新思考检测头,提升精度(附原论文下载)_第6张图片

 Evaluations of detectors with different head structures on COCO val2017

Double-Head:重新思考检测头,提升精度(附原论文下载)_第7张图片

Single-Conv和Double-Conv的比较。左:分类分数的平均值和标准差。 右:回归框和GT之间IoU的均值和标准差。 Single-Conv的分类分数比Double-Conv高,而回归结果是可比。

Double-Head:重新思考检测头,提升精度(附原论文下载)_第8张图片

Comparison between Single-FC and Double-FC

Double-Head:重新思考检测头,提升精度(附原论文下载)_第9张图片

AP over balance weights λfc and λconv

Double-Head:重新思考检测头,提升精度(附原论文下载)_第10张图片

可视化

Double-Head:重新思考检测头,提升精度(附原论文下载)_第11张图片

Double-Head:重新思考检测头,提升精度(附原论文下载)_第12张图片

© THE END 

转载请联系本公众号获得授权

abf8902478382d1a53200f4a328bb810.gif

计算机视觉研究院学习群等你加入!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

Double-Head:重新思考检测头,提升精度(附原论文下载)_第13张图片

扫码关注

计算机视觉研究院

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

 往期推荐 

  • MUCNetV2:内存瓶颈和计算负载问题一举突破?分类&检测都有较高性能(附源代码下载)

  • 旋转角度目标检测的重要性!!!(附源论文下载)

  • 双尺度残差检测器:无先验检测框进行目标检测(附论文下载)

  • Fast YOLO:用于实时嵌入式目标检测(附论文下载)

  • Micro-YOLO:探索目标检测压缩模型的有效方法(附论文下载)

  • 目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载)

  • 多尺度深度特征(下):多尺度特征学习才是目标检测精髓(论文免费下载)

  • 多尺度深度特征(上):多尺度特征学习才是目标检测精髓(干货满满,建议收藏)

  • ICCV2021目标检测:用图特征金字塔提升精度(附论文下载)

  • CVPR21小样本检测:蒸馏&上下文助力小样本检测(代码已开源)

  • 半监督辅助目标检测:自训练+数据增强提升精度(附源码下载)

  • 目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载)

  • 目标检测新框架CBNet | 多Backbone网络结构用于目标检测(附源码下载)

  • CVPR21最佳检测:不再是方方正正的目标检测输出(附源码)

  • Sparse R-CNN:稀疏框架,端到端的目标检测(附源码)

你可能感兴趣的:(python,计算机视觉,机器学习,人工智能,深度学习)