计算predict.png和label.png之间的混淆矩阵,precision,recall,MIOU

本文详细介绍了混淆矩阵的构成,以及在二分类问题中如何计算召回率和精确率。同时,解释了MIOU(Mean Intersection over Union)的概念,它是多分类问题的平均IoU,用于衡量模型的性能。通过一个三分类问题的实例,展示了混淆矩阵的计算过程,并给出了MIOU的求解步骤,帮助读者深入理解这些关键指标在实际应用中的计算方法。
摘要由CSDN通过智能技术生成

1.混淆矩阵:

总共两个字母:第一个字母表示你预测的对不对,第二个字母表示你预测的是啥

第一个字母表示预测正确(True)还是错误(False),只要是预测正确就是以T开头(True),预测错误就是F开头(False)

第二个字母表示预测值是yes(Positive)还是no(Negative)

第二个字母表示预测值是Positive还是Negative

2.召回率Recall:正确的预测了正样本(TP)/正样本总数(FN+TP)=100/105

3.精确率Precision:正确的预测了正样本(TP)/预测为正样本的个数(FP+TP)=100/110

4.MIOU:

IOU:交并比,交集除以并集=TP/(TP+FP+FN)

MIOU就是多分类问题的平均IOU

MIOU=每一类的TP/(TP+FP+FN)之和求平均

下面是代码实现:

以一个三分类问题为例:(分成0,1,2三类)

(1)求混淆矩阵:

from sklearn.metrics import confusion_matrix

import cv2

label=cv2.imread("label.png")

#图片展平到一维上面
label=label.reshape(-1)

pred=cv2.imread("predict.png")
pred=pred.reshape(-1)
#告诉confusion_matrix函数label里面总共有三个像素0,91,255
out=confusion_matrix(label,pred,label())
print(out)

最后的得到一个3*3矩阵:

 应该这么理解:

 (2)算出MIOU

 对于类别0,它的混淆矩阵:

 算出类别0的IOU:TP/(TP+FP+FN)

同理可求出其他两类的IOU,平均一下就可以得到MIOU

#out是一个3*3矩阵
TP=out[0][0]
FN=out[0][1]+out[0][2]
FP=out[1][0]+out[2][0]
TN=out[1][1]+out[1][2]+out[2][1]+out[2][2]

iou_0=TP/(TP+FP+FN)
print(iou_0)
#输出比如说得到0.79014976

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值