一种人脸跟踪方法、装置和存储介质与流程

文档序号:16393617发布日期:2018-12-25 19:34阅读:146来源:国知局
一种人脸跟踪方法、装置和存储介质与流程

本发明涉及通信技术领域,具体涉及一种人脸跟踪方法、装置和存储介质。

背景技术

人脸跟踪,是对视频图像中人脸的轨迹进行追踪,并得到每个人在每一帧图像中的人脸坐标框位置和标识(id,identification)的一种技术。人脸跟踪在智能安防监控领域有着广泛的应用,通过准确的人脸跟踪,可以分析行人行为,比如打架、斗殴或盗窃等,进而使得安防人员可以及时作出反应。

现有的人脸跟踪,一般会采用检测方法检测每一个帧图像中人脸的位置框,然后,采用相邻帧目标关联算法对每一帧的人脸进行关联,进而得到人脸的人脸轨迹。

在对现有技术的研究和实践过程中,本发明的发明人发现,在现有方案中,当人脸被遮挡或者人脸姿态变化时,容易出现无法关联或关联错误,导致人脸轨迹中断,大大影响人脸跟踪效果。



技术实现要素:

本发明实施例提供一种人脸跟踪方法、装置和存储介质,可以增强人脸轨迹的连续性,改善人脸跟踪效果。

本发明实施例提供一种人脸跟踪方法,包括:

在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧;

检测当前帧中人脸的位置,以及获取当前帧中人脸的历史运动轨迹;

根据所述历史运动轨迹预测当前帧中人脸的位置,得到预测位置;

根据所述预测位置与检测的位置计算所述历史运动轨迹和当前帧中人脸的关联矩阵;

根据所述关联矩阵更新并保存历史运动轨迹,并返回执行从获取到的视频流数据中确定当前帧的步骤,直至人脸跟踪结束。

相应的,本发明实施例还提供一种人脸跟踪装置,包括:

确定单元,用于在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧;

检测单元,用于检测当前帧中人脸的位置;

获取单元,用于获取当前帧中人脸的历史运动轨迹;

预测单元,用于根据所述历史运动轨迹预测当前帧中人脸的位置,得到预测位置;

计算单元,用于根据所述预测位置与检测的位置计算所述历史运动轨迹和当前帧中人脸的关联矩阵;

更新单元,用于根据所述关联矩阵更新并保存历史运动轨迹,并触发确定单元执行从获取到的视频流数据中确定当前帧的操作,直至人脸跟踪结束。

可选的,在一些实施例中,所述预测单元包括运算子单元和预测子单元,如下:

所述运算子单元,可以用于采用预设算法计算所述历史运动轨迹上人脸的运动速度,得到轨迹速度;

所述预测子单元,用于根据所述轨迹速度、以及历史运动轨迹预测当前帧中人脸的位置,得到预测位置。

可选的,在一些实施例中,所述运算子单元单元,具体可以用于采用人脸配准算法计算所述历史运动轨迹上人脸的关键点信息,采用最小二乘法对所述关键点信息进行拟合,得到所述历史运动轨迹上人脸的运动速度向量,将所述运动速度向量作为轨迹速度。

可选的,在一些实施例中,所述运算子单元,具体可以用于采用人脸配准算法计算所述历史运动轨迹上人脸的关键点信息,采用最小二乘法对所述关键点信息进行拟合,得到所述历史运动轨迹上人脸的运动速度向量,采用人脸姿态估计算法计算所述历史运动轨迹上最后一帧图像中人脸的三轴角度,根据所述三轴角度对所述运动速度向量进行调整,得到轨迹速度。

可选的,在一些实施例中,所述运算子单元,具体可以用于根据所述三轴角度计算所述最后一帧图像中人脸的方向向量,计算所述运动速度向量和方向向量的加权平均值,得到轨迹速度。

可选的,在一些实施例中,所述预测子单元,具体可以用于获取所述历史人脸轨迹上最后一帧图像中人脸的位置,根据所述轨迹速度、以及所述最后一帧图像中人脸的位置预测当前帧中人脸的位置,得到预测位置。

可选的,在一些实施例中,所述预测子单元,具体可以用于计算当前帧与所述最后一帧之间的帧差,并计算所述帧差与所述轨迹速度之间的乘积,计算所述乘积与最后一帧图像中人脸的位置之间的和,得到预测位置。

可选的,在一些实施例中,所述获取单元,具体可以用于确定是否存在当前帧中人脸的历史运动轨迹,若存在,则读取所述当前帧中人脸的历史运动轨迹,若不存在,则生成所述当前帧中人脸的历史运动轨迹。

可选的,在一些实施例中,所述获取单元,具体可以用于从获取到的视频流数据中,获取以当前帧为起点,过去预设时间范围内的视频流数据段,检测所述视频流数据段中每一帧图像中人脸的位置,根据所述位置生成每一个人脸的运动轨迹,从生成的运动轨迹中选择当前帧中人脸的历史运动轨迹。

可选的,在一些实施例中,所述计算单元,具体可以用于计算所述预测位置与检测的位置之间的重合度,根据所述重合度计算所述历史运动轨迹和当前帧中人脸的关联矩阵。

可选的,在一些实施例中,所述计算单元,具体可以用于确定所述预测位置所在坐标框与检测的位置所在坐标框之间的交集面积、以及并集面积,根据所述交集面积和并集面积计算所述预测位置与检测的位置之间的重合度。

此外,本发明实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例所提供的任一种人脸跟踪方法中的步骤。

本发明实施例采用在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧,检测当前帧中人脸的位置,以及获取当前帧中人脸的历史运动轨迹,然后,根据该历史运动轨迹预测当前帧中人脸的位置,根据该预测的位置与检测的位置计算该历史运动轨迹和当前帧中人脸的关联矩阵,再然后,根据该关联矩阵更新并保存历史运动轨迹,并返回执行从获取到的视频流数据中确定当前帧的步骤,直至人脸跟踪结束;由于该方案可以根据历史运动轨迹与当前帧中人脸的关联矩阵,来对运动轨迹进行更新,因此,即便某些帧中的人脸被遮挡或者人脸姿态变化,运动轨迹也不会中断,也就是说,该方案可以增强人脸轨迹的连续性,进而改善人脸跟踪效果。

附图说明

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

图1a是本发明实施例提供的人脸跟踪方法的场景示意图;

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

图2a是本发明实施例提供的人脸跟踪方法的另一流程图;

图2b是本发明实施例提供的人脸跟踪方法中的运动轨迹示例图;

图3是本发明实施例提供的人脸跟踪装置的结构示意图;

图4是本发明实施例提供的网络设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种人脸跟踪方法、装置和存储介质。

其中,人脸跟踪装置可以集成在网络设备中,该网络设备可以是终端或服务器等设备。

例如,以该人脸跟踪装置集成在终端,如某监控室的监控设备中为例,参见图1a,当该监控设备接收到监控人员触发的人脸跟踪指令时,可以从采集到的视频流数据中确定当前帧,检测当前帧中人脸的位置,以及获取当前帧中人脸的历史运动轨迹,然后,根据该历史运动轨迹预测当前帧中人脸的位置,并根据该预测位置与之前检测的位置计算该历史运动轨迹和当前帧中人脸的关联矩阵,进而得到该历史运动轨迹与当前帧中人脸的关联关系,这样,即便当前帧中人脸的位置检测不准确或检测不出,也可以将“人脸运动轨迹”延伸至当前帧。

此后,监控设备可以根据该关联关系(即关联矩阵)更新历史运动轨迹,该更新后历史轨迹即为当前帧中人脸的运动轨迹,也是该当前帧的下一帧(或往后若干帧)的历史运动轨迹。当然,此时可以保存该更新后历史运动轨迹,这样,后续便可以直接获取该更新后历史运动轨迹来作为下一个“当前帧”的历史运动轨迹。在更新并保存了历史运动轨迹之后,可以返回执行从获取到的视频流数据中确定当前帧的步骤,并重复执行上述步骤,使得人脸运动轨迹可以得到不断延伸和更新,直至人脸跟踪结束。

以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。

实施例一、

本实施例将从人脸跟踪装置的角度进行描述,该人脸跟踪装置具体可以集成在网络设备中,该网络设备可以是终端或服务器等设备,其中,该终端可以包括监控设备、平板电脑、笔记本电脑或个人计算机(pc,personalcomputer)等。

一种人脸跟踪方法,包括:在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧,检测当前帧中人脸的位置,以及获取当前帧中人脸的历史运动轨迹,然后,根据该历史运动轨迹预测当前帧中人脸的位置,并根据该预测位置与检测的位置计算该历史运动轨迹和当前帧中人脸的关联矩阵,再然后,根据该关联矩阵更新并保存历史运动轨迹,并返回执行从获取到的视频流数据中确定当前帧的步骤,直至人脸跟踪结束。

如图1b所示,该人脸跟踪方法的具体流程可以如下:

101、在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧。

其中,该人脸跟踪指令可以由用户触发,也可以由其他设备(如其他终端或服务器等)进行触发,而该视频流数据既可以由该人脸跟踪装置自身进行采集,或者,也可以由其他设备,比如摄像设备或监控设备等进行采集后,提供该人脸跟踪装置。即例如,步骤101具体可以如下:

在接收用户触发的人脸跟踪指令时,采集视频流数据,并从采集到的视频流数据中确定当前帧。

或者,在接收用户触发的人脸跟踪指令时,接收摄像设备或监控设备发送的视频流数据,并从接收到的视频流数据中确定当前帧。

或者,在接收其他设备发送的人脸跟踪指令,采集视频流数据,并从采集到的视频流数据中确定当前帧。

或者,在接收其他设备发送的人脸跟踪指令时,接收摄像设备或监控设备发送的视频流数据,并从接收到的视频流数据中确定当前帧。

102、检测当前帧中人脸的位置,以及获取当前帧中人脸的历史运动轨迹。

其中,当前帧中人脸的历史运动轨迹指的是以当前帧为参考点,在过去预设时间范围内的视频流数据段中的人脸的运动轨迹。

