利用LFW对人脸识别模型进行精度评测
来源:互联网 发布:愿我知一生为何 编辑:程序博客网 时间:2024/05/16 00:28
本博记录为卤煮学习过程中的理解,作为备忘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)获取的精度进行累加并求平均,得到最终判定精度。
其中也可以用下述方式替换
自己拟定一个人脸识别相似度阈值范围,在这个范围内逐个确认在某一阈值下,针对所有人脸对统计同脸判断错误和异脸判定错误的个数,从而计算得出判定精度。
- 利用LFW对人脸识别模型进行精度评测
- 利用自己的人脸数据集对人脸识别模型进行精度评测
- 用基于center loss的人脸识别模型对LFW人脸数据集进行评测(c++)
- 人脸识别FRVT与LFW测评对比
- 利用OpenCV进行PHP人脸识别
- 利用MATLAB进行人脸识别
- 利用ArcGIS对DSM进行定量比较或精度评定
- 低分辨率、非对齐、视频监控数据中的人脸识别(LFW, YTF)+CVPR2013
- 低分辨率、非对齐、视频监控数据中的人脸识别(LFW, YTF)+CVPR2013
- 深度学习与人脸识别系列(6)__利用训练好的vgg模型进行人脸识别(利用摄像头)
- 深度学习与人脸识别系列(5)__利用训练好的vgg模型进行人脸识别(利用摄像头)
- Python 对图片进行人脸识别
- 人脸识别的三个评测标准
- Deepid的模型进行人脸表情识别
- 利用facerec代码包中的eigenface进行人脸识别
- opencv2-5利用摄像头进行人脸识别
- 利用Multi-LBP和PCA、LDA进行人脸识别
- 利用Java调用OpenCV进行人脸识别
- 根据省份编号获取该省下面的市和地区和省份
- mybatis与hibernate区别
- Java中输入/输出流体系中常用的流分类
- Oracle 创建 split 和 splitstr 函数
- 设计模式--观察者模式--Java实现
- 利用LFW对人脸识别模型进行精度评测
- 心灯
- 判断终端方法
- 浅谈管理与管理者的自我修养
- 【怎样写代码】偷窥高手 -- 反射技术(一):前期准备
- c++运算符的重载
- javascript基础知识
- PAT程序设计考题——甲级1011( World Cup Betting ) C++实现
- spark shuffle mapreduce shuffle