一种人脸验证系统及方法转让专利

申请号 : CN201611153266.5

文献号 : CN106790493B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钟斌

申请人 : 深圳云天励飞技术有限公司

摘要 :

本发明提供一种人脸验证系统及方法,属于人脸识别验证技术领域。本发明系统包括人脸视频采集装置、与人脸视频采集装置相连的后台服务器,与后台服务器相连的前端客户端,所述前端客户端设有人脸验证接入组件,所述人脸验证接入组件将用户请求发送给人脸验证服务器,人脸验证服务器根据预设的流程进行基于视频或图像的人脸验证,并将验证结果反馈给人脸验证接入组件,本发明还提供了一种人脸验证方法。本发明的有益效果为:对现存的待集成平台无任何硬件上的门槛和要求,可以和很低廉成本的平台做集成;纯软件的升级和集成,对现有和的已经安装和部署的设备和硬件无任何改造的需求,实现无缝集成;具有很高的实时处理及并发处理能力。

权利要求 :

1.一种人脸验证系统,包括人脸视频采集装置及与人脸视频采集装置相连的后台服务器,其特征在于:还包括与后台服务器相连的前端客户端,所述前端客户端设有人脸验证接入组件,所述人脸验证接入组件将用户请求发送给后台服务器,后台服务器根据人脸视频采集装置获取的视频进行人脸验证,并将验证结果反馈给人脸验证接入组件,所述人脸验证接入组件包括异步消息状态机,所述异步消息状态机包括请求处理和管理模块、核心状态机、外部请求队列缓存模块和外部消息输入队列缓存模块,所述请求处理和管理模块包括存储用户请求的状态机请求队列缓存单元和用于将请求按顺序取出并发送给核心状态机的状态机请求处理单元,所述核心状态机通过与外部请求队列缓存模块相连的后台接口将请求发送给后台服务器,所述外部请求队列缓存模块存储后台服务器返回的验证消息,并驱动核心状态机进行状态转换,所述核心状态机将验证结果发送给状态机请求处理单元。

2.根据权利要求1所述的人脸验证系统,其特征在于:所述核心状态机的状态包括初始状态、1个以上验证状态、失败状态和成功状态。

3.根据权利要求2所述的人脸验证系统,其特征在于:所述后台服务器包括前端请求缓存分发层、异步消息输出队列存储模块、一个以上服务器,所述服务器内设有状态机Map、1个以上验证模块,所述后台服务器根据前端请求缓存分发层分发的前端请求,在所述状态机Map内设置于前端核心状态机状态对应的状态机,所述状态机分别与验证模块及异步消息输出队列存储模块相连。

4.根据权利要求3所述的人脸验证系统,其特征在于:当所述验证模块处理完毕,所述状态机根据验证模块处理结果进行状态转换,当所述验证模块返回验证失败或者验证成功结果时,所述状态机Map内对应的状态机被删除。

5.根据权利要求4所述的人脸验证系统,其特征在于:所述核心状态机和状态机的每次请求、消息处理及状态转换都是异步的。

6.一种基于权利要求1-5任一项所述人脸验证系统的人脸验证方法,其特征在于包括如下步骤:S1:人脸验证接入组件接收到用户请求,将请求发送给后台服务器;

S2:后台服务器接收到前端客户端的请求后,对视频采集装置采集的视频进行人脸视频和/或图像的采集和验证;

S3:后台服务器将验证结果返回给人脸验证接入组件。

7.根据权利要求6所述的人脸验证方法,其特征在于:所述人脸验证接入组件包括异步消息状态机,所述异步消息状态机包括请求处理和管理模块、核心状态机、外部请求队列缓存模块和外部消息输入队列缓存模块,所述请求处理和管理模块包括状态机请求队列缓存单元和状态机请求处理单元,所述异步消息状态机处理方法包括如下步骤:A1:当接收到用户的请求时,将请求加入请求队列;

