如何计算人脸识别模型的LFW精度



在我的研究中,我观察到许多人脸识别算法提出了它们的模型精度与LFW数据集精度之间的关系。我看到LFW数据集有5749个不同的人的图像,并且没有分割训练和测试。

我已经开发了我自己的DNN模型,用于人脸识别,它类似于facenet架构。有人能帮我回答以下问题吗?

1( 每个人都在谈论LFW上的哪个特定精度参数?我知道准确度参数,如ROC、精密度、召回率和FAR与FRR的关系图。这与这些参数有关吗?

2( 计算我的模型LFW精度的程序?【任何开源链接都是可观的】

我看到LFW数据集有5749个不同的人的图像,并且没有训练和测试的分割。

实际上LFW为训练和测试提供了拆分。中的详细信息http://vis-www.cs.umass.edu/lfw/#views.

每个人都在谈论LFW上的哪个特定精度参数?我知道准确度参数,如ROC、精密度、召回率和FAR与FRR的关系图。这与这些参数有关吗?

LFW采用ROC曲线(图(、平均分类精度u和平均S_E的标准误差(表(。LFW使用的ROC曲线是用FPR(假阳性率(和TPR(真阳性率(绘制的。

计算我的模型的LFW精度的过程?

两个有用的链接:

  1. FPR, TPRTP, FN, TP, TN的定义:https://en.wikipedia.org/wiki/Confusion_matrix

  2. Facenet github repo中有一个wiki页面,您可以在其中阅读源代码,了解如何绘制ROC曲线并计算uS_E:https://github.com/davidsandberg/facenet/wiki/Validate-on-LFW

获取ROC曲线和uS_E的程序:

  1. 我们需要LFW测试部分的pairs.txt,它分别包含10组300个匹配和300个不匹配对。所以总共有6000对,其中一半是匹配的,另一半是不匹配的。

  2. 设置阈值的范围从0到1,例如间隙0.001,这将产生1000个阈值。

  3. 计算所有对上的距离d。对于阈值t,如果d<=t,对被预测为匹配。否则,配对被预测为不匹配。

  4. 对于每个阈值t:

    1. 对于每个匹配的对,

      1. 如果预测为匹配,则TP+=1

      2. 如果预测为不匹配,则FN+=1

    2. 对于每个不匹配的配对,

      1. 如果预测为匹配,则FP+=1

      2. 如果预测为不匹配,则TN+=1

    3. 计算TPR, FPR, Acc:

      1. TPR = TP / (TP + FN)

      2. FPR = FP / (FP + TN)

      3. CCD_ 22。

  5. 我们得到一个1000长度的列表,如[(TPR_t1, FPR_t1, Acc_t1), (TPR_t2, FPR_t2, Acc_t2), ...]。ROC曲线可以通过绘制FPRs与TPRs来产生。uAccs的平均值,而S_EAccs的标准差。

LFW在scikit learn中已经分为train、test和10_folds。

from sklearn.datasets import fetch_lfw_pairs
lfw_pairs_test = fetch_lfw_pairs(subset = 'test')
pairs = lfw_pairs_test.pairs
target = fetch_lfw_pairs.target

成对存储2个图像项目。您可以在自定义模型中测试这些对,并将预测与目标值进行比较。

最新更新