人脸跟踪方法、装置、终端及存储介质与流程

文档序号:14249933阅读:175来源:国知局
人脸跟踪方法、装置、终端及存储介质与流程

本发明涉及图像识别技术领域,具体涉及一种人脸跟踪方法、装置、终端及存储介质。



背景技术:

人脸跟踪是在视频或图像序列中确定某个人脸的运动轨迹及大小变化的过程,是进行动态人脸信息处理的第一个环节,在视频会议、可视化电话、视频监控及人机智能交互等方面都有着重要的应用价值。

目前,在传统相机和智能终端上已实现的人脸跟踪方法主要有两类:一类是基于特征匹配的跟踪方法,该方法主要是构建能够代表目标的特征,然后通过特征间的匹配度来判断目标的位置;另一类是基于目标与背景分离的跟踪方法,该方法运用机器学习的方法学习一个能够分离目标与背景的分类器,学习过程一般为在线训练过程,通过学习到的分类器来判断目标位置。

基于特征匹配的跟踪方法(如光流跟踪)具有相对较低的复杂度,但对具有光照、遮挡、尺度等因素变化的情况下算法鲁棒性较低,跟踪效果差;基于目标与背景分离的跟踪方法具有较高的鲁棒性,在一定程度上能够解决光照、遮挡等问题,但其计算复杂度较高,影响了算法的商业应用。即在人脸跟踪领域存在一个较为突出的矛盾,就是算法复杂度和算法性能之间的矛盾。



技术实现要素:

鉴于以上内容,有必要提出一种人脸跟踪方法、装置、终端及存储介质,其采用软件算法和硬件加速相结合的方法,以较低的算法复杂度实现了较好的人脸跟踪性能。

本申请的第一方面提供一种人脸跟踪方法,应用于终端中,所述终端包括硬件加速模块,所述方法包括:

利用人脸检测算法检测当前帧图像中的人脸区域;

所述硬件加速模块计算所述人脸区域的当前人脸特征;

硬件加速模块将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征;

存储所述最新人脸特征,并开始新一帧图像的人脸跟踪。

另一种可能的实现方式中,所述硬件加速模块计算所述人脸区域的当前人脸特征时,还包括:

判断当前帧图像是否为第一帧图像;

当确定当前帧图像为第一帧图像时,将第一帧图像中的人脸区域的人脸特征作为最新人脸特征;

当确定当前帧图像不为第一帧图像时,将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征。

另一种可能的实现方式中,所述硬件加速模块判断当前帧图像是否为第一帧图像包括:

当当前接收到人脸区域的时间超过预设时间段时,则确定当前帧图像为第一帧图像;

当当前接收到人脸区域的时间没有超过所述预设时间段时,则确定当前帧图像不为第一帧图像。

另一种可能的实现方式中,所述硬件加速模块将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征包括:

将所述当前人脸特征与第一系数求积得到第一特征;

将所述历史人脸特征与第二系数求积得到第二特征,所述第一系数与所第二系数之和为一;

对所述第一特征与所述第二特征进行求和,得到所述最新人脸特征。

本申请的第二方面提供一种人脸跟踪装置,运行于终端中,所述终端包括硬件加速模块,所述装置包括:

监测模块,用于利用人脸检测算法检测当前帧图像中的人脸区域;

存储模块,用于存储最新人脸特征;

其中,所述最新人脸特征是由所述硬件加速模块计算所述人脸区域的当前人脸特征后,将所述当前人脸特征与历史人脸特征进行加权处理得到的。

另一种可能的实现方式中,所述硬件加速模块计算所述人脸区域的当前人脸特征时,还包括:

判断当前帧图像是否为第一帧图像;

当确定当前帧图像为第一帧图像时,将第一帧图像中的人脸区域的人脸特征作为最新人脸特征;

当确定当前帧图像不为第一帧图像时,将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征。

另一种可能的实现方式中,另一种可能的实现方式中,所述硬件加速模块判断当前帧图像是否为第一帧图像包括:

当当前接收到人脸区域的时间超过预设时间段时,则确定当前帧图像为第一帧图像;

当当前接收到人脸区域的时间没有超过所述预设时间段时,则确定当前帧图像不为第一帧图像。

另一种可能的实现方式中,

所述硬件加速模块将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征包括:

将所述当前人脸特征与第一系数求积得到第一特征;

将所述历史人脸特征与第二系数求积得到第二特征,所述第一系数与所第二系数之和为一;

