目标检测理论:边界框、锚框、IOU计算与NMS算法详解
引言
目标检测是计算机视觉中的核心任务之一,同时完成分类(识别“是什么”)和定位(标注“在哪里”)两大子任务,广泛应用于自动驾驶、安防监控、工业质检等领域。本文将深入拆解其核心理论与可复用关键代码,帮你打牢基础。
📂 所属阶段:第二阶段 — 深度学习视觉基础(CNN 篇)
🔗 相关章节:迁移学习 (Transfer Learning) · YOLO 家族实战
1. 目标检测基础扫盲
1.1 任务定义与表示
输入:单张图像,形状为 高×宽×通道数 (H×W×C)。
输出:检测到的 N 个目标,每个目标包含三个信息:
- 类别标签(class):物体属于哪一类
- 边界框(bbox):物体在图像中的位置
- 置信度(confidence):模型对该检测结果的把握程度
简单说,目标检测模型读完一张图后,会告诉你图中有什么物体、每个物体在什么位置,并且对每个判断给出一个可信度分数。
1.2 核心应用场景
1.3 算法发展简史(关键节点)
- 2014:R-CNN(首次将CNN用于目标检测)
- 2015:Faster R-CNN(引入区域建议网络RPN,实现端到端训练)
- 2016:YOLOv1/SSD(单阶段检测器,大幅提升速度)
- 2020:DETR(首次将Transformer直接应用于目标检测,无需锚框)
- 2021-2023:YOLOv5/v6/v7/v8(易用性与精度速度的极致平衡)
2. 边界框表示与操作
边界框是定位目标的核心载体,主流有两种可相互转换的表示方法。
2.1 主流表示格式
💡 归一化技巧:将像素坐标除以图像宽高,转换到 [0,1] 范围,可适配任意尺寸的输入图像。
2.2 可复用的核心操作代码
3. IOU(交并比)计算
IOU(Intersection over Union)是目标检测中最核心的评估/匹配指标,用来衡量预测框与真实框的重叠程度。
3.1 基本概念
定义:两个边界框的交集面积与并集面积的比值。
计算公式:IOU = 交集面积 / 并集面积
常用阈值参考:
- IOU > 0.5:初步匹配(COCO AP50 标准)
- IOU > 0.7:良好匹配
- IOU > 0.9:几乎完美重合
3.2 可复用的核心计算代码
4. NMS(非极大值抑制)
NMS(Non-Maximum Suppression)是去除重复检测框的核心后处理算法,几乎所有现代检测器都会用到。
4.1 基本流程
- 按置信度分数降序排列所有检测框
- 选择置信度最高的框作为当前保留框
- 计算当前框与剩余框的IOU,删除IOU大于阈值的框
- 重复步骤2-3,直到处理完所有框
4.2 可复用的基础NMS代码
4.3 常用优化变体(简介)
5. 锚框机制
锚框(Anchor Box)是两阶段/早期单阶段检测器(如 Faster R-CNN、SSD、YOLOv2-v3)解决多尺度目标检测的核心预定义工具。
5.1 基本概念
在特征图的每个网格点上,放置一组预定义尺寸和宽高比的参考框,模型仅需预测:
- 相对于锚框的边界框偏移量(而非绝对坐标)
- 锚框内是否存在目标的对象性分数
- 目标的类别概率
5.2 关键参数
6. 核心评估指标
目标检测最常用的评估体系是COCO标准,核心指标如下:
7. 总结
本文梳理了目标检测的四大核心基础:
- 边界框表示:掌握xyxy与xywh的相互转换、归一化、裁剪
- IOU计算:核心匹配/评估指标,理解公式与实现
- NMS算法:去除重复检测的后处理核心,掌握基础版与常用变体
- 锚框机制:早期/两阶段检测器的预定义参考框
这些概念是所有现代目标检测模型的基石,必须熟练掌握。

