人脸识别:关于人脸识别的实现方法和解决方案
- 2021-01-26
- 2011
- 飞驰的心
人脸识别系统主要工作环节:
1、注册人脸原始基材照片
这个环节和传统的用户注册道理一样,传统的用户注册需要填写手机号、用户名、密码等信息。人脸注册相当于在传统注册基础上拍一张照片。注册环节可采用app封闭式注册,即:用户无法通过手动上传照片注册;也可进行小程序开放式注册:1、用户首先上传一张身份证;2、系统通过调用前置摄像头拍一张用户照片;3、用身份证照片和用户照片进行比对,比对成功则表示实名制通过。
2、人脸识别
用手机摄像头或传统的外置摄像头采集照片,将采集到的照片和原始基材照片进行比对,后端程序会产生两张照片的匹配值 0.00000-1 值越高则表示匹配度越高;我们根据预设的值确定识别是否成功,例如:设置0.8及以上为识别成功;反之为识别失败。
3、软件工作原理
软件启动后首先将已经注册的人脸照片进行导入、然后提取人脸特征,最后将人脸图像转换成image集合;
软件至此初始化完成,侦听端口开始随时响应比对请求;
问题来了:如果基材库有1万张(或更多)照片,一次把这些提取转换成集合,服务器会立刻宕机,所以需要分批比对,如果照片很多,即便分配比对也非常耗时;
支付宝的线下刷脸机是这么解决的:
第一次刷脸场景:需要输入自己的【手机号】这样就容易多了;
请求提交后,云端系统会根据手机号,把你在云端之前存储的照片提取出来(只需要取一张照片),放入集合和你现场照片进行比对;
比对成功则发起支付逻辑。
刷脸设备本地把你当前的照片和手机号进行存储,以备下次使用;
第二次刷脸场景:
刷脸后,设备先在本地脸谱库里找有没有你的信息,如果没有:重复上一步流程,如果有,则取出上次的手机号和你本次的照片发送至云端;
这时候引申出另外一个可以忽略的问题,本地比对照片可以忽略效率问题,本地机器存储的照片往往优先;
比对之前将系统库的全部照片提取出来,分成几个集合小组(例如:每个比对集合100张照片 每个照片1M)每个集合也就占用100M左右的内存,一万人的照片也就是100个集合,完全不存在宕机的情况;
支付宝云端就不同了,它不可能为了你一次请求提出数亿人的头像供你比对。
软件主界面
软件即可单机使用也可配置网络参数成为服务器使用
软件采用c#开发 核心算法采用c++开发
支持用户自定义构建人脸库 基材照片适应性极强
配置服务器模式后 软件自行守护在任务栏侦听网络请求
本博客所有内容均为原创,原则上我不希望你转载。如特别喜欢而转载的话,请务必注明出处“网际飞扬 http://www.fayo.net”
否则本人闲来无事可能会把你误当成维权的靶子。
评论
全部评论
共{{commentCount}}条{{rs.Msg_Content}}