Abstract

密集目标检测器要想实现高准确率,准确地对大量的候选检测框做排序是非常重要的。之前的工作使用分类得分或将分类与预测定位的得分组合起来,对候选框做排序。但是,这些方法都很难得到一个可靠的排序,使检测表现退化。本文中,作者提出学习一个 IOU-aware 分类得分(IACS),结合起来表示目标出现的概率和定位的准确率。作者证明有了IACS,密集目标检测器可以实现更加准确的候选检测框的排序。作者设计了一个新的损失函数,叫做 Varifocal Loss,训练一个密集目标检测器来预测 IACS,提出了一个新的星形的边框特征表示,用于IACS预测和边框优化。将这两个新的组件和边框优化分支结合起来,作者在 FCOS+ ATSS 基础之上,构建了一个 IOU-aware 密集目标检测器,叫做 VarifocalNet 或者简写 VFNet。在 MS COCO 数据集上大量的实验表明,VFNet 能够一直高于基线模型 ∼2.0AP\sim 2.0 AP∼2.0AP。使用了 Res2Net-101-DCN 的最佳模型 VFNet-X-1200 在 COCO test-dev 上,只用了单模型单尺度就取得了 55.1 AP,这在各类检测器中都是 SOTA 的。代码位于:https://github.com/hyz-xmaster/VarifocalNet。

1. Introduction

现有的目标检测器,不管是双阶段还是单阶段,通常都首先产生一组带有分类得分的边框,很多是冗余的,然后使用 NMS 来去除同一目标上的重复的边框。一般地,我们根据分类得分来对NMS中的边框做排序。但是这会损害检测的表现,因为分类得分并不是一个很好的估计边框定位准确率的指标,定位准确而分类得分低的边框可能就会被错误地剔除。


图1. 本文方法的介绍。本文方法没有去预测边框的类别标签(a),而是学习 IOU-aware 分类得分(IACS)作为检测结果得分,将目标出现的置信度和定位准确率融合起来(b)。作者提出了一个 varifocal 损失来训练密集目标检测器来预测 IACS,以及一个星形边框特征表示(九个黄色采样点的特征)用于预测 IACS。有了这个新的特征表示,我们就可将回归框(红色)优化为一个更加准确的框(蓝色)。

为了解决这个问题,现有的目标检测器要么预测一个额外的 IOU 得分,要么预测一个中心度得分,将之作为定位准确率的估计,然后它们和分类得分相乘来对 NMS 中的检测框排序。这些方法可以缓解分类得分和目标定位准确率不对应的问题。但是它们都不是最佳的方法,因为将2个不完美的预测结果相乘可能会导致效果更差,在第三节中作者证明这些方法的表现上界是有限的。此外,增加一个额外的分支来预测定位得分并不是一个简洁的解决方案,会造成计算量增加。

为了克服这些缺点,我们自然地就会问:除了预测一个额外的定位准确率得分,我们是否可以将它融入到分类得分中去?也就是预测一个知晓定位或知晓IOU的分类得分(IACS),它同时能表示某目标类别出现的置信度和边框的定位准确率。

本文中,作者回答了上述问题,做了如下贡献。(1)作者证明对于密集目标检测任务而言,准确地对候选检测框做排序是非常重要的,IACS 的排序效果要比其它方法好(参见第三节)。(2)提出了一个新的 Varifocal 损失函数来训练密集目标检测器,回归出 IACS。(3)设计了一个新的星形边框特征表示,计算 IACS 并优化边框。(4)设计了一个新的密集目标检测器,基于 FCOS+ATSS 和 VFNet,来发掘 IACS 的优势。图1 展示了该方法。

Varifocal 损失受到了 focal loss 启发,是一个动态缩放的二元交叉熵损失。但是它会监督密集目标检测器去回归出连续的 IACS,此外它采用了一个非对称的训练样本加权方法。在训练时,为了解决类别不均衡问题,它只降低负样本的权重,提升高质量正样本的权重来得到优异的检测结果。这样训练就会一直关注到高质量正样本上,这对于优异的检测性能是非常重要的。

