文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

科研作图-常用的图像分割指标 (Dice, Iou, Hausdorff) 及其计算

2023-09-06 21:33

关注

1. 简介

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

2.常用指标介绍

2.1 Dice

Dice系数是一种集合相似度度量函数,通常用来计算两个样本的相似度,它的直观图形表示如下图所示。
在这里插入图片描述

根据图像,可得出Dice的计算公式为:
在这里插入图片描述
其中A与B分表代表着预测标签和真实标签的集合,Dice的范围也在0到1。而对于分割训练中的Dice Loss常用1-Dice来表示。
常用Dice与Dice Loss代码:

def dice_coeff(pred, target):    smooth = 1e-7    num = pred.size(0)    A= pred.view(num, -1)  # Flatten    B= target.view(num, -1)  # Flatten    intersection = (A * B).sum()    return (2. * intersection + smooth) / (A.sum() + B.sum() + smooth) # smooth防止除数为0

直接调用MedPy包

from medpy.metric.binary import dcimport numpy as np# 定义预测结果和真实标记数组predict=np.random.randint(0,4,size=(2,3))ground_truth=np.random.randint(0,4,size=(2,3))# 计算Dice相似系数dice1=dc(predict,ground_truth)print("Dice相似系数为{}".format(dice1))

2.2 Jaccard(Iou)

Jaccard index,又称为交并比(Intersection over Union),是用于比较样本集的相似性与多样性的统计量。Jaccard index能够量度有限样本集合的相似度,其定义为两个集合交集大小与并集大小之间的比例,图形表示为:
在这里插入图片描述
Jaccard的计算公式如下所示:
在这里插入图片描述
这里的计算代码为:

def Iou_coeff(pred, target):    smooth = 1e-7    num = pred.size(0)    A= pred.view(num, -1)  # Flatten    B= target.view(num, -1)  # Flatten    intersection = (A * B).sum()    return (intersection + smooth) / (A.sum() + B.sum() - intersection + smooth) # smooth防止除数为0

直接调用MedPy代码为:

from medpy.metric.binary import jcimport numpy as np# 定义预测结果和真实标记数组predict=np.random.randint(0,4,size=(2,3))ground_truth=np.random.randint(0,4,size=(2,3))# 直接计算Jaccard相似系数jaccard=jc(predict,ground_truth)print("Jaccard相似系数为{}".format(jaccard))

2.3 Hausdorff Distance

表示预测分割区域边界与真实区域边界之间的最大距离,其值越小代表预测边界分割误差越小、质量越好。设 X 和 Y 是度量空间( M, d )的两个非空子集,则定义他们的Hausdorff distance为:
在这里插入图片描述
计算绿色曲线 X 和蓝色曲线 Y 之间的豪斯多夫距离的分量过程如下图所示,图像来自于维基百科。首先,对点集X中的每一个点x计算其到点集Y中的每一个点y的距离,保留最短距离,然后找出保留的最短距离中的最大距离记为Dxy。然后,对点集Y中的每一个点y计算其到点集X中的每一个点x的距离,保留最短距离,然后找出保留最短距离中的最大距离记为Dyx。最后,取Dxy和Dyx最大值作为点集X和Y之间的豪斯多夫距离。
图像来自于维基百科
95% 豪斯多夫距离(95% Hausdorff distance,HD95)
为了排除一些离群点造成的不合理距离,保持整体数值稳定性,一般选择从小到大排名前 95%的距离作为实际豪斯多夫距离,称之为 95% 豪斯多夫距离。
这里直接调用MedPy库函数进行计算HD

from medpy.metric.binary import hd,hd95# 定义预测结果和真实标记数组predict=np.random.randint(0,4,size=(30,30))ground_truth=np.random.randint(0,4,size=(30,30))# 计算豪斯多夫距离hausdorff_distance=hd(predict,ground_truth)print("豪斯多夫距离为{}".format(hausdorff_distance))# 计算95%豪斯多夫距离hausdorff_distance95=hd95(predict,ground_truth)print("95%豪斯多夫距离为{}".format(hausdorff_distance95))

3. 总结

本文总结了图像分割常用的指标Dice, Iou, Hausdorff以及指标实现的代码。

4. 参考链接

  1. https://blog.csdn.net/m0_46223009/article/details/128204724
  2. http://loli.github.io/medpy/
  3. https://en.wikipedia.org/wiki/Hausdorff_distance

来源地址:https://blog.csdn.net/kksimida/article/details/129643885

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