摘要
YOLO(You Only Look Once)系列算法是目标检测领域最主流的一阶段检测框架。
本文以YOLOv5为基线,系统阐述其核心原理、训练流程与推理部署。
内容涵盖数据标注格式转换、模型训练、ONNX导出、OpenCV推理全链路,并提供可直接运行的完整代码。读者将掌握从零构建一个工业级目标检测系统的能力。
核心原理
1. 一阶段检测思想
YOLO将目标检测视为回归问题,直接在图像上预测边界框和类别概率。与两阶段检测器(如Faster R-CNN)不同,YOLO在单次前向传播中完成所有预测,因此推理速度极快。
2. 网格划分与锚点机制
输入图像被划分为S×S网格。每个网格负责预测B个边界框,每个边界框包含5个参数:x, y, w, h, confidence。此外,每个网格还预测C个类别概率。
YOLOv5采用自适应锚点计算,通过K-means聚类训练集标注框,得到9个锚点尺寸,分别对应大、中、小三个检测尺度。
3. 多尺度特征融合
YOLOv5使用FPN+PAN结构:
- FPN(特征金字塔网络):自上而下传递强语义特征
- PAN(路径聚合网络):自下而上传递强定位特征
这种双向融合使模型能同时检测大小目标。
4. 损失函数
总损失 = 边界框回归损失 + 置信度损失 + 分类损