人脸识别控制方法、装置、计算机设备和存储介质与流程

文档序号:30094439发布日期:2022-05-18 10:21阅读:176来源:国知局
人脸识别控制方法、装置、计算机设备和存储介质与流程

1.本技术涉及人脸识别领域,特别是涉及一种人脸识别控制方法、装置、计算机设备和存储介质。


背景技术:

2.人脸识别算法是指在检测到人脸并定位面部关键特征点之后,主要的人脸区域就可以被裁剪出来,经过预处理之后,馈入后端的识别算法。识别算法要完成人脸特征的提取,并与库存的已知人脸进行比对,完成最终的分类。
3.现有技术方案,多是基于深度学习模型的人脸算法,包含人脸检测、人脸属性和人脸识别模块,通过串行或者简单的并行方式进行处理。各个模块的算法处理速度不同,由于不对各模块的输入队列的数量进行控制,而导致队列的阻塞,从而影响各模块的处理效率。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种人脸识别控制方法、装置、计算机设备和存储介质。
5.第一方面,本发明实施例提出一种人脸识别控制方法,应用于人脸识别系统,所述系统包括用于对目标检测对象进行人脸检测的人脸检测模块、用于对人脸检测模块的检测结果进行属性检测的属性检测模块以及用于对人脸检测模块的检测结果进行人脸识别的人脸识别模块,所述方法包括:
6.监测目标检测对象的处理进程;
7.在所述属性检测模块进行属性检测之后,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述属性检测模块的输入队列的数量进行控制;及
8.在所述人脸识别模块进行人脸识别之后,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述人脸识别模块的输入队列的数量进行控制。
9.在一实施例中,所述基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述属性检测模块的输入队列的数量进行控制包括:
10.若所述目标检测对象的处理进程结束,则对所述人脸检测模块和所述属性检测模块的输入队列分别增加预设数量的待处理对象;
11.若所述目标检测对象的处理进程未结束,则对所述属性检测模块的输入队列增加预设数量的待处理对象。
12.在一实施例中,所述基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述属性检测模块的输入队列的数量进行控制包括:
13.控制方式如下式所示:
[0014][0015]
式中,qd表示人脸检测模块的输入队列,qa属性检测模块的输入队列,use_count表
示输入的目标检测对象的进程数。
[0016]
在一实施例中,所述基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述人脸识别模块的输入队列的数量进行控制包括:
[0017]
若所述目标检测对象的处理进程结束,则对所述人脸检测模块和所述人脸识别模块的输入队列分别增加预设数量的待处理对象;
[0018]
若所述目标检测对象的处理进程未结束,则对所述人脸识别模块的输入队列增加预设数量的待处理对象。
[0019]
在一实施例中,所述基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述人脸识别模块的输入队列的数量进行控制包括:
[0020]
控制方式如下式所示:
[0021][0022]
式中,qd表示人脸检测模块的输入队列,qr表示人脸识别模块的输入队列,use_count表示输入的目标检测对象的进程数。
[0023]
在一实施例中,所述方法还包括:
[0024]
基于所述目标检测对象前后两次处理进程结束的时间差,确定所述人脸检测模块的延时时间,基于所述延时时间控制所述人脸检测模块、属性检测模块和人脸识别模块的并发运行。
[0025]
在一实施例中,所述基于所述目标检测对象前后两次处理进程结束的时间差,确定所述人脸检测模块的延时时间包括:
[0026]
延时时间的确定如下式所示:
[0027]
延时时间wait=wait’+λ;
[0028]
其中,wait’表示上一次人脸检测模块的延时时间,λ由所述目标检测对象前后两次处理进程结束的时间差所确定。
[0029]
第二方面,本发明实施例提出一种人脸识别控制装置,应用于人脸识别系统,所述系统包括人脸检测模块、属性检测模块以及人脸识别模块,所述装置包括:
[0030]
检测模块,用于监测目标检测对象的处理进程;
[0031]
第一控制模块,用于在所述属性检测模块进行属性检测之后,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述属性检测模块的输入队列的数量进行控制;及
[0032]
在所述人脸识别模块进行人脸识别之后,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述人脸识别模块的输入队列的数量进行控制。
[0033]
第三方面,本发明实施例提出一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行第一方面所述的步骤。
[0034]
第四方面,本发明实施例提出一种计算机可读存储介质,其上存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的步骤。
[0035]
相比于现有技术,上述方法、装置、计算机设备和存储介质,通过监测目标检测对象的处理进程;在所述属性检测模块进行属性检测之后,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述属性检测模块的输入队列的数量进行控制;及
在所述人脸识别模块进行人脸识别之后,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述人脸识别模块的输入队列的数量进行控制。本发明通过上述队列数量的控制方法,可以使得各模块均能持续性运行,且避免了由于队列数量过多而阻塞,从而提高了效率。
附图说明
[0036]
图1为一个实施例中人脸识别系统的结构示意图;
[0037]
图2为一个实施例中人脸识别控制方法的流程示意图;
[0038]
图3为一个实施例中队列数量控制的整体流程示意图;
[0039]
图4为一个实施例中各模块的输入队列数量的控制流程示意图;
[0040]
图5为一个实施例中人脸识别控制装置的结构示意图;
[0041]
图6为一个实施例中计算机设备的结构示意图。
具体实施方式
[0042]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本技术,并不用于限定本技术。
[0043]
本技术提供的人脸识别控制方法,可以应用于如图1所示的人脸识别系统中。人脸识别系统10包括人脸检测模块102、属性检测模块104以及人脸识别模块106。
[0044]
人脸检测模块包含了人脸位置检测、跟踪、人脸角度、人脸质量评分和人脸关键点检测等。其中的检测内容可通过控制进行选择性运行,其中人脸位置框检测是必选。人脸检测模块的处理速度相对于属性检测模块以及人脸识别模块要快很多。
[0045]
属性检测模块用于准确识别多种人脸属性信息,包括年龄、性别、表情、情绪、口罩、脸型、头部姿态、是否闭眼、是否配戴眼镜、人脸质量信息及类型等。
[0046]
人脸识别模块主要用于人脸特征提取和特征的比对。人脸特征提取的过程耗时较高,且占用资源较大,因此需要控制其资源队列防止出现阻塞。
[0047]
由于各个模块的算法处理速度不同,如果不对各个模块的输入队列进行控制,会出现输入队列阻塞,从而导致整体效率低。
[0048]
为解决上述技术问题,在一实施例中,如图2所示,提供了一种人脸识别控制方法,以该方法应用于图1中的系统为例进行说明,包括以下步骤:
[0049]
s202:监测目标检测对象的处理进程。
[0050]
在本实施例中,人脸检测模块、属性检测模块以及人脸识别模块分别有独立的处理线程,目标检测对象每输入一个处理线程,则对应的use_count值加1,use_count表示输入的目标检测对象使用次数。对应的处理线程处理完后use_count值进行减1并归还自身的队列资源,当use_count值为0时表示该目标检测对象已经被所有处理线程处理完。
[0051]
其中,资源归还表示将所有处理线程处理完的目标检测对象放回人脸检测模块的资源队列中,便于后续将其所占的队列节点资源释放并实现持续送帧。若处理完的目标检测对象不进行归还释放,其所占的输入队列节点的资源将无法释放,最终会导致该队列节点资源耗尽外部无法继续送帧导致所有线程处于等待休眠状态。
[0052]
因此,在本实施例中,通过对use_count值的判断来监测目标检测对象的处理进程。
[0053]
s204:在所述属性检测模块进行属性检测之后,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述属性检测模块的输入队列的数量进行控制;及在所述人脸识别模块进行人脸识别之后,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述人脸识别模块的输入队列的数量进行控制。
[0054]
以属性检测模块为例,在所述属性检测模块进行属性检测之后,若目标检测对象的处理进程数为0,也就是处理进程结束,则表示属性检测模块的资源已归还,则可以在人脸检测模块的输入队列中增加待处理对象,从而使得各模块均能持续性运行,且避免了由于队列数量过多而阻塞,从而提高了效率。若目标检测对象的处理进程数不为0,则表示属性检测模块的资源未归还,则可以判断该目标检测对象还在处理中,则此时人脸检测模块的输入队列中不增加待处理对象,避免队列数量过多而阻塞,由于属性检测模块对待处理对象的处理进程已结束,则可以增加待处理对象,从而使得各模块均能持续性运行。
[0055]
可以理解的是,在人脸识别模块进行人脸识别之后,对人脸检测模块的输入队列和人脸识别模块的输入队列的数量进行控制的方法与上述控制方法相同,因此不再赘述。
[0056]
通过上述队列数量的控制方法,可以使得各模块均能持续性运行,且避免了由于队列数量过多而阻塞,从而提高了效率。
[0057]
在一实施例中,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述属性检测模块的输入队列的数量进行控制包括:
[0058]
若所述目标检测对象的处理进程结束,则对所述人脸检测模块和所述属性检测模块的输入队列分别增加预设数量的待处理对象;若所述目标检测对象的处理进程未结束,则对所述属性检测模块的输入队列增加预设数量的待处理对象。
[0059]
具体的,控制方式如下式所示:
[0060][0061]
式中,qd表示人脸检测模块的输入队列,qa属性检测模块的输入队列,use_count表示输入的目标检测对象的进程数。
[0062]
在一实施例中,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述人脸识别模块的输入队列的数量进行控制包括:
[0063]
若所述目标检测对象的处理进程结束,则对所述人脸检测模块和所述人脸识别模块的输入队列分别增加预设数量的待处理对象;若所述目标检测对象的处理进程未结束,则对所述人脸识别模块的输入队列增加预设数量的待处理对象。
[0064]
具体的,控制方式如下式所示:
[0065][0066]
式中,qd表示人脸检测模块的输入队列,qr表示人脸识别模块的输入队列,use_count表示输入的目标检测对象的进程数。
[0067]
队列数量控制的整体流程如图3所示。除了建立人脸检测处理线程、人脸属性处理
线程以及人脸识别处理线程之外,还建立了主线程与控制台线程。主线程主要负责个模块算法的创建、目标检测对象的加载及预处理、队列的创建等操作。控制台线程主要用于动态控制各模块的运行。在建立所有处理线程之后,将目标检测对象输入人脸检测模块的输入队列,人脸检测模块对目标检测对象进行处理后将输出结果(也就是待处理对象)分别输入到人脸识别模块的输入队列以及属性检测的输入队列。在属性检测模块进行属性检测之后,在use_count为0的情况下,对人脸检测模块和属性检测模块的输入队列增加待处理对象,在use_count不为0的情况下,对人脸检测模块的输入队列增加预设数量的待处理对象。在人脸识别模块进行人脸识别之后,在use_count为0的情况下,对人脸检测模块和人脸识别模块的输入队列分别增加预设数量的待处理对象,在use_count不为0的情况下,对人脸检测模块的输入队列增加预设数量的待处理对象。
[0068]
在一实施例中,控制方法还包括以下步骤:
[0069]
s206:基于所述目标检测对象前后两次处理进程结束的时间差,确定所述人脸检测模块的延时时间,基于所述延时时间控制所述人脸检测模块、属性检测模块和人脸识别模块的并发运行。
[0070]
由于人脸检测模块的处理速度相对于属性检测模块和人脸识别模块快很多,若不对其运行速度进行控制,则不能实现三者的并发运行,在本实施例中,基于所述目标检测对象前后两次处理进程结束的时间差,确定人脸检测模块的延时时间,对处理速度较快的人脸检测模块进行控制,从而实现三者的并发运行。
[0071]
其中,延时时间的确定如下式所示:
[0072]
延时时间wait=wait’+λ;
[0073]
其中,wait’表示上一次人脸检测模块的延时时间,λ由所述目标检测对象前后两次处理进程结束的时间差所确定。
[0074]
λ为自适应因子,每次自增的偏移量,其计算公式如下:
[0075]
λ=λ’+δt;
[0076]
其中,λ’为前一次的偏移量,δt表示目标检测对象前后两次处理进程结束的时间差值,也就是前后两次use_count为0的时间差值。当δt比较大时,表示人脸加测模块的处理速度远快于其他模块,因此检测的延时时间需要加长;反之δt较小,表示越趋于稳定;δt为0时,表示各模块之间的处理速度刚好达到了平衡极限。通过对处理速度较快的人脸检测模块的处理速度进行控制,从而实现三者的并发运行。
[0077]
各模块的输入队列数量的控制如图4所示。首先获取当前人脸检测模块的输入队列中目标检测对象的数量,在count为0的情况下,确定人脸检测模块的延时时间wait’+λ,并在延时时间之后,在use_count为0的情况下,人脸检测模块的输入队列增加预设数量的目标检测对象,进入获取当前人脸检测模块的输入队列中目标检测对象的数量的流程;在use_count不为0的情况下,进入属性检测模块和人脸识别模块的输入队列中待处理对象的数量是否小于队列数量最大值max_size的判断流程。在count不为0的情况下,获取当前属性检测模块的输入队列中待处理对象的数量,进入待处理对象的数量是否小于队列数量最大值max_size的判断流程,在待处理对象的数量小于队列数量最大值max_size的情况下,属性检测模块的输入队列增加预设数量的待处理对象,然后再进入上述use_count是否为0的判断流程;在待处理对象的数量大于或等于队列数量最大值max_size的情况下,进入获
取当前人脸检测模块的输入队列中目标检测对象的数量的流程。在count不为0的情况下,获取当前人脸识别模块的输入队列中待处理对象的数量,进入待处理对象的数量是否小于队列数量最大值max_size的判断流程,在待处理对象的数量小于队列数量最大值max_size的情况下,人脸识别模块的输入队列增加预设数量的待处理对象,然后再进入上述use_count是否为0的判断流程;在待处理对象的数量大于或等于队列数量最大值max_size的情况下,进入获取当前人脸检测模块的输入队列中目标检测对象的数量的流程。
[0078]
在上述控制过程中,增加了待处理对象的数量是否小于队列数量最大值的判断流程,在待处理对象的数量小于队列数量最大值的情况下,对输入队列增加预设数量的待处理对象,在待处理对象的数量大于或等于队列数量最大值的情况下,则不对输入队列增加预设数量的待处理对象,避免输入队列中待处理对象过多而造成无法缓存,从而影响模块的运行。
[0079]
在一实施例中,如图5所示,本发明提供了一种人脸识别控制装置50,应用于人脸识别系统,所述装置包括:
[0080]
检测模块502,用于监测目标检测对象的处理进程;
[0081]
第一控制模块504,用于在所述属性检测模块进行属性检测之后,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述属性检测模块的输入队列的数量进行控制;及在所述人脸识别模块进行人脸识别之后,基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述人脸识别模块的输入队列的数量进行控制。
[0082]
在一实施例中,第一控制模块对所述人脸检测模块的输入队列和所述属性检测模块的输入队列的数量进行控制包括:
[0083]
若所述目标检测对象的处理进程结束,则对所述人脸检测模块和所述属性检测模块的输入队列分别增加预设数量的待处理对象;
[0084]
若所述目标检测对象的处理进程未结束,则对所述属性检测模块的输入队列增加预设数量的待处理对象。
[0085]
在一实施例中,第一控制模块对所述人脸检测模块的输入队列和所述属性检测模块的输入队列的数量进行控制包括:
[0086]
控制方式如下式所示:
[0087][0088]
式中,qd表示人脸检测模块的输入队列,qa属性检测模块的输入队列,use_count表示输入的目标检测对象的进程数。
[0089]
在一实施例中,第一控制模块对所述人脸检测模块的输入队列和所述人脸识别模块的输入队列的数量进行控制包括:
[0090]
若所述目标检测对象的处理进程结束,则对所述人脸检测模块和所述人脸识别模块的输入队列分别增加预设数量的待处理对象;
[0091]
若所述目标检测对象的处理进程未结束,则对所述人脸识别模块的输入队列增加预设数量的待处理对象。
[0092]
在一实施例中,第一控制模块所述基于所述目标检测对象的处理进程,对所述人脸检测模块的输入队列和所述人脸识别模块的输入队列的数量进行控制包括:
[0093]
控制方式如下式所示:
[0094][0095]
式中,qd表示人脸检测模块的输入队列,qr表示人脸识别模块的输入队列,use_count表示输入的目标检测对象的进程数。
[0096]
在一实施例中,控制装置还包括:第二控制模块,用于基于所述目标检测对象前后两次处理进程结束的时间差,确定所述人脸检测模块的延时时间,基于所述延时时间控制所述人脸检测模块、属性检测模块和人脸识别模块的并发运行。
[0097]
在一实施例中,第二控制模块基于所述目标检测对象前后两次处理进程结束的时间差,确定所述人脸检测模块的延时时间包括:
[0098]
延时时间的确定如下式所示:
[0099]
延时时间wait=wait’+λ;
[0100]
其中,wait’表示上一次人脸检测模块的延时时间,λ由所述目标检测对象前后两次处理进程结束的时间差所确定。
[0101]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储动作检测数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述任一项人脸识别控制方法实施例中的步骤。
[0102]
本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0103]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一项人脸识别控制方法实施例中的步骤。
[0104]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项人脸识别控制方法实施例中的步骤。
[0105]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0106]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0107]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1