举个例子,假设得到混淆矩阵如下:
[
真
实
标
签
真
实
标
签
真
实
标
签
真
实
标
签
真
实
标
签
0
1
2
3
4
预
测
标
签
0
16
0
1
1
4
预
测
标
签
1
3
22
0
0
2
预
测
标
签
2
0
5
18
0
1
预
测
标
签
3
0
0
0
15
1
预
测
标
签
4
1
0
1
1
31
]
\begin{bmatrix} &&&真实标签&真实标签&真实标签&真实标签&真实标签 \\&&&0&1&2&3&4 \\ \\ 预测标签&0&&16&0&1&1&4 \\ 预测标签&1&&3&22&0&0&2 \\ 预测标签&2&&0&5&18&0&1\\ 预测标签&3&&0&0&0&15&1\\ 预测标签&4&&1&0&1&1&31 \end{bmatrix}
⎣
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎡
预
测
标
签
预
测
标
签
预
测
标
签
预
测
标
签
预
测
标
签
0
1
2
3
4
真
实
标
签
0
1
6
3
0
0
1
真
实
标
签
1
0
2
2
5
0
0
真
实
标
签
2
1
0
1
8
0
1
真
实
标
签
3
1
0
0
1
5
1
真
实
标
签
4
4
2
1
1
3
1
⎦
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎤
Global Accuracy (Overall Accuracy, OA)
=
16
+
22
+
18
+
15
+
31
(
16
+
0
+
1
+
1
+
4
)
+
(
3
+
22
+
0
+
0
+
2
)
+
(
0
+
5
+
18
+
0
+
1
)
+
(
0
+
0
+
0
+
15
+
1
)
+
(
1
+
0
+
1
+
1
+
31
)
{16+22+18+15+31 \over (16+0+1+1+4)+(3+22+0+0+2)+(0+5+18+0+1)+(0+0+0+15+1)+(1+0+1+1+31)}
(
1
6
+
0
+
1
+
1
+
4
)
+
(
3
+
2
2
+
0
+
0
+
2
)
+
(
0
+
5
+
1
8
+
0
+
1
)
+
(
0
+
0
+
0
+
1
5
+
1
)
+
(
1
+
0
+
1
+
1
+
3
1
)
1
6
+
2
2
+
1
8
+
1
5
+
3
1
,即:对角元素和 除 所有元素和。
Class 0 Accuracy
=
16
16
+
3
+
0
+
0
+
1
{ 16 \over 16+3+0+0+1 }
1
6
+
3
+
0
+
0
+
1
1
6
,即:每一类预测正确的数量 除 此类本有的样本总数量
Class 1 Accuracy
=
22
0
+
22
+
5
+
0
+
0
{ 22 \over 0+22+5+0+0 }
0
+
2
2
+
5
+
0
+
0
2
2
Class 2 Accuracy
=
18
1
+
0
+
18
+
0
+
1
{ 18 \over 1+0+18+0+1 }
1
+
0
+
1
8
+
0
+
1
1
8
Class 3 Accuracy
=
15
1
+
0
+
0
+
15
+
1
{ 15 \over 1+0+0+15+1 }
1
+
0
+
0
+
1
5
+
1
1
5
Class 4 Accuracy
=
31
4
+
2
+
1
+
1
+
31
{ 31 \over 4+2+1+1+31 }
4
+
2
+
1
+
1
+
3
1
3
1
Mean Accuracy (mAcc)
=
1
5
{ 1 \over 5 }
5
1
*(Class 0 Accuracy+Class 1 Accuracy+Class 2 Accuracy+Class 3 Accuracy+Class 4 Accuracy),即:所有类的Acc的平均值。
Class 0 IoU
=
16
(
16
+
0
+
1
+
1
+
4
)
+
(
16
+
3
+
0
+
0
+
1
)
−
16
{ 16 \over (16+0+1+1+4)+(16+3+0+0+1)-16 }
(
1
6
+
0
+
1
+
1
+
4
)
+
(
1
6
+
3
+
0
+
0
+
1
)
−
1
6
1
6
,即:每一类预测正确的数量 除 (预测属于此类的样本数量+此类本有的样本总数量-此类预测正确的数量)。ps:因为多加了一次预测正确的数量
Class 1 IoU
=
22
(
3
+
22
+
0
+
0
+
2
)
+
(
0
+
22
+
5
+
0
+
0
)
−
22
{ 22 \over (3+22+0+0+2)+(0+22+5+0+0)-22 }
(
3
+
2
2
+
0
+
0
+
2
)
+
(
0
+
2
2
+
5
+
0
+
0
)
−
2
2
2
2
Class 2 IoU
=
18
(
0
+
5
+
18
+
0
+
1
)
+
(
1
+
0
+
18
+
0
+
1
)
−
18
{ 18 \over (0+5+18+0+1)+(1+0+18+0+1)-18 }
(
0
+
5
+
1
8
+
0
+
1
)
+
(
1
+
0
+
1
8
+
0
+
1
)
−
1
8
1
8
Class 3 IoU
=
15
(
0
+
0
+
0
+
15
+
1
)
+
(
1
+
0
+
0
+
15
+
1
)
−
15
{ 15 \over (0+0+0+15+1)+(1+0+0+15+1)-15 }
(
0
+
0
+
0
+
1
5
+
1
)
+
(
1
+
0
+
0
+
1
5
+
1
)
−
1
5
1
5
Class 4 IoU
=
31
(
1
+
0
+
1
+
1
+
31
)
+
(
4
+
2
+
1
+
1
+
31
)
−
31
{ 31 \over (1+0+1+1+31)+(4+2+1+1+31)-31 }
(
1
+
0
+
1
+
1
+
3
1
)
+
(
4
+
2
+
1
+
1
+
3
1
)
−
3
1
3
1
Mean IoU (mIoU)
=
1
5
{ 1 \over 5 }
5
1
*(Class 0 IoU+Class 1 IoU+Class 2 IoU+Class 3 IoU+Class 4 IoU),即:所有类的IoU的平均值
这篇写的更详细:
【语义分割】评价指标:PA、CPA、MPA、IoU、MIoU详细总结和代码实现
如有错误,欢迎交流。