CN109471718B - 基于人脸识别的计算资源配置方法、装置、设备及介质 - Google Patents
基于人脸识别的计算资源配置方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN109471718B CN109471718B CN201811187257.7A CN201811187257A CN109471718B CN 109471718 B CN109471718 B CN 109471718B CN 201811187257 A CN201811187257 A CN 201811187257A CN 109471718 B CN109471718 B CN 109471718B
- Authority
- CN
- China
- Prior art keywords
- task
- computing
- face recognition
- preset
- file
- 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
Classifications
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于人脸识别的计算资源配置方法、装置、设备及介质,所述方法包括:以预设时间间隔,检测本地主机计算资源的硬件参数和与本地主机计算资源对应的驱动文件,得到硬件信息和驱动文件的存储路径;将硬件信息和驱动文件的存储路径对应保存到资源配置文件中;获取人脸识别计算任务的计算复杂度,并根据预设的计算复杂度与任务类型的对应关系,确定人脸识别计算任务的任务类型;从资源配置文件中读取与人脸识别计算任务的任务类型对应的驱动文件的存储路径,并调用与该存储路径中的驱动文件,完成人脸识别计算任务。本发明的技术方案解决了计算资源配置方式效率低,系统开销大以及自动化程度不高的问题。
Description
技术领域
本发明涉及信息处理领域,尤其涉及一种基于人脸识别的计算资源配置方法、装置、设备及介质。
背景技术
人脸识别技术是一种新兴的生物识别技术,它通过计算机对人脸进行分析比对来识别人脸,能被广泛的应用于于政府、军队、银行、社会福利保障、电子商务、安全防务等领域。人脸识别技术包括人脸图像采集、人脸追踪、人脸识别、身份确认等方面,并以数字信号处理算法、图形图像处理算法、神经网络等技术为基础。
人脸识别系统是应用人脸识别技术的应用系统,也是一种对计算资源要求非常高的应用系统。其中,如何高效的利用以CPU/GPU为核心的计算资源,是合理高效地利用硬件资源应对大规模数据处理请求、并提升人脸识别速度的关键。
现有人脸识别系统中,CPU和GPU分别由不同的服务程序进行驱动,人脸识别服务器需要在不同的服务程序之间进行切换,这种切换方式效率低,系统开销大;同时,若系统硬件升级,需要重新配置服务程序,自动化程度低。
发明内容
本发明实施例提供一种基于人脸识别的计算资源配置方法、装置、设备及介质,以解决人脸识别系统中计算资源配置方式效率低,系统开销大以及计算资源配置的自动化程度不高的问题。
一种基于人脸识别的计算资源配置方法,包括:
以预设时间间隔,检测本地主机计算资源的硬件参数和与所述本地主机计算资源对应的驱动文件,得到硬件信息和所述驱动文件的存储路径,其中,所述本地主机计算资源包括中央处理单元和图形处理单元;
将所述硬件信息和所述驱动文件的存储路径对应保存到资源配置文件中;
若接收到人脸识别计算任务,则获取所述人脸识别计算任务的计算复杂度,并根据预设的计算复杂度与任务类型的对应关系,确定所述人脸识别计算任务的任务类型;
从所述资源配置文件中读取与所述人脸识别计算任务的任务类型对应的所述驱动文件的存储路径,并调用与该存储路径中的所述驱动文件,完成所述人脸识别计算任务。
一种基于人脸识别的计算资源配置装置,包括:
检测模块,用于以预设时间间隔,检测本地主机计算资源的硬件参数和与所述本地主机计算资源对应的驱动文件,得到硬件信息和所述驱动文件的存储路径,其中,所述本地主机计算资源包括中央处理单元和图形处理单元;
配置文件生成模块,用于将所述硬件信息和所述驱动文件的存储路径对应保存到资源配置文件中;
任务分类模块,用于若接收到人脸识别计算任务,则获取所述人脸识别计算任务的计算复杂度,并根据预设的计算复杂度与任务类型的对应关系,确定所述人脸识别计算任务的任务类型;
驱动调用模块,用于从所述资源配置文件中读取与所述人脸识别计算任务的任务类型对应的所述驱动文件的存储路径,并调用与该存储路径中的所述驱动文件,完成所述人脸识别计算任务。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于人脸识别的计算资源配置方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于人脸识别的计算资源配置方法的步骤。
上述基于人脸识别的计算资源配置方法、装置、设备及介质,以预设时间间隔,检测本地主机计算资源的硬件参数和与所述硬件参数对应的驱动文件,定期检测本地主机的硬件配置信息和驱动文件信息,并保存到资源配置文件中,即由一个配置文件对计算资源进行统筹;根据预设计算复杂度,将人脸识别计算任务进行分类,得到适用于中央处理单元计算的CPU处理任务,以及适用于图像处理单元计算的GPU处理任务,即基于计算复杂度,在应用层对人脸识别计算任务进行分类,减少计算过程中切换计算资源的系统开销;针对不同的计算任务,从资源配置文件中调用相应的驱动文件,完成计算任务,使得计算过程中切换计算资源的效率更高,提升了计算资源的利用率;同时,当检测到本地主机的硬件配置信息或驱动文件信息有更新时,对资源配置文件进行同步更新,从而能在本机硬件升级后进行自动同步资源配置文件,提高了自动化程度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中基于人脸识别的计算资源配置方法的一应用环境示意图;
图2是本发明一实施例中基于人脸识别的计算资源配置方法的流程图;
图3是本发明一实施例中基于人脸识别的计算资源配置方法中步骤S4的流程图;
图4是本发明一实施例中基于人脸识别的计算资源配置装置的示意图;
图5是本发明一实施例中计算机设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的基于人脸识别的计算资源配置方法,可应用在如图1的应用环境中。其中,服务端是提供人脸识别服务的计算机终端;在服务端中,硬件CPU/GPU是服务端本地主机的计算资源;硬件CPU/GPU的上层是驱动层,驱动层包括驱动硬件CPU/GPU的驱动文件;驱动层的上层是服务层,服务层连接了驱动层与应用层,负责驱动层与应用层的通信,它为应用层提供服务,并调用驱动层的驱动文件以使CPU/GPU工作;服务层的上层是应用层,应用层通过应用层接口与服务层进行通信,应用层对应了不同的人脸识别计算任务,例如人脸对比计算任务、人脸检测计算任务、人脸跟踪计算任务等。本发明实施例提供的基于人脸识别的计算资源配置方法应用于服务层。
在一实施例中,如图2所示,提供了一种基于人脸识别的计算资源配置方法,其具体实现流程包括如下步骤:
S1:以预设时间间隔,检测本地主机计算资源的硬件参数和与本地主机计算资源对应的驱动文件,得到硬件信息和驱动文件的存储路径,其中,本地主机计算资源包括中央处理单元和图形处理单元。
在人脸识别系统中,参与人脸识别计算任务的主机有很多,每台主机中计算资源的硬件配置可能是不同的。其中,计算资源主要包括中央处理单元,即CPU(CentralProcessing Unit),以及图形处理单元,即GPU(Graphics Processing Unit)。CPU和GPU各自拥有不同的硬件参数,并且需要不同的驱动文件进行驱动。
硬件信息是计算资源中对计算速度有影响的主要硬件参数的集合,包括但不限于:物理/逻辑CPU的个数、CPU的核数、CPU的线程数、GPU的内存大小、GPU的核心频率、GPU的显存位宽、GPU的显存速度等。其中,GPU的内存大小,是反应显卡处理容量的重要指标;GPU的核心频率,是指显示核心的工作频率,其工作频率在一定程度上可以反映出显示核心的性能;GPU的显存位宽是显存在一个时钟周期内所能传送数据的位数,位数越大则瞬间所能传输的数据量越大,这是显存的重要参数之一;GPU的显存速度一般以纳秒(ns)为单位,常见的显存速度有1.2ns、1.0ns、0.8ns等,越小表示速度越快越好。
驱动文件的存储路径是计算资源对应的驱动文件所在的目录。GPU有专门的驱动文件来驱动,其驱动文件所在的目录为驱动文件的存储路径。CPU不需要专门的驱动文件来驱动,其驱动文件的存储路径可以虚拟一个默认空目录,以用于与GPU的驱动文件来区别。
为了便于系统自动配置计算资源,服务层通过定时任务定期检测本地主机计算资源的硬件参数和与本地主机计算资源对应的驱动文件,得到硬件信息和驱动文件的存储路径。其中,定时任务以预设时间间隔进行执行。预设时间间隔可以根据实际应用的需要进行设定,如以小时、天、月等为单位。
具体地,以Linux/Unix系统为例,服务层可以通过系统服务cron调用“crontab”命令设置定时任务,使得每隔72小时执行一次定时任务,该定时任务可以通过以下命令检测本地主机的CPU或GPU的配置情况:
(1)针对CPU,可以使用如下命令:
cat/proc/cpuinfo|grep"physical id"|sort|uniq|wc–l
以上命令用于查看物理CPU的个数;
cat/proc/cpuinfo|grep"processor"|wc–l
以上命令用于查看逻辑CPU的个数;
cat/proc/cpuinfo|grep"cores"|uniq
以上命令用于查看CPU是几核;
cat/proc/cpuinfo|grep MHz|uniq
以上命令用于查看CPU的主频;
(2)针对GPU,可以使用如下命令:
lspci|grep-i vga
以上命令用于检测GPU的IC型号,
lspci|grep-i nvidia
以上命令用于查询nvidia的GPU的具体参数:
其中,nvidia是英伟达(NVIDIA)公司推出的GPU产品,NVIDIA公司发明了GPU,重新定义了现代计算机图形技术,并彻底改变了并行计算领域。对于nvidia的GPU,还可以使用nvidia自带一个命令行工具“nvidia-smi”获取GPU的具体参数。
例如,若对一台主机进行检测,则通过以上对CPU/GPU的命令获得的硬件信息和驱动文件的存储路径可以为:CPU核数为16,CPU线程数为32,CPU的工作频率为2.5G,GPU核心频率为750MHz,GPU内存大小为2GB,GPU显存位宽为256位,GPU显存速度为0.8ns,GPU的驱动文件存储路径为“/usr/src/linux-3.5.20.1/drivers/nvida/”等。
S2:将硬件信息和驱动文件的存储路径对应保存到资源配置文件中。
资源配置文件是用来存储本地计算资源的硬件信息和驱动文件的存储路径的文本文件,并在文本文件中,对CPU和GPU的信息加以区分。
资源配置文件以用于当CPU/GPU有升级扩容时,服务层将通过定时任务检测到的硬件信息和驱动文件的存储路径与资源配置中的信息进行比较,及时检测到有硬件更新。
优选地,资源配置文件可以以JSON格式进行存储。JSON(JavaScript ObjectNotation,JS对象简谱)是一种轻量级的数据交换格式,JSON文件是以ASCII编码方式存储的,不依赖于操作系统,能被计算机程序快速的读取或生成,是一种流行的数据交换格式。
例如,一个关于CPU/GPU的JSON配置文件如下:
其中,CPU的信息包括:CPU核数为16,CPU线程数为32,CPU的工作频率为2.5G;GPU的信息包括:GPU核心频率为750MHz,GPU内存大小为2GB,GPU显存位宽为256位,GPU显存速度为0.8ns,GPU的驱动文件存储路径为“/usr/src/linux-3.5.20.1/drivers/nvida/”。
具体地,服务层可以将步骤S1中获取到的硬件信息和驱动文件的存储路径通过管道命令直接输入到文本文件中。如通过命令“cat/proc/cpuinfo|grep"physical id"|sort|uniq|wc–l|>>config.txt”,将CPU的物理个数输出到名为“config.txt”的文本文件中。或者,若服务端运行的是Java环境,则服务层可以通过调用JSONArray类将硬件信息和驱动文件的存储路径输出为JSON文件。
S3:若接收到人脸识别计算任务,则获取人脸识别计算任务的计算复杂度,并根据预设的计算复杂度与任务类型的对应关系,确定人脸识别计算任务的任务类型。
计算复杂度是指为完成一项计算任务而对计算资源的需求程度。计算复杂度与软件算法中的时间复杂度相类似。软件算法中的时间复杂度是根据完成软件中所有指令而需要的时间来确定,例如,对数据表的线性查找算法的时间复杂度为O(n),其中,n为数据表的长度,数据表长度越长,则耗时越多;若对数据表进行二分查找,则二分查找的时间复杂度为O(log2n),代表同样长度的数据表,用二分查找算法的时间复杂度要低于线性查找算法。计算复杂度反应了完成同一项计算任务,更适合用哪种计算资源进行计算。例如,为完成某项计算任务,使用GPU计算比使用CPU计算要更快完成,则该项计算任务属于适用于GPU完成的计算任务,称为GPU处理任务。同理,适用于CPU完成的计算任务,称为CPU处理任务。因此,不同的计算复杂度对应了对计算资源的不同需求,可以根据计算复杂度将计算任务分为不同的任务类型。
CPU处理任务和GPU处理任务的不同,正是由于CPU和GPU设计目标的不同,分别适用于两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型,同时要进行逻辑判断,并会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。
人脸识别计算任务是人脸识别系统中各种与人脸识别相关的计算任务的统称。人脸识别计算任务可以根据业务需要划分为若干计算任务,每个计算任务所属的任务类型不同。常见的人脸识别计算任务包括人脸检测、人脸对比、人脸跟踪、人脸背景图像擦除、多人脸对比查找等。由于这些计算任务的计算复杂度不同,即对计算资源的需求不同,可以将它们划分为CPU处理任务或GPU处理任务。
例如,人脸检测计算任务的主要工作是对包含有人脸的图片进行特征值计算,这涉及到计算机图像学中的图像滤波,图像去噪等相关的算法,以及计算机图形学中对点、线、面等几何图形计算的相关算法,是一项运算复杂度高的应用业务。因此,人脸检测的计算任务可以归为CPU处理任务。人脸对比计算任务的主要工作是将目标人脸图片的特征值与人脸库中的特征值进行比较,计算匹配度。一个人脸库中包含的特征值是相当大的,以百万计。这个比较计算的过程是包括大量的、简单的、重复的加减运算,因此,人脸对比的计算任务可以归为GPU处理任务。
人脸识别计算任务由应用层定义并通过应用层接口向下发送到服务层。应用层接口负责应用层与服务层的通信。应用层接口可以以API(Application ProgrammingInterface,应用程序编程接口)函数的形式将应用层参数传递到服务层。计算复杂度由应用层定义,例如可以以函数参数的形式定义并传递到服务层。服务层获取计算复杂度,则可以确定该人脸识别计算任务所属的任务类型。
举例来说,若应用层的人脸识别计算任务为人脸对比计算任务,则应用层接口可以定义一个参数作为计算复杂度,如void Api_FaceCompare(int flag,..)。其中,应用层接口的API函数名为“Api_FaceCompare”,参数名为“flag”的代表计算复杂度,flag的值为CPU_detect1代表CPU处理任务,flag的值为GPU_detect1代表GPU处理任务。当应用层调用服务层时,可以将flag代表的计算复杂度传递给服务层,服务层由此可以确定该人脸识别计算任务所属的任务类型,并对该人脸识别计算任务进行标识。其中,对人脸识别计算任务进行标识可以通过设置标志位来区分CPU处理任务和GPU处理任务,也可以将人脸识别计算任务分别保存到两个数组中,并以不同的数组名加以区分。
S4:从资源配置文件中读取与人脸识别计算任务的任务类型对应的驱动文件的存储路径,并调用与该存储路径中的驱动文件,完成人脸识别计算任务。
服务层在调用驱动层的驱动文件时,以驱动文件的存储路径为依据,根据存储路径找到对应的驱动文件,并调用驱动文件以完成人脸识别计算任务。
具体地,服务层先判断人脸识别计算任务的任务类型,若任务类型为GPU处理任务,则从资源配置文件中读取GPU对应的驱动文件的存储路径,并通过系统命令insmod载入存储路径下的所有驱动文件,以完成调用GPU执行人脸识别计算任务;若任务类型为CPU处理任务,则从资源配置文件中读取CPU对应的驱动文件的存储路径,并通过系统命令insmod载入存储路径下的所有驱动文件,以完成调用GPU执行人脸识别计算任务。
在本实施例中,以预设时间间隔,检测本地主机计算资源的硬件参数和与所述硬件参数对应的驱动文件,定期检测本地主机的硬件配置信息和驱动文件信息,并保存到资源配置文件中,即由一个配置文件对计算资源进行统筹;根据预设计算复杂度,将人脸识别计算任务进行分类,得到适用于中央处理单元计算的CPU处理任务,以及适用于图像处理单元计算的GPU处理任务,即基于计算复杂度,在应用层对人脸识别计算任务进行分类,减少计算过程中切换计算资源的系统开销;针对不同的计算任务,从资源配置文件中调用相应的驱动文件,完成计算任务,使得计算过程中切换计算资源的效率更高,提升了计算资源的利用率;同时,当检测到本地主机的硬件配置信息或驱动文件信息有更新时,对资源配置文件进行同步更新,从而能在本机硬件升级后进行自动同步资源配置文件,提高了自动化程度。
进一步地,在一实施例中,如图3所示,针对步骤S4,即从资源配置文件中读取与人脸识别计算任务的任务类型对应的驱动文件的存储路径,并调用与该存储路径中的驱动文件,完成人脸识别计算任务,包括如下步骤:
S41:若人脸识别计算任务的任务类型为CPU处理任务,则获取人脸识别计算任务中每个计算子任务的预设标志位。
人脸识别计算任务由多个逻辑函数组成,每个函数构成该人脸识别计算任务的一个计算子任务。其中,循环函数与其他普通逻辑函数不同,循环函数的循环语句经过编译后将转换成N条加法或减法语句,这里N为大于零的循环的次数。这N条语句是大量的、简单的、重复的加减运算,因此,循环函数可以归结为GPU处理任务。循环函数包括for语句、while语句、do while语句。
服务层可以对循环函数进行一次封装,即定义一个特殊的循环方法或函数,将循环语句做一层封装,该方法或函数的参数除包括循环的初值、循环次数和循环截止条件之外,还包括一个预设标志位。其中,预设标志位用于表示该计算子任务属于GPU处理任务或CPU处理任务。例如,将for语句、while语句、do while语句封装为srv_for语句、srv_while语句、do srv_while语句,预设标志位的值为0代表CPU处理任务,为1代表GPU处理任务。服务层可以通过每个计算子任务的参数得到预设标志位。
具体地,服务层可以根据CPU处理任务的函数列表,获取每个计算子任务的函数名,然后根据函数的参数得到每个计算子任务的预设标志位的值。
S42:若计算子任务的预设标志位为预设任务类型标识,则将该计算子任务的任务类型设置为GPU处理任务,否则,若所述计算子任务的所述预设标志位不等于预设任务类型标识,则将该计算子任务的任务类型设置为CPU处理任务。
预设任务类型标识用以区分计算子任务是属于CPU处理任务或GPU处理任务。预设任务类型标识采用的数值类型不限于用整型、布尔型或字符型进行标识。例如,对于整型,预设任务类型标识为0代表CPU处理任务,为1代表GPU处理任务;对于布尔型,预设任务类型标识为true代表CPU处理任务,为false代表GPU处理任务,等等。
具体地,服务层对预设标志位的值进行判断,从而确定该计算子任务的任务类型,并对该计算子任务进行标识。其中,对计算子任务进行标识可以通过设置标志位来区分CPU处理任务和GPU处理任务,也可以将计算子任务别保存到两个数组中,并以不同的数组名加以区分。
S43:从资源配置文件中读取与每个计算子任务的任务类型对应的驱动文件的存储路径,并调用与该存储路径中的驱动文件,完成每个计算子任务。
服务层在调用驱动层的驱动文件时,以驱动文件的存储路径为依据,根据存储路径找到对应的驱动文件,并调用驱动文件以完成计算子任务。
具体地,服务层通过步骤S42判断完计算子任务所属的任务类型后,若任务类型为GPU处理任务,则从资源配置文件中读取GPU对应的驱动文件的存储路径,并通过系统命令insmod载入存储路径下的所有驱动文件,以完成调用GPU执行该计算子任务;若任务类型为CPU处理任务,则从资源配置文件中读取CPU对应的驱动文件的存储路径,并通过系统命令insmod载入存储路径下的所有驱动文件,以完成调用GPU执行该计算子任务。
在本实施例中,服务层获取CPU处理任务中每个计算子任务的预设标志位,将由循环函数构成的计算子任务作为GPU处理任务,并调用相应的驱动使得该计算子任务由GPU执行,将在应用层被划分为CPU处理任务的人脸识别计算任务细分为若干计算子任务,并从若干计算子任务中提取可由GPU处理的GPU处理任务,优化了计算资源配置,提高了执行速度。
进一步地,在一实施例中,针对步骤S42,即若计算子任务的预设标志位为预设任务类型标识,则将该计算子任务的任务类型设置为GPU处理任务,否则,将该计算子任务的任务类型设置为CPU处理任务,具体可以包括:
若计算子任务的预设标志位为预设任务类型标识,且该计算子任务中循环语句的循环总次数超过预设阈值,则将该计算子任务的任务类型设置为GPU处理任务,否则,若计算子任务的预设标志位为预设任务类型标识,且该计算子任务中循环语句的循环总次数不超过预设阈值,则将该计算子任务的任务类型设置为CPU处理任务。
每个计算子任务中循环语句的循环总次数不尽相同,若将所有由循环函数构成的计算子任务都作为GPU处理任务,则循环总次数很少的计算子任务是在浪费GPU资源。
预设阈值用以限制循环语句中循环总次数。服务层可以通过预设阈值过滤掉不宜作为GPU处理任务的计算子任务。优选地,预设阈值为10000,即循环语句中,包括for语句、while语句、do while语句中的循环总次数超过10000,则将该计算子任务的任务类型设置为GPU处理任务,否则,将该计算子任务的任务类型设置为CPU处理任务。
具体地,服务层可以累加传入每个循环函数的循环次数,得到计算子任务中循环语句的循环总次数;然后与预设阈值进行比较,若超过预设阈值,则将该计算子任务的任务类型设置为GPU处理任务,否则,将该计算子任务的任务类型设置为CPU处理任务。
在本实施例中,服务层增加对循环语句中循环总次数的判断,进一步限制将计算子任务作为GPU处理任务的条件,过滤掉不宜使用GPU处理的计算子任务,进一步优化计算资源配置,进一步提高了执行速度。
进一步地,在一实施例中,在步骤S2之后,即将硬件信息和驱动文件的存储路径对应保存到资源配置文件中之后,基于人脸识别的计算资源配置方法还包括步骤:
将硬件信息和驱动文件存储路径对应保存到数据库中,以用于对硬件信息和驱动文件存储路径进行备份。
服务层可以将硬件信息和驱动文件存储路径保存到数据库中。数据库用于对硬件信息和驱动文件存储路径进行备份。数据库可以在服务端本地,也可以在服务端之外。数据库包括但不限于各种关系型和非关系型数据库,如MS-SQL、Oracle、MySQL、Sybase、DB2、Redis、MongodDB、Hbase等。
具体地,若服务端采用了Java环境,服务层可以通过JDBC将硬件信息和驱动文件的存储路径作为输入信息保存到数据库中。其中,JDBC(Java DataBase Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
在本实施例中,将硬件信息和驱动文件存储路径对应保存到数据库中,以用于备份本地主机的计算资源信息,防止本地主机故障后资源配置文件丢失的问题,使得服务层无需再重新检测本地计算资源,节省了系统开销。
进一步地,在一实施例中,在步骤S2之后,且在步骤S3之前,即在将硬件信息和驱动文件的存储路径对应保存到资源配置文件中之后,且在若接收到人脸识别计算任务,则获取人脸识别计算任务的计算复杂度,并根据预设的计算复杂度与任务类型的对应关系,确定人脸识别计算任务的任务类型之前,基于人脸识别的计算资源配置方法还包括:
为资源配置文件分配版本管理号,并将资源配置文件保存到版本管理库中,以用于对资源配置文件进行版本管理。
版本管理号用于对资源配置文件进行版本管理。服务层在定时任务中检测本地主机的硬件配置,并为每次得到的资源配置文件分配版本管理号。版本管理号可以根据预设命名规则进行命名,如以时间为序,或加上本地主机的主机名等。
版本管理库可以是存储平台或版本管理工具。存储平台可以是提供FTP(FileTransfer Protocol,文件传输协议)服务的服务器或服务器集群;版本管理工具可以是基于SVN或Git的第三方工具,其中,SVN是Subversion的简称,是一个开放源代码的版本控制系统;Git是一个开源的分布式版本控制系统。
具体地,以本地主机名称和当前系统时间的组合作为版本管理号,版本管理工具以Git为例,服务层可以通过系统调用函数hostname()获取本地主机名,服务层可以系统调用函数time()可以获取当前系统时间,得到的版本管理号为host01_20180812183055,其中host01代表本地主机名,20180812183055代表2018年8月12日18点30分55秒。服务层通过Git命令工具“git add host01_20180812183055”将资源配置文件保存到版本管理库中,以用于对资源配置文件进行版本管理。
在本实施例中,为资源配置文件分配版本管理号,对资源配置文件进行版本管理,使得若在系统升级过程中遇到硬件问题,可以及时退回到之前正常的版本,保证系统稳定性;同时,在回退版本之后,维护人员可以通过比较资源配置文件不同版本之间的差异,快速定位问题,便于系统维护。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种基于人脸识别的计算资源配置装置,该基于人脸识别的计算资源配置装置与上述实施例中基于人脸识别的计算资源配置方法一一对应。如图4所示,该基于人脸识别的计算资源配置装置包括接收模块41、变化量计算模块42、通信模型切换模块43和发送模块44。各功能模块详细说明如下:
检测模块41,用于以预设时间间隔,检测本地主机计算资源的硬件参数和与本地主机计算资源对应的驱动文件,得到硬件信息和驱动文件的存储路径,其中,本地主机计算资源包括中央处理单元和图形处理单元;
配置文件生成模块42,用于将硬件信息和驱动文件的存储路径对应保存到资源配置文件中;
任务分类模块43,用于若接收到人脸识别计算任务,则获取人脸识别计算任务的计算复杂度,并根据预设的计算复杂度与任务类型的对应关系,确定人脸识别计算任务的任务类型,其中,任务类型包括CPU处理任务和GPU处理任务;
驱动调用模块44,用于从资源配置文件中读取与人脸识别计算任务的任务类型对应的驱动文件的存储路径,并调用与该存储路径中的驱动文件,完成人脸识别计算任务。
进一步地,驱动调用模块44包括:
任务获取子模块,用于若人脸识别计算任务的任务类型为CPU处理任务,则获取人脸识别计算任务中每个计算子任务的预设标志位;
任务分类子模块,用于若计算子任务的预设标志位为预设任务类型标识,则将该计算子任务的任务类型设置为GPU处理任务,否则,若计算子任务的预设标志位不等于任务类型标识,则将该计算子任务的任务类型设置为CPU处理任务;
驱动调用子模块,用于从资源配置文件中读取与每个计算子任务的任务类型对应的驱动文件的存储路径,并调用与该存储路径中的驱动文件,完成每个计算子任务。
进一步地,任务分类子模块包括:
子任务判断单元,用于若计算子任务的预设标志位为预设任务类型标识,且该计算子任务中循环语句的循环总次数超过预设阈值,则将该计算子任务的任务类型设置为GPU处理任务,否则,若计算子任务的预设标志位为任务类型标识,且该计算子任务中循环语句的循环总次数不超过预设阈值,则将该计算子任务的任务类型设置为CPU处理任务。
进一步地,该基于人脸识别的计算资源配置装置还包括:
备份模块,用于将硬件信息和驱动文件存储路径对应保存到数据库中,以用于对硬件信息和驱动文件存储路径进行备份。
进一步地,该基于人脸识别的计算资源配置装置还包括:
版本管理模块,用于为所述资源配置文件分配版本管理号,并将所述资源配置文件保存到版本管理库中,以用于对所述资源配置文件进行版本管理。
关于基于人脸识别的计算资源配置装置的具体限定可以参见上文中对于基于人脸识别的计算资源配置方法的限定,在此不再赘述。上述基于人脸识别的计算资源配置装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于人脸识别的计算资源配置方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中基于人脸识别的计算资源配置方法的步骤,例如图2所示的步骤S1至步骤S4。或者,处理器执行计算机程序时实现上述实施例中基于人脸识别的计算资源配置装置的各模块/单元的功能,例如图4所示模块41至模块44的功能。为避免重复,这里不再赘述。
在一实施例中,提供一计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中基于人脸识别的计算资源配置方法,或者,该计算机程序被处理器执行时实现上述装置实施例中基于人脸识别的计算资源配置装置中各模块/单元的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于人脸识别的计算资源配置方法,其特征在于,所述基于人脸识别的计算资源配置方法包括:
以预设时间间隔,检测本地主机计算资源的硬件参数和与所述本地主机计算资源对应的驱动文件,得到硬件信息和所述驱动文件的存储路径,其中,所述本地主机计算资源包括中央处理单元和图形处理单元;
将所述硬件信息和所述驱动文件的存储路径对应保存到资源配置文件中;
若接收到人脸识别计算任务,则获取所述人脸识别计算任务的计算复杂度,并根据预设的计算复杂度与任务类型的对应关系,确定所述人脸识别计算任务的任务类型;
从所述资源配置文件中读取与所述人脸识别计算任务的任务类型对应的所述驱动文件的存储路径,并调用与该存储路径中的所述驱动文件,完成所述人脸识别计算任务;
若所述人脸识别计算任务的任务类型为CPU处理任务,则获取所述人脸识别计算任务中每个计算子任务的预设标志位;
若所述计算子任务的所述预设标志位为预设任务类型标识,则将该计算子任务的任务类型设置为GPU处理任务,否则,若所述计算子任务的所述预设标志位不等于预设任务类型标识,则将该计算子任务的任务类型设置为所述CPU处理任务;
从所述资源配置文件中读取与每个所述计算子任务的任务类型对应的所述驱动文件的存储路径,并调用与该存储路径中的所述驱动文件,完成每个所述计算子任务;
若所述计算子任务的所述预设标志位为预设任务类型标识,且该计算子任务中循环语句的循环总次数超过预设阈值,则将该计算子任务的任务类型设置为所述GPU处理任务,否则,若所述计算子任务的所述预设标志位为预设任务类型标识,且该计算子任务中循环语句的循环总次数不超过预设阈值,则将该计算子任务的任务类型设置为所述CPU处理任务。
2.如权利要求1所述的基于人脸识别的计算资源配置方法,其特征在于,所述将所述硬件信息和所述驱动文件的存储路径对应保存到资源配置文件中之后,所述若接收到人脸识别计算任务,则获取所述人脸识别计算任务的计算复杂度,并根据预设的计算复杂度与任务类型的对应关系,确定所述人脸识别计算任务的任务类型之前,所述基于人脸识别的计算资源配置方法还包括:
将所述硬件信息和所述驱动文件存储路径对应保存到数据库中,以用于对所述硬件信息和所述驱动文件存储路径进行备份。
3.如权利要求1所述的基于人脸识别的计算资源配置方法,其特征在于,所述将所述硬件信息和所述驱动文件的存储路径对应保存到资源配置文件中之后,所述若接收到人脸识别计算任务,则获取所述人脸识别计算任务的计算复杂度,并根据预设的计算复杂度与任务类型的对应关系,确定所述人脸识别计算任务的任务类型之前,所述基于人脸识别的计算资源配置方法还包括:
为所述资源配置文件分配版本管理号,并将所述资源配置文件保存到版本管理库中,以用于对所述资源配置文件进行版本管理。
4.一种基于人脸识别的计算资源配置装置,其特征在于,所述基于人脸识别的计算资源配置装置包括:
检测模块,用于以预设时间间隔,检测本地主机计算资源的硬件参数和与所述本地主机计算资源对应的驱动文件,得到硬件信息和所述驱动文件的存储路径,其中,所述本地主机计算资源包括中央处理单元和图形处理单元;
配置文件生成模块,用于将所述硬件信息和所述驱动文件的存储路径对应保存到资源配置文件中;
任务分类模块,用于若接收到人脸识别计算任务,则获取所述人脸识别计算任务的计算复杂度,并根据预设的计算复杂度与任务类型的对应关系,确定所述人脸识别计算任务的任务类型;
驱动调用模块,用于从所述资源配置文件中读取与所述人脸识别计算任务的任务类型对应的所述驱动文件的存储路径,并调用与该存储路径中的所述驱动文件,完成所述人脸识别计算任务;
任务获取子模块,用于若所述人脸识别计算任务的任务类型为CPU处理任务,则获取所述人脸识别计算任务中每个计算子任务的预设标志位;
任务分类子模块,用于若所述计算子任务的所述预设标志位为预设任务类型标识,则将该计算子任务的任务类型设置为GPU处理任务,否则,若所述计算子任务的所述预设标志位不等于预设任务类型标识,则将该计算子任务的任务类型设置为所述CPU处理任务;
驱动调用子模块,用于从所述资源配置文件中读取与每个所述计算子任务的任务类型对应的所述驱动文件的存储路径,并调用与该存储路径中的所述驱动文件,完成每个所述计算子任务;
子任务判断单元,用于若所述计算子任务的所述预设标志位为预设任务类型标识,且该计算子任务中循环语句的循环总次数超过预设阈值,则将该计算子任务的任务类型设置为所述GPU处理任务,否则,若所述计算子任务的所述预设标志位为预设任务类型标识,且该计算子任务中循环语句的循环总次数不超过预设阈值,则将该计算子任务的任务类型设置为所述CPU处理任务。
5.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述基于人脸识别的计算资源配置方法的步骤。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述基于人脸识别的计算资源配置方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811187257.7A CN109471718B (zh) | 2018-10-12 | 2018-10-12 | 基于人脸识别的计算资源配置方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811187257.7A CN109471718B (zh) | 2018-10-12 | 2018-10-12 | 基于人脸识别的计算资源配置方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109471718A CN109471718A (zh) | 2019-03-15 |
CN109471718B true CN109471718B (zh) | 2023-09-22 |
Family
ID=65663724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811187257.7A Active CN109471718B (zh) | 2018-10-12 | 2018-10-12 | 基于人脸识别的计算资源配置方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109471718B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021003692A1 (zh) * | 2019-07-10 | 2021-01-14 | 深圳市大疆创新科技有限公司 | 算法配置方法、设备、系统及可移动平台 |
CN110795225B (zh) * | 2019-10-31 | 2022-03-29 | 华夏银行股份有限公司 | 一种调度任务的执行方法及系统 |
CN111309519A (zh) * | 2019-10-31 | 2020-06-19 | 北京浪潮数据技术有限公司 | 一种云硬盘备份方法、系统及装置 |
CN114173136A (zh) * | 2020-09-10 | 2022-03-11 | Oppo广东移动通信有限公司 | 编码方法、解码方法、编码器、解码器以及编码系统 |
CN112784755A (zh) * | 2021-01-25 | 2021-05-11 | 瑞芯微电子股份有限公司 | 一种轻型的人脸跟踪方法和存储设备 |
CN112989082B (zh) * | 2021-05-20 | 2021-07-23 | 南京甄视智能科技有限公司 | Cpu和gpu混合的自适应人脸搜索方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624870A (zh) * | 2012-02-01 | 2012-08-01 | 北京航空航天大学 | 基于智能优化算法的云制造计算资源可重构配置方法 |
CN106131185A (zh) * | 2016-07-13 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 一种视频数据的处理方法、装置及系统 |
CN107704520A (zh) * | 2017-09-05 | 2018-02-16 | 小草数语(北京)科技有限公司 | 基于人脸识别的多文件检索方法和装置 |
CN107844371A (zh) * | 2017-10-12 | 2018-03-27 | 北京京东尚科信息技术有限公司 | 任务处理方法、系统及电子设备 |
EP3385834A1 (de) * | 2017-04-03 | 2018-10-10 | Jörg Koenning | Hardwaretreiber für effiziente arithmetik |
-
2018
- 2018-10-12 CN CN201811187257.7A patent/CN109471718B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624870A (zh) * | 2012-02-01 | 2012-08-01 | 北京航空航天大学 | 基于智能优化算法的云制造计算资源可重构配置方法 |
CN106131185A (zh) * | 2016-07-13 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 一种视频数据的处理方法、装置及系统 |
EP3385834A1 (de) * | 2017-04-03 | 2018-10-10 | Jörg Koenning | Hardwaretreiber für effiziente arithmetik |
CN107704520A (zh) * | 2017-09-05 | 2018-02-16 | 小草数语(北京)科技有限公司 | 基于人脸识别的多文件检索方法和装置 |
CN107844371A (zh) * | 2017-10-12 | 2018-03-27 | 北京京东尚科信息技术有限公司 | 任务处理方法、系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109471718A (zh) | 2019-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471718B (zh) | 基于人脸识别的计算资源配置方法、装置、设备及介质 | |
US7386577B2 (en) | Dynamic determination of transaction boundaries in workflow systems | |
GB2508503A (en) | Batch evaluation of remote method calls to an object oriented database | |
US10719360B2 (en) | Distributed multiple tier multi-node serverless framework for complex analytics task execution | |
CN108256113B (zh) | 数据血缘关系的挖掘方法及装置 | |
US10372465B2 (en) | System and method for controlling batch jobs with plugins | |
CN111078776A (zh) | 数据表的标准化方法、装置、设备及存储介质 | |
US8725461B2 (en) | Inferring effects of configuration on performance | |
CN111754123A (zh) | 数据监控方法、装置、计算机设备及存储介质 | |
CN115392501A (zh) | 数据采集方法、装置、电子设备及存储介质 | |
US7428486B1 (en) | System and method for generating process simulation parameters | |
US9058215B2 (en) | Integration of a calculation engine with a software component | |
EP3553658A1 (en) | Distributed multiple tier multi-node serverless framework for complex analytics task execution | |
US20240152444A1 (en) | Online query execution using a big data framework | |
CN111598768A (zh) | 图像优化处理方法、装置、计算机设备及存储介质 | |
CN116166813A (zh) | 大数据自动化运维的管理方法、系统、设备及存储介质 | |
CN115373822A (zh) | 任务调度方法、任务处理方法、装置、电子设备和介质 | |
CN113434397B (zh) | 任务系统的测试方法、装置、电子设备及存储介质 | |
CN115168509A (zh) | 风控数据的处理方法及装置、存储介质、计算机设备 | |
CN109614386B (zh) | 数据处理方法、装置、服务器及计算机可读存储介质 | |
CN103942235A (zh) | 针对大规模数据集交叉比较的分布式计算系统和方法 | |
CN112860779A (zh) | 一种批量数据导入方法及装置 | |
CN113157401A (zh) | 一种Java虚拟机管理方法及装置 | |
CN114327963A (zh) | 一种异常检测方法及装置 | |
CN111611245B (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 |