yolo 评价指标计算公式
时间: 2025-01-01 18:32:47 浏览: 10
### YOLO 模型评估指标计算
#### 精度 (Precision)
精度是指在所有预测为目标的位置中,实际确实为目标的比例。其定义如下:
\[ \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} \]
其中 TP 表示真正类(True Positives),即正确识别的目标;FP 表示假正类(False Positives),即将背景误判为目标的情况。
#### 召回率 (Recall)
召回率表示的是所有真实目标中有多少比例被成功检测到。具体表达式为:
\[ \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} \]
这里 FN 是指假负类(False Negatives),也就是未能检出的真实目标数量。
#### 平均精度 (Average Precision, AP)
对于每一个类别而言,通过改变置信度阈值可以得到一系列不同的精度-召回曲线。AP 就是在这条曲线上求得的面积大小,反映了该分类器在整个操作范围内的表现情况[^1]。
```python
def compute_ap(recalls, precisions):
"""Compute the average precision from recall and precision curves."""
# Append sentinel values to beginning and end of recalls and precisions.
recalls = np.concatenate(([0.], recalls, [1.]))
precisions = np.concatenate(([0.], precisions, [0.]))
# Ensure precision is non-decreasing by taking max over subsequent elements.
for i in range(len(precisions) - 1, 0, -1):
precisions[i - 1] = np.maximum(precisions[i - 1], precisions[i])
# Calculate area under PR curve using trapezoidal rule.
indices = np.where(recalls[:-1] != recalls[1:])[0]
ap = np.sum((recalls[indices + 1] - recalls[indices]) * precisions[indices + 1])
return ap
```
#### 均值平均精度 (Mean Average Precision, mAP)
mAP 则是对各个类别的 AP 进行加权平均的结果,用于整体衡量多类别物体检测系统的性能优劣程度。当涉及到多个 IOU 阈值时,通常还会进一步计算不同 IOU 下的 mAP 来全面反映模型质量[^4]。
\[
\text{mAP}=\frac {1}{N}\sum _i^{N}\text{AP}_i
\]
这里的 N 表示总共有多少种类别参与评测,而 \( \text{AP}_i \) 即第 i 类别的 AP 数值。
阅读全文