目标检测(Object Detection)是计算机视觉的核心任务之一,近十年发展迅速。本文梳理从传统方法到深度学习时代的演进脉络,帮助理解各阶段的核心技术突破。
传统目标检测方法
Viola-Jones 检测器
2001 年提出的 Viola-Jones 是第一个真正实用的人脸检测算法:
1 | # 核心思想:Haar 特征 + AdaBoost + 级联分类器 |
核心组件:
- Haar 特征:类似卷积核,计算黑白区域像素和的差异
- Integral Image:快速计算任意矩形区域像素和
- AdaBoost:选择少量关键特征,训练强分类器
- 级联结构:快速过滤背景,减少计算量
HOG + SVM
Histogram of Oriented Gradients (HOG) + SVM 是早期行人检测的主流方法:
1 | # 特征:HOG 描述子 |
问题:
- 特征工程复杂,需要人工设计
- 滑动窗口计算量大
- 泛化能力差,换个类别需要重新设计特征
两阶段检测器(Two-Stage)
R-CNN:开创深度学习检测时代
2014 年 Ross Girshick 提出 R-CNN,将深度学习引入目标检测:
1 | 候选区域生成 → 特征提取 → 分类 + 边界框回归 |
缺点:
- 候选区域独立送入 CNN,重复计算
- 训练流程复杂(多阶段)
- 检测速度慢(GPU 上 ~47 fps/f,但一张图要几十秒)
SPPNet:空间金字塔池化
SPPNet 的核心贡献是 Spatial Pyramid Pooling:
1 | # 问题:CNN 需要固定尺寸输入 |
Fast R-CNN:端到端训练
Fast R-CNN 实现了真正的端到端训练:
1 | # 创新点: |
Faster R-CNN:区域提议网络
Faster R-CNN 的核心创新是 **Region Proposal Network (RPN)**:
1 | 整体结构: |
RPN 核心:
1 | # RPN 是一个全卷积网络 |
Faster R-CNN 实现了 完全端到端 的检测框架,是两阶段检测的巅峰。
单阶段检测器(One-Stage)
YOLOv1:回归思想的突破
2016 年 Joseph Redmon 提出 YOLO,将检测视为回归问题:
1 | # YOLOv1 核心思想: |
优势:
- 速度快(45 fps,fast 版本 155 fps)
- 端到端,简洁高效
问题:
- 小目标检测效果差
- 网格划分粗糙,定位精度低
- 召回率低
SSD:多尺度特征图检测
SSD (Single Shot MultiBox Detector) 结合了多尺度思想:
1 | # 核心改进: |
YOLOv2:改进与增强
YOLOv2 在 v1 基础上做了大量改进:
1 | # 1. 骨干网络:Darknet-19 |
YOLOv3:多尺度预测
YOLOv3 引入 FPN(Feature Pyramid Network):
1 | # 骨干网络:Darknet-53 |
RetinaNet 与 Focal Loss
单阶段检测器面临 类别不平衡 问题,Focal Loss 解决了这个痛点:
1 | # Cross Entropy: |
Anchor-free 流派
FCOS:全卷积一阶段检测
2019 年提出的 FCOS 真正实现了 Anchor-free:
1 | # 核心思想: |
CenterNet:关键点检测思路
CenterNet 将检测转化为关键点检测:
1 | # 核心思想: |
YOLOX:YOLO 的 Anchor-free 升级
YOLOX 将 YOLO 带入 Anchor-free 时代:
1 | # 2021 年,旷视科技提出 YOLOX |
Transformer 时代
DETR:端到端检测新范式
2020 年 Facebook 提出 DETR:
1 | # 核心创新: |
RT-DETR:实时 DETR
RT-DERT 是百度提出的实时检测 Transformer:
1 | # 创新点: |
总结
目标检测发展脉络:
| 阶段 | 方法 | 代表模型 | 特点 |
|---|---|---|---|
| 传统 | HOG+SVM | DPM | 特征人工设计,速度慢 |
| 两阶段 | CNN+候选区 | R-CNN → Faster R-CNN | 精度高,速度慢 |
| 单阶段 | 回归 | YOLO、SSD | 速度快,精度略低 |
| Anchor-free | 关键点 | FCOS、CenterNet | 简单,无 Anchor |
| Transformer | Attention | DETR、RT-DETR | 全局感知,训练难 |
趋势:
- 从 Anchor 到 Anchor-free
- 从两阶段到单阶段
- 从 CNN 到 Transformer
- 精度与速度的持续平衡