CN111985446A - 人脸识别方法以及系统 - Google Patents
人脸识别方法以及系统 Download PDFInfo
- Publication number
- CN111985446A CN111985446A CN202010908573.XA CN202010908573A CN111985446A CN 111985446 A CN111985446 A CN 111985446A CN 202010908573 A CN202010908573 A CN 202010908573A CN 111985446 A CN111985446 A CN 111985446A
- Authority
- CN
- China
- Prior art keywords
- face feature
- result
- sub
- face
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004891 communication Methods 0.000 claims abstract description 85
- 239000013598 vector Substances 0.000 claims abstract description 76
- 239000011159 matrix material Substances 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 10
- 238000000605 extraction Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 238000013500 data storage Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 6
- 230000001815 facial effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/172—Classification, e.g. identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Collating Specific Patterns (AREA)
Abstract
本发明涉及大数据领域,提供一种人脸识别方法,包括将获取到的人脸特征向量及识别请求放入消息队列,通过通信协议及消息队列同步发送识别请求及人脸特征向量至多个子网关,基于识别请求从多个子网关对应的子机构中预设的人脸特征数据库提取多个样本人脸特征数据,将多个样本人脸特征数据组成样本人脸特征矩阵;计算人脸特征向量与样本人脸特征矩阵的欧氏距离,基于欧氏距离生成结果报文,通过通信协议及消息队列同步向总网关发送结果报文,以使总网关将结果报文存入预设的结果库中,并将结果报文发送至客户终端。采用本发明的人脸识别方法,保证了数据传输过程中的信息安全性,提高了人脸识别的效率。
Description
技术领域
本发明实施例涉及大数据领域,尤其涉及一种人脸识别方法以及系统。
背景技术
人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。随着其技术的成熟和社会认同度的提高,人脸识别被广泛应用在很多领域中。然而,发明人发现,在现有的人脸识别系统中,人脸识别过程中所需要使用到的人脸数据库是在万级别,甚至是超过万级数量,达到了亿级数量,在如此庞大的数量级的数据库中进行人脸搜索和识别,效率低。
发明内容
有鉴于此,本发明实施例提供了一种人脸识别方法、系统、计算机设备及计算机可读存储介质,用于解决现有的人脸识别系统在庞大的数量级的数据库中进行人脸搜索和识别操作效率低的问题。
本发明实施例是通过下述技术方案来解决上述技术问题:
一种人脸识别方法,包括:
通过总网关获取客户终端发送的识别请求,所述识别请求用于请求识别目标用户的待识别图像;
基于所述识别请求提取所述待识别图像中的人脸特征向量,将所述人脸特征向量以及所述识别请求放入消息队列中;
通过通信协议以及所述消息队列同步发送所述识别请求以及人脸特征向量至多个子网关;
通过所述多个子网关接收所述识别请求和人脸特征向量,并基于所述识别请求,从多个子网关对应的多个子机构中预设的人脸特征数据库中提取多个样本人脸特征数据,将所述多个样本人脸特征数据组合成样本人脸特征矩阵;
计算所述人脸特征向量与样本人脸特征矩阵的欧氏距离,并基于所述欧氏距离生成识别结果;
基于所述识别结果生成结果报文,通过所述通信协议以及所述消息队列同步向所述总网关发送所述结果报文,以使所述总网关接收所述结果报文并将所述结果报文存入预设的结果库中,并通过所述总网关发送所述结果报文至所述客户终端。
进一步地,所述通过通信协议以及所述消息队列同步发送所述识别请求以及人脸特征向量至多个子网关包括:
从预设的机构库中拉取所述多个子机构对应的多个地址数据;
根据所述多个地址数据获取对应的多个子机构的子网关,并通过所述通信协议以及消息队列同步向所述多个子机构的子网关发送所述识别请求以及人脸特征向量。
进一步地,所述通过所述多个子网关接收所述识别请求和人脸特征向量还包括:
当所述子网关先接收到所述通信协议发送的识别请求以及人脸特征向量的时,响应并执行所述通信协议发送的识别请求,向所述总网关返回第一请求操作反馈指令,且在所述子网关后接收到所述消息队列发送的识别请求时,不执行所述消息队列发送的识别请求;
当所述子网关先接收到所述消息队列发送的识别请求以及人脸特征向量时,响应并执行所述消息队列发送的识别请求,且在所述子网关后接收到所述通信协议发送的识别请求时,生成第二请求操作反馈指令,所述第二请求操作反馈指令用于指示所述子网关接收到所述通信协议发送的识别请求,且不执行所述通信协议发送的识别请求。
进一步地,所述通过所述多个子网关接收所述识别请求和人脸特征向量之后还包括:
解析所述识别请求,以从所述识别请求中提取请求标识数据;
查询所述请求标识数据的执行状态:当所述请求标识数据的执行状态包括第一执行状态时,则不执行所述识别请求;当所述请求标识数据的执行状态包括第二执行状态时,则执行所述识别请求。
进一步地,所述基于所述识别结果生成结果报文,通过所述通信协议以及所述消息队列同步向所述总网关发送所述结果报文,以使所述总网关接收所述结果报文并将所述结果报文存入预设的结果库中还包括:
当所述总网关先接收到所述通信协议发送的结果报文时,将接收到的通过所述通信协议发送的结果报文存入预设的结果库中,并生成第一结果操作反馈指令,且在所述总网关后接收到所述消息队列发送的结果报文时,不对所述消息队列发送的结果报文执行操作;
当所述总网关先接收到所述消息队列发送的结果报文时,将接收到的通过所述消息队列发送的结果报文存入预设的结果库中,且在所述总网关后接收到所述通信协议发送的结果报文时,生成第二结果操作反馈指令,且不对所述通信协议发送的结果报文执行操作。
进一步地,所述方法还包括:
获取多个用户的样本人脸图像数据,并为所述多个用户的样本人脸图像数据赋予人脸标签;
将所述多个用户的样本人脸图像数据以及对应的人脸标签写入预设的人脸数据库中;
从所述多个用户的样本人脸图像数据中提取多个样本人脸特征数据;
将所述多个样本人脸特征数据存入所述预设的人脸特征数据库中。
进一步地,所述计算所述人脸特征向量与样本人脸特征矩阵的欧氏距离,并基于所述欧氏距离生成识别结果还包括:
从所述样本人脸特征矩阵的每行中提取前n列的样本特征矩阵;
分别计算人脸特征向量和每行中前n列的样本特征矩阵之间的欧氏距离;
将多个所述欧氏距离分别与预设的人脸阈值进行比对,并将小于所述人脸阈值的欧氏距离对应的样本特征数据确定为目标人脸特征数据;
根据所述目标人脸特征数据在所述样本人脸特征矩阵中索引,以确定目标人脸特征数据对应的目标行;
基于所述目标行从所述样本人脸特征矩阵中提取目标身份数据;
基于所述目标身份数据生成识别结果。
为了实现上述目的,本发明实施例还提供一种人脸识别系统,包括:
采集模块,用于通过总网关获取客户终端发送的识别请求,所述识别请求用于请求识别目标用户的待识别图像;
数据存储模块,用于基于所述识别请求提取所述待识别图像中的人脸特征向量,将所述人脸特征向量以及所述识别请求放入消息队列中;
同步发送模块,用于通过通信协议以及所述消息队列同步发送所述识别请求以及人脸特征向量至多个子网关;
提取模块,用于通过所述多个子网关接收所述识别请求和人脸特征向量,并基于所述识别请求,从多个子网关对应的多个子机构中预设的人脸特征数据库中提取多个样本人脸特征数据,将所述多个样本人脸特征数据组合成样本人脸特征矩阵;
计算模块,用于计算所述人脸特征向量与样本人脸特征矩阵的欧氏距离,并基于所述欧氏距离生成识别结果;
结果输出模块,用于基于所述识别结果生成结果报文,通过所述通信协议以及所述消息队列同步向所述总网关发送所述结果报文,以使所述总网关接收所述结果报文并将所述结果报文存入预设的结果库中,并通过所述总网关发送所述结果报文至所述客户终端。
为了实现上述目的,本发明实施例还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述人脸识别方法的步骤。
为了实现上述目的,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的人脸识别方法的步骤。
本发明实施例提供的人脸识别方法、系统、计算机设备及计算机可读存储介质,通过通信协议以及消息队列向多个子网关同步发送识别请求以及人脸特征向量,以使多个子网关接收识别请求以及人脸特征向量,并基于人脸特征向量执行识别请求,并生成结果报文,通过通信协议以及消息队列向总网关返回结果报文,在数据传输过程中,传输的是人脸特征向量,保证了传输过程中的信息安全性,提高了人脸识别的效率,且同步传递数据避免了数据被丢失,以及传递的数据被重复执行的情况发生。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为本发明实施例一之人脸识别方法的步骤流程图;
图2为本发明实施例一之人脸识别方法中同步发送识别请求的步骤流程图;
图3为本发明实施例一之人脸识别方法中子网关接收识别请求的步骤流程图;
图4为本发明实施例一之人脸识别方法中解析识别请求的步骤流程图;
图5为本发明实施例一之人脸识别方法中同步发送结果报文的步骤流程图;
图6为本发明实施例一之人脸识别方法中生成识别结果的步骤流程图;
图7为本发明实施例一之人脸识别方法中预先构建人脸数据库以及人脸特征数据库的步骤流程图;
图8为本发明实施例二之人脸识别系统的程序模块示意图;
图9为本发明实施例三之计算机设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
请参阅图1,示出了本发明实施例之人脸识别方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例性描述,具体如下:
如图1所示,所述人脸识别方法可以包括步骤S100~S600,其中:
步骤S100,通过总网关获取客户终端发送的识别请求,所述识别请求用于请求识别待识别图像。
在示例性的实施例中,所述总网关为总机构对应的总网关,用于接收识别请求,所述识别请求用于请求对输入总机构的待识别图像执行人脸匹配任务。
步骤S200,基于所述识别请求提取所述待识别图像中的人脸特征向量,将所述人脸特征向量以及所述识别请求放入消息队列中。
在示例性的实施例中,通过总机构中的特征提取服务器从待识别图像中提取出n维的人脸特征向量,此处的n维根据采用的人脸特征向量提取算法的不同而不同,在此不作限定。其中,人脸特征向量提取算法包括但不限于:LBP(Local Binary Patterns,局部二值模式)算法、PCA(Principal Component Analysis,主成分分析)算法等。
具体的,所述识别请求包括请求标识数据,即请求的id。进一步地,将人脸特征向量以及识别请求按照以下数据结构放入消息队列中:
{requested(请求):“请求的id”,feature(特征):“n维人脸特征向量”}。
步骤S300,通过通信协议以及所述消息队列同步发送所述识别请求以及人脸特征向量至多个子网关。
具体的,消息队列是一个广播式的消息中心,总机构的消息队列发出的消息,被所有在线的子机构监听到,并且子机构可以通过对应的子网关取出消息体,而子机构也通过子机构的消息队列,发送结果消息给总机构。
在示例性的实施例中,如图2所示,步骤S300还可以进一步包括:
步骤S301,从预设的机构库中拉取所述多个子机构对应的多个地址数据。
步骤S302,根据所述多个地址数据获取对应的多个子机构的子网关,并通过所述通信协议以及消息队列同步向所述多个子机构的子网关发送所述识别请求以及人脸特征向量。
具体的,多个子机构对应的子网关的地址数据预先存储在预设的机构库中,即所有子机构对应的子网关的ip地址预先存储在预设的机构库中。
步骤S400,通过所述多个子网关接收所述识别请求和人脸特征向量,并基于所述识别请求,从多个子网关对应的多个子机构中预设的人脸特征数据库中提取多个样本人脸特征数据,将所述多个样本人脸特征数据组合成样本人脸特征矩阵。
示例性的,样本人脸特征矩阵通过特征匹配服务器从预设的人脸特征数据库中提取m个样本人脸特征数据,将m个样本人脸特征数据组合成样本人脸特征矩阵,样本人脸特征矩阵为m行n+18列的特征矩阵,其中,矩阵的行的“n+18”位数字包括:前n位为样本用户的人脸特征值,n+1~n+18位为按位存储的该样本用户的身份证号的每一位。
在示例性的实施例中,如图3所示,所述通过所述多个子网关接收所述识别请求和人脸特征向量还可以进一步包括:
步骤S401,当所述子网关先接收到所述通信协议发送的识别请求以及人脸特征向量的时,响应并执行所述通信协议发送的识别请求,向所述总网关返回第一请求操作反馈指令,且在所述子网关后接收到所述消息队列发送的识别请求时,不执行所述消息队列发送的识别请求;
步骤S402,当所述子网关先接收到所述消息队列发送的识别请求以及人脸特征向量时,响应并执行所述消息队列发送的识别请求,且在所述子网关后接收到所述通信协议发送的识别请求时,生成第二请求操作反馈指令,所述第二请求操作反馈指令用于指示所述子网关接收到所述通信协议发送的识别请求,且不执行所述通信协议发送的识别请求。
示例性的,所述通信协议包括但不限于http(Hypertext Transfer Protocol,超文本传输)协议、TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制/网际)协议等。
具体的,当通信协议发送的识别请求以及人脸特征向量先到达子网关,消息队列发送的识别请求以及人脸特征向量后到达同一子网关时,该子网关驱动对应的子机构执行通信协议分发的识别请求,并在先接收到通信协议分发的识别请求后,向总网关返回第一请求操作反馈指令,第一请求操作反馈指令用于指示子网关接收到通信协议分发的识别请求并开始对通信协议分发的识别请求执行识别操作,对于后接收到的消息队列分发的同一个识别请求,不执行消息队列分发的识别请求。
当消息队列发送的识别请求以及人脸特征向量先到达子网关,通信协议发送的识别请求以及人脸特征向量后到达同一子网关时,该子网关驱动对应的子机构执行消息队列分发的识别请求,对于后接收到的通信协议分发的同一个识别请求,生成并向总网关返回第二请求操作反馈指令,第二请求操作反馈指令用于指示子网关接收到通信协议分发的识别请求且不执行通信协议分发的识别请求。
在示例性的实施例中,在执行识别请求之前,需要判断识别请求的执行状况。如图4所示,具体包括:
步骤S411,解析所述识别请求,以从所述识别请求中提取请求标识数据;
步骤S412,查询所述请求标识数据的执行状态:当所述请求标识数据的执行状态包括第一执行状态时,则不执行所述识别请求;当所述请求标识数据的执行状态包括第二执行状态时,则执行所述识别请求。
具体的,在所述子网关每次接收到识别请求时,解析所述识别请求,并从所述识别请求中提取请求的id,查询所述请求的id的执行状态。当所述请求标识数据的执行状态包括第一执行状态时,则表示为所述请求的id被执行过,那么这次的识别请求不再执行;当所述请求标识数据的执行状态包括第二执行状态时,则表示为请求的id未被执行过,则执行这次的识别请求。步骤S500,计算所述人脸特征向量与样本人脸特征矩阵的欧氏距离,并基于所述欧氏距离生成识别结果。步骤S600,基于所述识别结果生成结果报文,通过所述通信协议以及所述消息队列同步向所述总网关发送所述结果报文,以使所述总网关接收所述结果报文并将所述结果报文存入预设的结果库中,并通过所述总网关发送所述结果报文至所述客户终端。
在示例性的实施例中,基于识别结果按照以下数据结构组装生成结果报文:
{requestid(请求):“请求的id”,“organization id”(子机构名):子机构编号”,“result”(结果):“null(无效)或者身份证号”}。在示例性的实施例中,如图5所示,所述基于所述识别结果生成结果报文,通过所述通信协议以及所述消息队列同步向所述总网关发送所述结果报文,以使所述总网关接收所述结果报文并将所述结果报文存入预设的结果库中还包括:
步骤S601,当所述总网关先接收到所述通信协议发送的结果报文时,将接收到的通过所述通信协议发送的结果报文存入预设的结果库中,并生成第一结果操作反馈指令,且在所述总网关后接收到所述消息队列发送的结果报文时,不对所述消息队列发送的结果报文执行操作;
步骤S602,当所述总网关先接收到所述消息队列发送的结果报文时,将接收到的通过所述消息队列发送的结果报文存入预设的结果库中,且在所述总网关后接收到所述通信协议发送的结果报文时,生成第二结果操作反馈指令,且不对所述通信协议发送的结果报文执行操作。
具体的,当通信协议发送的结果报文先到达总网关,消息队列发送的结果报文后到达总网关时,总网关将通信协议发送的结果报文存入预设的结果库中,并在先接收到通信协议发送的结果报文后,生成第一结果操作反馈指令,第一结果操作反馈指令用于指示总网关接收到通信协议发送的结果报文并开始对通信协议发送的结果报文执行存储和发送的操作,对于后接收到的消息队列分发的同一个结果报文,不执行消息队列发送的结果报文。
当消息队列发送的结果报文先到达总网关,通信协议发送的结果报文后到达总网关时,总网关将消息队列发送的结果报文存入预设的结果库中,对于后接收到的通信协议分发的同一个结果报文,生成第二结果操作反馈指令,第二结果操作反馈指令用于指示总网关接收到通信协议发送的结果报文且不执行通信协议发送的结果报文。
本发明采用幂等防止任务被重复执行:因无法控制消息队列和通信协议同步调用的请求或者报文的到达顺序,采用幂等,对于相同请求的分发,子机构仅执行一次,并且子机构返回接收成功,相同的结果回传,总机构的总网关仅执行一次存入操作。即避免数据丢失,又避免被重复执行。
在示例性的实施例中,在对结果报文执行存储和发送的操作之前,需要查询该结果报文的记录情况。在所述总网关每次接收到结果报文时,解析所述结果报文,并从所述结果报文中提取请求的id和子机构编号,查询所述请求的id和子机构编号的结果是否被记录过,当请求的id和子机构编号的结果被记录过,那么这次的结果报文不再存入结果库中;当所述请求的ID和子机构编号的结果未被记录过,那么这次的结果报文存入结果库中。在示例性的实施例中,如图6所示,计算所述人脸特征向量与样本人脸特征矩阵的欧氏距离,并基于所述欧氏距离生成识别结果的步骤S500还可以进一步包括:
步骤S501,从所述样本人脸特征矩阵的每行中提取前n列的样本特征矩阵。
步骤S502,分别计算人脸特征向量和每行中前n列的样本特征矩阵之间的欧氏距离。
步骤S503,将多个所述欧氏距离分别与预设的人脸阈值进行比对,并将小于所述人脸阈值的欧氏距离对应的样本特征数据确定为目标人脸特征数据。
具体的,当计算得到的欧氏距离的小于人脸阈值时,则可以认为待识别图像中的人脸与样本人脸特征矩阵对应的样本人脸属于同一人。
示例性的,当发现多个欧氏距离均小于人脸阈值时,可以将最小的欧氏距离对应的样本特征数据确定为目标人脸特征数据。
进一步地,若多个欧氏距离均大于人脸阈值,则最后的结果报文标识为null(无效的),认为没有发现匹配的人脸。
步骤S504,根据所述目标人脸特征数据在所述样本人脸特征矩阵中索引,以确定目标人脸特征数据对应的目标行。
步骤S505,基于所述目标行从所述样本人脸特征矩阵中提取目标身份数据。
具体的,在样本人脸特征矩阵中找到对应的目标行,取出n+1至n+18位,获取目标身份数据,即获取对应的身份证号。
步骤S506,基于所述目标身份数据生成识别结果。
在示例性的实施例中,如图7所示,所述方法还包括:所述方法还包括人脸特征数据库的构建与维护,具体如下:步骤S701,获取多个用户的样本人脸图像数据,并为所述多个用户的样本人脸图像数据赋予人脸标签。
具体的,所述人脸标签一般包括:用户的身份证号、姓名。
步骤S702,将所述多个用户的样本人脸图像数据以及对应的人脸标签写入预设的人脸数据库中。
步骤S703,从所述多个用户的样本人脸图像数据中提取多个样本人脸特征数据。
步骤S704,将所述多个样本人脸特征数据存入所述预设的人脸特征数据库中。
具体的,多个样本人脸特征数据通过以下数据结构存储在预设的人脸特征数据库中:前n位:样本人脸特征值,n+1~n+18位:按位存储的该用户的身份证号的每一位。
进一步的,可以通过人脸管理服务器对人脸数据库以及人脸特征数据库中的数据进行维护。其中,每个子机构都具有对应的人脸数据库以及人脸特征数据库。且人脸数据库以及人脸特征数据库存储在内存型数据库上,如rocksdb(快速存储)数据库。
示例性的,当有新增的人脸图像数据时,将该新增人脸图像数据上传至任一子机构,并为该新增人脸图像数据指定人脸标签,将该新增人脸图像数据连同对应的人脸标签存入该子机构的人脸数据库中。从该新增人脸图像数据中提取n维新增人脸特征数据,将n维新增人脸特征数据以一定的数据结构存入该子机构的人脸特征数据库中。
在示例性的实施例中,所述方法还包括:在执行识别请求的过程中,通过所述总网关在预设时间周期内循环访问结果库,生成访问结果。
具体的,预设时间周期可以设置为100ms(毫秒)。可以理解为,每隔100ms循环访问结果库,查询各子机构是否返回结果报文。
进一步的,当循环次数超过100次时,即时间超过10s,可以直接退出循环,并可向客户端返回等待指令。
或者,在示例性的实施例中,当查询到至少一条子机构返回的结果不为null的结果报文时,退出循环。
或者当所有机构均返回了结果,但所有机构的返回结果均为null时,退出循环。本发明对于人脸图像数据和人脸特征数据采用分布式的方式存储,人脸图像数据以及人脸特征数据存储在各分支子机构中,在进行人脸搜索时,总机构与各子机构之间仅仅传输人脸特征数据,不会传输人脸图像数据,保证了用户的隐私性,也保证了传输过程中的信息安全性,提高了人脸识别的效率;还保证了跨分支子机构的全量人脸匹配,可以快速的精确匹配全部分支子机构的人脸库。通过拆分人脸库和人脸匹配计算资源到分布式的各分支子机构中,多处子机构的机器同时计算,使得十亿级别的人脸匹配成为可能,并且通过拆分更多的分支机构,使得人脸匹配更大的量级得以实现。通过通信协议以及消息队列向多个子网关同步发送识别请求以及人脸特征向量,以及通过通信协议以及消息队列同步向总网关发送结果报文,同步传递数据避免了数据被丢失,以及传递的数据被重复执行的情况发生。
实施例二
请继续参阅图8,示出了本发明人脸识别系统的程序模块示意图。在本实施例中,人脸识别系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述人脸识别方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述人脸识别系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
采集模块800,用于通过总网关获取客户终端发送的识别请求,所述识别请求用于请求识别目标用户的待识别图像。
数据存储模块810,用于基于所述识别请求提取所述待识别图像中的人脸特征向量,将所述人脸特征向量以及所述识别请求放入消息队列中。
同步发送模块820,用于通过通信协议以及所述消息队列同步发送所述识别请求以及人脸特征向量至多个子网关。
提取模块830,用于通过所述多个子网关接收所述识别请求和人脸特征向量,并基于所述识别请求,从多个子网关对应的多个子机构中预设的人脸特征数据库中提取多个样本人脸特征数据,将所述多个样本人脸特征数据组合成样本人脸特征矩阵。
计算模块840,用于计算所述人脸特征向量与样本人脸特征矩阵的欧氏距离,并基于所述欧氏距离生成识别结果。
结果输出模块850,用于基于所述识别结果生成结果报文,通过所述通信协议以及所述消息队列同步向所述总网关发送所述结果报文,以使所述总网关接收所述结果报文并将所述结果报文存入预设的结果库中,并通过所述总网关发送所述结果报文至所述客户终端。
在示例性的实施例中,所述同步发送模块820还用于:从预设的机构库中拉取所述多个子机构对应的多个地址数据;根据所述多个地址数据获取对应的多个子机构的子网关,并通过所述通信协议以及消息队列同步向所述多个子机构的子网关发送所述识别请求以及人脸特征向量。
在示例性的实施例中,所述提取模块830还用于:当所述子网关先接收到所述通信协议发送的识别请求以及人脸特征向量的时,响应并执行所述通信协议发送的识别请求,向所述总网关返回第一请求操作反馈指令,且在所述子网关后接收到所述消息队列发送的识别请求时,不执行所述消息队列发送的识别请求;当所述子网关先接收到所述消息队列发送的识别请求以及人脸特征向量时,响应并执行所述消息队列发送的识别请求,且在所述子网关后接收到所述通信协议发送的识别请求时,生成第二请求操作反馈指令,所述第二请求操作反馈指令用于指示所述子网关接收到所述通信协议发送的识别请求,且不执行所述通信协议发送的识别请求。
在示例性的实施例中,所述提取模块830还用于:解析所述识别请求,以从所述识别请求中提取请求标识数据;查询所述请求标识数据的执行状态:当所述请求标识数据的执行状态包括第一执行状态时,则不执行所述识别请求;当所述请求标识数据的执行状态包括第二执行状态时,则执行所述识别请求。
在示例性的实施例中,所述计算模块840还用于:从所述样本人脸特征矩阵的每行中提取前n列的样本特征矩阵;分别计算人脸特征向量和每行中前n列的样本特征矩阵之间的欧氏距离;将多个所述欧氏距离分别与预设的人脸阈值进行比对,并将小于所述人脸阈值的欧氏距离对应的样本特征数据确定为目标人脸特征数据;根据所述目标人脸特征数据在所述样本人脸特征矩阵中索引,以确定目标人脸特征数据对应的目标行;基于所述目标行从所述样本人脸特征矩阵中提取目标身份数据;基于所述目标身份数据生成识别结果。
在示例性的实施例中,所述结果输出模块850还用于:当所述总网关先接收到所述通信协议发送的结果报文时,将接收到的通过所述通信协议发送的结果报文存入预设的结果库中,并生成第一结果操作反馈指令,且在所述总网关后接收到所述消息队列发送的结果报文时,不对所述消息队列发送的结果报文执行操作;当所述总网关先接收到所述消息队列发送的结果报文时,将接收到的通过所述消息队列发送的结果报文存入预设的结果库中,且在所述总网关后接收到所述通信协议发送的结果报文时,生成第二结果操作反馈指令,且不对所述通信协议发送的结果报文执行操作。
在示例性的实施例中,所述系统还包括:维护模块860,所述维护模块860用于:获取多个用户的样本人脸图像数据,并为所述多个用户的样本人脸图像数据赋予人脸标签;将所述多个用户的样本人脸图像数据以及对应的人脸标签写入预设的人脸数据库中;从所述多个用户的样本人脸图像数据中提取多个样本人脸特征数据;将所述多个样本人脸特征数据存入所述预设的人脸特征数据库中。
实施例三
参阅图9,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图9所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及人脸识别系统20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如上述实施例的人脸识别系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行人脸识别系统20,以实现上述实施例的人脸识别方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图9仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述人脸识别系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图8示出了所述实现人脸识别系统20实施例三的程序模块示意图,该实施例中,所述基于人脸识别系统20可以被划分为采集模块800、数据存储模块810、同步发送模块820、提取模块830、计算模块840以及结果输出模块850。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述人脸识别系统20在所述计算机设备2中的执行过程。所述程序模块800-850的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储人脸识别系统20,被处理器执行时实现上述实施例的人脸识别方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种人脸识别方法,其特征在于,包括:
通过总网关获取客户终端发送的识别请求,所述识别请求用于请求识别目标用户的待识别图像;
基于所述识别请求提取所述待识别图像中的人脸特征向量,将所述人脸特征向量以及所述识别请求放入消息队列中;
通过通信协议以及所述消息队列同步发送所述识别请求以及人脸特征向量至多个子网关;
通过所述多个子网关接收所述识别请求和人脸特征向量,并基于所述识别请求,从多个子网关对应的多个子机构中预设的人脸特征数据库中提取多个样本人脸特征数据,将所述多个样本人脸特征数据组合成样本人脸特征矩阵;
计算所述人脸特征向量与样本人脸特征矩阵的欧氏距离,并基于所述欧氏距离生成识别结果;
基于所述识别结果生成结果报文,通过所述通信协议以及所述消息队列同步向所述总网关发送所述结果报文,以使所述总网关接收所述结果报文并将所述结果报文存入预设的结果库中,并通过所述总网关发送所述结果报文至所述客户终端。
2.根据权利要求1所述的人脸识别方法,其特征在于,所述通过通信协议以及所述消息队列同步发送所述识别请求以及人脸特征向量至多个子网关包括:
从预设的机构库中拉取所述多个子机构对应的多个地址数据;
根据所述多个地址数据获取对应的多个子机构的子网关,并通过所述通信协议以及消息队列同步向所述多个子机构的子网关发送所述识别请求以及人脸特征向量。
3.根据权利要求2所述的人脸识别方法,其特征在于,所述通过所述多个子网关接收所述识别请求和人脸特征向量还包括:
当所述子网关先接收到所述通信协议发送的识别请求以及人脸特征向量的时,响应并执行所述通信协议发送的识别请求,向所述总网关返回第一请求操作反馈指令,且在所述子网关后接收到所述消息队列发送的识别请求时,不执行所述消息队列发送的识别请求;
当所述子网关先接收到所述消息队列发送的识别请求以及人脸特征向量时,响应并执行所述消息队列发送的识别请求,且在所述子网关后接收到所述通信协议发送的识别请求时,生成第二请求操作反馈指令,所述第二请求操作反馈指令用于指示所述子网关接收到所述通信协议发送的识别请求,且不执行所述通信协议发送的识别请求。
4.根据权利要求3所述的人脸识别方法,其特征在于,所述通过所述多个子网关接收所述识别请求和人脸特征向量之后还包括:
解析所述识别请求,以从所述识别请求中提取请求标识数据;
查询所述请求标识数据的执行状态:当所述请求标识数据的执行状态包括第一执行状态时,则不执行所述识别请求;当所述请求标识数据的执行状态包括第二执行状态时,则执行所述识别请求。
5.根据权利要求3所述的人脸识别方法,其特征在于,所述基于所述识别结果生成结果报文,通过所述通信协议以及所述消息队列同步向所述总网关发送所述结果报文,以使所述总网关接收所述结果报文并将所述结果报文存入预设的结果库中还包括:
当所述总网关先接收到所述通信协议发送的结果报文时,将接收到的通过所述通信协议发送的结果报文存入预设的结果库中,并生成第一结果操作反馈指令,且在所述总网关后接收到所述消息队列发送的结果报文时,不对所述消息队列发送的结果报文执行操作;
当所述总网关先接收到所述消息队列发送的结果报文时,将接收到的通过所述消息队列发送的结果报文存入预设的结果库中,且在所述总网关后接收到所述通信协议发送的结果报文时,生成第二结果操作反馈指令,且不对所述通信协议发送的结果报文执行操作。
6.根据权利要求1所述的人脸识别方法,其特征在于,所述方法还包括:
获取多个用户的样本人脸图像数据,并为所述多个用户的样本人脸图像数据赋予人脸标签;
将所述多个用户的样本人脸图像数据以及对应的人脸标签写入预设的人脸数据库中;
从所述多个用户的样本人脸图像数据中提取多个样本人脸特征数据;
将所述多个样本人脸特征数据存入所述预设的人脸特征数据库中。
7.根据权利要求1所述的人脸识别方法,其特征在于,所述计算所述人脸特征向量与样本人脸特征矩阵的欧氏距离,并基于所述欧氏距离生成识别结果还包括:
从所述样本人脸特征矩阵的每行中提取前n列的样本特征矩阵;
分别计算人脸特征向量和每行中前n列的样本特征矩阵之间的欧氏距离;
将多个所述欧氏距离分别与预设的人脸阈值进行比对,并将小于所述人脸阈值的欧氏距离对应的样本特征数据确定为目标人脸特征数据;
根据所述目标人脸特征数据在所述样本人脸特征矩阵中索引,以确定目标人脸特征数据对应的目标行;
基于所述目标行从所述样本人脸特征矩阵中提取目标身份数据;
基于所述目标身份数据生成识别结果。
8.一种人脸识别系统,其特征在于,包括:
采集模块,用于通过总网关获取客户终端发送的识别请求,所述识别请求用于请求识别目标用户的待识别图像;
数据存储模块,用于基于所述识别请求提取所述待识别图像中的人脸特征向量,将所述人脸特征向量以及所述识别请求放入消息队列中;
同步发送模块,用于通过通信协议以及所述消息队列同步发送所述识别请求以及人脸特征向量至多个子网关;
提取模块,用于通过所述多个子网关接收所述识别请求和人脸特征向量,并基于所述识别请求,从多个子网关对应的多个子机构中预设的人脸特征数据库中提取多个样本人脸特征数据,将所述多个样本人脸特征数据组合成样本人脸特征矩阵;
计算模块,用于计算所述人脸特征向量与样本人脸特征矩阵的欧氏距离,并基于所述欧氏距离生成识别结果;
结果输出模块,用于基于所述识别结果生成结果报文,通过所述通信协议以及所述消息队列同步向所述总网关发送所述结果报文,以使所述总网关接收所述结果报文并将所述结果报文存入预设的结果库中,并通过所述总网关发送所述结果报文至所述客户终端。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的人脸识别方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至7中任一项所述的人脸识别方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010908573.XA CN111985446A (zh) | 2020-09-02 | 2020-09-02 | 人脸识别方法以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010908573.XA CN111985446A (zh) | 2020-09-02 | 2020-09-02 | 人脸识别方法以及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111985446A true CN111985446A (zh) | 2020-11-24 |
Family
ID=73448391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010908573.XA Pending CN111985446A (zh) | 2020-09-02 | 2020-09-02 | 人脸识别方法以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111985446A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392343A (zh) * | 2021-08-17 | 2021-09-14 | 深圳市信润富联数字科技有限公司 | 数据抽取方法、设备、介质及计算机程序产品 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019873A (zh) * | 2017-12-25 | 2019-07-16 | 深圳市优必选科技有限公司 | 人脸数据处理方法、装置及设备 |
WO2019205369A1 (zh) * | 2018-04-28 | 2019-10-31 | 平安科技(深圳)有限公司 | 电子装置、基于人脸图像与声纹信息的身份识别方法及存储介质 |
-
2020
- 2020-09-02 CN CN202010908573.XA patent/CN111985446A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019873A (zh) * | 2017-12-25 | 2019-07-16 | 深圳市优必选科技有限公司 | 人脸数据处理方法、装置及设备 |
WO2019205369A1 (zh) * | 2018-04-28 | 2019-10-31 | 平安科技(深圳)有限公司 | 电子装置、基于人脸图像与声纹信息的身份识别方法及存储介质 |
Non-Patent Citations (1)
Title |
---|
杨雄;: "云环境下融合FHE和人脸识别的身份认证方案", 贵州大学学报(自然科学版), no. 06 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113392343A (zh) * | 2021-08-17 | 2021-09-14 | 深圳市信润富联数字科技有限公司 | 数据抽取方法、设备、介质及计算机程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
CN109542428B (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN110737818B (zh) | 网络发布数据处理方法、装置、计算机设备和存储介质 | |
CN108287823B (zh) | 消息数据处理方法、装置、计算机设备和存储介质 | |
CN109325118B (zh) | 不平衡样本数据预处理方法、装置和计算机设备 | |
CN109768623A (zh) | 电力系统的监控方法、装置、计算机设备和存储介质 | |
CN110503385B (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
CN111914277B (zh) | 交集数据的生成方法和基于交集数据的联邦模型训练方法 | |
CN109271356B (zh) | 日志文件格式处理方法、装置、计算机设备和存储介质 | |
CN113127633B (zh) | 智能会议管理方法、装置、计算机设备及存储介质 | |
CN110599354B (zh) | 线上对账方法、系统、计算机设备和计算机可读存储介质 | |
CN114500690B (zh) | 接口数据处理方法、装置、电子设备及存储介质 | |
CN112597020A (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN108924258A (zh) | 后台信息推送方法、装置、计算机设备和存储介质 | |
CN111368172A (zh) | 传感器数据处理方法、装置、计算机设备和存储介质 | |
CN111124421B (zh) | 区块链智能合约的异常合约数据检测方法和装置 | |
CN110275703B (zh) | 键值对数据的赋值方法、装置、计算机设备和存储介质 | |
CN113111078B (zh) | 资源数据处理方法、装置、计算机设备和存储介质 | |
CN115564000A (zh) | 二维码生成方法、装置、计算机设备及存储介质 | |
CN109218131B (zh) | 网络监控方法、装置、计算机设备和存储介质 | |
CN110808950A (zh) | 消息处理方法、装置、计算机设备和存储介质 | |
CN108389124B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111985446A (zh) | 人脸识别方法以及系统 | |
CN112507010B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN116361567B (zh) | 应用于云办公的数据处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240621 |