星形的边框特征表示使用九个固定采样点的特征(图1黄色圈内),用可变形卷积方法来表示一个边框。与现有密集目标检测器中的点特征相比,这个特征表示能够捕捉到边框的几何信息和相邻区域的语义信息,对 IACS 的准确预测非常重要。它也让我们能去有效地优化边框位置,不会降低效率。

作者基于 FCOS+ATSS 构建了 VFNet,在 COCO 数据集上进行验证。实验结果表明,该方法领先于最强的基线模型 ∼2.0\sim 2.0∼2.0 AP,最佳的模型 VFNet-X-1200 使用了 Res2Net-101-DCN 在 COCO test-dev 上单模型、单尺度的结果是 55.1 AP,超越了之前单模型、单尺度最好的结果。

2. Related Work

目标检测。随着目标检测的发展,当前流行的目标检测器大致可分为两类,用和没用 anchor boxes 的。主流的双阶段检测方法和多阶段方法通常用 anchors 来生成目标候选框,再进行后面的分类和回归,基于 anchor 的单阶段方法无需产生目标候选框,直接地对 anchor boxes 做分类和优化。

最近,anchor-free 目标检测器由于很简洁、很新颖吸引了大量的关注。它们中的一类方法将目标检测问题看作为一个关键点或一个语义点检测问题,包括 CornerNet、CenterNet、ExtremeNet、ObjectsAsPoints 和 RepPoints。另一类 anchor-free 检测器与基于 anchor 的单阶段方法相似,但是它们没有使用 anchor boxes。相反,它们将特征金字塔上的每个点分类为前景或背景,直接预测前景点到ground truth边框四条边的距离,从而输出检测结果。主流方法有 DenseBox、FASF、FoveaBox、FCOS 和 SPAD。作者基于 ATSS 构建了 VFNet,因为它很简洁、高效且表现优异。

检测排序方法。除了分类得分,人们也提出了其它的检测排序方法。IOU-Net 使用一个额外的网络来预测 IOU,用它来排序 NMS 中的边框,但它仍然将分类得分作为最终的检测得分。Fitness NMS、IOU-aware RetinaNet 在本质上都和 IOU-Net 相似,除了它们将预测的IOU或基于IOU 的排序得分与分类得分相乘,作为排序的基础指标。FCOS 没有预测基于 IOU 的分数,而是预测其中心度分数来抑制质量差的检测结果。

本文方法仅预测 IACS 来作为排序的分数。这就避免了额外的网络开支,也避免出现更差的排序指标,因为将有问题的定位得分和有问题的分类得分相乘可能作用更差。

编码边框。提取出判别力强的特征来表示一个边框,这对目标检测中的分类和回归极其重要。在双阶段和多阶段方法中,一般都会用 ROI Pooling 或 ROIAlign 来提取边框特征。将它们用在密集目标检测器中非常消耗时间。单阶段目标检测器一般使用点特征来作为边框的描述符,这样效率更高一些。但是,这些局部特征无法获取边框的几何信息和重要的上下文信息。

HSD 和 RepPoints 在学到的语义点上提取特征,使用可变形卷积来编码边框。但是,由于缺乏强监督,学习如何定位这些语义点是非常有难度的,预测这些语义点也会带来算力上的负担。

本文提出的星形边框表示使用了九个固定采样点的特征来描述一个边框。它很简单、高效,能够获取边框的几何信息和上下文信息。

Generalized Focal Loss Generalized Focal Loss 与本文的工作最相似。GFL 拓展了 Focal Loss,使之可以连续,训练的检测器可预测出一个协同的特征表示,来体现定位的质量和分类的质量。

作者首先强调 varifocal loss 与 GFL 不同。它非对称地对正负样本做加权,而 GFL 是相等地来处理它们。实验结果显示 varifocal loss 效果要更好。此外,作者提出了星形的边框特征表示,有助于 IACS 的预测,通过一个边框优化步骤进一步改进了目标定位精度,这在 GFL 中是没有的。

