一、目标检测核心任务与挑战

1. 核心任务

目标检测是计算机视觉的核心任务之一,核心目标是同时完成 “物体识别” 与 “位置定位”

  • 识别:判断图像中包含哪些类别的物体(如人、车、狗);
  • 定位:确定每个物体在图像中的具体位置(用边界框表示)。简言之,目标检测 = 图像分类 + 目标定位,属于 “多任务学习” 范畴。

2. 核心挑战

实际场景中,目标检测面临三大关键难题:

  • 目标种类与数量繁多:图像中可能包含数十种不同类别物体,且数量不固定(如街景图中有行人、车辆、交通灯等);
  • 目标尺度不均:同一类物体在图像中可能呈现极大 / 极小尺寸(如近处的猫与远处的猫);
  • 外部环境干扰:物体可能被遮挡(如行人被树木遮挡)、受噪声影响(如模糊图像),导致特征提取困难。

二、目标检测常用数据集

数据集是模型训练与验证的基础,目前主流的公开数据集有 VOC 和 COCO,两者在规模、类别数上差异显著:

数据集 背景来源 类别规模 数据量(关键指标) 特点
VOC 数据集 PASCAL Visual Object Classes 挑战赛(世界级计算机视觉赛事) 4 大类(如动物、交通工具)、20 小类(如猫、汽车、自行车) - VOC 2007:9963 张图片,24640 个目标- VOC 2012:23080 张图片,54900 个目标 类别少、标注简洁,适合入门级模型训练
COCO 数据集 微软 2014 年出资标注的 MS COCO 数据库 80 个类别(覆盖日常场景更多物体,如雨伞、沙发) - 20 万张图像- 50 万个以上目标标注- 平均每幅图像含 7.2 个目标 类别多、标注密度高,更贴近真实场景,是当前主流评测基准

三、目标检测的 Ground Truth(真值标注)

Ground Truth(GT)是图像中物体的 “真实信息”,包括类别边界框坐标,不同数据集 / 框架采用不同的坐标格式,核心是统一 “真实框” 与 “预测框” 的计算标准:

1. 三种主流格式对比

格式类型 坐标表示方式 归一化情况 适用场景 示例(假设图像尺寸 1000×800px)
YOLO(TXT 格式) (Cₓ, Cᵧ, w, h):- Cₓ/Cᵧ:目标中心点的 x/y 坐标- w/h:目标的宽 / 高 是(坐标值范围 [0,1],除以图像宽 / 高) YOLO 系列模型训练与推理 若狗的真实框为(100,600,150,100),归一化后为(0.1, 0.75, 0.15, 0.125)
VOC(XML 格式) (Xmin, Ymin, Xmax, Ymax):- 左上角(Xmin,Ymin)- 右下角(Xmax,Ymax) 否(直接使用像素坐标) R-CNN、SSD 等模型,VOC 数据集标注 马的真实框:(700, 300, 900, 550)(Xmax=700+200,Ymax=300+250)
COCO(JSON 格式) (Xmin, Ymin, W, H):- Xmin/Ymin:左上角 x/y 坐标- W/H:目标的宽 / 高 否(像素坐标) COCO 数据集标注,主流框架兼容 人的真实框:(400, 400, 100, 500)(宽 100px,高 500px)

2. 关键说明

  • 归一化的优势:避免图像尺寸差异对模型训练的影响(如 1000×800 与 500×400 图像,归一化后坐标范围统一);
  • 格式转换:实际应用中可通过工具将 XML/JSON 格式转为 TXT(如 YOLO 训练前的格式处理)。

四、目标检测核心评估指标

评估指标用于衡量模型性能,核心是 “判断预测结果与真实结果的匹配度”,常用指标包括 IoU、TP/FP/TN/FN、Precision/Recall、AP 与 mAP:

1. IoU(Intersection over Union,交并比)

  • 定义:预测边界框(Prediction)与真实边界框(Ground Truth)的 “交集面积” 除以 “并集面积”,是衡量定位准确性的核心指标;
  • 公式:IoU=Area(Pred∪GT)Area(Pred∩GT)​;
  • 取值范围:[0,1],IoU 越接近 1,定位越准确(通常设定 IoU>0.5 为 “有效匹配”);
  • 预处理:计算 IoU 前,需先过滤 “低类别置信度” 的预测框(如置信度 < 0.5 的框直接丢弃,减少无效计算)。

2. TP/FP/TN/FN(样本分类结果)

目标检测中,需结合 “类别预测” 与 “IoU” 判断样本类型,具体定义如下:

评估指标 核心解释 目标检测场景中的具体含义
TP(真阳性) 真实为正样本,预测也为正样本 预测框类别正确,且 IoU > 设定阈值(如 0.5)
FP(假阳性) 真实为负样本,预测为正样本 预测框类别错误,或 IoU <阈值(如把背景误判为 “车”)
TN(真阴性) 真实为负样本,预测也为负样本 背景区域未被误判为任何物体(实际中较少关注)
FN(假阴性) 真实为正样本,预测为负样本 图像中存在物体,但模型未检测到(漏检)

3. Precision 与 Recall(查准率与查全率)

基于 TP/FP/FN,衍生出两个关键指标,平衡 “准确性” 与 “完整性”:

  • Precision(查准率 / 准确率):衡量 “预测为正的样本中,真正为正的比例”,关注 “少误判”;公式:Precision=TP+FPTP​例:模型预测 100 个 “车”,其中 80 个是真车(TP=80),20 个是误判(FP=20),则 Precision=80/(80+20)=0.8。

  • Recall(召回率 / 查全率):衡量 “真实为正的样本中,被正确预测的比例”,关注 “少漏检”;公式:Recall=TP+FNTP​例:图像中实际有 100 辆车(TP+FN=100),模型只检测到 70 辆(TP=70),则 Recall=70/100=0.7。

  • 权衡关系:Precision 与 Recall 通常呈 “负相关”—— 提高 Precision 可能导致 Recall 下降(如严格过滤预测框,减少误判但增加漏检),反之亦然。

4. P-R 曲线与 AP(Average Precision,平均精度)

(1)P-R 曲线
  • 定义:以 Recall 为横轴、Precision 为纵轴,绘制的曲线;
  • 意义:曲线越 “靠近右上角”,模型性能越好(同时保证高查准率与高召回率)。
(2)AP(平均精度)
  • 定义:P-R 曲线下的面积,综合衡量 Precision 与 Recall 的整体表现;
  • 计算方法(11 点法,经典方法)
    1. 设定 Recall 阈值集合 R = [0, 0.1, 0.2, ..., 0.9, 1.0](共 11 个点);
    2. 对每个 Recall 阈值 r∈R,取 “Recall≥r” 时的最大 Precision 值(避免曲线波动影响);
    3. 计算 11 个 Precision 值的平均值,即为 AP。
  • 示例(PPT 案例):
    • R = [0,0.1,...,1.0],对应 Precision P = [1, 0.6666, 0.4285, 0.4285, 0.4285, 0, 0, 0, 0, 0, 0];
    • AP = (1 + 0.6666 + 0.4285×3 + 0×6) / 11 ≈ 26.84%。
(3)mAP(mean AP,平均精度均值)
  • 定义:所有类别的 AP 值的算术平均值;
  • 意义:衡量模型在 “多类别任务” 中的综合性能(如 COCO 数据集 80 类的 mAP);
  • 注意:mAP 中的 “mean” 是 “算术平均”,因 AP 已考虑单类别的 Precision-Recall 平衡,无需额外加权。

5. mean 与 average 的区别

  • mean(算术平均):直接对多个数值求和后除以数量(如 mAP 是 AP 的 mean);
  • average(平均):可能包含加权、插值等规则(如 AP 计算中需对 Precision 插值,属于 average 的一种)。

五、目标检测算法分类

目标检测算法分为 “传统方法” 与 “深度学习方法”,目前主流是深度学习方法:

1. 传统方法(已淘汰,了解即可)

  • 代表方法:滑动窗口法;
  • 核心思路
    1. 人工设计固定尺寸 / 比例的窗口,在图像上 “滑动” 遍历所有区域;
    2. 对每个窗口提取手工特征(如 HOG、SIFT),用分类器(如 SVM)判断是否为目标;
  • 缺点
    • 需人工设计窗口尺寸(无法适应尺度不均的目标);
    • 冗余计算多(遍历所有区域,效率低);
    • 定位精度差(窗口与目标边界难以完全匹配)。

2. 深度学习方法(主流)

深度学习方法基于 CNN 提取特征,按 “是否生成候选区域” 分为Two Stage(两阶段) 与One Stage(单阶段),核心差异是 “精度” 与 “速度” 的权衡:

(1)关键概念:anchor box(锚框)

anchor box 是深度学习方法中用于 “匹配目标尺度与形状” 的预设框,核心属性:

  • scale(尺度):锚框的面积大小(如 128×128、256×256);
  • aspect ratio(长宽比):锚框的形状(如 1:1、1:2、2:1);
  • 位置:由 CNN 的 feature map 上的每个像素点对应(如 feature map 上一个点,对应原图多个锚框);
  • 分类
    • anchor-base(基于锚框):自顶向下,预设大量锚框,筛选后预测(如 R-CNN、YOLO v1-v5);
    • anchor-free(无锚框):自底向上,直接预测目标中心点与宽高,无需预设锚框(如 FCOS、CornerNet)。
(2)Two Stage(两阶段算法)
  • 核心逻辑:分两步完成检测 —— 先 “生成候选区域(Proposal)”,再 “对候选区域分类与回归”;
  • 流程:输入图像 → CNN 提取特征 → 生成候选区域(如 RPN 网络) → ROI Pooling(统一候选区域尺寸) → 全连接层 → 类别预测 + 位置回归 → NMS(去除重复框);
  • 优点:精度高(候选区域减少无效计算,聚焦目标区域);
  • 缺点:速度慢(两阶段计算,步骤多);
  • 代表算法
    • 经典系列:R-CNN → SPP-Net → Fast R-CNN → Faster R-CNN(精度逐步提升,速度逐步优化);
    • 改进算法:Cascade R-CNN(多阶段回归,提升定位精度)、Guided Anchoring(动态生成锚框)。
(3)One Stage(单阶段算法)
  • 核心逻辑:直接从 CNN 特征图预测目标的 “类别” 与 “位置”,无候选区域生成步骤;
  • 流程:输入图像 → CNN 提取特征 → 直接预测类别概率 + 边界框坐标 → NMS(去除重复框);
  • 优点:速度快(单阶段计算,适合实时场景);
  • 缺点:早期精度低于 Two Stage(近年改进后差距缩小);
  • 代表算法
    • YOLO 系列:YOLO v1(首创单阶段)→ YOLO v5(当前主流,平衡精度与速度);
    • SSD 系列:SSD(引入多尺度特征图)、DSSD(改进回归头);
    • 其他:RefineDet(融合两阶段思想,提升精度)。

3. NMS(Non-maximum Suppression,非极大值抑制)

NMS 是目标检测的 “后处理步骤”,核心作用是去除同一物体的重复预测框,步骤如下:

  1. 设定置信度阈值:如 0.5,丢弃置信度 < 0.5 的预测框;
  2. 排序:将剩余预测框按 “类别置信度” 从高到低排序;
  3. 筛选
    • 选取置信度最高的框 A,加入 “最终结果列表”,并从候选框中删除 A;
    • 计算候选框中所有剩余框与 A 的 IoU,删除 IoU > 阈值(如 0.5)的框(认为是重复框);
  4. 重复:重复步骤 3,直到候选框为空,输出 “最终结果列表”。
  • 关键参数:IoU 阈值(通常设为 0.3~0.5,阈值过高易保留重复框,过低易误删有效框)。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