CN113239218B - 在具有npu的设备上并发执行人脸搜索的方法 - Google Patents
在具有npu的设备上并发执行人脸搜索的方法 Download PDFInfo
- Publication number
- CN113239218B CN113239218B CN202110525534.6A CN202110525534A CN113239218B CN 113239218 B CN113239218 B CN 113239218B CN 202110525534 A CN202110525534 A CN 202110525534A CN 113239218 B CN113239218 B CN 113239218B
- Authority
- CN
- China
- Prior art keywords
- face
- matrix
- npu
- preset
- deflection
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/168—Feature extraction; Face representation
-
- 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)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
- Studio Devices (AREA)
Abstract
本发明提供一种在具有NPU的设备上并发执行人脸搜索的方法,在边缘设备中,可支持多路摄像机的视频流同时输入,每个边缘设备对应与设定的多个摄像机配套部署并进行图像处理。对于视频流输入,进行帧图像提取后,分别实现人脸检测和人脸关键点提取,再根据人脸关键点进行侧脸偏转角度评估,满足要求的人脸进行特征值提取后,送入队列并构造矩阵后,在边缘设备的NPU中进行运算,输出人脸搜索结果。本发明的人脸搜索方法,在边缘设备中利用CPU与NPU的协同,实现高效、快速、准确的人脸搜索,其在并发(Batch)处理时,相对于传统在CPU上进行循环运算处理速度,本发明运算速度可达到极大的提升,运算速度提升接近20倍。
Description
技术领域
本发明涉及图像处理技术领域,尤其是人脸搜索,具体而言涉及一种针对较大人脸底库的情况下,在具有NPU的设备上并发执行人脸搜索的方法。
背景技术
人脸搜索的目的是根据输入的人脸照片(即一个对象)从海量的人脸底库中找到适配的结果,即与照片中的人脸对应的人是同一个人的照片。在现行的搜索方法中,一般通过暴力计算搜索对象与底库中的所有对象的欧氏距离或者余弦距离计算,对于一般场景可以使用欧式距离,即将搜索对象的人脸特征值(浮点数组)与底库中的所有人脸特征值进行欧式距离计算,将所有计算后的欧氏距离排序,选取距离最短所对应的人脸特征值及人脸信息对应作为搜索结果输出。当人脸底库中的数据较多,人流量较大时,对于这样的高并发、低延时的应用场景中,边缘设备往往需要耗费比较多的计算时间和计算资源在特征值的比对上。
而边缘设备中的CPU的浮点数运算能力偏弱,单纯使用CPU循环计算特征值与人脸底库中每一人脸特征值的欧式距离耗时很长,以常用的 2核A53+2核A73 的CPU实测,特征向量维度为512维,底库大小达到2万的规模时,做一次人脸检索大概需要70ms左右,而在例如医院、学校、大的社区等人流量较大且底库较多的应用场景下,人脸底库的数据容量(即存储的人脸信息)会达到几万以上,因此,传统的CPU计算方式耗时长,计算缓慢,已经不能满足需求。
在运算过程中,由于人脸底库通常是在尽可能处于正脸的拍摄角度下进行预采集处理的,而在实际的人脸搜索任务中,现场视频采集的环境以及人流影响,所采集到的人脸图像并非都是正脸,而且在大部分情况下存在侧脸的情况,影响搜索识别的准确性。
发明内容
本发明的目的在于针对原先针对人脸底库中需要根据数据容量进行循环多次计算欧氏距离和比对导致的运算量大、耗时长的问题,提出一种在具有NPU的设备上并发执行人脸搜索的方法,主要的人脸检测、人脸特征提取以及矩阵运算在NPU中进行,通过NPU中的矩阵计算缩短执行人脸搜索的运算时间,释放CPU运算资源,提升运算速度和效率。
在另一些实施例中,在运算速度得到大幅提升的前提下,进一步通过侧脸偏转评估,舍弃侧脸偏向严重的图片,在应用层提高搜索的精度,并且不影响搜索效率,提升用户体验。
为达成上述目的,本发明的第一方面提出一种在具有NPU的设备上并发执行人脸搜索的方法,所述设备尤其是边缘设备,还设置有CPU处理单元,所述方法被设置成在所述设备的NPU与CPU中执行,其执行过程具体包括以下步骤:
S101:按照预设周期对输入的视频流进行图像提取;
S102:对提取的图像进行人脸检测,定位出人脸位置并裁剪,得到P个人脸图像;
S103:对P个人脸图像进行人脸关键点提取,得到每个人脸图像的人脸关键点;
S104:根据人脸图像提取出的人脸关键点与标准正脸的人脸关键点比对,确定侧脸偏转评分,并判断侧脸偏转评分是否满足预设标准,如果满足,则将满足要求的K个人脸图像提取人脸特征值,加入到搜索处理队列中,舍弃不满足的(P-K)个人脸图像;
S105:判断在一个预设的发送时间周期T范围内,所述队列中的人脸特征值数目是否达到预设阈值Q,Q为预设的并发量,且取值为大于2的正整数;
S106:响应于达到预设阈值Q,将队列中的所有人脸特征值构造成Q*M的输入特征矩阵A;否则,继续接收人脸特征值,直到预设时间节点T达到,补齐特征值并构造Q*M的输入特征矩阵A;其中M表示人脸特征值的维度;
S107:将人脸底库中包含的N个人脸特征数据中的人脸特征值拼接,构造成N*M的底库矩阵B,并转置处理而获得转置矩阵B’;
S108:将转置矩阵B’与输入特征矩阵A相乘,通过矩阵点乘运算得到Q*N的矩阵C;
S109:对所述矩阵C的每一行统计最小值及所在位置;以及
S110:根据每一行统计最小值的所在位置,在人脸底库中找到对应位置的人脸标识,输出搜索结果;
其中,所述步骤S104-S105在所述CPU中执行,所述步骤S101-S103以及步骤S106-S110在所述NPU中执行。
优选地,所述人脸底库中存储的每个人脸特征数据包含人脸标识token以及人脸特征值,所述人脸标识token作为一个人脸信息的唯一标识,所述人脸特征值采用浮点数向量形式存储,维度为M。
优选地,所述人脸特征值的维度M,由人脸特征提取模型决定。
优选地,所述根据人脸图像提取出的人脸关键点与标准正脸的人脸关键点比对,确定侧脸偏转评分,包括:
获取一标准正脸的J人脸关键点;
在标准正脸的人脸关键点中,选取其中一个人脸关键点为起点,以剩余的人脸关键点作为终点,将起点与所有终点连线,获得任意相邻连线之间的夹角作为参考夹角;
在P个人脸图像中,从第一个开始人脸图像开始,选取与标准正脸对应的一个人脸关键点为起点,以剩余的人脸关键点为终点,将起点与所有终点连线,获得任意相邻连线之间的夹角作为比对夹角;
将一个人脸图像的比对夹角与参考夹角分别比对,获得每个比对夹角的偏转角度;以及
将所有偏转角度进行求和,并除以(J-1)得到偏转角度均值,作为侧脸偏转评分优选地,所述判断侧脸偏转评分是否满足预设标准,包括:
将一个人脸图像对应的侧脸偏转评分与预设的评分值进行比对,如果大于预设的评分值,表面偏转角度过大,则判定不满足,如果小于等于预设的评分值,则判定满足。
优选地,所述将转置矩阵B’与输入特征矩阵A相乘,通过矩阵点乘运算得到Q*N的矩阵C的处理,被设置成通过NPU中预先写入的单层神经网络进行运算,其中:
所述单层神经网络具有一个输入层、一个隐藏层和一个输出层,所述输入层和输出层均具有与所述预设的并发量Q数量相同的单元,所述设备中的单层神经网络是预设的并发量Q而确定,并且不可更换。
优选地,所述设备的NPU为海思Hi35系列芯片中的具有神经网络处理引擎 NNIE(Neural Network Inference Engine)的嵌入式神经网络处理器。
优选地,在搜索结果输出时,根据每一行统计最小值的所在位置,在人脸底库中找到对应位置的人脸标识token,则获得所有待搜索人脸特征值的人脸标识token及比对分数的结果输出模块,所述比对分数即为对应每一行的最小值。
由本发明的各个方面的实施,本发明与现有技术相比,其显著的有益效果在于:
1.针对人脸底库中需要根据数据容量进行循环多次计算欧氏距离和比对导致运算耗时长的问题,本发明将传统的在CPU中执行的循环计算转换成在NPU中执行大矩阵内的点乘计算,减少运算时间,在多并发处理时,较传统的运算方法提升接近20倍,极大地提升了人脸搜索速度,使得人脸搜索不再成为应用程序的性能瓶颈,从另一方面提高了底库容量;
2. 利用本发明的人脸检索方法,集成到边缘设备中,可以接入多路相机的视频输入,可以实现多路高发的人脸检索,由于边缘设备通常采用轻量级的CPU,不具备桌面级复杂架构和性能,例如为了兼顾功耗及性能,边缘设备的CPU一般采用2大核A73+2小核A53或者四核A55的架构,CPU的浮点数运算能力偏弱,单纯使用CPU循环计算特征值与人脸底库中每一人脸特征值的欧式距离耗时很长,而通过本发明的矩阵运算以及在NPU中的执行,运算效率极大提升,并且释放出CPU的运算资源和运算能力,使得边缘设备的应用可以更加拓展,突破传统高并发量带来运算负荷过高而影响其他应用的执行,或者导致系统崩溃的问题;
3. 在NPU中执行图像处理和矩阵运算实现的人脸所述,在运算效率和速度极大提升的前提下,留出更多的时间,为提升搜索精度提供了可能。在本发明优选的实施例中,进一步根据人脸特征值进行侧脸偏转的判断,并舍弃掉偏转较大的人脸(通常是影响识别精度的重要因素),保留出正脸,以及偏转角度较小的人脸进行搜索,以提升识别精确性。
应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。另外,所要求保护的主题的所有组合都被视为本公开的发明主题的一部分。
结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。
附图说明
图1是本发明示例性实施例的在具有NPU的设备上并发执行人脸搜索的方法的流程示意图。
图2是本发明示例性实施例的边缘设备的原理框图。
具体实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。本公开的实施例不必定意在包括本发明的所有方面。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。
结合图1所示的示例性流程示意图,本发明提出的在具有NPU的设备上并发执行人脸搜索的方法,在配置有NPU和CPU的数据处理设备中实现,这些数据处理设备例如边缘设备,部署在应用场景(例如医院、学校、银行、大型零售店铺等人流量较大场景),与一个或者多个摄像机进行配套部署,实现人脸搜索。
在另外的实施例中,这些边缘设备还可以被配置成完成其他的视频处理、识别与应用。
在可选的实施例中,结合图2所示示例的边缘设备100具有通常所见的计算机系统的框架与系统设计,例如具有计算单元101(CPU)、存储单元102、通信模块103、I/O接口模块104、用户交互界面105以及神经网络处理器NPU 106。这些部件通过例如数据总线110相互连接,以集成或者独立的方式设置在板卡或者集成电路内。
在一些实施例中,边缘设备还集成了至少一种传感器和/或外部装置,例如定位装置。在这样的边缘设备中,通常以小型化、轻量化、低功耗为设计,使其通常能够被认为是对云端或因特网的依赖更少,或者可接入核心网络提供入口点的设备,在这样的边缘设备中可进行快速高效的运算。
其中在CPU的设计上,尤其是考虑采用低功耗轻量化的设计,例如不使用桌面级的处理单元(例如多核多线程架构的Intel 酷睿系列或者AMD Ryzen系列处理单元),而是采用嵌入式系统设计,一般为arm架构的linux操作系统,为了兼顾功耗及性能,CPU可以采用2大核A73+2小核A53的设计或者四核A55的设计。
在NPU(Neural Pocessing Unit,神经网络处理器)的设计上,在本发明的实施例中,以所使用的海思Hi35系列芯片中的具有神经网络处理引擎 NNIE (Neural NetworkInference Engine)的嵌入式神经网络处理器为例。
计算单元101(CPU)可以采用基于X86或者ARM等架构的处理器,以实现运算与控制功能。
存储单元102,用于存储可被处理器101执行的程序,以及存储可被调用和处理的数据。这些程序例如包括人脸检测程序、人脸关键点提取程序、人脸特征提取程序等,这些数据可包含例如视频流数据、帧图像数据、人脸图像数据、人脸特征数据、人脸底库等。
通信模块103,可选有线或者无线通信模块,例如基于蜂窝网络的3G、4G、5G或者Wifi模块等无线网络通信模块,将边缘设备接入到网络中,实现数据交互。
I/O接口模块104,用于提供外部设备连接到边缘设备上的端口,实现数据与指令的传输,这些外外部设备例如外置存储器、传感器等。
用户交互界面105,包括接收用户操作的输入装置,诸如触控面板、鼠标、键盘、虚拟按键等。
神经网络处理器NPU 106,如前述的,可选用集成神经网络处理引擎的嵌入式处理器,以高效、高速地处理视频、图像类的海量多媒体数据,例如实现视频解码、特征提取、矩阵运算等,前述的矩阵运算尤其可实现矩阵乘加、卷积、点乘等功能。
以人脸搜索业务处理为例,在边缘设备中,可支持多路摄像机的视频流同时输入,例如在医院、学校、银行、大型零售店铺等人流量较大场景应用下,可根据现场物理地域范围以及监控摄像机的布设,配置一个或者多个边缘设备。每个边缘设备对应与设定的多个摄像机配套部署并进行图像处理。通过边缘设备对摄像机采集的视频流进行图像处理,搜索人脸。
结合图1所示的示例,本发明示例性实施例的并发执行人脸搜索的处理流程包括:
S101:按照预设周期对输入的视频流进行图像提取;
S102:对提取的图像进行人脸检测,定位出人脸位置并裁剪,得到P个人脸图像;
S103:对P个人脸图像进行人脸关键点提取,得到每个人脸图像的人脸关键点;
S104:根据人脸图像提取出的人脸关键点与标准正脸的人脸关键点比对,确定侧脸偏转评分,并判断侧脸偏转评分是否满足预设标准,如果满足,则将满足要求的K个人脸图像提取人脸特征值,加入到搜索处理队列中,舍弃不满足的(P-K)个人脸图像;
S105:判断在一个预设的发送时间周期T范围内,所述队列中的人脸特征值数目是否达到预设阈值Q,Q为预设的并发量,且取值为大于2的正整数;
S106:响应于达到预设阈值Q,将队列中的所有人脸特征值构造成Q*M的输入特征矩阵A;否则,继续接收人脸特征值,直到预设时间节点T达到,补齐特征值并构造Q*M的输入特征矩阵A;其中M表示人脸特征值的维度;
S107:将人脸底库中包含的N个人脸特征数据中的人脸特征值拼接,构造成N*M的底库矩阵B,并转置处理而获得转置矩阵B’;
S108:将转置矩阵B’与输入特征矩阵A相乘,通过矩阵点乘运算得到Q*N的矩阵C;
S109:对所述矩阵C的每一行统计最小值及所在位置;以及
S110:根据每一行统计最小值的所在位置,在人脸底库中找到对应位置的人脸标识,输出搜索结果;
其中,所述步骤S104-S105在所述设备的CPU中执行,所述步骤S101-S103以及步骤S106-S110在所述设备的NPU中执行。
由此,在边缘设备中,通过CPU与NPU的协同,实现高效、快速、准确的人脸搜索,其在并发(Batch)处理时,相对于传统在CPU上进行循环运算处理速度,本发明的方案中,转换成矩阵内的点乘并转到NPU中执行,运算速度提升接近20倍。
本发明的实施例中,人脸底库存储在边缘设备的存储单元中,可通过外部传输导入,或者预先登记添加的方式,将多个人脸信息和特征信息(对应不同的人的身份信息)进行存储。
可选的实施例中,所述人脸底库中存储的每个人脸特征数据包含人脸标识token以及人脸特征值,所述人脸标识token作为一个人脸信息的唯一标识,所述人脸特征值采用浮点数向量形式存储,维度为M。
应当理解,所述人脸特征值的维度M,由人脸特征值提取模型决定。
下面结合附图所示,更加具体地阐述上述处理过程的实施例。
S101、按照预设周期对输入的视频流进行图像提取。
对于与一个边缘设备配套部署的一个或者多个摄像机,将采集的视频流传输至边缘设备之后,边缘设备对其进行视频处理,例如对于25帧的视频流来说,按照40ms的预先设计的时间周期,进行一帧图像的提取。
S102、对提取的图像进行人脸检测,定位出人脸位置并裁剪,得到P个人脸图像。
对于提取出的图像,可采用现有的人脸检测算法进行人脸检测,通过人脸检测确定出人脸的位置,然后根据人脸检测框进行裁剪,得到P个人脸图像。
可选地,人脸检测算法可采用预先训练好的基于CNN网络的人脸检测算法,或者利用开源OpenCV、Dlib工具对人脸进行检测。
S103:对P个人脸图像进行人脸关键点提取,得到每个人脸图像的人脸关键点。
在本步骤中,采用人脸关键点提取模型(可利用开源模型或者预先训练的关键点提取模型),对每个人脸图像进行关键点提取,获得人脸关键点数据,包括五官关键点和脸型关键点,即眉毛、眼睛、鼻子、嘴巴、脸部轮廓的关键点。
例如,本发明的实施例进行人脸关键点提取时,可采用现有的关键点提取算法实现,例如基于Dlib算法,获得的人脸关键点(也成为特征点)的数量为68个。
当然,在另外的实施例中,还可以采用基 ASM(Active Shape Model) 和 AAM(Active Appearnce Model)的算法、基于级联形状回归的方法胡总和基于深度学习的方法实现,在此不再一一列举。
应当理解,前述步骤S101-S103的处理,在NPU中执行。
S104:根据人脸图像提取出的人脸关键点与标准正脸的人脸关键点比对,确定侧脸偏转评分,并判断侧脸偏转评分是否满足预设标准,如果满足,则将满足要求的K个人脸图像提取人脸特征值,加入到搜索处理队列中,舍弃不满足的(P-K)个人脸图像。
在本步骤中,在运算效率和速度极大提升的前提下,可留出更多的时间来提升精度提供了可能。我们在本实施例中,进一步根据人脸关键点进行侧脸偏转的判断,并舍弃掉偏转较大的人脸(通常是影响识别精度的重要因素),保留出正脸,以及偏转角度较小的人脸进行搜索,以提升识别精确性。
然后,在保留的人脸图像的基础上提取人脸特征值,如此,不满足条件的人脸将不需要进行提取人脸特征值的处理,节省开销。
在具体的处理过程中,根据人脸图像提取出的人脸关键点与标准正脸的人脸关键点比对,确定侧脸偏转评分,包括:
获取一标准正脸的J人脸关键点;
在标准正脸的人脸关键点中,选取其中一个人脸关键点为起点,以剩余的人脸关键点作为终点,将起点与所有终点连线,获得任意相邻连线之间的夹角作为参考夹角;
在P个人脸图像中,从第一个开始人脸图像开始,选取与标准正脸对应的一个人脸关键点为起点,以剩余的人脸关键点为终点,将起点与所有终点连线,获得任意相邻连线之间的夹角作为比对夹角;
将一个人脸图像的比对夹角与参考夹角分别比对,获得每个比对夹角的偏转角度;以及
将所有偏转角度进行求和,并除以(J-1)得到偏转角度均值,作为侧脸偏转评分。
优选地,所述判断侧脸偏转评分是否满足预设标准,包括:
将一个人脸图像对应的侧脸偏转评分与预设的评分值进行比对,如果大于预设的评分值,表面偏转角度过大,则判定不满足,如果小于等于预设的评分值,则判定满足。
在本步骤处理中,对于满足预设标准的人脸图像,还包括人脸特征值提出的处理,可采用现有的人脸特征值提取模型实现。例如,基于Openface、Face_recognition、Insightface的算法进行人脸特征值提取,对应地,提取的人脸特征值的维度与所采用的提取算法(即模型)相关,上述三种特征值提取算法对应的人脸特征值的维度分别是128、128、512。
S105、判断在一个预设的发送时间周期T范围内,所述队列中的人脸特征值数目是否达到预设阈值Q,Q为预设的并发量,且取值为大于2的正整数。
在本步骤中,判断待发送搜索的队列中的数据是否达到预设的并发量。
应当理解,前述步骤S104-S105的处理,在边缘设备的CPU中执行。
S106、响应于达到预设阈值Q,将队列中的所有人脸特征值构造成Q*M的输入特征矩阵A;否则,继续接收人脸特征值,直到预设时间节点T达到,补齐特征值并构造Q*M的输入特征矩阵A;其中M表示人脸特征值的维度。
在本步骤处理中,例如在一个时间节点T周期内,在预设时间节点T达到时,搜索队列中包含了W个人脸特征值,W小于Q,则将空缺的(Q-W)个特征值全部补充为0,构造输入特折矩阵。
S107、将人脸底库中包含的N个人脸特征数据中的人脸特征值拼接,构造成N*M的底库矩阵B,并转置处理而获得转置矩阵B’。
S108、将转置矩阵B’与输入特征矩阵A相乘,通过矩阵点乘运算得到Q*N的矩阵C。
S109、对所述矩阵C的每一行统计最小值及所在位置。
S110、根据每一行统计最小值的所在位置,在人脸底库中找到对应位置的人脸标识,输出搜索结果。
在步骤S110中,对于搜索结果输出,根据每一行统计最小值的所在位置,在人脸底库中找到对应位置的人脸标识token,则获得所有待搜索人脸特征值的人脸标识token及比对分数的结果输出模块,所述比对分数即为对应每一行的最小值
应当理解,前述步骤S106-S110的处理,在边缘设备的NPU中执行。
其中,将转置矩阵B’与输入特征矩阵A相乘,通过矩阵点乘运算得到Q*N的矩阵C的处理,被设置成通过NPU中预先写入的单层神经网络进行运算,其中:
所述单层神经网络具有一个输入层、一个隐藏层和一个输出层,所述输入层和输出层均具有与所述预设的并发量Q数量相同的单元,所述设备中的单层神经网络是预设的并发量Q而确定,并且不可更换。
下面,我们以人脸底库数量为2W,每个人脸特征值的特征维度为768维的人脸底库数据进行测试,边缘设备采用海思Hi35系列芯片,配置双核CPU(A73+双核A53),即双核ARMCortex A73@1.8GHz+双核ARM Cortex A53@1.2GHz+单核ARM Cortex A53@1.2GHz,还配置有双核NPU,即双核NNIE@840MHz神经网络处理引擎的嵌入式神经网络处理单元。
各个测试方法以计算100次测试结果的均值为计。测试结果如下表所示。
从测试结果可见,采用传统的CPU循环运算的方式,以单个人脸搜索请求为例,即不做并发处理,平均耗时达到71ms,而采用本发明的矩阵运算并在NPU中的运算处理,平均耗时为9.2ms,得到显著的提升。
在并发处理数为10的测试结果中,本发明的人脸搜索的运算处理平均耗时进一步降低,相对于采用传统的CPU循环运算的方式的平均耗时,本发明的运算的效率提升接近20倍。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。
Claims (7)
1.一种在具有NPU的设备上并发执行人脸搜索的方法,其特征在于,所述设备还设置有CPU处理单元,所述方法被设置成在所述设备的NPU与CPU中执行,执行过程包括以下步骤:
S101:按照预设周期对输入的视频流进行图像提取;
S102:对提取的图像进行人脸检测,定位出人脸位置并裁剪,得到P个人脸图像;
S103:对P个人脸图像进行人脸关键点提取,得到每个人脸图像的人脸关键点;
S104:根据人脸图像提取出的人脸关键点与标准正脸的人脸关键点比对,确定侧脸偏转评分,并判断侧脸偏转评分是否满足预设标准,如果满足,则将满足要求的K个人脸图像提取人脸特征值,加入到搜索处理队列中,舍弃不满足的(P-K)个人脸图像;
S105:判断在一个预设的发送时间周期T范围内,所述队列中的人脸特征值数目是否达到预设阈值Q,Q为预设的并发量,且取值为大于2的正整数;
S106:响应于达到预设阈值Q,将队列中的所有人脸特征值构造成Q*M的输入特征矩阵A;否则,继续接收人脸特征值,直到预设时间节点T达到,补齐特征值并构造Q*M的输入特征矩阵A;其中M表示人脸特征值的维度;
S107:将人脸底库中包含的N个人脸特征数据中的人脸特征值拼接,构造成N*M的底库矩阵B,并转置处理而获得转置矩阵B’;
S108:将转置矩阵B’与输入特征矩阵A相乘,通过矩阵点乘运算得到Q*N的矩阵C;
S109:对所述矩阵C的每一行统计最小值及所在位置;以及
S110:根据每一行统计最小值的所在位置,在人脸底库中找到对应位置的人脸标识,输出搜索结果;
其中,所述步骤S104-S105在所述CPU中执行,所述步骤S101-S103以及步骤S106-S110在所述NPU中执行。
2.根据权利要求1所述的在具有NPU的设备上并发执行人脸搜索的方法,其特征在于,所述人脸底库中存储的每个人脸特征数据包含人脸标识token以及人脸特征值,所述人脸标识token作为一个人脸信息的唯一标识,所述人脸特征值采用浮点数向量形式存储,维度为M。
3.根据权利要求1所述的在具有NPU的设备上并发执行人脸搜索的方法,其特征在于,所述人脸特征值的维度M,由人脸特征提取模型决定。
4.根据权利要求1所述的在具有NPU的设备上并发执行人脸搜索的方法,其特征在于,所述根据人脸图像提取出的人脸关键点与标准正脸的人脸关键点比对,确定侧脸偏转评分,包括:
获取一标准正脸的J人脸关键点;
在标准正脸的人脸关键点中,选取其中一个人脸关键点为起点,以剩余的人脸关键点作为终点,将起点与所有终点连线,获得任意相邻连线之间的夹角作为参考夹角;
在P个人脸图像中,从第一个开始人脸图像开始,选取与标准正脸对应的一个人脸关键点为起点,以剩余的人脸关键点为终点,将起点与所有终点连线,获得任意相邻连线之间的夹角作为比对夹角;
将一个人脸图像的比对夹角与参考夹角分别比对,获得每个比对夹角的偏转角度;以及
将所有偏转角度进行求和,并除以(J-1)得到偏转角度均值,作为侧脸偏转评分。
5.根据权利要求4所述的在具有NPU的设备上并发执行人脸搜索的方法,其特征在于,所述判断侧脸偏转评分是否满足预设标准,包括:
将一个人脸图像对应的侧脸偏转评分与预设的评分值进行比对,如果大于预设的评分值,表面偏转角度过大,则判定不满足,如果小于等于预设的评分值,则判定满足。
6.根据权利要求1-5中任意一项所述的在具有NPU的设备上并发执行人脸搜索的方法,其特征在于,所述将转置矩阵B’与输入特征矩阵A相乘,通过矩阵点乘运算得到Q*N的矩阵C的处理,被设置成通过NPU中预先写入的单层神经网络进行运算,其中:
所述单层神经网络具有一个输入层、一个隐藏层和一个输出层,所述输入层和输出层均具有与所述预设的并发量Q数量相同的单元,所述设备中的单层神经网络是预设的并发量Q而确定,并且不可更换。
7.根据权利要求1所述的在具有NPU的设备上并发执行人脸搜索的方法,其特征在于,所述设备的NPU为海思Hi35系列芯片中的具有神经网络处理引擎 NNIE的嵌入式神经网络处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110525534.6A CN113239218B (zh) | 2021-05-14 | 2021-05-14 | 在具有npu的设备上并发执行人脸搜索的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110525534.6A CN113239218B (zh) | 2021-05-14 | 2021-05-14 | 在具有npu的设备上并发执行人脸搜索的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113239218A CN113239218A (zh) | 2021-08-10 |
CN113239218B true CN113239218B (zh) | 2022-08-23 |
Family
ID=77134208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110525534.6A Active CN113239218B (zh) | 2021-05-14 | 2021-05-14 | 在具有npu的设备上并发执行人脸搜索的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113239218B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703977B (zh) * | 2021-08-30 | 2024-04-05 | 广东宏乾科技股份有限公司 | 一种智能人脸和人体检测过滤装置及图片输出装置 |
CN116595233A (zh) * | 2023-06-02 | 2023-08-15 | 上海爱可生信息技术股份有限公司 | 基于npu的向量数据库检索处理加速方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214273A (zh) * | 2018-07-18 | 2019-01-15 | 平安科技(深圳)有限公司 | 人脸图像比对方法、装置、计算机设备及存储介质 |
CN110119673A (zh) * | 2019-03-27 | 2019-08-13 | 广州杰赛科技股份有限公司 | 无感人脸考勤方法、装置、设备及存储介质 |
WO2020147257A1 (zh) * | 2019-01-16 | 2020-07-23 | 平安科技(深圳)有限公司 | 一种人脸识别方法和装置 |
-
2021
- 2021-05-14 CN CN202110525534.6A patent/CN113239218B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214273A (zh) * | 2018-07-18 | 2019-01-15 | 平安科技(深圳)有限公司 | 人脸图像比对方法、装置、计算机设备及存储介质 |
WO2020147257A1 (zh) * | 2019-01-16 | 2020-07-23 | 平安科技(深圳)有限公司 | 一种人脸识别方法和装置 |
CN110119673A (zh) * | 2019-03-27 | 2019-08-13 | 广州杰赛科技股份有限公司 | 无感人脸考勤方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113239218A (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107944020B (zh) | 人脸图像查找方法及装置、计算机装置和存储介质 | |
CN110837579B (zh) | 视频分类方法、装置、计算机以及可读存储介质 | |
WO2021022521A1 (zh) | 数据处理的方法、训练神经网络模型的方法及设备 | |
CN108334644B (zh) | 图像识别方法和装置 | |
CN108012156B (zh) | 一种视频处理方法及控制平台 | |
CN113239218B (zh) | 在具有npu的设备上并发执行人脸搜索的方法 | |
WO2022037541A1 (zh) | 图像处理模型训练方法、装置、设备及存储介质 | |
Bilaniuk et al. | Fast LBP face detection on low-power SIMD architectures | |
CN109165307A (zh) | 一种特征检索方法、装置和存储介质 | |
CN107315984B (zh) | 一种行人检索的方法及装置 | |
US8868571B1 (en) | Systems and methods for selecting interest point descriptors for object recognition | |
CN111126249A (zh) | 一种大数据和贝叶斯相结合的行人重识别方法及装置 | |
CN108154130B (zh) | 一种目标图像的检测方法、装置及存储介质、机器人 | |
CN114064948A (zh) | 基于广义平均池化策略的哈希图像检索方法及装置 | |
CN113971224A (zh) | 图像检索系统、方法和相关设备 | |
CN111008589B (zh) | 人脸关键点检测方法、介质、装置和计算设备 | |
CN111651625A (zh) | 图像检索方法、装置、电子设备及存储介质 | |
CN113157962B (zh) | 图像检索方法、电子装置和存储介质 | |
CN117475160A (zh) | 目标对象跟随方法、系统以及相关装置 | |
KR20200080109A (ko) | 키 프레임 선택 방법 및 이를 수행하는 장치들 | |
Matsumura et al. | An FPGA-accelerated partial duplicate image retrieval engine for a document search system | |
CN112650869B (zh) | 图像检索重排序方法、装置、电子设备及存储介质 | |
Yan et al. | Fast approximate matching of binary codes with distinctive bits | |
Ding et al. | Hecto-scale frame rate face detection system for SVGA source on FPGA board | |
Lai et al. | Communication-aware face detection using noc architecture |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 210000 Longmian Avenue 568, High-tech Park, Jiangning District, Nanjing City, Jiangsu Province Patentee after: Xiaoshi Technology (Jiangsu) Co.,Ltd. Address before: 210000 Longmian Avenue 568, High-tech Park, Jiangning District, Nanjing City, Jiangsu Province Patentee before: NANJING ZHENSHI INTELLIGENT TECHNOLOGY Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |