最近在阅读人脸识别的论文,发现里面用到的指标是TAR(True Accept Rate)和FAR(False Accept Rate),开始没有在意以为相当于TPR(True Positive Rate)和FPR(False Positive Rate), 后来发现并不是这么回事,在百度上也没有找到直接的解释,但是也有一些收获,这里结合自己的理解把学到的东西记录一下。
接下来看人脸识别中的 常用的指标TAR和FAR。TAR(True Accept Rate)表示正确接受的比例,FAR(False Accept Rate)表示错误接受的比例。所谓的接受就是在进行人脸验证的过程中,两张图像被认为是同一个人。在网上到的了FAR(False Accept Rate)的计算方式如下:
F
A
R
=
非同人比较的次数
非同人分数
>
T
对于人脸识别不太了解的小伙伴可能不太了解上面公式的意思,下面我就来解释一下。做人脸验证的时候我们会给出两张图像让算法判断两张图片是不是同一个人的。一般是先将两张图片表示成两个高维的特征向量,然后计算两个特征向量的相似度或者距离。在这里定义FAR时使用的是相似度,公式中分数就是指的相似度。在比较的过程中我们希望同一个人的图像相似度比较高,不同人的相似度比较低。我们会给定一个相似度阈值T,比如0.6, 如果两张图像的相似度大于T我们就认为两张图片是一个人的,如果小于T我们就认为两证图像 是不同人的。但是无论将T设置成什么样值都会有一定得错误率,就是FAR,因为我们提取的图像的特征向量总是不够好,并不总能 满足:同一个人的图像相似度比较高,不同人的相似度比较低。偶尔也会出现不同人的图像的相似度大于给定的阈值T,这样我们就会犯错误接受的错误。FAR就是我们比较不同人的图像时,把其中的图像对当成同一个人图像的比例。我们希望FAR越小越好。
TAR(True Accept Rate)表示正确接受的比例。所谓的就是在进行人脸验证的过程中,两张图像被认为是同一个人。我在网上并没有查到TAR的定义,在这里我参照FAR的定义猜测一下,不一定正确,如有错误还望批评指正。
T
A
R
=
同人比较的次数
同人分数
>
T
参考上面对 FAR的解释,我们知道对相同人的图片对进行比较也会出现相似度小于阈值T的情况,这是我们就会犯错误,这个错误就是FRR( False Reject Rate),就是把相同的人的图像当做不同人的了,这个下面我们再讲。可以理解 TAR就是对相同人的图片对进行比较,我们计算出的相似度大于阈值的图像对所占的比例。我们希望TAR越大越好。
上面讲解TAR的时候,提到了FRR(False Reject Rate)就是错误拒绝率。就是把相同的人的图像当做不同人的了。有了上面的基础,FRR就很好理解了:
FAR和FRR的定义可以概括如下:
EER(Equal Error Rate)即等误率。
EER为 取某个T值时,使得FAR=FRR 时,的FAR或FRR值。
一般画两条曲线,看看交点。
下面以二分类问题来理解一下怎么看EER。在介绍EER之前,首先简单介绍一下混淆矩阵和ROC曲线。
混淆矩阵
针对预测值和真实值之间的关系,我们可以将样本分为四个部分,分别是:
真正例(True Positive,TP):预测值和真实值都为1
假正例(False Positive,FP):预测值为1,真实值为0
真负例(True Negative,TN):预测值与真实值都为0
假负例(False Negative,FN):预测值为0,真实值为1
我们将这四种值用矩阵表示(图片引自《machine learning:A Probabilistic Perspective》):
上面的矩阵就是混淆矩阵。
ROC曲线
通过混淆矩阵,我们可以得到真正例率(True Positive Rate , TPR):
我们还可以得到假正例率(False Positive Rate , FPR):
可以看到,TPR也就是我们所说的召回率,那么只要给定一个决策边界阈值clip_image002[7],我们可以得到一个对应的TPR和FPR值,然而,我们不从这个思路来简单的得到TPR和FPR,而是反过来得到对应的clip_image002[9],我们检测大量的阈值clip_image002[7],从而可以得到一个TPR-FPR的相关图,如下图所示(图片引自《machine learning:A Probabilistic Perspective》):
图中的红色曲线和蓝色曲线分别表示了两个不同的分类器的TPR-FPR曲线,曲线上的任意一点都对应了一个t(阈值)值。该曲线就是ROC曲线(receiver operating characteristic curve)。该曲线具有以下特征:
-
一定经过(0,0)点,此时t=1,没有预测为P的值,TP和FP都为0
-
一定经过(1,1)点,此时t=0,全都预测为P
-
最完美的分类器(完全区分正负样例):(0,1)点,即没有FP,全是TP
-
曲线越是“凸”向左上角,说明分类器效果越好
-
随机预测会得到(0,0)和(1,1)的直线上的一个点
-
曲线上离(0,1)越近的点分类效果越好,对应着越合理的t
从图中可以看出,红色曲线所代表的分类器效果好于蓝色曲线所表示的分类器。
利用ROC的其他评估标准
AUC(area under thecurve),也就是ROC曲线的下夹面积,越大说明分类器越好,最大值是1,图中的蓝色条纹区域面积就是蓝色曲线对应的 AUC
EER(equal error rate),也就是FPR=FNR的值,由于
FNR
=
1
−
TP
+
FN
FN
=
TPR
,TPR =-FNR+1 可以画一条从(0,1)到(1,0)的直线,此时的横坐标是FNR。找到交点,图中的A、B两点。曲线交点对应的横坐标是FPR,黑色直线对应的横坐标是FNR,此时FPR等于FNR,假正率等于假负率,即等误率(EER)。
FMR(False Match Rate):错误匹配率
其实很好理解,FMR就是识别错了(这个是前提),但是系统判定为正确的比例
FMR(False Non-Match Rate):错误没有匹配率
FNMR是识别对了(这个是前提),但是系统判定为错误的比例
or Rate):等错误率
就是FMR和FNMR两条曲线的交点,对应的那个threshold
具体可以看下面的英文ppt,更加具体,后面的两个标准大同小异,跟
以下解释大白话居多,公式较少,主要是为了理解原理,有不对的地方可以在评论区里讨论。
假设检索库1000张人脸,底库10000张人脸,top1正确的人脸有900张,错误的人脸有100张。
1. 先说一下我之前的统计
人脸识别
率的方式
输出一个top1的准确率为900/1000=90.00%。
2. 以上计算方式的问题
因为实际项目上需要一个阈值,而如步骤1的实验是给不出阈值的,而阈值T的给定又决定着在实际项目使用时候的识别率(通过率)和误识率。
3. 解释一下
TAR
@...
参考链接:
1、https://blog.csdn.net/blueblood7/article/details/41823593
2、https://blog.csdn.net/lijiao1181491631/article/details/54407830?utm_source=blogxgwz0
1、混淆矩阵
参考资料:https://blog.csdn.net/aws3217150/article/details/50479457
1)准确率:(对的对,错的错的比例)(A+D)/(A+B+C+D)
其中:
err
orCount是指匹配失败的次数,totalCount是指同一个人的匹配次数。
也就是说,假设我们定义匹配的时候设置的阈值为threshold,当两两匹配的时候的相似度值为value。
在理想情况下,同一个人的匹配相似度value>t...