但随着深度学习的发展,人脸识别有更多端到端的框架选择。这里简单介绍一下三种近两年基于深度学习人脸识别的方法:Deep face、Deep ID、FaceNet 1)Deep face a.Deep face 与其他方法最大的不同在于,DeepFace在训练神经网络前,使用了基于3D模型人脸对齐的方法。
b.使用深度神经网络学习特征
c.该模型在LFW数据集上取得了0.9735准确率 2)DeepID DeepID有三代:DeepID、DeepID2、DeepID2+ DeepID2+对遮挡有很好的鲁棒性 有两种方式对人脸进行多种尺度的遮挡,第一种是从下往上进行遮挡,从10%-70%。第二种是不同大小的黑块随机放,黑块的大小从10×10到70×70。
结论是:遮挡在20%以内,块大小在30*30以下,Deep2+的输出向量的验证正确率几乎不变。 3)FaceNet 直接将人脸图像映射到欧几里得空间,空间的距离代表了人脸图像的相似性。该方法基于深度卷积神经网络。FaceNet得到人脸最终表示后不用像DeepID那样需要再训练模型进行分类,直接计算距离,效率很高。 它在LFW数据集上使用了两种模式: 直接取LFW图片的中间部分进行训练, 使用额外的人脸对齐工具,准确率为0.9963,超过DeepID。 当然基于深度学习的人脸识别方法还有很多种,比如baidu的方法等等。对这块有兴趣的朋友可以看看这篇文章:《基于深度学习的人脸识别技术综述》 5、人脸匹配与识别 将提取的人脸特征数据与数据库中储存的特征模板进行搜索匹配,设定一个最佳的相似度阈值,当相似度超过该阈值,则输出匹配后的结果。 最佳相似度阈值的决定需要考虑到输出结果的正确率和数量。假设1000张样本图片里,共600张正样本。相似度为0.9的图片一共100张,其中正样本为99张。虽然0.9阈值的正确率很高,为99/100;但是0.9阈值正确输出的数量确很少,只有99/600。这样很容易发生漏识的情况。 有的同学可能很快就通过这个场景联想到精确率和召回率的概念,是的,这也是需要应用精确率和召回率的实际评估场景之一。这里再解释一下精确率和召回率: 精确率(precision):识别为正确的样本数/识别出来的样本数=99/100 召回率(recall):识别为正确的样本数/所有样本中正确的数=99/600
(图by@mousever) 只有当选择的阈值实现:a.阈值以上结果的精确率极高;b.阈值以上结果的召回率极高。这个阈值才是在该算法模型下最佳阈值。 除精确率和召回率值得关注外,误报率(False Alarm)也是非常重要的指标。家用家用机器人/摄像头,可能会常开人脸检测,误报会非常影响用户体验(比如,没有异常情况但频繁报警提示)。因此误报率会是这类场景的重要指标。 另外在这一个识别的步骤中,产品还需要确定具体输出的需求点是人脸认证还是人脸识别—— 1)人脸认证:一对一的匹配过程,解决“这是否为某人”的问题。系统需先找出已储存的对象信息,再将待认证的信息与前者对比核对,从而判定接受或拒绝待认证的身份。 常见的应用场景:例如移动支付认证、安全性身份核对等。 产品在系统设计的逻辑上,需要先考虑调取已储存对象信息的先验条件。通过界面/语音的提示,使得待认证者预先知道自己正处于被核对的过程中,且已预先了解拟核对对象的身份。 (责任编辑:admin) |