聊聊图像分割的DICE和IOU指标

这篇具有很好参考价值的文章主要介绍了聊聊图像分割的DICE和IOU指标。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. 介绍

2. dice 和 iou 的联系

3. 代码实现

3.1 dice

3.2 iou

3.3 test

3.4 dice 和 iou 的关系曲线

4. 代码


1. 介绍

dice 和 iou 都是衡量两个集合之间相似性的度量

dice计算公式:

聊聊图像分割的DICE和IOU指标

iou计算公式:

聊聊图像分割的DICE和IOU指标

iou的集合理解:

聊聊图像分割的DICE和IOU指标

 文章来源地址https://www.toymoban.com/news/detail-446062.html

iou 其实就是两个区域的 overlap 部分和 union 部分的比值,也就是两个集合的交集 / 并集

dice 的分母不是并集,因为dice的分母是两个区域的和,A+B = A + B - A∩B,所以dice的分母其实是少减去了一个 A∩B,所以就让分子的 A∩B(交集) 扩大2倍

2. dice 和 iou 的联系

如果将两个集合间的关系划分的更细一点,即这种形式:

聊聊图像分割的DICE和IOU指标

那么 A∩B = TP , A∪B = FN + TP + FP ,A+B = FN + TP +TP + FP 

dice : 

聊聊图像分割的DICE和IOU指标

 

iou : 

聊聊图像分割的DICE和IOU指标

 

那么根据变形,可以得出:

聊聊图像分割的DICE和IOU指标

 

3. 代码实现

|A ∩ B| = A * B 的 和 = 两个区域乘积的和

|A| + |B|  = A + B 的和 = 两个区域相加的总和

|A∪B| = |A| + |B| - |A ∩ B| = 两个区域相交的总和 - 两个区域相乘的和

3.1 dice

dice 的实现

# Dice
def Dice(pred,true):
    intersection = pred * true          # 计算交集  pred ∩ true
    temp = pred + true                  # pred + true
    smooth = 1e-8                       # 防止分母为 0
    dice_score = 2*intersection.sum() / (temp.sum() + smooth)
    return dice_score

intersection 为两个区域的交集,即两个区域的乘积

temp 为两个区域的和,(注:这里不是并集,因为没有减去相交的部分)

3.2 iou

iou 的实现

# Iou
def Iou(pred,true):
    intersection = pred * true          # 计算交集  pred ∩ true
    temp = pred + true                  # pred + true
    union = temp - intersection         # 计算并集:A ∪ B = A + B - A ∩ B
    smooth = 1e-8                       # 防止分母为 0
    iou_score = intersection.sum() / (union.sum() + smooth)
    return iou_score

intersection 为两个区域的交集,即两个区域的乘积

temp 为两个区域的和,(注:这里不是并集,因为没有减去相交的部分)

union 为两个区域的并集

3.3 test

预测:

# prediction
predict = torch.tensor([0.01,0.03,0.02,0.02,0.05,0.12,0.09,0.07,0.89,0.85,0.88,0.91,0.99,0.97,0.95,0.97]).reshape(1,1,4,4)
'''
tensor([[[[0.0100, 0.0300, 0.0200, 0.0200],
          [0.0500, 0.1200, 0.0900, 0.0700],
          [0.8900, 0.8500, 0.8800, 0.9100],
          [0.9900, 0.9700, 0.9500, 0.9700]]]])
'''

label:

# label
label = torch.tensor([0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]).reshape(1,1,4,4)
'''
tensor([[[[0, 0, 0, 0],
          [0, 0, 0, 0],
          [1, 1, 1, 1],
          [1, 1, 1, 1]]]])
'''

计算结果:

聊聊图像分割的DICE和IOU指标

 

公式可知,dice和iou的关系为:

聊聊图像分割的DICE和IOU指标

验证可知:

聊聊图像分割的DICE和IOU指标

注:有些细微的差异是smooth所导致

3.4 dice 和 iou 的关系曲线

有公式可知,dice 和 iou 的关系公式如下:

聊聊图像分割的DICE和IOU指标

关系曲线如图:

聊聊图像分割的DICE和IOU指标

 

4. 代码

import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'

import torch
import numpy as np
import matplotlib.pyplot as plt

# prediction
predict = torch.tensor([0.01,0.03,0.02,0.02,0.05,0.12,0.09,0.07,0.89,0.85,0.88,0.91,0.99,0.97,0.95,0.97]).reshape(1,1,4,4)
'''
tensor([[[[0.0100, 0.0300, 0.0200, 0.0200],
          [0.0500, 0.1200, 0.0900, 0.0700],
          [0.8900, 0.8500, 0.8800, 0.9100],
          [0.9900, 0.9700, 0.9500, 0.9700]]]])
'''

# label
label = torch.tensor([0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1]).reshape(1,1,4,4)
'''
tensor([[[[0, 0, 0, 0],
          [0, 0, 0, 0],
          [1, 1, 1, 1],
          [1, 1, 1, 1]]]])
'''


# Dice
def Dice(pred,true):
    intersection = pred * true          # 计算交集  pred ∩ true
    temp = pred + true                  # pred + true
    smooth = 1e-8                       # 防止分母为 0
    dice_score = 2*intersection.sum() / (temp.sum() + smooth)
    return dice_score


# Iou
def Iou(pred,true):
    intersection = pred * true          # 计算交集  pred ∩ true
    temp = pred + true                  # pred + true
    union = temp - intersection         # 计算并集:A ∪ B = A + B - A ∩ B
    smooth = 1e-8                       # 防止分母为 0
    iou_score = intersection.sum() / (union.sum() + smooth)
    return iou_score


# dice 和 iou 的换算
def dice_and_iou(x):
    y = x / (2 - x)
    return y


dice = np.arange(0,1,0.001)
iou = dice_and_iou(dice)

plt.plot(dice,iou)
plt.xlabel('dice')
plt.ylabel('iou')
plt.show()

到了这里,关于聊聊图像分割的DICE和IOU指标的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 医学图像分割常用的评价指标

        在医学图像分割的论文中,常常看到Dice、VOE、RVD、MSD等指标,但是具体这些指标是什么意思呢,我们进行相应的简单说明。 V s e g text V_{s e g} V s e g ​ :代表预测的分割结果 V g t text V_{g t} V g t ​ :代表ground truth的分割结果     Dice 系数是一种评估相似度的函

    2024年02月08日
    浏览(33)
  • 目标检测-计算IOU,mAP指标

    IoU,全称Intersection over Union,可翻译为交并比,是两个框交集与并集的比值。计算IoU的公式如下图,可以看到IoU是一个比值,即交并比。 在分子中,我们计算预测框和ground-truth之间的重叠区域;分母是并集区域,是预测框和ground-truth所包含的总区域。重叠区域和并集区域的比

    2024年02月12日
    浏览(34)
  • 图像分割简单介绍,并给出opencv图像分割的示例代码

    图像分割是计算机视觉中的一项重要任务,其目标是将图像中的对象与背景进行分离,或将图像分割成不同的区域。本教程将介绍图像分割的基本概念和方法,以及如何在实践中应用它们。 什么是图像分割? 图像分割方法 实践:使用Python和OpenCV进行图像分割 总结及拓展阅读

    2024年02月09日
    浏览(46)
  • YOLOv8性能评估指标->mAP、Precision、Recall、FPS、IoU

    开始讲解之前推荐一下我的专栏,本专栏的内容支持(分类、检测、分割、追踪、关键点检测),专栏目前为限时折扣, 欢迎大家订阅本专栏,本专栏每周更新3-5篇最新机制,更有包含我所有改进的文件和交流群提供给大家。   专栏目录: YOLOv8改进有效系列目录 | 包含卷积、主

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

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

    2024年02月12日
    浏览(49)
  • YOLO 模型的评估指标——IOU、Precision、Recall、F1-score、mAP

    YOLO是最先进的目标检测模型之一。目标检测问题相比分类问题要更加复杂,因为目标检测不仅要把类别预测正确,还要预测出这个类别具体在哪个位置。 我将目标识别的评估指标总结为两部分,一部分为预测框的预测指标,另一部分为分类预测指标。 预测框的准确率用IOU来

    2024年02月04日
    浏览(52)
  • 【YOLOv8改进】Shape-IoU:考虑边框形状与尺度的指标(论文笔记+引入代码)

    ​ 作为检测器定位分支的重要组成,边框回归损失在目标检测任务中发挥巨大作用。现有的边框回归方法,通常考虑了GT框与预测框之间的几何关系,通过使用边框间的相对位置与相对形状等计算损失,而忽略了边框其自身的形状与尺度等固有属性对边框回归的影响。为了弥

    2024年02月20日
    浏览(51)
  • 文本-图像生成(Text-to-Image Generation)的评价指标介绍——CLIPScore、TISE

    论文标题:CLIPScore: A Reference-free Evaluation Metric for Image Captioning 这一篇是针对Image Caption领域的评价指标,但是有些基于条件的Diffusion模型也使用了这个评价指标来衡量文本和生成图像的匹配程度。 本文提出的CLIPScore(下文简称CLIPS)是不需要推理的评估指标,之前常见的基于

    2023年04月08日
    浏览(43)
  • 详细介绍如何使用HuggingFace和PyTorch进行医学图像分割-附源码

      医学图像分割是一种创新过程,使外科医生能够拥有虚拟的“X 射线视觉”。它是医疗保健领域非常有价值的工具,可提供非侵入性诊断和深入分析。考虑到这一点,在这篇文章中,我们将探索 威斯康辛大学麦迪逊分校胃肠道图像分割 Kaggle 挑战数据集。作为该项目的一部

    2024年02月15日
    浏览(35)
  • 【最新最近】详细介绍图像修复评价指标MaPSNR、DISTS、FQeIQA、L0SSIM、LPIPSvgg、FID

    目录 MaPSNR DISTS FQeIQA L0SSIM LPIPSvgg FID MaPSNR(Multi-scale Peak Signal-to-Noise Ratio)是一种多尺度峰值信噪比指标。它是PSNR (Peak Signal-to-Noise Ratio) 的一种变体。MaPSNR是Mean-adjusted Peak Signal-to-Noise Ratio的缩写,即平均调整峰值信噪比。 在传统的PSNR指标中,只考虑了图像的全局信息,而没

    2024年02月11日
    浏览(83)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包