【YOLO】入门基础知识和和基本概念笔记

本篇文章是初学YOLO整理的笔记,记录YOLO基础知识


前言

以下是对 YOLO 基础知识超详细记录,涵盖从目标检测基础到 YOLO 核心概念的完整内容,每个关键点都清晰易懂。


一、目标检测基础

1. 目标检测的任务

目标检测需要完成以下两个任务:

  1. 定位(Localization):找到图像中物体的位置(用边界框表示)。
  2. 分类(Classification):判断物体属于什么类别(如猫、狗、人等)。

2. 核心概念

(1) 边界框(Bounding Box)

  • 定义:矩形框,用于标定物体的位置。
  • 两种表示方式
    1. 绝对坐标(x_min, y_min, x_max, y_max)
      • 左上角和右下角的像素坐标。
    2. 归一化中心坐标(YOLO 使用):(x_center, y_center, width, height)
      • x_center = 中心点横坐标 / 图像宽度
      • y_center = 中心点纵坐标 / 图像高度
      • width = 框宽 / 图像宽度
      • height = 框高 / 图像高度
      • 所有值在 [0,1] 之间。

(2) 置信度(Confidence Score)

  • 定义:模型对预测框内存在物体的信心程度,值在 [0,1] 之间。

  • 公式

    在这里插入图片描述

    • P(Object):预测框内有物体的概率。
    • IoU:预测框与真实框的交并比。

(3) IoU(交并比,Intersection over Union)

  • 作用:衡量预测框与真实框的重合程度。

  • 公式
    在这里插入图片描述

    • 如果 IoU > 0.5,通常认为预测框是正确的。
      在这里插入图片描述

(4) 非极大值抑制(NMS,Non-Maximum Suppression)

  • 问题:模型可能对同一物体预测多个重叠的边界框。
  • 解决:保留置信度最高的框,抑制其他重叠框。
  • 步骤
    1. 按置信度从高到低排序所有预测框。
    2. 从最高置信度的框开始,移除所有与之 IoU 超过阈值(如 0.5)的框。
    3. 重复步骤 2,直到所有框被处理。
      在这里插入图片描述

(5) mAP(平均精度,mean Average Precision)

  • 定义:目标检测模型的核心评价指标,综合考虑精度(Precision)和召回率(Recall)。
  • 计算步骤
    1. 对每个类别,计算不同置信度阈值下的 Precision 和 Recall。
    2. 绘制 P-R 曲线,计算曲线下面积(即 AP)。
    3. 对所有类别的 AP 取平均,得到 mAP。

二、YOLO 核心原理

1. YOLO 的核心思想

  • 核心口号:You Only Look Once(只看一次)。
  • 特点:单阶段检测(One-Stage),将检测任务视为回归问题,直接在图像网格上预测边界框和类别概率。

2. YOLO 的通用流程

以 YOLOv3/YOLOv5 为例,流程如下:

  1. 输入图像预处理:将图像缩放到固定尺寸(如 640×640)。
  2. 特征提取:使用卷积神经网络(如 Darknet-53)提取多尺度特征图。
  3. 多尺度预测:在不同尺度的特征图上预测边界框(小尺度检测大物体,大尺度检测小物体)。
  4. 后处理:通过 NMS 筛选最终结果。
    在这里插入图片描述

3. YOLO 的详细技术点

(1) 网格划分(Grid Cells)

  • 将输入图像划分为 S×S 的网格(如 13×13)。
  • 每个网格负责预测
    • B 个边界框(Bounding Box)。
    • 每个边界框的坐标 (x, y, w, h) 和置信度(Confidence)。
    • C 个类别的概率(每个网格预测一次类别)。
      在这里插入图片描述

(2) 锚框(Anchor Boxes)

  • 定义:预先定义的一组边界框模板(如 (10×13), (16×30), ...),用于捕捉不同形状的物体。

  • 作用:模型预测的是相对于锚框的偏移量,而不是直接预测绝对坐标,提升定位精度。

  • 偏移量计算
    在这里插入图片描述

    • (c_x, c_y):网格左上角坐标。
    • (p_w, p_h):锚框的宽高。
    • (t_x, t_y, t_w, t_h):模型预测的偏移量。
    • σ:Sigmoid 函数,将坐标约束在 [0,1]
      在这里插入图片描述

(3) 多尺度预测(Feature Pyramid)

  • 目的:解决小物体检测难题。
  • 方法:在不同层级的特征图上进行预测:
    • 高层特征图(分辨率低):检测大物体。
    • 低层特征图(分辨率高):检测小物体。

(4) 损失函数(Loss Function)

YOLO 的损失函数由三部分组成:

  1. 边界框坐标损失(均方误差):

在这里插入图片描述

  1. 置信度损失(交叉熵):

在这里插入图片描述

  1. 类别损失(交叉熵):
    在这里插入图片描述
  • λ 是权重系数,用于平衡不同损失项。

在这里插入图片描述

4. YOLO 的不同版本对比

版本核心改进
YOLOv1首次提出网格划分和直接回归预测框。
YOLOv2引入锚框(Anchor Boxes)和批量归一化(BatchNorm)。
YOLOv3多尺度预测、更深的网络(Darknet-53)、使用残差连接。
YOLOv4引入 CSPDarknet、PANet、Mish 激活函数,优化训练策略。
YOLOv5简化代码实现、优化数据增强、支持更灵活的部署。

三、YOLO 的数学推导

1. 边界框解码(从模型输出到实际坐标)

假设模型输出为 (t_x, t_y, t_w, t_h),锚框尺寸为 (p_w, p_h),网格左上角坐标为 (c_x, c_y)
在这里插入图片描述

  • 关键点:使用 Sigmoid 函数将 t_x, t_y 约束在 [0,1],确保边界框中心位于当前网格内。

2. 置信度与类别概率

  • 置信度通过 Sigmoid 函数输出,表示“框内有物体”的概率。
  • 类别概率通过 Softmax 或独立的 Sigmoid 输出(YOLOv3 之后使用 Sigmoid 支持多标签分类)。

四、实战前的知识检验

1. 练习题

  1. 计算 IoU

    • 真实框:(x1=10, y1=10, x2=50, y2=50)
    • 预测框:(x1=30, y1=30, x2=80, y2=80)
    • 求 IoU(答案:0.175)。
  2. 解码边界框

    • 模型输出:t_x=0.3, t_y=0.4, t_w=0.2, t_h=0.1
    • 锚框尺寸:p_w=20, p_h=30
    • 网格左上角坐标:c_x=5, c_y=5
    • 求实际边界框坐标(答案:b_x=5.57, b_y=5.60, b_w=24.43, b_h=33.16)。

2. 思考题

  • 为什么 YOLO 要使用锚框?
    答:锚框提供先验知识,帮助模型更高效地学习不同形状物体的位置偏移。

总结

以上内容对 YOLO 的基本概念、数学原理和实现细节进行初步总结。接下来可以开始动手配置环境并训练自己的模型了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值