核心要点

  • 两阶段(R-CNN 系):先生成候选区域(region proposal)再分类+回归框,精度高

  • 单阶段(YOLO/SSD):一次前向直接在网格上回归框与类别,速度快、适合实时

  • 权衡:两阶段准但慢、流程复杂;单阶段快但对小目标/密集目标稍弱(已被新版改善)

  • 评估用 mAP(基于 IoU 阈值),后处理用 NMS 去重叠框

标准回答

两阶段(Two-stage,R-CNN 家族)

流程分两步:先由 RPN 等生成一批候选区域,再对每个候选框做分类和边框回归。代表:R-CNN → Fast R-CNN → Faster R-CNN。

  • 优点:定位/分类精度高,对小目标和复杂场景更稳。
  • 缺点:流程多、计算量大、速度较慢

单阶段(One-stage,YOLO/SSD)

把检测当作一次回归:单次前向就在特征图网格/anchor 上同时预测类别与边框。

  • 优点:,端到端简单,适合实时(视频、边缘)。
  • 缺点:早期版本对小目标、密集目标精度略逊;新版 YOLO 已大幅缩小与两阶段的精度差距。

共性组件

  • NMS(非极大值抑制):去除同一目标的重叠冗余框。
  • IoU(交并比):衡量预测框与真值框重叠度,是匹配与评估的基础。
  • mAP:按不同 IoU 阈值综合各类别 AP,是主流评测指标。

选型:要极致精度、可接受延迟 → 两阶段;要实时/低延迟 → 单阶段。详见 目标检测:从 R-CNN 到 YOLO

常见误区

⚠️ 常见踩坑

"单阶段一定不如两阶段精度"已过时——现代 YOLO 在多数场景精度与速度兼优;NMS 是后处理而非网络的一部分,端到端检测器(如 DETR)已尝试去除它。

追问

追问 1NMS 是做什么的?有什么改进版本?

NMS 对同一类别的检测框按置信度排序,逐个保留最高分框并抑制与之 IoU 超阈值的其他框,消除重复检测。改进有 Soft-NMS(降权而非直接删)、DIoU-NMS(考虑中心距离)等,缓解密集目标被误抑制。

追问 2mAP 是怎么计算的?

先按某 IoU 阈值判定每个预测为 TP/FP,对每个类别计算 PR 曲线下面积得到 AP,再对所有类别取平均得 mAP。COCO 指标对 IoU 从 0.5 到 0.95 多个阈值再求平均(mAP@[.5:.95]),更严格。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • OpenCV

    开源计算机视觉库,87,181+ stars。全球最广泛使用的计算机视觉库,提供 2500+ 优化算法,涵盖图像处理、目标检测、人脸识别、相机标定等领域。支持 C++、Python、Java,是 AI 视觉应用的基石。

  • Pytorch

    Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出