A2:状态机请求处理单元根据顺序取出一个请求,读取其相关的核心状态机配置信息,根据配置信息驱动核心状态机进行状态转换;

A3:当核心状态机进行状态转换后,向外部请求队列发送相关请求,并在外部消息输入队列中等待消息;

A4:当核心状态机成功接到消息时,核心状态机进行下一个状态转换;

A5:当核心状态机进入失败状态或成功状态时,会向请求处理和管理模块发送请求完成消息,同时核心状态机回到初始状态;

A6:请求队列完成当前次请求,准备进行下一次请求的处理,直到请求队列中的所有请求都处理完毕为止。

8.根据权利要求7所述的人脸验证方法,其特征在于:所述后台服务器中设有与核心状态机对应的状态机,所述后台服务器对一次请求的处理方法包括如下步骤:B1:当一次请求通过前端请求缓存分发层被分发到服务器时,在该服务器的状态机Map中创建对应的状态机;

B2:读取其相关的核心状态机配置信息,根据配置信息驱动状态机的状态转换;

B3:当状态机进行状态转换后,向对应的验证模块发送消息请求;

B4:当验证模块处理完成时,返回处理结果给状态机,状态机通过异步消息输出队列发送请求完成消息,并根据接收到结果进行状态转换;

B5:当状态机进入失败状态或成功状态时,会向异步消息输出队列发送请求完成消息,所述状态机Map内对应的状态机被删除;

B6:当前请求处理完成。

9.根据权利要求8所述的人脸验证方法,其特征在于:在步骤B1中,所述后台服务器能够同时并发处理多个人脸验证接入组件的请求;对每一个前端请求,后台服务器维护一个独立的状态机来记录每个请求的完成状态。

说明书 :

一种人脸验证系统及方法

技术领域

[0001] 本发明涉及人脸识别技术,尤其涉及一种人脸验证系统,还涉及一种基于所述系统的人脸验证方法。

背景技术

[0002] 近年来,得益于计算机硬件系统的计算能力,特别是基于GPU的计算平台的计算能力的提升,深度神经网络人工智能的理论和算法模进入了新一轮的发展热潮。其中自然语言处理和机器视觉是其中两个热点领域,而人脸识别是作为机器视觉方向中产品化前景最明确的细分领域。目前人脸识别比对的准确率在很多场景都达到了99.5%以上,已经具备了进行产品化实际应用的前提条件。也正是如此,目前基于人脸识别技术作为一种生物特征的身份特征验证手段,已经越来越广泛地用于众多需要进行身份验证,进入授权等领域,如门禁、闸机、安检等场景;结合生物活体识别的等配套技术的甚至以用于银行,证券、金融等对身份的验证和鉴权准确要求极高的领域。
[0003] 但是在实际的工程化运用过程中,把人脸验证加入目前的已经广泛存在的各类门禁,闸机,安检等设备和环境中往往往存在以下一些共性问题:
[0004] 首先,人脸验证技术目前一般是作为一种增强的手段加入到现有的系统当中,而不是替换掉目前已经存在系统,所以共同的问题的如何以最低的成本改造目前极其广泛存在的系统中。
[0005] 其次,目前人脸识别技术一般掌握在一些新兴的科技公司手中,而门禁,闸机,安检等系统则一般由一些比较传统的公司的所主导。所以在进行人脸验证功能的升级的时候,一般会寻求外部的技术合作。
[0006] 在具体的实施方案中,目前现存常见的方案如下:
[0007] 1、单机硬件扩展方案。通过专用的人脸识别硬件对现有的硬件进行扩展,使单个设备具备人脸识别功能扩展。
[0008] 2、单机的软件的SDK的方案。利用现有硬件的计算能力,通过集成第三的人脸识别SDK来进进行人脸识别的功能的扩展。
[0009] 3、分开部署两套并行的系统。传统的验证系统和人脸验证系统两套验证系统并行运行。
[0010] 进行分析可以发现,不管是以上两种方案的哪一种,都存在以下一些问题:
[0011] 首先,集成的难度高,项目实施的难度大,具体体现在基于硬件扩展方案由于涉及到硬件的改造,涉及大量的人工成本,现场的施工成本,线路造成成本,基于在一些地方,基本都不支持硬件的改造。
[0012] 其次,如果对现行已经存在的系统进行全新的改造升级,将速来极大的成本的浪费。
[0013] 再次,对于系统集成厂商来说,对于增强的产品系列需要进行不同的硬件软件设计,也是一种成本比较高的方案。即使是采用SDK集成的方案,由于人脸算法的对机器的硬件有一定的计算能力的门槛要求,它无法运行在目前大部门禁/闸机类系统中比较低端的硬件上,如果据此进行方案的硬件的升级,也将带来成本的快速上升。
[0014] 同时在具体的应用场景中,不同的卡口人流分布往往极不均匀,但这种不均匀并不是固定不变的,而是随机变化的,这要求每台单机都需要的比较高的峰值能力。但这种峰值能力在大部分情况是闲置的,这也带来成本的浪费。