在该步骤中,人脸位置的检测与历史运动轨迹的获取的执行顺序并没有特别限定,需说明的是,此处也可以不执行该检测人脸位置的步骤,而只需在确定“历史运动轨迹和当前帧中人脸的关联关系”(即步骤104)之前执行即可。在检测人脸位置时,可以根据需求灵活选取合适的算法,比如,可以采用人脸检测算法,如下:

采用人脸检测算法检测当前帧中人脸的位置。

其中,人脸检测算法具体可根据实际应用的需求而定,在此不再赘述。另外,需说明的是,该人脸的位置除了可以是帧中人脸的实际位置之外,一般的,为了后续计算方便,还可以是人脸的坐标框的位置,即步骤“采用人脸检测算法检测当前帧中人脸的位置”具体可以为:

采用人脸检测算法检测当前帧中人脸的坐标框位置。

为了描述方便,在本发明实施例中,将该检测到的当前帧中人脸的位置称为当前帧中人脸的检测位置(区别与预测位置,后续将对预测位置进行详细描述)。

可选的,获取当前帧中人脸的历史运动轨迹的方式也可以有多种,比如,若当前已经存在当前帧中人脸的历史运动轨迹,比如之前已经在预设存储空间中保存了该历史运动轨迹,则此时可以直接读取该历史运动轨迹,而若当前不存在该历史运动轨迹,则此时可以生成该历史运动轨迹,即步骤“获取当前帧中人脸的历史运动轨迹”具体可以包括:

确定是否存在当前帧中人脸的历史运动轨迹,若存在,则读取该当前帧中人脸的历史运动轨迹;若不存在,则生成该当前帧中人脸的历史运动轨迹,比如:

可以从获取到的视频流数据中,获取以当前帧为起点,过去预设时间范围内的视频流数据段,检测该视频流数据段中每一帧图像中人脸的位置,根据该位置生成每一个人脸的运动轨迹,从生成的运动轨迹中选择当前帧中人脸的历史运动轨迹。

其中,该预设时间范围可以根据实际应用的需求而定,比如,可以设置为“30秒”或“15帧”,等等。此外,需说明的是,若图像中存在多个人脸,则可以生成多条运动轨迹,使得每个人脸对应一条历史轨迹。

还需说明的是,一般的,在对某个视频流数据进行人脸跟踪的最初(当前帧为第一帧),都不存在历史运动轨迹,因此,此时也可以将“生成当前帧中人脸的历史运动轨迹”也看成“轨迹的初始化”。

103、根据该历史运动轨迹预测当前帧中人脸的位置,得到预测位置(即当前帧中人脸的预测位置);例如,具体可以如下:

(1)采用预设算法计算该历史运动轨迹上人脸的运动速度,得到轨迹速度。

其中,计算该轨迹速度的方式可以有多种,例如,可以采用人脸配准算法计算该历史运动轨迹上人脸的关键点信息,然后,采用最小二乘法对该关键点信息进行拟合,得到该历史运动轨迹上人脸的运动速度向量,将该运动速度向量作为轨迹速度。

其中,关键点信息可以包括人脸轮廓、眼睛、眉毛、嘴唇以及鼻子轮廓等特征点的信息。

可选的,为了提高计算的准确度,还可以根据该历史运动轨迹上最后一帧图像中人脸的三轴角度来对该运动速度向量进行调整,即步骤“采用预设算法计算该历史运动轨迹上人脸的运动速度,得到轨迹速度”也可以包括:

采用人脸配准算法计算该历史运动轨迹上人脸的关键点信息,采用最小二乘法对该关键点信息进行拟合,得到该历史运动轨迹上人脸的运动速度向量,采用人脸姿态估计算法计算该历史运动轨迹上最后一帧图像中人脸的三轴角度,根据该三轴角度对该运动速度向量进行调整,得到轨迹速度。

其中,调整的方式可以根据实际应用的需求进行设置,比如,可以根据该三轴角度计算该最后一帧图像中人脸的方向向量,然后,计算该运动速度向量和方向向量的加权平均值,得到轨迹速度,用公式表示即为:

v(a)=w·b+(1-w)·d·‖b‖2

其中,v(a)为轨迹速度,d为该最后一帧图像中人脸的方向向量,b为该历史运动轨迹上人脸的运动速度向量,而w则为权重,该权重可以根据实际应用的需求进行设置,比如,其取值范围可以为[0,1]。

(2)根据该轨迹速度、以及历史运动轨迹预测当前帧中人脸的位置,得到预测位置,例如,具体可以如下:

获取该历史人脸轨迹上最后一帧图像中人脸的位置,然后,根据该轨迹速度、以及该最后一帧图像中人脸的位置预测当前帧中人脸的位置,得到预测位置。

比如,具体可以计算当前帧与该最后一帧之间的帧差,并计算该帧差与该轨迹速度之间的乘积,然后,计算该乘积与最后一帧图像中人脸的位置之间的和,得到预测位置,用公式表示即为:

p′=p+v(a)·δ

p′为该当前帧中人脸的预测位置,p为最后一帧图像中人脸的位置,v(a)为轨迹速度,δ为当前帧与该最后一帧之间的帧差。

