语义分割经常使用的指标

语义分割中最经常使用的有3个指标。为了便于解释,首先须要介绍混淆矩阵,以下所示:函数

混淆矩阵spa

真实值blog

Positiveci

Negativeit

 

预测值io

 

Positivetable

True Positive(TP)真阳性nio

False Positive(FP)假阳性im

Negativecall

False Negative(FN)假阴性

True Negative(TN)真阴性

 

首先假定数据集中有k+1类(0...k),0一般表示背景。

使用Pii表示本来为i类同时预测为i类,即真阳性(TP)和真阴性(TN)。

Pij表示本来为i类被预测为j类,即假阳性(FP)和假阴性(FN)。

若是第i类为正类,当i!=j时,那么Pii表示TP,Pjj表示TN,Pij表示FP,Pji表示FN。

1) Pixel Accuracy,像素精度是标记正确的像素占总像素的百分比。公式以下:

2) Recall,召回率是预测值为1且真实值也为1的样本在真实值为1的全部样本中所占的比例。公式以下:

 

3) Mean IoU(mean intersection over union),均交并比在语义分割中做为标准度量一直被人使用。IoU公式以下:

 

  Mean IoU是在全部类别的IoU上取平均值。其公式以下:

在经典的论文《Fully Convolutional Networks for Semantic Segmentation》也有相关的指标定义,可是大致上与上述定义相同。

 

对一张须要预测的图来说,图中有背景(0)和2类标签(12),共计46 + 34 + 20 = 100个像素点数。以下图所示:

0 0 0 0 0 0 0 0 2 2
0 0 0 0 0 0 0 0 2 2
0 0 0 0 0 0 0 0 2 2
0 0 0 1 1 0 0 0 2 2
0 0 1 1 1 1 0 0 2 2
0 1 1 1 1 1 1 0 2 2
0 1 1 1 1 1 1 0 2 2
0 1 1 1 1 1 1 0 2 2
0 1 1 1 1 1 1 0 2 2
0 0 1 1 1 1 0 0 2 2

 

0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 2 2
0 0 0 1 1 0 0 0 2 2
1 1 1 1 1 1 0 0 2 2
0 1 1 1 1 1 0 2 2 2
0 1 1 1 1 1 0 0 2 2
0 1 1 1 1 1 0 0 2 2
1 1 1 1 1 1 0 0 0 2
1 1 1 1 1 1 0 0 0 2


如上所示,第一幅图为GT所标注出来的真实类别状况,第二幅图为预测的类别状况。

则首先计算混淆函数:

 

混淆矩阵

真实值(4六、3四、20)

类别0

类别1

类别2

预测值

类别0

40

4

6

类别1

5

30

0

类别2

1

0

14


求法:

对角线上的值 / 对角线所在行、列其它值之和 + 对角线值

则:

类别0的IoU:40 /(40 + 4 + 6 + 5 + 1) = 0.714

类别1的IoU:30 /(5 + 30 + 0 + 4 + 0) = 0.769

类别1的IoU:14 /(1 + 0 + 14 + 6 + 0) = 0.667

Mean IoU:(1 / 3)*(0.714 + 0.769 + 0.667 ) = 0.717

相关文章
相关标签/搜索