xy0v0's Blog

xy0v0's Blog

交大荣昶笔记#2 | YOLO

2025-08-02

2 Stage Detection

筛选 + 滑动窗口分类

计算慢

YOLO: You Only Look Once

仅使用一个CNN网络,速度快

在一次CNN计算中,直接从原始图像上预测物体类别和位置边界框

Step1: 划分单元格

  • 将输入图像分割成 ​S * S 网格
  • 如果某个object的中心落在这个单元格中,则这个单元格负责预测该object
    也就是说,一个包含目标的网格中有且仅有一个单元格负责预测,而不是全部用来预测

Step2: 每个单元格预测

需要预测:

  • Bounding Box: 边界框坐标
  • Confidence: 置信度
  • Class: 类别

Bouding Box

使用归一化,确保不同尺寸的物品的Bounding Box大小接近

Confidence

每个box都有一个置信度

onfidence = P_r(Object)*IOU_{pred}^{truth}

其中 ​P_r(Object) 是含有目标的可能性,IOU(interseection over union) 为预测框与实际框的交并比

置信度的计算结果必定为一个0到1的值

分类

每一个单元格预测 ​C 个类别概率

整体框架

输入图像,图像被处理为 ​S*S*N 的网格结构

则最后有 ​N = S * S * (B * 5 + C)
其中:

  • ​B * 5 表示每个box需要预测4个坐标值和1个置信度
  • ​C 表示类别数

NMS 非极大值抑制算法

解决一个目标被多次检测的问题

P_r(class_i|object)*P_r(object)*IOU_{pred}^{truth}=P_r(class_i)*IOU_{}
  1. 找到置信度最大的框
  2. 计算与剩余框的IOU
  3. 如果IOU大于阈值即重合度过高,删除该框
  4. 寻找置信度第二高的框,重复2-3,直到处理完所有框

评估方法 mAP

预测\实际 正例 负例
预测为正例 TP FP
预测为负例 FN TN
  • Precision(查准率) ​TP/(TP+FP)
  • Recall(查全率) ​TP/(TP+FN)
  • 二者往往此消彼长

F1-Score

F1分数是精确率(Precision)和召回率(Recall)的调和平均值:

F1 = \frac{2}{\frac{1}{Precision} + \frac{1}{Recall}} = \frac{2*Precision*Recall}{Precision + Recall}

mAP (mean Average Precision)

mAP计算步骤:

  1. 对每个类别:

    • 按照置信度从高到低排序所有预测框
    • 计算每个预测框对应的Precision和Recall
    • 绘制PR曲线(Precision-Recall曲线)
    • 计算PR曲线下的面积,即AP(Average Precision)
  2. 对所有类别的AP取平均,得到mAP:

    mAP = \frac{1}{n}\sum_{i=1}^{n}AP_i

    其中n为类别数量

mAP越高说明检测效果越好,是目标检测中最常用的评估指标。