概述
它解决了困扰单阶段目标检测器的极端背景与对象不平衡问题。
深入探讨
在目标检测中,图像可能只包含几个真实目标,但包含数以万计的候选位置,几乎所有这些都是简单的背景。使用标准交叉熵,大量简单的负值在梯度中占主导地位,并淹没了罕见的正值。 Lin 和 Facebook AI 的同事在 2017 年的 RetinaNet 论文中引入了焦点损失,它通过将交叉熵乘以一个因子 (1 - p_t)^gamma 来解决这个问题。当样本被自信且正确地分类时,p_t 接近 1,因此该因子缩小到零,并且分类良好的示例几乎没有贡献。困难的、错误分类的例子几乎占据了全部权重。在 gamma 约为 2 的情况下,RetinaNet 可以匹配或击败 Faster R-CNN 等速度较慢的两级检测器,同时保持简单的单通道网络。
现实世界的实施
在大多数像素为背景的自动驾驶帧中检测小路标或远处的行人。
在医学扫描中发现以健康组织为主的罕见肿瘤或病变。
在生产线上发现缺陷,其中绝大多数被检查的零件都是正常的。
识别大型卫星和航空图像中的小型船只或车辆。
不平衡检测的焦点损失的未来
焦点损失已经成为 RetinaNet 之外的默认成分,出现在 FCOS 等检测器、分割和长尾分类中。质量焦点损失、分布焦点损失和变焦损失等变体针对现代无锚和基于变压器的检测器进行了改进。随着检测转向使用二分匹配的 DETR 等集合预测模型,在类频率严重倾斜的情况下,焦点式重新加权仍然是一种实用的工具。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是用于不平衡检测的焦点损失 (Focal Loss)?
焦点损失是一种修改后的损失函数,可以降低简单示例的权重,以便检测器可以专注于困难的、罕见的示例。它解决了导致一级物体检测器瘫痪的背景与物体的极端不平衡问题。
焦点损失旨在解决单阶段目标检测中的哪些核心问题?
在密集检测中,简单的背景示例远远超过真实对象,并主导标准交叉熵梯度。焦点损失重新加权如此罕见,困难的例子更重要。
焦点损失乘以交叉熵的调节因子是什么?
焦点损失为 -(1 - p_t)^gamma * log(p_t)。 (1 - p_t)^gamma 项收缩为零,以确保预测正确。
当聚焦参数gamma设置为0时,焦点损失会发生什么?
当 gamma = 0 时,因子 (1 - p_t)^0 等于 1,因此焦点损失精确地减少到标准交叉熵。
增加伽玛对于简单、分类良好的示例有何作用?
较高的 gamma 使得 (1 - p_t)^gamma 项对于高 p_t 收缩得更快,因此简单的示例对损失和梯度的贡献甚至更小。
哪种探测器架构引入了焦损?
2017 年 RetinaNet 论文中引入了焦点损失,使单级检测器能够与精确的两级方法相媲美。