摘要
YOLO(You Only Look Once)是目前工业界应用最广泛的目标检测算法之一,以单阶段检测、端到端推理、实时性高著称。本文从零开始,系统讲解YOLO的核心原理,并提供一套完整可运行的YOLOv8案例代码,涵盖数据准备、模型训练、评估与推理全流程。所有代码基于Ultralytics官方库,兼容Windows/Linux,零配置即可运行。通过本文,读者可掌握YOLO的实战技能,并理解检测任务中的关键避坑点。
核心原理
YOLO将目标检测视为回归问题,直接输出边界框坐标和类别概率。
- 网格划分:输入图像被划分为S×S网格。每个网格负责检测中心点落在该网格内的目标。
- 锚框机制:每个网格预置多个不同尺寸和长宽比的锚框(Anchor Box)。模型预测相对于锚框的偏移量,而非绝对坐标,从而简化回归任务。
- 损失函数:YOLO使用综合损失,包括边界框回归损失(CIoU)、置信度损失(BCE)和分类损失(BCE)。YOLOv8进一步引入TaskAlignedAssigner正样本分配策略,提升训练稳定性。
- 后处理:NMS(非极大值抑制)去除重复检测框,保留置信度最高的预测结果。
YOLOv8相比前代的主要改进:无锚框设计(Anchor-Free)、解耦头(Decoupled Head)、动态标签分配(Dynamic Label Assignment)。这些改进使得模型更易收敛,且在小目标检测上表现更好。<