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

人脸跟踪方法、系统及计算机可读存储介质

文献发布时间:2023-06-19 10:48:02


人脸跟踪方法、系统及计算机可读存储介质

技术领域

本申请涉及计算机视觉领域,并且更具体地,涉及一种人脸跟踪方法、系统及计算机可读存储介质。

背景技术

随着人工智能技术的发展,深度学习模型在各个领域的应用越来越广。基于深度学习模型的多人脸跟踪算法目前受到越来越多的关注。

现有的基于深度学习模型的多人脸跟踪算法,需要将多张人脸图像逐一地输入到深度学习模型,从而对人脸进行跟踪和质量检测。如果跟踪的人脸较多,需要深度学习模型对每一人脸进行处理,这样的批处理方式造成了处理耗时过长,效率太低。

发明内容

本申请提供一种人脸跟踪方法、系统及计算机可读存储介质,以提升多人脸跟踪算法的效率。

第一方面,提供一种人脸跟踪方法,包括:从第一图像帧中获取多个人脸的图像;对多个人脸的图像进行拼接,得到拼接之后的拼图;将拼图输入第一深度学习模型,以对多个人脸进行跟踪,得到多个人脸在第二图像帧的跟踪结果,其中第二图像帧位于第一图像之后且与第一图像帧相邻;将拼图输入第二深度学习模型,以对拼图的质量进行检测,得到多个人脸在第一图像帧中的质量得分。

在一个实施例中,所述第一深度学习模型中的卷积层的补齐模式为有效,并且所述第一深度学习模型中的池化核大小不大于池化步长;和/或所述第二深度学习模型中的卷积层的补齐模式为有效,并且所述第二深度学习模型中的池化核大小不大于池化步长。

在一个实施例中,所述多个人脸中的每个人脸的图像的宽为所述第一深度学习模型的总体步长的整数倍,且所述每个人脸的图像的高为所述第一深度学习模型的总体步长的整数倍;和/或所述多个人脸中的每个人脸的图像的宽为所述第二深度学习模型的总体步长的整数倍,且所述每个人脸的图像的高为所述第二深度学习模型的总体步长的整数倍。

在一个实施例中,第一图像帧是检测帧,第二图像帧是跟踪帧,在所述从第一图像帧中获取多个人脸的图像之前,所述方法还包括:在检测帧进行人脸检测,得到所述多个人脸的图像的边界框在所述检测帧中的位置,且所述多个人脸的图像的边界框的尺寸相同。

在一个实施例中,所述多个人脸的边界框中的每个边界框的宽为W、高为H,所述拼图的宽为W×N,所述拼图的高为H,N表示所述多个人脸的数量。

在一个实施例中,所述方法还包括:在对所述多个人脸进行跟踪的过程中,维护所述多个人脸中的每个人脸的跟踪信息,所述每个人脸的跟踪信息包括所述每个人脸的图像的边界框在图像帧中的位置以及所述每个人脸的质量最高的图像的信息。

在一个实施例中,所述每个人脸的质量最高的图像的信息包括以下信息中的至少一种:所述质量最高的图像的得分,所述质量最高的图像的边界框在图像帧中的空间位置,以及所述质量最高的图像在图像序列中的时间位置。

在一个实施例中,所述多个人脸包括第一人脸,在所述将所述拼图输入第二深度学习模型,以对所述拼图的质量进行检测之后,所述方法还包括:如果所述第二深度学习模型输出的所述拼图的多个质量得分中对应第一人脸的质量的得分高于所述第一人脸的质量最高的图像的得分,对所述第一人脸的跟踪信息中的质量最高的图像的信息进行更新。

第二方面,提供了一种人脸跟踪系统,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现第一方面所述方法的步骤。

第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面所述方法的步骤。

第四方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所述方法的步骤。

由此可见,本申请中将多个人脸的图像拼接成拼图后再利用深度学习模型进行跟踪和质量检测,由于针对拼图处理时的前向推理的时间更短,因此能够极大地缩短人脸跟踪和质量检测的时间,提升处理效率。

附图说明

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

图1是本发明实施例提供的人脸跟踪方法的示意性流程图。

图2是本发明实施例提供的一种待拼接的多张图像的示意图。

