虚拟角色图像的构建方法及装置、存储介质与流程

文档序号:16671519发布日期:2019-01-18 23:36阅读:257来源:国知局
虚拟角色图像的构建方法及装置、存储介质与流程

本申请涉及计算机图像处理技术领域,尤其是涉及一种虚拟角色图像的构建方法、一种虚拟角色图像的构建装置和一种存储介质。



背景技术:

计算机技术的发展极大地带动了识别技术的发展,而模式识别、计算机视觉等领域相关技术地引入,也大大提高了识别系统的智能化,尤其是人脸检测识别技术,在智能视频监控系统中得到了大量应用。利用人脸识别技术,构建与真实人脸相似的虚拟角色,可将其应用到各种娱乐互动中,例如,视频通话、直播、动画生成等方面。



技术实现要素:

第一方面,本申请实例提供了一种虚拟角色图像的构建方法,包括:

对至少两帧图像分别进行人脸检测,得到所述至少两帧图像各自对应的人脸图像,并对所述人脸图像进行特征点检测,得到特征点的位置数据;

针对所述至少两帧图像中除第一帧图像之外的每一帧图像,执行如下处理:

将第一人脸图像中特征点的位置数据与第一虚拟角色图像中相应面部特征点的位置数据进行映射,得到所述第一人脸图像对应的特征点映射数据;其中,所述第一人脸图像为该帧图像的上一帧图像所对应的人脸图像,所述第一虚拟角色图像为与该帧图像的上一帧图像所对应的虚拟角色图像;

根据第二人脸图像中特征点的位置数据、所述第一人脸图像中特征点的位置数据以及所述第一人脸图像对应的特征点映射数据,确定所述第二虚拟角色图像中的面部特征点相对于所述第一虚拟角色图像中相应面部特征点的位置变化;其中,所述第二人脸图像为该帧图像所对应的人脸图像,所述第二虚拟角色图像为该帧图像所对应的虚拟角色图像;

根据所述面部特征点的位置变化,利用形变传播方法确定所述第二虚拟角色图像中多个肩部采样点相对于所述第一虚拟角色图像中相应肩部采样点的位置变化;

根据所述面部特征点的位置变化和所述肩部采样点的位置变化,确定所述第二虚拟角色图像。

第二方面,本申请实例提供了一种虚拟角色图像的构建装置,包括:

检测模块,对至少两帧图像分别进行人脸检测,得到所述至少两帧图像各自对应的人脸图像,并对所述人脸图像进行特征点检测,得到特征点的位置数据;

处理模块,包括针对所述至少两帧图像中除第一帧图像之外的每一帧图像执行相应处理的映射单元、第一确定单元、第二确定单元和第三确定单元,其中:

所述映射单元,将第一人脸图像中特征点的位置数据与第一虚拟角色图像中相应面部特征点的位置数据进行映射,得到所述第一人脸图像对应的特征点映射数据;其中,所述第一人脸图像为该帧图像的上一帧图像所对应的人脸图像,所述第一虚拟角色图像为与该帧图像的上一帧图像所对应的虚拟角色图像;

所述第一确定单元,根据第二人脸图像中特征点的位置数据、所述第一人脸图像中特征点的位置数据以及所述第一人脸图像对应的特征点映射数据,确定所述第二虚拟角色图像中的面部特征点相对于所述第一虚拟角色图像中相应面部特征点的位置变化;其中,所述第二人脸图像为该帧图像所对应的人脸图像,所述第二虚拟角色图像为该帧图像所对应的虚拟角色图像;

所述第二确定单元,根据所述面部特征点的位置变化,利用形变传播方法确定所述第二虚拟角色图像中多个肩部采样点相对于所述第一虚拟角色图像中相应肩部采样点的位置变化;

所述第三确定单元,根据所述面部特征点的位置变化和所述肩部采样点的位置变化,确定所述第二虚拟角色图像。

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

基于上述技术方案,首先获取第一虚拟角色图像和第一人脸图像之间的特征点映射数据,以及第二人脸图像中特征点相对于第一人脸图像中相应特征点的位置变化,获取第二虚拟角色图像中面部特征点相对于第一虚拟角色图像中面部特征点的位置变化,并依据第二虚拟角色图像中面部特征点相对于第一虚拟角色图像中面部特征点的位置变化,进行形变传播至第二虚拟角色图像中的多个肩部采样点,进而根据面部特征点的位置变化和肩部采样点的位置变化确定第二虚拟角色图像。利用本申请提供的虚拟角色图像的构建方法,不只是关心虚拟角色面部的变化,而且兼顾到了虚拟角色的肩部,使得虚拟角色的动作更加精细。

附图说明

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

图1是本申请一实例中虚拟角色图像的构建方法的流程示意图;

图2a是本申请一实例中第一帧图像对应的人脸图像的线条图;

图2b是本申请一实例中初始的虚拟角色图像的线条图;

图3a是本申请一实例中第二帧图像对应的人脸图像的线条图;

图3b是图3a对应的虚拟角色图像的线条图;

图4a是本申请一实例中第三帧图像对应的人脸图像的线条图;

图4b是图4a对应的虚拟角色图像的线条图;

图5是本申请一实例中生成的图像金字塔的示意图;

图6是本申请一实例中虚拟角色图像的构建装置的结构框图;

图7是本申请一实例中计算机设备的结构框图。

具体实施方式

本申请提出了一种虚拟角色图像的构建方法,如图1所示,该方法包括:

s11、对至少两帧图像分别进行人脸检测,得到所述至少两帧图像各自对应的人脸图像;

所谓的人脸检测,是对于给定的图像,采用一定的策略对其进行搜索,以确定其中是否包含人脸,如果包含人脸的话,确定人脸的大小、位置等信息,不需要对用户的身份进行确认。这里,即便给定的图像中有多张人脸,也只选取其中一张作为该图像对应的人脸图像,也就是说,针对一帧图像,通过人脸检测,会得到一张人脸图像。在实际应用时,对于人脸检测的具体方法本申请实例不做限定,可以采用任意一种具体方法进行人脸检测。

s12、对所述人脸图像进行特征点检测,得到特征点的位置数据;