发明内容

[0015] 为解决现有技术中的问题,本发明提供一种人脸验证系统,还提供一种基于所述系统的人脸验证方法。
[0016] 本发明人脸验证系统包括人脸视频采集装置、与人脸视频采集装置相连的后台服务器,与后台服务器相连的前端客户端,所述前端客户端设有人脸验证接入组件,所述人脸验证接入组件将用户请求发送给后台服务器,后台服务器根据人脸视频采集装置获取的视频进行人脸验证,并将验证结果反馈给人脸验证接入组件。
[0017] 本发明作进一步改进,所述人脸验证接入组件包括异步消息状态机,所述异步消息状态机包括请求处理和管理模块、核心状态机、外部请求队列缓存模块和外部消息输入队列缓存模块,所述请求处理和管理模块包括存储用户请求的状态机请求队列缓存单元和用于将请求按顺序取出并发送给核心状态机的状态机请求处理单元,所述核心状态机通过与外部请求队列缓存模块相连的后台接口将请求发送给后台服务器,所述外部请求队列缓存模块存储后台服务器返回的验证消息,并驱动核心状态机进行状态转换,所述核心状态机将验证结果发送给状态机请求处理单元。
[0018] 本发明作进一步改进,所述核心状态机的状态包括初始状态、1个以上验证状态、失败状态和成功状态。
[0019] 本发明作进一步改进,所述后台服务器包括前端请求缓存分发层、异步消息输出队列存储模块、一个以上服务器,所述服务器内设有状态机Map、1个以上验证模块,所述后台服务器根据前端请求缓存分发层分发的前端请求,在所述状态机Map内设置于前端核心状态机状态对应的状态机,所述状态机分别与验证模块及异步消息输出队列存储模块相连。
[0020] 本发明作进一步改进,当所述验证模块处理完毕,所述状态机根据验证模块处理结果进行状态转换,当所述验证模块返回验证失败或者验证成功结果时,所述状态机Map内对应的状态机被删除。
[0021] 本发明作进一步改进,所述核心状态机和状态机的每次请求、消息处理及状态转换都是异步的。
[0022] 本发明还提供一种基于所述系统的人脸验证方法,包括如下步骤:
[0023] S1:人脸验证接入组件接收到用户请求,将请求发送给后台服务器;
[0024] S2:后台服务器接收到前端客户端的请求后,对视频采集装置采集的视频进行人脸视频和/或图像的采集和验证;
[0025] S3:后台服务器将验证结果返回给人脸验证接入组件。
[0026] 本发明作进一步改进,所述人脸验证接入组件包括异步消息状态机,所述异步消息状态机包括请求处理和管理模块、核心状态机、外部请求队列缓存模块和外部消息输入队列缓存模块,所述请求处理和管理模块包括状态机请求队列缓存单元和状态机请求处理单元,所述异步消息状态机处理方法包括如下步骤:
[0027] A1:当接收到用户的请求时,将请求加入请求队列;
[0028] A2:状态机请求处理单元根据顺序取出一个请求,读取其相关的核心状态机配置信息,根据配置信息驱动核心状态机进行状态转换;
[0029] A3:当核心状态机进行状态转换后,向外部请求队列发送相关请求,并在外部消息输入队列中等待消息;
[0030] A4:当核心状态机成功接到消息时,核心状态机进行下一个状态转换;
[0031] A5:当核心状态机进入失败状态或成功状态时,会向请求处理和管理模块发送请求完成消息,同时核心状态机回到初始状态;
[0032] A6:请求队列完成当前次请求,准备进行下一次请求的处理,直到请求队列中的所有请求都处理完毕为止。
[0033] 本发明作进一步改进,所述后台服务器中设有与核心状态机对应的状态机,所述后台服务器对一次请求的处理方法包括如下步骤:
[0034] B1:当一次请求通过前端请求缓存分发层被分发到服务器时,在该服务器的状态机Map中创建对应的状态机;
[0035] B2:读取其相关的核心状态机配置信息,根据配置信息驱动状态机的状态转换;
[0036] B3:当状态机进行状态转换后,向对应的验证模块发送消息请求;
[0037] B4:当验证模块处理完成时,返回处理结果给状态机,状态机通过异步消息输出队列发送请求完成消息,并根据接收到结果进行状态转换;
[0038] B5:当状态机进入失败状态或成功状态时,会向异步消息输出队列发送请求完成消息,所述状态机Map内对应的状态机被删除;
[0039] B6:当前请求处理完成。
[0040] 本发明作进一步改进,在步骤B1中,所述后台服务器能够同时并发处理多个人脸验证接入组件的请求;对每一个前端请求,后台服务器维护一个独立的状态机来记录每个请求的完成状态。
[0041] 与现有技术相比,本发明的有益效果是:对现存的待集成平台无任何硬件上的门槛和要求,可以和很低廉成本的平台做集成;纯软件的升级和集成,对现有和的已经安装和部署的设备和硬件无任何改造的需求,实现无缝集成;可以支持大规模的集群应用,可以进行计算资源共享;通过并行的、集中的计算模式,实现高可用性;具有很高的实时处理及并发处理能力。