图3是本发明实施例的将图2中的多张人脸的图像拼接后的拼图的示意图。

图4是批处理方法的网络拓扑的一个示意图。

图5是本发明实施例中基于第二深度学习模型的网络拓扑的一个示意图。

图6是本发明实施例中基于第二深度学习模型的层a=13的特征图尺寸的示意图。

图7是本申请实施例提供的更新跟踪信息中质量最高的人脸的图像的信息的方法的示意性流程图。

图8是本发明实施例的人脸跟踪的系统的一个示意框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

人脸跟踪是计算机视觉领域的重要研究方向。人脸跟踪通过对图像帧进行处理分析,获取人脸在每帧图像上的位置。人脸跟踪在视频监控等领域都有广泛的应用。

在多人脸跟踪过程中,可以维护该多个人脸中的每个人脸的跟踪信息(也可称为跟踪序列)。每个人脸的跟踪信息可以包括如下两部分信息:第一部分:每个人脸的图像的边界框在图像帧中的位置;第二部分:每个人脸的质量最高的图像的信息。其中,被跟踪的每个人脸的质量最高的图像的信息可以包括以下信息中的至少一种:质量最高的图像的得分,质量最高的图像的边界框在图像帧中的空间位置,以及质量最高的图像在图像序列中的时间位置。当某个人脸的跟踪结束时,跟踪信息的第二部分,即该人脸的质量最高的图像的信息可以作为输出结果。例如,将质量最高的人脸图像呈现在跟踪设备(如移动终端)的显示界面上。

由于人脸是动态变化的,因此,在多人脸跟踪过程中,每个人脸的跟踪信息是需要被不断更新。为了实现该目的,可以设置两个深度学习模型:第一深度学习模型和第二深度学习模型。第一深度学习模型可用于在跟踪帧对多人脸进行跟踪,该深度学习模型的输出可以用于预测下一跟踪帧中人脸的图像的边界框的位置。因此,基于第一深度学习模型的输出,可以更新上述跟踪信息的第一部分。第二深度学习模型可用于在跟踪帧对多人脸的图像质量进行检测,如果检测出某个人脸的图像的质量高于该人脸的之前得到的图像的质量,则可以更新该人脸的跟踪信息的第二部分。

为了对多个人脸进行跟踪和质量检测,有时需要对大量的人脸进行批处理,第一深度学习模型和第二深度学习模型的一种可能的实现方式时:将每个人脸的图像逐一地输入第一深度学习模型或第二深度学习模型。如果跟踪的人脸较多,需要深度学习模型对每一人脸进行处理,这样的批处理方式造成了处理耗时过长,效率太低。

对本申请实施例提供一种人脸跟踪方法,可以提高深度学习模型对多人脸跟踪时的效率。下面结合图1,对该人脸跟踪方法进行详细描述。

如图1所示,本申请实施例提供的人脸跟踪方法包括步骤S10至步骤S40。

在步骤S10,从第一图像帧中获取多个人脸的图像。

在步骤S20,对多个人脸的图像进行拼接,得到拼接之后的拼图。

在步骤S30,将拼图输入第一深度学习模型,以对多个人脸进行跟踪,得到多个人脸在第二图像帧的跟踪结果。

在步骤S40,将拼图输入第二深度学习模型,以对拼图的质量进行检测,得到多个人脸在第一图像帧中的质量得分。

其中,第二图像帧位于第一图像帧之后且与第一图像帧相邻。例如,第一图像帧帧为第30帧,第二图像帧可以为第31帧。可以理解的是,在人脸跟踪的过程中,跟踪视频中存在连续的图像帧序列,因此第一图像帧和第二图像帧是相对而言的,也就是说,对于同一图像帧可以是第一图像帧,也可以是第二图像帧。例如,以第30-32帧为例,第31帧对于第30帧可以为第二图像帧,第31帧对于第32帧可以为第一图像帧。

视频是由一系列的图像帧构成的,本申请中可以定义一些图像帧是检测帧,另一些图像帧是跟踪帧。其中,在检测帧通过人脸检测算法来确定检测帧中所包含的人脸框;在跟踪帧通过人脸跟踪算法来预测人脸框的位置。

跟踪帧和检测帧之间的间隔可以根据实际需要设置,本申请对此不作限定。可理解,由于进行人脸检测算法比人脸跟踪算法复杂,耗时长,因此,可以设置跟踪帧的数量远大于检测帧的数量,例如,跟踪帧的数量是检测帧的若干倍(5-20等),例如为10倍。另一方面,为了确保跟踪帧进行跟踪的准确性,可以在每连续若干个跟踪帧之后设置一个或几个检测帧。可选地,可以在每一个检测帧之后为连续的若干个跟踪帧(可以称作跟踪帧序列),也就是说,两个相邻的检测帧之间都为跟踪帧,且该间隔可以是均匀的。换句话说,每两个相邻的检测帧之间都包括预定长度的跟踪帧序列,例如该预定长度可以是9帧。

在一种实现方式中,第一图像帧可以是检测帧,第二图像帧可以是跟踪帧。相应地,S10中获取的多个人脸的图像是这些人脸在第一图像帧检测到的包含对应人脸的检测框中的图像。

为了实现S20中的拼图,多个人脸的图像具有相同的尺寸,也就是说,S10所获取的多张图像彼此之间具有相同的宽(如表示为W)和相同的高(如表示为H)。在第一图像帧是检测帧的实施例中,S10之前还可以包括:在检测帧进行人脸检测,得到多个人脸的图像的边界框在所述检测帧中的位置。相应地,S10中可以获取该检测帧所检测到的多个人脸的图像。

在一个实施例中,检测帧所检测到的多个人脸的图像的边界框的尺寸相同。也就是说,本申请中在检测帧进行人脸检测时,输出的边界框(bounding box)的尺寸是固定的。

在另一种实现方式中,第一图像帧和第二图像帧均为跟踪帧。相应地,S10中获取的多个人脸的图像是这些人脸在第一图像帧跟踪的包含对应人脸的跟踪框中的图像。

可以理解的是,在第一图像帧中,第一深度学习模型可以用于预测第二图像帧(第一图像帧的下一图像帧)中人脸的位置。在第一图像帧中,第二深度学习模型可以用于对第一图像帧(当前图像帧)中的人脸的质量进行检测。或者,在第二图像帧,第二深度学习模型可以用于对第二图像帧中的人脸的质量进行检测。

本申请实施例将多个人脸的图像拼接成拼图后再利用深度学习模型进行跟踪和质量检测,由于针对拼图处理时的前向推理的时间更短,因此能够极大地缩短人脸跟踪和质量检测的时间,提升处理效率。

示例性地,S10中,可以从第一图像帧中找到多个人脸的边界框,每个边界框即代表一个人脸的图像。本申请中,多个人脸的边界框可以具有不同的空间尺寸,也可以具有相同的空间尺寸(即具有相同的宽和高)。例如,多个人脸的边界框的宽都为W,高都为H。

一般地,为了对多个人脸的图像进行批处理,可以将多个人脸的图像表示为一个四维张量,如其形状为[n,h,w,c]或[n,w,h,c],其中n为批的大小,即多张人脸的图像的数量。h,w,c分别为图像高度、宽度以及通道数。作为一个示例,S10中的多个人脸的图像可以如图2所示,如图2中包括3个人脸的图像,且每个人脸的图像的宽相等,每个人脸的图像的高也相等。因此,3个人脸的图像可以表示为四维张量为[3,H,W,C]。

示例性地,S20中,可以通过将多个人脸的图像沿着宽度方向依次拼接形成拼图,这样,拼图的宽等于多张人脸的图像的宽之和,拼图的高等于多张人脸的图像中高的最大值。

假设每个人脸的图像的宽都是W,每个人脸的图像的高都是H,且假设多个人脸的图像的数量为N,那么S20中所得到的拼图的宽为W×N,拼图的高为H。

作为一个示例,将如图2所示的3个人脸的图像进行拼接后,得到的拼图如图3所示,表示为四维张量为[1,H,3×W,C]。

本申请中,S30中的第一深度学习模型可以设置成满足如下两个条件的深度学习模型:(1)补齐模式为有效,即padding=‘VALID’;(2)池化核大小不大于池化步长,即池化核大小等于或小于池化步长。

当第一深度学习模型满足上述两个条件时,使用本申请实施例提供的第一深度学习模型对拼图进行处理所得到的结果与针对多张人脸的图像进行批处理所得到的结果是一致的。

类似地,本申请中,S40中的第二深度学习模型可以设置成满足如下两个条件的深度学习模型:(1)补齐模式为有效,即padding=‘VALID’;(2)池化核大小不大于池化步长,即池化核大小等于或小于池化步长。

当第二深度学习模型满足上述两个条件时,使用本申请实施例提供的第二深度学习模型对拼图进行处理所得到的结果与针对多张人脸的图像进行批处理所得到的结果是一致的。

另外,在图1的实施例中,可以先执行S40再执行S30,即,可以先得到第一图像帧中各个人脸的质量得分,然后再基于批图预测得到各个人脸在第二图像帧中的跟踪位置。或者,在图1的实施例中,可以同时执行S40和S30,这样能够进一步提高实时性。

下面将结合具体的示例描述该第二深度学习模型。其中,假设多个人脸图像的数量为2,其中每个人脸图像的宽为72,高为96。

当对多个人脸图像依次进行处理时,即进行处理时的输入图像的尺寸为96×72,相应地,网络拓扑可以如图4所示。应注意,本申请中在结合图4至图6的示例中,图像尺寸表示高×宽的尺寸,而不再单独示出通道数。

在图4中,变量a表示层的编号,INPUT、CONV、ACTIVATE、POOL分别为输入层、卷积层、激活层和池化层。方括号中的[hi×wi]表示对应层的特征图尺寸,方括号之后的圆括号里边的数字(m)代表对应层的通道数。最后两个数字nWeights和nBiases分别表示可训练参数weights和biases的数量。

以a=13为例,该层为激活层,该激活层的输入的特征图尺寸是6×3,通道数为128。

针对图4中的网络结构,其中层a=14是非常特殊的一个卷积层,其使用了6×3的卷积核,并且其补齐模式为padding=‘VALID’,从而使得6×3的特征图尺寸变为1×1。因此,层a=14的操作也可以等价地由全连接层(Fully Connected Layer)代替。

应当注意的是,在本申请中,为了避免不确定的因素,本申请中假设网络拓扑避开任何边缘效应。举例来说,如果2×2池化层操作的输入特征图的尺寸为45×45,那么由于45不是2的倍数,因此可能会存在不同边缘处理的方式,导致输出特征图的尺寸可能是23,也可能是22。本领域技术人员可理解,确实不同深度学习框架之间会存在边缘处理方式的差异。然而,本申请所讨论的网络拓扑(如上面的图3以及下面的图5)都不存在这种问题,本申请中的网络拓扑中,任意池化层的输入特征图的尺寸都是2的倍数。

假设待处理的多个人脸图像的数量是2,那么基于图4中的场景,拼图的尺寸为96×144。类似于图3中拼接方式,在该拼图中,两张人脸图像之间不存在间隙,即不存在空区域,而是直接相挨着的(72+72=144)。相应地,输入图像尺寸为96×144时,网络拓扑可以如图5所示。

在结合图4的描述中已经示出了,拼图方法的特点在于全连接操作由卷积操作替代的那一层,即层a=14。

针对图5中的网络拓扑,图6示出了从输入层a=0到全连接层(a=14)之前的层a=13的特征图尺寸变化。具体地,其通过补齐模式padding=‘VALID’的卷积和池化引起的欠采样操作,把层a=0的尺寸96×144被逐步地降低到层a=13的尺寸6×12。

通过将图4与图5进行比较可以发现,图5中层a=13的特征图尺寸为6×12,而图4中层a=13的特征图尺寸为6×3。也就是说,将两个图4中层a=13的特征图尺寸进行连接(concatenate)之后的特征图尺寸为6×6,与图中层a=13的特征图尺寸为6×12时不一致的。结合图6可以看出,在图5的层a=13的6×12特征图的中间存在6×6的无效区域。这个无效区域是由两张人脸的图像的重叠区域所计算出来的值,并且由于层a=13的重叠区域中的值无效,因此可以在层a=14的卷积核使用步长1×9来跳过中间的无效区域。返回图5可以看出,在层a=14时,特征图尺寸变为1×2,其中2代表批处理大小。

