JA EN ZH

目标检测概述 - YOLO、SSD 和 Faster R-CNN 架构与性能对比

· 9 分钟阅读

什么是目标检测 - 在图像中定位和分类物体

目标检测是计算机视觉的核心任务,同时完成物体的定位 (在哪里) 和分类 (是什么)。与图像分类仅输出类别标签不同,目标检测输出每个物体的边界框坐标和类别概率。

输出格式: 每个检测结果包含 [x, y, w, h, class, confidence],其中 (x,y) 是边界框中心坐标,(w,h) 是宽高,class 是类别,confidence 是置信度分数。

评估指标:

  • IoU (Intersection over Union): 预测框与真实框的重叠比例。通常 IoU>0.5 视为正确检测
  • mAP (mean Average Precision): 所有类别 AP 的平均值。COCO 数据集使用 mAP@[0.5:0.95]
  • FPS: 每秒处理帧数,衡量实时性能

两大技术路线:

  • 两阶段检测器: 先生成候选区域,再分类和回归。精度高但速度慢 (Faster R-CNN)
  • 单阶段检测器: 直接从特征图预测边界框和类别。速度快 (YOLO, SSD)

Faster R-CNN - 高精度两阶段检测器

Faster R-CNN (2015) 是两阶段检测器的代表,通过 Region Proposal Network (RPN) 实现端到端训练,在精度上长期保持领先。

架构组成:

  • 骨干网络 (Backbone): ResNet-50/101 或 FPN 提取多尺度特征图
  • RPN: 在特征图每个位置生成多个锚框,预测前景/背景和框回归
  • RoI Pooling/Align: 将不同大小的候选区域统一为固定尺寸特征
  • 检测头: 全连接层进行最终分类和边界框精修

锚框设计: 每个特征图位置设置 9 个锚框 (3 种尺度 × 3 种宽高比)。RPN 预测每个锚框是否包含物体,并回归偏移量。NMS (非极大值抑制) 去除重叠检测。

性能: COCO 数据集上 mAP 约 37-42% (ResNet-101-FPN)。推理速度约 5-15 FPS (GPU)。适合对精度要求高、实时性要求不严格的场景。

改进变体: Cascade R-CNN 使用多级检测头逐步精修,mAP 提升 2-4%。HTC (Hybrid Task Cascade) 结合实例分割进一步提升。

YOLO 系列 - 实时目标检测的演进

YOLO (You Only Look Once) 将检测视为回归问题,单次前向传播即可完成检测,开创了实时目标检测的先河。从 YOLOv1 到 YOLOv8/YOLO11,持续在速度和精度间取得更好平衡。

YOLO 核心思想: 将图像划分为 S×S 网格,每个网格单元预测 B 个边界框和 C 个类别概率。所有预测在单次网络前向传播中完成,无需候选区域生成。

版本演进:

  • YOLOv3 (2018): 多尺度预测 (3 个尺度),Darknet-53 骨干。mAP 33%, 30+ FPS
  • YOLOv5 (2020): PyTorch 实现,易用性大幅提升。自动锚框计算,数据增强
  • YOLOv8 (2023, Ultralytics): 无锚框设计,解耦头,改进的损失函数。mAP 53.9% (COCO), 实时
  • YOLO11 (2024): 最新版本,效率和精度进一步提升

部署优势: YOLO 模型可导出为 ONNX、TensorRT、CoreML 等格式,部署到边缘设备 (Jetson、手机)。YOLOv8-nano 在手机上可达 30+ FPS。

SSD 和 RetinaNet - 单阶段检测器变体

SSD 和 RetinaNet 是单阶段检测器的重要变体,各自解决了不同的技术挑战。

SSD (Single Shot MultiBox Detector, 2016):

  • 在多个不同分辨率的特征图上检测不同大小的物体
  • 浅层特征图检测小物体,深层特征图检测大物体
  • VGG-16 骨干,6 个检测层
  • 速度: 59 FPS (300×300 输入),mAP: 74.3% (VOC2007)

RetinaNet (2017):

  • 提出 Focal Loss 解决类别不平衡问题 (背景远多于前景)
  • Focal Loss: FL(p) = -α(1-p)^γ log(p),对易分类样本降低权重
  • FPN 骨干 + 分类和回归两个子网络
  • 首次使单阶段检测器精度超越两阶段方法
  • mAP: 40.8% (COCO),速度适中

单阶段 vs 两阶段总结: 单阶段检测器 (YOLO, SSD, RetinaNet) 速度快,适合实时应用; 两阶段检测器 (Faster R-CNN) 精度高,适合离线分析。近年来单阶段方法精度不断提升,差距已大幅缩小。

最新趋势 - 基于 Transformer 的检测器和基础模型

Transformer 架构和大规模预训练正在重塑目标检测领域,带来全新的设计范式。

DETR (2020, Facebook):

  • 首个端到端 Transformer 检测器,无需锚框和 NMS
  • 使用匈牙利算法进行二分图匹配的集合预测
  • 简化了检测流水线,但训练收敛慢

DINO (2022):

  • 改进的 DETR,使用去噪训练和对比学习
  • COCO mAP 63.3% (Swin-L 骨干),超越所有先前方法
  • 训练效率大幅提升 (12 epoch 即可收敛)

Grounding DINO + SAM:

  • 开放词汇检测: 输入文本描述即可检测任意物体
  • 结合 SAM (Segment Anything) 实现零样本检测+分割
  • 无需针对特定类别训练,通用性极强

RT-DETR (2023, 百度): 实时 DETR 变体,在保持 Transformer 优势的同时达到 YOLO 级别的速度。混合编码器设计,无需 NMS 后处理。

实际选型标准与部署策略

根据具体应用场景选择合适的检测模型,并考虑部署环境的约束。

选型决策树:

  • 实时性要求 (>30 FPS): YOLOv8/YOLO11。边缘设备选 nano/small 变体
  • 最高精度优先: DINO 或 Co-DETR。需要强力 GPU
  • 开放词汇/零样本: Grounding DINO。无需重新训练即可检测新类别
  • 资源受限 (手机/嵌入式): YOLOv8-nano 或 MobileNet-SSD
  • 少量标注数据: 预训练模型微调,或使用 Grounding DINO 零样本

部署优化:

  • 量化: FP32→FP16→INT8,速度提升 2-4 倍,精度损失 <1%
  • TensorRT: NVIDIA GPU 上的推理优化,自动算子融合和内存优化
  • ONNX Runtime: 跨平台推理,支持 CPU/GPU/NPU
  • 模型剪枝: 去除冗余通道,减小模型体积

数据标注建议: 每个类别至少 500-1000 张标注图像。使用 CVAT 或 Label Studio 进行标注。主动学习策略: 先用少量数据训练,模型预标注,人工修正,迭代提升。

Related Articles

图像分割基础 - 理解区域划分原理与应用

系统介绍图像分割技术,从经典阈值法到深度学习方法 (U-Net、DeepLab、SAM),涵盖评估指标和浏览器端实现。

深入图像压缩算法 - DCT、小波变换与预测编码

深入解析图像压缩的核心算法,包括 JPEG 的 DCT 变换、JPEG 2000 的小波变换,以及 AV1/HEVC 的预测编码技术。

图像自动标注技术 - 目标检测、场景识别与字幕生成

详解图像自动标注技术,包括目标检测、场景识别和图像字幕生成的原理与实现方法。

语义分割入门 - 理解 U-Net 和 DeepLab 架构

详解语义分割的核心架构,从 FCN 开创性工作到 U-Net 的编码器-解码器结构和 DeepLab 的空洞卷积,涵盖训练数据准备和部署。

机器学习数据增强 - 实用图像增强技术

学习机器学习中的数据增强技术,包括几何变换、颜色增强、MixUp/CutMix 以及自动增强策略的实践方法。

深度学习超分辨率 - 从 SRCNN 到 Real-ESRGAN 的演进与实践

全面解析深度学习图像超分辨率技术,从 SRCNN 开创性工作到 Real-ESRGAN 的真实世界退化处理,涵盖实际部署指南。

Related Terms