从YOLOv5到YOLOv8:损失函数CIoU+DFL+VFL的演进与PyTorch代码对比

YOLOv8损失函数目标检测PyTorch
于 2026-05-29 11:38:54 修改
·本内容遵循CC 4.0 BY-SA版权协议

从YOLOv5到YOLOv8:目标检测损失函数的深度演进与技术实现

在计算机视觉领域,目标检测算法的性能提升往往依赖于损失函数的精妙设计。YOLO系列作为实时目标检测的标杆,从v5到v8版本的迭代中,损失函数模块经历了三次关键变革:边界框回归从GIoU/DIoU升级为CIoU+DFL组合,分类损失从标准交叉熵进化为VFL(Varifocal Loss)。这些改进不是简单的参数调整,而是针对目标检测任务特性的系统性优化。

1. 边界框回归损失的演进之路

边界框回归是目标检测的核心任务,其损失函数的设计直接影响模型定位精度。YOLOv5采用DIoU Loss作为默认配置,而YOLOv8则创新性地结合了CIoU和DFL两种损失机制。

1.1 从IoU到CIoU的几何考量

传统IoU Loss只考虑预测框与真实框的重叠面积,存在梯度消失问题。YOLOv5使用的DIoU在此基础上添加了中心点距离惩罚项:

PYTHON
# YOLOv5 DIoU实现核心代码
def bbox_iou(box1, box2, x1y1x2y2=True, DIoU=False, eps=1e-7):
# 计算交集面积
inter = (torch.min(box1[..., 2:], box2[..., 2:]) -
torch.max(box1[..., :2], box2[..., :2])).clamp(0).prod(-1)
# 计算并集面积
union = (box1[..., 2] - box1[..., 0]) * (box1[..., 3] - box1[..., 1]) +
(box2[..., 2] - box2[..., 0]) * (box2[..., 3] - box2[..., 1]) - inter + eps
iou = inter / union
if DIoU:
# 计算中心点距离
c_dist = ((box2[..., 0] + box2[..., 2] - box1[..., 0] - box1[..., 2]) ** 2 +
(box2[..
最低 0.47元/天 开通会员,解锁全文
left
成为会员后, 你将解锁
right
benefits 下载资源随意下
benefits 优质VIP博文免费学
benefits 优质文库回答免费看
benefits 付费资源9折优惠
YOLOv8 从环境搭建到推理训练
本文介绍了如何在Linux服务器上使用Anaconda和Python 3.8搭建YOLOv8的训练环境,详细阐述了从创建新环境、安装依赖、下载代码和权重,到测试运行、数据准备、数据集划分、标签转换、配置文件创建、模型选择和训练的全过程。
河伯187
44315
YOLO损失函数——SIoU和Focal Lossr损失函数解析
本文深入探讨YOLO系列模型的损失函数,如Focal Loss和SIoU Loss。介绍了损失函数的重要性,包括凸与非凸函数的区别。详细阐述了YOLO各版本损失函数演进,分析了SIoU Loss的角度、距离、形状和IoU成本。还给出了SIoU和Focal Loss的PyTorch实现。
知来者逆
11098
深度学习(一):PytorchYOLOv8目标检测
本文详细解析了YOLOv8模型,包括结构优化(如C2f块和TaskAlignedAssigner),损失函数的更新(如VFL和CIOULoss),以及其在目标检测、分割、分类和姿态估计任务中的应用。
从零开始的奋豆
4694
YOLOv8的改进
YOLOv8是YOLO系列的最新版本,它在Backbone中使用了C2f模块替代了C3,引入了Decoupled-Head和Anchor-Free思想。PAN-FPN结构有所简化,去除了上采样前的1x1卷积。损失函数采用了VFLLoss和DFLLoss。YOLOv8还改进了样本匹配策略,采用Task-AlignedAssigner。文章还介绍了YOLOv8的安装、训练配置以及如何利用TensorRT进行模型加速。
和风细动帘帷暖
4194
YOLOv8 预览使用指南
YOLOv8是Ultralytics开发的最新SOTA对象检测模型,它采用了无锚策略和解耦头设计,提高了性能和灵活性。模型改进包括使用DecoupledHead、AnchorFree、C2f模块和新型损失函数VFLLossCIOULoss。训练过程在MSCOCO2017数据集上进行,使用TaskAlignedAssigner进行样本匹配。YOLOv8支持在Python环境中使用并提供了多种训练和预测选项。
JasperXzy
3096
详解YOLOv8网络结构/环境搭建/数据集获取/训练/推理/验证/导出/部署
本文详细介绍了YOLOv8的网络结构,包括Backbone的C2f模块替换C3模块,Neck部分的改进,以及Head中的Decoupled-Head思想。此外,还涵盖了环境搭建、数据集获取、模型训练、验证、推理和模型输出的步骤。YOLOv8在目标检测方面实现了更高精度和速度,是YOLO系列的又一重大进步。
Snu77
84164
基于Yolov8的道路破损检测系统
文章介绍了YOLOv8目标检测模型的改进,包括CSP轻量化、PAN-FPN优化和Decoupled-Head等,并使用Anchor-Free策略。通过数据集划分和voc_label.py处理,为训练做好准备。训练结果分析显示模型具有一定的准确性和召回率。此外,文章还探讨了基于PySide6的道路破损检测系统的构建,用于图形化展示和交互。
AI小怪兽
6247
告别Anchor-Base!手把手带你用YOLOv8跑通第一个目标检测Demo(附环境配置避坑指南)
本文详解YOLOv8从环境配置、Anchor-Free架构原理、VFL+DFL损失函数设计,到图片/视频检测Demo落地及TensorRT加速优化全流程。涵盖PyTorch/CUDA兼容性避坑、预处理逻辑重构、标签格式转换、mAP调试要点等关键技术环节,聚焦AI视觉算法工程化实践。
Angela㐅cc
245
基于Yolov8的工业小目标缺陷检测(9)Gold-YOLO,遥遥领先,超越所有YOLO | 华为诺亚NeurIPS23
本文提出全新的信息聚集 - 分发(GD)机制构建Gold - YOLO,替换YOLOv8的head部分。介绍了工业油污小目标数据集及YOLOv8特点,分析小目标检测难点。将Gold - YOLO引入YOLOv8并进行训练,结果显示原始mAP@0.5从0.679提升至0.712,在工业小目标缺陷检测涨点明显。
AI小怪兽
2202
深度学习论文: YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications及其PyTorch实现
YOLOv6是一种单阶段目标检测框架,支持多种设备部署,包括GPU、CPU和ARM等。该框架改进了网络设计,引入了RepVGG主干网络,并优化了损失函数,提升了检测性能。
mingo_敏
1717
基于Yolov8的工业小目标缺陷检测实战(2)动态蛇形卷积(Dynamic Snake Convolution),实现暴力涨点 | ICCV2023
本文介绍了三星工业油污数据集中小目标检测的挑战,特别是小目标数量少、位置多样性和匹配难题。通过将DynamicSnakeConvolution集成到YOLOv8中,作者提升了模型性能,结果显示原始mAP从0.50.679提升至0.743。后续还会探讨更多小目标检测技术和优化策略。,
AI小怪兽
3091
基于深度学习的商品识别系统(UI界面+YOLOv8/v7/v6/v5代码+训练数据集)
本文介绍了一种基于YOLOv8的目标检测算法构建商品识别系统的方法,涵盖数据集构建、模型训练、性能优化及Gradio Web界面开发。系统支持高精度、实时的商品检测,适用于新零售场景,具备良好的可复现性扩展性。
YOLO项目
324
YOLOv8从入门到实战环境配置+自定义数据集训练全攻略
本教程指导在远程Linux服务器上,利用Anaconda配置Python环境,完成YOLOv8的安装、测试运行及自定义数据集训练。介绍了硬件环境、YOLOv8创新点,详细说明了环境准备、代码下载、依赖安装、测试运行,以及数据集准备、划分、格式转换、模型配置和训练等步骤。
YOLO君
278
基于YOLOv8的端面小目标计数解决方案: 多头检测器+小缺陷到大缺陷一网打尽的GiraffeDet+Wasserstein Distance Loss | 助力工业小目标缺陷检测
本文介绍了在工业场景中,通过结合GiraffeDet的轻量级设计和WassersteinDistanceLoss的改进,YOLOv8模型在端面小目标检测中的性能大幅提升,显著提升了小目标的检测精度和产线效率。
AI小怪兽
1704
手把手教你用 YOLOv8 搞定自动驾驶障碍物检测分割
本文详解基于 YOLOv8 的自动驾驶障碍物检测分割实战。通过 BDD100K 数据增强、模型训练调优及 PyQT5 可视化界面构建,实现复杂天气下的高精度实时感知,助力开发者快速落地智能驾驶系统。
计算机视觉目标检测主流开源工具模型综述
本文综述了计算机视觉中目标检测的主要开源工具模型,重点介绍了MMDetection和YOLO系列的发展历程及其核心技术。MMDetection以其模块化设计和支持多种算法而著称,适用于学术研究工业应用;YOLO系列不断演进,从v5到v11,持续提升检测性能效率,并逐步实现NMS-Free等关键突破。
徽440
869