如何使用VarifocalNet制定候选框排序的最佳方案

技术如何用VarifocalNet进行对候选框排序的最优方案今天就跟大家聊聊有关如何用VarifocalNet进行对候选框排序的最优方案,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这

今天,我要和大家谈谈如何使用VarifocalNet对候选框进行排序。很多人可能不太了解。为了让大家更好的了解,边肖为大家总结了以下内容。希望你能从这篇文章中有所收获。

1. 介绍

当前目标检测方法存在的问题之一是目标的分类得分不能代表其位置预测的质量,导致一些位置预测准确的帧置信度较低,在做NMS时会被抑制。为了解决这个问题,已经提出了许多方法,例如使用额外的IoU分数或中心分数来评估位置的预测质量,然后在进行NMS时将分类分数和位置质量分数相乘。但是这种方法不是最优的,甚至会导致更差的结果,这将在后面描述。如果使用小网络来预测位置得分,这种方法不够优雅,需要额外的计算。

为了克服这些缺点,我们可以思考一个问题:我们能不能将这个位置的质量预测合并到分类得分里面,而不是单独去预测一个定位的质量?,也就是预测一个与定位相关的分类分数,或者说IoU,叫做IACS。

我们的贡献如下:

1.我们表明,提高密集目标检测器性能的关键因素是用合适的分数对大量候选盒子进行精确排序。

2.我们提出变损失训练密集目标探测器返回IACS。

3.我们提出了一种新的星形目标盒的特征表示来预测IACS并优化该盒。

4.我们开发了一种基于FCOS的新型目标检测器,称为VarifocalNet或VFNet。我们方法的示意图如下。

如何用VarifocalNet进行对候选框排序的最优方案

00-1010,我们研究了FCOSATSS表现的上限,并展示了使用IoU-aware的分类分数作为排序偏差的重要性。在研究FCOSATSS的上限时,在做NMS之前,我们把预测的密集度的分类分数、距离的偏移量和中心度的分数改为地面真值,然后在coco val2017上进行评估。对于分类概率向量,我们有两种选择,一种是直接将对应的类别设置为1,另一种是设置预测框的gt和gt-IoU的值。对于核心价值,我们也考虑使用它的真实价值或gt-IoU的价值。如表1所示,原FCOS ATSS的AP为39.2。当我们在推理中使用gt值(gt_ctr)作为中心分数时,它只会提高2分。同样,我们用gt_IoU(gt_ctr_iou)替换后,它只提高到43.5。这说明类别概率和中心度的相乘并不能得到显著的提高。

如何用VarifocalNet进行对候选框排序的最优方案

相比之下,FCOS ATSS使用gt包围盒可以达到56.1 AP无中心。但是,如果将gt_label位置的类别概率(gt_cls)设置为1,那么使用居中性是非常重要的(43.1 AP vs 58.1 AP),因为居中性可以在一定程度上区分正确和不正确的边界框。

最令人惊讶的是,如果将分类得分替换为gt_IoU(gt_cls_iou),也就是IACS,那么在推理中不需要中心性就可以得到74.7的AP。上述结果表明,对于大多数gt目标,在庞大的候选结果池中存在精确定位的包围盒,因此关键在于如何从候选结果池中选择这些高质量的测试结果。上述结果表明,IACS是选择候选结果的最佳测量方法。

00-1010基于以上发现,我们建议学习一个IoU感知分类评分(IACS)来对检测结果进行排序。然后,在FCOSATSS的基础上,我们去掉了中心分支,构造了一个新的密集目标检测器,称为VarifocalNet或VFNet。与FCOSATSS相比,有三个新的东西:变焦距损失,恒星包围盒和包围盒优化。

2. 动机

我们设计了各种焦损来训练IACS,它是从焦损发展而来的。胼胝体的定义如下:

如何用VarifocalNet进行对候选框排序的最优方案

其中是用于平衡阳性和阴性样品的重量,

false" viewbox="0 -750 3437.4 1000" aria-hidden="true">和
   用来调制每个样本的权重,使得困难样本有较高的权重,避免大量的简单的负样本主导了训练时候的loss。我们借用了Focal Loss中的这种加权的思想,我们用Varifocal Loss来训练回归连续的IACS,和Focal Loss不一样的是,Focal Loss对于正负样本的处理是相同的,而我们这里是不对等的,我们的Varifocal Loss定义为:

如何用VarifocalNet进行对候选框排序的最优方案

其中p是预测的IACS,q是目标IoU得分,对于正样本,q是预测包围框和gt框之间的IoU,对于负样本,q为0。见上面的图1。

从式子中可以看到,VFL只对负样本进行了
   的衰减,这是由于正样本太少了,我们希望充分利用正样本的监督信号。另一方面,受到PISA和IoU-balanced Loss的启发,我们对正样本使用q进行了加权,如果正样本具有很高的gt_iou,那么,loss的贡献就要大一些,这样使得训练可以聚焦在那些质量高的样本上。为了平衡总体的正负样本,我们同样使用了α进行了负样本的加权。

 

3.2 星型包围框的特征表示

我们还设计了一种高效的星型的包围框的表示方法来预测IACS,使用了固定的9个采样点(图1中的黄色圆圈),通过可变形卷积来表示包围框。这种表示方法可以获取包围框的几何信息以及附近的上下文的信息,这对于预测框和gt框在编码时的不对齐问题很重要。

具体来说,给定一个采样点(x,y),我们首先使用一个3x3的卷积回归一个初始框,和FCOS一样,包围框编码为4D向量(l’, t’, r’, b’),表示采样点到四条边的距离,使用这个距离向量,我们启发式的选择了9个采样点:(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’),然后,这9个点被映射到特征图上,使用可变形卷积来表示包围框,由于这些点是手工选取的,不需要额外的预测,所以计算上非常高效。

 

3.3 包围框优化

我们通过包围框的优化步骤进一步提升了物体的定位准确率。包围框的优化在dense的物体检测中并不常用,但是,使用星型的包围框的表示,我们可以在dense的物体检测器中利用包围框优化而不损失计算效率。

我们将包围框的优化建模为一个残差学习的问题。对于初始的回归框(l’, t’, r’, b’),我们首先提取星型的表示并编码,然后,我们学习4个距离缩放因子,(△l, △t, △r, △b)来缩放这个距离向量,这样优化后的包围框可以表示为(l, t, r, b) = (△l×l’,△t×t’, △r×r’, △b×b’),更加接近gt。

 

3.4 VarifocalNet

加上上面的三个组件,然后去掉centerness分支,就得到了VarifocalNet,图3显示了VarifocalNet的结构,主干和FCOS一样,区别就在于检测头上。定位子网络需要进行包围框的回归和refine。

如何用VarifocalNet进行对候选框排序的最优方案

 

3.5 损失函数和推理

损失函数如下:

如何用VarifocalNet进行对候选框排序的最优方案

其中,bbox‘和bbox分别表示初始的和refine之后的预测包围框,我们使用训练的target的qi进行加权。

推理:推理就是直接图像的前向传播然后NMS去除冗余框。

 

4. 实验

训练细节:初始学习率0.01,使用线性warmup策略,warmup比例是0.1,使用了8个V100 GPU,batchsize为16。输入图像的最大尺寸为1333x800,数据增强方面只使用了水平翻转。

 

4.1 消融实验

 

4.1.1 Varifocal Loss

不同超参数(α,γ)以及损失加权的效果,如表2,效果最好的是γ=2,α=0.75。

如何用VarifocalNet进行对候选框排序的最优方案

 

4.1.2 每个组件的贡献

每个组件的影响见表3:

如何用VarifocalNet进行对候选框排序的最优方案

 

4.2 和其他最先进方法的对比

如何用VarifocalNet进行对候选框排序的最优方案

 

4.3 通用性和优势

和GFL进行了对比,将VFL用到其他的方法上看是否有效果:

如何用VarifocalNet进行对候选框排序的最优方案

看完上述内容,你们对如何用VarifocalNet进行对候选框排序的最优方案有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/156002.html

(0)

相关推荐

  • pythondjango3教程(python的django是什么架构)

    技术Python的django-is-core有什么功能这篇文章主要介绍“Python的django-is-core有什么功能”,在日常操作中,相信很多人在Python的django-is-core有什么功能问题上存在疑

    攻略 2021年12月17日
  • jsp报错问题汇总

    技术jsp报错问题汇总 jsp报错问题汇总一、jsp 页面跳转报错c:forEach items="${map}" var="m"%--取出map的key和value,JSTL提供了一下方式--%${m

    礼包 2021年11月1日
  • Pytorch进阶操作的示例分析

    技术Pytorch进阶操作的示例分析小编给大家分享一下Pytorch进阶操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、合并与

    攻略 2021年11月13日
  • with是介词吗,on和with不都是介词吗

    技术with是介词吗,on和with不都是介词吗这两个字都是介系词with是介词吗。介词(preposition 简写prep.)又称作前置词,表示名词、代词等与句中其他词的关系,在句中不能单独作句子成分。介词后面一般有

    生活 2021年10月29日
  • 数据库迁移如此复杂的原因是什么

    技术数据库迁移如此复杂的原因是什么这篇文章主要介绍“数据库迁移如此复杂的原因是什么”,在日常操作中,相信很多人在数据库迁移如此复杂的原因是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年10月23日
  • 怎么实现jenkins邮件配置

    技术怎么实现jenkins邮件配置本篇文章为大家展示了怎么实现jenkins邮件配置,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Jenkins搭建完成后,接下来就要做一些配置工

    攻略 2021年11月17日