YOLO(You Only Look Once)入门简介
YOLO 是单阶段实时目标检测算法,一句话:输入一张图片,网络只看一眼,一次性输出所有物体的类别、边界框、置信度,不需要分两步找候选框,速度非常快,工业界最常用。
✅ 核心原理
- 把图片切分成 S×S 网格;物体中心点落在哪个网格,就由这个网格负责预测它。
- 每个网格预测:多个边界框
(x,y,w,h) + 置信度 + 各类别概率。
- 后处理:过滤低置信框 + NMS(非极大值抑制)去掉重复重叠框,得到最终检测结果。
和两阶段算法(R-CNN 系列)对比:
- R-CNN:先找候选区域,再分类,精度高、速度慢
- YOLO:one-stage 单阶段,检测 + 分类一步回归,速度快,适合视频 / 摄像头实时推理
📜 版本演进(常用)
- YOLOv1 (2015):奠基之作;缺点:小目标弱、拥挤场景效果差
- YOLOv2:引入锚框 anchor、BN,提升召回
- YOLOv3:Darknet53 骨干 + 多尺度预测,小目标大幅改善
- YOLOv4:CSPDarknet、Mosaic 增强,工程大量使用
- YOLOv5(Ultralytics):PyTorch,轻量、部署友好,项目最普及
- YOLOv8:解耦头、原生支持检测 / 分割 / 姿态估计 / 分类 / 跟踪,目前首选
- YOLOv9/v10/v11/YOLO26:后续迭代,优化精度、速度、无 NMS 推理、边缘设备部署arXiv
🧩 支持任务(YOLOv8+)
- Object Detection 目标检测(画框)
- Instance Segmentation 实例分割(掩膜 mask)
- Pose Estimation 人体关键点姿态
- Classification 图像分类
- OBB 旋转框检测
- Multi-object Tracking 多目标跟踪(视频追踪 ID)
🚀 极简 Python 示例(YOLOv8)
from ultralytics import YOLO
# 加载预训练模型
model = YOLO("yolov8n.pt") # n/s/m/l/x 从小到大,速度递减精度上升
# 推理图片
results = model("test.jpg")
for r in results:
boxes = r.boxes
print(boxes.cls, boxes.conf, boxes.xyxy)
# 推理视频/摄像头:model(0) 调用本地摄像头
安装:pip install ultralytics
🌍 典型应用
- 工业缺陷检测、产线计数
- 监控安防、烟火 / 入侵检测
- 自动驾驶感知、无人机巡检
- 机器人视觉、手机 AI、嵌入式边缘设备(Jetson、RK、海思)
⚖️ 优缺点
✅ 优点:推理速度快、端到端、代码简单、容易训练和部署、适合视频流 ❌ 缺点:早期版本小目标、密集遮挡场景弱;需要标注数据集微调才能适配行业场景
你想往哪个方向深入?
- 原理公式 / 损失函数
- 自定义数据集训练 YOLO(标注、yaml、调参)
- 模型导出部署:ONNX、TensorRT、NCNN
- YOLOv8 实例分割 / 姿态估计 / 多目标跟踪

全部评论