所谓的特征点,是指人脸的轮廓、眼睛、鼻子、嘴巴、眉毛等关键部位。在实际应用时可以采用多个特征点来表征人脸的轮廓,多个特征点表征眼睛的上眼睑和下眼睑的轮廓等,多个特征点来表征嘴巴的形状(包括上嘴唇的形状、下嘴唇的形状)等,多个特征点来表征眉毛的形状、粗细等,多个特征点来表征鼻子的大小、形状等。此外,在应用时可以对各个特征点进行标号,例如,采用1~10号的特征点来表征嘴巴,采用11~20号的特征点来表征眼睛,采用21~30号的特征点来表征鼻子,采用31~40号的特征点来表征眉毛,采用41~50号的特征点来表征人脸轮廓。特征点的个数越多,获得的人脸图像的面部特征越精细,当然,特征点的个数越多,计算的复杂度也越高,因此特征点的个数可以在兼顾精细度和计算复杂度的基础上进行选择。

所谓的位置数据是各个特征点在当前人脸图像下的坐标数据,为了计算方便,位置数据可以用向量的形式表示,例如,将表征一张人脸图像的所有特征点的坐标数据按照标号顺序依次排列形成一个一行多列的向量,该向量可以称之为状态向量,以表征该张人脸图像此时的表情状态。

s13、针对所述至少两帧图像中除第一帧图像之外的每一帧图像,执行如下处理:

s131、将第一人脸图像中特征点的位置数据与第一虚拟角色图像中相应面部特征点的位置数据进行映射,得到所述第一人脸图像对应的特征点映射数据;

其中,所述第一人脸图像为该帧图像的上一帧图像所对应的人脸图像,所述第一虚拟角色图像为与该帧图像的上一帧图像所对应的虚拟角色图像;也就是说,上述第一人脸图像是指该帧图像的上一帧图像对应的人脸图像,第一虚拟角色图像为该帧图像的上一帧图像或者第一人脸图像对应的虚拟角色图像。一张真实的人脸图像对应一张虚拟角色图像。所谓的虚拟角色可以是虚拟的人物(例如,樱桃小丸子、大头儿子等)、动物(例如,小浣熊、美羊羊等)或者其他物体等。

如果该帧图像的上一帧图像是上述至少两帧图像中的第一帧图像,即该帧图像为上述至少两帧图像中的第二帧图像,则第一虚拟角色图像为刚开始处于静止状态的虚拟角色的图像,其面部特征点的位置数据直接从该图像中获取即可。如果该帧图像的上一帧图像不是上述至少两帧图像中的第一帧图像,则第一虚拟角色图像中各个面部特征点的位置数据可以依据步骤s131、s132和s134a得到。

在实际应用时,为计算方便,可以使虚拟角色图像中的面部特征点的个数与人脸图像中特征点的个数相同,表征相同面部部位的特征点的标号相同。例如,在虚拟角色图像中也采用1~10号的特征点来表征嘴巴,也采用11~20号的特征点来表征眼睛,也采用21~30号的特征点来表征鼻子,也采用31~40号的特征点来表征眉毛,也采用41~50号的特征点来表征人脸轮廓。

所谓的映射,即是将表征第一人脸图像的各个特征点的位置数据与第一虚拟角色图像中相应的面部特征点的位置数据进行映射。例如,将第一人脸图像中第1号特征点的位置数据分别与第一虚拟角色图像中第1号特征点的位置数据进行映射,将第一人脸图像中第2号特征点的位置数据分别与第一虚拟角色图像中第2号特征点的位置数据进行映射,以此类推,实现位置数据的映射。

s132、根据第二人脸图像中特征点的位置数据、所述第一人脸图像中特征点的位置数据以及所述第一人脸图像对应的特征点映射数据,确定所述第二虚拟角色图像中的面部特征点相对于所述第一虚拟角色图像中相应面部特征点的位置变化;

其中,所述第二人脸图像为该帧图像所对应的人脸图像,所述第二虚拟角色图像为该帧图像所对应的虚拟角色图像,也就是说,第二人脸图像为该帧图像对应的人脸图像,第二虚拟角色图像为该帧图像或者第二人脸图像对应的虚拟角色图像。上述第二虚拟角色图像中特征点的位置变化,为第二虚拟角色图像中的特征点相对于第一虚拟角色图像中相应特征点的位置变化,例如第二虚拟角色图像中第1号特征点相对于第一虚拟角色图像中第1号特征点的位置变化。

在步骤s132中,确定第二虚拟角色图像中特征点的位置变化的具体过程可以包括以下步骤:

s1321、根据所述第二人脸图像中特征点的位置数据和所述第一人脸图像中特征点的位置数据,确定所述第二人脸图像中特征点相对于所述第一人脸图像中相应特征点的位置变化;

这里,可以通过将第二人脸图像中特征点的位置数据与第一人脸图像中相应特征点的位置数据做差处理的方式获得位置变化,例如,第二人脸图像中第1号特征点的坐标数据减去与第一人脸图像中第1号特征点的坐标数据,即可得到第二人脸图像中第1号特征点的位置变化。

s1321、根据所述第二人脸图像中特征点相对于所述第一人脸图像中相应特征点的位置变化以及所述第一人脸图像对应的特征点映射数据,确定所述第二虚拟角色图像中相应面部特征点的位置变化。

可理解的是,第一人脸图像对应的特征点映射数据,相当于第一人脸图像和第一虚拟角色图像之间的形变关系,利用该形变关系便可以实现真实的人脸图像对虚拟角色图像的驱动,在获知真实的人脸图像中特征点的位置变化的基础上,并依据该形变关系,即可获知虚拟角色图像中特征点的位置变化。

s133、根据所述面部特征点的位置变化,利用形变传播方法确定所述第二虚拟角色图像中多个肩部采样点相对于所述第一虚拟角色图像中相应肩部采样点的位置变化;

这里,所谓的形变传播方法是指采用一定的策略(例如,数学模型),将面部特征点的位置变化延伸至肩部采样点,从而获得肩部采样点的位置变化。也就是说,将虚拟角色图像中面部特征点的位置变化传播至肩部采样点。具体采用何种策略实现形变传播,本申请实例不做限定。

肩部采样点可以包括肩部重要位置的采样点,例如肩部轮廓上的采样点,这种采样点可以称之为肩部特征点;也可以包括位置不是很重要的采样点,例如肩部轮廓之外的点,这种采样点可以称之为肩部平滑点。在实际应用时,可以设置大量的肩部采样点,形成密集型的肩部采样点,面部特征点相对于肩部采样点来说比较稀疏,为稀疏型的面部特征点。

s134、根据所述面部特征点的位置变化和所述肩部采样点的位置变化,确定所述第二虚拟角色图像;

第二虚拟角色图像的具体确定过程可以包括:

s134a、根据所述第一虚拟角色图像中各个面部特征点的位置数据以及所述第二虚拟角色图像中相应面部特征点的位置变化,确定所述第二虚拟角色图像中相应面部特征点的位置数据;

举例来说,若第一虚拟角色图像中第1号特征点的位置数据为(x1,y1),第二虚拟角色图像中第1号特征点的位置变化为(x’,y’),则第二虚拟角色图像中第1号特征点的位置数据为(x1+x’,y1+y’)。

s134b、根据所述第二虚拟角色图像中多个肩部采样点的位置变化以及所述第一虚拟角色图像中相应肩部采样点的位置数据,确定所述第二虚拟角色图像中相应肩部采样点的位置数据;

举例来说,若第一虚拟角色图像中某一肩部采样点的位置数据为(x2,y2),第二虚拟角色图像中该采样点的位置变化为(x”,y”),则第二虚拟角色图像中该采样点的位置数据为(x2+x”,y2+y”)。

s134c、根据所述第二虚拟角色图像中各个面部特征点的位置数据以及各个肩部采样点的位置数据,确定所述第二虚拟角色图像。

以上步骤s134a~s134c为“根据所述面部特征点的位置变化和所述肩部采样点的位置变化,确定所述第二虚拟角色图像”的一种方式,当然还可以存在其他方式,对此本申请实例不做限定。

基于本申请实例提供的虚拟角色图像的构建方法,首先获取第一虚拟角色图像和第一人脸图像之间的特征点映射数据,以及第二人脸图像中特征点相对于第一人脸图像中相应特征点的位置变化,获取第二虚拟角色图像中面部特征点相对于第一虚拟角色图像中面部特征点的位置变化,并依据第二虚拟角色图像中面部特征点相对于第一虚拟角色图像中面部特征点的位置变化,进行形变传播至第二虚拟角色图像中的多个肩部采样点,进而根据面部特征点的位置变化和肩部采样点的位置变化确定第二虚拟角色图像。利用本申请提供的虚拟角色图像的构建方法,不只是关心虚拟角色面部的变化,而且兼顾到了虚拟角色的肩部,使得虚拟角色的动作更加精细。而且,本申请实例提供的虚拟角色图像的构建方法可以实时进行人脸检测和特征点检测,在视频传输标准(即vga)的分辨率下的处理速度可以超过100fps,可见处理速度非常快。

本申请实例提供的虚拟角色图像的构建方法可以称之为虚拟角色图像的构建模型,只有输入至少两帧图像(图像中包括人脸),以及用户选择一虚拟角色,便可以输出至少两帧虚拟角色图像。因此,如果输入的是很多帧图像形成的视频流,便可以输出很多帧虚拟角色图像形成的视频流。本申请实例提供的虚拟角色图像的构建方法可以由客户端执行,可以由服务器执行,可以应用于视频通话、视频直播、动画制作等方面。

举例来说,假设a用户想要和b用户视频通话,但是不想要b用户看到a用户的真实面部,因此通过设置通话设备中通话软件的相关参数,使将视频通话过程中的a用户的视频流首先经过一客户端(假设本申请提供的虚拟角色图像的构建方法由该客户端执行)进行处理,将a用户的视频流转换为一虚拟角色的视频流,再将该虚拟角色的视频流发送至b用户。

下面结合图2a~4b对客户端处理a用户的视频流的过程进行介绍:

s21、提供一张初始的虚拟角色图像,参考图2b,在图2b中的各个黑点(例如,标记为202的黑点)均为该虚拟角色图像中的特征点;

s22、对第一帧图像进行人脸检测,获取人脸图像,对第一帧图像进行检测得到的人脸图像的线条图可参考图2a;并对该人脸图像进行特征点检测,获得该人脸图像中特征点的位置数据;在图2a中的各个黑点(例如,标记为201的黑点)均为人脸图像中的特征点;

s23、将s22中获得的位置数据与初始的虚拟角色图像中的面部特征点的位置数据进行映射,得到特征点映射数据,例如,将图2a中的各个特征点与图2b中相应的特征点进行一一映射,得到特征点映射数据;

s24、对第二帧图像进行人脸检测,获取人脸图像,对第二帧图像进行检测得到的人脸图像的线条图如图3a所示,对比图3a和2a可知,第二帧图像对应的人脸图像相对于第一帧图像对应的人脸图像,a用户的上眼睑向下发生移动,上眼睑与下眼睑之间的开合度变小;并对该人脸图像进行特征点检测,获得该人脸图像中特征点的位置数据;

s25、将s24中获得的特征点的位置数据与s22中获得的相应特征点的位置数据进行做差,得到第二帧图像中的人脸图像的特征点相对于第一帧图像中的人脸图像的相应特征点的位置变化;

s26、基于s25中获得的位置变化,以及s23中确定的特征点映射数据,确定第二帧图像中人脸图像对应的虚拟角色图像中的特征点相对于初始的虚拟角色图像中相应特征点的位置变化,进而得到第二帧图像中人脸图像对应的虚拟角色图像的面部特征点的位置数据,参见图3b,在得到第二帧图像对应的虚拟角色图像的面部特征点的位置数据之后,可知虚拟角色的上眼睑也向下发生移动,上眼睑和下眼睑之间的开合度相对于图2b也减小了。

s27、将s26获得的位置变化传播至肩部采样点,获得第二帧图像中人脸图像对应的虚拟角色图像的肩部采样点的位置变化,进而获得第二帧图像中人脸图像对应的虚拟角色图像的肩部采样点的位置数据;

s29、基于第二帧图像中人脸图像对应的虚拟角色图像的面部特征点的位置数据和肩部采样点的位置数据,得到第二帧图像中人脸图像对应的虚拟角色图像;

s210、对于第三帧图像进行人脸检测,获取人脸图像,对第三帧图像进行检测得到的人脸图像的线条图如图4a所示,在图4a中可以看出,a用户的上眼睑和下眼睑之间的开合度为0,即眼睛闭合;对该人脸图像进行特征点检测,获得该人脸图像中特征点的位置数据;

s211、将s24中获得的人脸图像中特征点的位置数据与s26中获得的面部特征点的位置数据进行映射,得到特征点映射数据;

s212、将s210中获得的特征点的位置数据与s24中获得的相应特征点的位置数据进行做差,得到第三帧图像中的人脸图像的特征点相对于第二帧图像中的人脸图像的相应特征点的位置变化;

s213、基于s212中获得的位置变化,以及s211中确定的特征点映射数据,确定第三帧图像中人脸图像对应的虚拟角色图像中的特征点相对于第二帧图像中人脸图像对应的虚拟角色图像中的相应特征点的位置变化,进而得到第三帧图像中人脸图像对应的虚拟角色图像的面部特征点的位置数据;参见图4b,在得到第三帧图像对应的虚拟角色图像的面部特征点的位置数据之后,可知虚拟角色的眼睛也闭合了。

s214、将s212获得的位置变化传播至肩部采样点,获得第三帧图像中人脸图像对应的虚拟角色图像的肩部采样点的位置变化,进而获得第三帧图像中人脸图像对应的虚拟角色图像的肩部采样点的位置数据;

s215、基于第三帧图像中人脸图像对应的虚拟角色图像的面部特征点的位置数据和肩部采样点的位置数据,得到第三帧图像中人脸图像对应的虚拟角色图像。

按照上述步骤以此类推,从而将a用户的视频流转换为虚拟角色的视频流。

在一些实例中,上述步骤s11中,实现人脸检测的方式有多种,其中一种检测方式为:

针对所述至少两帧图像中的每一帧图像,执行如下处理:

s111、根据该帧图像,生成对应的图像金字塔,所述图像金字塔包括不同尺度和分辨率的图像窗口;

所谓的图像金字塔,如图5所示,是图像多尺度表达的一种方式,是一种以多分辨率来解释图像的有效但概念简单的结构。一帧图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低、尺寸逐步减小、且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。图像金字塔的每一层为一个图像窗口,层级越高,图像窗口中图像的尺度越小,分辨率也越低。

这里,之所以将这一帧图像采用多尺度表达,是因为图像中某种尺度下不容易看出或获取的特征在另外的尺度下很容易看出来或检测到,所以利用多尺度表达的方式可以更有效的提取图像的特征,获取图像内容,更加有利于检测出图像中的人脸。此外将一帧图像生成图像金字塔,还有一个原因是提高检测效率,因为如果这一帧图像过大的话,需要的人脸分类器的扫描框会比较大,这样计算的复杂度会较高。同时人脸分类器总是固定的,也就是说,人脸分类器的扫描框的大小是一般是固定的,将一帧图像生成图像金字塔,对于较大的图像来说,只需一个人脸分类器即可。

s112、采用人脸分类器对所述图像窗口进行人脸扫描;

该步骤中采用人脸分类器对图像窗口扫描的过程,可以理解为是,采用一个矩形的扫描窗口对图像金字塔中各个图像窗口的图像进行扫描的过程。假设人脸分类器对其中一个图像窗口的图像进行扫描后,可以获得图像窗口中图像的尺度以及检测到的人脸在该图像窗口中的位置、大小、人脸置信度等信息。所谓的人脸置信度,是指人脸分类器的输出分数,取值范围为[0,1],值越大越倾向属于人脸。

其中,人脸分类器可以通过迭代算法adaboost训练得到。

s113、将扫描到的多张人脸的大小和分辨率分别还原为在该帧图像中的大小和分辨率,得到多张人脸候选图像;

假设在图像金字塔的某一个图像窗口中扫描到一张人脸,由于该人脸在该图像窗口中的大小和分辨率与在原始图像中的大小和分辨率是不同的,因此需要将该人脸的大小和分辨率均还原为在原始图像中的大小和分辨率。

具体的还原方法可以是:通过计算该图像窗口的大小和分辨率分别与原始图像的大小和分辨率之间的比值,然后依据大小的比值和分辨率的比值,确定检测到的人脸在原始图像中的大小和分辨率。

s114、对所述多张人脸候选图像进行去重处理;

由于图像金字塔上的各个图像窗口均是来源于同一帧图像,人脸分类器可能在图像金字塔的多个图像窗口检测到相同的人脸,因此在步骤s113中得到的多张人脸候选图像中会存在重复的情况,因此需要对步骤s113得到的多张人脸候选图像进行去重,对于去重的具体方法,这里不进行限定,只要能够实现去重即可。

s115、在去重处理后剩余的人脸候选图像中选择一张人脸候选图像作为该帧图像的人脸图像。

由于在一帧图像中可能存在有多张人脸,此时只选取其中一张人脸即可,例如,可以选取尺度最大的一张人脸候选图像作为该帧图像对应的人脸图像。当然,如果在去重处理后剩余的人脸候选图像只有一张,则将该张人脸候选图像作为该帧图像对应的人脸图像即可。该帧图像对应的人脸图像的位置可以表示为p=[x,y,w,h],其中x和y为人脸图像的左上角在该帧图像中的坐标,w为人脸图像的宽,h为人脸图像的高。

通过以上步骤s111~s115对某一帧图像进行人脸检测,方法简单、易实现,且检测效率高,在具体实施时,并不限于采用上述方法进行人脸检测。

在上述人脸检测过程中,步骤s114中进行去重的方式有多种,例如,采用采用非极大抑制方法对所述多张人脸候选图像进行去重处理,再例如,采用图像去重软件通过对比图像相似度进行去重处理。其中,非极大抑制的本质是搜索局部极大值,抑制非极大值元素,具体的去重过程大致包括:

s1141、构建候选队列,所述候选队列中包括所述多张人脸候选图像;

这里,将步骤s113中检测到的多张人脸候选图像形成一个候选队列,以便进行后续处理。

s1142、分别计算当前的候选队列中人脸置信度最高的人脸候选图像与所述候选队列中其余人脸候选图像之间的重叠度;

在执行步骤s1142时,可以先将候选队列中的人脸候选图像按照人脸置信度进行排序,例如,将其按照人脸置信度从高至低的顺序进行排序,进而将候选队列中最靠前的人脸候选图像与其他的人脸候选图像进行重叠度计算。

