【每天一个知识点】YOLO算法

一、什么是 YOLO?

YOLOYou Only Look Once 的缩写,中文常译为 "你只看一次"

它是一类非常著名的 目标检测(Object Detection)算法,主要用来回答三个问题:

📸 这张图片里有什么?

📍 它们在哪里?

🏷 它们是什么类别?

例如:

在一张马路照片中,YOLO 可以同时检测出 人、汽车、自行车、红绿灯,并给出它们在图像中的具体位置。


二、目标检测到底在做什么?

在计算机视觉中,目标检测 ≠ 图像分类。

任务 能力
图像分类 判断整张图属于什么(如:猫 / 狗)
目标检测 找出图中 多个目标,并标出位置和类别
语义分割 给每一个像素打标签

目标检测的输出通常是一个个 "框" ,称为 边界框(Bounding Box)

复制代码
[类别 + 置信度 + 位置坐标]

三、YOLO 的核心思想:一次完成所有事

在 YOLO 出现之前,目标检测算法普遍采用 "两阶段"方法

  1. 先找"可能有目标的区域"

  2. 再对每个区域进行分类

📌 问题是:慢、复杂、计算量大


YOLO 的革命性思想 💡

把目标检测当成一个"回归问题",一次前向计算就完成所有预测。

YOLO 的工作流程可以理解为:

1️⃣ 把整张图片分成很多网格

2️⃣ 每个网格负责检测它"看到"的目标

3️⃣ 一次性输出:

  • 目标位置

  • 目标类别

  • 置信度

所以叫:You Only Look Once


四、YOLO 是如何"看图"的?

1️⃣ 网格划分思想

YOLO 会把输入图片划分成 S × S 的网格,例如:

复制代码
7 × 7 或 13 × 13 或 19 × 19

每个网格负责预测:

  • 是否有目标

  • 目标的边界框(x, y, w, h)

  • 目标类别概率


2️⃣ Anchor(锚框)机制(后续版本)

为了适应不同大小、不同形状的目标,YOLO 引入了 Anchor Box(锚框)

  • 事先定义几种常见的框形状

  • 网络只需预测"偏移量"

📌 这样可以更好地检测:

  • 小目标

  • 细长目标

  • 密集目标


五、YOLO 为什么这么快?

YOLO 的速度优势主要来自三点:

单阶段检测(One-stage)

全卷积神经网络(CNN)结构

端到端训练,无需复杂后处理

对比来看:

算法 速度 精度 适用场景
Faster R-CNN 医学、遥感
SSD 移动端
YOLO 较高 实时场景

六、YOLO 系列的发展历程(简要)

版本 特点
YOLOv1 首次提出"一次检测"思想
YOLOv2 引入 Anchor、多尺度训练
YOLOv3 多尺度预测,小目标更好
YOLOv4 工程优化,性能提升
YOLOv5 工程友好,应用广泛
YOLOv7 训练与推理效率提升
YOLOv8 结构更简洁,支持多任务

📌 实际教学和工程中,YOLOv5 / YOLOv8 使用比较多


七、YOLO 能用在哪些地方?

YOLO 的"快 + 准"特性,使其非常适合 实时智能场景

🚗 智能驾驶(行人、车辆检测)

📹 视频监控(异常行为识别)

🏭 工业质检(缺陷检测)

🤖 机器人视觉

🧑‍⚕ 医疗辅助(部分实时场景)

📱 移动端 / 边缘计算设备


八、YOLO 的不足在哪里?

虽然 YOLO 很强,但并非万能:

❌ 对极小目标 不如两阶段方法

❌ 高密度目标场景下可能漏检

❌ 精度极限略低于复杂模型

📌 实际应用中,常根据 "速度 vs 精度" 做权衡。


九、总结一句话理解 YOLO

YOLO 是一种把"找目标"这件事做得又快又直接的算法,
让机器像人一样,一眼就看懂整张图。


相关推荐
We་ct6 小时前
LeetCode 5. 最长回文子串:DP + 中心扩展
前端·javascript·算法·leetcode·typescript
王老师青少年编程10 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【哈夫曼贪心】:合并果子
c++·算法·贪心·csp·信奥赛·哈夫曼贪心·合并果子
叼烟扛炮11 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
天疆说11 小时前
【哈密顿力学】深入解读航天器交会最优控制中的Hamilton函数
人工智能·算法·机器学习
wuweijianlove12 小时前
关于算法设计中的代价函数优化与约束求解的技术7
算法
leoufung12 小时前
LeetCode 149: Max Points on a Line - 解题思路详解
算法·leetcode·职场和发展
样例过了就是过了12 小时前
LeetCode热题100 最长公共子序列
c++·算法·leetcode·动态规划
HXDGCL12 小时前
矩形环形导轨:自动化循环线的核心运动单元解析
运维·算法·自动化
张人玉12 小时前
机器视觉VsionPro——多目标检测高级用法动态
目标检测·计算机视觉·机器视觉·vsionpro
谭欣辰13 小时前
C++ 排列组合完整指南
开发语言·c++·算法