掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及人脸识别技术领域,尤其涉及一种人脸识别方法及计算机可读存储介质。

背景技术

人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。现有技术中,对于一帧图像

现有技术中,在大型商超、工厂、学校、园区等场景下,通常会架有多路摄像机,而常见的人脸识别方案,各个摄像机之间的识别结果没有关联,是孤立的。在某一路摄像机下完成人脸识别后,当该人员再出现在其他摄像机下,其在上一路摄像机下识别得到的人脸ID信息失效,需重新进行识别,对于人员的行为分析、视频结构化检索、人员ReID等都是不利的。

发明内容

本发明实施例提供了一种人脸识别方法及计算机可读存储介质,以解决现有技术中不同摄像机之间的识别结果没有关联,不利于人员的行为分析等的问题。

第一方面,本发明实施例提供了一种人脸识别方法,包括:

获取当前时刻各个摄像机采集得到的初始图像,并对各个初始图像进行合成,得到当前帧图像;

对当前帧图像进行人脸检测,得到多个人脸目标;

确定各个人脸目标的跟踪ID,并采用目标跟踪算法对各个人脸目标进行跟踪;

针对每个人脸目标,根据预设的人脸特征库对该人脸目标进行识别;若识别成功,则将该人脸目标的识别结果及识别信息与该人脸目标的跟踪ID关联存储。

第二方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上第一方面或第一方面的任一种可能的实现方式人脸识别方法的步骤。

本发明实施例提供一种人脸识别方法及计算机可读存储介质。上述方法包括:获取当前时刻各个摄像机采集得到的初始图像,并对各个初始图像进行合成,得到当前帧图像;对当前帧图像进行人脸检测,得到多个人脸目标;确定各个人脸目标的跟踪ID,并采用目标跟踪算法对各个人脸目标进行跟踪;针对每个人脸目标,根据预设的人脸特征库对该人脸目标进行识别;若识别成功,则将该人脸目标的识别结果及识别信息与该人脸目标的跟踪ID关联存储。本发明实施例中将各个摄像机采集得到的图像进行合成,将各个摄像机中的信息关联起来,同时将人脸识别和人脸跟踪相结合,可将各个不同摄像机的识别结果关联并持续的记录下来,便于用户后期进行人员分析等。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种人脸识别方法的实现流程图;

图2是本发明实施例提供的同一坐标点在不同摄像机中位置关系示意图;

图3是本发明是实施例提供的位姿关系矩阵的原理示意图;

图4是本发明实施例提供的一种人脸识别装置的结构示意图;

图5是本发明实施例提供的识别终端的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图通过具体实施例来进行说明。

参见图1,其示出了本发明实施例提供的人脸识别方法的实现流程图,详述如下:

上述方法包括:

S101:获取当前时刻各个摄像机采集得到的初始图像,并对各个初始图像进行合成,得到当前帧图像;

目标场地通常设置有多个摄像机,本发明实施例中,将同一场景下,各个摄像机采集得到的初始图像合成为一幅当前帧图像进行处理。

