图像分割——Dice系数

图像分割——Dice系数

在预测脑肿瘤或者皮肤病变的mask模型中,我们一般将mask图像中的像素分类成1或0,即如果像素中有mask,我们声明为1,如果像素中没有mask,我们声明为0,这种对图像进行逐像素二进制分类称为“语义分割”。
如果我们试图去识别图像中的许多对象,则称为“实例分割”,实例分割是一种多分类分割。例如,在自动驾驶汽车视野中,物体被分类为汽车、道路、树木、房屋、天空、行人等。
在语义(二进制)分割和实例(多类)分割中,我们需要一个损失函数来计算梯度。

Dice定义

Dice系数是一种集合相似度度量函数,通常用于计算两个样本的相似度,取值为[0,1]。
在这里插入图片描述

在上图中,ground truth为金标准,即理论分割结果的图像,一般是通过专家手工勾画出来得到的理论值; predicted为预测的分割结果图像。

Dice系数的python实现

下列给出求一套数据的dice和批量求dice的python代码

import shutil
import SimpleITK as sitk
from medpy.metric import dc
import numpy as np
from scipy.ndimage import label

def calculate_dice(seg_path,pred_path):
    seg = sitk.ReadImage(seg_path)
    seg_arr = sitk.GetArrayFromImage(seg)
    pred = sitk.ReadImage(pred_path)
    pred_arr = sitk.GetArrayFromImage(pred)
    label = [1]   #这里求得是label=1的dice,需要根据实际情况修改
    dice = []
    for i in range(len(label)):
        intersection = np.sum((seg_arr == label[i])*(pred_arr == label[i]))
        union = np.sum(pred_arr == label[i])+np.sum(seg_arr == label[i])
        dice.append(2*intersection/union)
    return np.mean(dice)

#求一套数据的dice
seg_path = 'E:/segmentation.nii.gz'   #ground truth的路径
pred_path = 'C:/case30.nii.gz'   #预测图像的路径
print(calculate_dice(seg_path,pred_path))

#批量求dice,先把路径保存为txt格式,再一个一个读取
seg_path = 'E:/label_list.txt'  #保存ground truth的文本路径
pred_path = 'E:/pred_list_c++.txt'  #保存预测图像的文本路径
dice = []
seg_opens = open(seg_path)
pred_opens = open(pred_path)
seg_files = seg_opens.readlines()
pred_files = pred_opens.readlines()
for i in range(len(seg_files)):
    seg_files[i] = seg_files[i].strip('\n')
    pred_files[i] = pred_files[i].strip('\n')
    dice.append(calculate_dice(seg_files[i],pred_files[i]))
    print(calculate_dice(seg_files[i], pred_files[i]))
print(np.mean(dice))

  • 9
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值