语义分割评价指标

MIoU(IntersectionoverUnion)是评估图像分割和多标签分类任务中模型性能的指标。它通过计算预测与实际标签的交集和并集来度量预测的准确性。文章介绍了如何从二分类的混淆矩阵扩展到多标签情况,并提供了计算MIoU和正确率的代码示例。
摘要由CSDN通过智能技术生成

miou

参考结合着看很好

https://www.cnblogs.com/Fish0403/p/17117778.html

只有二标签时

positive为我预测为真,negative为我预测为假,true和false表示我预测的对不对,我预测为真(positive)但他是假(negative),我预测地不对,那就是(FP)

多标签

iou又叫交并比,交intersection,并union

就是交集/并集

示例 猫狗猪三分类评价指标计算

当分类问题是二分问题时,混淆矩阵可以用上面的方法计算。当分类的结果多于两种的时候,混淆矩阵同时适用。以下面的混淆矩阵为例,我们的模型目的是为了预测样本是什么动物,左边是结果。当分析每个类别时,可以将多分类问题看作是每个类别的二分问题

比如对于猫来说,我预测他不为猫,而且他真的不是猫,这部分我们不管,我们要注意的是我们预测为猫但他不是猫(FP),我们预测不是猫但他真的是猫(FN),以及交集我们预测为猫,他也确实为猫(TP)。

miou具体计算过程

首先求交集和并集

def intersectionAndUnionGPU(output, target, K, ignore_index=255):
    # 'K' classes, output and target sizes are N or N * L or N * H * W, each value in range 0 to K - 1.
    """
    取交集和并集,为后面计算miou和正确率做铺垫
    根据预测标签和真实标签计算出有多少预测对了,以及相应的每一类的预测统计,即每一个标签有多少个点
    output:预测标签
    target:本来的标签
    return 统计数据 area_intersection 预测正确的每一类有多少个 (k,)
    area_union area_output + area_target - area_intersection(k,)
    area_target 真实标签每一类有多少个(k,)
    """
    assert (output.dim() in [1, 2, 3])
    assert output.shape == target.shape
    output = output.view(-1)#转成1维,其实一直都是1维
    target = target.view(-1)
    output[target == ignore_index] = ignore_index #如果本身标签为255,则直接将预测标签置为255
    intersection = output[output == target] #选出预测正确的的标签
    area_intersection = torch.histc(intersection, bins=K, min=0, max=K-1) #预测正确的每一类有多少个
    area_output = torch.histc(output, bins=K, min=0, max=K-1)#预测标签每一类有多少个
    area_target = torch.histc(target, bins=K, min=0, max=K-1)#真实标签每一类有多少个
    area_union = area_output + area_target - area_intersection
    return area_intersection, area_union, area_target

intersection = output[output == target]

求交集,就是预测和真实结果一样的位置

area_intersection统计每一类交集TP的数量 tp

area_output 预测标签每一类有多少个 即 tp+fp

area_target 真实标签每一类有多少个 即tp+fn

area_union每一类的并集也就是tp+fp+fn

area_union = area_output + area_target - area_intersection

=tp+fp+fn

然后

miou

np.mean(intersection / (union + 1e-10))

可以看出miou并非是按类中的点进行加权的,而是直接进行平均

正确率

比如猫

就是我预测是猫且对了的个数(tp)/全部猫的总数(这里指真实标签)

也就是target或tp+np

正确率 交集(tp)/target或者是 交集(tp)/tp+np

acc=intersection / (target + 1e-10)

macc=np.mean(intersection / (target + 1e-10))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值