FCOS中Quality Focal Loss的优化方法及实现

释放双眼,带上耳机,听听看~!
本文介绍了FCOS中Quality Focal Loss的优化方法及实现,包括定位质量得分和分布建模的设计,以及QFL和GFL的应用。

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,github.com/implus/GFoc…

1、介绍

物体检测的包围框的表示,现在一般用的是狄拉克分布。后来,为了预测框的质量,FCOS中引入了centerness的概念,用来表示框的质量,也确实带来了performance的提升,最后使用的时候,是将这个centerness和类别概率结合到一起使用的。而这种用法其实是有问题的:

训练和推理的时候,对定位质量和类别得分的使用方式不一致

1、定位质量得分和类别得分这两个东西在训练的时候是独立进行训练的,而在推理的时候是结合到一起的。如下图(a)。

FCOS中Quality Focal Loss的优化方法及实现

2、对于定位质量的训练时只在匹配到的正样本上进行训练的,而对于负样本,也有可能会得到比较高的定位质量的得分。

由于这两个问题,就导致了训练和推理之间的gap,负样本也可能会有比较高的定位质量的得分,这样,结合起来的总的得分可能会排在正样本前面。如下图(a)。

FCOS中Quality Focal Loss的优化方法及实现

包围框的表示方式的不够灵活

目前常用的包围框可以看成是狄拉克分布,但是这个分布没办法表示数据集中的一些不确定性,如图3。尽管现在有一些工作将包围框建模为高斯分布,但是这对于真实的包围框的分布来说还是太简单了。真实的包围框的分布可能会非常的随意,而不是向高斯分布那么对称。

FCOS中Quality Focal Loss的优化方法及实现

因此,我们设计了一个新的包围框和定位质量得分的表示方式。对于定位得分的表示,我们将其合并到类别得分中,得到一个统一的表示方式:类别向量,其中,ground truth的类别index上的值就用来表示对应框的定位质量(在文中用的是预测框和对应的gt框的IOU值)。这样就可以端到端的进行训练,在推理的时候也可以直接使用,如图1(b)。这也很好理解,类别概率和定位得分的范围都是0~1,因此预测出来的这个概率即表示类别概率又表示定位质量在数学上是没问题的,关键是如何去利用这个定位质量的预测值。这样,训练和推理就一致起来了,而且,负样本的质量得分会被压制到0,总体的质量的预测会更加的可信。这对于dense的物体检测器尤为有用,因为这种检测器会在全图范围内对所有位置的得分进行排序。对于包围框的表示,我们提出了一种表示方式,可以表示任意的分布。在文中成为通用分布,Generalized Distribution,可以通过这种表示在连续的表示空间上直接学习到离散的概率分布,这样,可以得到更加准确和可信的包围框的预测。如图3。

对于dense的物体检测器,分类的分支一般会使用Focal Loss来优化,FL可以很好的处理类别的不均衡的问题,而对于我们提出的这种classification-IoU的联合表示,除了类别不均衡的问题之外,还有新的问题。IoU的label是0~1范围内连续的,而FL只支持0,1的离散label。我们通过将FL扩展到连续的label解决了这个问题,这个扩展的FL我们叫做GFL(Generalized Focal Loss)。这种GFL可以处理任意的连续的label值。在本文中,我们特别为定位质量和包围框分布设计了QFL(Quality Focal Loss)和DFL(Distribution Focal Loss)。

我们证明了GFL的3个优点:1、拉近了训练和推理之间的gap。2、很好的对包围框的分布进行了建模。3、不加入额外的计算量就可以提高性能。

2. 方法

Focal Loss的表示如下:

FCOS中Quality Focal Loss的优化方法及实现

Quality Focal Loss

在标准的FL中,y的label是[0,1]是离散的,而在QFL中,y的label是连续的0~1,我们让负样本的时候y=0,而正样本的时候,0<y≤1,其中,y表示这个正样本的IoU值。需要注意的是,这个y值在训练过程中是变化的,因为每次预测的框都会不一样。如图4:

FCOS中Quality Focal Loss的优化方法及实现

我们既要保留FL对于类别不均衡的优势,又要能够处理连续的label值,因此,对FL的扩展表现在两方面:1、交叉熵部分−log(pt)-log(p_t),将其扩展到完全形式,−((1−y)log(1−σ)+ylog(σ))-((1-y)log(1-sigma)+ylog(sigma)),2、每个样本的缩放因子(1−pt)γ(1-p_t)^gamma泛化为预测值和实际值之间的绝对值∣y−σ∣β(β≥0)|y-sigma|^beta(betage0),于是,我们得到了QFL的形式:

FCOS中Quality Focal Loss的优化方法及实现

在y=0.5的时候,不同β的可视化的图如下,在文中,使用β=2:

FCOS中Quality Focal Loss的优化方法及实现

Distribution Focal Loss

对于包围框,我们回归的目标是当前坐标点到4条边的距离,这好像也是和FCOS和ATSS不一样的地方,不过文章没怎么提这一点。见图4的回归分支,常规操作时将y作为狄拉克分布来回归,满足:

FCOS中Quality Focal Loss的优化方法及实现

根据之前的分析,我们需要直接去学习一个任意的分布,而不是给定的先验分布如狄拉克分布和高斯分布之类的,因此,我们给与label y一个范围,y0≤y≤yny_0le yle y_n,参考上面的积分形式,我们可以给出y的预测值:

FCOS中Quality Focal Loss的优化方法及实现

连续的积分形式是没办法用神经网络来实现的,需要改成离散形式,将这个范围分成一系列的小段,我们取间隔为Δ,文中,取Δ=1,因此,y的预测值可以表示为:

FCOS中Quality Focal Loss的优化方法及实现

P(x)可以非常方便的使用softmax来实现,用Si来表示每个点的概率,但是,满足这个条件的分布有无穷多的可能性,如图5(b),这可能会降低学习的有效性,我们需要想办法让靠近目标y的点具有较高的概率,还有些情况下,真实的位置可能会距离标注的位置比较远(由于标注的不好的原因),因此,我们提出DFL,可以让网络快速的聚焦到y附近的位置上,这是通过明确的增大yiy_iyi+1y_{i+1}的概率来实现的,这两个是最靠近y的两个值,并且,yi≤y≤yi+1y_ile yle y_{i+1},由于包围框的回归不涉及到正负样本的均衡问题,所以可以直接使用交叉熵的完全形式:

FCOS中Quality Focal Loss的优化方法及实现

直觉上,DFL聚焦于增大y附近的点的概率,在最优解的情况下,只有yiy_i,y和yi+1y_{i+1}这三个点的概率不为零,其他点的概率都为0。

Generalized Focal Loss

上面连个loss,QFL和DFL,可以统一到GFL的形式下,假设用一个模型来预测两个变量,yly_lyry_r的概率,pylp_{y_l}pyrp_{y_r},这两个概率的和为1,最终的预测是两者的线性组合,y^=ylpyl+yrpyr(yl≤y^≤yr)hat y=y_lp_{y_l}+y_rp_{y_r}(y_lle hat yle y_r),对于的y的label是一个连续值,满足,GFL可以写成:

FCOS中Quality Focal Loss的优化方法及实现

使用GFL来训练dense目标检测器

使用损失为:

FCOS中Quality Focal Loss的优化方法及实现

其中,是QFL,是DFL,是GIoU Loss,在实际中,我们使用质量得分来作为和的加权值。

3. 实验

效果不用说,直接上图:

FCOS中Quality Focal Loss的优化方法及实现

在这里,主要有两个超参数,β和n,在ATSS中用的是β=2,n=14或16,基本上,只替换一下loss,就可以有1个点的提升。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

如何优化OCR技术在AI应用中的性能?

2023-12-4 8:16:14

AI教程

美图影像研究院与中国科学院大学提出正则化方法 DropKey

2023-12-4 8:26:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索