举个例子,假设得到混淆矩阵如下:
[ 真 实 标 签 真 实 标 签 真 实 标 签 真 实 标 签 真 实 标 签 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}⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡预测标签预测标签预测标签预测标签预测标签01234真实标签0163001真实标签1022500真实标签2101801真实标签3100151真实标签4421131⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
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)}(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,即:对角元素和 除 所有元素和。
Class 0 Accuracy = 16 16 + 3 + 0 + 0 + 1 { 16 \over 16+3+0+0+1 }16+3+0+0+116,即:每一类预测正确的数量 除 此类本有的样本总数量
Class 1 Accuracy = 22 0 + 22 + 5 + 0 + 0 { 22 \over 0+22+5+0+0 }0+22+5+0+022
Class 2 Accuracy = 18 1 + 0 + 18 + 0 + 1 { 18 \over 1+0+18+0+1 }1+0+18+0+118
Class 3 Accuracy = 15 1 + 0 + 0 + 15 + 1 { 15 \over 1+0+0+15+1 }1+0+0+15+115
Class 4 Accuracy = 31 4 + 2 + 1 + 1 + 31 { 31 \over 4+2+1+1+31 }4+2+1+1+3131
Mean Accuracy (mAcc) = 1 5 { 1 \over 5 }51*(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 }(16+0+1+1+4)+(16+3+0+0+1)−1616,即:每一类预测正确的数量 除 (预测属于此类的样本数量+此类本有的样本总数量-此类预测正确的数量)。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+22+0+0+2)+(0+22+5+0+0)−2222
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+18+0+1)+(1+0+18+0+1)−1818
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+15+1)+(1+0+0+15+1)−1515
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+31)+(4+2+1+1+31)−3131
Mean IoU (mIoU) = 1 5 { 1 \over 5 }51*(Class 0 IoU+Class 1 IoU+Class 2 IoU+Class 3 IoU+Class 4 IoU),即:所有类的IoU的平均值
这篇写的更详细:【语义分割】评价指标:PA、CPA、MPA、IoU、MIoU详细总结和代码实现
如有错误,欢迎交流。