目标检测基础与传统方法

文档目标:系统介绍目标检测任务的基本概念、评价指标、传统方法(以 R-CNN 系列为代表)及其局限性,为理解 YOLO 等现代单阶段检测器奠定基础。


1. 什么是目标检测?

目标检测(Object Detection)是计算机视觉中的核心任务之一,其目标是在图像中:

  • 定位(Localization):找出所有感兴趣物体的位置(通常用边界框 bounding box 表示);
  • 分类(Classification):识别每个物体所属的类别(如“人”、“车”、“猫”等)。

与图像分类(只输出一个全局标签)和语义分割(对每个像素分类)不同,目标检测需要同时完成空间定位语义识别

典型输出格式为:
(类别, 置信度, [x_min, y_min, x_max, y_max])


2. 核心概念与评价指标

2.1 边界框(Bounding Box)

用矩形框包围目标,常用表示方式:

  • (x, y, w, h):中心坐标 + 宽高
  • (x₁, y₁, x₂, y₂):左上角与右下角坐标

2.2 交并比(IoU, Intersection over Union)

衡量预测框与真实框(Ground Truth)重合程度的指标:

$$
\text{IoU} = \frac{\text{Area of Overlap}}{\text{Area of Union}}
$$

  • IoU ∈ [0, 1],值越大表示定位越准确。
  • 通常设定阈值(如 IoU ≥ 0.5)判断预测是否“正确”。

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

解决同一物体被多个框重复检测的问题:

  1. 按置信度排序所有预测框;
  2. 选取最高分框,抑制与其 IoU 超过阈值(如 0.4)的其他框;
  3. 重复直至无剩余框。

2.4 召回率(Recall)与精度(Precision)

  • 召回率:检测出的正样本 / 所有真实正样本 → 关注“漏检”
  • 精度:检测出的正样本中真正正确的比例 → 关注“误检”

常通过 mAP(mean Average Precision)综合评估模型性能。


3. 传统目标检测方法概述

早期方法主要采用“两阶段范式”(Two-Stage Pipeline):

  1. 生成候选区域(Region Proposal):找出可能包含物体的区域;
  2. 对每个区域进行分类与精修

这种方法流程清晰,但速度慢、难以端到端训练。


4. 典型代表:R-CNN 系列

4.1 R-CNN(Regions with CNN features, 2014)

流程:

  1. 使用 Selective Search 生成约 2000 个候选区域(Region Proposals);
  2. 对每个区域缩放到固定尺寸(如 227×227);
  3. 输入 CNN 提取特征(如 AlexNet);
  4. 用 SVM 分类器判断类别
  5. 用回归器微调边界框位置

缺点:

  • 计算冗余:每个候选区域独立前向传播,无法共享特征;
  • 速度极慢(GPU 上一张图需 47 秒);
  • 多阶段训练(CNN 预训练 → SVM 微调 → BBox 回归),流程复杂。

4.2 Fast R-CNN(2015)

改进:

  • 整张图像只过一次 CNN,得到特征图;
  • 在特征图上对应候选区域位置提取 RoI(Region of Interest);
  • 使用 RoI Pooling 将不同大小的 RoI 映射为固定维度特征;
  • 后接全连接层,同时输出类别概率与边界框偏移量

优势:

  • 特征共享,速度大幅提升(约 2 秒/图);
  • 端到端训练(分类 + 回归联合优化);
  • 不再依赖 SVM,统一用 softmax 分类。

仍存在的问题:

  • 候选区域生成(Selective Search)仍耗时,且非可学习模块。

4.3 Faster R-CNN(2016)

核心创新:引入 RPN(Region Proposal Network)

  • RPN 是一个轻量子网络,直接在 CNN 特征图上预测候选框
  • 使用 anchor 机制(预设多尺度/比例的参考框);
  • RPN 与检测头共享主干特征,实现完全端到端训练

意义:

  • 候选区域生成从“手工设计”变为“可学习”;
  • 推理速度进一步提升(约 0.2 秒/图,接近实时);
  • 成为两阶段检测器的里程碑。

5. 传统方法的核心痛点

尽管 R-CNN 系列不断优化,但其两阶段架构存在固有缺陷:

问题 说明
速度瓶颈 候选区域生成 + 逐区域处理,难以满足实时需求(如自动驾驶、视频监控)
流程复杂 多模块拼接(Proposal → Feature Extract → Classify → Regress),调试困难
非端到端 R-CNN 中 SVM 与 CNN 分离;即使 Fast/Faster R-CNN 也依赖 RoI 操作,计算不连续
定位依赖后处理 NMS 等步骤无法融入网络梯度更新

正是这些局限,催生了 YOLO(You Only Look Once)等单阶段(One-Stage)检测器的诞生——将检测视为单次回归问题,实现真正意义上的端到端实时检测。


附录:关键术语速查表

术语 解释
Selective Search 基于颜色、纹理、形状等启发式规则合并超像素,生成候选区域
RoI Pooling 将任意大小的感兴趣区域池化为固定尺寸特征(如 7×7)
Anchor 预设的参考框(如 9 种尺度/比例),用于回归偏移量
End-to-End 整个系统从输入到输出可一次性训练,无需中间人工干预
mAP 平均精度均值,综合衡量检测器在不同 IoU 阈值下的性能

✅ 本篇文档为理解 YOLO 的创新价值提供必要背景。接下来可阅读《YOLOv1 原理详解》了解如何突破传统范式。