1.5 5

👁 30 👍 0 💬 0 字数 2912 阅读 11 分钟

实验5 目标检测

姓名: 刘欣楠

学号: 2233310237

班级: 数学强基 2301

电子版密码: lxn-cvpr5

实验内容

用 HOG 特征 + SVM 设计一个单目标检测器

实验目的

    1. 掌握 HOG 特征描述子和线性 SVM 分类算法
    1. 理解滑动窗扫描进行目标检测方法;
    1. 掌握交并比 (IoU) 的原理与作用;
    1. 理解召回率, 检测精度的概念, 掌握用均值平均精度 (mAP) 评估目标检测器的方法.

实验原理

本实验采用方向梯度直方图(Histogram of Oriented Gradients, HOG)特征结合支持向量机(Support Vector Machine, SVM)构建一个单目标检测器. 该方法最早由 Dalal 和 Triggs 在 2005 年 CVPR 会议上提出, 并成功应用于行人检测任务. 其核心思想是利用目标的局部梯度方向分布作为特征, 通过滑动窗口和多尺度扫描实现目标检测, 并结合非极大值抑制(NMS)与均值平均精度(mAP)进行结果优化与评估.

HOG 特征原理

HOG 特征通过统计局部区域内像素梯度方向的分布来描述目标的形状信息, 具有良好的尺度与光照不变性. 其基本步骤如下: - 对输入图像进行灰度化与 Gamma 归一化, 增强对光照变化的鲁棒性; - 计算每个像素点的梯度幅值与梯度方向; - 将图像划分为多个 cell(如 $8\times8$ 像素), 在每个 cell 内构建 9 个方向的梯度直方图; - 将相邻 $2\times2$ 个 cell 组成一个 block, 对 block 内的直方图进行归一化, 增强对局部对比度变化的鲁棒性; - 在检测窗口内对所有 block 的 HOG 特征进行拼接, 形成最终的高维特征向量.

$128\times64$ 的检测窗口为例, cell 大小为 $8\times8$, block 为 $2\times2$, 则窗口内 HOG 特征维度为:

$$

(128/8-2+1)\times(64/8-2+1)\times(2\times2\times9)=3780

$$

SVM 分类器原理

本实验采用线性 SVM 作为二分类器, 用于区分“目标”和“非目标”. 其判别函数为:

$$

f(x, W)=Wx+b

$$

SVM 通过最小化带有正则项的 Hinge 损失函数进行训练:

$$

L(W)=\frac{1}{N}\sum_{i=1}^{N} L_i + \lambda R(W)

$$

其中:

$$

L_i=\sum_{j\neq y_i}\max(0, s_j - s_{y_i} + 1)

$$

训练阶段中, 负样本数量远大于正样本, 通过不断挖掘“难负样本”提高分类器的鲁棒性.

滑动窗口与多尺度检测

在检测阶段, 采用滑动窗口在图像不同位置与不同尺度上进行遍历扫描. 其基本流程为: - 构建图像金字塔, 实现多尺度目标检测; - 在每一尺度上使用固定大小的检测窗口进行滑动扫描; - 对每个窗口提取 HOG 特征; - 输入 SVM 分类器, 得到目标置信度得分; - 所有得分高于阈值的窗口视为候选检测框.

非极大值抑制(NMS)

由于滑动窗口在相邻位置会产生大量重叠检测框, 因此需要使用非极大值抑制(NMS)进行后处理. 其核心思想是: - 根据置信度对检测框进行排序; - 选择当前最高分检测框作为最终结果; - 计算该框与其余所有框的交并比 IoU; - 删除 IoU 大于阈值(如 0.7)的低分检测框; - 重复上述步骤直到处理完成.

交并比(IoU)

交并比(Intersection over Union, IoU)用于衡量预测框与真实框之间的重叠程度, 其定义为:

$$

IoU = \frac{S_{预测框 \cap 真实框}}{S_{预测框 \cup 真实框}}

$$

