YOLOv7混淆矩阵中Background FN与FP含义及解读问询
YOLOv7垃圾检测任务混淆矩阵中Background类的含义与指标计算
问题背景
使用YOLOv7开展垃圾检测任务,数据集仅包含垃圾和非垃圾两类目标,但模型自动生成的混淆矩阵中额外出现了Background FN行与Background FP列。原本以为二类任务的混淆矩阵仅含两行两列及常规TP、TN、FP、FN值,不清楚这两个额外项的来源,现在需要通过TP、TN等数值计算模型的准确率与误报率,却因无法理解Background类而受阻。
模型生成的混淆矩阵
| 非垃圾 | 垃圾 | Background FP | |
|---|---|---|---|
| 非垃圾 | 0.77 | 0.02 | 0.27 |
| 垃圾 | 0.02 | 0.97 | 0.73 |
| Background FN | 0.21 | 0.02 |
核心问题解答
1. Background类的来源
YOLOv7是目标检测模型,和纯图像分类模型逻辑不同:目标检测不仅要判断目标类别,还要区分图像中「有目标的区域」和「无目标的背景区域」,这两个额外项就是由此产生的:
- Background FP列:模型错误地将图像中的背景区域识别为某类目标(非垃圾/垃圾),属于「背景误检为目标」的情况。比如空白区域被模型判定为垃圾,就会计入对应列。
- Background FN行:图像中实际存在的目标(非垃圾/垃圾),被模型判定为背景区域,属于「目标漏检为背景」的情况。比如图像里的垃圾未被模型识别出来,就会计入对应行。
2. 准确率与误报率的计算方法
如果按照常规二类图像分类的逻辑计算指标,只需提取混淆矩阵的前两行两列(即「非垃圾」和「垃圾」的交叉项):
- TP(真阳性):实际为垃圾,模型识别为垃圾 → 0.97
- TN(真阴性):实际为非垃圾,模型识别为非垃圾 → 0.77
- FP(假阳性):实际为非垃圾,模型识别为垃圾 → 0.02
- FN(假阴性):实际为垃圾,模型识别为非垃圾 → 0.02
基于这些数值计算:
- 准确率(Accuracy):
(TP + TN) / (TP + TN + FP + FN)=(0.97 + 0.77) / (0.97 + 0.77 + 0.02 + 0.02)≈ 0.973 - 误报率(False Positive Rate):
FP / (FP + TN)=0.02 / (0.02 + 0.77)≈ 0.025
如果要评估目标检测任务的完整性能,还需结合Background项:
- 总漏检率:包含「目标被误判为其他类别」和「目标被当成背景」的情况,即
FN(类别误判) + Background FN对应值 - 总误检率:包含「其他类别被误判为目标」和「背景被误判为目标」的情况,即
FP(类别误判) + Background FP对应值
内容的提问来源于stack exchange,提问作者RygelKenoid
相关产品推荐
相关产品推荐

