接着上一小节的人脸检测项目,本小节主要讲述一下工程化实现人脸的识别和匹配,希望可以帮助小伙伴们在超短的时间内完成全流程的开发工作。
1.人脸识别:简单高效识别人脸
上一小节我们通过python 实现了人脸检测,可以看到整体效果还是很不错的。
2.人脸匹配:半小时完成项目开发
人脸匹配是就是把当前检测到的人脸,和数据库已知的人进行身份比较,根据置信度返回相似匹配结果,常用的实际例子,如人脸签到,人脸鉴证等。
人脸匹配的核心步骤是两步:
(1)检测人脸,并获得当前人脸的 face vector。这一过程包括人脸检测和人脸 feature map提取两步,feature map是基于人脸检测bbox、有特征提取器提取而来,后面会专门讲解。另外,数据库人脸也需利用特征提取器提取。
(2)将当前人脸 face vector 和数据库已知的人脸进行相似度比较,根据置信度获取最佳匹配结果。通常是进行余弦相似度计算,获得与数据库已知人脸最相似、即余弦相似度最大的人脸信息,然后根据置信度判断返回当前人脸判定结论。
余弦相似度的定义:又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。余弦相似度将向量根据坐标值,绘制到向量空间中,如最常见的二维空间。
运行:1)系统:wind10, cpu, x64,8GB内存;2)配置:python3.6, torch, opencv等;
本次示例选择了 普京、易阳天玺、杨幂等10个数据库已知人和 20个干扰项(others)。
人脸检测 + 数据库匹配结果1:成功
人脸检测 + 数据库匹配结果2:成功
人脸检测 + 数据库匹配结果3:成功
人脸检测 + 数据库匹配结果6:失败, 因为数据库没有凤姐的信息!
3.项目工程
今天就分享到这里, 我是paperClub。
备注:
1. 感谢各位小伙伴的关注, 您的点赞、鼓励和留言,都是我深夜坚持的一份动力,无论褒贬,都是我们行进途中最好的回馈,也都会被认真对待。
2. 我将持续分享各类、好玩且有趣的算法应用及工程和项目,欢迎分享和转发。沟通、学习和交流,请与我联系,虽然平时忙,但留言必回,勿急,感谢理解!
3. 分享内容包括开源项目和自研项目,如在引用或使用时,考虑不周、遗漏引用信息或涉及版权等,请您及时联系。如果您对某些内容感兴趣,我们可以一起讨论、交流和学习。