python中dice常见问题_Dice coefficient Python与Julia实现

Hello everyone! 这篇文章将介绍Dice coefficient以及其实现

Introduction

Dice coefficient 是 Lee R. Dice 在1945年为评估生物种群提出的一种度量方法[1]。后来不同领域的学者都将其引入到自己的专业。这里,我将介绍Dice codfficient 在图像分割领域作为评价指标的理解与实现。

Segmentation

图像分割包含有语义分割、示例分割。在语义分割中,我们需要对给定的图片做如下处理:

- 标记出所有属于背景类别的点。

- 标记出属于我们关心类别的所有点。

通常的分割方法有:

- based on threshold

- region growing

- interactive segmenation

- gradient based

- classifier

- CNN (Unet)[3]

一个例子

现在我们要对下图分割出鱼和背景。

渔业专家给出的ground truth 是下图A

我们计算出的结果是下图B

我们可以看到B图与A图是有差距的,在鱼尾部的效果不好,没有分割出凸起部位。那么我们该如何评价这两者差距呢?

最初步的想法是计算准确率:

Accuracy=(TP+FN)/(TP+FN+FP+FN)

或者召回率

Recall (=Sensitivity)=TP/(TP+FN)

或者精度

Precision=TP/(TP+FP)

以及F-score (sometimes called F-factoror F1 measure)

=2* precision* recall/(precision+recall)

此时,引入一个和以上评价指标类似的 Dice coefficent

s=\frac{2|X \cap Y|}{|X|+|Y|}

我们可以借助两个圆A和B理解上面的公式。对于两个图像,如果没有重叠的部分,则Dice coefficient = 0. 也就是说,如果分割的目标真实区域和预测区域没有任何交集,则意味着在这个区域上的分割失败。但是,如果有重叠部分 A \cap B, 则说明这部分重叠区域是分割正确的。我们将这部分区域面积的2倍与两个圆和的比值设为Dice coefficient. 此时:0

This figure is copyright by ] Zou, Kelly H. et al.[2]

这里我们给出计算两个图像Dice Coefficient 的 Python代码

如果我们对几百张图片进行了分割,我们可以对每个图像计算Dice coefficient后,求平均。这里也给出计算一组图像的平均Dice coefficient代码

另外,我们也给出对应的Julia代码。

实验

在一个针对前面提到的鱼类HTS图像分割问题。我们使用Julia和Python代码分别计算,发现python的代码竟然比Julia的快。

[1] Dice, Lee R. "Measures of the amount of ecologic association between species." Ecology 26.3 (1945): 297-302.

[2] Zou, Kelly H. et al. “Statistical validation of image segmentation quality based on a spatial overlap index.” Academic radiology 11 2 (2004): 178-89 .

[3] Ronneberger, Olaf, Philipp Fischer, and Thomas Brox. "U-net: Convolutional networks for biomedical image segmentation." International Conference on Medical image computing and computer-assisted intervention. Springer, Cham, 2015.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值