Double-Head:重新思考检测头,提升精度(附原论文下载)
关注并星标
从此不迷路
公众号ID|ComputerVisionGzq
学习群|扫码在主页获取加入方式
论文地址: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更健壮地回归整个对象(边界框回归)。
网络的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)更适合定位任务。
此外,研究者检查了两个头的输出特征图,发现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)生成分类分数和回归边界框。此过程适用于验证集中的所有目标。
研究者将预定义的候选及其相应的GT之间的IoU统一分成20个bins,并相应地对这些候选进行分组。对于每组,计算分类分数的均值和标准差以及回归框的IoU。上图显示了小型、中型和大型目标的结果。
Loss Function:
这里的损失函数与平时的一个head的计算是类似的,只是多一个分支而已,损失函数如下所示,是doublehead的损失函数加上rpn的损失函数:
上式中,ω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则会接受分类任务的监督信息。如下图所示。
扩展doublehead中的损失函数:
在训练过程中,fc-head不仅要受到本身擅长的分类信息监督还要受到回归信息的监督,同理conv-head也要受到两个信息的监督,先拿fc-head来说,损失函数如下所示:
conv-head,它的损失函数计算同fc-head:
扩展doublehead中的推断:
看上面的结构图可以看出,分类结果是两个head融合的结果,而回归还是只采用卷积得到的结果。对于分类的融合方式如下式所示:
四、实验结果
Evaluations of detectors with different head structures on COCO val2017
Single-Conv和Double-Conv的比较。左:分类分数的平均值和标准差。 右:回归框和GT之间IoU的均值和标准差。 Single-Conv的分类分数比Double-Conv高,而回归结果是可比。
Comparison between Single-FC and Double-FC
AP over balance weights λfc and λconv
转载请联系本公众号获得授权
计算机视觉研究院学习群等你加入!
扫码关注
计算机视觉研究院
公众号ID|ComputerVisionGzq
学习群|扫码在主页获取加入方式
往期推荐
🔗
Micro-YOLO:探索目标检测压缩模型的有效方法(附论文下载) 目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载) 多尺度深度特征(下):多尺度特征学习才是目标检测精髓(论文免费下载) 多尺度深度特征(上):多尺度特征学习才是目标检测精髓(干货满满,建议收藏) ICCV2021目标检测:用图特征金字塔提升精度(附论文下载) CVPR21小样本检测:蒸馏&上下文助力小样本检测(代码已开源) 半监督辅助目标检测:自训练+数据增强提升精度(附源码下载) 目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载) 目标检测新框架CBNet | 多Backbone网络结构用于目标检测(附源码下载) CVPR21最佳检测:不再是方方正正的目标检测输出(附源码) Sparse R-CNN:稀疏框架,端到端的目标检测(附源码)