3. Motivation


图2. FCOS head 输出的示例,包括分类得分、边框和中心度得分。


表1. FCOS+ATSS 在 COCO val2017 上的表现。W/ctr 指在推理时使用了中心度得分。

本章节,作者探讨了一个 anchor-free 的密集检测器表现的上界 — FCOS,定位束缚其性能的点,阐述将 IOU-aware 分类得分作为排序指标的重要意义。

FCOS 构建于 FPN 之上,它的检测头有三个分支。一个预测特征图上每个点的分类得分,一个回归出该点到边框四条边的距离,另一个预测中心度得分,它和分类得分相乘来对 NMS 中的边框排序。图2 展示了 FCOS 头输出的示例。本文中作者实际上探讨的是 FCOS + ATSS 版本,在训练过程中使用自适应训练样本选取(ATSS)机制来定义特征金字塔上前景和背景的点。

为了研究 FCOS+ATSS (在 COCO train2017 上训练)表现的上界,在 NMS 之前,作者用前景点相应的 ground-truth 值交替地替换了预测分类得分、距离偏移量和中心度得分,并用在 COCO val2017 上的 AP 值来评估检测的表现。对于分类得分向量,作者实现了两个选项,将ground-truth 标签处的元素替换为1.0,或者替换为预测边框和ground-truth边框的 IOU(记做 gt_IoU)。作者也考虑将中心度得分替换为 gt_IoU。

结果在表1 中有展示。我们可以看到原始的 FCOS+ATSS 的 AP 是39.2。当推理时使用了 ground-truth 中心度得分(gt_ctr),只增加了2.0 AP。相似地,将预测的中心度得分替换为 gt_IoU(gt_ctr_iou)时,只得到了43.5 AP。这说明用分类得分和预测中心度得分或IOU得分的乘积来对检测结果排序,是无法带来性能大幅度提升的。

但是,使用了 ground-truth 边框(gt_bbox)的 FCOS+ATSS 可以取得 56.1 AP,即便在推理时没用中心度得分(no w/ctr)。但是如果将ground-truth标签处(gt_cls)的分类得分设置为1.0,是否使用中心度得分就变得重要了(43.1 AP vs 58.1 AP)。因为在某种程度上,中心度得分可以区分出准确和不准确的边框。

当我们用 gt_IoU(gt_cls_iou)来替换 ground-truth 类别的分类得分时,出现了最令人惊讶的结果。没有中心度得分时,可以取得 74.7 AP,要显著地高于其它情形。这就说明,对于大多数目标而言,在候选框池中已经有了准确定位的边框。实现优异检测性能的关键在于,从候选框池中准确地选取出这些高质量检测框。结果表明,将ground-truth类别的分类得分替换为 gt_IoU 是最有希望的途径。作者将这样一个得分向量称为 IOU-aware 分类得分(IACS)。

4. VarifocalNet

基于上述发现,作者提出去学习 IoU-aware 分类得分(IACS)来对检测结果排序。至此,作者构建了一个新的密集目标检测器,叫做 VarifocalNet 或VFNet,基于 FCOS+ATSS而来,去除了中心度分支。与 FCOS+ATSS 相比,它有三个新组件:varifocal loss、星形边框特征表示和边框优化。

4.1 IACS — IOU-aware 分类得分

作者将 IACS 定义为分类得分向量的一个标量元素,ground-truth标签处的值就是预测边框和 ground-truth 边框的IOU,其它位置就是0。

4.2 Varifocal Loss

作者设计了一个新的 Varifocal Loss,用于密集检测器的训练,从而预测出 IACS。因为它受 Focal Loss 启发,作者首先简要回顾了 Focal Loss。

Focal Loss 用于解决密集检测器训练中出现的前景、背景类极端不均衡的问题。它的定义如下:


其中y∈{−1,+1}y\in \{-1,+1\}y∈{−1,+1} 代表 ground-truth 类,p∈[0,1]p\in [0,1]p∈[0,1] 是前景类别的预测概率。如等式1所示,调节因子((1−p)γ(1-p)^\gamma(1−p)γ代表前景类,pγp^\gammapγ代表背景类)可以降低容易样本的损失贡献,相对升高错误分类样本的重要性。因此,focal loss 防止训练过程中出现大量容易的负样本,聚焦在稀疏的难例样本上。

作者借鉴了 focal loss 中的加权思想,解决了密集检测器训练过程中回归连续的 IACS 时,出现的类别不均衡问题。但是,focal loss 平等地对待正负样本,而本文则不是。Varifocal loss 基于二元交叉熵损失,定义为:


其中ppp是预测的 IACS,qqq是目标分数。对于一个前景点,ground-truth 类别的qqq 值设为预测边框和 ground-truth的 IOU (gt_IOU),否则就是0,对于一个背景点,对于所有的类别目标qqq就是0。参见图1。

如等式2,varifocal loss 通过系数pγp^\gammapγ来缩放损失,只会降低负样本(q=0q=0q=0)的损失贡献,不会降低正样本(q>0q>0q>0)的损失贡献。这是因为,与负样本相比,正样本极其稀少,我们应该保留这非常珍贵的学习信号。另一方面,受到 PISA 启发,作者用训练目标 qqq 来对正样本加权。如果一个正样本的 gt_IoU 较大,它对损失的贡献就会相应大一些。这样它就关注在那些高质量正样本的训练上,它们对应更高的AP实现更加重要。

为了平衡正样本和负样本的损失,作者在负损失项中增加了一个可调节的缩放系数α\alphaα。

4.3 星形边框特征表示

作者为 IACS 预测设计了一个星形的边框特征表示。它使用九个固定采样点(图1 黄色点)的特征,通过可变形卷积来表示一个边框。这个新的表示方法可以捕捉到边框的几何特征和邻近区域的特征,这对编码预测边框和 ground-truth 边框错位是非常重要的。

特别地,给定图像平面上的一个采样点(x,y)(x,y)(x,y)(或者特征图上的一个映射点),作者首先用3×33\times 33×3卷积回归初始的边框。依照 FCOS,该边框用一个4D向量(l′,t′,r′,b′l',t',r',b'l′,t′,r′,b′)编码,代表着位置(x,y)(x,y)(x,y)到边框左边、上边、右边、下边的距离。有了这个距离向量,我们选择九个采样点:(x,y),(x−l′,y),(x,y−t′),(x+r′,y),(x,y+b′),(x−l′,y−t′),(x+l′,y−t′),(x−l′,y+b′),(x+r′,y+b′)(x,y), (x-l', y), (x, y-t'), (x+r', y), (x, y+b'), (x-l', y-t'), (x+l', y-t'), (x-l', y+b'), (x+r', y+b')(x,y),(x−l′,y),(x,y−t′),(x+r′,y),(x,y+b′),(x−l′,y−t′),(x+l′,y−t′),(x−l′,y+b′),(x+r′,y+b′),然后将它们映射到特征图上。它们到(x,y)(x,y)(x,y)映射点的偏移量作为可变形卷积的偏移量,然后这九个映射点的特征通过可变形卷积做卷积操作,表示一个边框。因为这些点都是人工选择的,没有额外的计算开支,所以计算起来很高效。

4.4 边框优化

作者通过边框优化步骤,进一步改进了目标定位准确率。边框优化是目标检测中的一个常用技巧。但是因为缺乏一个高效和可判别的目标描述符,它没有在密集检测器中大量使用。有了这个星形表示,我们就可以将之应用在密集目标检测器中,不会损失效率。

作者将边框优化问题建模为一个残差学习问题。对于一个初始回归的边框(l′,t′,r′,b′l',t',r',b'l′,t′,r′,b′),我们首先提取一个星形的特征表示来编码它。然后,基于该表示,我们学习四个距离系数(Δl,Δt,Δr,Δb\Delta l, \Delta t, \Delta r, \Delta bΔl,Δt,Δr,Δb)来缩放它们初始的距离向量,这样优化后的边框(l,t,r,b)=(Δl×l′,Δt×t′,Δr×r′,Δb×b′)(l,t,r,b)=(\Delta l\times l', \Delta t\times t', \Delta r\times r', \Delta b\times b')(l,t,r,b)=(Δl×l′,Δt×t′,Δr×r′,Δb×b′)就更加趋近于 ground-truth。

4.5 VarifocalNet

将这三个组件添加到 FCOS 网络上,去除原来的中心度分支,我们就得到了 VarifocalNet。

图3 展示了VFNet的网络结构。VFNet 的主干网络和 FPN 网络与 FCOS 一样。区别位于 head 结构中。VFNet head 有两个子网络组成。定位子网络进行边框回归和后续的优化。它将 FPN 每个层级的特征图作为输入,首先进行三个带有 ReLU激活的 3×33\times 33×3卷积层。这就产生了一个256通道的特征图。定位子网络的一个分支对特征图又做一次卷积,然后在每个空间位置上输出一个4D距离向量(l′,t′,r′,b′)(l',t',r',b')(l′,t′,r′,b′),代表该初始边框。给定了初始边框和特征图,其它分支对九个特征采样点使用星形可分离卷积,输出距离缩放系数(Δl,Δt,Δr,Δb)(\Delta l, \Delta t, \Delta r, \Delta b)(Δl,Δt,Δr,Δb),然后和初始距离向量相乘,得到优化后的边框(l,t,r,b)(l,t,r,b)(l,t,r,b)。

另一个子网络用于预测 IACS。它与定位子网络结构类似(优化分支),除了它在每个空间位置上输出的是一个 CCC (类别个数)维的向量,每个元素协同地表示目标出现的概率和定位准确率。

4.6 损失函数和推理

损失函数。VFNet 的训练由下面的损失函数监督:


其中pc,ip_{c,i}pc,i​和qc,iq_{c,i}qc,i​表示FPN上每个特征图层级里位置iii处类别ccc的预测 IACS 和目标 IACS。LbboxL_{bbox}Lbbox​ 是 GIoU 损失,bboxi′bbox_i'bboxi′​、bboxibbox_ibboxi​和bboxi∗bbox_i^*bboxi∗​表示初始、优化后和 ground-truth 边框。作者用训练目标qc∗,iq_{c^*,i}qc∗,i​ 来对LbboxL_{bbox}Lbbox​加权,也就是对于前景点是 gt_IoU,否则就是0。λ0,λ1\lambda_0,\lambda_1λ0​,λ1​是平衡LbboxL_{bbox}Lbbox​的权重,分别设为1.5和2.0。NposN_{pos}Npos​是前景点的个数,用于对整体损失做归一化。如第三节所述,作者在训练过程中使用了 ATSS 来定义前景和背景点。

推理。VFNet 的推理非常直接。通过网络来对单张图片做前向传播,然后用 NMS 后处理来去除冗余的检测结果。


图3. VFNet 的网络结构。VFNet 构建于 FPN (P3-P7)之上。它的 head 有两个子网络,一个回归出初始边框并优化它,另一个预测 IOU-aware 分类得分,基于一个星形边框特征表示(Star Dconv)。H×WH\times WH×W 表示特征图的大小。

VarifocalNet: An IoU-aware Dense Object Detector论文学习相关推荐

  1. 【CVPR 2021】VarifocalNet: An IoU-aware Dense Object Detector的译读笔记

    论文 VarifocalNet: An IoU-aware Dense Object Detector 摘要 准确排序大量候选框对dense检测器获得高精度是十分重要的.之前的工作使用类别分数或者类别 ...

  2. Distractor-aware Siamese Networks for Visual Object Tracking 论文学习

    Distractor aware of Siamese Networks for visual object tracking 论文学习 论文阅读总结 Translation Abstract 1 I ...

  3. VarifocalNet: An IoU-aware Dense Object Detector

    论文链接: https://arxiv.org/abs/2008.13367 源码:https://github.com/hyz-xmaster/VarifocalNet 准确地对大量候选框进行排序对 ...

  4. 【目标检测】cvpr2021_VarifocalNet: An IoU-Aware Dense Object Detector

    文章目录 一.背景 二.动机 三.方法 3.1 IACS--IoU-Aware Classification Score 3.2 Varifocal loss 3.3 Star-Shaped Box ...

  5. BASNet: Boundary-Aware Salient Object Detection论文学习

    Abstract 深度卷积神经网络在显著目标检测上已有应用,并取得了state of the art的性能.但是之前的绝大多数工作都关注在区域的准确率上,而不是边界的质量上.这篇论文提出了一个预测-优 ...

  6. Delving into Localization Errors for Monocular 3D Object Detection 论文学习

    论文地址:Delving into Localization Errors for Monocular 3D Object Detection Github地址:Delving into Locali ...

  7. Confluence: A Robust Non-IoU Alternative toNon-Maxima Suppression in Object Detection 论文学习

    Abstract 针对目标检测边框选取和抑制问题,本文提出了一个可以替代NMS的新方法.该方法 Confluence 不依赖于边框的置信度得分来选取最佳边框,它也不需要 IOU 来去掉错误的候选框.它 ...

  8. EfficientDet: Scalable and Efficient Object Detection 论文学习

    Abstract 模型效率在计算机视觉领域愈发重要.本文中,作者系统地研究了神经网络结构设计,提出了多项关键优化以提升模型效率.首先,作者提出了一个加权的双向特征金字塔网络(BiFPN),使得多尺度特 ...

  9. 目标检测 | RetinaNet:Focal Loss for Dense Object Detection

    论文分析了 one-stage 网络训练存在的类别不平衡问题,提出能根据 loss 大小自动调节权重的 focal loss,使得模型的训练更专注于困难样本.同时,基于 FPN 设计了 RetinaN ...

最新文章

  1. 创建一个触发器新增字段的时候设置某个字段的值
  2. flink 自定义 窗口_《从0到1学习Flink》—— Flink Data transformation(转换)
  3. Codeforces - 1118D2 - Coffee and Coursework (Hard Version) - 二分
  4. 经典面试题|ConcurrentHashMap 读操作为什么不需要加锁?
  5. 市面上有哪几种门_目前市面上木门的几种分类
  6. axios发送post数据后台收不到_axios 发 post 请求,后端接收不到参数的解决方案
  7. python dynamic array
  8. VUE中常用的UI库
  9. 【速记】英语多个形容词(定语)搭配规则
  10. 蓝桥杯最终冲刺(冲刺Day2)
  11. firefox地址栏搜索
  12. ContentProvider--stable参数
  13. 试证明:已知二叉树的前序序列和中序序列,可以唯一确定该二叉树
  14. 【笔记本保养】老机器的保养注意事项
  15. 在后台定时连续截屏的工具 —— 定时执行专家
  16. word显示打印机服务器脱机,打开word显示正在连接打印机是为什么
  17. 互联网公司招聘--奇虎360--研发工程师--2016年笔试题
  18. java使用DFA算法实现敏感词过滤
  19. Flash视频播放器flowplayer的使用
  20. [TJOI2013]黄金矿工

热门文章

  1. 下载excel模板为空记录
  2. android模拟器内容为空,android getlastknownlocation在模拟器中始终为null
  3. AES和DES代码实现
  4. 误删?格式化?恢复出厂设置?拿什么拯救你的数据?
  5. 【Word】删除页眉底部横线
  6. 值得网页设计师前端收藏的实用工具列表
  7. SitePoint播客#144:免费增补Schmeemium
  8. debian安装ssh服务
  9. centos,debian,ubuntu系统国内源下载地址
  10. Hadoop实战演练:搜索数据分析----多个不同的Job进行串连(4)