IoU 既用于 NMS 中判断冗余框, 也用于检测性能评估中判断检测是否正确.

平均精度(AP)与均值平均精度(mAP)

对每一类目标, 根据不同置信度阈值计算精确率(Precision)与召回率(Recall), 并绘制 PR 曲线, 其曲线下面积即为该类别的平均精度(AP):

$$

AP = \int_0^1 P(R) \, dR

$$

对于多类别检测, 所有类别 AP 的平均值定义为均值平均精度(mAP):

$$

mAP=\frac{1}{C}\sum_{i=1}^{C} AP_i

$$

在 COCO 评测标准中, mAP 需要在多个 IoU 阈值(0.5 到 0.95, 步长 0.05)下计算并取平均:

$$

mAP_{COCO}=\frac{1}{10}\sum_{k=1}^{10} mAP@IoU_k

$$

实验结果

目标检测可视化结果

采用训练好的 HOG+SVM 目标检测器对测试集图像进行滑动窗口检测, 并分别展示非极大值抑制(NMS)前后的检测结果.

样例一: 双车辆场景检测结果~

图

样例二: 复杂遮挡场景检测结果~

图

样例三: 单车辆清晰场景检测结果~

图

从三组检测结果可以看出: - 在 NMS 处理前, 同一车辆周围往往会产生多个高度重叠的检测框; - 经 NMS 后, 仅保留置信度最高的检测框, 显著减少冗余结果; - 在单目标、双目标及遮挡场景下, 检测器均能较好地定位侧面车辆目标; - 说明基于 HOG 特征的检测器对 carSide 类目标具备较稳定的检测能力.

多尺度目标检测结果分析

多尺度检测样例一: 双车辆场景~

图

多尺度检测样例二: 远距离单车辆场景~

图

从多尺度测试集的检测结果可以看出: - 在不同目标尺度条件下, 滑动窗口结合图像金字塔结构仍能够对车辆目标实现稳定检测; - 对于双车辆场景, 如图 \ref{fig:scale_case1} 所示, 两个不同尺度的车辆目标均被准确定位, 说明多尺度搜索机制有效扩大了检测器的适用范围; - 对于远距离小尺度车辆, 如图 \ref{fig:scale_case2} 所示, 在经过多层尺度缩放后, 检测器仍能在合适尺度层级上给出有效响应; - 非极大值抑制(NMS)在多尺度场景下同样起到了良好的冗余抑制作用, 使最终检测结果更加简洁、稳定.

实验结果表明, 基于 HOG 特征与线性 SVM 的检测器在结合图像金字塔机制后, 不仅能够适用于标准尺度目标检测任务, 而且对实际场景中常见的尺度变化具有较好的适应能力, 验证了多尺度滑动窗口目标检测策略在本实验中的有效性.

检测结果统计分析

测试集中 carSide 类目标的检测结果统计如图 \ref{fig:stat_compare} 所示.

图

测试集中共包含 $193$ 个 carSide 类真实目标, 检测器共输出 $233$ 个检测框, 其中: - 真正例(True Positive, TP): $183$ - 假正例(False Positive, FP): $50$

由此得到检测精度与召回率:

$$

\text{Precision} = \frac{183}{233} \approx 0.79

$$

$$

\text{Recall} = \frac{183}{193} \approx 0.95

$$

说明该检测器在保持较高召回率的同时, 仍具有较好的检测精度.

PR 曲线与平均精度(AP)

carSide 类目标的 PR 曲线如下图所示:

图

由 PR 曲线下的面积计算得到该类别的平均精度:

$$

AP = 92.84\%

$$

在较大召回率区间内 Precision 保持在 $0.9$ 以上, 说明该检测器在精度与召回率之间取得了良好的平衡.

均值平均精度(mAP)与漏检率分析

由于本实验仅包含单一类别 carSide, 因此整体均值平均精度为:

$$

mAP = AP = 92.84\%

$$

图

carSide 类目标的 log-average miss rate 统计结果如图所示:

图

该指标为 $0.11$, 表明该检测器在测试集中具有较低的漏检率.

实验结果分析

检测性能分析

实验结果表明, 基于 HOG 特征与线性 SVM 的单目标检测器在 carSide 数据集上取得了 $92.84\%$ 的 AP 和 $92.84\%$ 的 mAP, 表现出较高的检测精度. 检测器共成功检测到 $183$ 个真实车辆目标, 覆盖了绝大多数真实样本, 说明该方法在目标姿态较为固定、背景相对简单的场景下具有较强的实用性.

误检分析

实验中共存在 $50$ 个假正例, 误检的主要原因包括: - 背景中存在与车辆外观相似的边缘结构, 如墙体、遮挡物等; - 滑动窗口在全图密集扫描, 易在纹理复杂区域产生误检; - 负样本多样性仍存在不足, 部分复杂背景未被充分建模.

NMS 对检测结果的影响

非极大值抑制在本实验中起到了关键作用: - 有效消除了大量重复检测框; - 显著提升了检测结果的可读性; - 间接提高了整体评估指标的稳定性.

方法优缺点总结

**优点: ** - HOG 特征对局部边缘与结构敏感, 适合刚性目标检测; - 线性 SVM 训练效率高、推理速度快; - 构建了完整的“特征提取–训练–检测–评估”流程.

**不足: ** - 对遮挡、光照变化仍较为敏感; - 对多尺度、小目标的泛化能力有限; - 复杂场景下仍存在一定误检.

结论与讨论

实验结论

本实验基于 HOG 特征与线性 SVM 分类器, 成功构建了一个完整的单目标检测系统, 实现了从 数据标准化、特征提取、模型训练、滑动窗口检测、非极大值抑制(NMS)到定量评估(mAP)的完整流程.

在 carSide 数据集上的实验结果表明: - 该检测器在测试集上取得了 $92.84\%$ 的平均精度(AP), 均值平均精度(mAP)同样为 $92.84\%$; - 在 $193$ 个真实目标中成功检测出 $183$ 个, 召回率约为 $95\%$; - 对应的 log-average miss rate 仅为 $0.11$, 表明漏检率较低; - 在单尺度与多尺度测试集中均能够对侧面车辆目标进行稳定检测; - 非极大值抑制有效消除了重复检测框, 使检测结果更加准确、简洁.

实验结果验证了经典 HOG+SVM 目标检测方法在刚性目标、姿态相对固定、背景较为简单的场景下仍然具备较高的检测精度和较强的实用价值.

实验不足与误差来源分析

尽管本实验取得了较好的检测效果, 但仍然存在一定不足, 主要体现在以下几个方面: - 在复杂背景或光照变化较大的场景中, 仍然存在一定数量的误检现象; - 部分遮挡严重或尺度极小的车辆目标仍可能出现漏检; - 负样本多样性有限, 导致模型对部分复杂背景区域的判别能力不足; - 滑动窗口方式在整幅图像上进行密集扫描, 计算复杂度较高, 检测效率仍有提升空间.

这些问题主要来源于传统手工特征本身的表达能力有限, 以及分类器模型较为简单所带来的泛化能力不足.

方法改进与拓展方向

针对上述不足, 后续可从以下几个方向对检测系统进行改进和拓展: - 在特征层面引入多特征融合方法, 如结合 HOG、LBP、颜色直方图等多种特征以增强判别能力; - 在分类器层面尝试非线性核 SVM、级联分类器或更深层次的学习模型; - 采用现代深度学习目标检测算法(如 YOLO、SSD、Faster R-CNN), 以进一步提升在复杂背景、多尺度、多目标场景下的检测性能; - 在工程实现层面使用 GPU 加速与区域候选机制, 以提升整体检测速度.

总体而言, 本实验不仅验证了 HOG+SVM 目标检测方法的基本原理和有效性, 也为后续深入学习基于深度学习的目标检测算法奠定了坚实的基础.

评论 0
评论加载中...