检测精度评价指标召回率和精确率

        检测精度评价指标为:

1、召回率(Recall Rate )          2、平均精度均值(mAP)        3、平均对数漏检率(MR-2)

 计算 TP 和 FP 的示例

假设你有一个目标检测模型,并使用它检测图像中的目标。你需要计算 TP 和 FP 以评估模型的性能。我们假设有以下数据:

  • ground_truth: 实际的目标位置。
  • detections: 模型检测到的目标位置。
import cv2
import numpy as np

# 这是一个假设的 ground_truth 和 detections 数据
ground_truth = [
    (50, 50, 100, 100),  # 真实的目标区域
    (200, 200, 250, 250)
]

detections = [
    (55, 55, 105, 105),  # 检测到的目标区域(TP)
    (60, 60, 110, 110),  # 检测到的目标区域(TP)
    (210, 210, 260, 260),# 检测到的目标区域(TP)
    (300, 300, 350, 350) # 错误检测到的目标区域(FP)
]

# 计算 IoU(Intersection over Union)
def compute_iou(box1, box2):
    x1, y1, x2, y2 = box1
    x1g, y1g, x2g, y2g = box2
    
    xi1 = max(x1, x1g)
    yi1 = max(y1, y1g)
    xi2 = min(x2, x2g)
    yi2 = min(y2, y2g)
    
    inter_area = max(0, xi2 - xi1) * max(0, yi2 - yi1)
    
    box1_area = (x2 - x1) * (y2 - y1)
    box2_area = (x2g - x1g) * (y2g - y1g)
    
    union_area = box1_area + box2_area - inter_area
    
    iou = inter_area / union_area
    return iou

# 设置 IoU 阈值
iou_threshold = 0.5

# 初始化 TP 和 FP 计数器
TP = 0
FP = 0

# 遍历检测结果并计算 TP 和 FP
for detection in detections:
    is_tp = False
    for gt in ground_truth:
        iou = compute_iou(detection, gt)
        if iou >= iou_threshold:
            is_tp = True
            break
    if is_tp:
        TP += 1
    else:
        FP += 1

print(f'True Positives (TP): {TP}')
print(f'False Positives (FP): {FP}')

解释

  1. 计算 IoUcompute_iou 函数计算两个边界框之间的 IoU(Intersection over Union),用于判断检测结果是否与真实目标匹配。
  2. 设置阈值:设置一个 IoU 阈值(如 0.5),超过该阈值则认为检测结果是一个 TP。
  3. 遍历检测结果:对于每个检测结果,计算其与所有 ground truth 的 IoU,如果有一个超过阈值,则认为该检测结果是 TP,否则为 FP。

补充:

  1. 真正例(True Positive, TP)

解释:模型正确地将正类别样本预测为正类别。

例子:在疾病诊断中,一个病人实际患有疾病,模型也预测他患有疾病。

  1. 假正例(False Positive, FP)

解释:模型错误地将负类别样本预测为正类别。

例子:在垃圾邮件检测中,一个正常的邮件被模型错误地标记为垃圾邮件。

  1. 真负例(True Negative, TN)

解释:模型正确地将负类别样本预测为负类别。

例子:在疾病诊断中,一个病人实际上没有患病,模型也预测他没有患病。

  1. 假负例(False Negative, FN)

解释:模型错误地将正类别样本预测为负类别。

例子:在疾病诊断中,一个病人实际患有疾病,但模型预测他没有患病。

这些指标在评估分类模型时非常重要,因为它们可以用来计算更复杂的性能指标,如准确率(Accuracy)、召回率(Recall)或敏感度、精确率(Precision)、F1分数等。例如:

准确率:分类正确的样本占总样本数的比率:计算公式为:(TP+TN)/(TP+TN+FP+FN)

召回率:正类别中被正确预测的样本比例;计算公式为TP/(TP+FN)

精确率:被预测为正类别中实际为正类别的样本比例;计算公式为:TP/(TP+FP)

F1分数:精确率和召回率的调和平均数,计算公式为2×(精确率×召回率)/(精确率+召回率)

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值