在计算重叠度时,可以但不限于采用计算交并比的方式确定重叠度,所谓的交并比是两个图像的交集与两个图像的并集之间的比值。若交并比为0,则说明两张人脸候选图像之间的重叠度为0,若交并比为1,则说明两张人脸候选图像完全重合。

s1143、将所述其余人脸候选图像中与所述人脸置信度最高的人脸候选图像之间的重叠度大于预设阈值的人脸候选图像从当前的候选队列中删除,并将所述人脸置信度最高的人脸候选图像从当前的候选队列中筛选出来;

其中,预设阈值可以根据需要设置,例如,0.5。如果候选队列中人脸置信度最高的人脸候选图像与其余的人脸候选图像之间的重叠度高于这一预设阈值,则说明这两张人脸候选图像是源于同一张人脸,这种情况下,将人脸置信度最高的人脸候选图像筛选出来,而将人脸置信度低的人脸候选图像从候选队列中删除。在具体实施时,可以设置一个人脸队列,用来存放从候选队列中筛选出来的人脸候选图像。这样的话,人脸置信度最高的人脸候选图像被移至人脸队列中,而与其重叠度高于预设阈值的人脸候选图像被删除。

s1144、若当前的候选队列不为空,则返回s1142;若当前的候选队列为空,则将筛选出来的各张人脸候选图像作为去重处理后剩余的人脸候选图像。

在执行完步骤s1143后,发现候选队列不为空,则继续参与循,也就是说,将当前候选队列中人脸置信度最大的一张人脸候选图像与其余的人脸候选进行重叠度计算,然后将与其重叠度高于预设阈值的人脸候选图像删除,然后将该人脸置信度最大的人脸候选图像筛选出来。以此类推,直至候选队列为空。如果出现候选队列中仅剩一张人脸候选图像的情况,则将该人脸候选图像直接筛选出来。至此,针对发生重叠的人脸候选图像,人脸置信度低的删除,人脸置信度高的被筛选出来,被筛选出来的人脸候选图像中不存在重复的情况。

通过上述步骤s1141~s1145实现对人脸候选图像的去重处理。

在一些实例中,在步骤s12中特征点检测的实现方式有多种,例如,采用人脸对齐算法对人脸图像进行特征点检测,从而得到特征点的位置数据。所谓的人脸对齐算法是根据输入的人脸图像,采用一定的策略自动定位出面部的关键特征点,例如,眼睛、鼻尖、嘴角点、眉毛以及人脸轮廓点等。采用人脸对齐算法进行特征点检测的过程大致包括:

s121、获取所述人脸图像中各个特征点的位置数据,并将该位置数据作为第一位置数据;

所谓的特征点是人脸图像中能够表征人脸特征的关键点,所谓的人脸特征即是人脸轮廓,眼睛、鼻子、嘴巴的特征。特征点的个数越多,就越能表征人脸特征。假设设置了68个特征点,并对这68个特征点进行标号,其中11个特征点表示人脸轮廓,12个特征点表示眉毛,16个特征点表示眼睛,9个特征点表示鼻子,20个特征点表示嘴巴。每一个特征点的位置数据可以用(x,y)表示,这68个特征点形成的第一位置数据为l={(xi,yi),i=1,2,……,n},其中n为68。为了便于计算,可以将第一位置数据表示成向量的形式,例如,将p1={x1,y1,x2,y2,……,xn,yn},该向量为n*2=136维向量。由于该向量可以表征人脸图像的当前状态,因此可以称之为状态向量。

s122、根据所述人脸图像和预设的参考面部之间的大小关系,确定所述人脸图像和所述参考面部之间的缩放比例;

在实际中,有可能一帧图像为近景,使得其中的人脸图像较大,而下一帧图像为远景,使得其中的人脸图像较小,由于人脸图像的大小不一,也就是说,对应的位置数据不是在同一个坐标下的数据,因此需要对人脸图像进行标准化,使各帧图像的人脸图像的大小一致。这里采用将检测到任意一张人脸图像进行缩放,使其均变为参考面部的大小。

所谓的缩放比例,是指人脸图像与参考面部之间的大小关系。若人脸图像的宽度大于参考面部,则需要对人脸图像的宽度进行缩小,若人脸图像的宽度小于参考面部,则需要对人脸图像的宽度进行放大。若人脸图像的高度大于参考面部,则需要对人脸图像的高度进行缩小,若人脸图像的高度小于参考面部的图像,则需要对人脸图像的高度进行放大。总之,通过缩放比例,将人脸图像调整至与参考面部相同的大小。

假设w0为参考面部的宽度,h0为参考面部的高度,(x0(i),y0(i))为参考面部第i个特征点的位置数据,(x(i),y(i))为人脸图像中第i个特征点的位置数据,缩放比例的计算方式为:sw=w/w0,sh=h/h0。其中,w为人脸图像的宽度,h为人脸图像的高度;sw为人脸图像和参考面部之间的宽度缩放比例,sh为人脸图像与参考面部之间的高度缩放比例。

s123、根据所述缩放比例以及所述参考面部中各个特征点的位置数据,对所述第一位置数据进行调整,得到第二位置数据;

基于上述步骤s122中的缩放比例,对第一位置数据进行调整的过程为:

sx(i)=x(i)+sw*x0(i),sy(i)=y(i)+sh*y0(i);

其中,(sx(i),sy(i))为对人脸图像中第i个特征点进行标准化后的位置数据,即第二位置数据。人脸图像中各个特征点经过标准化后的位置数据形成的状态向量为p2={sx(1),sy(1),sx(2),sy(2),……,sx(3),sy(3)}。

s124、对第二位置数据进行优化处理,具体优化过程大致包括:

首先,提供训练样本,训练样本中包含预先真实标注的人脸特征点的位置数据,该位置数据可以用状态向量pg表示;该训练样本可以是离线做好的,是针对大量真实的人脸图像中的人脸特征点的位置数据。

然后,执行以下迭代过程:

s1241、计算人脸图像中各个特征点的位置数据与训练样本之间的位置误差:δp(t)=p(t)-pg;

其中,δp(t)为位置误差,t=0时为初始状态,此时p(0)=p2,即上述步骤s123中进行调整后得到的第二位置数据;当t>0,p(t)为人脸图像的状态向量为p2经过t次迭代过程后得到的状态向量。

s1242、判断δp(t)是否小于预设阈值或者当前的迭代次数t是否达到一定的次数t,若满足其中一个条件,则退出迭代过程,将p(t)作为对人脸图像中各个特征点进行优化处理后得到的位置数据;若两个条件均不满足,则执行s1243;

s1243、构建位置误差函数f(w(t),f(t))=||w*f(t)-δp(t)||^2;

其中,w(t)为权重矩阵,f(t)为全局特征矩阵。

f的确定方法为:采用梯度直方图特征来描述人脸图像中每一个特征点的局部特征,某一个特征点的局部特征是指以该特征点为中心点的一个矩形框内各个点的梯度变化的统计值,例如,该矩形框内的点有128个,则该特征点的局部特征为128维,如果一共有68个特征点,则f(t)为128*68=8704维,表示这68个特征点中各个特征点的周围128个点的梯度变化的统计值。可理解的是,由于上述过程是一个迭代过程,通过一步步迭代的方式逼近真实标注的特征点,所以每一步迭代都会更新f(t),f(t)是指第t迭代时特征点的局部特征合并成的全局特征矩阵。

s1244、通过线性回归技术使位置误差函数最小化,从而求得其中的权重矩阵w;如果f为8704维的矩阵,则权重矩阵w为136*8704维的矩阵。

s1245、根据权重矩阵w(t)和全局特征矩阵f(t),计算当前的估计偏差δpe(t)=w(t)*f(t);

s1246、根据当前的估计偏差,对各个特征点的位置数据进行更新:p(t+1)=p(t)+δpe(t),t=t+1;返回s1241。

通过上述过程使s123中得到的第二位置数据与真实标注的人脸特征点之间的位置误差逐渐减小至可忽略不计的程度,实现对检测到的人脸图像中特征点的位置的不断优化,将最终优化处理后得到的数据作为人脸图像中特征点的位置数据p’。

在一些实例中,步骤s131中将第一人脸图像中特征点的位置数据与第一虚拟角色图像中相应面部特征点的位置数据进行映射的过程可以具体包括:

s1311、将所述第一人脸图像中各个特征点的位置数据形成第一状态向量,将所述第一虚拟角色图像中各个面部特征点的位置数据形成第二状态向量;

这里,将特征点的位置数据整理为状态向量的形式便于后续的计算。如果在步骤s131步骤之前,特征点的位置数据已经用状态向量的形式表示,此时不必执行步骤s1311,直接执行s1312即可。

s1312、计算所述第一状态向量和所述第二状态向量之间的相似变换矩阵,并将所述相似变换矩阵作为所述第一人脸图像对应的特征点映射数据。

基于以上步骤即可得到第一人脸图像中的特征点的位置数据与第一虚拟角色图像中的特征点的位置数据之间的映射关系m=g(p’,p”),其中,p’为第一状态向量,p”为第二状态向量。

这里提供了一种具体的映射方法,当然,在实际应用中还可以采用其他的映射方式,对此本申请实例不做限定。

在一些实例中,在步骤s133中,利用所述形变传播方法确定所述肩部采样点的位置变化的过程可以具体包括:

首先,根据所述面部特征点的位置变化、各个面部特征点的形变权重以及所述多个肩部采样点的形变权重,构建第一形变传播函数;

其中,肩部采样点可以包括比较重要的肩部特征点和不太重要的肩部平滑点,对于不同的肩部采样点,设置不同的形变权重,而且肩部特征点的形变权重高于肩部平滑点的形变权重。例如,对于肩部特征点来说,可以预先设定其形变权重为5,而对于肩部平滑点来说,可以预先设定其形变权重为1。

上述第一形变传播函数可以有多种形式,其中一种形式为:

式中,e1为第一形变传播能量,n1为面部特征点和肩部采样点的总个数;wj为n个点中第j个点的形变权重;(xj,yj)为n1个点中第j个点在所述第一虚拟角色图像中的位置,p(xj,yj)为n个点中第j个点在所述第二虚拟角色图像中的位置相对于在所述第一虚拟角色图像中的位置的变化。

对于n1个点中的面部特征点来说,p(xi,yi)为所有面部特征点中第i个面部特征点的位置变化,而且对于任意一个面部特征点来说,均满足以下条件:

其中,di为之前根据映射关系m=g(p’,p”)计算得到的位置变化。

当然,还可以采用其他的第一形变传播函数,对此本申请不做限定。

其次,通过最小化所述第一形变传播函数,计算得到所述多个肩部采样点的位置变化。

通过最小化第一形变传播函数计算肩部采样点位置变化的过程,可以依据下述中通过最小化第二形变传播函数计算肩部采样点和面部平滑点的位置变化的过程。

在一些实例中,为了使虚拟角色的面部表情能够非常自然的过渡,在获知第二虚拟角色图像中各个面部特征点的位置变化之后,还可以将面部特征点的位置变化传播至面部其他的点,具体为:根据所述面部特征点的位置变化,利用所述形变传播方法确定所述第二虚拟角色图像中多个面部平滑点相对于所述第一虚拟角色图像中相应面部平滑点的位置变化。

其中,所述面部平滑点为在所述第二虚拟角色图像的面部区域中除了各个面部特征点之外预先选择的点;可以在面部区域除了面部特征点之外的其他点选择一些点作为面部平滑点,也可以将面部区域除了面部特征点之外的所有点作为面部平滑点。

相应的,确定所述第二虚拟角色图像的过程可以包括:根据所述面部特征点的位置变化、所述肩部采样点的位置变化以及所述面部平滑点的位置变化,确定所述第二虚拟角色图像。这里,在确定第二虚拟角色图像时,除了依据面部特征点和肩部采样点之外,还依据面部平滑点,从而实现虚拟角色面部表情自然的过渡。

在考虑面部平滑点的基础上,确定第二虚拟角色图像的过程可以包括:

根据所述第一虚拟角色图像中各个面部特征点的位置数据以及所述面部特征点的位置变化,确定所述第二虚拟角色图像中各个面部特征点的位置数据;

根据所述第一虚拟角色图像中各个肩部采样点的位置数据以及所述肩部采样点的位置变化,确定所述第二虚拟角色图像中各个肩部采样点的位置数据;

