100.详解YOLOv8 NMS机制+模型改进,附COCO128完整训练代码与详细注释
摘要
YOLO(You Only Look Once)是一种基于深度学习的实时目标检测算法,以其端到端、单阶段、高速度的特点成为工业界和学术界的主流方案。本文从零开始,系统讲解YOLO的核心原理,并基于YOLOv8提供一套完整可运行的代码案例,涵盖数据准备、模型训练、推理评估与部署。所有代码均经过实测,可直接复制运行。本文适合具备Python基础、了解卷积神经网络基本概念的读者,目标是帮助读者从原理到实战全面掌握YOLO。
核心原理
YOLO将目标检测视为一个回归问题。输入图像经过一个卷积神经网络,直接输出边界框坐标、类别概率和置信度。
1. 网格划分
输入图像被划分为 S x S 个网格。每个网格负责检测中心点落在该网格内的物体。
2. 边界框预测
每个网格预测 B 个边界框。每个边界框包含 5 个参数:x, y, w, h, confidence。
- x, y 是边界框中心相对于网格左上角的偏移量,归一化到 [0,1]。
- w, h 是边界框的宽高相对于整张图像的比值,归一化到 [0,1]。
- confidence = Pr(Object) * IoU(pred, truth)。如果网格内没有物体,confidence = 0。
3. 类别预测
每个网格预测 C 个条件类别概率 Pr(Class_i | Object)。最终每个边界框的类别得分 = confide
