CN112989875B - 人脸识别方法、装置及存储介质 - Google Patents
人脸识别方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112989875B CN112989875B CN201911280266.5A CN201911280266A CN112989875B CN 112989875 B CN112989875 B CN 112989875B CN 201911280266 A CN201911280266 A CN 201911280266A CN 112989875 B CN112989875 B CN 112989875B
- Authority
- CN
- China
- Prior art keywords
- face
- network
- face data
- optimized
- face recognition
- 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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Collating Specific Patterns (AREA)
- Telephone Function (AREA)
Abstract
本申请公开了一种人脸识别方法、装置及存储介质,属于计算机技术领域。由于该方法可以通过第一进程执行人脸初始图像采集和人脸数据获取操作,且可以通过与该第一进程并行工作的第二进程同时执行基于人脸数据进行人脸识别的操作,因此相对于相关技术中按序在一个进程中依次执行初始图像采集、人脸数据获取和人脸识别,本公开实施例提供的人脸识别方法的识别效率较高。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种人脸识别方法、装置及存储介质。
背景技术
人脸识别作为一种基于人的脸部特征信息进行身份识别的技术,因其识别便利、可靠且准确等优点被广泛应用于各类领域(如金融领域和安防领域)中。
相关技术中,移动终端在采集到包含有人脸的图像或视频流时,可以先对该图像或视频流进行人脸检测以确定出人脸数据,然后再对该人脸数据进行关键点检测以提取该人脸图像的关键点特征,最后再将提取到的关键点特征与预先存储的特征模板进行匹配实现人脸识别。
相关技术中的人脸识别方法的识别效率较低。
发明内容
本公开实施例提供了一种人脸识别方法、装置及存储介质,可以解决相关技术中人脸识别方法的识别效率较低的问题。所述技术方案如下:
一方面,提供了一种人脸识别方法,所述方法包括:
响应于人脸识别指令,通过第一进程采集包含有人脸的初始图像;
通过所述第一进程从所述初始图像中获取所述人脸的人脸数据,并通过所述第一进程将所述人脸数据存储于共享内存中;
通过第二进程从所述共享内存中获取所述人脸数据,并通过所述第二进程基于所述人脸数据进行人脸识别;
其中,所述第一进程和所述第二进程并行工作。
另一方面,提供了一种移动终端,所述移动终端包括:处理器;
所述处理器用于:响应于人脸识别指令,通过第一进程采集包含有人脸的初始图像;通过所述第一进程从所述初始图像中获取所述人脸的人脸数据,并通过所述第一进程将所述人脸数据存储于共享内存中;通过第二进程从所述共享内存中获取所述人脸数据,并通过所述第二进程基于所述人脸数据进行人脸识别;其中,所述第一进程和所述第二进程并行工作。
又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得计算机执行如上述方面所述的人脸识别方法。
本公开提供的技术方案带来的有益效果至少可以包括:
综上所述,本公开实施例提供了一种人脸识别方法、装置及存储介质。由于该方法可以通过第一进程执行人脸初始图像采集和人脸数据获取操作,且可以通过与该第一进程并行工作的第二进程同时执行基于人脸数据进行人脸识别的操作,因此相对于相关技术中按序在一个进程中依次执行初始图像采集、人脸数据获取和人脸识别,本公开实施例提供的人脸识别方法的识别效率较高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开的实施例,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例提供的一种人脸识别方法所涉及的实施环境示意图;
图2是本公开实施例提供的一种人脸识别方法的流程图;
图3是本公开实施例提供的另一种人脸识别方法的流程图;
图4是本公开实施例提供的一种对网络进行优化的方法流程图;
图5是本公开实施例提供的一种人脸识别方法的流程框图;
图6是本公开实施例提供的一种移动终端的框图;
图7是本公开实施例提供的一种移动终端的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
随着计算机技术领域中人工智能和深度学习技术的发展,人脸识别(刷脸)技术在各行各业中不断盛行。例如,支持刷脸支付和刷脸认证的金融行业,支持刷脸开门的安防行业,以及支持人脸识别寻人的公安行业等等。
人脸识别技术需求的增加给人们也带来了极大的研究热情,越来越多的人开始在深度学习领域展开对人脸识别技术的探索。深度学习主要分为线下训练和线上部署,线上部署可以包括云端部署和嵌入式端部署。同时,因数据获取渠道的增多,获取到的数据量也越来越多,且对于人脸识别,获取到的数据越多越好。但正因为数据量的增多相应的也导致了识别效率变慢。目前,为了解决人脸识别速度较慢的问题,一般可以通过对人脸识别所需用到的网络算法本身进行优化,或者,可以采用网络优化工具提升人脸识别网络的整体运行效率。
本公开实施例提供了一种人脸识别方法,该方法打破了原有人脸识别的执行顺序,将人脸数据检测和人脸关键点检测分别通过两个进程并行执行,缩短了最终进入人脸识别网络执行人脸识别的图像预处理时间。另外,在该多进程执行的基础上,再采用网络推理引擎对人脸识别所需用到的网络算法优化,减少人脸数据检测和人脸关键点检测所需的时间,即减少了网络的前向推理时间。通过多进程和网络优化的双重技术,有效提高了人脸识别的效率。
图1是本公开实施例提供的一种人脸识别方法所涉及的实施环境示意图。如图1所示,该实施环境可以包括:移动终端10,该移动终端10可以为计算机、笔记本电脑或者智能手机等,图1以该移动终端10为智能手机为例进行说明。
需要说明的是,为了实现包括人脸的初始图像的采集,该移动终端10上可以设置有摄像头,该移动终端10中可以配置有能够采集该初始图像的应用软件,例如,该应用软件可以为能够实现视频采集的开源计算机视觉库(open Source Computer Vision Library,open CV)。且为了实现人脸识别,该移动终端10中还可以配置有能够进行人脸识别的一系列网络算法,如人脸检测网络、人脸关键点检测网络和人脸识别网络。为了通过多进程实现人脸识别,该移动终端10中还可以预先建立有多个进程,如下述实施例提到的第一进程和第二进程。
可选的,该实施环境还可以包括:服务器或嵌入式平台,即该人脸识别方法可以部署于移动终端上、服务器上或嵌入式平台上。例如,该人脸识别方法可以部署于硬件资源较少但对实时性要求较高的平台上。
图2是本公开实施例提供的一种人脸识别方法的流程图,可以应用于图1所示的移动终端10中。如图2所示,该方法可以包括:
步骤201、响应于人脸识别指令,通过第一进程采集包含有人脸的初始图像。
在本公开实施例中,移动终端在接收到人脸识别指令时,可以启动摄像头,并通过第一进程启用该摄像头采集包含有人脸的初始图像,该初始图像可以为一帧图像,或者,也可以为多帧图像(即可以为采集视频)。
步骤202、通过第一进程从初始图像中获取人脸的人脸数据,并通过第一进程将人脸数据存储于共享内存中。
移动终端在采集到初始图像后,可以通过该第一进程中预先存储的人脸检测网络对该初始图像进行检测,以获取仅包括人脸的人脸数据。并将获到的人脸数据存储于提前开辟好的共享内存中,便于通过第二进程获取。
步骤203、通过第二进程从共享内存中获取人脸数据,并通过第二进程基于人脸数据进行人脸识别。
其中,第一进程和第二进程并行工作。也即是,移动终端可以通过第一进程不断获取人脸数据并将人脸数据存储于共享内存中,只要共享内存中存储有人脸数据,移动终端即可以通过第二进程基于人脸数据进行人脸识别。如此,通过两个进程并行执行人脸数据获取和人脸识别两个过程,有效提高了人脸识别的效率。
综上所述,本公开实施例提供了一种人脸识别方法。由于该方法可以通过第一进程执行人脸初始图像采集和人脸数据获取操作,且可以通过与该第一进程并行工作的第二进程同时执行基于人脸数据进行人脸识别的操作,因此相对于相关技术中按序在一个进程中依次执行初始图像采集、人脸数据获取和人脸识别,本公开实施例提供的人脸识别方法的识别效率较高。
图3是本公开实施例提供的另一种人脸识别方法的流程图,该方法可以应用于图1所示的移动终端10中。如图3所示,该方法可以包括:
步骤301、响应于人脸识别指令,通过第一进程采集包含有人脸的初始图像。
在本公开实施例中,移动终端可以在多种情境下接收到人脸识别指令,且对于不同的人脸识别场景,移动终端接收到人脸识别指令的情境可能不同。
如,若人脸识别场景为刷脸解锁移动终端屏幕,则当移动终端屏幕被激活时(即亮屏时),移动终端可以接收到人脸识别指令;若人脸识别场景为刷脸认证场景,则当移动终端中安装的待认证身份的应用客户端被启动时,移动终端可以接收到人脸识别指令。但是,不论移动终端是在何种情境下接收到人脸识别指令,均需在该人脸识别场景下预先启动人脸识别的功能。
当移动终端接收到人脸识别指令时,可以通过预先建立的第一进程响应于该人脸识别指令启动其安装的摄像头采集包含有人脸的初始图像。该初始图像可以包括一帧图像,或者,该初始图像也可以包括多帧图像。即该初始图像可以为移动终端采集的图像或视频。本公开实施例对此不做限定。
步骤302、通过第一进程采用网络推理引擎对人脸检测网络进行优化。
在本公开实施例中,为了进一步加速人脸识别,移动终端还可以在进行人脸识别之前,采用网络推理引擎对人脸识别所需用到的网络算法进行优化。因移动终端是通过第一进程获取人脸数据,因此,可以通过第一进程采用网络推理引擎对获取人脸数据所需用到的人脸检测网络进行优化加速。该人脸检测网络可以为预先属于至第一进程的网络。
可选的,该网络推理引擎可以为TensorRT加速推理引擎,或者,该网络推理引擎可以为xnnc(xtensa netural network compiler)网络编译器。其中,TensorRT为网络推理引擎的名称,xtensa为网络编译器使用的处理器的名称。本公开实施例均以该网络推理引擎为TensorRT加速推理引擎为例进行说明。
TensorRT加速推理引擎具有如下优点:(1)支持INT8模式和FP16模式,可以在保证网络运行精度同时,最大程度的减少计算量;(2)可以通过解析网络模型将网络中无用的输出层摒弃以减少计算量;(3)对于网络垂直整合,可以将多个层融合为一个层,如将卷积层(conv)、标准化层(Batch Normalizati on,BN)和激活函数层(Rectified Linear Unit,relu)融合为一个层;(4)对于网络水平整合,可以将输入为相同张量和执行相同操作的层融合在一起;(5)可以将连接层(contact)的输入直接送入下一层,减少了一次传输吞吐。
移动终端在获取到人脸检测网络后,可以采用TensorRT加速推理引擎对该网络算法进行优化(也可以称为重构),生成trt引擎,若引擎构建成功则表示优化成功,移动终端可以继续执行下述步骤。若引擎构建失败则表示优化失败,移动终端退出人脸识别流程。图4是本公开实施例提供的一种构建流程示意图。
结合图4可知,构建流程可以概括为:
先输入待优化的网络,然后再查看当前使用的解析器是否可以解析该人脸检测网络中所有的网络层,若不能,则需要采用TensorRT优化加速器的软件开发工具包(SoftwareDevelopment Kit,SDK)进行重新构建。且预先将单精度FP32的标志位默认设置为1,在程序上表现为:default Fp32=true。最后,为了实现优化,需要先检测当前平台是否支持INT8模式,若支持,则设置INT8的标志位为1,在程序上表现为:set INT8Mode=true。若不支持,则继续检测当前平台是否支持半精度FP16模式,同理,若支持,则设置FP16的标志位为1,在程序上表现为:set P16Mode=true。若不支持,则可以按照默认的单精度模式FP32去创建引擎,实现网络优化。待引擎创建完成,移动终端可以将创建好的引擎序列化后存储至文档中等待后期使用时读取。
步骤303、根据优化后的人脸检测网络的类型,对初始图像进行预处理。
为了采用优化后的人脸检测网络实现对初始图像的可靠检测,在检测获取人脸数据之前,移动终端还需要对初始图像进行预处理。可选的,该预处理可以包括:图像数据的格式转化、图像比例放缩以及图像数据的维度转换。
并且,在采用TensorRT优化加速器进行优化时,还需要将预处理后的初始图像对应的图像数据转存至一个大小为N×C×W×H的数组中,作为优化后创建的引擎的输入。其中,N表示一次输入到TensorRT中图像的数量,C、H、W分别表示输入图像的通道数量、图像的高度和图像的宽度。
步骤304、通过第一进程采用优化后的人脸检测网络对初始图像进行检测,以获取人脸的人脸数据。
在本公开实施例中,移动终端可以通过第一进程采用优化后的人脸检测网络对初始图像进行检测(也可以称为前向推理),以确定当前帧初始图像中是否存在人脸数据,若存在,则获取人脸数据;若不存在,则可以在显示界面中对外显示未检测到人脸信息,移动终端继续检测下一帧初始图像。
当然,移动终端也可以不执行上述步骤302,即移动终端可以直接采用预先存储的人脸检测网络对初始图像进行检测,以获取人脸数据。本公开实施例对此不做限定。另外,为了使得未优化前的人脸检测网络可靠完成人脸数据获取,也需要依据该人脸检测网络的类型,对初始图像进行相应的预处理。
步骤305、通过第一进程为人脸数据设置用于唯一指示人脸数据的标识,并将人脸数据的标识与人脸数据关联存储于共享内存中。
在本公开实施例中,为了避免移动终端基于同一个人脸数据进行重复识别,在每次获取到人脸数据后,移动终端均可以为该人脸数据设置用于唯一指示该人脸数据的标识(也可以称为数据头),且可以将该人脸数据的标识与人脸数据关联存储于提前开辟好的共享内存中。该过程也可以称为对人脸数据进行数据重构。
可选的,在移动终端一次采集到多帧初始图像时,为获取到的每个人脸数据设置的标识可以用于指示该人脸数据的帧数(frame num),进而,移动终端可以对每一帧进行计数,直至累加结果为帧数阈值后即清零。该标识的位数可以为多个字节(如48个字节)。相应的,移动终端可以在获取到的人脸数据前为该人脸数据添加指示该人脸数据帧数的标识,并将其共同存储于共享内存中。
例如,以标识指示帧数,且该标识共包括48个字节为例,表1示出了共享内存中存储的人脸数据(face data)和人脸数据的标识(frame num)。
表1
MutexLOCK | frame num | faceData |
0 31 | 0 47 |
需要说明的是,移动终端为该人脸数据设置的标识不仅限于指示人脸数据的帧数,且该标识也不仅限于为48个字节的标识。例如,该标识可以用于指示人脸数据的处理次数,该标识可以包含有英文、数字和特殊符号中的至少一种字符。
还需要说明的是,移动终端还可以不设置标识,即移动终端还可以在获取到人脸数据后,直接将人脸数据存储于共享内存中。
步骤306、通过第一进程为人脸数据设置进程锁。
可选的,为了防止第一进程和第二进程同时在共享内存中进行读写操作而导致程序崩溃,移动终端还可以在获取到人脸数据后,通过第一进程为该人脸数据设置一把进程锁。只有通过第二进程获取到该进程锁后,才可以通过第二进程获取到通过第一进程存储于共享内存中的人脸数据,进而才可以进一步基于人脸数据进行人脸识别。
例如,参考表1,移动终端可以在为人脸数据添加的标识前,继续为该人脸数据添加一把进程锁(MutexLOCK),且该进程锁可以为31个字节。
需要说明的是,该进程锁可以是共享内存中预先配置好的,移动终端可以直接从该共享内存中获取进程锁并添加至获取到的人脸数据中,实现为人脸数据设置进程锁的操作。当然,若移动终端在共享内存中未获取到进程锁,则可以一直执行获取进程锁的操作,直至获取到进程锁为止。该设置进程锁的过程也可以称为对人脸数据进行数据重构。
步骤307、释放进程锁。
为了使得移动终端可以通过第二进程获取到该进程锁,移动终端在为人脸数据设置好进程锁并将人脸数据存储于共享内存后,可以释放该进程锁。
步骤308、通过第二进程采用网络推理引擎分别对人脸关键点检测网络和人脸识别网络进行优化。
同上述步骤302,为了进一步加速人脸识别,移动终端还可以通过第二进程采用网络推理引擎对该进程所需用到的人脸关键点检测网络和人脸识别网络进行优化。该人脸关键点检测网络和人脸识别网络可以为预先输入至第二进程的网络。
由于本公开实施例是通过两个进程分别执行人脸数据的获取和基于人脸数据进行人脸识别,相应的,获取人脸数据的人脸检测网络和进行人脸识别的相关网络可以输入至不同进程中,且由于一个进程中仅能同时运行一个网络推理引擎,由此即避免了多个网络推理引擎无法在一个进程中同时运行的弊端,进一步最大限度的缩短了人脸识别的过程,提高了人脸识别效率。
步骤309、通过第二进程获取进程锁。
在本公开实施例中,由于移动终端通过第一进程为人脸数据设置了进程锁,因此若想从共享内存中获取人脸数据,移动终端在对网络进行优化后,可以通过第二进程不断尝试获取进程锁,在获取到进程锁后,移动终端即可以通过第二进程继续执行下述步骤。相应的,若未获取到进程锁,则移动终端可以通过第二进程不断执行获取进程锁的操作,直至获取到进程锁为止。
步骤310、通过第二进程从共享内存中获取人脸数据的标识,并检测标识是否为已处理标识。
移动终端在获取到进程锁后,可以通过第二进程进一步从共享内存中获取人脸数据的标识,并将获取到的标识与存储的已处理过的人脸数据的标识进行对比,以确定该标识是否为已处理标识,即确定是否已基于该标识对应的人脸数据进行过人脸识别。
例如,若该标识为用于指示人脸数据帧数的标志符frameNum,则移动终端可以检测该frameNum与已存储的标识frameNumOld是否相等。若相等,则移动终端可以确定当前获取到的人脸数据为上一帧,即确定已基于该人脸数据进行过人脸识别,移动终端不再重复处理,释放进程锁并返回读取下一帧人脸数据,直至检测到获取到的人脸数据对应的frameNum与frameNumOld不相等为止。若不相等,则移动终端即可以继续执行下述人脸识别操作。
通过设置标识,并基于标识对人脸数据进行检测,可以避免通过第二进程重复执行人脸识别操作,浪费资源。需要说明的是,在确定标识不为已处理标识时,移动终端可以通过第二进程转存获取到的人脸数据,并释放进程锁,以便通过第一进程继续为人脸数据添加进程锁。
步骤311、通过第二进程采用优化后的人脸关键点检测网络对人脸数据进行关键点检测,以确定人脸数据的关键点特征。
在本公开实施例中,移动终端在基于标识检测到该人脸数据未处理过时,可以将该人脸数据输入至优化后的人脸关键点检测网络,该优化后的人脸关键点检测网络可以对该人脸数据进行检测,从而确定人脸数据的关键点特征。该过程也可以称为关键点检测。
步骤312、通过第二进程采用优化后的人脸识别网络,基于关键点特征进行人脸识别。
在本公开实施例中,移动终端在通过第二进程完成关键点特征检测后,可以通过第二进程将该关键点特征输入至优化后的人脸识别网络,该优化后的人脸识别网络可以基于该关键点特征和预先存储的模板进行匹配完成人脸识别。
步骤313、通过第二进程将人脸数据的标识设置为已处理标识。
可选的,为了使得移动终端可以基于为人脸数据设置的标识确定是否已基于人脸数据进行过人脸识别,移动终端在每次基于人脸数据识别完成后,可以将人脸数据的标识设置为已处理标识,并通过第二进程存储该已处理标识。
以采集视频为例,图5以流程框图的方式示出了本公开实施例提供的人脸识别方法。参考图5,移动终端可以通过第一进程先执行视频采集,然后采用网络推理引擎对人脸检测网络进行算法优化,最后再基于优化后的人脸检测网络进行人脸检测以获取人脸数据。另外,为了防止重复检测和避免读写崩溃,参考图5,移动终端在获取到人脸数据后,还可以通过第一进程对人脸数据进行数据重构(即添加标识和进程锁),最终将人脸数据、人脸数据的标识和进程锁一并存储于共享内存中。当然,算法优化和视频采集的先后顺序并不做限定。
继续参考图5,移动终端可以先通过第二进程,采用网络推理引擎对人脸关键点检测网络和人脸识别网络分别进行算法优化,然后,移动终端可以通过图5示出的决策模块从共享内存中获取进程锁、人脸数据以及基于人脸数据的标识判断是否已基于该人脸数据进行过人脸识别。在确定未基于该人脸数据进行过人脸识别后,移动终端可以继续通过第二进程,采用优化后的人脸关键点检测网络对该人脸数据进行关键点检测以获取关键点特征,以及在获取到关键点特征后,采用优化后的人脸识别网络基于该关键点特征进行人脸识别。
需要说明的是,由于关键点特征检测所需时间较短,因此本公开实施例通过一个进程执行关键点检测和人脸识别,且通过另一个进程执行人脸检测,可以尽可能的保证两个进程的执行时间能够同步,减少数据交互的等待时间。当然,本公开实施例对第一进程和第二进程的执行操作不做限定。
还需要说明的是,本公开实施例提供的人脸识别方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。例如,上述步骤302可以在步骤301前执行。任何熟悉本技术领域的技术人员在本公开揭露的技术范围内可轻易想到变化的方法,都应涵盖在发明的保护范围之内,因此不再赘述。
综上所述,本公开实施例提供了一种人脸识别方法。由于该方法可以通过第一进程执行人脸初始图像采集和人脸数据获取操作,且可以通过与该第一进程并行工作的第二进程同时执行基于人脸数据进行人脸识别的操作,因此相对于相关技术中按序在一个进程中依次执行初始图像采集、人脸数据获取和人脸识别,本公开实施例提供的人脸识别方法的识别效率较高。
图6是本公开实施例还提供的一种移动终端10的结构示意图。如图6所示,该移动终端可以包括:处理器110。该处理器110可以用于:
响应于人脸识别指令,通过第一进程采集包含有人脸的初始图像。通过第一进程从初始图像中获取人脸的人脸数据,并通过第一进程将人脸数据存储于共享内存中。通过第二进程从共享内存中获取人脸数据,并通过第二进程基于人脸数据进行人脸识别。其中,第一进程和第二进程并行工作。
可选的,该处理器还可以用于:通过第一进程为人脸数据设置用于唯一指示人脸数据的标识,并将人脸数据的标识与人脸数据关联存储于共享内存中。通过第二进程从共享内存中获取人脸数据的标识,并检测标识是否为已处理标识,若标识不为已处理标识,则执行基于人脸数据进行人脸识别的操作。
在通过第二进程基于人脸数据进行人脸识别之后,该处理器还可以用于:通过第二进程将人脸数据的标识设置为已处理标识。
可选的,该处理器还可以用于:
通过第一进程为人脸数据设置进程锁。
通过第一进程将人脸数据存储于共享内存后,释放进程锁。
通过第二进程获取进程锁后,通过第二进程执行获取人脸数据的操作。
可选的,该处理器通过第一进程从初始图像中获取人脸的人脸数据,包括:
通过第一进程采用网络推理引擎对人脸检测网络进行优化。通过第一进程采用优化后的人脸检测网络对初始图像进行检测,以获取人脸的人脸数据。
可选的,该处理器还可以用于:在通过第一进程采用优化后的人脸检测网络对初始图像进行检测之前,根据优化后的人脸检测网络的类型,对初始图像进行预处理。
可选的,该预处理包括格式转换、放缩和维度转换中的至少一种。
可选的,该处理器通过第二进程基于人脸数据进行人脸识别,包括:通过第二进程采用网络推理引擎分别对人脸关键点检测网络和人脸识别网络进行优化。通过第二进程采用优化后的人脸关键点检测网络对人脸数据进行关键点检测,以确定人脸数据的关键点特征。通过第二进程采用优化后的人脸识别网络,基于关键点特征进行人脸识别。
综上所述,本公开实施例提供了一种移动终端。由于该移动终端可以通过第一进程执行人脸初始图像采集和人脸数据获取操作,且可以通过与该第一进程并行工作的第二进程同时执行基于人脸数据进行人脸识别的操作,因此相对于相关技术中按序在一个进程中依次执行初始图像采集、人脸数据获取和人脸识别,本公开实施例提供的人脸识别装置的识别效率较高。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的移动终端包括的处理器的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图7是本公开实施例提供的一种移动终端的结构示意图,如图7所示,该移动终端10可以包括控制器100、通信接口130、用户输入/输出接口140、存储器190以及供电电源180。在一些实施例中,移动终端10可是一种智能设备,例如可以是智能手机。
参考图7,控制器100包括处理器110和RAM 113和ROM 114、通信接口130以及通信总线。控制器100用于控制移动终端10的运行和操作,以及内部各部件之间通信协作以及外部和内部的数据处理功能。
通信接口130在控制器100的控制下,实现与其他设备之间控制信号和数据信号的通信。如:将接收到的用户输入信号发送至显示设备上。通信接口130可包括WiFi芯片、蓝牙模块、NFC模块等其他近场通信模块中至少之一种。
用户输入/输出接口140,其中,输入接口包括麦克风141、触摸板142、传感器143、按键144等其他输入接口中至少一者。如:用户可以通过语音、触摸、手势、按压等动作实现用户指令输入功能,输入接口通过将接收的模拟信号转换为数字信号,以及数字信号转换为相应指令信号。
输出接口包括将接收的用户指令发送至其他设备的接口。在一些实施例中,可以是红外接口,也可以是射频接口。
在一些实施例中,移动终端10包括通信接口130和输出接口中至少一者。移动终端10中配置通信接口130,如:WiFi、蓝牙、NFC等模块,可将用户输入指令通过WiFi协议、或蓝牙协议、或NFC协议编码,发送至其他设备。
存储器190,用于在控制器100的控制下存储驱动和控制移动终端10的各种运行程序、数据和应用。存储器190,可以存储用户输入的各类控制信号指令。例如,存储器190中存储有计算机程序,控制器100执行该计算机程序时可以实现上述方法实施例所提供的人脸识别方法。
供电电源180,用于在控制器100的控制下为移动终端10各元件提供运行电力支持。可以电池及相关控制电路。
本公开实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,可以使得该计算机执行如图2或图3所示的人脸识别方法。
应当理解,本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (7)
1.一种人脸识别方法,其特征在于,所述方法包括:
响应于人脸识别指令,通过第一进程采集包含有人脸的初始图像;
通过所述第一进程采用网络推理引擎对人脸检测网络进行优化;
通过所述第一进程采用优化后的人脸检测网络对所述初始图像进行检测,以获取所述人脸的人脸数据,并通过所述第一进程将所述人脸数据存储于共享内存中;
通过所述第一进程为所述人脸数据设置进程锁;
通过所述第一进程将所述人脸数据存储于所述共享内存后,释放所述进程锁;
通过第二进程获取所述进程锁;
通过所述第二进程采用网络推理引擎对人脸关键点检测网络进行优化;
通过第二进程从所述共享内存中获取所述人脸数据,并通过所述第二进程采用优化后的人脸关键点检测网络对所述人脸数据进行关键点检测,以确定所述人脸数据的关键点特征;
通过所述第二进程采用网络推理引擎对人脸识别网络进行优化;
通过所述第二进程采用优化后的人脸识别网络,基于所述关键点特征进行人脸识别,所述第一进程和所述第二进程并行工作;
其中,所述网络推理引擎包括:TensorRT加速推理引擎;对于所述人脸检测网络、所述人脸关键点检测网络和所述人脸识别网络中任一网络而言,采用网络推理引擎对待优化的网络进行优化,包括:
输入待优化的网络;
若当前优化网络时使用的解析器不能解析所述待优化的网络中所有的网络层,则采用TensorRT优化加速器的软件开发工具包进行重新构件,并将单精度FP32模式的标志位默认设置为1;
检测当前优化网络的平台是否支持INT8模式;
若当前优化网络的平台支持INT8模式,则设置INT8模式的标志位为1,并按照INT8模式创建引擎,从而实现网络优化;若当前优化网络的平台不支持INT8模式,则检测当前优化网络的平台是否支持半精度FP16模式;
若当前优化网络的平台支持FP16模式,则设置FP16模式的标志位为1,并按照FP16模式创建引擎,从而实现网络优化;若当前优化网络的平台不支持FP16模式,则按照默认的FP32模式创建引擎,从而实现网络优化。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述第一进程为所述人脸数据设置用于唯一指示所述人脸数据的标识,并将所述人脸数据的标识与所述人脸数据关联存储于所述共享内存中;
通过所述第二进程从所述共享内存中获取所述人脸数据的标识,并检测所述标识是否为已处理标识,若所述标识不为已处理标识,则执行基于所述人脸数据进行人脸识别的操作;
在通过所述第二进程基于所述人脸数据进行人脸识别之后,所述方法还包括:通过所述第二进程将所述人脸数据的标识设置为已处理标识。
3.根据权利要求1或2所述的方法,其特征在于,在通过所述第一进程采用优化后的人脸检测网络对所述初始图像进行检测之前,所述方法还包括:
根据优化后的人脸检测网络的类型,对所述初始图像进行预处理。
4.根据权利要求3所述的方法,所述预处理包括格式转换、放缩和维度转换中的至少一种。
5.一种移动终端,其特征在于,所述移动终端包括:处理器;所述处理器用于:
响应于人脸识别指令,通过第一进程采集包含有人脸的初始图像;
通过所述第一进程采用网络推理引擎对人脸检测网络进行优化;
通过所述第一进程采用优化后的人脸检测网络对所述初始图像进行检测,以获取所述人脸的人脸数据,并通过所述第一进程将所述人脸数据存储于共享内存中;
通过所述第一进程为所述人脸数据设置进程锁;
通过所述第一进程将所述人脸数据存储于所述共享内存后,释放所述进程锁;
通过第二进程获取所述进程锁;
通过所述第二进程采用网络推理引擎对人脸关键点检测网络进行优化;
通过第二进程从所述共享内存中获取所述人脸数据,并通过所述第二进程采用优化后的人脸关键点检测网络对所述人脸数据进行关键点检测,以确定所述人脸数据的关键点特征;
通过所述第二进程采用网络推理引擎对人脸识别网络进行优化;
通过所述第二进程采用优化后的人脸识别网络,基于所述关键点特征进行人脸识别,所述第一进程和所述第二进程并行工作;
其中,所述网络推理引擎包括:TensorRT加速推理引擎;对于所述人脸检测网络、所述人脸关键点检测网络和所述人脸识别网络中任一网络而言,所述处理器,用于:
输入待优化的网络;
若当前优化网络时使用的解析器不能解析所述待优化的网络中所有的网络层,则采用TensorRT优化加速器的软件开发工具包进行重新构件,并将单精度FP32模式的标志位默认设置为1;
检测当前优化网络的平台是否支持INT8模式;
若当前优化网络的平台支持INT8模式,则设置INT8模式的标志位为1,并按照INT8模式创建引擎,从而实现网络优化;若当前优化网络的平台不支持INT8模式,则检测当前优化网络的平台是否支持半精度FP16模式;
若当前优化网络的平台支持FP16模式,则设置FP16模式的标志位为1,并按照FP16模式创建引擎,从而实现网络优化;若当前优化网络的平台不支持FP16模式,则按照默认的FP32模式创建引擎,从而实现网络优化。
6.根据权利要求5所述的移动终端,其特征在于,所述处理器还用于:
通过所述第一进程为所述人脸数据设置用于唯一指示所述人脸数据的标识,并将所述人脸数据的标识与所述人脸数据关联存储于所述共享内存中;
通过所述第二进程从所述共享内存中获取所述人脸数据的标识,并检测所述标识是否为已处理标识,若所述标识不为已处理标识,则执行基于所述人脸数据进行人脸识别的操作;
所述处理器还用于:在通过所述第二进程基于所述人脸数据进行人脸识别之后,通过所述第二进程将所述人脸数据的标识设置为已处理标识。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得计算机执行如权利要求1至4任一所述的人脸识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911280266.5A CN112989875B (zh) | 2019-12-13 | 2019-12-13 | 人脸识别方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911280266.5A CN112989875B (zh) | 2019-12-13 | 2019-12-13 | 人脸识别方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112989875A CN112989875A (zh) | 2021-06-18 |
CN112989875B true CN112989875B (zh) | 2023-04-18 |
Family
ID=76332197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911280266.5A Active CN112989875B (zh) | 2019-12-13 | 2019-12-13 | 人脸识别方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112989875B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114185430A (zh) * | 2021-11-12 | 2022-03-15 | 中原动力智能机器人有限公司 | 人机交互***、方法及智能机器人 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7558408B1 (en) * | 2004-01-22 | 2009-07-07 | Fotonation Vision Limited | Classification system for consumer digital images using workflow and user interface modules, and face detection and recognition |
CN100357960C (zh) * | 2006-03-08 | 2007-12-26 | 北京邮电大学 | 一种基于网格的并行、分布式识别人脸的方法 |
CN103902960A (zh) * | 2012-12-28 | 2014-07-02 | 北京计算机技术及应用研究所 | 一种实时人脸识别***及其方法 |
CN105718305B (zh) * | 2016-03-15 | 2018-11-13 | 南京南瑞继保电气有限公司 | 一种基于进程的仿真任务并行调度方法 |
CN109034371B (zh) * | 2018-06-27 | 2021-06-25 | 北京文安智能技术股份有限公司 | 一种深度学习模型推理期加速方法、装置及*** |
CN109086670B (zh) * | 2018-07-03 | 2019-10-11 | 百度在线网络技术(北京)有限公司 | 人脸识别方法、装置及设备 |
CN109922319B (zh) * | 2019-03-26 | 2020-10-09 | 重庆英卡电子有限公司 | 基于多核cpu的rtsp协议多视频流并行预处理方法 |
CN110288632A (zh) * | 2019-05-15 | 2019-09-27 | 北京旷视科技有限公司 | 一种图像处理方法、装置、终端及存储介质 |
CN110443114B (zh) * | 2019-06-19 | 2023-09-19 | 平安科技(深圳)有限公司 | 人脸识别方法、装置、计算机设备及可读存储介质 |
-
2019
- 2019-12-13 CN CN201911280266.5A patent/CN112989875B/zh active Active
Non-Patent Citations (3)
Title |
---|
天津滨海迅腾科技集团有限公司主编.多线程和多进程.《Python程序设计》.2018,全文. * |
朱道明等.神经网络法.《建筑安防技术》.2013,全文. * |
王晓英等.进程的概念.《计算机***平台》.2016,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN112989875A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11210608B2 (en) | Method and apparatus for generating model, method and apparatus for recognizing information | |
US11270099B2 (en) | Method and apparatus for generating facial feature | |
CN104360736B (zh) | 基于手势的终端控制方法和*** | |
US10121050B2 (en) | Method and fingerprint sensing system for forming a fingerprint representation | |
US11734954B2 (en) | Face recognition method, device and electronic equipment, and computer non-volatile readable storage medium | |
CN104584034A (zh) | 用于面部辨识的方法和设备 | |
CN105574389A (zh) | 一种指纹识别方法和终端 | |
EP3287920B1 (en) | Electronic terminal screen unlocking method, image acquisition method and device | |
CN104681025B (zh) | 利用语音识别的命令执行***及其工作方法 | |
CN111191207A (zh) | 电子文件的控制方法、装置、计算机设备及存储介质 | |
CN114898466A (zh) | 一种面向智慧工厂的视频动作识别方法及*** | |
CN111508493A (zh) | 语音唤醒方法、装置、电子设备及存储介质 | |
CN112989875B (zh) | 人脸识别方法、装置及存储介质 | |
CN112286360A (zh) | 用于操作移动设备的方法和装置 | |
WO2018161312A1 (zh) | 指纹识别的方法及装置 | |
CN105471998A (zh) | 一种用于在多个终端中同步应用数据的方法和装置 | |
CN106250740A (zh) | 一种指纹识别方法及装置 | |
CN108763893A (zh) | 基于人脸识别的读写装置、方法及电子设备 | |
CN105139254A (zh) | 一种基于耳纹识别银行远程身份认证的方法及*** | |
Moshayedi et al. | Fingerprint Identification Banking (FIB); Affordable and Secure Biometric IOT Design | |
KR20200097446A (ko) | 멀티모달 컨텐츠 제공 시스템 및 방법, 이를 위한 컨텐츠 인덱싱 장치 | |
CN113127827B (zh) | 一种基于ai***的用户指令处理方法 | |
CN113537993B (zh) | 一种基于脸部支付的数据检测方法及装置 | |
CN112731816B (zh) | 设备控制方法、***、设备和可读存储介质 | |
WO2022157834A1 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム |
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 |