我现在正在做一个关于人脸识别的项目,是一个访客管理系统,我想记录一下,大家可以参考一下需要注意哪些地方。
人脸检测:
- 人脸检测:检测图片中的人脸并标记出位置信息;
- 人脸关键点:展示人脸的核心关键点信息,及72个关键点信息。
- 人脸属性值:展示人脸属性信息,如年龄、性别等。
- 人脸质量信息:返回人脸各部分的遮挡、光照、模糊、完整度、置信度等信息。
- 检测响应速度,与图片中人脸数量相关,人脸数量较多时响应时间会有些许延长
检测的条件包括:遮挡范围,模糊度范围,姿态角度,人脸完整度,人脸大小等。
人脸对比:
两张人脸图片相似度对比- 多种图片类型:支持生活照、证件照、身份证芯片照、带网纹照四种类型的人脸对比;
- 活体检测,判断其中的人脸是否为二次翻拍
- 质量检测:返回模糊、光照等质量检测信息,用于辅助判断图片是否符合识别要求;
- 典型应用场景:如人证合一验证,用户认证等
人脸查找:
1:N人脸识别与1:N人脸认证的差别在于:人脸识别是在指定人脸集合中进行直接地人脸检索操作,而人脸认证是基于uid,先调取这个uid对应的人脸,再在这个uid对应的人脸集合中进行检索(因为每个uid通常对应的只有一张人脸,所以通常也就变为了1:1对比);实际应用中,人脸认证需要用户或系统先输入id,这增加了验证安全度,但也增加了复杂度。
M:N识别的原理,相当于在多个人脸的图片中,先分别找出所有人脸,然后分别在待查找的人脸集合中,分别做1:N识别,最后将识别结果汇总在一起进行返回。
典型应用场景:如人脸闸机,考勤签到,安防监控等。
身份验证:
- 质量检测(可选):判断图片中是否包含人脸,以及人脸在姿态、遮挡、模糊、光照等方面是否符合识别条件;
- 活体检测(可选):基于图片中的破绽分析,判断其中的人脸是否为二次翻拍(举例:如用户A用手机拍摄了一张包含人脸的图片一,用户B翻拍了图片一得到了图片二,并用图片二伪造成用户A去进行识别操作,这种情况普遍发生在金融开户、实名认证等环节。);
- 公安验证(必选):基于姓名和身份证号,调取公民身份证小图(源自公安系统),将当前获取的人脸图片,与此证件小图进行对比,得出比对分数,并基于此进行业务判断是否为同一人。由于公安系统小图,具有最权威的身份证明作用,故对用户本人的验证结果可信度也最为合理。
业务逻辑
- 上述三项能力为顺序串行验证,接口默认返回公安身份对比分值,质量检测和活体检测为可选项。如选择了这两项,则验证顺序为
人脸质量检测
->活体检测
->公安身份验证
。您也可以根据业务场景,选择这两项中的某一项或都不选择。 - 如选择了前两个环节,则有任意一个条件不通过,则整个请求流程终止,并返回错误码,描述具体的不符合信息。
- 基于此顺序串行验证逻辑,可以避免大量不符合条件的请求流转到公安验证,节约您的成本。
推荐阈值
- 此接口使用的对比算法,针对带水纹证件照采用了专项的模型处理,可保证水纹信息的影响降到尽可能低。
- 如比对成功,最终返回的有效数据为一个对比分值,在0~1之间,您可以设定具体的阈值来判断是否验证通过。
- 人证相似度的推荐阈值为0.8,对应的误识率为万分之一。