[英]How to calculate accuracy for facial recognition system?
我是生物特征評估的新手,我希望繪制 ROC 曲線、CMC 曲線和 Genuine Vs Imposter 分布。 我基於https://www.pyimagesearch.com/2018/06/18/face-recognition-with-opencv-python-and-deep-learning/在我的數據集上訓練了模型。 如果我給出一個測試圖像,它就可以正常工作。 但是,我不知道如何根據這種方法為整個測試數據集獲得真實和冒名頂替的分數。
所有最先進的模型,如 VGG-Face、FaceNet 或 DeepFace,都在 LFW(野外標記人臉)數據集上進行了測試。 幸運的是,scikit learn 將此數據集作為開箱即用的功能提供。
from sklearn.datasets import fetch_lfw_pairs
fetch_lfw_pairs = fetch_lfw_pairs(subset = 'test', color = True, resize = 1)
pairs = fetch_lfw_pairs.pairs
labels = fetch_lfw_pairs.target
現在,您應該使用您的模型測試每一對。
predictions = []
for i in range(0, pairs.shape[0]):
pair = pairs[i]
img1 = pair[0]
img2 = pair[1]
prediction = verify(img1, img2) #this should return 1 for same person, 0 for different persons.
predictions.append(prediction)
然后,您應該比較預測和標簽。
from sklearn.metrics import accuracy_score
score = accuracy_score(labels, predictions)
此外,您可以計算一些其他指標
從 sklearn.metrics 導入 precision_score、recall_score、f1_score
precision = precision_score(actuals, predictions)
recall = recall_score(actuals, predictions)
f1 = f1_score(actuals, predictions)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.