博客专栏

EEPW首页 > 博客 > Double-Head:重新思考检测头,提升精度

Double-Head:重新思考检测头,提升精度

发布人:CV研究院 时间:2022-05-15 来源:工程师 发布文章

图片

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


两种头结构(即全连接头和卷积头)已广泛用于基于 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

图片

可视化

图片

图片


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



关键词: AI

相关推荐

技术专区

关闭