本申请涉及人脸识别技术领域,具体而言,本申请涉及一种视频动态换脸方法、装置、计算机设备及存储介质。
背景技术:
随着计算机技术的发展,对于移动设备的功能越来越多,例如手机,通过安装各种app应用程序,以实现某种特定的功能,例如拍照、拍摄视频、网页浏览等等。
目前,关于视频查看和视频拍摄、照片拍摄的功能的app越来越多,但是现有技术中这类应用程序的功能比较单一,只能拍摄照片或者拍摄视频,并进行简单的人物或场景的美化,或者在现有的图片状态上,进行装饰物的叠加。
现有技术中,存在一种针对图像中人脸的替换,但是替换人脸只能是静态状态下的替换,不能动态替换,当所替换的人脸与被替换的人脸角度不一致时,人脸替换的贴合度不高。
技术实现要素:
为了解决上述问题,本申请公开一种在视频中进行人脸替换,且融合度高的人脸替换方法和装置。
本申请的第一个方面,公开一种视频动态人脸替换方法,包括:
获取第一动态视频中每一帧画面中待替换的第一人脸图像,随帧画面同步记录对应的所述第一人脸图像的相对位置,所述第一人脸图像包括一个或多个人脸图像;
获取替换所述第一人脸图像的第二人脸图像,其中,所述第二人脸图像包括多个相对位置的人脸图像;
选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像,以生成第二动态视频。
可选的,所述相对位置包括人脸相对于正脸位置的转动角度,所述第一人脸图像的人脸相对位置的获取方法包括:
识别所述第一人脸图像中的关键点位置,其中,所述关键点设置有多个,分别分布于所述第一人脸图像的指定位置;
根据所述关键点之间的相对位置关系识别所述第一人脸图像的转动角度。
可选的,所述获取替换所述第一人脸图像的第二人脸图像的方法包括:
从预设人脸图像数据库中选择目标人脸图像,其中,所述目标人脸图像包括一个或多个人脸的相对位置。
可选的,所述人脸图像数据库中的人脸图像通过引导拍摄获得或者通过导入符合指定条件的一张或多张图片获得。
可选的,所述获取替换所述第一人脸图像的第二人脸图像的方法包括:
从第三动态视频中识别所述替换所述第一人脸图像的目标人脸图像及其人脸的相对位置;
选择所述人脸的相对位置符合第二预设条件的目标人脸图像作为第二人脸图像,其中,所述第二预设条件包括目标人脸图像的相对位置不重复。
可选的,所述第一预设条件包括所述第二人脸图像中的相对位置与第一人脸图像的相对位置的差值最小。
可选的,所述第一预设条件包括所述第二人脸图像中的相对位置与第一人脸图像的相对位置的差值在第一预设范围内。
可选的,当存在两个或两个以上与所述第一人脸图像的相对位置的差值在第一预设范围内的第二人脸图像时,选择与所述第一人脸图像的相对位置的差值最小的第二人脸图像进行替换。
可选的,所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像的方法包括:
获取符合第一预设条件的所述第二人脸图像的关键点相对位置;
获取第一人脸图像的关键点相对位置;
对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合。
可选的,所述对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合之后还包括:
对所述第一人脸图像和第二人脸图像设置融合度参数,其中所述融合度参数为表征人脸图像叠加透明度的参数值;
将所述第二人脸图像叠加在所述第一人脸图像之上。
可选的,所述第一预设条件包括所述第二人脸图像中的相对位置与第一人脸图像的相对位置的差值在第二预设范围内。
可选的,所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像的方法包括:
获取所述相对位置的差值在所述第二预设范围内的一个或多个目标第二人脸图像;
根据所述目标第二人脸图像的相对位置,按照预设生成规则,生成与所述第一人脸图像的相对位置相同的第三人脸图像;
将所述第三人脸图像替换所述第一人脸图像。
可选的,所述根据所述目标第二人脸图像的相对位置,按照预设生成规则,生成与所述第一人脸图像的相对位置相同的第三人脸图像的方法包括:
获取符合第二预设范围的一个或多个目标第二人脸图像的关键点相对位置;
获取第一人脸图像的关键点相对位置;
对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合,得到第三人脸图像。
可选的,所述对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合,得到第三人脸图像之后还包括:
对所述第一人脸图像和第三人脸图像设置融合度参数,其中所述融合度参数为表征人脸图像叠加透明度的参数值;
将所述第三人脸图像叠加在所述第一人脸图像之上。
可选的,所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像之后,还包括:
在替换后的人脸之上叠加特效参数,其中,所述特效参数包括指定位置的色彩参数、亮度参数、大小参数和/或素材覆盖参数。
可选的,在所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像,以生成新的第二动态视频之后,还包括:
在所述第二动态视频上继续对所述第二人脸图像进行替换。
可选的,在所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像,以生成新的第二动态视频之后,还包括:
将所述第二动态视频替换成第四动态视频,并用所述第二人脸图像替换所述第四动态视频中的指定的人脸图像。
可选的,在所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像,以生成新的第二动态视频之后,还包括:
在所述第二动态视频上将所述第二人脸图像恢复至所述第一人脸图像,或者将所替换的第四动态视频恢复到第二动态视频或第一动态视频。
可选的,获取第一动态视频中每一帧画面中待替换的第一人脸图像及其相对位置的方法包括从第一动态视频中的每一帧画面的i帧中获取第一人脸图像及其相对位置;
从第三动态视频中识别所述替换所述第一人脸图像的目标人脸图像及其人脸的相对位置的方法包括从第三动态视频中的每一帧画面的i帧中获取所述替换所述第一人脸图像的目标人脸图像及其人脸的相对位置。
本申请的实施例根据第二个方面,公开一种视频动态人脸替换装置,包括:
第一获取模块:被配置为执行获取第一动态视频中每一帧画面中待替换的第一人脸图像,随帧画面同步记录对应的所述第一人脸图像的相对位置,所述第一人脸图像包括一个或多个人脸图像;
第二获取模块:被配置为执行获取替换所述第一人脸图像的第二人脸图像,其中,所述第二人脸图像包括多个相对位置的人脸图像;
第一替换模块:被配置为执行选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像,以生成第二动态视频。
可选的,所述相对位置包括人脸相对于正脸位置的转动角度,所述第一获取模块包括:
识别模块:被配置为执行识别所述第一人脸图像中的关键点位置,其中,所述关键点设置有多个,分别分布于所述第一人脸图像的指定位置;
角度获取模块:被配置为执行根据所述关键点之间的相对位置关系识别所述第一人脸图像的转动角度。
可选的,所述第二获取模块包括:
第一选择模块:被配置为执行从预设人脸图像数据库中选择目标人脸图像,其中,所述目标人脸图像包括一个或多个人脸的相对位置。
可选的,所述人脸图像数据库中的人脸图像通过引导拍摄获得或者通过导入符合指定条件的一张或多张图片获得。
可选的,所述第二获取模块包括:
目标人脸识别模块:被配置为执行从第三动态视频中识别所述替换所述第一人脸图像的目标人脸图像,及其人脸的相对位置;
第二选择模块:被配置为执行选择所述人脸的相对位置符合第二预设条件的目标人脸图像作为第二人脸图像。
可选的,所述第一预设条件包括所述第二人脸图像中的相对位置与第一人脸图像的相对位置的差值最小。
可选的,所述第一预设条件包括所述第二人脸图像中的相对位置与第一人脸图像的相对位置的差值在第一预设范围内。
可选的,当存在两个或两个以上与所述第一人脸图像的相对位置的差值在第一预设范围内的第二人脸图像时,选择与所述第一人脸图像的相对位置的差值最小的第二人脸图像进行替换。
可选的,所述替换模块包括:
第一关键点获取模块:被配置为执行获取符合第一预设条件的所述第二人脸图像的关键点相对位置;
第二关键点获取模块:被配置为执行获取第一人脸图像的关键点相对位置;
第一处理模块:被配置为执行对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合。
可选的,还包括:
第一融合参数设置模块:被配置为执行对所述第一人脸图像和第二人脸图像设置融合度参数,其中所述融合度参数为表征人脸图像叠加透明度的参数值;
第一融合叠加模块:被配置为执行将所述第二人脸图像叠加在所述第一人脸图像之上。
可选的,所述第一预设条件包括所述第二人脸图像中的相对位置与第一人脸图像的相对位置的差值在第二预设范围内。
可选的,所述替换模块包括:
第三获取模块:被配置为执行获取所述相对位置的差值在所述第二预设范围内的一个或多个目标第二人脸图像;
生成模块:被配置为执行根据所述目标第二人脸图像的相对位置,按照预设生成规则,生成与所述第一人脸图像的相对位置相同的第三人脸图像;
第一替换子模块:被配置为执行将所述第三人脸图像替换所述第一人脸图像。
可选的,所述根据所述目标第二人脸图像的相对位置,按照预设生成规则,生成与所述第一人脸图像的相对位置相同的第三人脸图像的方法包括:
第三关键点获取模块:被配置为执行获取符合第二预设范围的一个或多个目标第二人脸图像的关键点相对位置;
第四关键点模块模块:被配置为执行获取第一人脸图像的关键点相对位置;
第二处理模块:被配置为执行对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合,得到第三人脸图像。
可选的,还包括:
第二融合参数设置模块:被配置为执行对所述第一人脸图像和第三人脸图像设置融合度参数,其中所述融合度参数为表征人脸图像叠加透明度的参数值;
第二融合叠加模块:被配置为执行将所述第三人脸图像叠加在所述第一人脸图像之上。
可选的,还包括:
特效叠加模块:被配置为执行在替换后的人脸之上叠加特效参数,其中,所述特效参数包括指定位置的色彩参数、亮度参数、大小参数和/或素材覆盖参数。
可选的,还包括:
第二替换模块:被配置为执行在所述第二动态视频上继续对所述第二人脸图像进行替换。
可选的,还包括:
第三替换模块:被配置为执行将所述第二动态视频替换成第四动态视频,并用所述第二人脸图像替换所述第四动态视频中的指定的人脸图像。
可选的,还包括:
恢复模块:被配置为执行在所述第二动态视频上将所述第二人脸图像恢复至所述第一人脸图像,或者将所替换的第四动态视频恢复到第二动态视频或第一动态视频。
可选的,获取第一动态视频中每一帧画面中待替换的第一人脸图像及其相对位置的方法包括从第一动态视频中的每一帧画面的i帧中获取第一人脸图像及其相对位置;
从第三动态视频中识别所述替换所述第一人脸图像的目标人脸图像及其人脸的相对位置的方法包括从第三动态视频中的每一帧画面的i帧中获取所述替换所述第一人脸图像的目标人脸图像及其人脸的相对位置。
本申请的实施例根据第三个方面,还提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述视频动态人脸替换方法的步骤。
本申请的实施例根据第四个方面,还提供了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述视频动态人脸替换方法的步骤。
本申请实施例的有益效果是:
本申请公开的一种视频动态人脸替换方法和装置,通过获取动态人脸视频,或者多张多个角度的人脸图像,自动选择符合待替换人脸的视频文件中具有相似人脸角度的图像作为替换图像,并在视频文件中直接进行人脸替换,使所替换的人脸更为贴合,融合度更高高,执行换脸方式也简单方便。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请一个视频动态人脸替换方法的流程图;
图2为本申请正脸和侧脸状态图像采集示意图;
图3为本申请第一人脸图像的人脸相对位置的获取方法流程图:
图4为本申请在预设人脸图像数据库中选择第二人脸图像的示意图;
图5为本申请在预设人脸图像数据库中引导用户拍摄的界面;
图6为本申请客户端上的应用程序引导拍摄正脸的示意图;
图7为本申请客户端上的应用程序引导拍摄侧脸的示意图;
图8为本申请获取替换所述第一人脸图像的第二人脸图像的方法流程图;
图9为本申请在客户端上的应用程序中,执行人脸替换的示意图;
图10为本申请第二人脸图像替换第一人脸图像的方法示意图;
图11为本申请正脸状态人眼示意图;
图12为本申请侧脸状态人眼示意图;
图13为本申请第一人脸图像与第二人脸图像融合叠加方法示意图;
图14为本申请另一实施例中人脸替换方法流程图;
图15为本申请生成第三人脸图像的方法流程图;
图16为本申请另一实施例中第一人脸图像与第二人脸图像融合叠加方法示意图;
图17为本申请完成一次人脸替换后再次进行人脸替换、视频替换或撤销恢复的界面示意图;
图18为视频动态人脸替换装置框图;
图19为本申请一个实施例的计算机设备基本结构框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本申请主要应用在对动态的视频文件中的某一个或多个特定的人物进行人脸替换,同时在视频文件中无论该特定的人物如何运动,或者脸部无论朝向哪一个方向,该变换的人脸都能与人物保持贴合,具体的替换方法请参阅图1。
本实施例公开一种视频动态人脸替换方法,主要包括:
s1000、获取第一动态视频中每一帧画面中待替换的第一人脸图像,随帧画面同步记录对应的所述第一人脸图像的相对位置,所述第一人脸图像包括一个或多个人脸图像;
视频文件为包含了实时的音频、视频信息的多媒体文件,其包括多种输出格式,例如gif格式、flic格式、avi格式、mov格式、mpeg格式、rm格式或asf格式等等,视频中的用帧来表示一个画面,多个帧画面按照一定的顺序排列并按照一定的速率进行播放即成为视频文件。帧画面包括i帧(关键帧)、b帧(双向预测内插编码帧)以及p帧(前向预测编码帧)。i帧是帧间压缩编码的最重要帧。视频的编码是按照“组”来进行的,每一个组叫作gop(groupofpicture,图像组)。gop与gop之间是没有联系的。编码关系只在gop之间产生。每一个gop都是由关键帧开始的,i帧是一幅完整的画面,gop中间的帧都是不完整的,需要由关键帧、前面帧以及后面帧等一起运算得到。关键帧的间隔调节会影响gop的长度,进而影响到读取gop的速度。如果关键帧的间隔设置过大的话(gop长度过大),在必须用到关键帧的场合就可能被迫使用b/p帧来代替,这就会降低画面质量。关键帧是帧间压缩的基础,典型的gop(ibp帧包)结构一般是:ibbpbbpbbpbbpbbpbb。p帧表示的是这一帧跟之前的一个关键帧(或p帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面,也就是差别帧,p帧没有完整画面数据,只有与前一帧的画面差别的数据。b帧是双向差别帧,也就是b帧记录的是本帧与前后帧的差别,要解码b帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。p帧和b帧在视频解码的过程中,都是由参考帧结合运动向量和差值补偿而得到的,可见,在画面呈现过程中,最主要的是i帧,动态的视频文件是通过多个不同的i帧组合播放形成的,通过在视频文件中提取出i帧图像,在i帧图形中获取待替换的第一人脸图像的最终画面进行脸部替换即可,由于与之相关的b帧和p帧是根据i帧而得到的,因此b帧和p帧也自然而然进行了换脸。
本申请中公开的获取第一动态视频中每一帧画面中待替换的第一人脸图像,实际上是指第一动态视频中每一个i帧画面中,待替换的第一人脸图像。而随帧画面同步记录对应的所述第一人脸图像的相对位置,即根据当前的i帧画面同步记录该画面中第一人脸图像的相对位置。由于第一动态视频中包含多个i帧画面,因此可得到一个针对第一人脸图像及其相对位置的集合。
需要说明的是,本实施例中公开的第一人脸图像包括一个或多个人脸图像,通过用户指定获取,用户指定的方法包括,用户通过客户端在第一动态视频上的某一帧画面中选择其中一个或多个人物作为待替换人脸的目标人物,系统将选中的目标人物的人脸作为第一人脸图像,同时记录当前帧画面中,该第一人脸图像的相对位置。当选择一个待替换的目标人物时,替换过程中只通过跟踪这一个目标人物进行人脸替换;当选择多个待替换的目标人物时,替换过程中将待替换的目标人物与所替换的人物进行一一匹配后执行替换任务。匹配的过程包括但不局限于采用关联参数锁定目标的方式,本实施例中,采用关联参数锁定目标的方式包括将待替换的目标人物与所替换的人物设置对应匹配关系,例如待替换目标人物参数设置成d1,d2,d3等,替换的人脸参数设置成t1,t2,t3,其中d1与t1匹配,d2与t2匹配,d3与t3匹配,以此方式达到同时或分别替换多个人脸的目的。
相对位置包括人脸相对于正脸位置的转动角度。这里的正脸位置为人眼睛直视前方状态下,人脸与当前画面平行的位置,参考图2,正脸状态下能看到人脸的双眼、鼻子、嘴巴的全貌,以正脸状态作为参考位置,识别人脸的转动角度即相对位置,而侧脸状态下,不同的转动位置,识别出的双眼、鼻子和嘴巴的位置以及大小、形状会发生变化,脸部位置旋转不同的转动角度对应不同的相对位置关系,通过识别第一人脸图像的相对位置,即可得到所述第一人脸图像相对于改人物正脸状态下的旋转角度,以及人脸的双眼、鼻子、嘴巴等的相对位置关系。
在一实施例中,请参阅图3,所述第一人脸图像的人脸相对位置的获取方法包括:
s1100、识别所述第一人脸图像中的关键点位置,其中,所述关键点设置有多个,分别分布于所述第一人脸图像的指定位置;
关键点为人脸图像上表征关键部位的特征点,其中,关键部位包括人脸外轮廓、眼睛、眉毛、鼻子、嘴巴等,在每一个关键部位上,可同时设置设置多个关键点,以通过关键点的排列描绘出该关键部位的轮廓,可以理解的是,某一个关键部位的关键点越多,关键点之间的连线描绘出来的轮廓越接近人脸的实际情况,因此关键点都分布在第一人脸图像的指定位置。
s1200、根据所述关键点之间的相对位置关系识别所述第一人脸图像的转动角度。
通过图2的人脸转动对比图可以看出,人脸转向不同的方向和角度,其关键部位的关键点之间的位置和距离间隔会发生改变,例如当人脸处于正脸状态时,左眼、右眼、左眉毛、右眉毛、以及嘴巴、鼻子的左右两边上的关键点基本是相互对称的,当人脸向左或向右旋转时,检测到的各个关键部位的关键点的位置会发生变化,例如当人脸向左旋转60度时,左眼角的关键点基本与人脸轮廓重合,而左眼位置的某些关键点也可能因位置的重合和检测不到,而右眼的眼角的水平延长线与人脸轮廓的距离边长,人脸轮廓中,左脸轮廓的关键点与鼻尖上的关键点位置的距离变短,右脸轮廓的关键点与鼻尖上的关键点位置的距离边长。旋转不同的角度和方向,相对于人脸正脸位置的关键点的位置都会发生变化,基于这种人脸关键部位关键点的变化趋势,可推测、判断出人脸旋转的角度。
s2000、获取替换所述第一人脸图像的第二人脸图像,其中,所述第二人脸图像包括多个相对位置的人脸图像;
但获取了待替换的第一人脸图像,则还需要选择用于替换所述第一人脸图像的第二人脸图像。在一实施例中,第二人脸图像可以从预设人脸图像数据库中选择目标人脸图像,其中,所述目标人脸图像包括一个或多个人脸的相对位置。请参阅图4,这里的预设人脸图像数据库中预先存储有的符合条件的人脸图像,符合条件包括有与第一人脸图像的相对位置在预设范围内的第二人脸图像,或者同时存在多个相对位置的第一人脸图像,以供选择出符合当前第一人脸图像的替换人脸图像。
所述人脸图像数据库中的人脸图像通过引导拍摄获得,请参阅图5,引导拍摄表示引导客户端的用户按照指示拍摄一张或多张符合角度要求的人脸图像,并存储在图像数据库中,或者进行缓存,以供选取符合条件的第二人脸图像时进行选择,例如通过引导用户,拍摄出图2下方的多个角度的侧脸照片以供后续选择,其引导拍摄是通过客户端实现,客户端包括手机、平板或者电脑上的应用程序,请参阅图6为客户端上的应用程序引导拍摄正脸的示意图,图7为客户端上的应用程序引导拍摄侧脸的示意图,图中的相册,属于人脸图像数据库。
在另一实施例中,人脸图像数据库中的人脸图像还可以是通过导入方式获得,即通过自行拍摄出各个不同角度的人脸图片或者通过某个特定的第三方拍摄工具,拍摄符合条件的多个人相对位置的人脸图像,并将图片导入到人脸图像数据库中。
这里的符合条件的人脸图像包括,第二人脸图像中包含有多个相对位置的人脸图像。在步骤s1000中公开了人脸图像相对于正脸状态转动不同的角度会对应不同的相对位置,本申请中,对于作为替换的人脸图像,需要获取多个相对位置的人脸图像信息,在一实施例中,需要同时获取得到正脸状态、向左旋转30度,向左旋转60度、向右旋转30度,向右旋转60度五个角度的人脸示意图,如图2所示。但是在本申请中,不局限于上述几种旋转角度的人脸图像,还包括其他任意旋转角度的人脸图像,可以理解的是,不同人脸旋转角度的图像越多,对后续人脸替换的真实度越高。
在一实施例中,通过对一张或多张图片进行预处理后得到符合条件的人脸图像的方法包括,识别图片中的作为替换的目标人脸图像的人脸相对位置,选取符合预设条件的人脸相对位置的人脸图像作为第二人脸图像。
在一实施例中,请参阅图8,当第二人脸图像是通过动态的视频中获取时,所述获取替换所述第一人脸图像的第二人脸图像的方法包括:
s2100、从第三动态视频中识别所述替换所述第一人脸图像的目标人脸图像,及其人脸的相对位置;
s2200、选择人脸的相对位置符合第二预设条件的目标人脸图像作为第二人脸图像。
第三动态视频中可能存在多个人脸图像,选取作为替换的人脸作为目标人脸图像,其选取方法与步骤s1000中一样,可通过在客户端上查看该视频,选中目标人物,获取该目标人物的人脸作为目标人脸图像,当选中了目标人脸图像后,根据步骤s1100和步骤s1200的工作原理,识别视频中每一帧关键帧画面中目标人脸图像的关键部位的关键点的相对位置,并确定该帧画面中目标人脸图像的相对位置。在第一动态视频中,有很多张关键帧,即有多张i帧画面,通过对i帧画面进行识别,可获取很多目标人脸图像,以及人脸的相对位置,在众多目标人脸图像中,选择符合第二预设条件的作为第二人脸图像。
由于目标人脸图像来源于不同的关键帧,而在某些关键帧中识别出的目标人脸图像相对位置是相同的,可能存在重复提取目标人脸图像的问题,为了使获取的第二人脸图像数量更为精简,第二预设条件包括目标人脸图像的相对位置不重复,以此来对视频中的目标人脸图像进行筛选,以减少后续进行人脸替换过程中对第二人脸图像进行对比与筛选的时间。
s3000、选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像,以生成第二动态视频。
当同时获取了待替换的第一人脸图像和第二人脸图像后,根据第一人脸图像中人脸的相对位置,在多个人脸旋转角度的第二人脸图像中匹配与所述第一人脸图像的相对位置达到第一预设条件的第二人脸图像来替换所述第一人脸图像,请参阅图9,为在客户端上的应用程序中,执行人脸替换的示意图。
这里的第一预设条件包括多种方式,在一实施例中,第一预设条件包括所述第二人脸图像中的相对位置与所述第一人脸图像的相对位置的差值最小。由于相对位置为人脸以正脸为标准,相对于正脸的旋转角度,因此获取的第一人脸图像的相对位置中包括了其相对于正脸位置的旋转角度。在第二人脸图像中,包括了多个旋转角度的第二人脸图像,因此在本实施例中,在第二人脸图像中选择旋转角度与第一人脸图像的相对位置的差值越小,则表示该第二人脸图像的人脸各个器官的相对位置越接近,为最为接近的人脸图像,选择该第二人脸图像替换第一人脸图像使图像的相似度最高。
在另一实施例中,第一预设条件包括所述第二人脸图像中的相对位置与第一人脸图像的相对位置的差值在第一预设范围内。由于相对位置为所识别的第一人脸图像与正脸状态下的相对旋转角度,且第二人脸图像为所收集的一个或多个人脸相对于正脸旋转角度的图像,不能保证能够从第二人脸图像中找到人脸旋转角度一样的图像,而当第一人脸图像的相对位置与第二人脸图像的相对位置之间的差值过大会导致第二人脸图像替换第一人脸图像后失真,因此对二者的差值设定第一预设范围,只有差值在预设范围内时,才允许将获取的第二人脸图像替换所述第一人脸图像,以确保替换后的真实度。
由于第一预设范围为关于人脸相对于正脸的旋转角度的范围值,当第二人脸图像的数量较多时,可能存在多张符合要求的人脸图像,因此,在一实施例中,当有两个或两个以上与所述第一人脸图像的相对位置的差值在预设范围内的第二人脸图像时,选择与所述第一人脸图像的相对位置的差值最小的第二人脸图像进行替换。通过此种方式,解决在第一预设范围内出现多个符合预设条件的第二人脸图像。
在一实施例中,当这个第一预设范围值是以当前第一人脸图像的相对位置为中间值,分别取偏向左旋转和偏向右旋转某一角度值时,可能存在偏向左和偏向右的两个差值相同的第二人脸图像,例如第一预设范围选取为当前第一人脸图像的±5度,当当前第一人脸图像的相对位置为向左旋转45度时,符合替换要求的第二人脸图像的相对位置的范围为向左旋转40度至向左旋转50度,当存在两张一样角度的人脸图像,或者差值的绝对值一样的两张人脸图像,例如分别存在一张向左旋转42度和向左旋转48度的人脸图像时,两张第二人脸图像的范围与第一人脸图像的差值绝对值都是3度,此时,可通过随机选取任意一张符合条件的第二人脸图像的方式,或者指定选取正向差值的第二人脸图像或者负向差值的第二人脸图像,例如指定是选取+3度的第二人脸图像或者-3度的第二人脸图像。
在一实施例中,请参阅图10,所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像的方法包括:
s3100、获取符合第一预设条件的所述第二人脸图像的关键点相对位置;
s3200、获取第一人脸图像的关键点相对位置;
s3300、对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合。
在选择第二人脸图像的同时,会通过第二人脸图像上的关键点识别出第二人脸图像的相对位置,以及识别出第一人脸图像的关键点的相对位置,可以理解的是,第一人脸图像上的关键点的数量和位置与第二人脸图像的关键点的数值和位置是相同的,不同之处在于关键点与关键点之间的相对位置关系,例如在眼睛部位,包括8个关键点,分别位于眼睛的左右眼角、上下眼睑的最高位置和最低位置以及中间区域,8个关键点的连线构成了眼睛的轮廓,当人脸转动时,从关键帧图片中获取到的人脸的眼睛的形状会发生变化,这8个关键点依据分布在眼睛的对应位置,只是相对位置关系会发生变化,请参阅图11,为正脸状态下眼睛的关键点示意图,图12为侧脸90度状态下眼睛的关键点示意图,可以看出,某些关键点被隐藏,随着人脸转动,各个关键点之间的相对距离也会发生变化。
上述第一预设条件有多种情况,无论何种情况,只要所选取的第二人脸图像与第一人脸图像之间存在差值,则需要对第二人脸图像进行一定的预处理使替换后的人脸更自然。在一实施例中,其中一种预处理的方法包括,移动第二人脸图像上的关键点,以使该关键点与所替换的第一人脸图像上表征相同位置的关键点重合,以使当前的第二人脸图像的整体轮廓与第一人脸图像的相似。
在另一实施例中,对第二人脸图像进行预处理包括对第二人脸图像的某一些特定的关键点与对应的第一人脸图像的关键点重合。某一些特定的关键点优选最能体现第二人脸图像与第一人脸图像相互贴合的关键点,例如该特定的关键点包括脸庞轮廓的关键点,当第二人脸图像的脸庞轮廓与第一人脸图像的脸庞轮廓的关键点都重合时,第二人脸图像的轮廓与第一人脸图像的轮廓重合。
但是,在实际应用中,由于第一人脸图像与第二人脸图像之间的相对位置存在一定的差值,当将第二人脸轮廓的关键点移动至第一人脸轮廓的对应位置时,容易对整个第二人脸轮廓的画面产生一定的拉伸,导致画面失真,因此,在一实施例中,采用一定的算法,对第二人脸图像的关键部位进行修正,在本实施例中,所述修正的算法为:
cp=(percent1*(p2-p1))/distance+p1
其中,cp是生成的新关键点,percent1为第二人脸图像需要修正的百分比,p1表示第一人脸图像上关键点的位置,p2为第二人脸图像上关键点的位置,distance表示第一人脸图像的关键点p1与对应的第二人脸图像的关键点p2之间在初始重合状态下的距离。
通过上述方式,对第二人脸图像进行一定程度的修正,以使第二人脸图像在替换第一人脸图像过程中更真实,其中,该程度通过percent1来决定。
在一实施例中,请参阅图13,所述对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合之后还包括:
s3400、对所述第一人脸图像和第二人脸图像设置融合度参数,其中所述融合度参数为表征人脸图像叠加透明度的参数值;
s3500、将所述第二人脸图像叠加在所述第一人脸图像之上。
融合度参数为第一人脸图像和第二人脸图像相互融合的参数值,在一实施例中,第二人脸图像直接替换第一人脸图像,第一人脸图像被擦除或者完全覆盖,以完成替换。但是,在另一实施例中,第二人脸图像是以透明图层的形式覆盖在第一人脸图像上,这样,第二人脸图像与第一人脸图像形成一定的融合,本实施例中的融合的参数值则为表针第一人脸图像和第二人脸图像的透明度的参数值,通常以百分比表示,例如:100%表示全透明,随着数值的减小,透明度越低,0%表示不透明。
采用这种融合的方式,可在第二人脸图像上显现出第一人脸图像上的某些特质。例如在第一人脸图像中有眼影或腮红的装饰,将第二人脸图像的融合参数值设置成50%,这样当第二人脸图像覆盖在第一人脸图像上时,第一人脸图像中的眼影或腮红的颜色也会透过第二人脸图像被查看到,以达到美妆融合的效果。
在一实施例中,对第二人脸图像和第一人脸图像进行融合的处理公式包括:
result=src*(0.5+percent2/2)+dst*(0.5–percent3/2)
其中,results是融合后的效果值,percent2为第一人脸图像的融合参数值,percent3为第二人脸图像的融合参数值,src是第一人脸图像,dst是第二人脸图像。通过这一处理方式,呈现最终融合的效果。
在另一实施例中,所述第一预设条件还包括所述第二人脸图像中的相对位置与第一人脸图像的相对位置的差值在第二预设范围内。在本实施例中,请参阅图14,所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像的方法包括:
s3600、获取所述相对位置的差值在第二预设范围内的一个或多个目标第二人脸图像;
s3700、根据所述目标第二人脸图像的相对位置,按照预设生成规则,生成与所述第一人脸图像的相对位置相同的第三人脸图像;
s3800、将所述第三人脸图像替换所述第一人脸图像。
在本实施例中,第二预设范围表示一个针对相对位置的差值的区间值,由于人脸在相对于正脸位置旋转过程中具有一定的连贯性和规律性,通过获取到某一相对位置区间值的第二人脸图像,即可根据这一规律生成与第一人脸图像的相对位置相同的人脸图像,称之为第三人脸图像。
在一实施例中,请参阅图15,所述根据所述目标第二人脸图像的相对位置,按照预设生成规则,生成与所述第一人脸图像的相对位置相同的第三人脸图像的方法包括:
s3710、获取符合第二预设范围的一个或多个第二人脸图像的关键点相对位置;
s3720、获取第一人脸图像的关键点相对位置;
s3730、对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合,得到第三人脸图像。
第二预设范围为一个获取第二人脸图像的限定范围区间,在该相对位置的区间内的所有第二人脸图像都符合要求,这些符合要求的第二人脸图像是生成第三人脸图像的基础,本实施例中,以第二人脸图像作为参考数据,获取所选取的第二人脸图像的各个关键部位的关键点的相对位置,结合所识别的第一人脸图像的关键点的相对位置信息,生成第三人脸图像。
在本实施例中,生成第三人脸图像可通过神经网络模型实现,通过设定第二预设范围值,获取符合第二预设范围的所有第二人脸图像,将第二人脸图像输入至神经网络模型中,以获取的第一人脸图像的相对位置为参考值,在第二人脸图像的基础上,将第二人脸图像的面部轮廓与第一人脸图像的相同位置的关键点重合,以在大小上限制第二人脸图像,同时,经过神经网络模型,变换上述第二人脸图像的其他关键部位,例如眼睛、鼻子、嘴巴、眉毛等关键点之间的距离,以使输出的第三人脸图像在保持该第二人脸图像真实样貌的前提下,达到与第一人脸图像相同旋转角度,使替换的图像更贴合。
本实施例中,预设生成规则嵌入至神经网络模型中,神经网络模型对生成规则进行理解和学习,以训练收敛至目标结果状态。优选的一种方案为,采用gan(generativeadversarialnetworks,生成式对抗网络)深度学习模型对第一人脸图像和第二人脸图像进行识别,以及根据预设的生成规则生成第三人脸图像。
在一实施例中,请参阅图16,所述对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合,得到第三人脸图像之后还包括:
s3740、对所述第一人脸图像和第三人脸图像设置融合度参数,其中所述融合度参数为表征人脸图像叠加透明度的参数值;
s3750、将所述第三人脸图像叠加在所述第一人脸图像之上。
在本实施例中,融合度参数为第一人脸图像和第三人脸图像相互融合的参数值,在一实施例中,第三人脸图像直接替换第一人脸图像,第一人脸图像被擦除或者完全覆盖,以完成替换。但是,在另一实施例中,第三人脸图像是以透明图层的形式覆盖在第一人脸图像上,这样,第三人脸图像与第一人脸图像形成一定的融合,本实施例中的融合的参数值则为表针第一人脸图像和第三人脸图像的透明度的参数值,通常以百分比表示,例如:100%表示全透明,随着数值的减小,透明度越低,0%表示不透明。
采用这种融合的方式,可在第三人脸图像上显现出第一人脸图像上的某些特质。例如在第一人脸图像中有眼影或腮红的装饰,将第二人脸图像的融合参数值设置成50%,这样当第三人脸图像覆盖在第一人脸图像上时,第一人脸图像中的眼影或腮红的颜色也会透过第三人脸图像被查看到,以达到美妆融合的效果。其具体的融合处理方式与步骤s3400和步骤s3500相类似。
上述公开的内容为在视频文件中选取一个目标人物进行人脸替换的方式,同样的原理,可推导出在视频文件中同时选取多个目标人物进行人脸替换,其中替换的方式包括但是不局限于,将视频文件中所选中的多个目标人物替换成同一个人脸,或者将视频文件中所选中的多个目标人物分别替换成不同的人脸,当替换成不同的人脸时,可同步在替换选项中指定多个第一人脸图像与多个第二人脸图像的对应关系,以便于同步进行替换,也可以单独分别进行替换,先将其中一个第一人脸图像替换成第二人脸图像或第三人脸图像,再选中第二个第一人脸图像替换成另一个第二人脸图像或第三人脸图像。无论如何替换,其对应的替换工作原理和处理方式均与上述公开的方式一致。
在一实施例中,所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像之后,还包括:
在替换后的人脸之上叠加特效参数,其中,所述特效参数包括指定位置的色彩参数、亮度参数、大小参数和/或素材覆盖参数。
特效参数中指定位置的色彩参数在实际应用中包括在人脸上化妆,例如使眉毛颜色加深、在脸庞位置添加腮红,对唇部添加口红等,特效参数中指定位置的亮度参数在实际应用中包括磨皮、提亮肤色、添加滤镜等等,特效参数中的大小参数在实际应用中包括增大眼珠部位,使眼睛变大,将嘴巴部位缩小等等。特效参数中的指定位置的素材覆盖参数包括萌拍或饰物添加,例如在人脸上添加发饰、添加眼睛,或者在人脸上添加动物耳朵、动物胡子等等。
可以理解的是,上述特效参数也可以看成是一种图层,通过设置上述图层的透明度,覆盖在人脸的指定位置以完成特效叠加。
在另一实施例中,在步骤s3000所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像,以生成第二动态视频之后,还包括:
在所述第二动态视频上继续对所述第二人脸图像进行替换。
本实施例中,请参阅图17,当前的视频是已经进行了人脸替换的界面,在第一动态视频中已经进行过一次人脸替换的前提下,通过选择“更换人脸”可继续换一个人脸作为替换的人脸,即对当前替换的人脸进行修改,可以理解的是,其替换的过程与上述步骤s1000-s3000的步骤是一样的,获取替换所述第一人脸图像的第二人脸图像,并重新选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像。
在另一实施例中,在所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像,以生成新的第二动态视频之后,还包括:
将所述第二动态视频替换成第四动态视频,并用所述第二人脸图像替换所述第四动态视频中的指定的人脸图像。
本实施例的技术方案为,在保留步骤s2000中的第二人脸图像的前提下,将第一动态视频替换成第四动态视频,即获取第四动态视频中每一帧画面中待替换的第一人脸图像,并随帧画面同步记录对应的所述第一人脸图像的相对位置,将之前的第二人脸图像替换从第四动态视频中获取的待替换的第一人脸图像。
上述两种方案,一种是在第二动态视频的基础上,保留第一动态视频的内容,替换第二人脸图像,另一种是保留第二人脸图像,替换第一动态视频的内容,两种方案可以单独使用,也可以同时具备,供用户选择使用。
进一步的,在另一实施例中,在所述选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像,以生成新的第二动态视频之后,还包括:
在所述第二动态视频上将所述第二人脸图像恢复至所述第一人脸图像,或者将所替换的第四动态视频恢复到第二动态视频或第一动态视频。
本实施例的方案为对第二动态视频进行恢复,即将所覆盖的第二人脸图像又恢复到第一人脸图像的视频状态,即恢复到初始的第一动态视频状态。或者,在第二人脸图像不变的情况下,将所替换的第四动态视频恢复到第二动态视频,甚至是直接删除第二人脸图像,恢复到第一动态视频状态,以便于重新替换或者按照原始视频观看。
另一方面,请参阅图18,本申请公开公开一种视频动态人脸替换装置,包括:
第一获取模块1000:被配置为执行获取第一动态视频中每一帧画面中待替换的第一人脸图像,随帧画面同步记录对应的所述第一人脸图像的相对位置,所述第一人脸图像包括一个或多个人脸图像;
第二获取模块2000:被配置为执行获取替换所述第一人脸图像的第二人脸图像,其中,所述第二人脸图像包括多个相对位置的人脸图像;
第一替换模块3000:被配置为执行选择与所述第一人脸图像的人脸相对位置符合第一预设条件的第二人脸图像替换所述第一人脸图像,以生成第二动态视频。
可选的,所述相对位置包括人脸相对于正脸位置的转动角度,所述第一获取模块包括:
识别模块:被配置为执行识别所述第一人脸图像中的关键点位置,其中,所述关键点设置有多个,分别分布于所述第一人脸图像的指定位置;
角度获取模块:被配置为执行根据所述关键点之间的相对位置关系识别所述第一人脸图像的转动角度。
可选的,所述第二获取模块包括:
第一选择模块:被配置为执行从预设人脸图像数据库中选择目标人脸图像,其中,所述目标人脸图像包括一个或多个人脸的相对位置。
可选的,所述人脸图像数据库中的人脸图像通过引导拍摄获得或者通过导入符合指定条件的一张或多张图片获得。
可选的,所述第二获取模块包括:
目标人脸识别模块:被配置为执行从第三动态视频中识别所述替换所述第一人脸图像的目标人脸图像,及其人脸的相对位置;
第二选择模块:被配置为执行选择所述人脸的相对位置符合第二预设条件的目标人脸图像作为第二人脸图像。
可选的,所述第一预设条件包括所述第二人脸图像中的相对位置与第一人脸图像的相对位置的差值最小。
可选的,所述第一预设条件包括所述第二人脸图像中的相对位置与第一人脸图像的相对位置的差值在第一预设范围内。
可选的,当存在两个或两个以上与所述第一人脸图像的相对位置的差值在第一预设范围内的第二人脸图像时,选择与所述第一人脸图像的相对位置的差值最小的第二人脸图像进行替换。
可选的,所述替换模块包括:
第一关键点获取模块:被配置为执行获取符合第一预设条件的所述第二人脸图像的关键点相对位置;
第二关键点获取模块:被配置为执行获取第一人脸图像的关键点相对位置;
第一处理模块:被配置为执行对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合。
可选的,还包括:
第一融合参数设置模块:被配置为执行对所述第一人脸图像和第二人脸图像设置融合度参数,其中所述融合度参数为表征人脸图像叠加透明度的参数值;
第一融合叠加模块:被配置为执行将所述第二人脸图像叠加在所述第一人脸图像之上。
可选的,所述第一预设条件包括所述第二人脸图像中的相对位置与第一人脸图像的相对位置的差值在第二预设范围内。
可选的,所述替换模块包括:
第三获取模块:被配置为执行获取所述相对位置的差值在所述第二预设范围内的一个或多个目标第二人脸图像;
生成模块:被配置为执行根据所述目标第二人脸图像的相对位置,按照预设生成规则,生成与所述第一人脸图像的相对位置相同的第三人脸图像;
第一替换子模块:被配置为执行将所述第三人脸图像替换所述第一人脸图像。
可选的,所述根据所述目标第二人脸图像的相对位置,按照预设生成规则,生成与所述第一人脸图像的相对位置相同的第三人脸图像的方法包括:
第三关键点获取模块:被配置为执行获取符合第二预设范围的一个或多个目标第二人脸图像的关键点相对位置;
第四关键点模块模块:被配置为执行获取第一人脸图像的关键点相对位置;
第二处理模块:被配置为执行对所述第二人脸图像进行预处理,以使所述第二人脸图像的关键点与对应的第一人脸图像的关键点重合,得到第三人脸图像。
可选的,还包括:
第二融合参数设置模块:被配置为执行对所述第一人脸图像和第三人脸图像设置融合度参数,其中所述融合度参数为表征人脸图像叠加透明度的参数值;
第二融合叠加模块:被配置为执行将所述第三人脸图像叠加在所述第一人脸图像之上。
可选的,还包括:
特效叠加模块:被配置为执行在替换后的人脸之上叠加特效参数,其中,所述特效参数包括指定位置的色彩参数、亮度参数、大小参数和/或素材覆盖参数。
可选的,还包括:
第二替换模块:被配置为执行在所述第二动态视频上继续对所述第二人脸图像进行替换。
可选的,还包括:
第三替换模块:被配置为执行将所述第二动态视频替换成第四动态视频,并用所述第二人脸图像替换所述第四动态视频中的指定的人脸图像。
可选的,还包括:
恢复模块:被配置为执行在所述第二动态视频上将所述第二人脸图像恢复至所述第一人脸图像,或者将所替换的第四动态视频恢复到第二动态视频或第一动态视频。
可选的,获取第一动态视频中每一帧画面中待替换的第一人脸图像及其相对位置的方法包括从第一动态视频中的每一帧画面的i帧中获取第一人脸图像及其相对位置;
从第三动态视频中识别所述替换所述第一人脸图像的目标人脸图像及其人脸的相对位置的方法包括从第三动态视频中的每一帧画面的i帧中获取所述替换所述第一人脸图像的目标人脸图像及其人脸的相对位置。
由于上述视频动态人脸替换方法是视频动态人脸替换装置一一对应的方法,其实现原理一样,因此基于视频动态人脸替换装置的具体说明此处不再赘述。
本发明实施例提供计算机设备基本结构框图请参阅图19。
该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种视频动态人脸替换方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种视频动态人脸替换方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图19中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
计算机设备通过接收关联的客户端发送的提示行为的状态信息。通过验证上述任务条件是否达成,进而向关联终端发送对应的预设指令,以使关联终端能够根据该预设指令执行相应的操作,从而实现了对关联终端的有效监管。同时,在提示信息状态与预设的状态指令不相同时,服务器端控制关联终端持续进行响铃,以防止关联终端的提示任务在执行一段时间后自动终止的问题。
本发明还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例所述视频动态人脸替换方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。