目标检测学习总结
本次学习围绕目标检测展开,系统涵盖了目标检测的核心定义、关键问题、数据集、Ground Truth 表示、评估指标及主流算法等内容,为深入理解和应用目标检测技术奠定了坚实基础,以下是具体总结。
一、目标检测核心认知
(一)定义
目标检测旨在识别图片中物体的类别,并确定物体的存在位置,是计算机视觉领域的重要任务,需同时完成 “what”(物体类别)和 “where”(物体位置)两大核心目标,属于典型的多任务问题。
(二)核心挑战
在实际应用中,目标检测面临三大关键问题,这些问题直接影响检测精度和效率:
- 目标种类与数量繁多:现实场景中物体类别丰富,且同一图像中可能存在大量不同类别、不同数量的目标,增加了识别和定位的复杂度。
- 目标尺度不均:同一物体在图像中可能呈现不同大小(如近处的汽车和远处的汽车),不同物体的尺度差异更大,对模型的尺度适应性提出高要求。
- 外部环境干扰:遮挡(如物体间相互遮挡)、噪声(如图像模糊、光照变化产生的噪声)等因素,会导致目标特征不完整,影响检测准确性。
二、目标检测数据集
数据集是目标检测模型训练和评估的基础,本次学习重点介绍了两个国际主流数据集:VOC 数据集和 COCO 数据集,二者在规模、类别数量等方面存在显著差异,适用场景各有侧重。
数据集 | 背景 | 核心参数 | 特点 |
---|---|---|---|
VOC 数据集 | 源于世界级计算机视觉挑战赛 PASCAL VOC 挑战赛 | 包含 4 大类、20 小类;VOC 2007 有 9963 张图片、24640 个目标;VOC 2012 有 23080 张图片、54900 个目标 | 类别数量较少,数据规模相对适中,是早期目标检测模型(如 R-CNN 系列)常用的基准数据集 |
COCO 数据集 | 由微软 2014 年出资标注 | 包含 20 万个图像、80 个类别、超过 50 万个目标标注,平均每个图像有 7.2 个目标 | 类别更丰富,数据规模大,目标密度高,更贴近真实复杂场景,目前广泛用于主流目标检测模型的训练与评估 |
三、Ground Truth 表示
Ground Truth(真值)是衡量模型预测结果准确性的标准,主要包含物体类别和边界框坐标信息。不同数据集采用不同的边界框坐标格式,核心差异在于坐标定义方式和是否归一化,具体如下:
格式 | 来源 | 坐标表示 | 归一化情况 | 说明 |
---|---|---|---|---|
YOLO(TXT)格式 | YOLO 系列算法 | (x, y, w, h),分别代表目标中心点的 x 坐标、y 坐标,以及目标的宽和高 | 是 | x、y、w、h 均相对于图像尺寸归一化,取值范围在 [0,1] 之间,便于模型处理不同尺寸的图像 |
VOC(XML)格式 | VOC 数据集 | (Xmin, Ymin, Xmax, Ymax),分别代表目标边界框左上角的 x、y 坐标和右下角的 x、y 坐标 | 否 | 直接使用图像像素坐标,需结合图像实际尺寸进行计算 |
COCO(JSON)格式 | COCO 数据集 | (Xmin, Ymin, W, H),分别代表目标边界框左上角的 x、y 坐标,以及目标的宽和高 | 否 | 坐标和宽高均为图像像素值,未归一化,需根据图像分辨率转换后使用 |
四、目标检测评估指标
评估指标是衡量目标检测模型性能的关键,本次学习重点讲解了 IoU、TP/FP/TN/FN、Precision/Recall、P-R 曲线、AP 及 mean AP 等指标,各指标从不同维度反映模型性能:
(一)IoU(Intersection over Union)
- 定义:IoU 是目标检测中衡量边界框准确性的核心指标,计算模型预测边界框与 Ground Truth 边界框的交集面积与并集面积的比值,公式为:\(IoU = \frac{Intersection}{Union}\)。
- 作用:IoU 值越大,表明预测框与真实框的重合度越高,检测位置越准确。通常设定 IoU 阈值(如 0.5)来判断预测结果是否有效。
- 预处理:由于模型生成的预测结果数量庞大,首先会过滤掉类别置信度较低的预测框,再通过 IoU 进一步筛选有效结果。
(二)TP/FP/TN/FN(正负样本判定)
TP、FP、TN、FN 根据样本真实类别和模型预测类别划分,是计算 Precision 和 Recall 的基础,具体定义如下:
评估指标 | 解释 | 在目标检测中的含义 |
---|---|---|
TP(真正样本) | 真实类别为正样本,模型预测为正样本 | 预测框与 Ground Truth 的 IoU 大于设定阈值,且类别预测正确 |
FP(假正样本) | 真实类别为负样本,模型预测为正样本 | 预测框与所有 Ground Truth 的 IoU 小于设定阈值,或类别预测错误 |
TN(真负样本) | 真实类别为负样本,模型预测为负样本 | 图像中无目标,模型未检测出目标(实际应用中较少关注) |
FN(假负样本) | 真实类别为正样本,模型预测为负样本 | 图像中存在目标,但模型未检测出(即漏检) |
(三)Precision(精确率 / 查准率)与 Recall(召回率 / 查全率)
- Precision:衡量模型预测为正样本的结果中,真实为正样本的比例,反映模型 “查得准” 的能力,公式为:\(Precision = \frac{TP}{TP + FP}\)。
- Recall:衡量真实为正样本的目标中,被模型成功检测出的比例,反映模型 “查得全” 的能力,公式为:\(Recall = \frac{TP}{TP + FN}\)。
- 权衡关系:Precision 和 Recall 通常存在权衡 —— 提高 Precision 可能导致 Recall 降低(如严格筛选预测框,减少 FP 但可能漏检 FN),反之亦然。
(四)P-R 曲线与 AP(Average Precision)
- P-R 曲线:以 Recall 为横轴、Precision 为纵轴绘制的曲线,曲线越靠近右上角,表明模型在 Precision 和 Recall 上的综合性能越好。
- AP 计算:AP 是 P-R 曲线下的面积,衡量模型在单个类别上的综合性能,常用计算方法包括 11 点法和近似面积法:
- 11 点法:选取 Recall 值为 [0, 0.1, 0.2, ..., 1.0] 的 11 个点,对应每个 Recall 点取该 Recall 及更高 Recall 对应的最大 Precision,再计算这 11 个 Precision 的平均值,即为该类别的 AP。
- 近似面积法:将 P-R 曲线按 Recall 值均匀划分,计算每个区间的 Precision 平均值,再乘以区间宽度,累加后得到 AP,该方法比 11 点法更精确。
(五)mean AP(mAP)
mean AP 是所有类别的 AP 的算术平均值,衡量模型在多个类别上的整体性能,是目标检测任务中最常用的综合评估指标。此外,需区分 “mean” 与 “average”:
- mean:指算术平均数,直接对多个 AP 值求平均(如 mAP)。
- average:包含更多度量规则,需根据具体场景设计均衡策略(如 Average P)。
五、目标检测算法
目标检测算法主要分为传统方法和深度学习方法,目前深度学习方法因性能优势成为主流,根据检测流程可进一步分为 two stage 和 one stage 算法。
(一)传统方法:滑动窗口法
- 原理:通过人工设计固定尺寸的窗口,在图像上滑动遍历,对每个窗口区域进行分类和判断,确定是否包含目标及目标类别。
- 缺点:
- 需人工设计窗口尺寸,无法适应不同尺度的目标;
- 滑动过程产生大量冗余操作,计算效率低;
- 定位精度差,难以准确匹配目标边界。
(二)深度学习方法
1. 核心概念:anchor box
- 定义:anchor box(锚框)是预先在图像上设定的具有不同比例(aspect ratio)和尺度(scale)的边界框,用于匹配不同形状和大小的目标。
- 参数:
- scale:表示目标的面积大小,对应不同尺寸的锚框(如小锚框匹配小目标,大锚框匹配大目标);
- aspect ratio:表示目标的形状(长宽比),如 1:1(正方形)、1:2(长方形)等;
- 位置:由特征图(feature map)上的像素点对应到原图的位置决定。
2. 算法分类:anchor-base 与 anchor-free
- anchor-base(基于锚框):
- 思路:自顶向下,类似传统滑动窗口法,先通过锚框穷举大量候选区域,再根据类别置信度和 IoU 筛选有效候选框,进行位置回归和类别预测。
- 代表算法:R-CNN 系列、SSD 系列等。
- anchor-free(无锚框):
- 思路:自底向上,无需预设锚框,直接从图像特征中预测目标的关键点或边界框,自动生成目标候选区域,减少锚框设计的复杂性。
- 优势:避免锚框预设带来的冗余和适配问题,在小目标检测等场景中表现更优。
3. 检测流程:two stage 与 one stage
two stage(两阶段算法):
- 流程:分为两个阶段,第一阶段生成目标候选区域(proposal),第二阶段对候选区域进行类别预测和位置回归:
- 输入图像,通过 CNN 提取特征图;
- 生成候选区域(如 R-CNN 中的选择性搜索,Faster R-CNN 中的 RPN 网络);
- 对候选区域进行 ROI Pooling(感兴趣区域池化),统一特征尺寸;
- 通过全连接层(fc)完成类别预测和位置回归;
- 采用 NMS(非极大值抑制)筛选最终结果。
- 特点:检测精度高,但流程复杂,计算速度较慢。
- 代表算法:
- 经典发展线:R-CNN → SPP-Net → Fast R-CNN → Faster R-CNN;
- 其他优化算法:Cascade R-CNN(级联检测,提升小目标精度)、Guided Anchoring(引导锚框生成,优化锚框匹配)。
- 流程:分为两个阶段,第一阶段生成目标候选区域(proposal),第二阶段对候选区域进行类别预测和位置回归:
one stage(单阶段算法):
- 流程:无需候选区域生成阶段,直接通过 CNN 对图像进行全局处理,同时完成类别预测和位置回归:
- 输入图像,通过 CNN 提取特征图;
- 基于特征图直接预测每个位置的目标类别概率和边界框坐标;
- 采用 NMS 筛选最终结果。
- 特点:流程简单,计算速度快,适合实时检测场景,但精度通常略低于 two stage 算法。
- 代表算法:
- YOLO 系列:YOLO v1-v5(速度快,兼顾精度,广泛应用于实时检测);
- SSD 系列:SSD、DSSD、FSSD(多尺度特征融合,提升多尺度目标检测能力);
- 其他:RefineDet(结合 two stage 和 one stage 优势,平衡精度与速度)。
- 流程:无需候选区域生成阶段,直接通过 CNN 对图像进行全局处理,同时完成类别预测和位置回归:
4. 关键步骤:非极大值抑制(NMS)
- 作用:解决同一目标被多个候选框重复检测的问题,筛选出最准确的边界框。
- 流程:
- 设定类别置信度阈值(常用 0.5),过滤掉低置信度的候选框;
- 按候选框的置信度从高到低排序;
- 选取置信度最高的候选框 A,加入输出列表,同时从候选框列表中删除 A;
- 计算候选框列表中剩余框与 A 的 IoU,删除 IoU 大于设定阈值(如 0.5)的候选框(认为是同一目标的重复检测);
- 重复步骤 3-4,直到候选框列表为空,输出最终检测结果。
六、学习收获与展望
通过本次学习,系统掌握了目标检测的基础理论和核心技术,明确了数据集、评估指标、算法设计的关键要点,理解了不同算法的优缺点及适用场景。未来学习中,可进一步深入以下方向:
- 算法优化:研究小目标检测、遮挡目标检测的改进方法,如特征融合、注意力机制的应用;
- 实践应用:基于 VOC、COCO 数据集,动手实现 YOLO、Faster R-CNN 等算法,熟悉模型训练、调参流程;
- 前沿技术:关注 anchor-free 算法、Transformer-based 目标检测(如 DETR)等前沿方向,了解领域最新进展。
目标检测作为计算机视觉的核心任务,在自动驾驶、安防监控、医疗影像等领域具有广泛应用前景,后续需结合理论与实践,不断提升技术应用能力。