今天就跟大家聊聊有关如何用VarifocalNet进行对候选框排序的最优方案,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
现在的物体检测方法中的其中一个问题是,目标的分类得分无法代表对于其位置预测的质量,这导致有些位置预测很准的框的置信度不高,在做NMS的时候会被抑制掉。为了解决这个问题,也提出了很多的方法,比如用一个额外的IoU得分或者centerness的得分来对位置的预测质量进行评估,然后在做NMS的时候,把分类得分和位置质量得分相乘起来使用。但是这种方法并不是最优的,甚至会导致更差的结果,后面会说。如果是用一个小的网络去预测位置评分的话,这种方法不够优雅,需要额外的计算量。
为了克服这些缺点,我们可以思考一个问题:我们能不能将这个位置的质量预测合并到分类得分里面,而不是单独去预测一个定位的质量?也就是说,预测一个和定位相关的分类得分,或者是IoU相关的分类得分,叫做IACS。
我们的贡献如下:
1、我们展示了使用合适的分数对大量的候选框进行准确的排序是提升dense目标检测器表现的关键因素。
2、我们提出了Varifocal Loss来训练dense目标检测器,去回归IACS。
3、我们提出了一种新的星型的目标框的特征表示方式来预测IACS并对框进行优化。
4、我们基于FCOS开发了一种新的目标检测器,叫做VarifocalNet或者VFNet,我们的方法的示意图如下。
这部分中,我们研究了FCOS+ATSS的performance的上限,展示了将IoU-aware的分类得分作为排序bias的重要性。在研究FCOS+ATSS的上限的时候,在做NMS之前,我们把dense的预测分类得分,距离的offset以及centerness的得分都换成了ground truth值,然后在coco val2017上进行评估。对于分类概率向量,我们有两种选择,一个是直接把对应的类别置为1,另一个方法是置为gt和预测框的gt-IoU的值。对于centerness值,我们也考虑使用其真实值或者是gt-IoU的值。结果如表1,原始的FCOS+ATSS的AP是39.2,当我们在推理的时候对centerness得分使用gt值(gt_ctr)的时候,只提升了2个点,类似的,我们把centerness值替换为gt_IoU(gt_ctr_iou)的值之后,也只是提升到了43.5。这表明用类别概率和centerness相乘并不能得到显著的提升。
相比之下,使用gt包围框的FCOS+ATSS在没有centerness的情况下,达到了56.1的AP。但是,如果将gt_label位置的类别概率(gt_cls)设为1,是否使用centerness就变得很重要了(43.1 AP vs 58.1 AP),因为centerness可以在某种程度上区分开正确和不正确的包围框。
最令人惊讶的是,如果把分类得分替换为gt_IoU(gt_cls_iou),也就是IACS,在推理的时候不需要centerness,可以得到74.7的AP。上面的结果表明,对于大多数的gt目标,在庞大的候选结果的池子里是存在准确定位的包围框的,那么,关键就是如何把这些高质量的检测结果从候选池子里挑选出来,上面的结果显示了,IACS就是选择候选结果的最佳的度量方法。
基于上面的发现,我们提出去学习一个IoU-aware的分类得分(IACS)来排序检测结果,然后我们基于FCOS+ATSS,去掉了centerness分支,构建了一个新的dense物体检测器,叫做VarifocalNet或者VFNet。相比于FCOS+ATSS,有3个新东西:varifocal loss,星型包围框以及包围框优化。
我们设计了Varifocal Loss用来训练IACS,这是从Focal Loss演化而来的。Focal Loss的定义如下:
其中,α是用来平衡正负样本的权重,
和
用来调制每个样本的权重,使得困难样本有较高的权重,避免大量的简单的负样本主导了训练时候的loss。我们借用了Focal Loss中的这种加权的思想,我们用Varifocal Loss来训练回归连续的IACS,和Focal Loss不一样的是,Focal Loss对于正负样本的处理是相同的,而我们这里是不对等的,我们的Varifocal Loss定义为:
其中p是预测的IACS,q是目标IoU得分,对于正样本,q是预测包围框和gt框之间的IoU,对于负样本,q为0。见上面的图1。
从式子中可以看到,VFL只对负样本进行了 的衰减,这是由于正样本太少了,我们希望充分利用正样本的监督信号。另一方面,受到PISA和IoU-balanced Loss的启发,我们对正样本使用q进行了加权,如果正样本具有很高的gt_iou,那么,loss的贡献就要大一些,这样使得训练可以聚焦在那些质量高的样本上。为了平衡总体的正负样本,我们同样使用了α进行了负样本的加权。
我们还设计了一种高效的星型的包围框的表示方法来预测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个点被映射到特征图上,使用可变形卷积来表示包围框,由于这些点是手工选取的,不需要额外的预测,所以计算上非常高效。
我们通过包围框的优化步骤进一步提升了物体的定位准确率。包围框的优化在dense的物体检测中并不常用,但是,使用星型的包围框的表示,我们可以在dense的物体检测器中利用包围框优化而不损失计算效率。
我们将包围框的优化建模为一个残差学习的问题。对于初始的回归框(l’, t’, r’, b’),我们首先提取星型的表示并编码,然后,我们学习4个距离缩放因子,(△l, △t, △r, △b)来缩放这个距离向量,这样优化后的包围框可以表示为(l, t, r, b) = (△l×l’,△t×t’, △r×r’, △b×b’),更加接近gt。
加上上面的三个组件,然后去掉centerness分支,就得到了VarifocalNet,图3显示了VarifocalNet的结构,主干和FCOS一样,区别就在于检测头上。定位子网络需要进行包围框的回归和refine。
损失函数如下:
其中,bbox‘和bbox分别表示初始的和refine之后的预测包围框,我们使用训练的target的qi进行加权。
推理:推理就是直接图像的前向传播然后NMS去除冗余框。
训练细节:初始学习率0.01,使用线性warmup策略,warmup比例是0.1,使用了8个V100 GPU,batchsize为16。输入图像的最大尺寸为1333x800,数据增强方面只使用了水平翻转。
不同超参数(α,γ)以及损失加权的效果,如表2,效果最好的是γ=2,α=0.75。
每个组件的影响见表3:
和GFL进行了对比,将VFL用到其他的方法上看是否有效果:
看完上述内容,你们对如何用VarifocalNet进行对候选框排序的最优方案有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。