RetinaNet 的密集预测:破解类别不平衡难题的单阶段目标检测范式(二)
扫描二维码
随时随地手机看文章
RetinaNet 中密集预测的关键突破在于 “Focal Loss 的设计”,它直接破解了传统密集预测中类别不平衡导致的训练失效难题。在传统交叉熵损失函数下,由于负样本(背景锚点)数量远超正样本(目标锚点)(比例常达 1000:1),大量简单负样本(如完全属于背景的锚点)会产生累积的微小损失,掩盖少量正样本与难分负样本(如与目标边缘重叠的锚点)的重要损失,导致模型训练偏向于 “识别背景”,而非 “区分目标”—— 即使模型将所有样本预测为背景,也能获得较低的总体损失,但完全失去检测目标的能力。Focal Loss 的核心思想是 “动态调整损失权重”:对简单样本(无论是正样本还是负样本)赋予低权重,降低其对损失函数的贡献;对难分样本赋予高权重,迫使模型聚焦于这些对检测精度至关重要的样本。
具体而言,Focal Loss 通过两个机制实现这一目标:一是 “难度权重”,通过一个调制因子降低简单样本的损失 —— 样本预测概率越接近 1(越简单),调制因子越小,损失权重越低;样本预测概率越接近 0.5(越难分),调制因子越大,损失权重越高。二是 “类别平衡权重”,在调制因子的基础上,额外引入一个平衡因子,进一步平衡正样本与负样本的总体损失贡献,避免因负样本数量过多导致的损失失衡。这种损失设计使得 RetinaNet 在面对 10 万个锚点的密集预测时,能够自动忽略 90% 以上的简单背景锚点,将训练资源集中于正样本与难分负样本(如与小目标边缘重叠的锚点、被部分遮挡的目标锚点),从而高效学习到目标的判别特征,彻底解决了传统密集预测 “训练低效” 的核心痛点。
RetinaNet 的密集预测架构还通过 “统一预测头” 设计,确保了多尺度特征图上预测逻辑的一致性与高效性。在生成多尺度预测特征图(P3-P7)后,每个特征图都连接一个结构相同的预测头,该预测头分为 “分类分支” 与 “回归分支”:分类分支负责预测每个锚点属于 “背景” 或 “目标类别”(如 COCO 数据集的 80 类),通过 1×1 卷积将特征图通道数调整为 “类别数 × 锚点数量”,输出每个锚点的类别概率;回归分支负责预测每个锚点与真实目标框的位置偏移(如 x、y 方向的中心偏移,宽、高方向的尺寸缩放),同样通过 1×1 卷积输出 “4× 锚点数量” 的偏移量。这种统一的预测头设计避免了针对不同尺度特征图设计专用预测模块的复杂性,同时通过共享卷积参数(部分实现中)降低了模型参数量,确保了密集预测的实时性 —— 即使生成 10 万个锚点,统一预测头的前向传播也仅需一次多尺度并行计算,无需额外迭代,在 GPU 上可实现 30fps 以上的推理速度,满足实时检测需求。





