Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Recall

召回率(也称灵敏度)是模型识别出的真实正类所占比例:TP / (TP + FN)。了解阈值如何影响召回率与精确率的权衡,以及检测器如何计算召回率。

召回率是模型正确识别出的实际正例占所有实际正例的比例。它回答的问题是:“所有本该找到的对象中,模型找到了多少?”计算方法是真正例除以所有实际正例:recall = TP / (TP + FN),其中假阴性 (FN) 是模型漏掉的正例。召回率范围为 0 到 1,因此召回率为 0.90 意味着每 10 个正例中会漏掉 1 个。当漏检代价很高时,召回率尤为重要,例如筛查扫描中未检测出的肿瘤,或警报系统未能标记的入侵者。敏感度、真正例率 (TPR) 和命中率都是召回率的同义词;漏检率,也就是假阴性率,等于 1 减去召回率。

召回率的计算方法#

召回率取自混淆矩阵中的两个单元格:真正例和假阴性;两者合起来涵盖所有实际正例。假阳性和真阴性不会参与计算,因此,将所有内容都标记为正例的模型可以达到完美召回率 1.0,却毫无实用价值。因此,召回率通常会与精确率 TP / (TP + FP) 一同报告,因为精确率恰好会惩罚这些误报。例如,在一个测试集中,筛查模型标记出 100 个肿瘤中的 90 个,其召回率就是 0.90,无论它还标记了多少健康扫描;精确率则显示这些标记中有多少是真实的。

类别数超过两个时,召回率会针对每个类别分别计算,将该类别视为正例、其他所有类别视为负例,然后再求平均值。宏平均召回率对每个类别赋予相同权重,因此能揭示模型在稀有类别上的较差表现;在单标签多分类任务中,微平均召回率等于准确率。

精确率-召回率权衡#

大多数模型都会输出一个分数,决策阈值则将分数转化为是或否。降低阈值会标记更多情况,从而提高召回率,通常也会降低精确率。下面的 scikit-learn 脚本以三个阈值对 15 个零件评分,其中 5 个有缺陷:

import numpy as np
from sklearn.metrics import precision_score, recall_score

# 5 defective parts (1) and 10 good parts (0), with the model's defect score for each
y_true = np.array([1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
scores = np.array([0.95, 0.80, 0.55, 0.40, 0.20, 0.60, 0.35, 0.30, 0.15, 0.10, 0.10, 0.05, 0.05, 0.05, 0.02])

# Lowering the decision threshold flags more parts as defective
for threshold in (0.7, 0.5, 0.3):
    y_pred = scores >= threshold
    recall = recall_score(y_true, y_pred)
    precision = precision_score(y_true, y_pred)
    print(f"threshold {threshold}: recall {recall:.2f}, precision {precision:.2f}")

阈值为 0.7 时,模型能找出 5 个缺陷中的 2 个且没有误报,召回率为 0.40,精确率为 1.00。将阈值降至 0.3 后,模型能找出 4 个缺陷,召回率为 0.80,但 7 个标记中有 3 个是合格零件,因此精确率降至 0.57。绘制所有阈值下的结果即可得到精确率-召回率曲线,再通过 F1 分数或召回率加权的 F2 分数选取单个工作点。在 YOLO26 中,预测的 conf 阈值用于设定这种权衡,默认值为 0.25;例如将其降至 conf=0.1,可以找回更暗、更小或部分遮挡的对象,但会增加误检。

目标检测中的召回率#

在目标检测中,正例是每张图像中标注的对象。只有当同类别预测框与标注对象的交并比 (IoU)达到或超过阈值(通常为 0.5)时,才算找到了该对象。每个预测只能匹配一个对象,因此,一个覆盖人群中两个人的框只能找到其中一个,另一个会成为假阴性。

检测器召回率取决于置信度阈值、IoU 阈值和后处理。较严格的 IoU 阈值(如 0.75)会降低框位置不够准确时的召回率;非极大值抑制 (NMS)可能会删除高度重叠对象的正确框;每张图像的检测数量上限则会限制密集场景中的召回率。平均精度均值 (mAP)会整合所有召回率水平下的精确率,因此模型未能找到的每个对象都会拉低 mAP。COCO 评估还会报告平均召回率 (AR):在每张图像的检测数量固定时达到的最大召回率,并对 0.50 到 0.95 的 IoU 阈值取平均,结果表示为 AR@1、AR@10 和 AR@100。

提高召回率#

  • 降低置信度阈值: 最快的修复方法,但会牺牲精确率。
  • 收集并标注漏检样本: 为模型容易失败的情况补充训练示例,例如小目标、遮挡目标或夜间目标。检查验证数据中的假阴性,可以找出具体的漏检对象。
  • 提高输入分辨率: 在低分辨率下缩小到只有几个像素的小目标,在更高分辨率下就能被检测到。
  • 应对类别不平衡: 焦点损失等焦点损失函数以及对稀有类别进行重采样,可以防止模型忽略少数类。
  • 精确率: 所有正类预测中正确预测所占的比例。召回率关注模型找到了多少目标,而精确率关注模型找到的目标中有多少是正确的。
  • 特异度: 真负率,TN / (TN + FP),即正确排除的负类所占比例。医学检测通常会同时报告灵敏度和特异度。
  • 受试者工作特征(ROC)曲线: 在不同阈值下,以真阳性率为召回率,对比假阳性率绘制曲线。曲线下面积(AUC)用一个数值概括该曲线。
  • 准确率: 所有预测中正确预测所占的比例。当正类占比为 1% 时,始终预测为负类的模型准确率为 99%,召回率却为 0%。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来