附图说明

[0042] 图1为本发明系统结构示意图;
[0043] 图2为本发明异步消息状态机结构示意图;
[0044] 图3为本发明后台处理器结构示意图。

具体实施方式

[0045] 下面结合附图和实施例对本发明做进一步详细说明。
[0046] 本发明在现有技术基础上要达到以下两个看起来矛盾的目标:
[0047] (1)尽可能少的影响现在的验证系统结构,包括软件和硬件结构;
[0048] (2)尽可能提供高的实时处理,并发处理处理能力。
[0049] 为实现以上两个目标,本发明的技术方案如下:
[0050] 如图1所示,本发明人脸验证系统包括人脸视频采集装置及与人脸视频采集装置相连的后台服务器,与后台服务器相连的前端客户端,所述前端客户端设有人脸验证接入组件,所述人脸验证接入组件将用户请求发送给后台服务器,后台服务器根据人脸视频采集装置获取的视频进行人脸验证,并将验证结果反馈给人脸验证接入组件。
[0051] 本发明的关键点如下:
[0052] 人脸验证接入组件,为超轻量的前端,本例超轻量的人脸验证接入组件剥离了复杂的人脸验证算法对硬件系统、硬件的计算能力的依赖,使其可以集成了任意现存的各种验证类的软硬中。本例集成在原有的通道、道闸、门禁等验证硬件系统中,对现存的待集成平台无任何硬件上的门槛和要求,可以和很低廉成本的平台做集成;纯软件的升级和集成,对现有和的已经安装和部署的设备和硬件无任何改造的需求,实现无缝集成。
[0053] 本例的后台服务器提供高实时、高立项的人脸验证计算服务,包括人脸检测/活体检测/特征提取/特征验证等服务。可以支持大规模的集群应用,可以进行计算资源共享;本例通过后台服务器并行的、集中的计算模式,实现高可用性;具有很高的实时处理及并发处理能力。
[0054] 人脸验证,视频/图片数据的采集是必不可少的环节。在本发明中,通过通道、闸机、门禁等处的人脸视频采集装置,比如录像机、摄像头等等,录制视频传输给后台服务器,然后后台服务器完成对人脸视频/图片的采集、验证等工作,保留了原有的验证的软硬件系统的集成的轻量性。
[0055] 如图2所示,本例人脸验证接入组件的核心是由一个可配置的异步消息状态机构成,所述异步消息状态机包括请求处理和管理模块、核心状态机、外部请求队列缓存模块和外部消息输入队列缓存模块,所述请求处理和管理模块包括存储用户请求的状态机请求队列缓存单元和用于将请求按顺序取出并发送给核心状态机的状态机请求处理单元,所述核心状态机通过与外部请求队列缓存模块相连的后台接口将请求发送给后台服务器,所述外部请求队列缓存模块存储后台服务器返回的验证消息,并驱动核心状态机进行状态转换,所述核心状态机将验证结果发送给状态机请求处理单元。
[0056] 本例根据验证的内容,所述核心状态机的状态包括初始状态、活体检测步骤1(眨眼)状态、活体检测步骤2(抿嘴)状态、人脸特征验证状态、失败状态和成功状态。当然,也可以根据实际情况增减人脸验证请求及状态。
[0057] 本例的异步消息状态机关键点如下:
[0058] (1)状态机请求队列中的每个请求,都将驱动核心状态机完成一次完整的状态转换;
[0059] (2)每次核心状态机的状态转换,一定是由初始状态开始,最终以失败状态或成功状态之一结束;
[0060] (3)核心状态机通过外部请求队列向外发送请求(如请求活体检测步骤1,活检检测步骤2,人脸特征验证),并通过外部输入消息队列来驱动状态转换。
[0061] (4)每次核心状态机的请求与核心状态机的消息处理、状态转换都是异步的,这样保证系统响应的实时性的同时又保证和极低的资源/计算消耗。
[0062] 如图3所示,本发明高实时高并发的人脸验证后台服务器包括前端请求缓存分发层、异步消息输出队列存储模块、一个以上服务器(服务器1,服务器2…服务器n),每个服务器内都设有状态机Map、与核心状态机内验证项目相对应的验证模块,所述后台服务器根据前端请求缓存分发层分发的前端请求,在所述状态机Map内设置于前端核心状态机状态对应的状态机,所述状态机分别与验证模块及异步消息输出队列存储模块相连。
[0063] 本发明后台服务器是一个集群实现(即有多台服务器来做验证计算),多台服务器组合集成,其中请求缓存/分发/及输出,会运行在这多台中的其中一台多几台中,本例的服务器是该后台服务器集群中的其中一个。
[0064] 本发明后台处理器采用的高实时高并发的后台处理结构,其核心点在于:
[0065] (1)通过前端请求缓存分发层,实现处理的负载均衡,其中均衡策略可灵活配置,简单的如基于轮询的负载均衡机制;
[0066] (2)对于每一个前端请求,后台维护一个独立的状态机来记录每个请求的完成状态;
[0067] (3)对于多个前端请求的多个状态机,后台通过维护一个状态机Map来管理不同的状态机;
[0068] (4)当前端请求生成时,后台服务器对应的服务器创建与前端核心状态机对应的状态机,当状态机转换到成功或失败状态时,后台服务器删除此状态机;
[0069] (5)每个状态机独立的向与请求对应的验证模块的算法处理单元发送请求和接收处理结果;
[0070] (6)每个验证模块(如活体检测模块1,活体检测模块2, 人验验证模块等等)通过队列并发地向多个状态机的请求提供算法处理服务;
[0071] (7)所有服务器通过统一的异步消息输出队列向前端返回处理结果;
[0072] (8)状态机的每次请求、消息处理及状态转换都是异步的。
[0073] 本发明还提供一种基于所述系统的人脸验证方法,包括如下步骤:
[0074] S1:人脸验证接入组件接收到用户请求,将请求发送给后台服务器;
[0075] S2:后台服务器接收到前端客户端的请求后,对视频采集装置采集的视频进行人脸视频和/或图像的采集和验证;
[0076] S3:后台服务器将验证结果返回给人脸验证接入组件。
[0077] 本例异步消息状态机针对一次请求的处理方法包括如下步骤:
[0078] A1:当接收到用户的请求时,将请求加入请求队列;
[0079] A2:状态机请求处理单元的工作线程根据请求队列的顺序取出一个请求,读取其相关的核心状态机配置信息,根据配置信息驱动核心状态机从初始状态到活体检测步骤1状态、活体检测步骤2状态、人脸特征验证状态三个状态中的一个;
[0080] A3:当核心状态机进入到状态到活体检测步骤1状态、活体检测步骤2状态、人脸特征验证状态,会首先向外部请求队列发送相关请求,并在外部消息输入队列中等待消息;
[0081] A4:当核心状态机成功接到消息时,状态机进行状态转换操作,由收到消息的不同,决定进入下一下状态,下一个状态可能是下个步骤或失败/成功等;
[0082] A5:当核心状态机进入失败状态或成功状态时,会向请求处理和管理模块发送请求完成消息,同时核心状态机回到初始状态;
[0083] A6:请求队列完成当前次请求,准备进行下一次请求的处理,直到请求队列中的所有请求都处理完毕为止。
[0084] 本例后台服务器针对一次前端请求的处理方法与前端的核心状态机类似,其过程包括如下步骤:
[0085] B1:当一次请求通过前端请求缓存分发层被分发到服务器时,在该服务器的状态机Map中创建对应的状态机;
[0086] B2:读取其相关的核心状态机配置信息,根据配置信息驱动状态机从初始状态到活体检测步骤1,活体检测步骤2,人脸特征验证三个状态中的一个;
[0087] B3:当状态机进入到活体检测步骤1,活体检测步骤2,人脸特征验证状态后,会首先向对应验证模块的算法处理单元发送消息请求,然后进入结果等待状态;
[0088] B4:当验证模块处理完成时,返回处理结果给状态机,状态机通过异步消息输出队列发送请求完成消息,并根据接收到结果,决定进入下一下状态,下一个状状态可能是下个步骤或失败/成功等;
[0089] B5:当状态机进入失败状态或成功状态时,会向异步消息输出队列发送请求完成消息,所述状态机Map内对应的状态机被删除;
[0090] B6:当前请求处理完成。
[0091] 其中,在步骤B1中,所述后台服务器能够同时并发处理多个人脸验证接入组件的请求;对每一个前端请求,后台服务器维护一个独立的状态机来记录每个请求的完成状态。
[0092] 综上所述,本发明前端的异步消息状态机处理结构兼顾了实时性和低计算/处理,对系统要求低,易于集成到几乎所有嵌入式和非嵌入式的验证系统。
[0093] 本发明采用超轻量级的验证前端及高实时高并发的后端结合的处理架构,对现存的待集成平台无任何硬件上的门槛和要求。可以和很低廉成本的平台做集成。纯软件的升级和集成,对现有和的已经安装和部署的设备和硬件无任何改造的需求。实现无缝集成。
[0094] 本发明支持大规模的集群应用,可以进行计算资源共享;并通过并行的、集中的计算模式,实现高可用性;具有很高的实时处理及并发处理能力。
[0095] 以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。