本博记录了卤煮学习过程中的理解,作为笔记demo。 如果其中有遗漏错误的地方,还请大家指出。
卤煮:非文艺小燕儿
本博地址:利用LFW进行人脸识别模型的精度评估
通过caffe进行人脸识别网络训练后,得到了caffe模型。 通常,大家用LFW脸部数据集对该模型进行精度验证。 整理以下验证过程。
(1)在原来的LFW数据集中,切出脸部图像并保存。 (例如,可以使用开源面部检测定位seetaface来提取并存储面部crop。 建议用原始图像名称加上后缀来命名脸部图像。)
)2)通过python、matlab或c,构建训练时的网络结构,加载caffemodel。
)3)将截取的人脸发送到网络,每个人都可以得到网络前方运算的最终结果。 通常是n维向量,保存。 建议使用原始图像名称作为后缀进行命名。
)4) LFW提供6000组人脸识别txt文件,lfw_pairs.txt,其中前300人为同一个人的两幅人脸图像; 第二个300人是两个不同人的脸部图像。 根据该list,从3 )中保存的数据中找到与比较对象的脸相对应的n维的特征向量。
)5)用cosine距离/欧式距离计算两个人脸的相似度。 同一张脸和不同的脸分别保存在对应的得分矢量中。
)相同面部得分向量从小到大排序,不同面部向量从大到小排序。
)7) FAR )求出误认率(0(使用从1开始以万分之一为单位排序的向量,FRR )误认率)或TPR ) turepositiveratio )。
)8)根据7可以绘制ROC曲线。
阈值的确定
)1)将一对测试脸分为10组,确定阈值验证精读。
)2)自己生成人脸识别相似度阈值范围,在此范围内确认在一个个阈值以下,选择其中的一组数据统计同脸判定错误和异脸判定错误的个数。
)3)选择错误个数最少的阈值,在剩下的9组中判断识别精度。
(4)执行10次(步骤)和(3),每次(3)将3 )中取得的精度进行累计并平均化,得到最终的判定精度。
另外,也可以进行如下置换
自己生成面部识别的相似度阈值范围,在该范围内在一个个阈值下,对所有面部对统计确认同面部判定错误和异面部判定错误的个数,计算判定精度。