如何解决如何计算面部识别系统的准确性?
我是生物识别评估的新手,我希望绘制ROC曲线,CMC曲线和真实Vs冒名顶替者分布图。我根据https://www.pyimagesearch.com/2018/06/18/face-recognition-with-opencv-python-and-deep-learning/在我的数据集中训练了模型。如果我提供测试图像,则它可以正常工作。 但是,我不知道如何通过这种方法为整个测试数据集获得真实的冒名顶替者分数。
解决方法
所有最新模型(例如VGG-Face,FaceNet或DeepFace)均在LFW(野生标签脸)数据集上进行了测试。幸运的是,scikit learning提供了该数据集作为开箱即用的功能。
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。