语义分割的任务就是预测输入图像每个像素点的类别。简单来说,就是做像素级分类。
图中左侧是一张输入图像,中间图像是对图像每个像素类别人工标记的Ground truth(真实标签),右侧图像是对图像每个像素类别预测得到的结果。
为了证明一个语义分割方法的有效性,我们需要对语义分割方法进行严格的评估。下面介绍语义分割中最常用的几个评价指标。
问题假定
在准确描述每个评价指标之前,我们先做出一些假定:
图像中每个像素都有一个类别标签。假定类别总数为 k + 1 k+1 k+1个类别,包括 k k k个类别和 1 1 1个背景 p i j p_{ij} pij为类别 i i i的像素预测为类别 j j j的数量。当 i = j i=j i=j时表示预测正确,否则表示预测错误
1. Pixel Accuracy
Pixel Accuracy 简称PA,它是最简单的指标。它表示所有像素类别预测正确的数量与像素总数的比例。
P A = ∑ i = 0 k p i i ∑ i = 0 k ∑ j = 0 k p i j PA = \frac {\sum_{i=0}^kp_{ii}}{\sum_{i=0}^k\sum_{j=0}^kp_{ij}} PA=∑i=0k∑j=0kpij∑i=0kpii
2. Mean Pixel Accuracy
Mean Pixel Accuracy 简称MPA, 它比PA指标略有改善。它的计算分两个步骤
对每个类别,计算该类别下预测正确的数量与该类别像素总数的比例对所有类别的计算结果求平均
M P A = 1 k + 1 ∑ i = 0 k p i i ∑ j = 0 k p i j MPA = \frac {1}{k+1} \sum_{i=0}^k \frac {p_{ii}}{\sum_{j=0}^k p_{ij}} MPA=k+11i=0∑k∑j=0kpijpii
3. Mean Intersection over Union
Mean Intersection over Union 简称MIoU,它是分割任务的标准指标。
首先,我们先介绍IoU(交并比),它本质上是一种量化目标掩膜和预测掩膜之间重叠百分比的方法。具体来说,就是指目标掩膜与预测掩膜的公共区域的像素个数,与两者总的像素个数的比值。
而MIoU 就是每个类别的IoU的平均。它的计算同样分两个步骤:
对每个类别,计算的是一个交集与并集的比例。这个比例的分子和MPA一样,是该类别下预测正确的数量;分母的范围更大,是指该类别预测为其他类别和其他类别预测为该类别的总和。对所有类别的计算结果求平均。
M P A = 1 k + 1 ∑ i = 0 k p i i ∑ j = 0 k p i j + ∑ j = 0 k p j i − p i i MPA = \frac {1}{k+1} \sum_{i=0}^k \frac {p_{ii}}{\sum_{j=0}^k p_{ij} + \sum_{j=0}^k p_{ji} - p_{ii}} MPA=k+11i=0∑k∑j=0kpij+∑j=0kpji−piipii
4. Frequency Weighted Intersection over Union
Frequency Weighted Intersection over Union 简称FWIoU,它是在MIoU基础上做了改善。
具体的改善思路是MIOU是先计算每个类别的IOU,然后对所有类别求平均。而FWIoU 不再采用平均的方式,而是对每个类别的IOU进行加权,所有类别的权重仍为1。
也可以理解为MIOU 的所有类别的权重是均等的,均为 1 k + 1 \frac{1}{k+1} k+11。
那么FWIoU各个类别的权重是怎么计算的呢?
是采用每个类别的类别数量作为权重,哪个类别的数量多,哪个类别的权重大。
M P A = 1 ∑ i = 0 k ∑ j = 0 k p i j ∑ i = 0 k ∑ j = 0 k p i j p i i ∑ j = 0 k p i j + ∑ j = 0 k p j i − p i i MPA = \frac {1}{\sum_{i=0}^k\sum_{j=0}^kp_{ij}} \sum_{i=0}^k \frac { \sum_{j=0}^kp_{ij} p_{ii}}{\sum_{j=0}^k p_{ij} + \sum_{j=0}^k p_{ji} - p_{ii}} MPA=∑i=0k∑j=0kpij1i=0∑k∑j=0kpij+∑j=0kpji−pii∑j=0kpijpii
写在最后的话
关注[CV面试宝典],回复“评价指标”,获取本文涉及论文。
参考文献
https://www.jeremyjordan.me/evaluating-image-segmentation-models/
A Review on Deep Learning Techniques Applied to Semantic Segmentation