可理解的是,其他层a=1,…,12的特征图中也存在无效的列。举例来说,对于层a=3,图4中的特征图尺寸为46×34,图5中的特征图尺寸为46×70,由于34+34<70,且70-34-34=2,因此会在中间存在2个无效的列,并且这两个无效的列不会影响后续的网络最终结果。但是应注意的是,在图5的网络拓扑中,尽管层a=3中存在2个无效的列,但是在层a=4并不使用卷积核的步长3跳过这两列,否则在这2个无效列的前后会发送跳列的现象,进而得到不正确的前向计算结果。

也就是说,本申请中在针对拼图进行人脸的图像处理时,需要由卷积层操作替代了原先批处理网络拓扑中的全连接层操作,并且卷积核的大小是全连接层之前的特征图尺寸。进一步,还应该按照网络拓扑来设定该卷积核的步长参数,以便跳过无效区域。

基于上面的描述,本申请中在对多张人脸的图像进行图像处理时,尽管对多张人脸的图像分别进行处理和对拼图进行处理的总的像素点数量是相等的,例如均为n×h×w×c。尽管如图4的批处理方法的浮点运算数(FLOPS)低于如图5的拼图处理方法,并且如图5的拼图处理方法在处理无效区域时还会增加一些没必要的计算量;但是,一方面处理无效区域所引起的计算量增加是有限的、能够接受的,其被控制在一定范围内;另一方面,拼图处理方法的前向推理时间要远小于批处理方法的前向推理时间,并且批大小n越大,该推理时间的差异会越明显。例如,如果n为30的话,相比于批处理方法,拼图处理方法的前向推理时间要快大概3倍。

通过本发明实施例的方法,能够将用于批处理的多张人脸的图像拼接成拼图,并使用如S30中的第一深度学习模型对拼图进行处理,以对多个人脸进行跟踪;使用如S40中的第二深度学习模型对拼图进行处理,以得到多个人脸的质量得分。由于极大地缩短了前向推理的时间,因此能够极大地缩短人脸跟踪的时间,提升处理效率。并且,使用本申请中的第一深度学习模型/第二深度学习模型对拼图进行处理所得到的结果与针对多张人脸的图像进行批处理进行人脸跟踪所得到的结果是一致的。

具体地,如在S30中所述,第一深度学习模型中的卷积层的补齐模式为有效(Valid),并且第一深度学习模型中的池化核大小不大于池化步长。同样地,S40中的第二深度学习模型中的卷积层的补齐模式为有效(Valid),并且第二深度学习模型中的池化核大小不大于池化步长。这样才能够保证拼图中相邻两图像之间的感受野相互独立,不出现相互覆盖的现象,即避免跟边缘效应挂钩。

依然结合图5所示的第二深度学习模型,在层a=1的卷积核大小为5×5,其将特征图尺寸从96×144变到92×140。由于采用补齐模式padding=‘VALID’,从而在层a=1的具体公式可以表示为:

y1[0,67]=…+x[0][67]+x[0][68]+x[0][69]+x[0][70]+x[0][71]+…;

y2[0,67]=…+x[0][67]+x[0][68]+x[0][69]+x[0][70]+x[0][71]+…;

其中,y1记为批处理方式(图4)第一行左边图像最右边的输出值,y2记为同样位置的拼图处理方法(图5)的输出值。可见,两种方法得来的值是相等的,也就是说,拼图处理的结果与批处理的结果是一致的。

但是,在拼图处理方式中,在层a=1的特征图尺寸为92×140,其中左边图像和右边图像的宽度的有效值均为68,位于中间的是4个无效列,即:

也就是说,通过设定补齐模式padding=‘VALID’,即pad=0,在本申请的方案中,不会存在感受野同时覆盖两幅图的现象。

实际上,假设在针对拼图处理的过程中,设定补齐模式是“SAME”,即pad=2。那么:

y1[0,71]=…+x[0][69]+x[0][70]+x[0][71]+0+0+…

