CN106529408B - 一种人脸检测的方法及装置 - Google Patents
一种人脸检测的方法及装置 Download PDFInfo
- Publication number
- CN106529408B CN106529408B CN201610884062.2A CN201610884062A CN106529408B CN 106529408 B CN106529408 B CN 106529408B CN 201610884062 A CN201610884062 A CN 201610884062A CN 106529408 B CN106529408 B CN 106529408B
- Authority
- CN
- China
- Prior art keywords
- thread
- scanned
- region
- pass
- procedure
- 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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- 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
- G06V40/161—Detection; Localisation; Normalisation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例公开了一种人脸检测的方法及装置,包括:输入图片,将所述图片分成待扫描的区域;对每个待扫描的区域,配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程,即在第一线程处理第一流程时,第二线程同时处理上一次的第二流程;配置并固定第一流程的头M个循环的所述分类器的参数;配置多引擎,多引擎能够并行地扫描多个待扫描的区域;配置控制模块用于跟踪每一个单引擎的工作状态,并记录每个待扫描的区域的状态,协调每一个单引擎的工作。实施本发明实施例,能够通过一种新的FPGA硬件角度实现人脸检测,节省耗时,提高人脸检测的速度和性能。
Description
技术领域
本发明涉及人脸检测领域,尤其涉及一种人脸检测的方法及装置。
背景技术
目前人脸检测技术在新一代的人机界面、安全访问和视频监控以及基于内容的检索等领域得到广泛应用。现有的人脸检测实现方案包括纯软件实现方案和现场可编程门阵列硬件(Field-Programmable Gate Array,简称FPGA)加速方案。软件实现都很慢,如果是640*480的图片,一般耗时需要一两秒左右;现有的FPGA加速,一般速度也都在10fps以内,
实时的FPGA人脸抓拍系统,需要应用到很高端的FPGA芯片。常用的一种应用FPGA加速的人脸检测算法的具体流程是:首先对图像区域进行扫描,进而通过分类器进行比较,如果比较器全部通过就会输出人脸信息,否则,就重新扫描。但是现有的级联型人脸识别算法,每一步分类器的比较都需要等上一步完成,对于有人脸的图像区域,需要等所有的分类器完成比较之后,才能得到最后的得分值(表示该人脸与真实人脸的接近度)。另外每个分类器对图像区域的读取模式没有固定规律,所以很难进行并行处理。并因为需要对大量众多的图像区域进行扫描,因此处理一张图片的速度很慢。这就造成了人脸检测的速度慢、效率低下的问题。
发明内容
本发明实施例公开了一种人脸检测的方法及装置,能够从一种新的现场可编程门阵列硬件(Field-Programmable Gate Array,简称FPGA)角度实现人脸检测,可以解决现有人脸检测的速度慢、效率低的技术问题,具有速度快、性能高的优点。
本发明实施例第一方面公开了一种人脸检测的方法,包括:
输入图片,将所述图片分成待扫描的区域;对每个所述待扫描的区域,配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程;
其中,所述第一流程包括操作步骤a至e,具体包括:
a.计算分类器在所述待扫描区域的读取地址;
b.根据分类器的读取地址,在所述待扫描区域中读取像素点的值;
c.对读取到的所述像素点的值进行类比;
d.根据上一步的类比结果,选择下一个分类器;
e.重复步骤a,重复次数由分类器的树结构的高度决定;
其中,所述第二流程包括操作步骤f至k,具体包括:
f.根据所述第一流程的所述类比结果,在查找表中读取类比的分值;
g.将上一步读取的所述类比的分值进行累加,得到所述待扫描区域的分值;
h.将所述待扫描区域中的分值和预设的阀值进行比较;
i.如果步骤h的比较结果为负,则表明所述待扫描区域没有人脸,则扫描下一个所述待扫描的区域;
j.如果所述步骤h的比较结果为正,确定本次循环结果检测是有人脸;
k.重复的次数完成后,如果最后的比较结果为正,则输出人脸信息,其中,所述人脸信息包括坐标、大小和得分值。
在一种可选方案中,在第一方面提供的方法中,所述控制第一线程、第二线程并行处理第一流程和第二流程,包括:在所述第一线程处理所述第一流程时,同时第二线程处理上一次的所述第二流程。
在一种可选方案中,在第一方面提供的方法中,所述输入图片包括:
将整个的所述图片进行压缩;将压缩之后的所述图片全部缓存入现场可编程门阵列硬件FPGA的片上随机存取存储器RAM。
在一种可选方案中,在第一方面提供的方法中,所述方法在所述控制第一线程、第二线程并行处理第一流程和第二流程之前,还包括:配置并固定所述第一流程的头M个循环的所述分类器的参数,其中所述M为大于0的正整数。
在一种可选方案中,在第一方面提供的方法中,还包括:配置多引擎,在所述多引擎的每一个单引擎内部配置双线程,控制所述第一线程、所述第二线程并行处理所述第一流程和所述第二流程,所述多引擎并行地扫描多个待扫描的区域;配置控制模块,所述控制模块用于跟踪每一个所述单引擎的工作状态,并且记录每一个所述待扫描的区域的状态,分配所述每一个所述单引擎的工作。
本发明实施例第一方面公开了一种人脸检测的装置,包括:输入单元,用于输入图片,将所述图片分成待扫描的区域;处理单元,对每个所述待扫描的区域,配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程。
其中,所述第一流程包括操作步骤a至e,具体包括:
a计算分类器在所述待扫描区域的读取地址;
b.根据分类器的读取地址,在所述待扫描区域中读取像素点的值;
c.对读取到的所述像素点的值进行类比;
d.根据上一步的类比结果,选择下一个分类器;
e.重复步骤a,重复次数由分类器的树结构的高度决定;
其中,所述第二流程包括操作步骤f至k,具体包括:
f.根据所述第一流程的所述类比结果,在查找表中读取类比的分值;
g.将上一步读取的所述类比的分值进行累加,得到所述待扫描区域的分值;
h.将所述待扫描区域中的分值和预设的阀值进行比较;
i..如果步骤h的比较结果为负,则表明所述待扫描区域没有人脸,则扫描下一个所述待扫描的区域;
j.如果所述步骤h的比较结果为负,确定本次循环结果检测是有人脸;
k.重复的次数完成后,如果最后的比较结果为正,则输出人脸信息,其中,所述人脸信息包括坐标、大小和得分值。
在一种可选方案中,在第一方面提供的装置中,所述控制第一线程、第二线程并行处理第一流程和第二流程,包括:在所述第一线程进行处理所述第一流程时,同时第二线程处理上一次的所述第二流程。
在一种可选方案中,在第一方面提供的装置中,所述输入待扫描图片包括:将整个所述待扫描图片进行压缩;将压缩之后的所述图片全部缓存入现场可编程门阵列硬件FPGA的片上随机存取存储器RAM。
在一种可选方案中,在第一方面提供的装置中,所述装置还包括:
参数固定单元,用于配置并固定所述第一流程的头M个循环的所述分类器的参数,其中所述M为大于0的正整数。
在一种可选方案中,在第一方面提供的装置中,所述装置还包括:
多引擎配置单元,用于配置多引擎,所述多引擎的每一个单引擎内部配置双线程,控制所述第一线程、所述第二线程并行处理所述第一流程和所第二流程,所述多引擎用于并行地扫描多个待扫描的区域;控制模块配置单元,用于跟踪所述每一个所述单引擎的工作状态,并且记录每个所述待扫描的区域的状态,分配所述每一个所述单引擎的工作。
本发明实施例中,通过压缩整个待扫描的图片,并将压缩之后的图片全部缓存入现场可编程门阵列硬件FPGA的片上随机存取存储器RAM,对每个待扫描的区域,配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程,即在第一线程处理第一流程时,第二线程同时处理上一次的第二流程;另外,配置并固定第一流程的头M个循环的所述分类器的参数,M为大于0的正整数;配置多引擎,所述多引擎并行地扫描多个待扫描的区域;配置控制模块,所述控制模块用于跟踪所述每一个引擎的工作状态,并且记录每个待扫描区域的状态,分配每个引擎的工作。可以看出,在本发明实施例提供的技术方案可以节省人脸检测的耗用时间,提高人脸检测的速度和性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种人脸检测的方法的流程示意图。
图2是本发明实施例公开的一种多引擎的实现场景示意图。
图3是本发明实施例公开的另一种人脸检测的方法的流程示意图。
图4是本发明实施例公开的一种人脸检测的装置的结构示意图。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
本发明实施例公开了一种人脸检测的方法及装置,能够从一种新的现场可编程门阵列硬件(Field-Programmable Gate Array,简称FPGA)角度实现人脸检测,提高人脸检测的速度。以下分别进行详细说明。
请参阅图1,图1是本发明实施例公开的一种人脸检测的方法的流程示意图。如图1所示,该人脸检测的方法可以包括以下步骤:
S101、输入图片,将该图片分成待扫描的区域。
上述步骤S101中输入图片包括:首先,将整个图片进行压缩,压缩的大小根据图片分辨率以及存储器空间来决定;然后,将压缩之后的图片全部缓存入现场可编程门阵列硬件(Field-Programmable Gate Array,简称FPGA)的片上随机存取存储器(Random AccessMemory,简称RAM),从而能够让每个分类器快速地对像素点进行频繁地读取。
S102,对每个待扫描的区域,配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程。
上述步骤S102中第一流程包括操作步骤a至e,具体包括:
a计算分类器在该待扫描区域的读取地址;
b.根据分类器的读取地址,在该待扫描区域中读取像素点的值;
c.对读取到的所述像素点的值进行类比;
d.根据上一步的类比结果,选择下一个分类器;
e.重复步骤a,重复次数由分类器的树结构的高度决定;
上述步骤S102中第二流程包括操作步骤f至k,具体包括:
f.根据第一流程的类比结果,在查找表中读取类比的分值;
g.将上一步读取的类比的分值进行累加,得到该待扫描区域的分值;
h.将该待扫描区域中的分值和预设的阀值进行比较;
i.如果步骤h的比较结果为负,表明所述待扫描区域没有人脸,则扫描下一个待扫描的区域;
j.如果步骤h的比较结果为正,则跳回重复步骤a;
k.重复的次数完成后,如果最后的比较为正,则输出人脸信息,其中,人脸信息包括坐标、大小和得分值。
上述步骤S102中配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程是指在在第一线程进行处理第一流程时,同时第二线程处理上一次的第二流程。例如:输入第一分区的待扫描区域图片之后,首先第一线程执行第一流程的操作步骤,第一流程结束之后直接将类比结果输出给第二线程的第二流程,第一线程直接转去执行下一个待扫描分区的第一流程,而不是等待第二流程全部执行结束。这样,对于有人脸的图像区域,不需要等所有的分类器完成比较之后,才能得到最后的得分值。第一线程和第二线程是两个独立的线程,可以并行进行处理第一流程和第二流程,能够提高时效。一般情况下,如果第一流程总体的执行耗时约为整体时间的60%,第二流程总体的执行耗时约为整体时间的40%,通过设立两个双线程,控制第一线程和第二线程并行处理第一流程和第二流程,能够节省大于30%的耗时。
可选的,其中分类器是引擎(即计算单元)的扫描窗口,它会根据算法去计算决定去取哪一个像素值去比较。
可选的,上述步骤S102的步骤j中如果步骤h的比较结果为正,则跳回重复步骤a,这是因为如果步骤h的比较结果为正,表明程序的本次循环结果检测是有人脸,但由于步骤S102是一个多次循环的操作,需要多次循环重复才能最终确认并输出人脸信息,即进行步骤k:重复的次数完成后,如果最后的比较结果为正,则输出人脸信息。这可以保证人脸检测的准确度,其中,跳回重复步骤a的次数由算法决定。
可选的,上述步骤S102的步骤k中的得分值表示该人脸与真实人脸的接近度,得分值的高低和人脸与真实人脸的接近程度的高低相对应,得分值越高则表示该待扫描的人脸越接近真实人脸。
可选的,上述步骤S102在在控制第一线程、第二线程并行处理第一流程和第二流程之前,还包括:配置并固定第一流程的头M个循环的分类器的参数,其中M为大于0的正整数。因为大多数扫描的区域会在少数的几次循环后就退出。所以针对这一缺点,在每个引擎里都固化了第一流程的头几个循环的分类器参数。在头几个循环中,引擎不需要去读取分类器的参数就可以进行操作,从而避免了不必要的RAM读取,加快了人脸检测算法的实现速度。
可以理解的是,其中M为大于0的正整数,可选的,本发明一个实施例的具体实施方式中,优选地将M设置为8,即配置并固定第一流程的头8个循环的分类器的参数。当然,在实际应用中,也可以将M设置为其它数字。
本发明实施例提供的技术方案通过压缩整个图片并将压缩之后的全部缓存入现场可编程门阵列硬件(Field-Programmable Gate Array,简称FPGA)的片上随机存取存储器(Random Access Memory,简称RAM),从而能够让每个分类器快速地对像素点进行频繁地读取,然后将该图片分成待扫描的区域,对每个待扫描的区域,配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程,其中第一流程包括步骤a与e,第二流程包括步骤f至k。由于第一线程和第二线程是两个独立的线程,在第一线程进行处理第一流程时,同时第二线程处理上一次的第二流程,能够提高时效;另外设置并固定流程1的头几个循环的分类器参数,能够避免不必要的RAM读取。所以,本发明实施例提供的技术方案,能够采用FPGA硬件实现人脸的检测,在增加非常少的资源情况下,能够提高人脸检测的方法的速度,其具有效率高、性能好的优点,且在低端的FPGA上也能运行。
请参阅图3,图3是本发明实施例公开的另一种人脸检测的方法的流程示意图,该方法可以在如图2所示的网络架构下实现。如图2所示,本发明实施例公开了一种多引擎的实现场景示意图,具体包括:控制模块21、多引擎模块22和存储器模块23,其中控制模块21可以管理多引擎模块22和存储器模块23。其中,多引擎模块22包括引擎0至引擎7的8个引擎,当然实际应用中,也可以配置其它个数的多引擎;存储器模块23包括分类器参数独立存储器、分类器参数共享存储器、像素值存储器、查找表参数存储器、阈值存储器、人脸信息存储器,不同存储器可以进行存储复用。如图3所示,本发明实施例公开了一另一种人脸检测的方法的流程示意图,该人脸检测的方法可以包括:
S301,配置多引擎,在多引擎的每一个单引擎内部配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程,多引擎并行地扫描多个待扫描的区域。
上述步骤S301中第一流程包括步骤a与e,第二流程包括步骤f至k,步骤a与e、步骤f至k的具体解释与图1中相同。
上述步骤S301中的引擎可以是硬件的计算单元。
可以理解的是,上述步骤S301中配置多引擎,能够同时通过多个计算单元来处理图片。对每个需要扫描的区域,通过一个单独的引擎去扫描,配置多个引擎,就可以并行地扫描多个区域。例如:如果实现了8个引擎,就可以对8个区域同时扫描,即使在忽略单引擎内部的优化处理情况下,也能够对整个算法达到8倍的提速。当然,多引擎的个数具体由系统资源和算法设计来决定。
S302,配置控制模块,该控制模块用于跟踪每一个所述单引擎的工作状态,并且记录每一个待扫描的区域的状态,分配所述每一个单引擎的工作。
上述步骤S302中控制模块,该控制模块用于跟踪所述每一个单引擎的工作状态,并且记录每一个待扫描区域的状态,分配所述每一个引擎的工作。因为对每一个不同的区域扫描时,不同区域的退出时间是不同的,控制模块能够跟踪每个引擎的工作状态,并且记录每个需要扫描的区域的状态,协调分配每个引擎的工作。可以避免某些引擎工作负荷、但同时某些引擎闲置的不合理的工作状态,做到每个引擎都能高效运作。
本发明实施例提供的技术方案通过配置多引擎,在多引擎的每一个单引擎内部配置双线程并行处理第一流程和第二流程,多引擎能够同时对图片的不同区域进行处理,另外,还配置控制模块,该控制模块用于跟踪每一个引擎的工作状态,并且记录每个待扫描区域的状态,分配所述每个引擎的工作,保证每个引擎都能高效运作。所以,本发明实施例提供的技术方案能够提升图片处理的效能,提高人脸检测的速度。
请参阅图4,图4是本发明实施例公开的一种人脸检测的装置的结构示意图。本发明实施例公开的一种人脸检测的装置包括:
输入单元401,用于输入待扫描图片。
可选的,上述输入单元401中输入待扫描图片包括:首先,将整个图片进行压缩,压缩的大小根据图片分辨率以及存储器空间来决定;然后,将压缩之后的图片全部缓存入现场可编程门阵列硬件(Field-Programmable Gate Array,简称FPGA)的片上随机存取存储器(Random Access Memory,简称RAM),从而能够让每个分类器快速地对像素点频繁地进行读取。
处理单元402,对每个所述待扫描的区域,配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程。
可选的,上述处理单元402中第一流程包括操作步骤a至e,具体包括:
a计算分类器在该待扫描区域的读取地址;
b.根据分类器的读取地址,在该待扫描区域中读取像素点的值;
c.对读取到的所述像素点的值进行类比;
d.根据上一步的类比结果,选择下一个分类器;
e.重复步骤a,重复次数由分类器的树结构的高度决定。
可选的,上述处理单元402中第二流程包括操作步骤f至k,具体包括:
f.根据第一流程的类比结果,在查找表中读取类比的分值;
g.将上一步读取的类比的分值进行累加,得到该待扫描区域的分值;
h.将该待扫描区域中的分值和预设的阀值进行比较;
i.如果步骤h的比较结果为负,则表明所述待扫描区域没有人脸,则扫描下一个所述待扫描区域;
j.如果步骤h的比较结果为正,则跳回重复步骤a;
k.重复的次数完成后,如果最后的比较为正,则输出人脸信息,其中,人脸信息包括坐标、大小和得分值。
上述处理单元402中配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程是指在第一线程进行处理第一流程时,同时第二线程处理上一次的第二流程。例如:输入第一分区的待扫描区域图片之后,首先第一线程执行第一流程的操作步骤,第一流程结束之后直接将类比结果输出给第二线程的第二流程,第一线程直接转去执行下一个待扫描分区的第一流程,而不是等待第二流程全部执行结束。这样,对于有人脸的图像区域,不需要等所有的分类器完成比较之后,才能得到最后的得分值。第一线程和第二线程是两个独立的线程,可以并行进行处理第一流程和第二流程,能够提高时效。一般情况下,如果第一流程总体的执行耗时约为整体时间的60%,第二流程总体的执行耗时约为整体时间的40%,通过设立两个双线程,控制第一线程和第二线程并行处理第一流程和第二流程,能够节省大于30%的耗时。
可选的,上述装置还可以包括:
参数固定单元403,用于配置并固定第一流程的头M个循环的分类器的参数,M为大于0的正整数。
可以理解的是,因为大多数扫描的区域会在少数的几次循环后就退出。所以,在头几个循环中,引擎不需要去读取分类器的参数就可以进行操作,从而避免了不必要的RAM读取,能够加快人脸检测算法的实现速度。
多引擎配置单元404,用于配置多引擎,多引擎的每一个单引擎内部配置双线程,控制第一线程、第二线程并行处理第一流程和所第二流程,多引擎能够并行地扫描多个待扫描的区域。
可选的,上述配置单元404中多引擎的每一个单引擎内部配置双线程,控制第一线程、第二线程并行处理第一流程和所第二流程,第一流程包括步骤a与e,第二流程包括步骤f至k,具体的解释和上述处理单元402中相同。
控制模块配置单元405,用于跟踪每一个单引擎的工作状态,并且记录每个待扫描的区域的状态,分配每一个所述单引擎的工作。
可选的,上述控制模块配置单元405中控制模块用于跟踪每一个引擎的工作状态,并且记录每个待扫描区域的状态,分配每个引擎的工作。因为对每个不同的区域扫描时,不同区域的退出时间是不同的,控制模块能够跟踪每个引擎的工作状态,并且记录每个需要扫描的区域的状态,协调分配每个引擎的工作。可以避免某些引擎工作负荷、某些引擎闲置的不合理的工作状态,做到每个引擎都能高效运作。
本发明所有实施例中的模块或子模块,可以通过通用集成电路,例如CPU,或通过ASIC(Application Specific Integrated Circuit,专用集成电路)来实现。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例用户终端中的单元可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,简称RAM)等。
以上对本发明实施例公开的一种人脸检测的方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种人脸检测的方法,其特征在于,包括:
输入图片,将所述图片分成待扫描的区域;
对每个所述待扫描的区域,配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程;
其中,所述第一流程包括操作步骤a至e,具体包括:
a.计算分类器在所述待扫描区域的读取地址;
b.根据所述分类器的读取地址,在所述待扫描区域中读取像素点的值;
c.对读取到的所述像素点的值进行类比;
d.根据上一步的类比结果,选择下一个分类器;
e.重复步骤a,重复次数由分类器的树结构的高度决定;
其中,所述第二流程包括操作步骤f至k,具体包括:
f.根据所述第一流程的所述类比结果,在查找表中读取类比的分值;
g.将上一步读取的所述类比的分值进行累加,得到所述待扫描区域的分值;
h.将所述待扫描区域中的分值和预设的阀值进行比较;
i.如果步骤h的比较结果为负,表明所述待扫描区域没有人脸,则扫描下一个所述待扫描的区域;
j.如果所述步骤h的比较结果为正,确定本次循环结果检测是有人脸;
k.重复的次数完成后,如果最后的比较结果为正,则输出人脸信息,其中,所述人脸信息包括坐标、大小和得分值。
2.根据权利要求1所述的方法,其特征在于,所述控制第一线程、第二线程并行处理第一流程和第二流程,包括:在所述第一线程处理所述第一流程时,同时第二线程处理上一次的所述第二流程。
3.根据权利要求1所述的方法,其特征在于,所述输入图片包括:
将整个的所述图片进行压缩;
将压缩之后的所述图片全部缓存入现场可编程门阵列硬件FPGA的片上随机存取存储器RAM。
4.根据权利要求1所述的方法,其特征在于,所述方法在所述控制第一线程、第二线程并行处理第一流程和第二流程之前,还包括:配置并固定所述第一流程的头M个循环的所述分类器的参数,其中所述M为大于0的正整数。
5.根据权利要求1所述的方法,其特征在于,还包括:
配置多引擎,在所述多引擎的每一个单引擎内部配置双线程,控制所述第一线程、所述第二线程并行处理所述第一流程和所述第二流程,所述多引擎用于并行地扫描多个待扫描的区域;
配置控制模块,所述控制模块用于跟踪每一个所述单引擎的工作状态,并且记录每一个所述待扫描的区域的状态,分配所述每一个所述单引擎的工作。
6.一种人脸检测的装置,其特征在于,包括:
输入单元,用于输入图片,将所述图片分成待扫描的区域;
处理单元,对每个所述待扫描的区域,配置双线程,控制第一线程、第二线程并行处理第一流程和第二流程;
其中,所述第一流程包括操作步骤a至e,具体包括:
a计算分类器在所述待扫描区域的读取地址;
b根据分类器的读取地址,在所述待扫描区域中读取像素点的值;
c对读取到的所述像素点的值进行类比;
d根据上一步的类比结果,选择下一个分类器;
e.重复步骤a,重复次数由分类器的树结构的高度决定;
其中,所述第二流程包括操作步骤f至k,具体包括:
f.根据所述第一流程的所述类比结果,在查找表中读取类比的分值;
g.将上一步读取的所述类比的分值进行累加,得到所述待扫描区域的分值;
h.将所述待扫描区域中的分值和预设的阀值进行比较;
i.如果步骤h的比较结果为负,表明所述待扫描区域没有人脸,则扫描下一个所述待扫描的区域;
j.如果所述步骤h的比较结果为正,确定本次循环结果检测是有人脸;
k.重复的次数完成后,如果最后的比较结果为正,则输出人脸信息,其中,所述人脸信息包括坐标、大小和得分值。
7.根据权利要求6所述的装置,其特征在于,所述控制第一线程、第二线程并行处理第一流程和第二流程,包括:在所述第一线程进行处理所述第一流程时,同时第二线程处理上一次的所述第二流程。
8.根据权利要求6所述的装置,其特征在于,所述输入图片包括:
将整个的所述图片进行压缩;
将压缩之后的所述图片全部缓存入现场可编程门阵列硬件FPGA的片上随机存取存储器RAM。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
参数固定单元,用于配置并固定所述第一流程的头M个循环的所述分类器的参数,其中所述M为大于0的正整数。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
多引擎配置单元,用于配置多引擎,所述多引擎的每一个单引擎内部配置双线程,控制所述第一线程、所述第二线程并行处理所述第一流程和所第二流程,所述多引擎用于并行地扫描多个待扫描的区域;
控制模块配置单元,用于跟踪所述每一个所述单引擎的工作状态,并且记录每个所述待扫描的区域的状态,分配所述每一个所述单引擎的工作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610884062.2A CN106529408B (zh) | 2016-10-10 | 2016-10-10 | 一种人脸检测的方法及装置 |
PCT/CN2017/090296 WO2018068533A1 (zh) | 2016-10-10 | 2017-06-27 | 一种人脸检测的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610884062.2A CN106529408B (zh) | 2016-10-10 | 2016-10-10 | 一种人脸检测的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106529408A CN106529408A (zh) | 2017-03-22 |
CN106529408B true CN106529408B (zh) | 2018-04-13 |
Family
ID=58331513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610884062.2A Active CN106529408B (zh) | 2016-10-10 | 2016-10-10 | 一种人脸检测的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106529408B (zh) |
WO (1) | WO2018068533A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106529408B (zh) * | 2016-10-10 | 2018-04-13 | 深圳云天励飞技术有限公司 | 一种人脸检测的方法及装置 |
CN107688785A (zh) * | 2017-08-28 | 2018-02-13 | 西安电子科技大学 | 基于arm平台的双线程并行实时人脸检测的开发方法 |
CN107622191B (zh) * | 2017-09-08 | 2020-03-10 | Oppo广东移动通信有限公司 | 解锁控制方法及相关产品 |
CN108021895A (zh) * | 2017-12-07 | 2018-05-11 | 深圳云天励飞技术有限公司 | 人数统计方法、设备、可读存储介质及电子设备 |
CN108052891A (zh) * | 2017-12-08 | 2018-05-18 | 触景无限科技(北京)有限公司 | 人脸轮廓并行计算方法与装置 |
CN109636397A (zh) * | 2018-11-13 | 2019-04-16 | 平安科技(深圳)有限公司 | 公共交通出行控制方法、装置、计算机设备及存储介质 |
CN109800705A (zh) * | 2019-01-17 | 2019-05-24 | 深圳英飞拓科技股份有限公司 | 加速人脸检测速率的方法及装置 |
CN112153343B (zh) * | 2020-09-25 | 2022-09-02 | 北京百度网讯科技有限公司 | 电梯安全监控方法、装置、监控摄像头和存储介质 |
CN112949614B (zh) * | 2021-04-29 | 2021-09-10 | 成都市威虎科技有限公司 | 一种自动分配候选区域的人脸检测方法及装置和电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038686B (zh) * | 2007-01-10 | 2010-05-19 | 北京航空航天大学 | 一种基于信息融合的机读旅行证件识别方法 |
CN101369315A (zh) * | 2007-08-17 | 2009-02-18 | 上海银晨智能识别科技有限公司 | 人脸检测方法 |
CN102495725A (zh) * | 2011-11-15 | 2012-06-13 | 复旦大学 | 一种基于多核体系结构的图像/视频特征提取并行算法 |
CN103745240A (zh) * | 2013-12-20 | 2014-04-23 | 许雪梅 | 一种基于Haar分类器和ORB特征的人脸检索方法及系统 |
US20150227780A1 (en) * | 2014-02-13 | 2015-08-13 | FacialNetwork, Inc. | Method and apparatus for determining identity and programing based on image features |
CN104408720A (zh) * | 2014-11-25 | 2015-03-11 | 深圳市哈工大交通电子技术有限公司 | 图像处理方法及图像处理装置 |
GB2533284B (en) * | 2014-12-11 | 2017-04-12 | Imagination Tech Ltd | Performing object detection |
CN106529408B (zh) * | 2016-10-10 | 2018-04-13 | 深圳云天励飞技术有限公司 | 一种人脸检测的方法及装置 |
-
2016
- 2016-10-10 CN CN201610884062.2A patent/CN106529408B/zh active Active
-
2017
- 2017-06-27 WO PCT/CN2017/090296 patent/WO2018068533A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2018068533A1 (zh) | 2018-04-19 |
CN106529408A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106529408B (zh) | 一种人脸检测的方法及装置 | |
US10085056B2 (en) | Method and system for improving application sharing by dynamic partitioning | |
US10803638B2 (en) | Efficient display of data points in a user interface | |
CN113641457B (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
US20220351081A1 (en) | Model training method and apparatus | |
US20120320073A1 (en) | Multiple Spatial Partitioning Algorithm Rendering Engine | |
WO2021104060A1 (zh) | 图像分割方法、装置及终端设备 | |
KR101609079B1 (ko) | 그래픽 프로세싱 유닛에서의 명령 선별 | |
US20210343072A1 (en) | Shader binding management in ray tracing | |
US20150235339A1 (en) | Hybrid engine for central processing unit and graphics processor | |
JP2013045219A (ja) | データ処理システム、データ処理方法、リソースマネージャ装置、アクセラレータ装置及びプログラム | |
CN106227751A (zh) | 一种存储文件的扫描方法和扫描设备 | |
US9697621B2 (en) | Unwrapping 3D meshes into low-distortion texture maps | |
US9672063B2 (en) | Scheduling, interpreting and rasterising tasks in a multi-threaded raster image processor | |
CN105700821A (zh) | 半导体装置及其压缩/解压缩方法 | |
WO2021258512A1 (zh) | 数据的聚合处理装置、方法和存储介质 | |
CN109697733A (zh) | 点云空间寻点方法、装置、计算机设备和存储介质 | |
US20160171750A1 (en) | Techniques for enhancing multiple view performance in a three dimensional pipeline | |
CN113838134B (zh) | 图像关键点检测方法、装置、终端和存储介质 | |
CN110012003A (zh) | 一种云应用抓屏方法和装置 | |
US20200133930A1 (en) | Information processing method, information processing system, and non-transitory computer readable storage medium | |
CN109445712A (zh) | 一种指令处理方法、系统、设备及计算机可读存储介质 | |
US20150030250A1 (en) | System, method, and medium for image object and contour feature extraction | |
CN110263110A (zh) | 基于抽稀算法的地理空间数据加载方法、设备及存储介质 | |
CN114489866B (zh) | 数据管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |