变化检测常见的评价指标介绍和相关代码

一、基本概念

变化检测可以当成一个二分类问题,分成变化(P)的和没有变化(N)的像素点。差异图(CD)的Ground Truth中变化(T)和没有变化(F)
则通过变化检测得到的预测结果和GT的组合有四种:TP、FP、FN、TN

在这里插入图片描述

TP实际为正样本你预测为正样本,FN实际为正样本你预测为负样本,FP实际为负样本你预测为正样本,TN实际为负样本你预测为负样本。

常见的变化检测指标有:Precision、Recall、F1、IOU等

二、Precision、Recall、F1、IOU

Precision(精确率≠准确率)

精确率是针对预测结果而言,表示预测为正的样本(P)中有多少是GT的正样本(T)。易知预测为正的样本为TP+FP,GT的正样本为TP,所以Precision的表达式为

在这里插入图片描述
举个实际生活中的例子:精确率表示模型挑出来的西瓜中有多少比例是好瓜。

Recall(召回率)

召回率是对GT而言的,表示的是GT中的正例中有多少被正确预测了。易知正确预测有两种可能,一是TP、二是FN。所以Recall的表达式为

在这里插入图片描述
举个实际生活中的例子:召回率表示所有的好瓜中有多少比例是被模型挑出来的。

F1-score(综合评价指标)

综合评价指标是Precision和Recall的调和平均值。提出该指标的原因是Precision和Recall会出现矛盾的现象,导致无法判断模型好坏,故使用这两个指标的调和平均值来综合评价,其表达式为

在这里插入图片描述

IOU(交并比)

因为变化检测是拿预测出来的差异图(A)和真实的差异图(B)进行比较,所以提出IOU作为评价指标。其表达式为:

在这里插入图片描述
在这里插入图片描述

显而易见,IOU的值越高也说明A框与B框重合程度越高,代表模型预测越准确。反之,IOU越低模型性能越差。

指标介绍参考链接:https://blog.csdn.net/qq_37466121/article/details/87719044

三、相关代码

	hist = np.zeros((2, 2)) # hist为混淆矩阵
    def per_class_iu(hist):
        iu = np.diag(hist) / (hist.sum(1) + hist.sum(0) - np.diag(hist))
        return np.nanmean(iu)
    
    

    def get_F1_score(hist):
        TN, FN, FP, TP = hist.flatten()
        precision = TP / (TP + FP)
        recall = TP / (TP + FN)
        return 2 / (1 / precision + 1 / recall), precision, recall 
  
    def __fast_hist(self, label_gt, label_pred):
        """
        Collect values for Confusion Matrix
        For reference, please see: https://en.wikipedia.org/wiki/Confusion_matrix
        :param label_gt: <np.array> ground-truth
        :param label_pred: <np.array> prediction
        :return: <np.ndarray> values for confusion matrix
        """
        mask = (label_gt >= 0) & (label_gt < self.num_classes) # self.num_classes=2
        hist = np.bincount(self.num_classes * label_gt[mask].astype(int) + label_pred[mask],
                           minlength=self.num_classes**2).reshape(self.num_classes, self.num_classes)
        return hist
 

代码中的hist(混淆矩阵制作的核心思想为以下表格)表格中的数为求和
在这里插入图片描述

四、 混淆矩阵维基百科截图

在这里插入图片描述

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值