对所述第一特征与所述第二特征进行求和,得到所述最新人脸特征。

本申请的第二方面提供一种人脸跟踪装置,运行于。

本申请的第三方面提供一种终端,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现人脸跟踪方法的步骤。

本申请的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现人脸跟踪方法的步骤。

本发明利用人脸检测算法检测当前帧图像中的人脸区域;硬件加速模块计算所述人脸区域的当前人脸特征;硬件加速模块将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征;存储所述最新人脸特征,并开始新一帧图像的人脸跟踪。本发明将软件算法和硬件加速结合在一起,将其应用在人脸跟踪上,以较低的算法复杂度获得了较好的人脸跟踪效果。

附图说明

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

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

图2是本发明实施例二提供的人脸跟踪方法的流程图。

图3是人脸跟踪方法处理器与硬件加速模块进行数据交互的示意图。

图4是本发明实施例三提供的人脸跟踪装置的结构图。

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

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

优选地,本发明的人脸跟踪方法应用在一个或者多个终端或者服务器中。所述终端是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述终端可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

实施例一

图1是本发明实施例一提供的人脸跟踪方法的流程图。所述人脸跟踪方法应用于终端。根据不同的需求,图1所示流程图中的执行顺序可以改变,某些步骤可以省略。

在本实施例中,所述人脸跟踪方法可以应用于具备拍照或摄像功能的智能终端中,所述终端并不限定于个人电脑、智能手机、平板电脑、安装有摄像头的台式机或一体机等。

所述人脸跟踪方法也可以应用于由终端和通过网络与所述终端进行连接的服务器所构成的硬件环境中。网络包括但不限于:广域网、城域网或局域网。本发明实施例的人脸跟踪方法可以由服务器来执行,也可以由终端来执行,还可以是由服务器和终端共同执行。

例如,对于需要进行人脸跟踪的终端,可以直接在终端上集成本申请的方法所提供的人脸跟踪功能,或者安装用于实现本申请的方法的客户端。再如,本申请所提供的方法还可以软件开发工具包(softwaredevelopmentkit,sdk)的形式运行在服务器等设备上,以sdk的形式提供人脸跟踪功能的接口,终端或其他设备通过提供的接口即可实现人脸的跟踪。

首先,在对本发明实施例进行描述的过程中出现的部分名词或着术语解释如下:

人脸检测是指从给定的一幅图像中,采用一定的方式判断图像中是否存在人脸,如果存在,则给出人脸的大小和位置,可以用来搜索图像序列中人脸的初始位置,也可以用于在跟踪过程中定位人脸。

方向梯度直方图(histogramoforientedgradient,hog)特征:是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。其主要思想是:在一幅图像中,局部目标的表象和形状能够被梯度或边缘方向密度分布很好的描述。

如图1所示,所述人脸跟踪方法具体包括以下步骤:

101:利用人脸检测算法检测当前帧图像中的人脸区域。

本实施例中,利用人脸检测算法在检测到人脸区域时,定位面部关键特征点,在人脸图像中添加一个选择框表示裁剪出的人脸区域。一般而言,选择框的大小与人脸区域的大小接近,通常是与人脸区域的外轮廓相切,选择框的形状可以自定义,例如圆形、长方形、正方形、三角形等,该选择框又可以叫做人脸跟踪框,人脸移动时,人脸跟踪框也随之移动。

所述人脸检测算法可采用如下至少一种方法:基于特征的方法,基于聚类的方法,基于人工神经网络的方法或者基于支持向量机的方法。

需要理解的是,虽然人类可以很容易的从一幅图像中找出人脸,但要计算机自动地检测出人脸仍然存在一定的困难,其难点在于人脸属于非刚体模式,在运动过程中,其姿态、大小、形状都会发生变化,另外人脸本身可以存在多种形式的细节变化,如不同的肤色、脸型、表情等带来的变化,及其他外部因素的影响,如光照、人脸上的装饰物带来的遮挡等。

因而,在利用人脸检测算法检测当前帧图像中的人脸区域之前,本发明所述的人脸跟踪方法还可以包括:对当前帧图像进行预处理。

本实施例中,所述对当前帧图像进行预处理可以包括,但不限于,图像去噪,光照归一化,姿态校准等。例如,可以采用高斯滤波器对当前帧图像进行滤波,去除当前帧图像中的噪声;采用商图像技术除去高亮光照对当前帧图像的影响;采用正弦变换对当前帧图像中的人脸姿态进行校准。

