文章目录 前言 1. Dice Loss 1.1. Dice coefficient 1.2. F1 score - Dice 1.3. Dice Loss 2. Sensitivity & Specificity 2.1. Sensitivity 2.2. Specificity 3. Hausdorff distance 3.1. 概念 3.2. 单向 Hausdorff distance 3.3. 双向 Hausdorff distance 3.4. 部分 Hausdorff distance 4. Average surface distance 总结
前言
本文主要介绍几种在医学图像分割领域常用的评价标准:Dice Loss, Sensitivity & Specificity, Hausdorff distance, Average surface distance 等
1. Dice Loss
1.1. Dice coefficient
Dice 系数,是一种集合相似度度量函数,通常用于计算两个样本点的相似度(值范围为 [0,1][0, 1][0,1] ),其值越大意味着这两个样本越相似
用于分割问题,分割最好时为1,最差为0 用于解决样本不均衡的问题,但不稳定,容易出现梯度爆炸
计算公式: Dice=2∣X∩Y∣∣X∣+∣Y∣Dice = \frac{2|X \cap Y|}{|X| + |Y|}Dice=∣X∣+∣Y∣2∣X∩Y∣
参数含义:
∣X∩Y∣|X\cap Y|∣X∩Y∣ 表示 XXX 和 YYY 之间交集元素的个数 ∣X∣|X|∣X∣ 和 ∣Y∣|Y|∣Y∣ 分别表示 XXX、YYY 中元素的个数 其中,分子中的系数 2,是因为分母存在重复计算 XXX 和 YYY 之间的共同元素的原因 有时候会在分子分母中全部添加一个可选参数:Laplace smoothing 避免当 ∣X∣|X|∣X∣ 和 ∣Y∣|Y|∣Y∣ 都为 0 时,分子被 0 除的问题 减少过拟合
1.2. F1 score - Dice
Truth\Classified Positive Negative Positive True Positive False Negative Negative False Positive True Negative
Precision 表示在预测为1的样本中实际为1的概率 P=TPTP+FPP = \frac{TP}{TP + FP}P=TP+FPTP Recall 表示在实际为1的样本中预测为1的概率 R=TPTP+FNR = \frac{TP}{TP + FN}R=TP+FNTP Precision 和 Recall 往往是相互制约的 如果提高模型的 Precision ,就会降低模型的 Recall ; 提高模型的 Recall 就会降低模型的 Precision
在二分类问题中,Dice coefficient 也可以写成: Dice=2TPFP+2TP+FN=F1scoreDice = \frac{2TP}{FP + 2TP +FN} = F1scoreDice=FP+2TP+FN2TP=F1score
1.3. Dice Loss
Dice Loss 数学表达式如下: DiceLoss=1−Dice=1−2∣X∩Y∣∣X∣+∣Y∣DiceLoss = 1 - Dice = 1 - \frac{2|X \cap Y|}{|X| + |Y|}DiceLoss=1−Dice=1−∣X∣+∣Y∣2∣X∩Y∣
当 Dice Loss 用于医学图像分割问题中,参数含义:
XXX 表示真实分割图像的像素标签 YYY 表示模型预测分割图像的像素类别 ∣X∩Y∣|X \cap Y|∣X∩Y∣ 近似为预测图像的像素与真实标签图像的像素之间的点乘,并将点乘结果相加 ∣X∣|X|∣X∣ 和 ∣Y∣|Y|∣Y∣ 分别近似为它们各自对应图像中的像素相加
对于二分类问题,真实分割标签图像的像素只有 000,111 两个值,因此 ∣X∩Y∣|X \cap Y|∣X∩Y∣ 可以有效地将在预测分割图像中未在真实分割标签图像中激活的所有像素值清零,对于激活的像素,主要是惩罚低置信度的预测,置信度高的预测会得到较高的 Dice 系数,从而得到较低的 Dice Loss,即: DiceLoss=1−2∑i=1Nyiyi^∑i=1Nyi+∑i=1Nyi^DiceLoss = 1 - \frac{2\sum_{i=1}^N y_i \hat{y_i}}{\sum_{i=1}^N y_i + \sum_{i=1}^N \hat{y_i}}DiceLoss=1−∑i=1Nyi+∑i=1Nyi^2∑i=1Nyiyi^
参数含义:
yiy_iyi 表示像素 iii 的标签值 yi^\hat{y_i}yi^ 表示像素 iii 的预测值 NNN 为像素点总个数,等于单张图像的像素个数乘以 batchsize
Dice Loss 可以缓解样本中前景背景(面积)不平衡带来的消极影响,前景背景不平衡也就是说图像中大部分区域是不包含目标的,只有一小部分区域包含目标。Dice Loss 训练更关注对前景区域的挖掘,即保证有较低的 FN,但会存在损失饱和问题。因此单独使用 Dice Loss 往往并不能取得较好的结果,需要进行组合使用,比如 Dice Loss+CE Loss 或者 Dice Loss+Focal Loss 等
2. Sensitivity & Specificity
Truth\Classified Positive Negative Positive True Positive False Negative Negative False Positive True Negative
TP :P 表示你预测的 Positive,T (True) 表示你预测正确,TP 表示你把正样本预测为正样本FP :P 表示你预测的 Positive,F (False) 表示你预测错误,FP 表示你把负样本预测为正样本TN :N 表示你预测的 Negative,T (True) 表示你预测正确,TN 表示你把负样本预测为负样本FN :N 表示你预测的 Negative,F (False) 表示你预测错误,FP 表示你把正样本预测为负样本FP + TP = 所有分类为阳性的样本TP + FN = 真阳 + 假阴 = 所有真的是阳性的样本
2.1. Sensitivity
TPR :True positive rate,描述识别出的所有正例占所有正例的比例
计算公式: TPR=TPTP+FNTPR = \frac{TP}{TP+ FN}TPR=TP+FNTP
可以理解为患者实际有病且被正确诊断出来的概率,即敏感性高 = 漏诊率低(但假性多)
2.2. Specificity
FPR :False positive rate,描述将负例识别为正例的情况占所有负例的比例
FPR=FPFP+TNFPR = \frac{FP}{FP + TN}FPR=FP+TNFP
可以理解为患者时间没病而且被正确确诊的概率,即特异性低 = 误诊率高(即假阴性多)
3. Hausdorff distance
3.1. 概念
Hausdorff distance 是度量空间中两个子集之间的距离,它将度量空间的非空子集本身转化为度量空间。
非正式地说,如果一个集合的每个点都接近另一个集合的某个点,那么两个集合在 Hausdorff distance 上是接近的。Hausdorff distance 是指对手在两组中的一组中选择一个点,然后必须从那里到达另一组的最长距离。换句话说,它是从一个集合中的一个点到另一个集合中最近的点的所有距离中最大的一个。
假设有两组集合: A={a1,a2,⋯,ap},B={b1,b2,⋯,bp}A = \{ a^1, a^2, \cdots, a^p \}, \quad B = \{ b^1, b^2, \cdots, b^p \} A={a1,a2,⋯,ap},B={b1,b2,⋯,bp}
3.2. 单向 Hausdorff distance
计算公式: h(A,B)=maxa∈Aminb∈B∣∣a−b∣∣h(B,A)=maxb∈Amina∈B∣∣b−a∣∣h(A, B) = \displaystyle\max_{a \in A}\displaystyle\min_{b \in B} || a - b || \\ h(B, A) = \displaystyle\max_{b \in A}\displaystyle\min_{a \in B} || b - a ||h(A,B)=a∈Amaxb∈Bmin∣∣a−b∣∣h(B,A)=b∈Amaxa∈Bmin∣∣b−a∣∣
参数含义:
∣∣a−b∣∣|| a - b ||∣∣a−b∣∣ 表示 a 与 b 之间的欧式距离 h(A,B)h(A, B)h(A,B) 也叫前向 Hausdorff distance,h(B,A)h(B, A)h(B,A) 也叫后向 Hausdorff distance
h(A,B)h(A, B)h(A,B) 的理解:
先在集合 B 中取距离集合 A 最近的点 bjb^jbj,然后计算集合 A 中的每个点 aia^iai 与 bjb^jbj 之间的距离,并将距离进行排序,然后取距离最大的值作为 h(A,B)h(A, B)h(A,B) 的值 若 h(A,B)=dh(A, B) = dh(A,B)=d,表示 AAA 中所有点到 BBB 集合的距离不超过 ddd 需要注意的是,Hausdorff 距离是定向的(或者说不对称的),这意味着大多数情况 h(A,B)h(A, B)h(A,B) 不等于 h(B,A)h(B, A)h(B,A)
图解:
给定两个点集 AAA 和 BBB,求它们的 Hausdorff 距离 h(A,B)h(A, B)h(A,B)
计算 a1a_1a1 和 b1,b2,b3b_1, b_2, b_3b1,b2,b3 的距离 d11,d12,d13d_{11}, d_{12}, d_{13}d11,d12,d13
保留最短的距离 d11d_{11}d11
计算 a2a_2a2 和 b1,b2,b3b_1, b_2, b_3b1,b2,b3 的距离 d21,d22,d23d_{21}, d_{22}, d_{23}d21,d22,d23
保留最短的距离 d23d_{23}d23
d11d_{11}d11 和 d23d_{23}d23 中较大者即为 Hausdorff 距离 h(A,B)=d(a1,b1)h(A, B) = d(a_1, b_1)h(A,B)=d(a1,b1)
我们可以得到 AAA 中的任意点到 BBB 部分点的距离,至多为 h(A,B)h(A, B)h(A,B)
3.3. 双向 Hausdorff distance
计算公式: H(A,B)=max{h(A,B),h(B,A)}H(A, B) = max\{ h(A, B), h(B, A) \}H(A,B)=max{h(A,B),h(B,A)}
双向 Hausdorff 距离取单向 Hausdorff 距离中的最大值,度量了两个点集间的不相似程度(双向 Hausdorff 距离越小,匹配程度越高)
3.4. 部分 Hausdorff distance
但是,在图像存在噪声污染或遮挡等情况时,上述的 Hausdorff 距离很容易造成误匹配,如下图:
B 集合中距离 A 集合最近的点 bjb_jbj,A集合中距离 bjb_jbj 最远的点是 a2a_2a2,但是由于存在噪声,Hausdorff 距离并没有取 a2a_2a2 与 bjb_jbj 之间的距离,而是噪声与 bjb_jbj 之间的距离,导致错误。
部分单向 Hausdorff 距离: 计算公式: hfF(A,B)=fFthai∈Aminbj∈B∣∣ai−bj∣∣h^{f_F}(A, B) = f_F \displaystyle\th_{a^i \in A} \displaystyle\min_{b_j \in B}|| a^i - b^j ||hfF(A,B)=fFthai∈Abj∈Bmin∣∣ai−bj∣∣ hfR(B,A)=fRthbj∈Bminai∈A∣∣bj−ai∣∣h^{f_R}(B, A) = f_R \displaystyle\th_{b^j \in B} \displaystyle\min_{a_i \in A}|| b^j - a^i ||hfR(B,A)=fRthbj∈Bai∈Amin∣∣bj−ai∣∣ 参数含义: fF,fR∈[0,1]f_F, f_R \in [0, 1]fF,fR∈[0,1] 分别称为前向分数和后向分数,控制着前向距离和后向距离 ththth 表示排序 当 fF=fR=1f_F = f_R = 1fF=fR=1 时,该公式退化为原始的单向 Hausdorff 距离 部分双向 Hausdorff 距离: HfFfR(A,B)=max{hfF(A,B),hfR(B,A)}H^{f_F f_R} (A, B) = max\{ h^{f_F}(A, B), h^{f_R}(B, A) \}HfFfR(A,B)=max{hfF(A,B),hfR(B,A)}
4. Average surface distance
4.1. 概念
Mean surface distance 这个指标就是 P 中所有点的表面距离的平均,这个指标又可称为Average Symmetric Surface Distance (ASSD)。
通过对体素数据,体素点与体素点之间的距离进行编码,建立查找表,从而极大减小了运算量和算法复杂度,从而计算点与点之间的距离。这里需要注意的是,体素与体素之间的距离计算是以单位体积进行计算的
ASD 计算公式: XXX 集合中所有点到 YYY 集合表面距离的平均,点 xxx 到集合 YYY 的距离,就是点 xxx 到 YYY 最近的距离 ASD(X,Y)=∑x∈Xminy∈Yd(x,y)/∣X∣ASD(X, Y) = \displaystyle\sum_{x \in X} min_{y \in Y} d(x, y) / |X|ASD(X,Y)=x∈X∑miny∈Yd(x,y)/∣X∣ 参数含义: d(x,y)d(x, y)d(x,y) 是由两个图像体 XXX 和 YYY 之间的欧几里得距离组成的三维矩阵 ASSD 计算公式 XXX 到 YYY 的平均表面距离,和 YYY 到 XXX 的平均表面距离的平均 ASSD(X,Y)={ASD(X,Y)+ASD(Y,X)}/2ASSD(X, Y) = \{ ASD(X, Y) + ASD(Y, X) \} / 2ASSD(X,Y)={ASD(X,Y)+ASD(Y,X)}/2
4.2. 计算过程
输入 A 和 B:
类似 marching cube 等值面,建立相交点构成平面的法向量,根据法向量和 voxel spacing,获得 surface distance 的查找表(长度为 256 的 list) 判断数据类型 (bool),crop 有效区域 通过 kernel 卷积进行编码(记为 CODE) 将大于 0 的像素值均变为 1,同时要求该像素值不为 255 (borders) 距离转换,计算图像中非零点到最近背景点(即 0) 的距离,构造距离图 以 CODE 为输入,0~255 对应 index 的 element,和查找表进行映射,取面积距离值,构成面积距离图 (surface map) 以 A 的 borders 大于 0 的像素作为索引(相当于选点的过程),获得 B 的 distance 的映射结果,即 A 集合中的体素与 B 中 border 的距离图(记为 (distances_ map, 1 dimension)) 以 A 的 borders 大于 0 的像素作为索引,获得 A 的 surface_ map 的映射结果(记为 (surfel map, 1 dimension)) 求均值:(distances map * srufel map) / sum(surfel map),即得到了 ASD 可以看到这里的边界表面面积距离图起到了权重的作用,能够有效平滑尖锐区域带来的误差
总结
主要总结了有关医学图像分割领域几种常用的模型评价标准,会根据在后续论文中遇到的指标进行补充和修改