【人脸活体检测】参数介绍

1 TP、TN、FP、FN

TP、TN、FP、FN中第一个字母表示分类器识别结果是否正确,正确用True的首字母T表示,错误用False的首字母F表示。第二个字母表示分类器的判定结果,P表示分类器判定为正样本,N表示分类器判定为负样本。所以:

TP:分类器识别正确,分类器认为该样本为正样本;
TN:分类器识别正确,分类器认为该样本为负样本;
FP:分类器识别结果错误,分类器认为该样本是正样本;所以实际上该样本是负样本;
FN:分类器识别结果错误,分类器认为该样本是负样本;所以实际上该样本是正样本;

项目真实_1真实_0
预测_1TPFP
预测_0FN TN

2 APCER/BPCER/ACER/FRR/FAR/HTER

  • Attack Presentation Classification Error Rate[APCER] : FP / (TN + FP)
  • Bona Fide Presentation Classification Error Rate[BPCER] : FN / (TP + FN )
  • Average Classification Error Rate[ACER] : (APCER + BPCER) / 2.0
  • False Rejection Rate[FRR] : FN / (TN + FN )
  • False Acceptance Rate[FAR] : FP / (TP + FP)
  • Half Total Error Rate [HTER] : (FAR + FNR) / 2.0

3 roc_curve-副本,别看

fpr, tpr, threshold = roc_curve(test_labels, test_scores, pos_label=1)

test_labels = [[1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0…] (list:595)
test_labels为真实的样本标签

test_scores = [0.863, 0.999, 0.999, 0.979, 0.998, 0.720, 0.996, 0.968, 0.952, 0.980, 0.812, 0.933, 0.895, 0.924, 0.982…] (list:595)
test_scores 对每个样本的预测分数

pos_label = 1
pos_label正样本的标签。 说明test_label = 1是真实人脸。


roc_curve() 函数有3个返回值:

fpr:False positive rate。
tpr:True positive rate。
thresholds

在本例子中,
fpr = [0.  0.002  0.145 0.149 0.170 0.174,  0.231 0.235 0.250 0.254 0.265 0.269,  0.28 0.284 0.517  0.517 0.555…] (ndarray(80,))

tpr = [0. 0. 0. 0. 0. 0.,  0. 0. 0. 0. 0. 0.,  0. 0. 0.   0.00833 0.0083 0.0166,  0.0166 0.025   0.025 0.033  0.033  0.0416,  …](ndarray(80,))

thresholds = [2. 1. 0.999  0.999   0.998  0.998,  0.998  0.998  0.997  0.997  0.997  0.9972,  0.9969  0.9969  0.9828  0.9827  0.9781  0.9781,  0.9780 …](ndarray(80,))

其中,thresholds就是原来的test_scores从高到低排序。每个阈值对应一个 fpr 和 tpr。

例如,当thresholds = 2时

test_scores预测(2为阈值)真实(看相应的test_labels)
0.863<2 预测为负样本1 真实为正样本
0.999<2 预测为负样本0 真实为负样本
0.999<2 预测为负样本0 真实为负样本
0.979<2 预测为负样本0 真实为负样本

则fpr = 0 ,tpr = 0

例如,当thresholds = 0.9781时

test_scores预测(0.9781为阈值)真实(看相应的test_labels)
0.863<0.9781 预测为负样本1 真实为正样本
0.999>0.9781 预测为正样本0 真实为负样本
0.999>0.9781 预测为正样本0 真实为负样本
0.979>0.9781 预测为正样本0 真实为负样本

则fpr = 0 ,tpr = 0

3 roc_curve

fpr, tpr, threshold = roc_curve(test_labels, test_scores, pos_label=1)

test_labels = [[1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0…] (list:595)
test_labels为真实的样本标签

test_scores = [0.1361, 0.0002, 0.0001, 0.0208, 0.0013, 0.2790, 0.0031, 0.0316, 0.0478, 0.0196, 0.1872, 0.066, 0.1046,…](list:595)
test_scores 对每个样本的预测分数

pos_label = 1
pos_label正样本的标签。 说明test_label = 1是真实人脸。


roc_curve() 函数有3个返回值:

fpr:False positive rate。
tpr:True positive rate。
thresholds

在本例子中,
fpr = [[0. 0. 0. 0.0021  0.0021  0.0042,  0.0042  0.0063  0.0063  0.0084  0.0084  0.0105,  0.0105  0.0126  0.0126  0.01473684  0.0147 0.0189,  …] (ndarray(80,))

tpr = [[0.  0.00833  0.4333  0.4333  0.4916  0.4916,  0.55   0.55   0.6166  0.6166  0.65  0.65,  0.683  0.683 0.691  0.69  0.7  0.7,   …](ndarray(80,))

thresholds = [[1.3351  0.3351 0.21871  0.2175,  0.2071  0.2006  0.19257  0.19230,  0.17420  0.17203  0.1659  0.16589,  0.1591  0.1580  0.15701  0.15529,   …](ndarray(80,))

tpr = 预正实正/所有实正
fpr = 预正实负/所有实负
其中,thresholds就是原来的test_scores从高到低排序。每个阈值对应一个 fpr 和 tpr。

例如,当thresholds = 1.3351时

test_scores预测(1.3351为阈值)真实(看相应的test_labels)
0.1361<1.3351 预测为负样本1 真实为正样本
0.0002<1.3351 预测为负样本0 真实为负样本
0.0001<1.3351 预测为负样本0 真实为负样本
0.0208<1.3351 预测为负样本0 真实为负样本

则fpr = 0 ,tpr = 0

例如,当thresholds = 0.1012时

test_scores预测(0.1012为阈值)真实(看相应的test_labels)
0.1361>0.1012预测为正样本1 真实为正样本
0.0002<0.1012预测为负样本0 真实为负样本
0.0001<0.1012预测为负样本0 真实为负样本
0.0208<0.1012 预测为负样本0 真实为负样本

就以上这四个来说,fp = 0, tp = 1, tpr = 1/1 = 1

TPR越大,则表示挑出的越有可能(是正确的);FPR越大,则表示越不可能(在挑选过程中,再挑新的出来,即再挑认为是正确的出来,越有可能挑
的是错误的)。
min|1-(tpr+fpr)| 这两个值相加越趋近于1,说明结果越好

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值