在本实施例中,具备拍照或摄像功能的终端采集图像或视频流,并将所述图像或视频流中的每一帧图像存储于存储器中,同时将存储图像的地址信息发送给终端处理器。所述处理器根据所述存储图像的地址信息获取存储在其中的当前帧图像,并利用人脸检测算法检测当前帧图像中的人脸区域。待处理器检测出当前帧图像中的人脸区域时,将所述人脸区域进行存储。所述处理器将存储人脸区域的地址信息发送给终端硬件加速模块。所述终端硬件加速模块根据存储人脸区域的地址信息获取人脸区域。

在其他实施例中,待处理器检测出当前帧图像中的人脸区域时,将所述人脸区域进行存储,同时直接将所述人脸区域发送给终端硬件加速模块。

在本实施例中,所述处理器可以包括,但不限于,中央处理器(centralprocessingunit,cpu),数字信号处理器(digitalsignalprocessor,dsp)。

需要说明的是,硬件加速是指利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性。本发明所采用的硬件加速模块为现有技术,在此不再赘述,任何能调用软件算法的硬件加速模块均可适用于此。本实施例中,可以采用fpga供应商所提供的开发工具从而实现硬件和软件之间的无缝切换。这些工具可以为总线逻辑和中断逻辑生成hdl代码,并可根据系统配置定制软件库及include文件。

102:硬件加速模块计算所述人脸区域的当前人脸特征。

本实施例中,硬件加速模块可以采用hog特征计算人脸特征。由于hog特征对行人外形多样貌、行人姿态多变性、影像光线干扰等辨识上的障碍,皆有着突破性的优异效果。因此,选用hog特征作为人脸特征对人脸进行匹配,具有较好的稳定性。在其他实施例中,本发明还可以采用其他方法计算人脸特征,例如,哈尔(haar)特征。

103:硬件加速模块将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征。

所述硬件加速模块将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征包括:将所述当前人脸特征与第一系数求积得到第一特征;将所述历史人脸特征与第二系数求积得到第二特征,所述第一系数与所第二系数之和为一;对所述第一特征第一系数与所述第二特征第二系数进行求和,得到所述最新人脸特征。

也就是说,所述硬件加速模块可以采用如下公式计算最新人脸特征:

最新人脸特征=当前人脸特征*x+历史帧人脸特征*(1-x),其中,x在0和1之间取值,x一般取经验值,例如0.5。

应当理解的是,所述当前人脸特征是以当前帧图像中的人脸区域计算得出的特征。所述历史人脸特征是相对最新人脸特征而言。

具体地,假如第1帧图像的人脸特征记为h1,获取同一个人的第2帧图像的人脸区域并计算出人脸特征记为h2。此时,h2可以称之为当前人脸特征,相对于h2,则将h1称之为历史人脸特征,将h2与h1进行加权处理后得到的人脸特征称之为最新人脸特征g1。

接下来,获取第3帧图像的人脸区域并计算出人脸特征记为h3。此时,h3可以称之为当前人脸特征,相对于h3,则将g1称之为历史人脸特征,将h3与g1进行加权处理后得到的人脸特征称之为最新人脸特征g2。以此类推。

硬件加速模块将计算得出的最新人脸特征发送给处理器。

104:存储所述最新人脸特征,并开始新一帧图像的人脸跟踪。

本实施例中,处理器接收到最新人脸特征时,将所述最新人脸特征进行存储。在一些实施例中,所述终端可以预先设置一个特定的位置,专用于存储所述最新人脸特征。所述特定的位置可以是一个特定的文件夹,或者是一个以特定名称命名的文件夹。将每一次接收到的最新人脸特征均缓存于预先设置的特定的位置中,可以便于用户后续查找及管理。

在一些实施例中,为了提高所述终端的存储器的剩余存储容量,所述处理器还可以在每接收到最新人脸特征时,将历史人脸特征删除,或用当前接收到的最新人脸特征替换或者覆盖历史人脸特征。不管当前帧的人脸区域是不是最清晰的,都需要保存对应的人脸特征,因为,当下一帧到来时,需要使用已保存的人脸特征进行匹配。

总之,在整个过程中,我们有两个独立的存储空间需要不断地更新,一个是保存每帧人脸图像的人脸区域,另一个是保存最新人脸特征。即,在每一帧人脸图像到来时都需要更新该帧人脸图像的人脸区域,人脸区域的人脸特征在每一帧都要更新,且当前帧的人脸区域的人脸特征要与历史人脸特征进行加权处理计算得到最新人脸特征,因为下一帧要和最新人脸特征进行匹配。

下面结合图2和图3来说明本发明所述的方法。其中,图2是本发明实施例二提供的人脸跟踪方法的流程图。图3是在执行所述人脸跟踪方法的过程中处理器与硬件加速模块进行数据交互的示意图。根据不同的需求,图2所示流程图中的执行顺序可以改变,某些步骤可以省略。

201:处理器接收到存储图像的地址信息时,利用人脸检测算法检测当前帧图像中的人脸区域,将所述人脸区域发送给硬件加速模块。

202:硬件加速模块计算所述人脸区域的当前人脸特征,并判断当前帧图像是否为第一帧图像。

本实施例中,所述硬件加速模块是通过判断当前接收到人脸区域的时间是否超过预设时间段从而判断当前帧图像是否为第一帧图像。当当前接收到人脸区域的时间超过预设时间段,则所述硬件加速模块确定当前帧图像为第一帧图像。当当前接收到人脸区域的时间没有超过预设时间段,则所述硬件加速模块确定当前帧图像不为第一帧图像。即所述的第一帧图像是以所述人脸检测算法检测出的新人脸为判断标准的,不一定是之前没出现过的人脸,也可能是之前出现过但是跟踪过程中跟丢了的。

具体而言,将第1秒接收到的第一帧包含有人脸区域的图像确定为第一帧图像,而当在第4秒-7秒接收到的图像中没有检测出人脸区域,第8秒接收到的图像中检测出了人脸区域,所述硬件加速模块接收到人脸区域的时间超过预设时间段,例如,3秒,则认为第8秒接收到的图像为第一帧图像。即使第1秒接收到的图像中的人脸与第8秒接收到的图像中的人脸为同一个人,此时,任将第8秒接收到的图像也确定为第一帧图像。将超过预设时间段接收到的人脸区域对应的图像确定为第一帧图像,可以保证后续计算出的当前人脸特征与历史人脸特征之间的匹配度较高,便于提高人脸跟踪的效果。

当硬件加速模块确定当前帧图像为第一帧图像时,执行步骤203;否则,当硬件加速模块确定当前帧图像不为第一帧图像时,执行步骤204。

203:硬件加速模块将第一帧图像中的人脸区域的人脸特征作为最新人脸特征,同时将最新人脸特征发送给处理器。

204:硬件加速模块将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征。

205:处理器存储所述最新人脸特征,并开始新一帧图像的人脸跟踪。

步骤201同步骤101,步骤202同步骤102,步骤204同步骤103,步骤205同步骤104,在此不再详细描述。

需要说明的是,本发明所述的人脸跟踪方法可以适用于单个人脸的跟踪,也可以适用于多个人脸的跟踪。对于单个人脸的跟踪,只需要在第一帧利用人脸检测算法检测出人脸区域,并分别将该人脸区域和人脸特征保存,当下一帧图像到来时,根据保存的上一帧的人脸特征来判断需要跟踪的目标是否为同一个人,具体地是通过判断当前人脸特征与保存的上一帧的人脸特征之间的匹配程度是否大于预先设置的阈值来判断跟踪的目标是否为同一个人。当当前人脸特征与保存的上一帧的人脸特征之间的匹配程度大于预先设置的阈值,则认为跟踪的目标为同一个人,否则认为是不同人。对于多个人脸的跟踪,首先在第一帧图像中使用人脸检测算法检测出所有出现的人脸,并分别保存每个人脸区域及对应的人脸特征,当下一帧图像到来时,检测该帧图像中出现的人脸,然后使用多目标分类的算法将他们分开,最后可使用距离函数作为相似性度量将该帧人脸图像的人脸特征与上一帧的人脸特征进行匹配,从而达到跟踪的目的。对于上一帧图像与当前帧图像中出现的人脸数不同的情况时(例如,当前帧图像中出现单个人脸,而下一帧图像中出现的多个人脸;或者,当前帧图像中出现多个人脸,而下一帧图像中出现的单个人脸;或者,当前帧图像中出现多个人脸,而下一帧图像中也出现多个人脸,但下一帧图像中的人脸数与当前帧图像中的人脸数不同),则使用人脸检测算法检测出当前帧图像中所有出现的人脸,并分别保存每个人脸区域及对应的人脸特征,当下一帧图像到来时,检测该帧图像中出现的人脸,然后使用多目标分类的算法将他们分开,其实质为多个单一的人脸跟踪的过程,在此不详细描述。

本发明所述的人脸跟踪方法,相对于传统的人脸跟踪方法(检测人脸区域、计算及存储人脸特征)全都由处理器执行,本发明所述的处理器仅检测人脸区域、存储人脸特征,而计算人脸特征的过程由所述硬件加速模块处理,因而,本发明能缩短计算时间,提高算法的跟踪效率;本发明所述的处理器仅使用了人脸检测算法,从整体上来看,降低了算法复杂度。

上述图1-图3详细介绍了本发明的人脸跟踪方法,下面结合第4~5图,分别对实现所述人脸跟踪方法的软件系统的功能模块以及实现所述人脸跟踪方法的硬件系统架构进行介绍。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

实施例三

图4是本发明实施例提供三的人脸跟踪装置的功能模块图。

人脸跟踪装置40运行于所述终端1中。所述人脸跟踪装置40可以包括多个由程序代码段所组成的功能模块。所述人脸跟踪装置40中的各个程序段的程序代码可以存储于所述终端1的存储器中,并由所述终端1的至少一个处理器所执行,以执行对终端1获取到的人脸的跟踪。

本实施例中,所述人脸跟踪装置40根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:预处理单元400、检测单元401、存储单元402。所述之间通过至少一条通讯总线通讯连接。发明所称的模块是指一种能够被处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

检测单元401,用于利用人脸检测算法检测当前帧图像中的人脸区域。

本实施例中,利用人脸检测算法在检测到人脸区域时,定位面部关键特征点,在人脸图像中添加一个选择框表示裁剪出的人脸区域。一般而言,选择框的大小与人脸区域的大小接近,通常是与人脸区域的外轮廓相切,选择框的形状可以自定义,例如圆形、长方形、正方形、三角形等,该选择框又可以叫做人脸跟踪框,人脸移动时,人脸跟踪框也随之移动。

所述人脸检测算法可采用如下至少一种方法:基于特征的方法,基于聚类的方法,基于人工神经网络的方法或者基于支持向量机的方法。

需要理解的是,虽然人类可以很容易的从一幅图像中找出人脸,但要计算机自动地检测出人脸仍然存在一定的困难,其难点在于人脸属于非刚体模式,在运动过程中,其姿态、大小、形状都会发生变化,另外人脸本身可以存在多种形式的细节变化,如不同的肤色、脸型、表情等带来的变化,及其他外部因素的影响,如光照、人脸上的装饰物带来的遮挡等。

因而,在利用人脸检测算法检测当前帧图像中的人脸区域之前,本发明所述的人脸跟踪跟踪装置40还可以包括:预处理单元400,用于对当前帧图像进行预处理。

本实施例中,所述预处理单元400对当前帧图像进行预处理可以包括,但不限于,图像去噪,光照归一化,姿态校准等。例如,可以采用高斯滤波器对当前帧图像进行滤波,去除当前帧图像中的噪声;采用商图像技术除去高亮光照对当前帧图像的影响;采用正弦变换对当前帧图像中的人脸姿态进行校准。

在本实施例中,具备拍照或摄像功能的终端采集图像或视频流,并将所述图像或视频流中的每一帧图像存储于存储器中,同时将存储图像的地址信息发送给终端处理器。所述处理器根据所述存储图像的地址信息获取存储在其中的当前帧图像,并利用人脸检测算法检测当前帧图像中的人脸区域。待处理器检测出当前帧图像中的人脸区域时,将所述人脸区域进行存储。所述处理器将存储人脸区域的地址信息发送给终端硬件加速模块。所述终端硬件加速模块根据存储人脸区域的地址信息获取人脸区域。

在其他实施例中,待处理器检测出当前帧图像中的人脸区域时,将所述人脸区域进行存储,同时直接将所述人脸区域发送给终端硬件加速模块。

在本实施例中,所述处理器可以包括,但不限于,中央处理器(centralprocessingunit,cpu),数字信号处理器(digitalsignalprocessor,dsp)。

需要说明的是,硬件加速是指利用硬件模块来替代软件算法以充分利用硬件所固有的快速特性。本发明所采用的硬件加速模块为现有技术,在此不再赘述,任何能调用软件算法的硬件加速模块均可适用于此。本实施例中,可以采用fpga供应商所提供的开发工具从而实现硬件和软件之间的无缝切换。这些工具可以为总线逻辑和中断逻辑生成hdl代码,并可根据系统配置定制软件库及include文件。

硬件加速模块计算所述人脸区域的当前人脸特征。

本实施例中,硬件加速模块可以采用hog特征计算人脸特征。由于hog特征对行人外形多样貌、行人姿态多变性、影像光线干扰等辨识上的障碍,皆有着突破性的优异效果。因此,选用hog特征作为人脸特征对人脸进行匹配,具有较好的稳定性。在其他实施例中,本发明还可以采用其他方法计算人脸特征,例如,haar-like特征。

硬件加速模块将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征。

所述硬件加速模块将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征包括:将所述当前人脸特征与第一系数求积得到第一特征;将所述历史人脸特征与第二系数求积得到第二特征,所述第一系数与所第二系数之和为一;对所述第一特征第一系数与所述第二特征第二系数进行求和,得到所述最新人脸特征。

也就是说,所述硬件加速模块可以采用如下公式计算最新人脸特征:

最新人脸特征=当前人脸特征*x+历史帧人脸特征*(1-x),其中,x在0和1之间取值,x一般取经验值,例如0.5。

应当理解的是,所述当前人脸特征是以当前帧图像中的人脸区域计算得出的特征。所述历史人脸特征是相对最新人脸特征而言。

具体地,假如第1帧图像的人脸特征记为h1,获取第2帧图像的人脸区域并计算出人脸特征记为h2。此时,h2可以称之为当前人脸特征,相对于h2,则将h1称之为历史人脸特征,将h2与h1进行加权处理后得到的人脸特征称之为最新人脸特征g1。

接下来,获取第3帧图像的人脸区域并计算出人脸特征记为h3。此时,h3可以称之为当前人脸特征,相对于h3,则将g1称之为历史人脸特征,将h3与g1进行加权处理后得到的人脸特征称之为最新人脸特征g2。以此类推。

在另一实施例中,所述硬件加速模块计算所述人脸区域的当前人脸特征时,还判断当前帧图像是否为第一帧图像。

本实施例中,所述硬件加速模块是通过判断当前接收到人脸区域的时间是否超过预设时间段从而判断当前帧图像是否为第一帧图像。当当前接收到人脸区域的时间超过预设时间段,则所述硬件加速模块确定当前帧图像为第一帧图像。当当前接收到人脸区域的时间没有超过预设时间段,则所述硬件加速模块确定当前帧图像不为第一帧图像。即所述的第一帧图像是以所述人脸检测算法检测出的新人脸为判断标准的,不一定是之前没出现过的人脸,也可能是之前出现过但是跟踪过程中跟丢了的。

具体而言,将第1秒接收到的第一帧包含有人脸区域的图像确定为第一帧图像,而当在第4秒-7秒接收到的图像中没有检测出人脸区域,第8秒接收到的图像中检测出了人脸区域,所述硬件加速模块接收到人脸区域的时间超过预设时间段,例如,3秒,则认为第8秒接收到的图像为第一帧图像。即使第1秒接收到的图像中的人脸与第8秒接收到的图像中的人脸为同一个人,此时,任将第8秒接收到的图像也确定为第一帧图像。将超过预设时间段接收到的人脸区域对应的图像确定为第一帧图像,可以保证后续计算出的当前人脸特征与历史人脸特征之间的匹配度较高,便于提高人脸跟踪的效果。

当硬件加速模块确定当前帧图像为第一帧图像时,将第一帧图像中的人脸区域的人脸特征作为最新人脸特征,同时将最新人脸特征发送给处理器;否则,当硬件加速模块确定当前帧图像不为第一帧图像时,将所述当前人脸特征与历史人脸特征进行加权处理以得到最新人脸特征。

硬件加速模块将计算得出的最新人脸特征发送给处理器。

存储单元402,用于存储所述最新人脸特征。

本实施例中,处理器接收到最新人脸特征时,将所述最新人脸特征进行存储。在一些实施例中,所述终端可以预先设置一个特定的位置,专用于存储所述最新人脸特征。所述特定的位置可以是一个特定的文件夹,或者是一个以特定名称命名的文件夹。将每一次接收到的最新人脸特征均缓存于预先设置的特定的位置中,可以便于用户后续查找及管理。

在一些实施例中,为了提高所述终端的存储器的剩余存储容量,所述处理器还可以在每接收到最新人脸特征时,将历史人脸特征删除,或用当前接收到的最新人脸特征替换或者覆盖历史人脸特征。不管当前帧的人脸区域是不是最清晰的,都需要保存对应的人脸特征,因为,当下一帧到来时,需要使用已保存的人脸特征进行匹配。

总之,在整个过程中,我们有两个独立的存储空间需要不断地更新,一个是保存每帧人脸图像的人脸区域,另一个是保存最新人脸特征。即,在每一帧人脸图像到来时都需要更新该帧人脸图像的人脸区域,人脸区域的人脸特征在每一帧都要更新,且当前帧的人脸区域的人脸特征要与历史人脸特征进行加权处理计算得到最新人脸特征,因为下一帧要和最新人脸特征进行匹配。

需要说明的是,本发明所述的人脸跟踪装置40可以适用于单个人脸的跟踪,也可以适用于多个人脸的跟踪。对于单个人脸的跟踪,只需要在第一帧利用人脸检测算法检测出人脸区域,并分别将该人脸区域和人脸特征保存,当下一帧图像到来时,根据保存的上一帧的人脸特征来判断需要跟踪的目标是否为同一个人,具体地是通过判断当前人脸特征与保存的上一帧的人脸特征之间的匹配程度是否大于预先设置的阈值来判断跟踪的目标是否为同一个人。当当前人脸特征与保存的上一帧的人脸特征之间的匹配程度大于预先设置的阈值,则认为跟踪的目标为同一个人,否则认为是不同人。对于多个人脸的跟踪,首先在第一帧图像中使用人脸检测算法检测出所有出现的人脸,并分别保存每个人脸区域及对应的人脸特征,当下一帧图像到来时,检测该帧图像中出现的人脸,然后使用多目标分类的算法将他们分开,最后可使用距离函数作为相似性度量将该帧人脸图像的人脸特征与上一帧的人脸特征进行匹配,从而达到跟踪的目的。

对于上一帧图像与当前帧图像中出现的人脸数不同的情况时(例如,当前帧图像中出现单个人脸,而下一帧图像中出现的多个人脸;或者,当前帧图像中出现多个人脸,而下一帧图像中出现的单个人脸;或者,当前帧图像中出现多个人脸,而下一帧图像中也出现多个人脸,但下一帧图像中的人脸数与当前帧图像中的人脸数不同),则使用人脸检测算法检测出当前帧图像中所有出现的人脸,并分别保存每个人脸区域及对应的人脸特征,当下一帧图像到来时,检测该帧图像中出现的人脸,然后使用多目标分类的算法将他们分开,其实质为多个单一的人脸跟踪的过程,在此不详细描述。

本发明所述的人脸跟踪装置40,相对于传统的人脸跟踪装置(检测人脸区域、计算及存储人脸特征)全都由处理器执行,本发明所述的处理器仅检测人脸区域、存储人脸特征,而计算人脸特征的过程由所述硬件加速模块处理,因而,本发明能缩短计算时间,提高算法的跟踪效率;本发明所述的处理器仅使用了人脸检测算法,从整体上来看,降低了算法复杂度。

实施例四

图5为本发明实施例四提供的终端的示意图。所述终端1包括存储器20、处理器30、存储在所述存储器20中并可在所述处理器30上运行的计算机程序40,例如神经网络模型训练程序或人脸跟踪程序,以及硬件加速模块50。所述处理器30执行所述计算机程序40时实现上述人脸跟踪方法或人脸跟踪方法实施例中的步骤,例如图1所示的步骤101~104或图3所示的步骤201~205。或者,所述处理器30执行所述计算机程序40时实现上述装置实施例中各模块/单元的功能,例如图4中的单元400~402。

示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序40在所述终端1中的执行过程。例如,所述计算机程序40可以被分割成图4中的预处理单元400、检测单元401及加权单元402,各单元具体功能参见实施例三及其相应描述。

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

所称处理器30可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器30也可以是任何常规的处理器等,所述处理器30是所述终端1的控制中心,利用各种接口和线路连接整个终端1的各个部分。

所述存储器20可用于存储所述计算机程序40和/或模块/单元,所述处理器30通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述终端1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述终端1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

在本发明所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

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

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。终端权利要求中陈述的多个单元或终端也可以由同一个单元或终端通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1