具体的,本发明实施例中,由于各个摄像机采集得到的图像基于其摄像机本身的坐标,参考图2,同一个点在不同的摄像机采集得到的图像中的坐标不同(X点在三个图形中分别对应X

具体的,S101可以包括:

S1011:获取当前时刻各个摄像机采集得到的初始图像;

S1012:对各个初始图像进行特征点匹配,并基于各个摄像机的内参得到各个相机之间的位姿矩阵;

S1013:根据各个相机之间的位姿矩阵对各个初始图像进行合成,得到当前帧图像。

参考图2,对于同一场景下多个摄像机采集得到的初始图像,在实际布局时通常会有部分重叠,通过对重叠区域的处理,可以得到各个相机之间的相对位置(也即通过特征点匹配确定各个相机之间的位姿矩阵),从而得到拼接合成后的图像。

具体的,参考图3,本发明实施例可以基于solvePnP函数通过相机内参计算得到位姿矩阵,公式如下:

其中,p和q分别为两个摄像机中的像素点,K

基于各个相机之间的位姿矩阵,可将各个摄像机的坐标统一,从而可以将各个初始图像合成,得到一帧图像。

需要说明的,对于同一场景下合成的当前帧图像,去除了重叠区域,不存在重叠区域,该图像中的同一个人脸目标只存在一个。

S102:对当前帧图像进行人脸检测,得到多个人脸目标;

具体的,S102可以包括:

S1021:将当前帧图像输入人脸检测模型,将置信度大于预设置信度的人脸作为初始人脸目标;

S1022:对各个初始人脸目标进行筛选,得到多个人脸目标。

通过人脸检测模型可检测得到多个初始人脸目标,但受图像清晰度及角度等影响,部分初始人脸目标的质量较差,影响检测的精度。对于人脸检测模型检测得到的各个初始人脸目标,通常置信度比较低的人脸其清晰度或者角度等很大概率会不佳。基于此,本发明实施例中根据置信度滤除质量较差的人脸,可有效提高识别的精度。

S103:确定各个人脸目标的跟踪ID,并采用目标跟踪算法对各个人脸目标进行跟踪;

具体的,可采用多目标跟踪器对各个人脸目标进行跟踪。

S104:针对每个人脸目标,根据预设的人脸特征库对该人脸目标进行识别;若识别成功,则将该人脸目标的识别结果及识别信息与该人脸目标的跟踪ID关联存储。

本发明实施例中采用多目标跟踪算法对各个人脸目标进行跟踪,并结合人脸识别准确的识别各个人脸目标,将识别到的识别结果及识别信息与跟踪ID相关联,使得各帧图像识别到的识别结果及识别信息可以连续的被记录跟踪。

本发明实施例中,将各个摄像机采集得到的初始图像合成为一张图像,再对图像中的各个人脸目标进行跟踪及识别,并将识别结果及识别信息与跟踪ID关联。本发明实施例中采用多路并发的思想对各个人脸目标进行跟踪(针对多帧图像),同时对各个人脸目标进行识别,实现各个摄像机之间的资源共享,优化系统信息和计算资源的利用率,持续的记录和保持了人脸用户识别结果及识别信息,对于后续人员检索、人员分析及视频结构化等均具有重要的意义。

在一种可能的实施方式中,S1022可以包括:

1、针对每个初始人脸目标,确定该初始人脸目标的尺寸、该初始人脸目标的位置、该初始人脸目标关键点的对称性及该初始人脸目标人脸的偏转角度,并基于该初始人脸目标的尺寸、该初始人脸目标的位置、该初始人脸目标关键点的对称性及该初始人脸目标人脸的偏转角度,确定该初始人脸目标是否合格;

2、将合格的初始人脸目标作为人脸目标。

进一步的,除了置信度,人脸距离的远近、人脸角度偏转、是否有遮挡及较大幅度的表情等均会影响人脸的质量。本发明实施例中进一步该初始人脸目标的尺寸、该初始人脸目标的位置、该初始人脸目标关键点的对称性及该初始人脸目标人脸的偏转角度过滤质量较差的人脸。

具体的,基于该初始人脸目标的尺寸、该初始人脸目标的位置、该初始人脸目标关键点的对称性及该初始人脸目标人脸的偏转角度,确定该初始人脸目标是否合格可以包括:

(1)若该初始人脸目标的尺寸小于预设尺寸,则确定该初始人脸目标不合格;

人脸图像(初始人脸目标)的尺寸越小意味着图像中包含的人脸信息越少,通过对人脸图像尺寸的筛选,可以将过小的人脸滤除掉,提高后续检测精度。

具体的,预设尺寸可根据实际应用需求设定,在此不做限定。

(2)若该初始人脸目标的位置处于当前帧图像的边缘,则确定该初始人脸目标不合格;

出现在当前帧图像边缘的人脸往往意味着人脸信息出现了截断,通过对人脸位置的筛选,可以将不全的人脸滤除掉。

具体的,人脸位置可以为该初始人脸目标边缘各点的坐标。可获取当前帧图像的边缘的坐标,若人脸边缘各点的坐标中存在预设数量个坐标点与当前帧图像的边缘的坐标之间的差值小于预设差值,则说明该初始人脸目标靠近当前帧图像的边缘,该初始人脸目标可能截断,信息不全,可将其滤除掉。

(3)若该初始人脸目标的关键点不对称,则确定该初始人脸目标不合格;

人脸的关键点不对称,说明人脸偏转较大,即使对齐矫正也会有许多畸变,不利于后期的人脸识别,因此对于关键点不对称的人脸可以滤除掉。

具体的,始人脸目标的关键点可以选取两只眼睛及两个嘴角上的若干关键点确定。具体的,可确定眼睛的关键点x方向和y方向的偏移量,以及左右两侧嘴角x方向和y方向的偏移量,得出该人脸的位置和水平、垂直方向的偏差,偏差越大说明关键点不对称。

(4)若该初始人脸目标人脸的偏转角度大于预设偏转角度,则确定该初始人脸目标不合格。

人脸的偏转角度越大,说明人脸存在畸变,不利于后续人脸识别,可将其滤除掉。

上述四个判断,满足任意一个即可判定该初始人脸目标不合格。

进一步,可根据计算难度确定上述四个判断的执行顺序,例如,按照计算量从小到大的顺序进行判断,可有效减少计算量,提高计算效率。

在一种可能的实施方式中,确定该初始人脸目标的偏转角度,可以包括:

(1)在该初始人脸目标上选取5个关键点,得到5个关键点的坐标;

(2)根据5个关键点的坐标,基于solvePnP函数确定该初始人脸目标的旋转矩阵;

(3)根据旋转矩阵,确定该初始人脸目标的偏转角度。

同样基于solvePnP函数,本发明实施中获取摄像机的内参,并选取5个关键点形成人脸2D模型,并采用solvePnP函数计算得到旋转矩阵,进而将旋转矩阵转为欧拉角得到人脸的3D位姿,得到人脸的偏转角度。

具体公式如下:

其中,x和y为图像的坐标,u

在一种可能的实施方式中,S103可以包括:

S1031:获取前一帧图像中的各个跟踪目标;

S1032:针对各个人脸目标,查找前一帧图像中的各个跟踪目标中是否包含该人脸目标;若包含,则将该人脸目标对应的跟踪目标的跟踪ID作为该人脸目标的跟踪ID,若不包含,则将该人脸目标作为新的跟踪目标,并为该人脸目标分配跟踪ID;将该人脸目标的检测信息作为下一帧跟踪初始值继续跟踪。

本发明实施例中,对于各个人脸目标,若已经存在该跟踪目标,则更新该人脸目标的检测信息继续跟踪。若不存在该跟踪目标,则创建新的跟踪目标进行跟踪。

在一种可能的实施方式中,上述方法还可以包括:

S105:每个时刻,重复执行S101至S104的步骤;

S106:针对每个跟踪目标,若连续第一预设数量帧图像均没有对应的人脸目标的识别结果及识别信息与其关联存储,则将该跟踪目标删除。

S101至S104循环执行,将人脸识别的结果及信息持续记录下来。本发明实施例中在在连续跟踪识别的过程中,若某个跟踪目标长时间没有更新识别信息,说明该跟踪目标已经离开当前场景,可将跟踪目标删除,节省计算资源,避免计算资源的浪费。

进一步的,上述方法还可以包括:

S107:针对每个跟踪目标,确定该跟踪目标在连续第二预设数量帧图像中对应的人脸目标的识别结果中数量最多的一类识别结果;若该跟踪目标对应的数量最多的一类识别结果大于第三预设数量,则将该跟踪目标对应的数量最多的一类识别结果作为该跟踪目标的识别结果。

本发明实施例中将识别结果与跟踪ID关联,连续记录跟踪目标的识别信息,可根据连续多帧图像确定跟踪目标的识别结果,大大降低了某个片段中人脸识别的失败对整个人脸识别的过程的影响,达到了动态识别的目标。

在一种可能的实施方式中,在S102之前,上述方法还可以包括:

S108:对当前帧图像的清晰度进行评价;若当前帧图像清晰,则执行S102的步骤;若当前帧图像不清晰,则删除当前帧图像,不执行S102的步骤。

具体的,S108可以包括:采用Brenner梯度函数、Tenengrad梯度函数及Laplacian梯度函数确定当前帧图像的清晰度。

示例性的,Brenner梯度函数的具体公式如下:

D(f)=∑

其中,D(f)为清晰度,f(x,y)为像素点(x,y)对应的灰度。若清晰度大于预设阈值,则确定当前帧图像清晰;否则,不清晰。

Tenengrad梯度函数的具体公式如下:

D(f)=∑

其中,G

通过评估当前帧图像的清晰度,滤除清晰度不高的图像,提高人脸识别的准确度。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

以下为本发明的装置实施例,对于其中未详尽描述的细节,可以参考上述对应的方法实施例。

图4示出了本发明实施例提供的人脸识别装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:

如图4所示,上述装置包括:

图像合成模块21,用于获取当前时刻各个摄像机采集得到的初始图像,并对各个初始图像进行合成,得到当前帧图像;

人脸检测模块22,用于对当前帧图像进行人脸检测,得到多个人脸目标;

人脸跟踪模块23,用于确定各个人脸目标的跟踪ID,并采用目标跟踪算法对各个人脸目标进行跟踪;

人脸识别模块24,用于针对每个人脸目标,根据预设的人脸特征库对该人脸目标进行识别;若识别成功,则将该人脸目标的识别结果及识别信息与该人脸目标的跟踪ID关联存储。

在一种可能的实施方式中,人脸检测模块22可以包括:

初始检测单元,用于将当前帧图像输入人脸检测模型,将置信度大于预设置信度的人脸作为初始人脸目标;

目标筛选单元,用于对各个初始人脸目标进行筛选,得到多个人脸目标。

在一种可能的实施方式中,目标筛选单元可以包括:

筛选子单元,用于针对每个初始人脸目标,确定该初始人脸目标的尺寸、该初始人脸目标的位置、该初始人脸目标关键点的对称性及该初始人脸目标人脸的偏转角度,并基于该初始人脸目标的尺寸、该初始人脸目标的位置、该初始人脸目标关键点的对称性及该初始人脸目标人脸的偏转角度,确定该初始人脸目标是否合格;

人脸目标输出子单元,用于将合格的初始人脸目标作为人脸目标。

在一种可能的实施方式中,筛选子单元可以具体用于:

1、若该初始人脸目标的尺寸小于预设尺寸,则确定该初始人脸目标不合格;

2、若该初始人脸目标的位置处于当前帧图像的边缘,则确定该初始人脸目标不合格;

3、若该初始人脸目标的关键点不对称,则确定该初始人脸目标不合格;

4、若该初始人脸目标人脸的偏转角度大于预设偏转角度,则确定该初始人脸目标不合格。

在一种可能的实施方式中,确定该初始人脸目标的偏转角度可以具体包括:

(1)在该初始人脸目标上选取5个关键点,得到5个关键点的坐标;

(2)根据5个关键点的坐标,基于solvePnP函数确定该初始人脸目标的旋转矩阵;

(3)根据旋转矩阵,确定该初始人脸目标的偏转角度。

在一种可能的实施方式中,人脸跟踪模块23可以包括:

参数获取单元,用于获取前一帧图像中的各个跟踪目标;

目标更新单元,用于针对各个人脸目标,查找前一帧图像中的各个跟踪目标中是否包含该人脸目标;若包含,则将该人脸目标对应的跟踪目标的跟踪ID作为该人脸目标的跟踪ID,若不包含,则将该人脸目标作为新的跟踪目标,并为该人脸目标分配跟踪ID;将该人脸目标的检测信息作为下一帧跟踪初始值继续跟踪。

在一种可能的实施方式中,图像合成模块21可以包括:

初始图像获取单元,用于获取当前时刻各个摄像机采集得到的初始图像;

位姿矩阵确定单元,用于对各个初始图像进行特征点匹配,并基于各个摄像机的内参得到各个相机之间的位姿矩阵;

图像合成单元,用于根据各个相机之间的位姿矩阵对各个初始图像进行合成,得到当前帧图像。

在一种可能的实施方式中,上述装置还可以包括:

循环模块,用于每个时刻,重复执行获取当前时刻各个摄像机采集得到的初始图像,并对各个初始图像进行合成,得到当前帧图像,至针对每个人脸目标,根据预设的人脸特征库对该人脸目标进行识别;若识别成功,则将该人脸目标的识别结果及识别信息与该人脸目标的跟踪ID关联存储的步骤;

跟踪目标更新模块,用于针对每个跟踪目标,若连续第一预设数量帧图像均没有对应的人脸目标的识别结果及识别信息与其关联存储,则将该跟踪目标删除。

在一种可能的实施方式中,上述装置还可以包括:

识别结果统计模块,用于针对每个跟踪目标,确定该跟踪目标在连续第二预设数量帧图像中对应的人脸目标的识别结果中数量最多的一类识别结果;若该跟踪目标对应的数量最多的一类识别结果大于第三预设数量,则将该跟踪目标对应的数量最多的一类识别结果作为该跟踪目标的识别结果。

图5是本发明实施例提供的识别终端3的示意图。如图5所示,该实施例的识别终端3包括:处理器30和存储器31。存储器31用于存储计算机程序32,处理器30用于调用并运行存储器31中存储的计算机程序32,执行上述各个人脸识别方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,处理器30用于调用并运行存储器31中存储的计算机程序32,实现上述各装置实施例中各模块/单元的功能,例如图4所示模块21至24的功能。

示例性的,计算机程序32可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器31中,并由处理器30执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序32在识别终端3中的执行过程。例如,计算机程序32可以被分割成图4所示的模块/单元21至24。

识别终端3可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。识别终端3可包括,但不仅限于,处理器30、存储器31。本领域技术人员可以理解,图5仅仅是识别终端3的示例,并不构成对识别终端3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端还可以包括输入输出设备、网络接入设备、总线等。

所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器31可以是识别终端3的内部存储单元,例如识别终端3的硬盘或内存。存储器31也可以是识别终端3的外部存储设备,例如识别终端3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器31还可以既包括识别终端3的内部存储单元也包括外部存储设备。存储器31用于存储计算机程序以及终端所需的其他程序和数据。存储器31还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

技术分类

06120116301583