1. 前言
2. 分类评测指标
- 图像分类, 顾名思义就是一个模式分类问题, 它的目标是将不同的图像, 划分到不同的类别,实现最小的分类误差, 这里我们只考虑单标签分类问题, 即每一个图片都有唯一的类别。
- 对于单个标签分类的问题, 评价指标主要有 Accuracy, Precision, Recall, Fscore。
-
在计算这些指标之前, 我们先计算几个基本指标, 这些指标是基于二分类的任务, 也可以拓展到多分类。
- 标签为正样本, 分类为正样本的数目为 True Positive, 简称 TP。
- 标签为正样本, 分类为负样本的数目为 False Negative,简称 FN。
- 标签为负样本, 分类为正样本的数目为 False Positive,简称 FP。
- 标签为负样本, 分类为负样本的数目为True Negative,简称 TN。
-
判别是否为正例只需要设一个概率阈值 T,预测概率大于阈值 T 的为正类, 小于阈值 T 的为负类,默认就是 0.5。 如果我们减小这个阀值 T, 更多的样本会被识别为正类,这 样可以提高正类的召回率, 但同时也会带来更多的负类被错分为正类。 如果增加阈值 T, 则正类的召回率降低, 精度增加。 如果是多类,比如 ImageNet1000 分类比赛中的 1000 类, 预测类别就是预测概率最大的那一类。
2.1 准确率 Accuracy
- 单标签分类任务中每一个样本都只有一个确定的类别, 预测到该类别就是分类正确, 没有预测到就是分类错误,因此最直观的指标就是 Accuracy,也就是准确率。
- Accuracy=(TP+TN)/(TP+FP+TN+FN), 表示的就是所有样本都正确分类的概率, 可以 使用不同的阈值 T。
- 在 ImageNet 中使用的 Accuracy 指标包括 Top_1 Accuracy 和 Top_5 Accuracy, Top_1 Accuracy 就是前面计算的 Accuracy。
- 记样本 xi 的类别为 yi,类别种类为(0,1,…,C),预测类别函数为 f,则 Top-1 的计 算方法如下:
Top1−Acc=∑N−1i=0(f(xi)==yi)NTop1−Acc=∑i=0N−1(f(xi)==yi)N
- 如果给出概率最大的 5 个预测类别, 只要包含真实的类别,则判定预测正确, 计算出来的指标就是 Top-5。
2.2 精确度 Precision 和召回率 Recall
- 正样本精确率为:Precision=TP/(TP+FP), 表示召回为正样本的样本中, 到底有多少是真正的正样本。
- 正样本召回率为:Recall=TP/(TP+FN),,表示的是有多少样本被召回类。
2.3 F1 score
- 有的时候我们不仅关注正样本的准确率,也关心其召回率, 但是又不想用 Accuracy 来进行衡量, 一个折中的指标是采用 F-score。
- F1 score=2x Precision x Recall / (Precision+Recall), 只有在召回率 Recall 和 精确率 Precision 都高的情况下,F1 score 才会很高, 因此 F1 score 是一个综合性能 的指标。
2.4 混淆矩阵
- 如果对于每一类, 我们想知道类别之间相互误分的情况, 查看是否有特定的类别之间相互混淆, 就可以用混淆矩阵画出分类的详细预测结果。 对于包含多个类别的任务, 混淆矩阵很清晰的反映出各类别之间的错分概率,如下。
- 这是一个包含 20 个类别的分类任务,混淆矩阵为 20 x 20 的矩阵, 其中第 i 行第 j 列, 表示第 i 类目标被分类为第 j 类的概率,可以知道, 越好的分类器对角线上的值更大, 其他地方应该越小。
3. 分割评价指标
3.1 IoU
- IoU 全称 Intersection-over-Union, 即交并比, 在目标检测领域中, 定义为两个矩形框面积的交集和并集的比值, IoU=A∩B/A∪B。
- 如果完全重叠,则 IoU 等于 1, 是最理想的情况。一般在检测任务中,IoU 大于等于 0.5 就认为召回, 如果设置更高的 IoU 阈值,则召回率下降,同时定位框也越更加精确。
- 在图像分割中也会经常使用 IoU,此时就不必限定为两个矩形框的面积。 比如对于二 分类的前背景分割, 那么 IoU=(真实前景像素面积∩预测前景像素面积)/(真实前景像素面积∪预测前景像素面积), 这一个指标, 通常比直接计算每一个像素的分类正确概 率要低,也对错误分类更加敏感。
3.2 精确度
-
假设共有k类($L0-L_k,其中包含背景),,其中包含背景),p{ij}表示原本是i类但预测为j类的结果数。表示原本是i类但预测为j类的结果数。p{ii}$表示真正的结果数。而$p{ij}和和p_{ji}$分别被解释为假正和假负,尽管两者都是假正与假负之和。
-
Pixel Accuracy:标记正确的像素占总像素的比例
PA=∑ki=0pii∑ki=0∑kj=0pijPA=∑i=0kpii∑i=0k∑j=0kpij -
Mean Pixel Accuracy:PA的平均值
MPA=1k∑i=0kpii∑kj=0pijMPA=1k∑i=0kpii∑j=0kpij
-
MIoU:均交并比,语义分割的标准度量。计算两个集合的交集与并集之比,在语义分割中,这两个集合为真实值和预测值。这个比例可以理解为:真正数/真正+假负+假正。
MIoU=1k∑i=0kpii∑kj=0pij+∑kj=0pji−piiMIoU=1k∑i=0kpii∑j=0kpij+∑j=0kpji−pii等价于
MIoU=1k∑i=0kTPTP+FP+FNMIoU=1k∑i=0kTPTP+FP+FN -
直观理解如下图:
3.3 上述指标的计算
- 首先得得出混淆矩阵,例如:
- 对于上例,MIoU的解释:
- 对于类别1:TP=43,FN=7,FP=2;
- 类别2:TP=45,FN=5,FP=6;
- 类别3:TP=49,FN=1,FP=5.
- 因此:IoU1=43/(43+2+7)=82.69%,IoU2=45/(45+5+6)=80.36%,IoU=49/(49+1+5)=89.09%
- 因此mIoU=84.05%,其实就是IOU的分母计算为矩阵的每一行加每一列,再减去重复的TP。
- 根据上述公式,代码如下: