当前位置:网站首页>【目标检测】Generalized Focal Loss V1
【目标检测】Generalized Focal Loss V1
2022-07-29 05:21:00 【呆呆的猫】

论文: https://arxiv.org/pdf/2006.04388.pdf
代码:https://github.com/open-mmlab/mmdetection/tree/master/configs/gfl
出处:NIPS2020
核心点:
- 提出了对边界框位置的 generalize 分布的建模(越清晰的边界学习会越好,分布会比较尖锐,越模糊的边界学习会较差,分布平缓)
一、背景
One-stage 目标检测器基本上是将目标检测建模成了一个密集分类和定位的任务。
分类任务一般使用 Focal Loss 来进行优化,定位任务一般是学习 Dirac delta 分布。
如 FCOS 中就提出了一个估计定位质量的量:IoU score 或 centerness score,然后 NMS 排序的时候,将分类得分和框质量得分相乘。
当前的 One-stage 目标检测器一般都是引入一个单独的预测分支来量化定位效果,定位的预测效果有助于分类,从而提高检测性能。
本文提出了三个基础元素:
- 检测框的质量估计(如 IoU score 或 FCOS 的 centerness score)
- 分类
- 定位
目前的实现中有两个主要的问题:
1、分类得分和框质量估计在训练和测试时候不一致
用法不一致:分类和质量估计,在训练过程是分开的,但在测试过程是乘在一起,作为 NMS score 排序的依据,存在一定的 gap
对象不一致:借助 Focal Loss 的力量,分类分支能够使得少量的正样本和大量的负样本一起训练,但框的质量估计其实是只针对正样本训练的。
对于 one-stage 检测器,做 NMS 排序的时候,所有的样本都会将分类得分和框质量得分相乘,来用于排序,所以必然会存在一部分分数较低的负样本的质量预测在训练过程中没有监督信号,也就是对大量的负样本的质量没有衡量。这就会导致一个分类得分很低的负样本,由于预测了一个极高的框质量得分,导致被预测为一个正样本。
2、bbox regression 的表示不够灵活(Dirac delta 分布不灵活),没有办法建模复杂场景下的 uncertainty
- 在复杂场景中,边界框的表示具有很强的不确定性,而现有的框回归本质都是建模了非常单一的狄拉克分布,非常不灵活。所以作者希望用一种 general 的分布去建模边界框的表示。问题如图 3 所示(比如被水模糊掉的滑板,以及严重遮挡的大象):
二、方法
针对现存的两个问题:
① 训练和测试不一致
② 框位置分布建模不够通用
作者提出了下面的解决方案。
解决问题一:建立一个 classification-IoU joint representation
对于第一个训练和测试不一致的问题,为了保证训练和测试一致,同时还能兼顾分类和框质量预测都能训练到所有的正负样本,作者提出将框的表达和分类得分结合起来使用。
方法:
当预测的类别为 ground-truth 类别的时候,使用位置质量的 score 作为置信度,本文的位置质量得分就是使用 IoU 得分来衡量。
解决问题二:直接回归一个任意分布来建模框的表示
方法:使用 softmax 来实现,涉及到从狄拉克分布的积分形式推导到一般分布的积分形式来表示框
这样一来,就消除了训练和测试的不一致性,而且建立了如图 2b 的分类和定位的强相关性。
此外,负样本可以使用 0 quality scores 来监督。
Generalized Focal Loss 的构成:
- QFL:Quality Focal Loss,学习分类得分和位置得分的联合表达
- DFL:Distribution Focal Loss,将框的位置建模成一个 general distribution,让网络快速的聚焦于和目标位置距离近的位置的分布
Generalized Focal Loss 是如何提出的:
① 原始 FL:
现在的密集预测任务,一般都使用 Focal Loss 来进行分类分支的优化,可以解决前景、背景数量不平衡等问题,其公式如下所示,但也只能支持 0/1 这样的离散类别 label。
**① 提出 QFL:Quality Focal Loss **
标准的 one-hot 编码是在对应真实类别处为 1,其他位置为 0。
使用 classification-IoU 特征,能够将标准的 one-hot 编码柔化,使其更 soft,学习的目标 y ∈ [ 0 , 1 ] y\in[0,1] y∈[0,1],而非直接学习目标 “1”。
对于本文提出了联合表示,label 变成了 0~1 的连续值。FL 不再适用。
- y=0 时,也就是负样本,quality score 为 0
- 0<y<=1 时,表示正样本,且位置得分的 label y 是使用 IoU score 表示的,处于 0~1 之间
为了保证 QFL 有 Focal Loss 的平衡难易样本、正负样本的能力,又能支持连续值的监督,需要对 FL 进行一些扩展。
- 交叉熵 − l o g ( p t ) -log(p_t) −log(pt) 的扩展: − ( ( 1 − y ) l o g ( 1 − σ ) + y l o g ( σ ) ) -((1-y)log(1-\sigma) + ylog(\sigma)) −((1−y)log(1−σ)+ylog(σ))
- 调制因子 ( 1 − p t ) γ (1-p_t)^\gamma (1−pt)γ 的扩展: ∣ y − σ ∣ β ( β > = 0 ) |y-\sigma|^\beta (\beta >=0) ∣y−σ∣β(β>=0)
Quality Focal Loss(QFL)最终为:
- σ = y \sigma = y σ=y 是 QFL 的全局最小化解
- 图 5a 展示了不同 β \beta β 的效果(y=0.5)
- ∥ y − σ ∥ β \|y-\sigma\|^\beta ∥y−σ∥β 是一个调制因子,当一个样本的 quality 估计不准确时,该调制因子会很大,让网络更关注于该难样本,当quality 的估计趋于准确时,即 σ \sigma σ → y y y 时,该调制因子会趋于 0,该样本对 loss 的影响权重会降低。 β \beta β 控制着减低的过程,本文 β = 2 \beta=2 β=2 最优。
② 提出 DFL: Distribution Focal Loss
本文的位置学习是以相对偏移为回归目标的,且之前的文章一般都是以狄拉克分布 δ ( x − y ) \delta(x-y) δ(x−y) 为指导,满足 ∫ − ∞ + ∞ δ ( x − y ) d x = 1 \int_{-\infty}^{+\infty} \delta(x-y)dx = 1 ∫−∞+∞δ(x−y)dx=1,通常使用全连接层来实现。
但本文考虑到真实分布的多样性,选择使用更加通用的分布来表示位置分布。
真实分布通常不会距离标注的位置太远,所以又额外增加了一个 Loss
- DFL 能够让网络更快地聚焦于目标 y y y 附近的值,增大它们的概率
- 含义是以交叉熵的形式去优化与标签y最接近的一左一右两个位置的概率,从而让网络更快的聚焦到目标位置的邻近区域的分布
QFL 和 DFL 可以统一表示为 GFL:
- 变量为 y l y_l yl 和 y r y_r yr
- 预测的上述两个变量的分布分别为: p y l p_{y_l} pyl 和 p y r p_{y_r} pyr, 且 p y l + p y r = 1 p_{y_l} + p_{y_r} = 1 pyl+pyr=1
- 最终的预测为: y ^ = y l p y l + y r p y r \hat{y}=y_lp_{y_l}+y_rp_{y_r} y^=ylpyl+yrpyr,且 y l < = y ^ < = y r y_l <= \hat{y} <= y_r yl<=y^<=yr
训练的 loss 如下:
三、效果
边栏推荐
- 赓续新征程,共驭智存储
- "Shandong University mobile Internet development technology teaching website construction" project training log I
- Super simple integration of HMS ml kit to realize parent control
- Show profiles of MySQL is used.
- Shanzhai coin Shib has a US $548.6 million stake in eth whale's portfolio - traders should be on guard
- Ribbon learning notes 1
- Reporting Services- Web Service
- 重庆大道云行作为软件产业代表受邀参加渝中区重点项目签约仪式
- 性能优化之趣谈线程池:线程开的越多就越好吗?
- Fantom (FTM) prices will soar by 20% in the next few days
猜你喜欢
Refresh, swagger UI theme changes
机器学习让文字识别更简单:Kotlin+MVVM+华为ML Kit
Move protocol global health declaration, carry out the health campaign to the end
北京宝德&TaoCloud共建信创之路
Most PHP programmers don't understand how to deploy safe code
Windos下安装pyspider报错:Please specify --curl-dir=/path/to/built/libcurl解决办法
Training log II of the project "construction of Shandong University mobile Internet development technology teaching website"
“山东大学移动互联网开发技术教学网站建设”项目实训日志二
“山东大学移动互联网开发技术教学网站建设”项目实训日志七
微信内置浏览器禁止缓存的问题
随机推荐
[database] database course design - vaccination database
Training log 4 of the project "construction of Shandong University mobile Internet development technology teaching website"
Training log 6 of the project "construction of Shandong University mobile Internet development technology teaching website"
30 knowledge points that must be mastered in quantitative development [what is level-2 data]
【go】defer的使用
[go] use of defer
并发编程学习笔记 之 工具类CountDownLatch、CyclicBarrier详解
Rsync+inotyfy realize real-time synchronization of single data monitoring
Super simple integration of HMS ml kit to realize parent control
How to make interesting apps for deep learning with zero code (suitable for novices)
Xsan is highly available - xdfs and San are integrated with new vitality
微信小程序源码获取(附工具的下载)
与张小姐的春夏秋冬(1)
ASM插桩:学完ASM Tree api,再也不用怕hook了
【CV】请问卷积核(滤波器)3*3、5*5、7*7、11*11 都是具体什么数?
Idea using JDBC to connect mysql database personal detailed tutorial
Flink, the mainstream real-time stream processing computing framework, is the first experience.
Machine learning makes character recognition easier: kotlin+mvvm+ Huawei ml Kit
Markdown语法
centos7 静默安装oracle