一、本文介绍
本文给大家带来的是损失函数改进VFLoss损失函数,VFL是一种为密集目标检测器训练预测IoU-aware Classification Scores(IACS)的损失函数,我经过官方的版本将其集成在我们的YOLOv8的损失函数使用上,其中有很多使用的小细节(否则按照官方的版本使用根本拟合不了,这也是为啥网上的版本拟合不了的原因,其中需要设置一些参数),后面我也会给大家讲解到底模型改到什么地步的时候引入损失函数改进,同时在开始讲解之前推荐一下我的专栏,本专栏的内容支持(分类、检测、分割、追踪、关键点检测),专栏目前为限时折扣,欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。
专栏回顾:YOLOv5改进专栏——持续复现各种顶会内容——内含100+创新
二、VFLoss损失函数的基本原理
Varifocal Loss (VFL) 是一种Focal损失函数的进阶版本,用于训练密集目标检测器预测IoU-aware Classification Scores (IACS)。它的主要原理是通过这种得分,即物体存在的置信度和定位精度的联合表示,来更准确地对大量候选检测框进行排序。VFL受到Focal Loss的启发,但与之不同的是,它采用了一种不对称的训练样本加权方法,仅降低负样本的权重,而提高高质量正样本的权重,从而聚焦于对高质量正样本的训练,这对于提高检测性能至关重要。简言之,VFL旨在解决类别不平衡问题,并专注于难以分类的正例。
图中展示了Varifocal Loss(VFL)的定义和它在目标检测任务中的应用。Varifocal Loss的计算公式如下
其中
是模型预测的IACS,
是目标IoU分数,α 和 γ 是超参数。
此损失函数旨在通过学习IoU-aware的分类分数(即IACS)来提升检测性能,这个分数融合了物体存在的置信度和定位精度。通过使用VFL,模型可以更加关注难以分类的正样本,从而提高整体的目标检测性能。图中也展示了在学习边界框时如何使用VFL来提炼初始回归的边界框(用红色表示)到更准确的版本(用蓝色表示)。