实例分割计算指标TP,FP,FN,F1(附代码)

这篇具有很好参考价值的文章主要介绍了实例分割计算指标TP,FP,FN,F1(附代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

源代码:

返回值

 我使用的groundTruth图像:

 预测图像


 

 基于IOU的F1是评价模型实例分割能力的一种评价指标,该指标在2018年的Urban 3D Challenge和2020年的阿里天池建筑智能普查竞赛中作为评价标准。
计算公式如下:

实例分割计算指标TP,FP,FN,F1(附代码)

其余计算指标:

1、IoU:  交并比,两个区域重叠的部分除以两个区域的集合部分, IOU算出的值score > 0.5 就可以被认为一个不错的结果了

2、mIoU(mean IoU):均交并比,识别或者分割图像一般都有好几个类别,把每个分类得出的分数进行平均一下就可以得到mean IoU,也就是mIoU。

3、Precision:精确率,混淆矩阵计算得出,P = TP/(TP+FP)

4、Recall:召回率,R = TP/(TP+FN)

5、Accuracy:准确率,accuracy = (TP+TN)/(TP+TN+FP+FN)

     即PA(Pixel Accuracy,像素精度?标记正确的像素占总像素的比例):表示检测物体的准确度,重点判断标准为是否检测到了物体
IoU只是用于评价一幅图的标准,如果我们要评价一套算法,并不能只从一张图片的标准中得出结论。一般对于一个数据集、或者一个模型来说。评价的标准通常来说遍历所有图像中各种类型、各种大小(size)还有标准中设定阈值.论文中得出的结论数据,就是从这些规则中得出的。

源代码:


from skimage import measure
from scipy import ndimage
import cv2 as cv
import numpy as np

def get_buildings(mask, pixel_threshold):
    gt_labeled_array, gt_num = ndimage.label(mask)
    unique, counts = np.unique(gt_labeled_array, return_counts=True)
    for (k, v) in dict(zip(unique, counts)).items():
        if v < pixel_threshold:
            mask[gt_labeled_array == k] = 0
    return measure.label(mask, return_num=True)


def calculate_f1_buildings_score(y_pred_path, iou_threshold=0.40, component_size_threshold=0):
    #iou_threshold=0.40表示重合面积大于40%,判断为TP
    tp = 0
    fp = 0
    fn = 0


    # for m in tqdm(range(len(y_pred_list))):
    processed_gt = set()
    matched = set()

    #mask_img是预测图像
    # mask_img = cv.imread(r".\predictLabel\Halo-water.jpg", 0)
    # mask_img = cv.imread(r".\predictLabel\Halo_image.png", 0)
    mask_img = cv.imread(r".\predictLabel\RGB_image.png", 0)
    #gt_mask_img 是groundTruth图像
    gt_mask_img = cv.imread(r".\groundtruth\GT_image.png", 0)

    predicted_labels, predicted_count = get_buildings(mask_img, component_size_threshold)
    gt_labels, gt_count = get_buildings(gt_mask_img, component_size_threshold)

    gt_buildings = [rp.coords for rp in measure.regionprops(gt_labels)]
    pred_buildings = [rp.coords for rp in measure.regionprops(predicted_labels)]
    gt_buildings = [to_point_set(b) for b in gt_buildings]
    pred_buildings = [to_point_set(b) for b in pred_buildings]
    for j in range(predicted_count):
        match_found = False
        for i in range(gt_count):
            pred_ind = j + 1
            gt_ind = i + 1
            if match_found:
                break
            if gt_ind in processed_gt:
                continue
            pred_building = pred_buildings[j]
            gt_building = gt_buildings[i]
            intersection = len(pred_building.intersection(gt_building))
            union = len(pred_building) + len(gt_building) - intersection
            iou = intersection / union
            if iou > iou_threshold:
                processed_gt.add(gt_ind)
                matched.add(pred_ind)
                match_found = True
                tp += 1
        if not match_found:
            fp += 1
    fn += gt_count - len(processed_gt)
    precision = tp / (tp + fp)
    recall = tp / (tp + fn)
    if precision == 0 or recall == 0:
        return 0
    f_score = 2 * precision * recall / (precision + recall)
    return f_score , fp ,fn , tp ,precision , recall


def to_point_set(building):
    return set([(row[0], row[1]) for row in building])

#y_pred_path 没用到,随便填
y_pred_path = 'predictLabel'

f_score = calculate_f1_buildings_score(y_pred_path, iou_threshold=0.5, component_size_threshold=1)

print(f_score)

返回值

实例分割计算指标TP,FP,FN,F1(附代码)

 我使用的groundTruth图像:

实例分割计算指标TP,FP,FN,F1(附代码)

 预测图像

 实例分割计算指标TP,FP,FN,F1(附代码)文章来源地址https://www.toymoban.com/news/detail-466977.html

到了这里,关于实例分割计算指标TP,FP,FN,F1(附代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python计算分类问题的评价指标(准确率、精确度、召回率和F1值,Kappa指标)

    机器学习的分类问题常用评论指标有:准确率、精确度、召回率和F1值,还有kappa指标 。 每次调包去找他们的计算代码很麻烦,所以这里一次性定义一个函数,直接计算所有的评价指标。 每次输入预测值和真实值就可以得到上面的指标值,很方便。 下面是这些指标的计算公

    2024年01月21日
    浏览(53)
  • 【机器学习笔记15】多分类混淆矩阵、F1-score指标详解与代码实现(含数据)

    参考文章 4.4.2分类模型评判指标(一) - 混淆矩阵(Confusion Matrix)_进击的橘子猫的博客-CSDN博客_混淆矩阵 之前在逻辑回归的文章中简单提到过F1-score,但并没有详细对其进行说明和代码实现。这里补一下。 混淆矩阵 (又称 误差矩阵 )是评判模型结果的指标,属于模型评估的

    2023年04月17日
    浏览(45)
  • 语义分割miou指标计算详解

    MIoU 全称为 Mean Intersection over Union ,平均交并比。可作为语义分割系统性能的评价指标。 P:Prediction预测值 G:Ground Truth真实值 其中 IOU : 交并比就是该类的真实标签和预测值的交和并的比值 单类的交并比可以理解为下图: True Positive ( TP ): 把正样本成功预测为正。 True Negati

    2024年02月02日
    浏览(42)
  • Python计算语义分割模型的评价指标

    目录 一、混淆矩阵 二、分类指标 1、Accuracy(准确率) 2、Precision(查准率) 3、Recall (查全率) 4、F1-score  三、语义分割的评价指标 1、MPA(类别平均像素准确率) 2、IoU(交并比) 3、MIoU(平均交并比) 4、CPA(类别像素准确率) 5、PA(像素准确率) 四、代码实现(基于混淆矩阵)  混淆

    2024年02月04日
    浏览(49)
  • 科研作图-常用的图像分割指标 (Dice, Iou, Hausdorff) 及其计算

    本节内容主要是介绍图像分割中常用指标的定义、公式和代码。常用的指标有Dice、Jaccard、Hausdorff Distance、IOU以及科研作图-Accuracy,F1,Precision,Sensitive中已经介绍的像素准确率等指标。在每个指标介绍时,会使用编写相关代码,以及使用MedPy这个Python库进行代码的调用。 2.1 Dice

    2024年02月10日
    浏览(58)
  • 计算机视觉基础(11)——语义分割和实例分割

    在这节课,我们将学习 语义分割和实例分割 。在语义分割中,我们需要重点掌握语义分割的 概念、常用数据集、评价指标(IoU)以及经典的语义分割方法(Deeplab系列) ;在实例分割中,需要知道实力分割可以近似看为“ 目标检测+语义分割 ”,需要知道 Mask R-CNN方法的计算

    2024年01月23日
    浏览(67)
  • 前端vite+vue3——可视化页面性能耗时指标(fmp、fp)

    大家好,我是yma16,本文分享关于 前端vite+vue3——可视化页面性能耗时(fmp、fp)。 fmp的定义 FMP(First Meaningful Paint)是一种衡量网页加载性能的指标。它表示在加载过程中,浏览器首次渲染出有意义的内容所花费的时间。有意义的内容指的是用户可以看到和交互的元素,如

    2024年03月19日
    浏览(59)
  • 模型评价指标—F1值

    最近空余时间在参加数字中国创新大赛,比赛规则是根据模型的F1值对参赛者进行排名。为了更深刻地理解这个指标,我最近对它做了一些梳理,现在把它分享给更多有需要的人图片。最近在参赛时也发现了一个问题,就是算法在训练集上完全拟合(KS=1),但是到测试集上衰退

    2024年02月08日
    浏览(39)
  • 计算机视觉与深度学习-图像分割-视觉识别任务03-实例分割-【北邮鲁鹏】

    论文题目:Mask R-CNN 论文链接:论文下载 论文代码:Facebook代码链接;Tensorflow版本代码链接; Keras and TensorFlow版本代码链接;MxNet版本代码链接 参考:Mask R-CNN详解 将图像中的每个像素与其所属的目标实例进行关联,并为每个像素分配一个特定的标签,以实现像素级别的目标

    2024年02月07日
    浏览(57)
  • 【计算机视觉】CVPR 2023 上的分割论文真的是神仙打架(介绍前12篇,图像分割,全景分割,语义分割,实例分割)

    AutoFocusFormer:网格外的图像分割 论文地址: 真实世界的图像通常具有高度不平衡的内容密度。 有些区域非常均匀,例如大片蓝天,而其他区域则散布着许多小物体。 然而,卷积深度网络中常用的连续网格下采样策略平等对待所有区域。 因此,小对象在很少的空间位置表示

    2024年02月12日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包