2、目标检测基础:定义、核心概念与评估指标
目标检测是计算机视觉中最具挑战性也最具实用价值的任务之一。与图像分类只回答“这张图里有什么”不同,目标检测需要回答“图里有什么物体、它们在哪里、分别是什么类别”。从自动驾驶感知、工业质检、安防监控到医学影像分析,目标检测都是底层核心技术。本章将系统梳理目标检测的定义、与图像分类的本质区别,并深入讲解边界框(Bounding Box)、交并比(IoU)和平均精度均值(mAP)等核心概念与评估指标,为后续学习YOLO系列算法打下坚实基础。
2.1 目标检测的定义与任务本质
目标检测(Object Detection)的任务可以形式化描述为:给定一张输入图像 I,算法需要输出一组检测结果,每个结果包含两个核心信息——物体类别(Class)和物体位置(Location)。位置通常用一个紧贴物体的矩形框(即边界框)来表示。与图像分类相比,目标检测不仅要回答“这是什么”,还要回答“它在哪里”。
从数学角度看,目标检测是一个多任务学习问题:它同时包含分类子任务(判断框内物体属于哪个类别)和回归子任务(预测框的坐标位置)。这两个子任务共享特征提取网络,但在输出层分叉,这也是YOLO系列算法设计的基本思想。
2.1.1 与图像分类的对比
| 对比维度 | 图像分类 | 目标检测 |
|---|---|---|
| 输出内容 | 单一类别标签(如“猫”) | 多个“类别 + 边界框”组合 |
| 物体数量 | 假设图像中只有一个主体 | 图像中可能有多个、多类物体 |
| 空间信息 | 不关心物体位置 | 必须精确定位每个物体 |
| 评估方式 | Top-1 / Top-5 准确率 | mAP(综合精度与召回率) |
| 典型模型 | ResNet、VGG、EfficientNet | YOLO、Faster R-CNN、SSD |
图像分类的评估相对简单——预测对了就算对,错了就算错。但目标检测的评估要复杂得多:一个预测框与真实框只有部分重叠时,算对还是算错?重叠多少才算正确?这就引出了IoU的概念。
2.2 边界框(Bounding Box)
边界框是目标检测中最基础的表示形式。一个边界框通常用两种格式之一表示:
- 中心点格式:
(x_center, y_center, width, height),即框中心点的坐标以及框的宽和高。YOLO系列使用这种格式,且坐标通常归一化到[0,1]区间。 - 角点格式:
(x1, y1, x2, y2),即框左上角和右下角的坐标。Faster R-CNN等两阶段检测器常用这种格式。
在YOLO中,边界框的预测值通常包含5个分量:(tx, ty, tw, th, confidence)。其中tx, ty是相对于网格单元的偏移量,tw, th是相对于锚框(Anchor)的宽高缩放系数,confidence表示该框包含物体的置信度。这种设计使得模型预测的是相对值而非值,大大降低了回归难度。
2.3 IoU(交并比)
IoU(Intersection over Union)是衡量两个边界框重叠程度的指标,定义为两个框的交集面积与并集面积之比:
IoU = Area(交集) / Area(并集)
IoU的取值范围在[0, 1]之间:0表示两个框完全不重叠,1表示完全重合。在目标检测中,IoU用于两个关键场景:
- 训练阶段:判断预测框与真实框的匹配程度,用于计算损失函数和分配正负样本。
- 推理阶段:通过NMS(非极大值抑制)去除冗余的预测框,以及判断预测是否正确。
在实际评估中,通常设定一个IoU阈值(如0.5),当预测框与真实框的IoU大于该阈值时,该预测被视为正确检测(True Positive)。阈值越高,对定位精度的要求越严格。
2.4 mAP(平均精度均值)
mAP(mean Average Precision)是目标检测领域最常用的综合评估指标。要理解mAP,需要先理解几个基础概念:
2.4.1 基础概念:TP、FP、FN
| 术语 | 全称 | 含义 |
|---|---|---|
| TP | True Positive | 预测框与真实框IoU > 阈值,且类别正确 |
| FP | False Positive | 预测框与所有真实框IoU均 < 阈值,或类别错误 |
| FN | False Negative | 真实框没有被任何预测框匹配到(漏检) |
基于TP、FP、FN,可以计算两个核心指标:
- 精确率(Precision) = TP / (TP + FP),衡量预测为正的样本中有多少是真正正确的。
- 召回率(Recall) = TP / (TP + FN),衡量所有真实正样本中有多少被正确找出来了。
2.4.2 AP与mAP的计算流程
AP(Average Precision)是针对单个类别计算的指标,其计算过程如下:
- 将所有预测框按置信度从高到低排序。
- 依次遍历每个预测框,计算其与真实框的IoU,判断是TP还是FP。
- 每遍历一个预测框,计算当前的Precision和Recall值。
- 以Recall为横轴、Precision为纵轴绘制PR曲线。
- 计算PR曲线下的面积,即为AP值。
mAP则是所有类别AP值的平均值:
mAP = (1/N) * Σ AP_i (i = 1, 2, ..., N,N为类别总数)
在COCO评估协议中,mAP通常指AP@[0.5:0.95],即在多个IoU阈值(0.5, 0.55, ..., 0.95)下分别计算AP再取平均。这个指标对定位精度非常敏感,是当前目标检测领域最权威的评估标准。
2.5 案例拆解:一个实际检测场景的评估过程
假设我们有一个交通场景检测任务,需要检测“汽车”和“行人”两类物体。测试图像中共有3个真实物体:两辆汽车(GT1、GT2)和一个行人(GT3)。模型输出了4个预测框,按置信度从高到低排列如下:
| 预测框 | 类别 | 置信度 | 与GT的IoU | 判定 |
|---|---|---|---|---|
| P1 | 汽车 | 0.92 | 与GT1 IoU=0.85 | TP |
| P2 | 汽车 | 0.78 | 与GT2 IoU=0.72 | TP |
| P3 | 行人 | 0.65 | 与GT3 IoU=0.30 | FP(IoU < 0.5) |
| P4 | 汽车 | 0.40 | 与GT1 IoU=0.20 | FP(重复检测) |
设定IoU阈值=0.5,我们逐步计算:
- 遍历P1(置信度最高):TP,累计TP=1,FP=0,Precision=1/1=1.0,Recall=1/3≈0.33
- 遍历P2:TP,累计TP=2,FP=0,Precision=2/2=1.0,Recall=2/3≈0.67
- 遍历P3:FP,累计TP=2,FP=1,Precision=2/3≈0.67,Recall=2/3≈0.67
- 遍历P4:FP,累计TP=2,FP=2,Precision=2/4=0.5,Recall=2/3≈0.67
最终PR曲线上的关键点为:(0.33, 1.0)、(0.67, 1.0)、(0.67, 0.67)、(0.67, 0.5)。AP的计算会对PR曲线进行平滑处理(取每个Recall点对应的最大Precision),然后计算曲线下面积。在本例中,AP ≈ 0.67(即2/3)。
2.6 常见误区与总结
在学习和使用目标检测评估指标时,初学者常犯以下错误:
- 混淆IoU阈值:不同数据集使用不同的IoU阈值,对比结果时必须统一标准。
- 忽略置信度排序:AP计算依赖置信度排序,如果排序混乱,PR曲线会失真。
- 只看mAP不看单类AP:mAP是全局指标,但某些类别(如小物体)可能表现很差,需要单独分析。
- 训练集和验证集使用不同评估协议:这会导致模型选择失误。