Yolov5——评估指标

IOU (Intersection over Union)

IoU也称为交并比,评价边界框正确性的度量指标,表示detection box(检测框)与ground truth(真实标签)的交集和并集的比值。
在这里插入图片描述
计算公式
在这里插入图片描述

P(Precision)准确率

所有预测为正样本的结果中,预测正确的比率。
在这里插入图片描述
对于多目标检测任务,TP(true positive)表示预测出的正确的框,但问题是我们如何判断这个框就是正确的框,预测的框可以画在图片的任何位置,甚至该位置根本就没有对象。
TP(true positive):对此,Yolo是这样解决的,我们首先要通过模型预测出的框,逐个的与该图像的标注框求IoU,如果与标注框产生的最大IoU大于之前设置好的IoU阈值,并且此预测框对应的标签与通过IoU操作找到的标注框标签一致,便认为此预测框为true positive。
FP(false positive):反之,如果预测框与所有的框的IoU都没有达到阈值,则认为此预测框是false postive。
因此,FP+TP就是所有的预测框的个数

R(Recall)召回率

所有预测为正样本的结果中,真的是正样本的概率。
在这里插入图片描述
FN(false negative)如果与标注框产生的最大IoU大于之前设置好的IoU阈值,并且此预测框对应的标签与通过IoU操作找到的标注框标签 一致
因此,FN+TP就是所有的标注框

PR曲线(Precision-Recall曲线)

通过逐步调整IoU的threshold得到不同的Precision和Recall的曲线,以Recall为横坐标,Precision为纵坐标组成的曲线。图片来自周志华老师的西瓜书。
在这里插入图片描述
PR图直观地显示出学习器在样本总体上的查全率、查准率.在进行比较 时,若一个学习器的PR曲线被另一个学习器的曲线完全“包住”,则可断言 后者的性能优于前者,例如图2.3中学习器A的性能优于学习器C;如果两个 学习器的P-R曲线发生了交叉,例如图2.3中的A与B,则难以一般性地断言 两者孰优孰劣,只能在具体的查准率或查全率条件下进行比较.然而,在很多情 形下,人们往往仍希望把学习器A与B比出个高低.这时一个比较合理的判据 是比较PR曲线下面积的大小,它在一定程度上表征了学习器在查准率和查全 率上取得相对“双高”的比例.但这个值不太容易估算,因此,人们设计了一些 综合考虑查准率、查全率的性能度量 “平衡点”(Break-Event Point,简称BEP)就是这样一个度量,它是“查 准率=查全率”时的取值,例如图2.3中学习器C的BEP是0.64,而基于BEP 的比较,可认为学习器A优于B.

AP(代填坑)

### YOLOv5评估指标 YOLOv5 是一种广泛使用的对象检测框架,其性能通常通过一系列评估指标来衡量。这些指标主要包括 **Precision(精确率)**、**Recall(召回率)** 和 **mAP(Mean Average Precision 平均精度均值)**。 #### 1. Precision (精确率) Precision 表示预测为正类别的样本中有多少是真正类别。它反映了模型在分类上的准确性[^1]。对于目标检测任务而言,Precision 可以表示如下: \[ \text{Precision} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Positives}} \] 其中: - True Positives (TP):被正确识别为目标的实例数; - False Positives (FP):错误地识别为目标的背景区域数量; 在 COCO 数据集上训练和测试时,YOLOv5 提供了两种类型的 Precision 值——针对小型物体 (`metrics/precision(S)`), 中型物体 (`metrics/precision(M)`) 和大型物体 (`metrics/precision(L)`) 的分别统计结果[^3]。 #### 2. Recall (召回率) Recall 表示实际为正类别的样本中有多少比例被成功检出。它是对漏报情况的一种度量标准。公式表达如下: \[ \text{Recall} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Negatives}} \] 这里: - False Negatives (FN):未能检测到的目标实例数目; 同样,在 YOLOv5 输出的结果中也区分了不同尺寸目标对应的 Recall 数值,比如 `metrics/recall(B)` 对应基础尺度下的表现,而 `metrics/recall(M)` 则关注于中等大小的对象。 #### 3. mAP (Mean Average Precision) mAP 被认为是最具代表性的评价指标之一,尤其适用于多标签或多类别的场景下比较算法优劣。具体来说,Average Precision(AP) 需要在多个 IoU(Intersection over Union, 即交并比) 阈值条件下计算得到,并最终取平均值得到整体的表现分数[^2]。 COCO 数据集中常用的几个特定 IoU 下的 AP 分别有: - `metrics/mAP50` : 当 IoU=0.5 时候所获得的 AP; - `metrics/mAP75`: 当 IoU=0.75 时刻录下来的 AP ; - `metrics/mAP50-95`: 在 IoU=[0.5:0.05:0.95],即从 0.5 至 0.95 步长为 0.05 进行积分后的综合得分; 上述各项都可以进一步细分为基于目标规模的小(`B`),中(`M`),大(`L`)三个层次来进行单独考量. ```python from yolov5.utils.metrics import ConfusionMatrix, ap_per_class def compute_metrics(predictions, targets): iouv = torch.linspace(0.5, 0.95, 10).to(targets.device) niou = iouv.numel() stats = [] for pred in predictions: correct = process_batch(pred, targets, iouv) stats.append((correct.cpu(), pred[:, 4].cpu(), pred[:, 5].cpu(), iouv)) stats = [np.concatenate(x, axis=0) for x in zip(*stats)] if len(stats) and stats[0].any(): p, r, f1, mp, mr, map50, mean_ap = ap_per_class(*stats) return { 'metrics/precision': np.mean(p), 'metrics/recall': np.mean(r), 'metrics/mAP50': map50, 'metrics/mAP50-95': mean_ap } ``` 此代码片段展示了如何利用 YOLOv5 已有的工具函数去获取 Precision, Recall 以及各种条件下的 mAP 结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值