当前位置: 首页 > news >正文

深度学习中的目标检测:从 PR 曲线到 AP

深度学习中的目标检测:从 PR 曲线到 AP

在目标检测任务中,评估模型的性能是非常重要的。通过使用不同的评估指标和标准,我们可以量化模型的准确性与效果。今天我们将重点讨论 PR 曲线(Precision-Recall Curve)平均精度(AP)交并比(IoU) 等评估标准,并通过具体的例子帮助大家理解如何使用这些指标评估模型表现。


什么是 Precision 和 Recall?

Precision(精度)

精度衡量的是模型预测为正类的样本中,实际为正类的比例。它反映了预测的准确性。精度计算公式为:

Precision = TP / (TP + FP)

示例
假设模型预测了 100 个目标框,其中 80 个框是正确的,20 个框是错误的。则精度为:
Precision = 80 / (80 + 20) = 0.8

Recall(召回)

召回率衡量的是所有实际为正类的样本中,模型正确预测为正类的比例。召回率计算公式为:
Recall = TP / (TP + FN)

示例
假设有 90 个实际存在的目标,但模型只检测到 80 个正确的目标,剩下的 10 个目标没有被检测到。则召回率为:
Recall = 80 / (80 + 10) = 0.89

这两个指标在目标检测中通常是一起使用的。尤其是在 PR 曲线中,我们可以可视化不同阈值下的精度与召回。


什么是 PR 曲线?

PR 曲线(Precision-Recall Curve)是通过绘制 精度(Precision)和 召回率(Recall)之间的关系来评估模型在目标检测任务中的表现。

例子:如何绘制 PR 曲线?

假设我们有 5 张图像和模型的预测结果(带有置信度),以及每个图像的真实框(ground truth)。我们从低到高选择预测框,逐个计算精度和召回值,并绘制 PR 曲线。

假设预测框:

图像预测框(置信度)是否正确预测
10.9
20.8
30.75
40.7
50.5

在这个简单的例子中,PR 曲线的横轴是召回率,纵轴是精度。随着我们逐步增加预测框的数量,精度会下降而召回率上升。最终,PR 曲线会给出一个关于 Precision 和 Recall 的关系图。

PR 曲线在不同情况的表现

PR 曲线不仅能帮助我们理解模型的整体表现,还能揭示模型在不同类型的预测下的表现差异。通过分析 PR 曲线的形状和位置,我们可以更深入地了解模型在各类情况下的表现,例如漏检(低召回、高精度)、误检(高假阳性、低精度)等。

1. 漏检多的情况(低 Recall,高 Precision)

如果模型漏检很多目标,意味着模型虽然识别出的目标框数量较少,但这些框大多数是正确的。PR 曲线表现为:

  • Precision 高:因为模型预测的正类中,很多都是正确的。
  • Recall 低:因为很多真实存在的目标并未被模型检测到。

具体表现

  • 该情况通常发生在置信度阈值设置较高时。模型严格要求高置信度才能进行预测,因此漏掉了很多低置信度的目标。
  • PR 曲线中的召回率较低,而精度较高。

例如
假设我们有一张包含 10 个目标的图像,模型只检测出了 2 个目标,并且这两个目标预测正确,那么精度可能很高,但召回率较低。

2. 漏检少的情况(高 Recall,低 Precision)

如果模型漏检少,意味着它能够检测到大部分真实目标,虽然其中一些可能是错误的(假阳性)。PR 曲线表现为:

  • Precision 低:由于模型可能多次预测了错误的目标框,精度较低。
  • Recall 高:模型能够检测到大部分真实目标,召回率较高。

具体表现

  • 这种情况通常发生在置信度阈值较低时。模型对置信度要求不严格,因此检测到了更多的目标,但一些预测可能是错误的(误检)。
  • PR 曲线中的召回率较高,而精度较低。

例如
假设我们有一张图像,其中包含 10 个目标,模型检测到了 12 个框,其中 8 个框是正确的,4 个框是错误的。此时,召回率会很高(接近 100%),但精度较低。

3. 误检多的情况(高 False Positive)

误检通常会影响 PR 曲线的表现,使得精度降低。这意味着模型将许多负类错误地预测为正类。PR 曲线表现为:

  • Precision 低:因为模型预测为正类的很多都是错误的(假阳性)。
  • Recall 可能较高:如果模型能够正确地检测到大部分正类目标,召回率可能还会较高,但误检会让精度显著降低。

具体表现

  • 误检多时,模型错误地将一些背景或负类对象识别为目标,导致精度降低。
  • PR 曲线呈现较低的精度和较高的召回率。

例如
假设图像中包含 10 个目标,而模型错误地将 5 个非目标框(误检)预测为目标,并且所有实际目标都被正确检测到。召回率为 100%,但精度将大大降低,因为误检占了较大的比例。

4. 误检少的情况(低 False Positive)

如果误检很少,模型对负类的识别较好,预测框大多数都是正确的,PR 曲线表现为:

  • Precision 高:由于误检少,模型的正类预测大部分都是准确的。
  • Recall 可能较低:如果模型没有足够的检测能力,可能漏掉一些真实目标,导致召回率下降。

具体表现

  • 误检少时,模型精度较高,但召回率可能受到影响。
  • PR 曲线呈现较高的精度,但召回率较低。

