CN110738156B - 一种基于消息中间件的人脸识别系统及方法 - Google Patents
一种基于消息中间件的人脸识别系统及方法 Download PDFInfo
- Publication number
- CN110738156B CN110738156B CN201910958318.3A CN201910958318A CN110738156B CN 110738156 B CN110738156 B CN 110738156B CN 201910958318 A CN201910958318 A CN 201910958318A CN 110738156 B CN110738156 B CN 110738156B
- Authority
- CN
- China
- Prior art keywords
- face recognition
- module
- message middleware
- face
- modules
- 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.)
- Active
Links
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/161—Detection; Localisation; Normalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- 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/40—Spoof detection, e.g. liveness detection
- G06V40/45—Detection of the body part being alive
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Collating Specific Patterns (AREA)
Abstract
本发明实施例提供一种基于消息中间件的人脸识别系统及方法,该系统包括消息中间件和人脸识别硬件资源池,所述人脸识别硬件资源池包括多个人脸识别模块,每个人脸识别模块通过所述消息中间件和用户终端进行数据传输,其中:所述消息中间件,用于获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中;所述人脸识别模块,用于对所述消息中间件发送的人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果。本发明实施例实现运算资源之间的共享,使得负载更加均衡,提高人脸识别系统的稳定性和可靠性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于消息中间件的人脸识别系统及方法。
背景技术
现有的人脸识别算法,大多是基于深度学习的卷积神经网络实现的,在执行人脸检测、活体识别、实时跟踪和特征值提取等操作时,需要耗费大量的计算资源。因此,为了提升人脸识别服务系统的并发处理能力,需要配置大量的硬件资源。
随着人工智能技术的兴起,针对人脸识别系统,推出了各种各样的硬件解决方案。然而,由于缺乏统一的标准,这些方案之间无法构建统一的算法模型,无法实现运算资源之间的共享,也不能根据业务拓展需求,平滑升级人脸识别服务能力,同时还存在各硬件平台之间的通信延时较长,以及系统可靠性不高等问题。
因此,现在亟需一种基于消息中间件的人脸识别系统及方法来解决上述问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种基于消息中间件的人脸识别系统及方法。
第一方面,本发明实施例提供了一种基于消息中间件的人脸识别系统,包括消息中间件和人脸识别硬件资源池,所述人脸识别硬件资源池包括多个人脸识别模块,每个人脸识别模块通过所述消息中间件和用户终端进行数据传输,其中:
所述消息中间件,用于获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中;
所述人脸识别模块,用于对所述消息中间件发送的人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果。
进一步地,所述多个人脸识别模块包括人脸检测模块、人脸匹配模块和人脸特征值提取模块。
进一步地,所述多个人脸识别模块还包括活体检测模块、人脸追踪模块和人脸相似度计算模块。
进一步地,所述系统还包括进程监控模块,用于通过所述消息中间件定时向人脸识别模块发送心跳信息,以用于判断人脸识别模块是否出现故障,若判断获知人脸识别模块出现故障,则对人脸识别模块执行重启指令。
第二方面,本发明实施例提供了一种基于第一方面所述基于消息中间件的人脸识别系统的人脸识别方法,包括:
通过消息中间件获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中;
通过人脸识别模块对人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果。
进一步地,在所述通过消息中间件获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中之前,所述方法还包括:
对每个人脸识别模块设置相同的人脸识别算法,所述人脸识别算法基于每个人脸识别模块的运算能力和体系结构获取得到的。
进一步地,所述通过人脸识别模块对人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果,包括:
每个人脸识别模块根据自身的空闲状态情况,通过竞争方式,从消息队列中获取人脸识别任务,以使得处于空闲状态的人脸识别模块优先获取人脸识别任务;
通过人脸识别模块对人脸识别任务进行运行处理之后,得到相应的处理结果,并将处理结果发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果。
进一步地,在所述通过消息中间件获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中之后,所述方法还包括:
采用自定义的消息格式,对包头信息进行精简处理,并采用基于内存的消息中间件,以用于降低人脸识别模块和消息中间件之间的数据传输时延。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第二方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第二方面所提供的方法的步骤。
本发明实施例提供的一种基于消息中间件的人脸识别系统及方法,通过消息中间件将多种异构的人脸识别功能模块进行分布式部署,实现了运算资源之间的共享,使得各个人脸识别功能模块的负载更加均衡,提高了人脸识别系统的稳定性和可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于消息中间件的人脸识别系统的结构示意图;
图2为本发明实施例提供的基于消息中间件的人脸识别方法的流程示意图;
图3为本发明实施例提供的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
消息中间件(Message Oriented Middleware,简称MOM)是指支持与保障分布式应用程序之间同步或异步收发消息的中间件。消息中间件是一种独立的系统软件或服务程序,在计算机系统中是一个关键软件,位于用户应用和操作系统及网络软件之间,为应用提供了公用的通信手段,并且独立于网络和操作系统,消息中间件为开发者提供了公用于所有环节的应用程序接口,当应用程序中嵌入其函数调用时,便可利用其运行的特定操作系统和网络环境的功能,为应用执行通信功能。其主要功能是在应用程序之间提供可靠的消息传送,这些消息可以在不同的网络协议、不同的计算机系统和不同的应用软件之间传递。
图1为本发明实施例提供的基于消息中间件的人脸识别系统的结构示意图,如图1所示,本发明实施例提供了一种基于消息中间件的人脸识别系统,包括消息中间件101和人脸识别硬件资源池102,所述人脸识别硬件资源池102包括多个人脸识别模块,每个人脸识别模块通过所述消息中间件101和用户终端进行数据传输,其中:
所述消息中间件101,用于获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中;
所述人脸识别模块,用于对所述消息中间件101发送的人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件101,以供用户终端通过所述消息中间件101获取到人脸识别结果。
在本发明实施例中,通过用户终端获取到待识别的人脸图像,其中,用户终端为具有无线或有线通信功能的终端,例如手机、平板设备或笔记本电脑等,这些用户终端上设置有相应的人脸识别应用程序,通过应用程序将用户终端上携带有人脸图像的相关图片或拍摄到的人脸图像,发送到基于消息中间件的人脸识别系统。该人脸识别系统将这些人脸图像作为待处理的人脸识别任务存储在消息中间件101,并通过部署在该人脸识别系统中的多个异构硬件平台,即人脸识别模块,对这些人脸图像进行相应的处理,具体地,在本发明一实施例中,基于消息中间件的人脸识别系统中部署了五种不同功能的人脸识别模块,即部署了五个异构分布的人脸识别硬件平台(服务器),分别用于人脸检测、活体检测、人脸追踪、人脸特征值提取和人脸相似度计算,通过这些人脸识别模块,基于消息中间件101,从而构建了该人脸识别系统的人脸识别硬件资源池102,每个人脸识别模块通过消息中间件101获取到各自对应的人脸识别任务,完成各自的人脸识别任务,例如,用于人脸检测的人脸识别模块将检测到的人脸图像标注人脸识别框,并将标记的人脸图像发送到消息中间件101,以供用户终端通过消息中间件101获取到人脸识别结果;用于人脸特征值提取的人脸识别模块则通过对待识别人脸图像进行特征提取,得到该待识别人脸图像的人脸特征值,并将人脸特征值发送到消息中间件101,以供用户终端通过消息中间件101获取到人脸识别结果。
进一步地,在本发明实施例中,需要对基于消息中间件的人脸识别系统中所有人脸识别模块构建一套统一架构的人脸识别算法,在该算法的构建阶段,需要充分考虑不同硬件平台(人脸识别模块)的运算能力和体系结构的之间的差异,以使得该算法适应不同硬件平台。具体地,该人脸识别算法采用统一算法架构,将人脸识别的过程划分为人脸检测、活体检测、人脸跟踪、提取特征值和计算相似度等多个独立的功能模块,每块功能模块之间定义统一的功能接口,以使得各个功能模块可以基于不同的硬件平台上的人脸识别方案来实现;另外,针对同一功能模块,若要在不同硬件平台上采用相同的算法模型,则通过底层优化,解决不同硬件平台上算法精度不一致的问题,相比现有技术中,同一功能模块必须运行在相同架构的硬件平台上,且所有的功能模块只能采用单一的硬件平台,本申请实施例提供的基于消息中间件的人脸识别系统可以运行在异构的硬件平台上,使得每个功能模块可采用单独的硬件平台,并且,该人脸识别系统采用统一的算法模型,通过优化低层运算,从而实现不同硬件平台之间的精度统一。另外,本发明实施例通过将同一算法在不同硬件平台上进行部署,保证了不同硬件平台之间计算结果的一致性。
本发明实施例提供的一种基于消息中间件的人脸识别系统,通过消息中间件将多种异构的人脸识别功能模块进行分布式部署,实现了运算资源之间的共享,使得各个人脸识别功能模块的负载更加均衡,提高了人脸识别系统的稳定性和可靠性。
在上述实施例的基础上,所述多个人脸识别模块包括人脸检测模块、人脸匹配模块和人脸特征值提取模块。
在本发明实施例中,为了控制人脸识别模块的划分粒度,将人脸识别模块划分为人脸检测、提取特征值和人脸匹配三种人脸识别模块,使得基于消息中间件的人脸识别系统中的各个硬件平台均通过该划分方法,进行功能性划分。需要说明的是,在本发明实施例中,还可以人脸识别之间的功能相关性,将人脸识别模块划分为两种,一种为具有人脸检测和提取特征值两项识别功能的人脸识别模块,另一种为具有人脸匹配功能的人脸识别模块。相比现有技术中人脸识别模块划分较细,且模块数量无限制,本申请实施例通过对人脸识别模块进行精细划分,控制模块的划分粒度,从而提高了人脸识别系统的运行速度。
在上述实施例的基础上,所述多个人脸识别模块还包括活体检测模块、人脸追踪模块和人脸相似度计算模块。
在本发明实施例中,还可以在基于消息中间件的人脸识别系统中增加体检测模块、人脸追踪模块和人脸相似度计算模块,这些新的人脸识别模块,可以在构建该人脸识别系统时进行部署,也可以根据人脸识别业务的需求,在不改变该人脸识别系统架构且不影响现有人脸识别业务运行的情况下,对对该人脸识别系统的人脸识别服务能力进行动态扩展。在现有技术中,当需要根据业务需求扩展服务能力时,需要添加相同或类似架构的软硬件平台,并为新增的软硬件平台部署对应的人脸识别算法,导致升级用的软硬件方案严重依赖前期选定的方案,随着技术的更新,不方便后期根据目前技术的发展水平进行系统升级。而在本发明实施例中,新增的新模块通过消息总线接入基于消息中间件的人脸识别系统,并通过现有接口对外提供统一的服务,可在不改变现有系统架构且不影响现有系统运行的情况下,平滑升级系统的服务能力。而异构的架构可以屏蔽硬件之间的差异,实现对外服务能力的统一。
在上述实施例的基础上,所述系统还包括进程监控模块,用于通过所述消息中间件定时向人脸识别模块发送心跳信息,以用于判断人脸识别模块是否出现故障,若判断获知人脸识别模块出现故障,则对人脸识别模块执行重启指令。
在本发明实施例中,进程监控模块通过守护进程,实时监控基于消息中间件的人脸识别系统各个硬件平台(人脸识别模块)的运行状态,每个硬件平台通过消息中间件,定时发送心跳信息到守护进程,当守护进程检测到某个硬件平台运行异常时,会向该硬件平台发送重启指令,以使得该硬件平台自动重启,从而恢复正常。在本发明实施例中,由于每个硬件平台中都存在多个相互独立的运行副本,当部分副本出现故障时,其他正常运行的副本照样可以对外提供服务,从而保障系统的整体可靠性。同时,由于采用了异构的架构,每个硬件平台的软硬件方案是不一样的,从而可以有效避免同一方案存在的软硬件漏洞而导致的集中爆发风险。
图2为本发明实施例提供的基于消息中间件的人脸识别方法的流程示意图,如图2所示,本发明实施例提供了一种基于上述人脸识别系统的人脸识别方法,包括:
步骤201,通过消息中间件获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中;
在本发明实施例中,通过用户终端获取到待识别的人脸图像,然后,基于消息中间件的人脸识别系统将这些人脸图像作为待处理的人脸识别任务存储在消息中间件中,并通过部署在该人脸识别系统中的多个异构硬件平台,即人脸识别模块,对这些人脸图像进行相应的处理,其中,用户终端为具有无线或有线通信功能的终端,例如手机、平板设备或笔记本电脑等。在这些用户终端上,设置有相应的人脸识别应用程序,通过这些应用程序将用户终端上携带有人脸图像的相关图片或拍摄到的人脸图像,发送到基于消息中间件的人脸识别系统中。
步骤202,通过人脸识别模块对人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果。
在本发明实施例中,通过消息中间件,每个人脸识别模块获取到各自对应的人脸识别任务,并根据这些任务识别任务,对待识别人脸图像进行处理。具体地,在本发明一实施例中,基于消息中间件的人脸识别系统中部署了五种不同功能的人脸识别模块,即部署了五个异构分别的人脸识别硬件平台(服务器),分别用于人脸检测、活体检测、人脸追踪、人脸特征值提取和人脸相似度计算,通过这些人脸识别模块,基于消息中间件,从而构建了该人脸识别系统的人脸识别硬件资源池,每个人脸识别模块通过消息中间件获取到各自对应的人脸识别任务,完成各自的人脸识别任务,例如,用于人脸检测的人脸识别模块将检测到的人脸图像标注人脸识别框,并将标记的人脸图像发送到消息中间件,以供用户终端通过消息中间件获取到人脸识别结果;用于人脸特征值提取的人脸识别模块则通过对待识别人脸图像进行特征提取,得到该待识别人脸图像的人脸特征值,并将人脸特征值发送到消息中间件,以供用户终端通过消息中间件获取到人脸识别结果。
本发明实施例提供的一种基于消息中间件的人脸识别方法,通过消息中间件将多种异构的人脸识别功能模块进行分布式部署,实现了运算资源之间的共享,使得各个人脸识别功能模块的负载更加均衡,提高了人脸识别系统的稳定性和可靠性。
在上述实施例的基础上,在所述通过消息中间件获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中之前,所述方法还包括:
对每个人脸识别模块设置相同的人脸识别算法,所述人脸识别算法基于每个人脸识别模块的运算能力和体系结构获取得到的。
在本发明实施例中,需要对基于消息中间件的人脸识别系统中所有人脸识别模块构建一套统一架构的人脸识别算法,在该算法的构建阶段,需要充分考虑不同硬件平台(人脸识别模块)的运算能力和体系结构的之间的差异,以使得该算法适应不同硬件平台。具体地,该人脸识别算法采用统一算法架构,将人脸识别的过程划分为人脸检测、活体检测、人脸跟踪、提取特征值和计算相似度等多个独立的功能模块,每块功能模块之间定义统一的功能接口,以使得各个功能模块可以基于不同的硬件平台上的人脸识别方案来实现;另外,针对同一功能模块,若要在不同硬件平台上采用相同的算法模型,则通过底层优化,解决不同硬件平台上算法精度不一致的问题,相比现有技术中,同一功能模块必须运行在相同架构答硬件平台上,且所有的功能模块只能采用单一的硬件平台,本申请实施例提供的基于消息中间件的人脸识别系统可以运行在异构的硬件平台上,使得每个功能模块可采用单独的硬件平台,并且,该人脸识别系统采用统一的算法模型,通过优化低层运算,从而实现不同硬件平台之间的精度统一。另外,本发明实施例通过将同一算法在不同硬件平台上进行部署,保证了不同硬件平台之间计算结果的一致性。
在上述实施例的基础上,所述通过人脸识别模块对人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果,包括:
每个人脸识别模块根据自身的空闲状态情况,通过竞争方式,从消息队列中获取人脸识别任务,以使得处于空闲状态的人脸识别模块优先获取人脸识别任务;
通过人脸识别模块对人脸识别任务进行运行处理之后,得到相应的处理结果,并将处理结果发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果。
在本发明实施例中,当用户终端发送一个任务请求时,会将一条包含任务信息的消息发送到消息队列中,处于空闲状态的硬件平台会根据自身的空闲状态,通过竞争方式,优先接收并处理这条消息,从而使得服务器端的处理能力负载均衡。在本发明一实施例中,还可以在每个硬件平台中设置一个或多个功能模块,例如,某个硬件平台可以进行人脸检测和活体检测处理,以多线程方式运行,每个线程拥有独立的消息通道与消息服务器进行通信,每个功能模块共享一个消息队列,以使得每个线程通过竞争方式读取消息队列中的信息。
在上述实施例的基础上,在所述通过消息中间件获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中之后,所述方法还包括:
采用自定义的消息格式,对包头信息进行精简处理,并采用基于内存的消息中间件,以用于降低人脸识别模块和消息中间件之间的数据传输时延。
在本发明实施例中,为了降低消息之间的传递时延,采用基于内存的消息中间件的传输系统,提高通信的效率;同时,采用自定义的消息格式,精减包头信息,从而降低人脸识别模块和消息中间件之间的数据传输时延。
图3为本发明实施例提供的电子设备结构示意图,参照图3,该电子设备可以包括:处理器(processor)301、通信接口(Communications Interface)302、存储器(memory)303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行如下方法:通过消息中间件获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中;通过人脸识别模块对人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果。
此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的人脸识别方法,例如包括:通过消息中间件获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中;通过人脸识别模块对人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种基于消息中间件的人脸识别系统,其特征在于,包括消息中间件和人脸识别硬件资源池,所述人脸识别硬件资源池包括多个人脸识别模块,每个人脸识别模块通过所述消息中间件和用户终端进行数据传输,其中:
所述消息中间件,用于获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中;
所述人脸识别模块,用于对所述消息中间件发送的人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果;其中,每个所述人脸识别模块中设置有统一架构的人脸识别算法,所述人脸识别算法是基于每个所述人脸识别模块的运算能力和体系结构之间的差异构建得到的;
所述人脸识别算法采用统一算法架构,将人脸识别的过程划分为人脸检测、活体检测、人脸跟踪、提取特征值和计算相似度多个独立的功能模块,每块功能模块之间定义统一的功能接口,以使得各个功能模块可以基于不同的硬件平台上的人脸识别方案来实现;针对同一功能模块,若在不同硬件平台上采用相同的算法模型,则通过底层优化,解决不同硬件平台上算法精度不一致的问题;
所述基于消息中间件的人脸识别系统运行在异构的硬件平台上,使得每个功能模块可采用单独的硬件平台。
2.根据权利要求1所述的基于消息中间件的人脸识别系统,其特征在于,所述多个人脸识别模块包括人脸检测模块、人脸匹配模块和人脸特征值提取模块。
3.根据权利要求2所述的基于消息中间件的人脸识别系统,其特征在于,所述多个人脸识别模块还包括活体检测模块、人脸追踪模块和人脸相似度计算模块。
4.根据权利要求1所述的基于消息中间件的人脸识别系统,其特征在于,所述系统还包括进程监控模块,用于通过所述消息中间件定时向人脸识别模块发送心跳信息,以用于判断人脸识别模块是否出现故障,若判断获知人脸识别模块出现故障,则对人脸识别模块执行重启指令。
5.一种基于权利要求1至4任一所述基于消息中间件的人脸识别系统的人脸识别方法,其特征在于,包括:
通过消息中间件获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中;
通过人脸识别模块对人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果;
其中,每个所述人脸识别模块中设置有统一架构的人脸识别算法,所述人脸识别算法是基于每个所述人脸识别模块的运算能力和体系结构之间的差异构建得到的;
所述人脸识别算法采用统一算法架构,将人脸识别的过程划分为人脸检测、活体检测、人脸跟踪、提取特征值和计算相似度多个独立的功能模块,每块功能模块之间定义统一的功能接口,以使得各个功能模块可以基于不同的硬件平台上的人脸识别方案来实现;针对同一功能模块,若在不同硬件平台上采用相同的算法模型,则通过底层优化,解决不同硬件平台上算法精度不一致的问题;
所述基于消息中间件的人脸识别系统运行在异构的硬件平台上,使得每个功能模块可采用单独的硬件平台。
6.根据权利要求5所述的人脸识别方法,其特征在于,所述通过人脸识别模块对人脸识别任务进行处理,得到人脸识别数据,并将所述人脸识别数据发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果,包括:
每个人脸识别模块根据自身的空闲状态情况,通过竞争方式,从消息队列中获取人脸识别任务,以使得处于空闲状态的人脸识别模块优先获取人脸识别任务;
通过人脸识别模块对人脸识别任务进行运行处理之后,得到相应的处理结果,并将处理结果发送到所述消息中间件,以供用户终端通过所述消息中间件获取到人脸识别结果。
7.根据权利要求5所述的人脸识别方法,其特征在于,在所述通过消息中间件获取用户终端发送的多个人脸识别任务,并将所述多个人脸识别任务分发到每个人脸识别任务对应的人脸识别模块中之后,所述方法还包括:
采用自定义的消息格式,对包头信息进行精简处理,并采用基于内存的消息中间件,以用于降低人脸识别模块和消息中间件之间的数据传输时延。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求5至7任一项所述人脸识别方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求5至7任一项所述人脸识别方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958318.3A CN110738156B (zh) | 2019-10-10 | 2019-10-10 | 一种基于消息中间件的人脸识别系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958318.3A CN110738156B (zh) | 2019-10-10 | 2019-10-10 | 一种基于消息中间件的人脸识别系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110738156A CN110738156A (zh) | 2020-01-31 |
CN110738156B true CN110738156B (zh) | 2022-12-02 |
Family
ID=69268592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910958318.3A Active CN110738156B (zh) | 2019-10-10 | 2019-10-10 | 一种基于消息中间件的人脸识别系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110738156B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339345B (zh) * | 2020-02-26 | 2023-09-19 | 北京国网信通埃森哲信息技术有限公司 | 多平台人脸识别服务接口差异化屏蔽方法、系统及存储介质 |
CN113918131B (zh) * | 2021-12-09 | 2022-07-19 | 成都泰盟软件有限公司 | 一种人脸识别方法及系统 |
CN115794442A (zh) * | 2023-01-10 | 2023-03-14 | 深圳华北工控软件技术有限公司 | 嵌入式系统、进程通信方法、装置、计算机设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345214A (zh) * | 2013-06-17 | 2013-10-09 | 四川长虹电器股份有限公司 | 基于中间件的智能家电联动控制方法 |
CN105159769A (zh) * | 2015-09-11 | 2015-12-16 | 国电南瑞科技股份有限公司 | 一种适用于计算能力异构集群的分布式作业调度方法 |
CN106407916A (zh) * | 2016-08-31 | 2017-02-15 | 北京维盛视通科技有限公司 | 分布式人脸识别方法、装置及系统 |
CN109324909A (zh) * | 2018-08-01 | 2019-02-12 | 武汉普利商用机器有限公司 | 一种基于云服务的人脸比对服务系统及方法 |
CN110097007A (zh) * | 2019-04-30 | 2019-08-06 | 福建威盾科技集团有限公司 | 一种整合多种人脸识别引擎的方法及装置 |
-
2019
- 2019-10-10 CN CN201910958318.3A patent/CN110738156B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345214A (zh) * | 2013-06-17 | 2013-10-09 | 四川长虹电器股份有限公司 | 基于中间件的智能家电联动控制方法 |
CN105159769A (zh) * | 2015-09-11 | 2015-12-16 | 国电南瑞科技股份有限公司 | 一种适用于计算能力异构集群的分布式作业调度方法 |
CN106407916A (zh) * | 2016-08-31 | 2017-02-15 | 北京维盛视通科技有限公司 | 分布式人脸识别方法、装置及系统 |
CN109324909A (zh) * | 2018-08-01 | 2019-02-12 | 武汉普利商用机器有限公司 | 一种基于云服务的人脸比对服务系统及方法 |
CN110097007A (zh) * | 2019-04-30 | 2019-08-06 | 福建威盾科技集团有限公司 | 一种整合多种人脸识别引擎的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110738156A (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110738156B (zh) | 一种基于消息中间件的人脸识别系统及方法 | |
CN112035238B (zh) | 任务调度处理方法、装置、集群系统及可读存储介质 | |
US10417062B2 (en) | Method and apparatus of unloading out of memory processing flow to user space | |
CN113067850B (zh) | 一种多云场景下的集群编排系统 | |
CN109213462B (zh) | Android横竖屏数据同步方法、装置、终端及可读介质 | |
US20210042578A1 (en) | Feature engineering orchestration method and apparatus | |
US11182210B2 (en) | Method for resource allocation and terminal device | |
JP7161560B2 (ja) | 人工知能開発プラットフォームの管理方法及び装置、媒体 | |
EP3779690A1 (en) | Processor core scheduling method and apparatus, terminal, and storage medium | |
CN105874773B (zh) | 任务处理装置、智能设备、任务处理方法及基带处理器 | |
US11263000B2 (en) | Upgrading an execution environment for event-driven functions | |
CN112463290A (zh) | 动态调整计算容器的数量的方法、系统、装置和存储介质 | |
CN112698947B (zh) | 一种基于异构应用平台的gpu资源弹性调度方法 | |
CN111352647A (zh) | 虚拟机升级方法、装置、设备及存储介质 | |
WO2023216461A1 (zh) | 一种任务处理的方法、装置以及计算机设备 | |
WO2021057880A1 (zh) | 物联网设备的程序升级方法、装置及物联网设备 | |
CN112650541B (zh) | 一种应用程序启动加速方法、系统、设备及存储介质 | |
CN113014608A (zh) | 一种流量分发控制方法、装置、电子设备及存储介质 | |
CN111813529B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN108111630B (zh) | 一种Zookeeper集群系统及其连接方法和系统 | |
CN110365839B (zh) | 关机方法、装置、介质及电子设备 | |
WO2022022442A1 (zh) | 数据处理方法、装置、智能网卡和服务器 | |
CN115587049A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN116450390A (zh) | 看门狗检测方法及电子设备 | |
CN114327671A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |