yolo目标检测
一、目标检测核心任务与挑战
1. 核心任务
目标检测是计算机视觉的核心任务之一,核心目标是同时完成 “物体识别” 与 “位置定位”:
- 识别:判断图像中包含哪些类别的物体(如人、车、狗);
- 定位:确定每个物体在图像中的具体位置(用边界框表示)。简言之,目标检测 = 图像分类 + 目标定位,属于 “多任务学习” 范畴。
2. 核心挑战
实际场景中,目标检测面临三大关键难题:
- 目标种类与数量繁多:图像中可能包含数十种不同类别物体,且数量不固定(如街景图中有行人、车辆、交通灯等);
- 目标尺度不均:同一类物体在图像中可能呈现极大 / 极小尺寸(如近处的猫与远处的猫);
- 外部环境干扰:物体可能被遮挡(如行人被树木遮挡)、受噪声影响(如模糊图像),导致特征提取困难。
二、目标检测常用数据集
数据集是模型训练与验证的基础,目前主流的公开数据集有 VOC 和 COCO,两者在规模、类别数上差异显著:
| 数据集 | 背景来源 | 类别规模 | 数据量(关键指标) | 特点 |
|---|---|---|---|---|
| VOC 数据集 | PASCAL Visual Object Classes 挑战赛(世界级计算机视觉赛事) | 4 大类(如动物、交通工具)、20 小类(如猫、汽车、自行车) | - VOC 2007:9963 张图片,24640 个目标- VOC 2012:23080 张图片,54900 个目标 | 类别少、标注简洁,适合入门级模型训练 |
| COCO 数据集 | 微软 2014 年出资标注的 MS COCO 数据库 | 80 个类别(覆盖日常场景更多物体,如雨伞、沙发) | - 20 万张图像- 50 万个以上目标标注- 平均每幅图像含 7.2 个目标 | 类别多、标注密度高,更贴近真实场景,是当前主流评测基准 |
三、目标检测的 Ground Truth(真值标注)
Ground Truth(GT)是图像中物体的 “真实信息”,包括类别和边界框坐标,不同数据集 / 框架采用不同的坐标格式,核心是统一 “真实框” 与 “预测框” 的计算标准:
1. 三种主流格式对比
| 格式类型 | 坐标表示方式 | 归一化情况 | 适用场景 | 示例(假设图像尺寸 1000×800px) |
|---|---|---|---|---|
| YOLO(TXT 格式) | (Cₓ, Cᵧ, w, h):- Cₓ/Cᵧ:目标中心点的 x/y 坐标- w/h:目标的宽 / 高 | 是(坐标值范围 [0,1],除以图像宽 / 高) | YOLO 系列模型训练与推理 | 若狗的真实框为(100,600,150,100),归一化后为(0.1, 0.75, 0.15, 0.125) |
| VOC(XML 格式) | (Xmin, Ymin, Xmax, Ymax):- 左上角(Xmin,Ymin)- 右下角(Xmax,Ymax) | 否(直接使用像素坐标) | R-CNN、SSD 等模型,VOC 数据集标注 | 马的真实框:(700, 300, 900, 550)(Xmax=700+200,Ymax=300+250) |
| COCO(JSON 格式) | (Xmin, Ymin, W, H):- Xmin/Ymin:左上角 x/y 坐标- W/H:目标的宽 / 高 | 否(像素坐标) | COCO 数据集标注,主流框架兼容 | 人的真实框:(400, 400, 100, 500)(宽 100px,高 500px) |
2. 关键说明
- 归一化的优势:避免图像尺寸差异对模型训练的影响(如 1000×800 与 500×400 图像,归一化后坐标范围统一);
- 格式转换:实际应用中可通过工具将 XML/JSON 格式转为 TXT(如 YOLO 训练前的格式处理)。
四、目标检测核心评估指标
评估指标用于衡量模型性能,核心是 “判断预测结果与真实结果的匹配度”,常用指标包括 IoU、TP/FP/TN/FN、Precision/Recall、AP 与 mAP:
1. IoU(Intersection over Union,交并比)
- 定义:预测边界框(Prediction)与真实边界框(Ground Truth)的 “交集面积” 除以 “并集面积”,是衡量定位准确性的核心指标;
- 公式:IoU=Area(Pred∪GT)Area(Pred∩GT);
- 取值范围:[0,1],IoU 越接近 1,定位越准确(通常设定 IoU>0.5 为 “有效匹配”);
- 预处理:计算 IoU 前,需先过滤 “低类别置信度” 的预测框(如置信度 < 0.5 的框直接丢弃,减少无效计算)。
2. TP/FP/TN/FN(样本分类结果)
目标检测中,需结合 “类别预测” 与 “IoU” 判断样本类型,具体定义如下:
| 评估指标 | 核心解释 | 目标检测场景中的具体含义 |
|---|---|---|
| TP(真阳性) | 真实为正样本,预测也为正样本 | 预测框类别正确,且 IoU > 设定阈值(如 0.5) |
| FP(假阳性) | 真实为负样本,预测为正样本 | 预测框类别错误,或 IoU <阈值(如把背景误判为 “车”) |
| TN(真阴性) | 真实为负样本,预测也为负样本 | 背景区域未被误判为任何物体(实际中较少关注) |
| FN(假阴性) | 真实为正样本,预测为负样本 | 图像中存在物体,但模型未检测到(漏检) |
3. Precision 与 Recall(查准率与查全率)
基于 TP/FP/FN,衍生出两个关键指标,平衡 “准确性” 与 “完整性”:
-
Precision(查准率 / 准确率):衡量 “预测为正的样本中,真正为正的比例”,关注 “少误判”;公式:Precision=TP+FPTP例:模型预测 100 个 “车”,其中 80 个是真车(TP=80),20 个是误判(FP=20),则 Precision=80/(80+20)=0.8。
-
Recall(召回率 / 查全率):衡量 “真实为正的样本中,被正确预测的比例”,关注 “少漏检”;公式:Recall=TP+FNTP例:图像中实际有 100 辆车(TP+FN=100),模型只检测到 70 辆(TP=70),则 Recall=70/100=0.7。
-
权衡关系:Precision 与 Recall 通常呈 “负相关”—— 提高 Precision 可能导致 Recall 下降(如严格过滤预测框,减少误判但增加漏检),反之亦然。
4. P-R 曲线与 AP(Average Precision,平均精度)
(1)P-R 曲线
- 定义:以 Recall 为横轴、Precision 为纵轴,绘制的曲线;
- 意义:曲线越 “靠近右上角”,模型性能越好(同时保证高查准率与高召回率)。
(2)AP(平均精度)
- 定义:P-R 曲线下的面积,综合衡量 Precision 与 Recall 的整体表现;
- 计算方法(11 点法,经典方法):
- 设定 Recall 阈值集合 R = [0, 0.1, 0.2, ..., 0.9, 1.0](共 11 个点);
- 对每个 Recall 阈值 r∈R,取 “Recall≥r” 时的最大 Precision 值(避免曲线波动影响);
- 计算 11 个 Precision 值的平均值,即为 AP。
- 示例(PPT 案例):
- R = [0,0.1,...,1.0],对应 Precision P = [1, 0.6666, 0.4285, 0.4285, 0.4285, 0, 0, 0, 0, 0, 0];
- AP = (1 + 0.6666 + 0.4285×3 + 0×6) / 11 ≈ 26.84%。
(3)mAP(mean AP,平均精度均值)
- 定义:所有类别的 AP 值的算术平均值;
- 意义:衡量模型在 “多类别任务” 中的综合性能(如 COCO 数据集 80 类的 mAP);
- 注意:mAP 中的 “mean” 是 “算术平均”,因 AP 已考虑单类别的 Precision-Recall 平衡,无需额外加权。
5. mean 与 average 的区别
- mean(算术平均):直接对多个数值求和后除以数量(如 mAP 是 AP 的 mean);
- average(平均):可能包含加权、插值等规则(如 AP 计算中需对 Precision 插值,属于 average 的一种)。
五、目标检测算法分类
目标检测算法分为 “传统方法” 与 “深度学习方法”,目前主流是深度学习方法:
1. 传统方法(已淘汰,了解即可)
- 代表方法:滑动窗口法;
- 核心思路:
- 人工设计固定尺寸 / 比例的窗口,在图像上 “滑动” 遍历所有区域;
- 对每个窗口提取手工特征(如 HOG、SIFT),用分类器(如 SVM)判断是否为目标;
- 缺点:
- 需人工设计窗口尺寸(无法适应尺度不均的目标);
- 冗余计算多(遍历所有区域,效率低);
- 定位精度差(窗口与目标边界难以完全匹配)。
2. 深度学习方法(主流)
深度学习方法基于 CNN 提取特征,按 “是否生成候选区域” 分为Two Stage(两阶段) 与One Stage(单阶段),核心差异是 “精度” 与 “速度” 的权衡:
(1)关键概念:anchor box(锚框)
anchor box 是深度学习方法中用于 “匹配目标尺度与形状” 的预设框,核心属性:
- scale(尺度):锚框的面积大小(如 128×128、256×256);
- aspect ratio(长宽比):锚框的形状(如 1:1、1:2、2:1);
- 位置:由 CNN 的 feature map 上的每个像素点对应(如 feature map 上一个点,对应原图多个锚框);
- 分类:
- anchor-base(基于锚框):自顶向下,预设大量锚框,筛选后预测(如 R-CNN、YOLO v1-v5);
- anchor-free(无锚框):自底向上,直接预测目标中心点与宽高,无需预设锚框(如 FCOS、CornerNet)。
(2)Two Stage(两阶段算法)
- 核心逻辑:分两步完成检测 —— 先 “生成候选区域(Proposal)”,再 “对候选区域分类与回归”;
- 流程:输入图像 → CNN 提取特征 → 生成候选区域(如 RPN 网络) → ROI Pooling(统一候选区域尺寸) → 全连接层 → 类别预测 + 位置回归 → NMS(去除重复框);
- 优点:精度高(候选区域减少无效计算,聚焦目标区域);
- 缺点:速度慢(两阶段计算,步骤多);
- 代表算法:
- 经典系列:R-CNN → SPP-Net → Fast R-CNN → Faster R-CNN(精度逐步提升,速度逐步优化);
- 改进算法:Cascade R-CNN(多阶段回归,提升定位精度)、Guided Anchoring(动态生成锚框)。
(3)One Stage(单阶段算法)
- 核心逻辑:直接从 CNN 特征图预测目标的 “类别” 与 “位置”,无候选区域生成步骤;
- 流程:输入图像 → CNN 提取特征 → 直接预测类别概率 + 边界框坐标 → NMS(去除重复框);
- 优点:速度快(单阶段计算,适合实时场景);
- 缺点:早期精度低于 Two Stage(近年改进后差距缩小);
- 代表算法:
- YOLO 系列:YOLO v1(首创单阶段)→ YOLO v5(当前主流,平衡精度与速度);
- SSD 系列:SSD(引入多尺度特征图)、DSSD(改进回归头);
- 其他:RefineDet(融合两阶段思想,提升精度)。
3. NMS(Non-maximum Suppression,非极大值抑制)
NMS 是目标检测的 “后处理步骤”,核心作用是去除同一物体的重复预测框,步骤如下:
- 设定置信度阈值:如 0.5,丢弃置信度 < 0.5 的预测框;
- 排序:将剩余预测框按 “类别置信度” 从高到低排序;
- 筛选:
- 选取置信度最高的框 A,加入 “最终结果列表”,并从候选框中删除 A;
- 计算候选框中所有剩余框与 A 的 IoU,删除 IoU > 阈值(如 0.5)的框(认为是重复框);
- 重复:重复步骤 3,直到候选框为空,输出 “最终结果列表”。
- 关键参数:IoU 阈值(通常设为 0.3~0.5,阈值过高易保留重复框,过低易误删有效框)。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)