YOLO(You Only Look Once)入门简介

4人浏览 / 0人评论 / 添加收藏

YOLO 是单阶段实时目标检测算法,一句话:输入一张图片,网络只看一眼,一次性输出所有物体的类别、边界框、置信度,不需要分两步找候选框,速度非常快,工业界最常用。

✅ 核心原理

  1. 把图片切分成 S×S 网格;物体中心点落在哪个网格,就由这个网格负责预测它。
  2. 每个网格预测:多个边界框 (x,y,w,h) + 置信度 + 各类别概率。
  3. 后处理:过滤低置信框 + 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、海思)

⚖️ 优缺点

✅ 优点:推理速度快、端到端、代码简单、容易训练和部署、适合视频流 ❌ 缺点:早期版本小目标、密集遮挡场景弱;需要标注数据集微调才能适配行业场景

你想往哪个方向深入?

  1. 原理公式 / 损失函数
  2. 自定义数据集训练 YOLO(标注、yaml、调参)
  3. 模型导出部署:ONNX、TensorRT、NCNN
  4. YOLOv8 实例分割 / 姿态估计 / 多目标跟踪

全部评论