例如
假设图像中包含 10 个目标,模型准确地检测出了 8 个目标并且没有误检任何非目标,精度很高,但召回率较低,因为漏掉了 2 个目标。


总结

通过分析 PR 曲线在不同情况下的表现,我们可以更直观地理解模型的优缺点。例如,在精度与召回率之间做出权衡时,我们可以通过调整阈值来控制模型的表现:

  • 低 Recall,高 Precision:适用于对误检非常敏感的场合。
  • 高 Recall,低 Precision:适用于对漏检非常敏感的场合。
  • 低 Precision,高 Recall:可能表明模型在高置信度下预测准确,但无法检测到所有目标。

PR 曲线的形状和位置可以帮助我们针对不同问题调整模型的表现,从而在目标检测中获得更好的效果。


如何计算 AP(平均精度)

AP 是基于 PR 曲线 计算的综合评估指标。为了计算 AP,我们需要通过对不同的 召回率(Recall) 下的 精度(Precision) 进行插值,通常使用 11 点插值法,即在 Recall 从 0 到 1 之间取 11 个不同的值,并计算这些值对应的最大精度。最终的 AP 通过这些最大精度值的平均值来得到。

11 点插值法:

通过对不同 召回率 下的 精度 进行插值,我们可以得到 11 个精度点,然后求其平均值。

示例:计算 11 点插值法的 AP

假设我们已经计算了不同召回率下的精度值,如下表所示:

RecallPrecision
0.00.9
0.10.88
0.20.85
0.30.84
0.40.8
0.50.75
0.60.72
0.70.7
0.80.68
0.90.65
1.00.6

根据 11 点插值法,我们选取每个召回率点下的最大精度,然后取平均:
AP = (0.9 + 0.88 + 0.85 + 0.84 + 0.8 + 0.75 + 0.72 + 0.7 + 0.68 + 0.65 + 0.6) / 11 = 0.75


交并比(IoU)

IoU(Intersection over Union) 是目标检测中评估模型预测框与真实框之间重叠度的重要指标。它通过计算预测框和真实框交集与并集的比值来衡量预测的准确性。

IoU 的计算公式:

IoU = Area of Overlap / Area of Union

示例
假设我们有一个预测框和一个真实框,如下图所示:

  • 预测框的面积:0.3
  • 真实框的面积:0.4
  • 交集的面积:0.2
  • 并集的面积:0.5

IoU 为:

IoU = 0.2 / 0.5 = 0.4

如果 IoU ≥ 0.5,认为预测框为 正确的检测(True Positive, TP)。如果 IoU < 0.5,则认为预测为 假阳性(False Positive, FP)。


小结:如何优化模型表现?

根据 PR 曲线和 AP 的表现,我们可以采取以下措施来优化模型:

  1. 调整置信度阈值:通过调整模型预测框的置信度阈值,我们可以在 Precision 和 Recall 之间做出平衡。
  2. 增加训练数据:通过数据增强或使用更丰富的训练数据,帮助模型提高对复杂场景的识别能力。
  3. 非极大抑制(NMS):使用 NMS 筛选出最优的预测框,从而减少冗余框,提升精度。

通过这些手段,我们能够提升模型的 RecallPrecision,并通过 PR 曲线AP 进一步评估模型性能。


结语

在深度学习中的目标检测任务中,PR 曲线IoUAP 是重要的评估标准。理解这些标准并灵活运用它们,能够帮助我们更好地优化模型并获得更高效的检测结果。希望这篇文章能帮助你更深入地理解如何评估深度学习模型的性能,并在实际项目中做出更好的决策。

相关文章:

  • 各种音频产品及场景总结
  • 【生存技能】ubuntu 24.04 如何pip install
  • 好用的播放器推荐
  • MySQL索引详解(上)(结构/分类/语法篇)
  • expo多网络请求设定。
  • Pycharm(二十)张量的运算与操作
  • 泛型加持的策略模式:打造高扩展的通用策略工具类
  • 流动式起重机Q2考试的实操部分,重点复习内容包括哪些方面?
  • 嵌入式学习--江协51单片机day4
  • 【Linux系统】从零开始构建简易 Shell:从输入处理到命令执行的深度剖析
  • C 语言数据结构基石:一维数组的定义、访问与使用详解
  • 【基于 LangChain 的异步天气查询1】异步调用 Open-Meteo API 查询该城市当前气温
  • 如何借助AI模拟复杂业务流程数据?
  • FreeTex v0.2.0:功能升级/支持Mac
  • 数字签名与证书
  • Java并发编程,从线程安全到死锁避免的实战解析
  • Ubuntu 安装 HAProxy
  • 基于ESP32控制的机器人摄像头车
  • spark-Join Key 的基数/rand函数
  • 海纳思(Hi3798MV300)机顶盒遇到海思摄像头
  • “行人相撞案”现场视频公布,法院:表述不当造成误导
  • 巴基斯坦称对印精准打击造成设施损坏和人员伤亡
  • 临港新片区:发布再保险、国际航运、生物医药3个领域数据出境操作指引
  • 方正证券总裁何亚刚到龄退休,54岁副总裁姜志军接棒
  • 中国词学研究会原会长、华东师大教授马兴荣逝世,享年101岁
  • 上海杨浦:优秀“博主”购房最高可获200万补贴