基于二代身份证的人脸对比系统
基于二代身份证的人脸对比系统可以划分为如下三个部分。分别为人脸检测、人脸特征点提取、以及特征点的匹配和相似度计算。根据相似度的大小确定是同一个人的可能性大小,设定一个大阈值bigthreshold、一个小阈值smallthreshold,大于bigthreshold则判定是同一个人,小于smallthreshold则判定不是同一个人,中间的部分可能不是很有把握,可能需要二次判定或者人工判定
1.人脸检测
基于opencv的人脸检测器可以较好检测到人脸。
2.特征提取
(1)常见的有sift和surf特征点提取,但是对人脸的提取效果并不是特别好。
(2)基于人脸的Gabor特征点表示
(3)还有很多第三方开源库可以检测和定位人脸特特征点
第一个,ASM是基于统计学习模型的特征点提取的一种方法。常见的工具包有3个ASMLibrary、asmlib-opencv、stasm。
第二个,是Dlib库,Dlib是一个机器学习的C++库,包含了许多机器学习常用的算法。而且文档和例子都非常详细。
第三个,CLM-framework,也被称为剑桥人脸跟踪器,是一个用来进行人脸特征点检测和头部姿势估计的C++库。
以上这些都是一些比较出名的库,百度一下相关关键词就有相关教程,包括下载、安装和环境配置以及一些samples。
3.特征匹配和相似度计算。
特征点匹配和相似度计算通常是基于距离。常见的有欧氏距离和汉明距离、还有余弦相似度等。
欧氏距离
余弦相似度:
4.一些效果展示
说明:为了方面演示,做了一个基于MFC的界面展示~~由于不方便用自己的身份证做演示,暂时从网上找到明星的图片做实验演示,分别是白百何和王珞丹的,还是很相似的,难怪不容易区分,哈哈哈。给两张带脸的图片都可以检测出来的,像身份证和学生证也是可以的
人脸检测:
特征点检测:
人脸对比:
GitHub代码:https://github.com/baolinhu/face_compare
参考文献
1. 基于局部特征的人脸识别身份验证系统_马文芹
2. 基于二代身份证的人脸识别身份验证系统研究_冯天从
3. http://blog.csdn.net/xiamentingtao/article/details/50908190
超跑开起来,溜了溜了。有什么问题欢迎讨论交流,下篇见~~