1 Dice Score
是医学图像分割结果衡量的常用指标。代表的是ground truth的分割结果,Vpr代表的是预测的分割结果。直观上理解,如下图,代表的是两个体相交的面积占总面积的比值,完美分割该值为1。参考1; wiki
(2*预测正确的结果)/(真实结果+预测结果)
def dice_coef_theoretical(y_pred, y_true):
"""
Define the dice coefficient
Args:
y_pred: Prediction
y_true: Ground truth Label
Returns:
Dice coefficient
"""
y_true_f = tf.cast(tf.reshape(y_true, [-1]), tf.float32)
y_pred_f = tf.nn.sigmoid(y_pred)
y_pred_f = tf.cast(tf.greater(y_pred_f, 0.5), tf.float32)
y_pred_f = tf.cast(tf.reshape(y_pred_f, [-1]), tf.float32)
intersection = tf.reduce_sum(y_true_f * y_pred_f)
union = tf.reduce_sum(y_true_f) + tf.reduce_sum(y_pred_f)
dice = (2. * intersection) / (union + 0.00001)
if (tf.reduce_sum(y_pred) == 0) and (tf.reduce_sum(y_true) == 0):
dice = 1
return dice
在介绍三种方法之前,需要先说明一些符号表示的意义。
- k:类别总数,如果包括背景的话就是k+1
- Pij:真实像素类别为 i 的像素被预测为类别 j 的总数量,换句话说,就是对于类别为 i 的像素来说,被错分成类别j 的数量有多少。
- Pii :真实像素类别为 i 的像素被预测为类别 i 的总数量,换句话说,就是对于真实类别为 i 的像素来说,分对的像素总数有多少。
2 像素准确率(pixel accuracy, PA)
PA和我们常规的分类准确率计算没有区别,就是把分对的像素总量除以像素总数。
image.png
3 平均像素准确率(mean pixel accuracy, MPA)
MPA是对PA的改进,它是先对每个类计算PA,然后再对所有类的PA求平均。
image.png
4 平均IOU(Mean Intersection over Union, MIOU )
在语义分割中,MIoU才是标准的准确率度量方法。它是分别对每个类计算(真实标签和预测结果的交并比)IOU,然后再对所有类别的IOU求均值。
image.png












网友评论