104、根据该预测位置与检测的位置计算该历史运动轨迹和当前帧中人脸的关联矩阵;例如,具体可以如下:

(1)计算该预测位置与检测的位置之间的重合度;

例如,具体可以确定该预测位置所在坐标框与检测的位置所在坐标框之间的交集面积、以及并集面积,根据该交集面积和并集面积计算该预测位置与检测的位置之间的重合度。

比如,具体可以将该交集面积除以该并集面积,即可得到该预测位置与检测的位置之间的重合度。

(2)根据该重合度计算该历史运动轨迹和当前帧中人脸的关联矩阵。

例如,可以根据计算得到的重合度绘制二分图,然后,使用二分图最佳匹配算法计算关联矩阵,等等。

其中,该关联矩阵即可以反映该历史运动轨迹与该当前帧中人脸的关联关系。

105、根据该关联矩阵更新并保存历史运动轨迹,并返回执行从获取到的视频流数据中确定当前帧的步骤(即返回执行步骤101中的“从获取到的视频流数据中确定当前帧”的步骤),直至人脸跟踪结束。

例如,若当前帧为第三帧,则在根据关联矩阵更新并保存历史运动轨迹后,将当前帧更新为第四帧,然后,继续执行步骤102~105,再然后,再当前帧更新为第五帧,并继续执行步骤102~105,以此类推,直至接收到人脸跟踪的结束指令为止。

由上可知,本实施例采用在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧,检测当前帧中人脸的位置,以及获取当前帧中人脸的历史运动轨迹,然后,根据该历史运动轨迹预测当前帧中人脸的位置,根据该预测的位置与检测的位置计算该历史运动轨迹和当前帧中人脸的关联矩阵,再然后,根据该关联矩阵更新并保存历史运动轨迹,并返回执行从获取到的视频流数据中确定当前帧的步骤,直至人脸跟踪结束;由于该方案可以根据历史运动轨迹与当前帧中人脸的关联矩阵,来对运动轨迹进行更新,因此,即便某些帧中的人脸被遮挡或者人脸姿态变化,运动轨迹也不会中断,也就是说,该方案可以增强人脸轨迹的连续性,进而改善人脸跟踪效果。

实施例二、

根据前面实施例所描述的方法,以下将举例作进一步详细说明。

在本实施例中,将以该人脸跟踪装置具体集成在网络设备中为例进行说明。

如图2a所示,一种人脸跟踪方法,具体流程可以如下:

201、网络设备在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧。

其中,该人脸跟踪指令可以由用户触发,也可以由其他设备如其他终端或服务器等进行触发,而该视频流数据既可以由该人脸跟踪装置自身进行采集,或者,也可以由其他设备,比如摄像设备或监控设备等进行采集后,提供该人脸跟踪装置。

202、网络设备检测当前帧中人脸的位置。

例如,网络设备具体可以采用人脸检测算法检测当前帧中人脸的位置,比如,参见图2b,具体可以采用人脸检测算法检测当前帧中人脸的坐标框位置,其中,图2b中的白色方框即为当前帧中人脸的坐标框位置。

其中,人脸检测算法具体可根据实际应用的需求而定,在此不再赘述。

需说明的是,网络设备检测人脸位置的操作,只需在“计算该预测位置与检测的位置之间的重合度”(即步骤207)之前执行即可。也就是说,步骤202和步骤“203~206”的执行可以不分先后,步骤202可以在步骤201之后,步骤207之前的任意时刻执行,可以与步骤“203~206”中任意一步骤先后执行,也可以与步骤“203~206”中任意一步骤并列执行,具体可根据实际应用的需求而定,在此不作赘述。

203、网络设备确定是否存在当前帧中人脸的历史运动轨迹,若存在,则读取该当前帧中人脸的历史运动轨迹,然后执行步骤205;若不存在,则执行步骤204。

例如,如图2b所示,以当前帧中存在人脸a、人脸b、人脸c、人脸d和人脸e为例,此时,可以分别确定预设的存储空间(可以是本地存储空间,也可以是云端存储空间)中是否存在人脸a、人脸b、人脸c、人脸d和人脸e的历史运动轨迹,对于存在有历史运动轨迹的人脸,可以分别从该存储空间中读取对其历史运动轨迹进行读取,而对于不存在有历史运动轨迹的人脸,则执行步骤204,以生成其对应的历史运动轨迹。

比如,若人脸a、人脸b、人脸d和人脸e在该预设存储空间均存在有相应的历史运动轨迹,而人脸c在该预设存储空间并不存在相应的历史运动轨迹,则此时,可以分别从该存储空间中读取人脸a、人脸b、人脸d和人脸e的历史运动轨迹,而人脸c则需要通过执行步骤204来生成其对应的历史运动轨迹。

204、网络设备生成该当前帧中人脸的历史运动轨迹,然后执行步骤205。

例如,网络设备可以从获取到的视频流数据中,获取以当前帧为起点(即参考点),过去预设时间范围内的视频流数据段,然后,检测该视频流数据段中每一帧图像中人脸的位置,并根据该位置生成每一个人脸的运动轨迹,比如,参见图2b,可以生成人脸a、人脸b、人脸c、人脸d和人脸e等多个人脸的运动轨迹(图2b中白色曲线即为各个人脸的运动轨迹),再然后,便可以从生成的运动轨迹中选择当前帧中人脸的历史运动轨迹,比如选择所需要的人脸c的历史运动轨迹,等等。

其中,该预设时间范围可以根据实际应用的需求而定,比如,可以设置为“30秒”或“15帧”,等等。

可选的,为了提出处理效率,对于已经存在历史运动轨迹的人脸也可以不生成其运动轨迹,而只需对不存在历史运动轨迹的人脸的历史运动轨迹进行生成即可。也就是说,该网络设备也可以确定该当前帧中需要生成历史运动轨迹的人脸(比如人脸c),然后,检测该需要生成历史运动轨迹的人脸在获取到的视频流数据段的每一帧图像中的位置,再然后,直接根据该位置生成该需要生成历史运动轨迹的人脸的历史运动轨迹,这样,就无需只需执行“从生成的运动轨迹中选择当前帧中人脸的历史运动轨迹”的步骤。

205、网络设备采用预设算法计算该历史运动轨迹上人脸的运动速度,得到轨迹速度。

其中,计算该轨迹速度的方式可以有多种,例如,可以采用人脸配准算法计算该历史运动轨迹上人脸的关键点信息,然后,采用最小二乘法对该关键点信息进行拟合,得到该历史运动轨迹上人脸的运动速度向量,将该运动速度向量作为轨迹速度。

其中,关键点信息可以包括人脸轮廓、眼睛、眉毛、嘴唇以及鼻子轮廓等特征点的信息。

可选的,为了提高计算的准确度,还可以根据该历史运动轨迹上最后一帧图像中人脸的三轴角度来对该运动速度向量进行调整,即步骤205也可以如下:

网络设备采用人脸配准算法计算该历史运动轨迹上人脸的关键点信息,采用最小二乘法对该关键点信息进行拟合,得到该历史运动轨迹上人脸的运动速度向量,采用人脸姿态估计算法计算该历史运动轨迹上最后一帧图像中人脸的三轴角度(α,β,γ),根据该三轴角度(α,β,γ)对该运动速度向量进行调整,得到轨迹速度。

其中,调整的方式可以根据实际应用的需求进行设置,比如,可以根据该三轴角度(α,β,γ)计算该最后一帧图像中人脸的方向向量,然后,计算该运动速度向量和方向向量的加权平均值,得到轨迹速度,用公式表示即为:

v(a)=w·b+(1-w)·d·‖b‖2

其中,v(a)为轨迹速度,d为该最后一帧图像中人脸的方向向量,b为该历史运动轨迹上人脸的运动速度向量,而w则为权重,该权重可以根据实际应用的需求进行设置,比如,其取值范围可以为[0,1]。

比如,以计算人脸a的轨迹速度为例,则此时,可以采用人脸配准算法计算人脸a的历史运动轨迹上人脸的关键点信息,然后,采用最小二乘法对该关键点信息进行拟合,得到该历史运动轨迹上人脸a的运动速度向量b,此后,可以采用人脸姿态估计算法计算最后一帧图像中人脸a的三轴角度(α,β,γ),并根据该三轴角度(α,β,γ)计算该最后一帧图像中人脸a的方向向量d,再然后,计算该运动速度向量b方向和向量d得到轨迹速度进行加权平均运算,便可以得到人脸a的轨迹速度。采用该方式,可以得到该当前帧中其他人脸的轨迹速度,在此不作赘述。

206、网络设备根据该轨迹速度、以及历史运动轨迹预测当前帧中人脸的位置,得到预测位置,例如,具体可以如下:

网络设备获取该历史人脸轨迹上最后一帧图像中人脸的位置,然后,根据该轨迹速度、以及该最后一帧图像中人脸的位置预测当前帧中人脸的位置,得到预测位置。

比如,具体可以计算当前帧与该最后一帧之间的帧差,并计算该帧差与该轨迹速度之间的乘积,然后,计算该乘积与最后一帧图像中人脸的位置之间的和,得到预测位置,用公式表示即为:

p′=p+v(a)·δ

p′为该当前帧中人脸的预测位置,p为最后一帧图像中人脸的位置,v(a)为轨迹速度,δ为当前帧与该最后一帧之间的帧差。

例如,还是以人脸a为例,则此时,网络设备可以获取最后一帧图像中人脸a的位置,然后,计算当前帧与该最后一帧之间的帧差,并计算该帧差与人脸a的轨迹速度(步骤205中计算得到)之间的乘积,以及计算该乘积与最后一帧图像中人脸a的位置之间的和,便可得到当前帧中人脸a的预测位置。

207、网络设备计算步骤206中得到的预测位置与步骤202中得到的检测的位置之间的重合度;

例如,网络设备具体可以确定该预测位置所在坐标框与检测的位置所在坐标框之间的交集面积、以及并集面积,根据该交集面积和并集面积计算该预测位置与检测的位置之间的重合度,比如,可以将该交集面积除以该并集面积,即可得到该预测位置与检测的位置之间的重合度,等等。

譬如,还是以人脸a为例,在得到人脸a的预测位置和检测位置(即检测的位置)之后,可以确定人脸a的预测位置所在坐标框与人脸a的检测位置所在坐标框之间的交集面积、以及并集面积,然后,将该交集面积除以该并集面积,即可得到该预测位置与检测的位置之间的重合度。

同理,采用上述方式,也可以得到其他人脸的预测位置与检测的位置之间的重合度。

208、网络设备根据该重合度计算该历史运动轨迹和当前帧中人脸的关联矩阵。

例如,网络设备可以根据计算得到的重合度绘制二分图,然后,使用二分图最佳匹配算法计算关联矩阵,等等。

其中,该关联矩阵即可以反映该历史运动轨迹与该当前帧中人脸的关联关系,比如,所计算出的人脸a的关联矩阵即可反映人脸a的历史运动轨迹与该当前帧中人脸a的关联关系,所计算出的人脸b的关联矩阵即可反映人脸b的历史运动轨迹与该当前帧中人脸b的关联关系,以此类推,等等。

209、网络设备根据该关联矩阵更新并保存历史运动轨迹,并返回执行从获取到的视频流数据中确定当前帧的步骤(即返回执行步骤201中的“从获取到的视频流数据中确定当前帧”的步骤),直至人脸跟踪结束。

例如,若当前帧为第三帧,则在根据关联矩阵更新并保存历史运动轨迹后,将当前帧更新为第四帧,然后,继续执行步骤202~209,再然后,再当前帧更新为第五帧,并继续执行步骤202~209,以此类推,直至接收到人脸跟踪的结束指令为止。

其中,该历史运动轨迹可以保存在预设存储空间中(参见步骤203),该存储空间可以是本地存储空间,也可以是云端存储空间,这样,对于已经保存有历史运动轨迹的人脸,后续就可以直接从该存储空间中直接读取对应的历史运动轨迹,而无需生成,详见步骤203,在此不作赘述。

由上可知,本实施例采用在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧,检测当前帧中人脸的位置,以及获取当前帧中人脸的历史运动轨迹,然后,根据该历史运动轨迹预测当前帧中人脸的位置,根据该预测的位置与检测的位置计算该历史运动轨迹和当前帧中人脸的关联矩阵,再然后,根据该关联矩阵更新并保存历史运动轨迹,并返回执行从获取到的视频流数据中确定当前帧的步骤,直至人脸跟踪结束;由于该方案可以根据历史运动轨迹与当前帧中人脸的关联矩阵,来对运动轨迹进行更新,因此,即便某些帧中的人脸被遮挡或者人脸姿态变化,运动轨迹也不会中断,也就是说,该方案可以增强人脸轨迹的连续性,进而改善人脸跟踪效果。

实施例三、

为了更好地实施以上方法,本发明实施例还提供一种人脸跟踪装置,其中,该人脸跟踪装置具体可以集成在网络设备中,该网络设备可以是终端或服务器等设备。

例如,如图3所示,该人脸跟踪装置可以包括确定单元301、检测单元302、获取单元303、预测单元304、计算单元305和更新单元306,如下:

(1)确定单元301;

确定单元301,用于在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧。

其中,该人脸跟踪指令可以由用户触发,也可以由其他设备(如其他终端或服务器等)进行触发,而该视频流数据既可以由该人脸跟踪装置自身进行采集,或者,也可以由其他设备,比如摄像设备或监控设备等进行采集后,提供该人脸跟踪装置,在此不作赘述。

(2)检测单元302;

检测单元302,用于检测当前帧中人脸的位置。

在检测人脸位置时,可以根据需求灵活选取合适的算法,比如,可以采用人脸检测算法,即:

检测单元302,具体可以用于采用人脸检测算法检测当前帧中人脸的位置,比如检测当前帧中人脸的坐标框位置等。

其中,人脸检测算法具体可根据实际应用的需求而定,在此不再赘述。

(3)获取单元303;

获取单元303,用于获取当前帧中人脸的历史运动轨迹。

其中,获取单元303获取当前帧中人脸的历史运动轨迹的方式也可以有多种,比如,若当前已经存在当前帧中人脸的历史运动轨迹,则此时可以直接读取该历史运动轨迹,而若当前不存在该历史运动轨迹,则此时可以生成该历史运动轨迹,即:

该获取单元303,具体可以用于确定是否存在当前帧中人脸的历史运动轨迹,若存在,则读取该当前帧中人脸的历史运动轨迹,若不存在,则生成该当前帧中人脸的历史运动轨迹。

比如,该获取单元303,具体用于从获取到的视频流数据中获取以当前帧为起点(即参考点),过去预设时间范围内的视频流数据段,然后,检测该视频流数据段中每一帧图像中人脸的位置,并根据该位置生成每一个人脸的运动轨迹,再然后,从生成的运动轨迹中选择当前帧中人脸的历史运动轨迹。

其中,该预设时间范围可以根据实际应用的需求而定,比如,可以设置为“30秒”或“15帧”,等等。此外,需说明的是,若图像中存在多个人脸,则获取单元303可以生成多条运动轨迹,使得每个人脸对应一条历史轨迹。

(4)预测单元304;

预测单元304,用于根据该历史运动轨迹预测当前帧中人脸的位置,得到预测位置。

例如,该预测单元304可以包括运算子单元和预测子单元,如下:

运算子单元,可以用于采用预设算法计算该历史运动轨迹上人脸的运动速度,得到轨迹速度。

预测子单元,可以用于根据该轨迹速度、以及历史运动轨迹预测当前帧中人脸的位置,得到预测位置。

其中,计算该轨迹速度的方式可以有多种,例如:

该运算子单元,具体可以用于采用人脸配准算法计算该历史运动轨迹上人脸的关键点信息,采用最小二乘法对该关键点信息进行拟合,得到该历史运动轨迹上人脸的运动速度向量,将该运动速度向量作为轨迹速度。

其中,关键点信息可以包括人脸轮廓、眼睛、眉毛、嘴唇以及鼻子轮廓等特征点的信息。

可选的,为了提高计算的准确度,还可以根据该历史运动轨迹上最后一帧图像中人脸的三轴角度来对该运动速度向量进行调整,即:

该运算子单元,具体可以用于采用人脸配准算法计算该历史运动轨迹上人脸的关键点信息,采用最小二乘法对该关键点信息进行拟合,得到该历史运动轨迹上人脸的运动速度向量,采用人脸姿态估计算法计算该历史运动轨迹上最后一帧图像中人脸的三轴角度,根据该三轴角度对该运动速度向量进行调整,得到轨迹速度。

其中,调整的方式可以根据实际应用的需求进行设置,比如:

该计算单元305,具体用于根据该三轴角度计算该最后一帧图像中人脸的方向向量,计算该运动速度向量和方向向量的加权平均值,得到轨迹速度;用公式表示即为:

v(a)=w·b+(1-w)·d·‖b‖2

其中,v(a)为轨迹速度,d为该最后一帧图像中人脸的方向向量,b为该历史运动轨迹上人脸的运动速度向量,而w则为权重,该权重可以根据实际应用的需求进行设置,比如,其取值范围可以为[0,1]。

可选的,得到预测位置的方式也可以有多种,例如:

预测子单元,具体可以用于获取该历史人脸轨迹上最后一帧图像中人脸的位置,根据该轨迹速度、以及该最后一帧图像中人脸的位置预测当前帧中人脸的位置,得到预测位置。

比如,该预测子单元,具体可以用于计算当前帧与该最后一帧之间的帧差,并计算该帧差与该轨迹速度之间的乘积,计算该乘积与最后一帧图像中人脸的位置之间的和,得到预测位置;用公式表示即为:

p′=p+v(a)·δ

p′为该当前帧中人脸的预测位置,p为最后一帧图像中人脸的位置,v(a)为轨迹速度,δ为当前帧与该最后一帧之间的帧差。

(5)计算单元305;

计算单元305,用于根据预测单元304得到的预测位置与检测单元302检测的位置计算该历史运动轨迹和当前帧中人脸的关联矩阵。

例如,该计算单元305,具体可以用于计算该预测位置与检测的位置之间的重合度,根据该重合度计算该历史运动轨迹和当前帧中人脸的关联矩阵。

比如,该计算单元305,具体可以用于确定该预测位置所在坐标框与检测的位置所在坐标框之间的交集面积、以及并集面积,根据该交集面积和并集面积计算该预测位置与检测的位置之间的重合度。

譬如,可以将该交集面积除以该并集面积,即可得到该预测位置与检测的位置之间的重合度,等等;此后,计算单元305可以根据计算得到的重合度绘制二分图,然后,使用二分图最佳匹配算法计算关联矩阵,进而得到该历史运动轨迹与该当前帧中人脸的关联关系。

(6)更新单元306;

更新单元306,用于根据该关联矩阵更新并保存历史运动轨迹,并触发确定单元301执行从获取到的视频流数据中确定当前帧的操作,直至人脸跟踪结束。

具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

由上可知,本实施例的人脸跟踪装置在接收到人脸跟踪指令时,可以由确定单元301从获取到的视频流数据中确定当前帧,然后由检测单元302检测当前帧中人脸的位置,以及由获取单元303获取当前帧中人脸的历史运动轨迹,再然后,由预测单元304根据该历史运动轨迹预测当前帧中人脸的位置,并由计算单元305根据该预测的位置与检测的位置计算该历史运动轨迹和当前帧中人脸的关联矩阵,此后,再由更新单元306根据该关联矩阵更新并保存历史运动轨迹,并触发确定单元301执行从获取到的视频流数据中确定当前帧的操作,使得人脸运动轨迹可以不断得到更新,直至人脸跟踪结束;由于该方案可以根据历史运动轨迹与当前帧中人脸的关联矩阵,来对运动轨迹进行更新,因此,即便某些帧中的人脸被遮挡或者人脸姿态变化,运动轨迹也不会中断,也就是说,该方案可以增强人脸轨迹的连续性,进而改善人脸跟踪效果。

实施例四、

本发明实施例还提供一种网络设备,具体可以为终端,也可以为服务器,该网络设备可以集成本发明实施例所提供的任一种人脸跟踪装置。

例如,如图4所示,其示出了本发明实施例所涉及的网络设备的结构示意图,具体来讲:

该网络设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的网络设备结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器401是该网络设备的控制中心,利用各种接口和线路连接整个网络设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行网络设备的各种功能和处理数据,从而对网络设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。

存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据网络设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。

网络设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该网络设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,网络设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,网络设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:

在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧,检测当前帧中人脸的位置,以及获取当前帧中人脸的历史运动轨迹,然后,根据该历史运动轨迹预测当前帧中人脸的位置,并根据该预测位置与检测的位置计算该历史运动轨迹和当前帧中人脸的关联矩阵,再然后,根据该关联矩阵更新并保存历史运动轨迹,并返回执行从获取到的视频流数据中确定当前帧的步骤,直至人脸跟踪结束。

例如,具体可以用预设算法计算该历史运动轨迹上人脸的运动速度,得到轨迹速度,然后,根据该轨迹速度、以及历史运动轨迹预测当前帧中人脸的位置,得到预测位置。

比如,可以采用人脸配准算法计算该历史运动轨迹上人脸的关键点信息,然后,采用最小二乘法对该关键点信息进行拟合,得到该历史运动轨迹上人脸的运动速度向量,将该运动速度向量作为轨迹速度;或者,也可以进一步采用人脸姿态估计算法计算该历史运动轨迹上最后一帧图像中人脸的三轴角度,然后根据该三轴角度对该运动速度向量进行调整,再将调整后运动速度向量作为轨迹速度,等等。

在得到轨迹速度后,便可以获取该历史人脸轨迹上最后一帧图像中人脸的位置,根据该轨迹速度、以及该最后一帧图像中人脸的位置预测当前帧中人脸的位置,得到预测位置。

以上各个操作的具体实施可参见前面的实施例,在此不作赘述。

由上可知,本实施例的网络设备采用在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧,检测当前帧中人脸的位置,以及获取当前帧中人脸的历史运动轨迹,然后,根据该历史运动轨迹预测当前帧中人脸的位置,根据该预测的位置与检测的位置计算该历史运动轨迹和当前帧中人脸的关联矩阵,再然后,根据该关联矩阵更新并保存历史运动轨迹,并返回执行从获取到的视频流数据中确定当前帧的步骤,直至人脸跟踪结束;由于该方案可以根据历史运动轨迹与当前帧中人脸的关联矩阵,来对运动轨迹进行更新,因此,即便某些帧中的人脸被遮挡或者人脸姿态变化,运动轨迹也不会中断,也就是说,该方案可以增强人脸轨迹的连续性,进而改善人脸跟踪效果。

实施例五、

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种人脸跟踪方法中的步骤。例如,该指令可以执行如下步骤:

在接收到人脸跟踪指令时,从获取到的视频流数据中确定当前帧,检测当前帧中人脸的位置,以及获取当前帧中人脸的历史运动轨迹,然后,根据该历史运动轨迹预测当前帧中人脸的位置,并根据该预测位置与检测的位置计算该历史运动轨迹和当前帧中人脸的关联矩阵,再然后,根据该关联矩阵更新并保存历史运动轨迹,并返回执行从获取到的视频流数据中确定当前帧的步骤,直至人脸跟踪结束。

例如,具体可以用预设算法计算该历史运动轨迹上人脸的运动速度,得到轨迹速度,然后,根据该轨迹速度、以及历史运动轨迹预测当前帧中人脸的位置,得到预测位置。

比如,可以采用人脸配准算法计算该历史运动轨迹上人脸的关键点信息,然后,采用最小二乘法对该关键点信息进行拟合,得到该历史运动轨迹上人脸的运动速度向量,将该运动速度向量作为轨迹速度;或者,也可以进一步采用人脸姿态估计算法计算该历史运动轨迹上最后一帧图像中人脸的三轴角度,然后根据该三轴角度对该运动速度向量进行调整,再将调整后运动速度向量作为轨迹速度,等等。

在得到轨迹速度后,便可以获取该历史人脸轨迹上最后一帧图像中人脸的位置,根据该轨迹速度、以及该最后一帧图像中人脸的位置预测当前帧中人脸的位置,得到预测位置,即该指令还可以执行如下步骤:

获取该历史人脸轨迹上最后一帧图像中人脸的位置,然后,根据该轨迹速度、以及该最后一帧图像中人脸的位置预测当前帧中人脸的位置,得到预测位置。

比如,具体可以计算当前帧与该最后一帧之间的帧差,并计算该帧差与该轨迹速度之间的乘积,然后,计算该乘积与最后一帧图像中人脸的位置之间的和,得到预测位置。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种人脸跟踪方法中的步骤,因此,可以实现本发明实施例所提供的任一种人脸跟踪方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本发明实施例所提供的一种人脸跟踪方法、装置和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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