語義分割中最常用的有3個指標。為了便於解釋,首先需要介紹混淆矩陣,如下所示:
混淆矩陣 |
真實值 |
||
Positive |
Negative |
||
預測值
|
Positive |
True Positive(TP)真陽性 |
False Positive(FP)假陽性 |
Negative |
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類標簽(1、2),共計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所標注出來的真實類別情況,第二幅圖為預測的類別情況。
則首先計算混淆函數:
混淆矩陣 |
真實值(46、34、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
類別2的IoU:14 /(1 + 0 + 14 + 6 + 0) = 0.667
Mean IoU:(1 / 3)*(0.714 + 0.769 + 0.667 ) = 0.717