利用LFW对人脸识别模型进行精度评测

本博记录为卤煮学习过程中的理解,作为备忘demo。其中有错误疏漏之处,还请大家帮忙指正。

卤煮:非文艺小燕儿

本博地址:利用LFW对人脸识别模型进行精度评测


通过caffe进行人脸识别网络训练后,得到caffemodel。通常大家在LFW人脸数据集上对该模型进行精度验证。以下梳理验证过程:

(1)      在原始LFW数据集中,截取人脸图像并保存。(例如:可以使用开源人脸检测对齐seetaface将人脸crop出来,并保存,建议以原图像名称加一个后缀命名人脸图像)

(2)      通过python,matlab,或者C++,构建训练时的网络结构并加载caffemodel。

(3)      将截取的人脸送入网络,每个人脸都可以得到网络前向运算的最终结果,一般为一个N维向量,并保存,建议以原图像名称加一个后缀命名。

(4)      LFW提供了6000对人脸验证txt文件,lfw_pairs.txt,其中第1个300人是同一个人的两幅人脸图像;第2个300人是两个不同人的人脸图像。按照该list,在(3)保存的数据中,找到对比人脸对应的N维特征向量。

(5)      通过cosine距离/欧式距离计算两张人脸的相似度。同脸和异脸分别保存到各自对应的得分向量中。

(6) 同脸得分向量按照从小到大排序,异脸向量按照从大到小排序。

(7)  FAR(错误接受率)从0~1,按照万分之一的单位,利用排序后的向量,求FRR(错误拒绝率)或者TPR(ture positive ratio)。

(8) 根据7可绘制ROC曲线。


阈值确定

(1)      将测试人脸对分为10组,用来确定阈值并验证精读。

(2)      自己拟定一个人脸识别相似度阈值范围,在这个范围内逐个确认在某一阈值下,选取其中1组数据统计同脸判断错误和异脸判定错误的个数。

(3)      选择错误个数最少的那个阈值,用剩余9组,判断识别精度。

(4)      步骤(2)和(3)执行10次,将每次(3)获取的精度进行累加并求平均,得到最终判定精度。

其中也可以用下述方式替换

自己拟定一个人脸识别相似度阈值范围,在这个范围内逐个确认在某一阈值下,针对所有人脸对统计同脸判断错误和异脸判定错误的个数,从而计算得出判定精度。

你可能感兴趣的:(人脸识别)