GFLv1是较早提出在训练和推理过程中,质量评估和分类不一致问题的论文。质量与分类往往被独立训练,(yolo输出中,有独立的一个维度用于目标的置信度评估,在训练时与分类解耦;fcos,atss则利用centerness作为质量评估,同样也与分类解耦),但在test过程中却被相乘联合使用。监督只分配给正样本,但有时候负样本可能会提供更高质量的监督,必然会存在一部分分数较低的“负样本”的质量预测是没有在训练过程中有监督信号的,有就是说对于大量可能的负样本,他们的质量预测是一个未定义行为。可能出现的情况就是:一个分类score相对低的真正的负样本,由于预测了一个不可信的极高的质量score,而导致它可能排到一个真正的正样本(分类score不够高且质量score相对低)的前面。
Questions:
总结来说,GFLv1提出两个问题:
1.在训练和推理的过程中,质量评估和分类的方法不一致;
2.在复杂的场景中,回归的表示不够灵活,用狄拉克函数(类似于脉冲函数)来进行定位是不准确的;
Methods:
1.localization quality representation
为了解决上面两个问题,GFLv1提出定位质量估计,论文将其直接与分类分数进行合并,保留类别向量,每个类别的分数的含义变为与GT的IoU。另外,使用这种方式能够同时对正负样本进行训练,不会再有训练和测试的差异。
2.general distribution

对于预测框的表示方法,使用general的分布进行建模,不再强加任何的约束,不仅能够获得可靠和准确的预测结果,还能感知其潜在的真实分布情况。如上图所示,对于存在歧义或不确定的边界,其分布会表现为较平滑的曲线,否则,其分布会表示为尖锐的曲线。
实际上,使用上述提到的两种策略会面临优化的问题。在常规的one-stage检测算法中,分类分支都使用Focal loss进行优化,而Focal loss主要针对离散的分类标签。在论文将定位质量与分类分数结合后,其输出变为类别相关的连续的IoU分数,不能直接使用Focal loss。所以论文对Focal loss进行拓展,提出了GFL(Generalized Focal Los),能够处理连续值目标的全局优化问题。GFL包含QFL(Quality Focal Los)和DFL( Distribution Focal Los)两种具体形式,QFL用于优化难样本同时预测对应类别的连续值分数,而DFL则通过对预测框位置进行general分布的建模来提供更多的信息以及准确的位置预测。
下面我将结合代码给大家讲解GFL的思想与实现。
Focal loss(FL)

FL主要用于解决one-stage目标检测算法中的正负样本不平衡问题,包含标准的交叉熵部分−log(pt)-log(p_t)−log(pt)以及缩放因子部分(1−pt)γ(1-p_t)^\gamma(1−pt)γ,其中缩放因子可以降低简单样本权重,提高困难样本在loss的占比,缓和样本不平衡的问题。
Quality Focal loss(QFL)
由于FL仅支持离散标签,为了将其思想应用到分类与定位质量结合的连续标签,对其进行了扩展。首先将交叉熵部分−log(pt)-log(p_t)−log(pt

GFLv1解决了质量评估与分类不一致的问题,并提出了一种新的定位质量表示方法,改进了回归表示,使得模型能更好地处理复杂场景。该文介绍GFLv1提出的Quality Focal Loss和Distribution Focal Loss的具体实现。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



