【机器学习】TP TN FP FN及IoU的关系

  • TP(True Positives): 真的正样本 = 【正样本 被正确分为 正样本】
  • TN(True Negatives): 真的负样本 = 【负样本 被正确分为 负样本】
  • FP(False Positives): 假的正样本 = 【负样本 被错误分为 正样本】
  • FN(False Negatives):假的负样本 = 【正样本 被错误分为 负样本】
    请添加图片描述
    Precision:预测正确的部分预测结果的比例
    Precision = TP TP + FP   \text{Precision}=\frac {\text{TP}} {\text{TP}+\text{FP}} \text{ } Precision=TP+FPTP 
    Recall:预测正确的部分GroundTruth的比例
    Recall = TP TP + FN   \text{Recall}=\frac {\text{TP}} {\text{TP}+\text{FN}} \text{ } Recall=TP+FNTP 
    IoU:交集与并集的比值
    IoU = TP TP + FP + FN \text{IoU}=\frac{\text{TP}}{\text{TP}+\text{FP}+\text{FN}} IoU=TP+FP+FNTP请添加图片描述
### 动态物体目标检测中的混淆矩阵指标 #### 定义与解释 在动态物体目标检测中,混淆矩阵用于衡量模型性能的关键指标包括: - **真阳 (True Positive, TP)**:当实际存在目标物时,模型成功识别为目标物的数量。这表明模型能够正确地发现并标记出存在的对象[^3]。 - **假阴 (False Negative, FN)**:实际上有目标物存在但是被错误地标记为背景或未检出的情况。这意味着一些真正的目标未能被捕获到。 - **假阳 (False Positive, FP)**:无实际目标的情况下却被误判为目标的情形。即不存在的目标被错误地认为是目标物[^4]。 - **真阴 (True Negative, TN)**:确实没有目标而也被正确判定为非目标区域的部分。这是指那些本应为空的地方确实被认为是空白的案例。 这些术语构成了二元分类的基础概念框架,在多类别或多标签场景下可以进一步扩展应用。 #### 计算方法 对于每一个预测框和对应的地面实况(ground truth),通过设定IoU阈值来决定匹配关系,并据此统计上述四个量的具体数值。具体过程如下所示: 1. 对于每一对预测结果和真实标注之间的交集面积除以其联合覆盖总面积得到交并比(IoU),如果该比率大于预设阈值,则视为一次成功的检测; 2. 如果某个真实的边界框没有任何与其关联度超过给定 IoU 的预测框,则此实例计作FN;反之如果有多个预测框都满足条件则只选最佳者其余均作为FP处理; 3. 当一个预测框找不到任何符合条件的真实实体对应它自己就会成为FP的一部分;同样地,所有不属于任何一个有效预测范围内的空间位置都将贡献至TN集合内[^1]。 ```python def calculate_confusion_matrix(ground_truths, predictions, iou_threshold=0.5): tp = fp = fn = tn = 0 matched_predictions = set() for gt_bbox in ground_truths: best_iou = 0 match_pred_id = None for pred_id, pred_bbox in enumerate(predictions): current_iou = compute_iou(gt_bbox, pred_bbox) if current_iou >= iou_threshold and current_iou > best_iou: best_iou = current_iou match_pred_id = pred_id if match_pred_id is not None: tp += 1 matched_predictions.add(match_pred_id) else: fn += 1 # Count unmatched predictions as false positives fp += len([pred for idx, pred in enumerate(predictions) if idx not in matched_predictions]) # Assuming the entire image area minus GT areas represents true negatives. total_image_area = ... # Define based on your dataset/image size gt_areas_sum = sum(compute_area(bbox) for bbox in ground_truths) tn = max(total_image_area - gt_areas_sum, 0) return {'TP': tp, 'FP': fp, 'FN': fn, 'TN': tn} ``` 这段代码展示了如何基于两个列表——`ground_truths` 和 `predictions` 来构建混淆矩阵的各项统计数据。注意这里的实现假设图像中除了已知的目标外其他部分均为负样本,因此可以通过减去所有正样本占据的空间大小估算总的真阴数量[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Quentin_HIT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值