y2[0,71]=…+x[0][69]+x[0][70]+x[0][71]+x[0][72]+x[0][73]+…,可见,在计算y1时,因pad=2的原因加了两个0。且在计算y2的过程中越界了,x[0][72]和x[0][73]属于右边图像的值。也就是说,y2本身属于左边图像的阶段性的值,但是其感受野也包含了右边图像的值x[0][72]和x[0][73]。并且可理解的是,层编号越大,误差累计越多,导致最终结果的差异比较大。因此,在本申请实施例中,补齐模式padding=‘VALID’是“第二深度学习模型对拼图进行人脸跟踪所得到的结果与针对多张人脸的图像进行批处理进行人脸跟踪所得到的结果一致”的必要条件。

类似地,池化核大小不大于池化步长也是“第二深度学习模型对拼图进行处理所得到的结果与针对多张人脸的图像进行批处理所得到的结果一致”的必要条件。简单举例来讲,假设选择池化核大小大于池化步长的池化层。例如,核大小3×3、步长2×2的最大池化(max-pooling),这种情形下会存在有边缘效应。具体地,

y1[0,33]=max{…,x[0][66],x[0][67],0,…}

y2[0,33]=max{…,x[0][66],x[0][67],x[0][68],…}。

在x[0][68]大于x[0][66]和x[0][67]的情况下,则该层的计算结果不一致。对点y2[0,33]来讲,其感受野超过了左边图像本身的范围。

因此,本申请的实施例中,需满足池化核大小不大于池化步长,例如可以是池化核大小等于池化步长,从而避免感受野同时覆盖两幅图的现象,且保证了第一深度学习模型/第二深度学习模型对拼图进行处理所得到的结果与针对多张人脸图像进行人脸跟踪批处理所得到的结果一致。

进一步地,在S30中,可以基于输出得到多个人脸的跟踪结果,且与多张人脸的图像一一对应。这样的人脸跟踪结果与批处理的结果是一致的。

另外,可选地,在一种可能的实现方式中,多张人脸的图像中每张图像的宽为第一深度学习模型的总体步长的整数倍,且多张人脸的图像中每张图像的高为第一深度学习模型的总体步长的整数倍。这样,能够确保第一深度学习模型在处理拼图的过程中,每一层的特征图的尺寸都是唯一的。

类似地,多张人脸的图像中每张图像的宽为第二深度学习模型的总体步长的整数倍,且多张人脸的图像中每张图像的高为第二深度学习模型的总体步长的整数倍。这样,能够确保第二深度学习模型在处理拼图的过程中,每一层的特征图的尺寸都是唯一的。

在一个实施例中,第一深度学习模型的总体步长可以等于第二深度学习模型的总体步长。示例性地,在S10之后,可以对多张人脸的图像进行缩放,以使得每张图像的尺寸都相等,且宽和高都是总体步长的整数倍。并且可以在缩放之后再执行S20。

依然以图5所示的第二深度学习模型为例,其中层3、层6、层9的池化层包含步长为非1的操作,其步长全部为2,那么网络的总体步长为2×2×2=8。并且,多张人脸的图像中每张图像的高为96、宽为72,且96和72都是总体步长8的整数倍。

每张人脸的图像的尺寸(即输入到第二深度学习模型的输入图像的尺寸)、卷积核大小和池化步长唯一地决定了层a=13的特征图尺寸。

由于层3、层6、层9的池化层的步长均为2,若将w0表示为输入图像的宽,那么在图4的情形下,层13的特征图的宽w13满足:w13={[(w0-4)/2-2]/2-2}/2-2–2,即,w13=w0/8–6。

基于此,可以归纳至一般的网络拓扑,满足w13=w0/s-p,其中,s表示网络的总体步长,p表示偏移量。由于w13是整数,且w0是s的整数倍,那么p也是整数。并且可以基于此确定出层13的中间区域(即无效区域)的宽度x等于p。

具体推导过程如下:

针对如图5所示的网络拓扑,将w13’表示为图5中针对拼图的层a=13的特征图的宽,那么层a=13的中间区域满足:w13’=(2×w0)/s–p,且满足w13’=w13+x+w13,从而(2×w0)/s–p=w0/s-p+x+w0/s-p进而推导出x=p。

由于图5是将两张人脸的图像进行拼接后得到拼图的处理过程,即n=2。进一步地,还可以针对任意数量的n通过分析得出:x=p。也就是说,对于多张人脸的图像得到的拼图而言,任何两张相邻人脸的图像之间的无效区域的宽度都是相等的,且都等于偏移量。

由此可见,本申请中将多张人脸的图像拼接成拼图后,再利用第一深度学习模型进行人脸跟踪以及利用第二深度学习模型进行质量评价,由于针对拼图处理时的前向推理的时间更短,因此能够极大地缩短人脸跟踪的时间,提升处理效率。并且,使用本申请中的深度学习模型对拼图进行处理所得到的结果与针对多张人脸的图像进行批处理所得到的结果是一致的。

可选地,第二深度学习模型获取到的质量信息可以用于对被跟踪人脸的跟踪信息中质量最高的图像的信息进行更新。因此,在一些实施例中,在图1的步骤S40后,还可以包括如图7所示的步骤S50:如果第二深度学习模型输出的拼图的多个质量得分中对应第一人脸的质量的得分高于第一人脸的质量最高的图像的得分,对第一人脸的跟踪信息中的质量最高的图像的信息进行更新。

具体地,S40中第二深度学习模型的输出包括与多个人脸一一对应的多个质量得分,可以从多个质量得分中获取与第一人脸对应的质量得分,假设为score1。如果score1大于当前已有的第一人脸的质量最高的图像的得分,则将质量最高的图像的得分更新为score1。可选地,还可以进一步将第一人脸的质量最高的图像更新为从第一图像帧中所获取的第一人脸的图像。

通过S50可以使得跟踪信息中质量最高的图像的信息在跟踪过程中不断更新,以保持该信息的准确性,在跟踪结束后,可准确输出人脸在跟踪过程中质量最高的图像,从而为用户提供人脸清晰度较高、在较佳角度的人脸图像,提高用户的体验感。

另外,本申请还提供了一种人脸跟踪的系统,如图8所示,包括存储器、处理器及存储在存储器上的计算机程序。并且当处理器执行计算机程序能够实现上述结合图1所述方法的步骤。

存储器可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)等。

处理器可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的方法。

处理器还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的方法的各个步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成本申请实施例的系统中包括的单元所需执行的功能,或者执行本申请方法实施例的方法。

可选地,该系统还可以进一步包括通信接口和总线。其中,通信接口使用例如但不限于收发器一类的收发装置,来实现与其他设备或网络之间的通信。例如,可以通过通信接口可以从人脸图像采集设备获取多张人脸的图像,可以通过通信接口将人脸图像处理结果传输至其他外部设备,等等。其中,总线可包括在装置各个部件(例如,存储器、处理器、通信接口)之间传送信息的通路。

可理解,图8中的人脸跟踪的系统可以是计算机系统、计算机设备等,例如可以为人脸抓拍摄像机或者边缘盒子等。

另外,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序。当该计算机程序被计算机或者处理器执行时,可以实现前述结合图1所述的方法的步骤。例如,该计算机存储介质为计算机可读存储介质。

在一个实施例中,该计算机程序指令在被计算机或处理器运行时使计算机或处理器执行以下步骤:从第一图像帧中获取多个人脸的图像;对多个人脸的图像进行拼接,得到拼接之后的拼图;将拼图输入第一深度学习模型,以对多个人脸进行跟踪,得到多个人脸在第二图像帧的跟踪结果,其中第二图像帧位于第一图像帧之后且与第一图像帧相邻;将拼图输入第二深度学习模型,以对拼图的质量进行检测,得到多个人脸在第一图像帧中的质量得分。

计算机存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。

另外,本发明实施例还提供了一种计算机程序产品,其包含计算机程序或指令,当该计算机程序或指令被计算机或处理器所执行时,使得执行上述结合图1所述的方法的步骤。

由此可见,本申请中将多张人脸图像拼接成拼图后再利用深度学习模型进行处理,由于针对拼图处理时的前向推理的时间更短,因此能够极大地缩短图像处理时间,提升处理效率。并且,使用本申请中的深度学习模型对拼图进行人脸跟踪和质量检测所得到的结果与针对多张图像进行批处理所得到的结果是一致的。

可理解的是,本申请文件中,“多个人脸”和“多张人脸”代表相同的含义。

尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。

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

相关技术
  • 人脸跟踪方法、系统及计算机可读存储介质
  • 人脸跟踪方法及装置、电子设备和计算机可读存储介质
技术分类

06120112684831