根据所述第一虚拟角色图像中各个面部平滑点的位置数据以及所述面部平滑点的位置变化,确定所述第二虚拟角色图像中各个面部平滑点的位置数据;

根据所述各个面部特征点的位置数据、所述各个肩部采样点的位置数据以及所述各个面部平滑点的位置数据,确定所述第二虚拟角色图像。

在一些实例中,在考虑面部平滑点的基础上,可以利用一形变传播函数将肩部采样点和面部平滑点的位置变化一同计算出来,具体的过程可以包括:

首先,根据所述面部特征点的位置变化、各个面部特征点的形变权重、所述多个面部平滑点的形变权重以及所述多个肩部采样点的形变权重,构建第二形变传播函数;

其中,第二虚拟角色图像中各个面部特征点的位置变化可以用d=m(p’”)-m(p’)计算,其中p’”为第二人脸图像中各个特征点的位置数据,p’为第一人脸图像中各个特征点的位置数据即第一状态向量。

在实际应用时,面部特征点的重要性高于面部平滑点,因此可以使面部特征点的形变权重高于面部平滑点的形变权重。肩部采样点可以包括比较重要的肩部特征点和不太重要的肩部平滑点,对于不同的肩部采样点,设置不同的形变权重,而且肩部特征点的形变权重高于肩部平滑点的形变权重。例如,对于肩部特征点来说,可以预先设定其形变权重为5,而对于肩部平滑点来说,可以预先设定其形变权重为1。

上述第二形变传播函数可以采用下式:

式中,e2为第二形变传播能量,n2为面部特征点、面部平滑点以及肩部采样点的总个数;wj为n个点中第j个点的形变权重;(xj,yj)为n个点中第j个点在所述第一虚拟角色图像中的位置,p(xj,yj)为n个点中第j个点在所述第二虚拟角色图像中的位置相对于在所述第一虚拟角色图像中的位置的变化。

对于n2个点中的面部特征点来说,p(xi,yi)为所有面部特征点中第i个面部特征点的位置变化,而且对于任意一个面部特征点来说,均满足以下条件:

其中,di为之前根据映射关系m=g(p’,p”)计算得到的位置变化。

当然,还可以采用其他形式的第二形变传播函数,对此本申请实例不做限定。

其次,通过最小化所述第二形变传播函数,计算得到所述多个面部平滑点和所述多个肩部采样点的位置变化。

基于上述第二形变传播函数,具体的计算过程可以包括:

为了使e2最小化,由euler-lagrange方程,得到:

满足p(xi,yi)=di;

其中,是拉普拉斯算子,分别对p的各个分量进行拉普拉斯计算。上式是一个泊松方程,离散化后得到一个大型的稀疏线性系统。最后,通过求解该稀疏线性系统即可得到多个面部平滑点的位置变化以及多个肩部采样点的位置变化。

这里,形变传播的计算复杂度依赖于形变区域的大小,即肩部采样点的个数,不过即便在采用密集型的肩部采样点的情况下,处理速度在视频传输标准(即vga)的分辨率下也会超过50fps。

此外,在s134中在获得第二虚拟角色图像之后,为了使第一虚拟角色图像和第二虚拟角色图像之间能够平滑的过渡,可以采用插值法对两虚拟角色图像中面部特征点和/或肩部采样点的位置变化进行平滑处理,插值法作为一种形变的平滑传播机制,能够保证虚拟角色在驱动过程中能够自然的过渡和显示,从而获得更高质量的显示效果。与传统的采样渲染与纹理结合的方法相比,本申请实例提供的虚拟角色图像的构建方法使虚拟角色的逼真程度更高。

第二方面,本申请一实例提供一种虚拟角色图像的构建装置600,如图6所示,该装置包括:

检测模块601,对至少两帧图像分别进行人脸检测,得到所述至少两帧图像各自对应的人脸图像,并对所述人脸图像进行特征点检测,得到特征点的位置数据;

处理模块602,包括针对所述至少两帧图像中除第一帧图像之外的每一帧图像,执行相应处理的映射单元6021、第一确定单元6022、第二确定单元6023、第三确定单元6024,其中:

所述映射单元6021,将第一人脸图像中特征点的位置数据与第一虚拟角色图像中相应面部特征点的位置数据进行映射,得到所述第一人脸图像对应的特征点映射数据;其中,所述第一人脸图像为该帧图像的上一帧图像所对应的人脸图像,所述第一虚拟角色图像为与该帧图像的上一帧图像所对应的虚拟角色图像;

所述第一确定单元6022,根据第二人脸图像中特征点的位置数据、所述第一人脸图像中特征点的位置数据以及所述第一人脸图像对应的特征点映射数据,确定所述第二虚拟角色图像中的面部特征点相对于所述第一虚拟角色图像中相应面部特征点的位置变化;其中,所述第二人脸图像为该帧图像所对应的人脸图像,所述第二虚拟角色图像为该帧图像所对应的虚拟角色图像;

所述第二确定单元6023,根据所述面部特征点的位置变化,利用形变传播方法确定所述第二虚拟角色图像中多个肩部采样点相对于所述第一虚拟角色图像中相应肩部采样点的位置变化;

所述第三确定单元6024,根据所述面部特征点的位置变化和所述肩部采样点的位置变化,确定所述第二虚拟角色图像。

在一些实例中,第三确定单元6024确定第二虚拟角色图像的过程可以包括:

根据所述第一虚拟角色图像中各个面部特征点的位置数据以及所述面部特征点的位置变化,确定所述第二虚拟角色图像中各个面部特征点的位置数据;

根据所述第一虚拟角色图像中各个肩部采样点的位置数据以及所述肩部采样点的位置变化,确定所述第二虚拟角色图像中各个肩部采样点的位置数据;根据所述各个面部特征点的位置数据和所述各个肩部采样点的位置数据,确定所述第二虚拟角色图像。

在一些实例中,第二确定单元6023确定肩部采样点位置变化的过程可以包括:

根据所述面部特征点的位置变化、各个面部特征点的形变权重以及所述多个肩部采样点的形变权重,构建第一形变传播函数;

通过最小化所述第一形变传播函数,计算得到所述多个肩部采样点的位置变化。

在一些实例中,第二确定单元6023构建的第一形变传播函数可以包括:

式中,e1为第一形变传播能量,n1为面部特征点和肩部采样点的总个数;wj为n个点中第j个点的形变权重;(xj,yj)为n1个点中第j个点在所述第一虚拟角色图像中的位置,p(xj,yj)为n个点中第j个点在所述第二虚拟角色图像中的位置相对于在所述第一虚拟角色图像中的位置的变化。

在一些实例中,处理模块还可以包括:

第四确定单元,根据所述面部特征点的位置变化,利用所述形变传播方法确定所述第二虚拟角色图像中多个面部平滑点相对于所述第一虚拟角色图像中相应面部平滑点的位置变化;其中,所述面部平滑点为在所述第二虚拟角色图像的面部区域中除了各个面部特征点之外预先选择的点;

其中,第三确定单元具体可以根据所述面部特征点的位置变化、所述肩部采样点的位置变化以及所述面部平滑点的位置变化,确定所述第二虚拟角色图像。

在一些实例中,第三确定单元确定第二虚拟角色图像的过程可以包括:

根据所述第一虚拟角色图像中各个面部特征点的位置数据以及所述面部特征点的位置变化,确定所述第二虚拟角色图像中各个面部特征点的位置数据;

根据所述第一虚拟角色图像中各个肩部采样点的位置数据以及所述肩部采样点的位置变化,确定所述第二虚拟角色图像中各个肩部采样点的位置数据;

根据所述第一虚拟角色图像中各个面部平滑点的位置数据以及所述面部平滑点的位置变化,确定所述第二虚拟角色图像中各个面部平滑点的位置数据;

根据所述各个面部特征点的位置数据、所述各个肩部采样点的位置数据以及所述各个面部平滑点的位置数据,确定所述第二虚拟角色图像。

在一些实例中,第二确定单元6023确定肩部采样点和面部平滑点的过程可以包括:

所述肩部采样点和面部平滑点的位置变化,包括:

根据所述面部特征点的位置变化、各个面部特征点的形变权重、所述多个面部平滑点的形变权重以及所述多个肩部采样点的形变权重,构建第二形变传播函数;

通过最小化所述第二形变传播函数,计算得到所述多个面部平滑点和所述多个肩部采样点的位置变化。

在一些实例中,所述第二形变传播函数包括:

式中,e2为第二形变传播能量,n2为面部特征点、面部平滑点以及肩部采样点的总个数;wj为n个点中第j个点的形变权重;(xj,yj)为n个点中第j个点在所述第一虚拟角色图像中的位置,p(xj,yj)为n个点中第j个点在所述第二虚拟角色图像中的位置相对于在所述第一虚拟角色图像中的位置的变化。

在一些实例中,所述面部特点的形变权重可以高于所述面部平滑点的形变权重。

在一些实例中,所述肩部采样点可以包括肩部特征点和肩部平滑点,所述肩部特征点的形变权重可以高于所述肩部平滑点的形变权重。

在一些实例中,第一确定单元6022确定面部特征点的位置变化的过程可以包括:

根据所述第二人脸图像中特征点的位置数据和所述第一人脸图像中特征点的位置数据,确定所述第二人脸图像中特征点相对于所述第一人脸图像中相应特征点的位置变化;

根据所述第二人脸图像中特征点相对于所述第一人脸图像中相应特征点的位置变化以及所述第一人脸图像对应的特征点映射数据,确定所述第二虚拟角色图像中相应面部特征点的位置变化。

在一些实例中,所述映射单元6021可以包括:

向量形成子单元,将所述第一人脸图像中各个特征点的位置数据形成第一状态向量,将所述第一虚拟角色图像中各个面部特征点的位置数据形成第二状态向量;

矩阵计算子单元,计算所述第一状态向量和所述第二状态向量之间的相似变换矩阵,并将所述相似变换矩阵作为所述第一人脸图像对应的特征点映射数据。

可理解的是,本申请实例提供的虚拟角色图像的构建装置600,为本申请实例提供的虚拟角色图像的构建方法的功能架构模块,其有关内容的解释说明、举例、具体实施方式、有益效果等部分可以参考上述虚拟角色图像的构建方法中的相应部分,此处不再赘述。

第三方面,本申请一实例提供一种存储介质,其上存储有计算机程序,可以使处理器执行上述任一方法。

第四方面,本申请一实例提供一种计算机设备,图7示出了虚拟角色图像的构建装置600所在的计算机设备的组成结构图。如图7所示,该计算设备包括一个或者多个处理器(cpu)702、通信模块704、存储器706、用户接口710,以及用于互联这些组件的通信总线708,其中:

处理器702可通过通信模块704接收和发送数据以实现网络通信和/或本地通信。

用户接口710包括一个或多个输出设备712,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口710也包括一个或多个输入设备714,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。

存储器706可以是高速随机存取存储器,诸如dram、sram、ddrram、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。

存储器706存储处理器702可执行的指令集,包括:

操作系统716,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;

应用718,包括用于用户信息映射的各种应用程序,这种应用程序能够实现上述各实例中的处理流程,比如可以包括虚拟角色图像的构建装置600中的部分或者全部模块。虚拟角色图像的构建装置600中的至少一个模块可以存储有机器可执行指令。处理器702通过执行存储器706中各单元中至少一个单元中的机器可执行指令,进而能够实现上述模块中的至少一个模块的功能。

需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。

各实施例中的硬件模块可以以硬件方式或硬件平台加软件的方式实现。上述软件包括机器可读指令,存储在非易失性存储介质中。因此,各实施例也可以体现为软件产品。

各例中,硬件可以由专门的硬件或执行机器可读指令的硬件实现。例如,硬件可以为专门设计的永久性电路或逻辑器件(如专用处理器,如fpga或asic)用于完成特定的操作。硬件也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。

另外,本申请的每个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请,本申请还提供了一种非易失性存储介质,其中存储有数据处理程序,这种数据处理程序可用于执行本申请上述方法实例中的任何一种实例。

图7模块对应的机器可读指令可以使计算机上操作的操作系统等来完成这里描述的部分或者全部操作。非易失性计算机可读存储介质可以是插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器。安装在扩展板或者扩展单元上的cpu等可以根据指令执行部分和全部实际操作。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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