目标检测
问题
目标检测的主要方法有哪些?YOLO 系列是如何演进的?
答案
一、目标检测任务
目标检测 = 定位(框出目标位置)+ 分类(识别类别)
二、方法分类
三、方法对比
| 对比维度 | 两阶段 | 单阶段 | DETR |
|---|---|---|---|
| 代表 | Faster R-CNN | YOLOv8 | RT-DETR |
| 速度 | 慢 | 快 | 中 |
| 精度 | 高 | 中~高 | 高 |
| 后处理 | NMS | NMS | 无需 NMS |
| 实时性 | ❌ | ✅ | ✅ |
四、YOLO 演进
| 版本 | 年份 | 关键改进 |
|---|---|---|
| YOLOv1 | 2016 | 单阶段检测开创者 |
| YOLOv3 | 2018 | 多尺度检测、Darknet-53 |
| YOLOv5 | 2020 | PyTorch 实现、易用性 |
| YOLOv8 | 2023 | Anchor-free、解耦头 |
| YOLO11 | 2024 | Ultralytics 最新版 |
五、核心概念
| 概念 | 说明 |
|---|---|
| Anchor | 预定义的候选框尺寸(Anchor-free 不需要) |
| IoU | 预测框与真实框的重叠比例 |
| NMS | 非极大值抑制,去除重复检测框 |
| mAP | 平均精度,检测模型的主要评估指标 |
常见面试问题
Q1: Anchor-based 和 Anchor-free 的区别?
答案:
- Anchor-based(YOLO v3~v5):预定义一组 Anchor 框,模型预测偏移量
- Anchor-free(YOLO v8+、FCOS):直接预测目标中心和宽高,无需预定义
- Anchor-free 更简单、超参数更少,是当前趋势
Q2: NMS 是什么?DETR 为什么不需要 NMS?
答案:
- NMS:对同一目标的多个检测框,保留置信度最高的,删除重叠的
- DETR 使用 Transformer + 匈牙利匹配,每个目标只产生一个预测,天然无重复
- 去除 NMS 是端到端检测的优势