YOLO(You Only Look Once)是单阶段目标检测模型,核心思想:把目标检测当成回归问题,一次前向推理直接输出所有目标的位置和类别,不用像两阶段模型那样先生成候选框再分类。

1. 核心一句话原理
把整张图片一次性送入网络,直接预测:
哪些位置有目标
目标是什么类别
目标框的坐标与大小
真正做到 “只看一眼就完成检测”。
2. 图像分块思想(最关键)
YOLO 将输入图像划分为 S×S 个网格(grid cell):
每个网格负责检测中心点落在该格内的物体
每个网格预测 B 个边界框(bbox)
每个框包含:坐标 (x,y,w,h) + 置信度(confidence)
置信度 = 框内有物体的概率 × 框与真实框的 IoU
3. 输出张量结构
最终输出一个 S×S×(B×5 + C) 张量:
S×S:网格
B:每个网格预测的框数
5:x,y,w,h + confidence
C:类别数(如 VOC 20 类、COCO 80 类)
网络直接输出这一张量,不需要额外区域提议。
4. 整体流程
1. 图像预处理
统一缩放到固定尺寸(如 416×416、640×640)
2. CNN 特征提取
用卷积网络提取图像特征(Darknet 系列 backbone)
3. 全连接 / 卷积输出预测
得到 S×S 个网格的框、置信度、类别
4. 后处理
根据置信度过滤低分框
NMS 非极大值抑制:去掉重叠框,保留最优框
5. 为什么 YOLO 又快又准
单阶段、无候选框:比 Faster R-CNN 快很多
全局推理:一次看整张图,上下文信息利用更好
端到端训练:定位 + 分类一起优化,结构简单
6. 版本演进(简要)
YOLOv1:基础网格回归,速度快但小目标差
YOLOv2 / YOLO9000:加入锚框、多尺度训练
YOLOv3:多尺度预测(FPN),大幅提升小目标
YOLOv4/v5/v6/v7/v8/x:更强 backbone、数据增强、标签分配、轻量化等
7. 总结(极简版)
YOLO 把目标检测转化为单一回归任务:
输入图片 → 划分网格 → CNN 提取特征 → 直接输出框 + 类别 + 置信度 → NMS 去重 → 得到检测结果。
如果你需要,我可以继续讲:
YOLO 与 Faster R-CNN 的区别
锚框 (Anchor) 原理
YOLOv8 的最新架构变化
用一张图直观解释网格与框预测
需求留言: