📖 快速查阅表
核心指标速查
| 指标 | 符号 | 范围 | 越大越好 | 含义 |
|---|---|---|---|---|
| mAP50 | mAP@0.5 | 0-1 | ✅ | IoU≥0.5时的平均精度 |
| mAP50-95 | mAP@0.5:0.95 | 0-1 | ✅ | IoU从0.5到0.95的平均精度 |
| Precision | P | 0-1 | ✅ | 检测正确率 |
| Recall | R | 0-1 | ✅ | 检测完整率 |
| IoU | IoU | 0-1 | ✅ | 边界框重叠度 |
| Box Loss | L_box | 0-∞ | ❌ | 边界框定位损失 |
| Cls Loss | L_cls | 0-∞ | ❌ | 分类损失 |
| DFL Loss | L_dfl | 0-∞ | ❌ | 分布焦点损失 |
🎯 详细指标说明
1. mAP (Mean Average Precision) - 平均精度
┌─────────────────────────────────────┐
│ 什么是mAP? │
├─────────────────────────────────────┤
│ • 目标检测最重要的指标 │
│ • 综合考虑精度和召回率 │
│ • 值越大越好 (0-1, 0%-100%) │
│ • 是模型性能的总体评分 │
└─────────────────────────────────────┘
mAP50 vs mAP50-95:
mAP50 (宽松标准):
• IoU阈值 = 0.5 (50%重叠就算正确)
• 更容易达到高分
• 实际应用中常用
mAP50-95 (严格标准):
• IoU阈值从0.5到0.95逐步提高
• 更严格的评估
• 更能反映真实性能
• 通常比mAP50低30-40%
性能等级:
mAP50:
< 0.5 : ❌ 很差
0.5-0.6: ⚠️ 一般
0.6-0.7: 👍 还可以
0.7-0.8: ✅ 良好
> 0.8 : 🌟 优秀
mAP50-95:
< 0.3 : ❌ 很差
0.3-0.4: ⚠️ 一般
0.4-0.5: 👍 还可以
0.5-0.6: ✅ 良好
> 0.6 : 🌟 优秀
2. Precision (精度) - 检测正确率
┌─────────────────────────────────────┐
│ 公式: P = TP / (TP + FP) │
├─────────────────────────────────────┤
│ TP = 真正例 (正确检测) │
│ FP = 假正例 (错误检测) │
└─────────────────────────────────────┘
例子:
模型检测出100个物体
其中85个正确,15个错误
精度 = 85 / (85 + 15) = 0.85 (85%)
含义:
• 精度高 → 误报少 (假正例少)
• 精度低 → 误报多 (把不是的东西检测出来)
• 越高越好 ✅
应用场景:
• 需要减少误报: 医疗诊断、安全检查
• 宁可漏检也不要误报
3. Recall (召回率) - 检测完整率
┌─────────────────────────────────────┐
│ 公式: R = TP / (TP + FN) │
├─────────────────────────────────────┤
│ TP = 真正例 (正确检测) │
│ FN = 假负例 (漏检) │
└─────────────────────────────────────┘
例子:
图片中实际有100个物体
模型检测出76个
召回率 = 76 / (76 + 24) = 0.76 (76%)
含义:
• 召回率高 → 漏检少 (没有遗漏物体)
• 召回率低 → 漏检多 (很多物体没检测到)
• 越高越好 ✅
应用场景:
• 需要检测所有物体: 安全监控、医疗筛查
• 宁可误报也不要漏检
4. IoU (Intersection over Union) - 边界框重叠度
┌─────────────────────────────────────┐
│ 公式: IoU = 交集面积 / 并集面积 │
├─────────────────────────────────────┤
│ 交集 = 预测框和真实框重叠的部分 │
│ 并集 = 预测框和真实框的总面积 │
└─────────────────────────────────────┘
可视化:
IoU = 0.5 (50%重叠)
┌─────────┐
│ 真实框 │
│ ┌──────┼───┐
│ │ 预测 │ │
│ └──────┼───┘
└─────────┘
IoU = 0.9 (90%重叠)
┌─────────┐
│ 真实框 │
│ ┌─────┐ │
│ │预测 │ │
│ └─────┘ │
└─────────┘
性能等级:
IoU < 0.5 : ❌ 很差 (边界框完全错误)
IoU 0.5-0.6: ⚠️ 一般 (位置有偏差)
IoU 0.6-0.7: 👍 还可以 (位置基本正确)
IoU 0.7-0.8: ✅ 良好 (位置很准确)
IoU > 0.8 : 🌟 优秀 (位置非常精确)
mAP50 = IoU阈值为0.5时的mAP
mAP50-95 = IoU从0.5到0.95的平均mAP
5. Loss Functions (损失函数)
┌─────────────────────────────────────┐
│ 损失函数 = 模型预测与实际的差距 │
│ 越小越好 ❌ (不是越大越好) │
└─────────────────────────────────────┘
Box Loss (边界框损失):
• 衡量边界框定位的准确性
• 计算预测框和真实框的差距
• 影响: 物体位置是否准确
• 越小越好
Cls Loss (分类损失):
• 衡量物体分类的准确性
• 计算预测类别和真实类别的差距
• 影响: 物体识别是否正确
• 越小越好
DFL Loss (分布焦点损失):
• 衡量边界框坐标分布的准确性
• YOLO11特有的损失函数
• 改进了边界框定位精度
• 越小越好
总损失 = Box Loss + Cls Loss + DFL Loss
性能等级:
Loss < 0.01 : 🌟 优秀 (模型学得很好)
Loss 0.01-0.05: ✅ 良好
Loss 0.05-0.1 : 👍 还可以
Loss 0.1-0.2 : ⚠️ 一般
Loss > 0.2 : ❌ 很差
🔄 Precision vs Recall 权衡
┌──────────────────────────────────────┐
│ 精度(P)和召回率(R)的权衡关系 │
└──────────────────────────────────────┘
四象限分析:
精度高 精度低
召回高 ✅✅ ✅⚠️
完美 漏检多
(理想) (不理想)
召回低 ⚠️✅ ❌❌
误报多 都不行
(不理想) (最差)
现实情况:
• 精度和召回通常是反向关系
• 提高精度会降低召回
• 提高召回会降低精度
• 需要找到平衡点
F1-Score (平衡指标):
F1 = 2 × (P × R) / (P + R)
• 综合考虑精度和召回
• 范围: 0-1
• 越高越好
应用场景选择:
需要高精度 (宁可漏检):
• 医疗诊断 (误诊很严重)
• 安全检查 (误报很麻烦)
• 金融审核 (误判很危险)
需要高召回 (宁可误报):
• 安全监控 (不能漏检)
• 医疗筛查 (初步筛查)
• 物体追踪 (不能丢失)
需要平衡 (都很重要):
• 通用目标检测
• 自动驾驶
• 工业检测
📊 数据集相关指标
┌──────────────────────────────────────┐
│ 训练/验证/测试集的作用 │
└──────────────────────────────────────┘
训练集 (Train Set) - 70%:
• 用于训练模型
• 模型从中学习特征
• 不用于评估
验证集 (Validation Set) - 15%:
• 用于调整超参数
• 在训练过程中评估
• 选择最佳模型
测试集 (Test Set) - 15%:
• 用于最终评估
• 模型从未见过的数据
• 反映真实性能
性能对比:
训练集性能 > 验证集性能 > 测试集性能
(通常这个顺序)
异常情况:
测试集 >> 验证集: ⚠️ 数据分布不一致
验证集 >> 测试集: ⚠️ 验证集太简单
训练集 << 验证集: ⚠️ 模型欠拟合
🎓 类别级别指标
┌──────────────────────────────────────┐
│ 每个类别的单独性能评估 │
└──────────────────────────────────────┘
每个类别都有:
• mAP50 / mAP50-95
• Precision (精度)
• Recall (召回率)
• Instances (样本数)
类别性能差异原因:
1. 样本数量不同:
样本多 → 性能通常更好
样本少 → 性能通常较差
2. 物体大小不同:
大物体 → 容易检测
小物体 → 难以检测
3. 物体特征不同:
特征明显 → 容易识别
特征模糊 → 难以识别
4. 类别相似度:
相似类别 → 容易混淆
差异大的类别 → 容易区分
改进策略:
• 性能差的类别增加数据
• 小物体类别进行特殊处理
• 相似类别增加区分特征
📈 性能评估标准
┌──────────────────────────────────────┐
│ 不同应用场景的性能要求 │
└──────────────────────────────────────┘
通用目标检测:
mAP50 ≥ 0.7 : 可用
mAP50 ≥ 0.8 : 良好
mAP50 ≥ 0.9 : 优秀
严格应用 (医疗、安全):
mAP50-95 ≥ 0.6 : 可用
mAP50-95 ≥ 0.7 : 良好
mAP50-95 ≥ 0.8 : 优秀
实时应用 (监控、自动驾驶):
速度 < 50ms : 可用
速度 < 30ms : 良好
速度 < 10ms : 优秀
平衡性能:
Precision ≥ 0.8 且 Recall ≥ 0.8 : 良好
F1-Score ≥ 0.8 : 良好
🔍 常见问题解答
Q1: 为什么我的mAP50很高但mAP50-95很低?
A: 边界框定位不够精确
解决: 增加训练轮数,调整学习率,使用更大模型
Q2: 为什么精度高但召回率低?
A: 模型太保守,漏检太多
解决: 降低检测阈值,增加负样本
Q3: 为什么召回率高但精度低?
A: 模型太激进,误报太多
解决: 提高检测阈值,增加正样本
Q4: 为什么验证集和测试集性能差异大?
A: 数据分布不一致或数据有问题
解决: 检查数据质量,重新划分数据集
Q5: 为什么小物体性能差?
A: 小物体信息少,难以检测
解决: 增加小物体数据,使用更大模型
Q6: 为什么某个类别性能特别差?
A: 样本不足或类别特征不明显
解决: 增加该类别数据,改进标注质量
💾 快速记忆卡片
┌─────────────────────────────────────┐
│ 记忆技巧 │
└─────────────────────────────────────┘
1. 所有指标都是越大越好吗?
❌ 不是! 损失函数(Loss)是越小越好
2. mAP50 vs mAP50-95?
mAP50 = 宽松标准 (容易达到高分)
mAP50-95 = 严格标准 (更能反映真实性能)
3. Precision vs Recall?
Precision = 不要误报 (精确性)
Recall = 不要漏检 (完整性)
4. 三个数据集的用途?
Train = 学习
Valid = 调参
Test = 评估
5. 性能好的标准?
mAP50 > 0.8 = 良好
mAP50-95 > 0.5 = 良好
Precision > 0.8 = 良好
Recall > 0.8 = 良好
6. 性能差怎么办?
• 增加数据
• 增加训练轮数
• 调整超参数
• 使用更大模型
📋 实用对照表
指标对照表
指标 | 计算方式 | 范围 | 方向 | 优先级
─────────────────────────────────────────────────────────
mAP50 | 综合精度和召回 | 0-1 | ↑ | ⭐⭐⭐⭐⭐
mAP50-95 | 严格标准的综合指标 | 0-1 | ↑ | ⭐⭐⭐⭐
Precision | TP/(TP+FP) | 0-1 | ↑ | ⭐⭐⭐⭐
Recall | TP/(TP+FN) | 0-1 | ↑ | ⭐⭐⭐⭐
IoU | 交集/并集 | 0-1 | ↑ | ⭐⭐⭐
Box Loss | 边界框差距 | 0-∞ | ↓ | ⭐⭐⭐
Cls Loss | 分类差距 | 0-∞ | ↓ | ⭐⭐⭐
DFL Loss | 分布差距 | 0-∞ | ↓ | ⭐⭐
F1-Score | 2PR/(P+R) | 0-1 | ↑ | ⭐⭐⭐
🎯 你的模型评估总结
你的模型指标:
验证集:
mAP50: 0.6127 (61%) ⚠️ 一般
mAP50-95: 0.3898 (39%) ⚠️ 一般
Precision: 0.6821 (68%) ⚠️ 一般
Recall: 0.6139 (61%) ⚠️ 一般
测试集:
mAP50: 0.8398 (84%) ✅ 良好
mAP50-95: 0.5742 (57%) ✅ 良好
Precision: 0.8579 (86%) ✅ 良好
Recall: 0.7610 (76%) ✅ 良好
关键问题:
1. 验证/测试性能差异大 (22.71%)
2. 小物体检测效果差
3. 负面类别检测不稳定
改进方向:
1. 检查验证集数据质量
2. 增加小物体训练数据
3. 调整模型参数和超参数
这就是完整的指标汇总!你可以保存这个文档作为参考。需要我补充什么吗?