视频特效的生成方法、装置、电子设备及存储介质与流程

文档序号:27091332发布日期:2021-10-26 19:26阅读:99来源:国知局
视频特效的生成方法、装置、电子设备及存储介质与流程

本公开涉及计算机技术领域,尤其涉及一种视频特效的生成方法、装置、电子设备及存储介质。

背景技术

随着计算机技术的发展,视频播放应用越来越受用户的喜爱,例如直播视频应用、短视频分享应用,用户能够在视频播放应用中观看视频。在视频播放应用中,越来越多的视频中会添加一些特效来吸引用户的注意力。相关技术中,通常在视频中添加的视频特效是以固定的样式来显示的,如在视频中显示弹幕是从右向左移动,或者,在视频中显示红包雨逐渐下落等,但以固定的样式来显示的视频特效的显示效果差。



技术实现要素:

本公开提供了一种视频特效的生成方法、装置、电子设备及存储介质,提升了视频的显示效果。

根据本公开实施例的一方面,提供一种视频特效的生成方法,所述视频特效的生成方法包括:

获取视频的多个目标视频帧,多个所述目标视频帧包含目标对象;

基于每个所述目标视频帧中的所述目标对象的目标轮廓片段,确定每个所述目标视频帧中待显示的目标字符的显示位置,所述目标轮廓片段由至少两个轮廓关键点连接而成,所述轮廓关键点通过对所述目标对象进行轮廓识别得到;

在每个所述目标视频帧中的显示位置上渲染出所述目标字符,将渲染后的多个所述目标视频帧按照时间次序组合成目标视频;

其中,在所述目标轮廓片段的所述目标方向上,相邻的任两个所述目标视频帧中的前一个所述目标视频帧中所述目标字符的显示位置,与当前所述目标视频帧中的所述目标字符的显示位置间隔第一距离。

在一些实施例中,所述获取视频的多个目标视频帧之前,所述视频特效的生成方法还包括:

确定所述视频中的参考视频帧,所述参考视频帧为所述多个目标视频帧之前、且包含所述目标对象的视频帧;

在所述参考视频帧中,识别所述目标对象的至少两个第一轮廓关键点,将识别出的所述至少两个第一轮廓关键点连接,构成第一轮廓片段;

确定每个所述目标视频帧中的所述目标对象的目标轮廓片段的过程,包括:

对于每个所述目标视频帧,基于所述第一轮廓片段在所述参考视频帧中的位置,将所述第一轮廓片段映射至所述目标视频帧中的相同位置,得到第二轮廓片段;

在所述目标视频帧中,识别所述目标对象的至少两个第二轮廓关键点,基于所述至少两个第一轮廓关键点与所述至少两个第二轮廓关键点之间的位置差异,确定调整参数;

在所述目标视频帧中,基于所述调整参数对所述第二轮廓片段进行调整,得到所述目标轮廓片段。

在一些实施例中,所述确定每个所述目标视频帧中的所述目标对象的目标轮廓片段的过程,包括:

基于所述目标字符在第i个所述目标视频帧中的显示位置,确定在第i+1个所述目标视频帧中对应的映射关键点,第i+1个所述目标视频帧中的所述映射关键点与所述目标对象之间的相对位置关系,与第i个所述目标视频帧中的显示位置对应的轮廓关键点与所述目标对象之间的相对位置关系相同,所述i为大于0的整数;

在第i+1个所述目标视频帧中,对所述目标对象进行轮廓识别得到多个轮廓关键点;

将第i+1个所述目标视频帧中的所述映射关键点及目标轮廓关键点连接,得到第i+1个所述目标视频帧中的所述目标轮廓片段,所述目标轮廓关键点为识别到的所述多个轮廓关键点中位于所述映射关键点的所述目标方向上的轮廓关键点。

在一些实施例中,多个所述目标视频帧的数量为N,N为大于1的整数,所述基于每个所述目标视频帧中的所述目标对象的目标轮廓片段,确定每个所述目标视频帧中待显示的目标字符的显示位置,包括:

基于第一个所述目标视频帧中的所述目标轮廓片段的第一个轮廓关键点,确定第一个所述目标字符在第一个所述目标视频帧中的显示位置;

以第j个所述目标视频帧中的所述目标轮廓片段的第一个轮廓关键点为起始点,基于所述起始点沿着所述目标轮廓片段的所述目标方向移动第二距离后的位置,确定第一个所述目标字符在第j个所述目标视频帧中的显示位置;

其中,所述j为大于1且不大于N的整数,所述第二距离是基于第j个所述目标视频帧与之前的任一所述目标视频帧之间的间隔时长及所述目标字符的移动速度确定。

在一些实施例中,所述以第j个所述目标视频帧中的所述目标轮廓片段的第一个轮廓关键点为起始点,基于所述起始点沿着所述目标轮廓片段的所述目标方向移动第二距离后的位置,确定第一个所述目标字符在第j个所述目标视频帧中的显示位置,包括:

在第j个所述目标视频帧中,在所述目标轮廓片段上查找参考轮廓关键点,其中所述目标轮廓片段上的多个轮廓关键点中,所述参考轮廓关键点与所述第一个轮廓关键点之间的第三距离小于所述第二距离,且与所述第二距离最接近;

以所述参考轮廓关键点为起点,沿着所述目标轮廓片段的所述目标方向,确定与所述起点之间具有目标距离的位置,所述目标距离为所述第三距离和所述第二距离之间的距离差;

基于所确定的位置,确定第一个所述目标字符在第j个所述目标视频帧中的显示位置。

在一些实施例中,所述视频特效的生成方法还包括:

在每个所述目标视频帧中,基于已确定的第一个所述目标字符的显示位置及字符间隔,沿着所述目标轮廓片段的所述目标方向,确定其余所述目标字符的显示位置。

在一些实施例中,所述基于每个所述目标视频帧中的所述目标对象的目标轮廓片段,确定每个所述目标视频帧中待显示的目标字符的显示位置之后,所述视频特效的生成方法还包括:

在每个所述目标视频帧中,基于所述目标视频帧中每个所述目标字符的显示位置及所述目标轮廓片段的所述目标方向,确定每个所述目标字符的旋转角度;

所述在每个所述目标视频帧中的显示位置上渲染出所述目标字符,包括:

在每个所述目标视频帧中按照已确定的显示位置及旋转角度渲染出每个所述目标字符。

根据本公开实施例的再一方面,提供一种视频特效的生成装置,所述视频特效的生成装置包括:

获取单元,被配置为执行获取视频的多个目标视频帧,多个所述目标视频帧包含目标对象;

确定单元,被配置为执行基于每个所述目标视频帧中的所述目标对象的目标轮廓片段,确定每个所述目标视频帧中待显示的目标字符的显示位置,所述目标轮廓片段由至少两个轮廓关键点连接而成,所述轮廓关键点通过对所述目标对象进行轮廓识别得到;

组合单元,被配置为执行在每个所述目标视频帧中的显示位置上渲染出所述目标字符,将渲染后的多个所述目标视频帧按照时间次序组合成目标视频;

其中,在所述目标轮廓片段的所述目标方向上,相邻的任两个所述目标视频帧中的前一个所述目标视频帧中所述目标字符的显示位置,与当前所述目标视频帧中的所述目标字符的显示位置间隔第一距离。

在一些实施例中,所述获取视频的多个目标视频帧之前,所述视频特效的生成装置还包括:

所述确定单元,还被配置为执行确定所述视频中的参考视频帧,所述参考视频帧为所述多个目标视频帧之前、且包含所述目标对象的视频帧;

构成单元,被配置为执行在所述参考视频帧中,识别所述目标对象的至少两个第一轮廓关键点,将识别出的所述至少两个第一轮廓关键点连接,构成第一轮廓片段;

映射单元,被配置为执行对于每个所述目标视频帧,基于所述第一轮廓片段在所述参考视频帧中的位置,将所述第一轮廓片段映射至所述目标视频帧中的相同位置,得到第二轮廓片段;

所述确定单元,被配置为执行在所述目标视频帧中,识别所述目标对象的至少两个第二轮廓关键点,基于所述至少两个第一轮廓关键点与所述至少两个第二轮廓关键点之间的位置差异,确定调整参数;

调整单元,被配置为执行在所述目标视频帧中,基于所述调整参数对所述第二轮廓片段进行调整,得到所述目标轮廓片段。

在一些实施例中,所述视频特效的生成装置还包括:

所述确定单元,还被配置为执行基于所述目标字符在第i个所述目标视频帧中的显示位置,确定在第i+1个所述目标视频帧中对应的映射关键点,第i+1个所述目标视频帧中的所述映射关键点与所述目标对象之间的相对位置关系,与第i个所述目标视频帧中的显示位置对应的轮廓关键点与所述目标对象之间的相对位置关系相同,所述i为大于0的整数;

识别单元,被配置为执行在第i+1个所述目标视频帧中,对所述目标对象进行轮廓识别得到多个轮廓关键点;

连接单元,被配置为执行将第i+1个所述目标视频帧中的所述映射关键点及目标轮廓关键点连接,得到第i+1个所述目标视频帧中的所述目标轮廓片段,所述目标轮廓关键点为识别到的所述多个轮廓关键点中位于所述映射关键点的所述目标方向上的轮廓关键点。

在一些实施例中,多个所述目标视频帧的数量为N,N为大于1的整数,所述确定单元,包括:

确定子单元,被配置为执行基于第一个所述目标视频帧中的所述目标轮廓片段的第一个轮廓关键点,确定第一个所述目标字符在第一个所述目标视频帧中的显示位置;

所述确定子单元,还被配置为执行以第j个所述目标视频帧中的所述目标轮廓片段的第一个轮廓关键点为起始点,基于所述起始点沿着所述目标轮廓片段的所述目标方向移动第二距离后的位置,确定第一个所述目标字符在第j个所述目标视频帧中的显示位置;

其中,所述j为大于1且不大于N的整数,所述第二距离是基于第j个所述目标视频帧与之前的任一所述目标视频帧之间的间隔时长及所述目标字符的移动速度确定。

在一些实施例中,所述确定子单元,还被配置为执行在第j个所述目标视频帧中,在所述目标轮廓片段上查找参考轮廓关键点,其中所述目标轮廓片段上的多个轮廓关键点中,所述参考轮廓关键点与所述第一个轮廓关键点之间的第三距离小于所述第二距离,且与所述第二距离最接近;以所述参考轮廓关键点为起点,沿着所述目标轮廓片段的所述目标方向,确定与所述起点之间具有目标距离的位置,所述目标距离为所述第三距离和所述第二距离之间的距离差;基于所确定的位置,确定第一个所述目标字符在第j个所述目标视频帧中的显示位置。

在一些实施例中,所述确定单元,还被配置为执行在每个所述目标视频帧中,基于已确定的第一个所述目标字符的显示位置及字符间隔,沿着所述目标轮廓片段的所述目标方向,确定其余所述目标字符的显示位置。

在一些实施例中,所述确定单元,还被配置为执行在每个所述目标视频帧中,基于所述目标视频帧中每个所述目标字符的显示位置及所述目标轮廓片段的所述目标方向,确定每个所述目标字符的旋转角度;

所述组合单元,被配置为执行在每个所述目标视频帧中按照已确定的显示位置及旋转角度渲染出每个所述目标字符。

根据本公开实施例的再一方面,提供了一种电子设备,所述电子设备包括:

一个或多个处理器;

用于存储所述一个或多个处理器可执行指令的易失性或非易失性存储器;

其中,所述一个或多个处理器被配置为执行第一方面所述的视频特效的生成方法。

根据本公开实施例的再一方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述方面所述的视频特效的生成方法。

根据本公开实施例的再一方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述方面所述的视频特效的生成方法。

本公开实施例提供的方法、装置、电子设备及存储介质,由于目标字符在每个目标视频帧中的显示位置均是基于每个目标视频帧中的目标轮廓片段确定的,且目标字符在多个目标视频帧中的显示位置沿着目标轮廓片段的目标方向依次排列,在目标方向上相邻的任两个目标视频帧中的显示位置间隔有距离,在每个目标视频帧中的显示位置上渲染出目标字符后,由渲染后的多个目标视频帧按照时间次序组合成的目标视频是添加特效后的视频,以使后续在播放目标视频的过程中,能够呈现出目标字符沿着目标对象的轮廓移动的效果,并且使得目标字符的显示位置与目标对象相关联,即使目标对象移动,目标字符也会随着目标对象的移动而移动并沿着目标对象的轮廓移动,丰富了目标字符的显示样式,使得目标字符不再按照死板的移动轨迹来移动,从而提升了字符显示效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种实施环境的示意图。

图2是根据一示例性实施例示出的一种视频特效的生成方法的流程图。

图3是根据一示例性实施例示出的另一种视频特效的生成方法的流程图。

图4是根据一示例性实施例示出的一种轮廓的示意图。

图5是根据一示例性实施例示出的一种关键点之间的连接线的示意图。

图6是根据一示例性实施例示出的一种目标字符显示的示意图。

图7是根据一示例性实施例示出的一种显示的目标视频帧的示意图。

图8是根据一示例性实施例示出的一种目标字符沿着轮廓移动的示意图。

图9是根据一示例性实施例示出的一种视频特效的生成装置的框图。

图10是根据一示例性实施例示出的另一种视频特效的生成装置的框图。

图11是根据一示例性实施例示出的一种终端的框图。

图12是根据一示例性实施例示出的一种服务器的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图说明中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开所使用的术语“至少一个”、“多个”、“每个”、“任一”,至少一个包括一个、两个或两个以上,多个包括两个或两个以上,而每个是指对应的多个中的每一个,任一是指多个中的任意一个。举例来说,多个目标字符包括3个目标字符,而每个是指这3个目标字符中的每一个目标字符,任一是指这3个目标字符中的任意一个,能够是第一个,或者,是第二个,或者,是第三个。

需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等),均为经用户授权或者经过各方充分授权的信息。

本公开实施例提供的视频特效的生成方法由电子设备执行,在一些实施例中,该电子设备为终端,在一些实施例中,该终端为手机、平板电脑、计算机等多种类型的终端。在一些实施例中,该电子设备为服务器,在一些实施例中,该服务器为一台服务器,或者由若干服务器组成的服务器集群,或者是一个云计算服务中心。在一些实施例中,该电子设备包括终端和服务器。

图1是根据一示例性实施例提供的一种实施环境的示意图,该实施环境包括:终端101和服务器102,终端101与服务器102通过网络连接,能够与服务器102进行交互。

终端101上安装由服务器102提供服务的目标应用,终端101能够通过该目标应用实现例如数据传输、消息交互等功能。例如,目标应用为视频分享应用,该视频分享应用具有视频分享的功能,当然,该视频分享应用还能够具有其他功能,例如,点评功能、购物功能、导航功能、游戏功能等。在一些实施例中,服务器102为该目标应用的后台服务器或者为提供云计算以及云存储等服务的云服务器。服务器102用于基于视频的多个目标视频帧生成目标视频,终端101用于基于目标应用与服务器102交互获取该目标视频,播放该播放目标视频,呈现出目标字符沿着目标对象的轮廓逐渐移动的效果。

在一些实施例中,该实施环境包括多个终端101,该多个终端101中包括主播终端和至少一个用户终端,该多个终端101上均安装有直播应用,该服务器102用于为该直播应用提供服务。

主播终端基于直播应用登录直播间,能够基于该直播应用将直播视频上传至服务器102,服务器102能够接收主播终端上传的直播视频,基于直播视频的多个包含目标对象的目标视频帧,获取添加视频特征的目标直播视频,将目标直播视频发布在主播终端对应的直播间中,至少一个用户终端登录该直播间,该至少一个终端能够接收服务器102发布在直播间中的目标直播视频,并播放该目标直播视频,呈现出目标字符沿着目标对象的轮廓逐渐移动的效果。

本公开实施例提供的方法能够应用于多种场景下。

例如,直播场景下。

主播终端基于用户账号登录该直播应用,向为该直播应用提供服务的服务器发送直播视频,服务器在接收到主播终端上传的直播视频后,为该主播终端创建一个直播间,采用本公开实施例提供的视频特效的生成方法,获取添加视频特效后的直播视频,并将添加视频特效后的直播视频发布在该直播间中,登录在该直播间中的任一用户终端接收到添加视频特效后的直播视频后进行播放,在播放添加视频特效后的直播视频的过程中,显示目标字符沿着主播的轮廓移动的画面,丰富了直播视频的显示样式,以提高直播视频对用户的吸引力。

例如,视频播放场景下。

终端安装有视频分享应用,服务器为该视频分享应用提供服务。服务器采用本公开实施例提供的视频特效的生成方法,获取添加视频特效的目标视频。终端基于用户账号登录视频分享应用,向为该服务器发送视频获取请求,服务器接收该视频获取请求,查询该视频获取请求携带的视频标识对应的目标视频,将目标视频发送至该终端,终端接收到目标视频后进行播放,在播放目标视频的过程中,显示目标字符沿着目标视频包含的目标对象的轮廓移动的画面,丰富了视频的显示样式,提升了目标字符的显示效果。

图2是根据一示例性实施例示出的一种视频特效的生成方法的流程图,参见图2,该方法由电子设备执行,包括以下步骤:

201、获取视频的多个目标视频帧,多个目标视频帧包含目标对象。

其中,该多个目标视频帧为该视频包含的视频帧,每个目标视频帧包含的目标对象为人、动物等。

202、基于每个目标视频帧中的目标对象的目标轮廓片段,确定每个目标视频帧中待显示的目标字符的显示位置,目标轮廓片段由至少两个轮廓关键点连接而成,轮廓关键点通过对目标对象进行轮廓识别得到。

其中,轮廓关键点为目标对象的轮廓上的关键点,目标轮廓片段用于确定待显示的目标字符在目标视频帧中的显示位置,目标轮廓片段为目标对象的轮廓的部分片段,或者,为目标对象的完成的轮廓。在本公开实施例中,每个目标视频帧对应有一个目标轮廓片段,且每个目标视频帧中的轮廓片段是基于目标视频帧中显示的目标对象确定的,由于不同的目标视频帧中的目标对象在目标视频帧中的位置不同,则不同的目标视频帧中的目标轮廓片段在视频帧中的位置可能不同,但目标轮廓片段与目标对象之间的相对位置关系相同。

目标字符在每个目标视频帧中对应有显示位置,在目标轮廓片段的所述目标方向上,相邻的任两个目标视频帧中的前一个目标视频帧中目标字符的显示位置在目标轮廓片段的目标方向上,与当前目标视频帧中的目标字符的显示位置间隔第一距离,即按照多个目标视频帧的时间次序,目标字符在多个目标视频帧中的显示位置相对于目标对象是逐渐变化的。例如,将目标字符在多个目标视频帧中的显示位置映射到同一目标视频帧中,多个显示位置沿着目标轮廓片段的目标方向依次排列,且相邻的任两个显示位置之间间隔有距离。

203、在每个目标视频帧中的显示位置上渲染出目标字符,将渲染后的多个目标视频帧按照时间次序组合成目标视频。

在确定目标字符在每个目标视频帧中的显示位置后,在每个目标视频帧中的显示位置上渲染出目标字符,使得渲染后的每个目标视频帧显示有该目标字符,按照该多个目标视频帧的时间次序,将多个目标视频帧组合成目标视频,即该目标为添加特效后的视频,后续播放该目标视频时,能够呈现出目标字符沿着目标对象的轮廓逐渐移动的效果。

本公开实施例提供的方法,由于目标字符在每个目标视频帧中的显示位置均是基于每个目标视频帧中的目标轮廓片段确定的,且目标字符在多个目标视频帧中的显示位置沿着目标轮廓片段的目标方向依次排列,在目标方向上相邻的任两个目标视频帧中的显示位置间隔有距离,在每个目标视频帧中的显示位置上渲染出目标字符后,由渲染后的多个目标视频帧按照时间次序组合成的目标视频是添加特效后的视频,以使后续在播放目标视频的过程中,能够呈现出目标字符沿着目标对象的轮廓移动的效果,并且使得目标字符的显示位置与目标对象相关联,即使目标对象移动,目标字符也会随着目标对象的移动而移动并沿着目标对象的轮廓移动,丰富了目标字符的显示样式,使得目标字符不再按照死板的移动轨迹来移动,从而提升了字符显示效果。

在一些实施例中,获取视频的多个目标视频帧之前,视频特效的生成方法还包括:

确定视频中的参考视频帧,参考视频帧为多个目标视频帧之前、且包含目标对象的视频帧;

在参考视频帧中,识别目标对象的至少两个第一轮廓关键点,将识别出的至少两个第一轮廓关键点连接,构成第一轮廓片段;

确定每个目标视频帧中的目标对象的目标轮廓片段的过程,包括:

对于每个目标视频帧,基于第一轮廓片段在参考视频帧中的位置,将第一轮廓片段映射至目标视频帧中的相同位置,得到第二轮廓片段;

在目标视频帧中,识别目标对象的至少两个第二轮廓关键点,基于至少两个第一轮廓关键点与至少两个第二轮廓关键点之间的位置差异,确定调整参数;

在目标视频帧中,基于调整参数对第二轮廓片段进行调整,得到目标轮廓片段。

通过先确定参考视频帧对应的第一轮廓片段,之后,将该第一轮廓片段映射至每个目标视频帧中得到第二轮廓片段,基于确定的调整参数进行调整即可得到每个目标视频帧中的目标轮廓片段,按照此种方式来确定多个目标视频帧的目标轮廓片段,避免了大量的重复工作,减少了工作量,减少的性能消耗。

在一些实施例中,确定每个目标视频帧中的目标对象的目标轮廓片段的过程,包括:

基于目标字符在第i个目标视频帧中的显示位置,确定在第i+1个目标视频帧中对应的映射关键点,第i+1个目标视频帧中的映射关键点与目标对象之间的相对位置关系,与第i个目标视频帧中的显示位置对应的轮廓关键点与目标对象之间的相对位置关系相同,i为大于0的整数;

在第i+1个目标视频帧中,对目标对象进行轮廓识别得到多个轮廓关键点;

将第i+1个目标视频帧中的映射关键点及目标轮廓关键点连接,得到第i+1个目标视频帧中的目标轮廓片段,目标轮廓关键点为识别到的多个轮廓关键点中位于映射关键点的目标方向上的轮廓关键点。

按照多个目标视频帧的顺序,先确定第一个目标视频帧中的目标轮廓片段,并确定目标字符在该第一个目标视频帧中的显示位置,之后再确定下一个目标视频帧中的目标轮廓片段并确定目标字符对应的显示位置。即每个目标视频帧中的目标轮廓片段相当于是目标字符还未移动的轮廓片段,后续基于每个目标视频帧中的目标轮廓片段来确定目标字符的显示位置时,能够仅考虑未移动过的轮廓片段,从而保证确定的显示位置的准确性,也能保证后续在播放目标视频时,目标字符沿着目标轮廓片段逐渐移动的效果。

在一些实施例中,多个目标视频帧的数量为N,N为大于1的整数,基于每个目标视频帧中的目标对象的目标轮廓片段,确定每个目标视频帧中待显示的目标字符的显示位置,包括:

基于第一个目标视频帧中的目标轮廓片段的第一个轮廓关键点,确定第一个目标字符在第一个目标视频帧中的显示位置;

以第j个目标视频帧中的目标轮廓片段的第一个轮廓关键点为起始点,基于起始点沿着目标轮廓片段的目标方向移动第二距离后的位置,确定第一个目标字符在第j个目标视频帧中的显示位置;

其中,j为大于1且不大于N的整数,第二距离是基于第j个目标视频帧与之前的任一目标视频帧之间的间隔时长及目标字符的移动速度确定。

在确定目标字符在多个目标视频帧中的显示位置时,按照多个目标视频帧的时间先后顺序,先确定目标字符在每个目标视频帧中对应的移动距离,之后基于移动距离来确定目标字符在每个目标视频帧中的显示位置,以保证目标字符在多个目标视频帧中的连续性,以保证后续播放目标视频时目标字符的显示效果。

在一些实施例中,以第j个目标视频帧中的目标轮廓片段的第一个轮廓关键点为起始点,基于起始点沿着目标轮廓片段的目标方向移动第二距离后的位置,确定第一个目标字符在第j个目标视频帧中的显示位置,包括:

在第j个目标视频帧中,在目标轮廓片段上查找参考轮廓关键点,其中目标轮廓片段上的多个轮廓关键点中,参考轮廓关键点与第一个轮廓关键点之间的第三距离小于第二距离,且与第二距离最接近;

以参考轮廓关键点为起点,沿着目标轮廓片段的目标方向,确定与起点之间具有目标距离的位置,目标距离为第三距离和第二距离之间的距离差;

基于所确定的位置,确定第一个目标字符在第j个目标视频帧中的显示位置。

通过以目标轮廓片段上的轮廓关键点之间的位置关系,来确定第一个目标字符在目标视频帧中的显示位置,以保证确定的显示位置与目标对象的轮廓相关联,也能够保证确定的显示位置的准确性,以保证后续目标字符的显示效果。

在一些实施例中,视频特效的生成方法还包括:

在每个目标视频帧中,基于已确定的第一个目标字符的显示位置及字符间隔,沿着目标轮廓片段的目标方向,确定其余目标字符的显示位置。

基于第一个目标字符的显示位置及字符间隔,沿着目标轮廓片段的方向,依次确定其余目标字符的显示位置,以保证多个目标字符的显示位置均与目标轮廓片段关联,且多个目标字符的显示位置沿着目标方向排布,以保证后续播放目标视频时,能够呈现出多个目标字符沿着目标轮廓片段的方向排布,且沿着目标轮廓片段移动,从而保证目标字符的显示效果。

在一些实施例中,基于每个目标视频帧中的目标对象的目标轮廓片段,确定每个目标视频帧中待显示的目标字符的显示位置之后,视频特效的生成方法还包括:

在每个目标视频帧中,基于目标视频帧中每个目标字符的显示位置及目标轮廓片段的目标方向,确定每个目标字符的旋转角度;

在每个目标视频帧中的显示位置上渲染出目标字符,包括:

在每个目标视频帧中按照已确定的显示位置及旋转角度渲染出每个目标字符。

通过确定目标字符在每个目标视频帧中的旋转角度,并按照每个目标视频帧对应的旋转角度来渲染目标字符,以保证渲染出的目标字符与目标对象的轮廓相匹配,以使后续播放目标视频时呈现出的目标字符的移动轨迹与目标对象的轮廓平行,从而保证后续目标字符沿着目标对象的轮廓移动的效果。

图3是根据一示例性实施例示出的一种视频特效的生成方法的流程图,参见图3,该方法由电子设备执行,包括以下步骤:

301、获取视频的多个目标视频帧。

其中,该视频为任意的视频,例如,该视频为直播视频,或者,影视视频等。该视频包括的多个目标视频帧中包含目标对象。例如,该目标视频为直播视频,该目标对象为该直播视频中包含的主播用户,该多个目标视频帧为直播视频中包含主播用户的视频帧。

在一些实施例中,该电子设备为直播服务器,该301包括:直播服务器接收主播终端上传的视频,获取该视频中的多个目标视频帧。

其中,该视频为直播视频,该主播终端为主播账号登录的终端,直播服务器用于提供直播服务。在本公开实施例中,对视频添加视频特效的过程是由直播服务器执行的,主播终端获取拍摄到的视频,向直播服务器发送该视频,该直播服务器接收该视频,为该视频添加视频特效得到目标视频,之后将该目标视频发布在该主播终端对应的直播间中,访问该直播间的观众终端能够接收并播放该目标视频。

在上述实施例的一种可能实现方式中,主播终端上安装有直播应用,该直播服务器为该直播应用提供服务。主播终端基于该直播应用与直播服务器进行交互,观众终端也能够基于安装的直播应用与直播服务器进行交互,还能够基于直播应用接收并播放视频。主播终端基于主播账号登录该直播应用,服务器为该主播账号分配一个直播间,该观众终端基于观众账号访问该直播间,能够观看该直播间中发布的视频。

在上述实施例的一种可能实现方式中,直播服务器在接收到主播终端上传的视频后,对该视频中的每个视频帧进行对象识别,得到该视频的多个目标视频帧。

采用对象识别的方式,从视频包含的多个视频帧中确定出包含目标对象的目标视频帧,以保证确定出的目标视频帧的准确性。

在一些实施例中,该电子设备为视频分享服务器,该301包括:终端基于该视频分享应用,向为视频分享服务器发送视频,视频分享服务器接收该视频,获取该视频的多个目标视频帧。

其中,视频分享应用是由该视频分享服务器提供服务的,该视频分享应用包括多个视频。在本公开实施例中,终端能够基于视频分享服务器将视频上传至视频分享服务器,视频分享服务器为该视频添加视频特效得到目标视频,将目标视频发布在视频分享应用中,以便其他终端能够基于该视频分享应用播放分享的视频。

在一些实施例中,该301包括:电子设备播放该视频,在播放该视频的过程中,响应于获取到目标字符的显示指令,获取视频的多个目标视频帧,该多个目标视频帧为接收到该目标字符的显示指令时还未播放的视频帧。

其中,该显示指令用于指示需要显示该目标字符,该目标字符是任意的字符,例如,该目标字符包含多个文字,或者,该目标字符包含其他的符号。在视频播放过程中,在接收到对目标字符的显示指令时,获取正在播放的当前视频帧之后的多个目标视频帧,以便后续在多个目标视频帧中添加目标字符,以得到添加视频特效的目标视频,后续能够播放添加视频特效的目标视频。

在上述实施例的一种可能实现方式中,在播放视频的过程中,响应于识别到已播放的视频片段中包含的语音信息满足字符显示条件,将该语音信息对应的字符确定为目标字符,并获取正在播放的当前视频帧之后的多个目标视频帧。

其中,字符显示条件用于指示语音信息对应的字符为目标字符时需满足的条件,已播放的视频片段为视频中已播放完成的任一视频片段。在播放视频的过程中,对播放的视频片段中包含的语音信息进行识别,在识别到已播放的任一视频片段中包含的语音信息满足字符显示条件,将该语音信息对应的字符确定为目标字符,此时,相当于获取到对目标字符的显示指令,则响应于该显示指令,获取当前视频帧之后的多个目标视频帧。通过将识别到的、且满足字符显示条件的语音信息对应的字符确定为目标字符,实现了动态确定目标字符的方案,以使后续将语音信息对应的字符在播放的视频帧中显示出来,实现了将视频中的语音信息以动态字符的方式来呈现的方案,从而丰富了视频的显示样式。

在上述实施例的一种可能实现方式中,该字符显示条件用于指示语音信息对应的字符包含目标关键字。其中,该目标关键字为任意设置的字。在播放视频的过程中,对已播放的视频片段中包含的语音信息进行识别,响应于识别到已播放完成的视频片段中包含的语音信息对应的字符中包含目标关键字,将该语音信息对应的字符确定为目标字符,此时,相当于获取到对目标字符的显示指令,则响应于该显示指令,获取当前视频帧之后的多个目标视频帧。

在上述实施例的一种可能实现方式中,该字符显示条件用于指示语音信息是属于目标语气类型的语音信息。其中,目标语气类型为任意的语气类型,例如,该目标语气为兴奋语气类型、愤怒语气类型等。在播放视频的过程中,通过对已播放的视频片段中包含的语音信息进行识别,确定该语音信息所属的语气类型,响应于该语音信息所属的语气类型为目标语气类型,将该语音信息对应的字符确定为目标字符,此时相当于获取到对目标字符的显示指令,则响应于该显示指令,获取当前视频帧之后的多个目标视频帧。

在上述实施例的一种可能实现方式中,该视频为任一直播间中播放的直播视频,显示指令为弹幕发送指令,该目标字符为弹幕发送指令对应的弹幕信息,该电子设备为访问该直播间的任一终端;则在播放直播视频的过程中,响应于直播服务器接收到任一用户终端发送的弹幕发送请求,该弹幕发送请求携带弹幕信息,获取该用户终端播放的当前视频帧之后的多个目标视频帧。

302、确定视频中的参考视频帧,参考视频帧为多个目标视频帧之前、且包含目标对象的视频帧。

其中,该参考视频帧中包括目标对象,该参考视频帧为多个目标视频帧之前的、且包含目标对象的任一视频帧。

在一些实施例中,该视频为电子设备正在播放的视频,该多个目标视频帧是在接收到目标字符的显示指令时还未播放的视频帧,则该302包括:将已播放完成的、且包含目标对象的任一视频帧确定为该参考视频帧。

在本公开实施例中,在电子设备播放该视频的过程中,已经播放完成的、且包含目标对象的视频帧确定为参考视频帧,以便后续确定参考视频帧中的轮廓片段,之后,在接收到目标字符的显示指令时,直接将参考视频帧中的轮廓片段映射至目标视频帧中即可。

303、在参考视频帧中,识别目标对象的至少两个第一轮廓关键点,将识别出的至少两个第一轮廓关键点连接,构成第一轮廓片段。

其中,该第一轮廓片段用于待显示的字符的显示位置,第一轮廓关键点为目标对象在参考视频帧中的轮廓上的关键点,在一些实施例中,该第一轮廓关键点是由人工设置的。采用关键点识别的方式,从参考视频帧中识别出目标对象的至少两个第一轮廓关键点,按照识别出的至少两个第一轮廓关键点所在的位置,将至少两个第一轮廓关键点连接成第一轮廓片段,该第一轮廓片段。例如,该至少两个第一轮廓关键点包括人体轮廓上的右肩关键点、右耳关键点、头顶关键点、左耳关键点及左肩关键点,则构成的第一轮廓片段为从左肩绕过头顶至右肩的轮廓片段。

通过对参考视频帧进行关键点识别,以确定目标对象在该参考视频帧中的至少两个第一轮廓关键点,并基于识别到的至少两个第一轮廓关键点,来生成该参考视频帧中的第一轮廓片段。通过对参考视频帧进行关键点识别,以保证得到的识别到的第一轮廓片段的准确性。

在一些实施例中,该303包括:在参考视频帧中识别目标对象的轮廓关键点,得到多个轮廓关键点,按照识别到的多个轮廓关键点在目标对象的轮廓上的排列顺序,从该多个轮廓关键点中选取目标数目个第一轮廓关键点,基于该目标数目个第一轮廓关键点在目标对象的轮廓上的排列顺序,将该目标数目个第一轮廓关键点连接,构成第一轮廓片段。

其中,该目标数目为不小2的数目,例如,该目标数目为5或7等。如图4所示,从第一轮廓上提取到的多个轮廓关键点为关键点401、关键点402、关键点403、关键点404、关键点405、关键点406、关键点407、关键点408、关键点409、关键点410、关键点411、关键点412,从多个轮廓关键点中选取的6个第一轮廓关键点为关键点402、关键点403、关键点404、关键点405、关键点406、关键点407。

在上述实施例的一种可能实现方式中,在选取目标数目个第一轮廓关键点后,基于目标对象的参考部位所处的位置从目标数目个第一轮廓关键点中确定起始关键点,从该起始关键点开始,将该目标数目个第一轮廓关键点连接,构成第一轮廓片段。

例如,在目标数目个第一轮廓关键点中,将与该参考部位所处的位置距离最近的第一轮廓关键点确定为起始关键点,或者,将与该参考部位所处的位置处于一个水平线上的第一轮廓关键点确定为起始关键点,或者,将与该参考部位所处的位置处于一个水平线上、且位于参考部位左侧的第一轮廓关键点确定为起始关键点,或者,将与该参考部位所处的位置处于一个水平线上、且位于参考部位右侧的第一轮廓关键点确定为起始关键点。

在一些实施例中,该303包括:在参考视频帧中,识别目标对象的至少两个第一轮廓关键点,确定每个第一轮廓关键点对应的控制点,响应于对任一第一轮廓关键点对应的控制点的移动操作,调整任一第一轮廓关键点与任一第一轮廓关键点相邻的第一轮廓关键点之间的连接线的形状,将多个第一轮廓关键点之间调整后的连接线,构成该第一轮廓片段。

其中,任一第一轮廓关键点对应的控制点用于调整该第一轮廓关键点与相邻的第一轮廓关键点之间的连接线的形状,该控制点是任意设置的。在对任一第一轮廓关键点对应的控制点的移动操作,能够调整该第一轮廓关键点与相邻的第一轮廓关键点之间的连接线的形状。例如,相邻的任两个第一轮廓关键点之间的连接线为直线,通过对该两个第一轮廓关键点对应的控制点移动操作,将该两个第一轮廓关键点之间的连接线由直线调整为曲线。

通过对多个第一轮廓关键点对应的控制点来调整多个第一轮廓关键点之间的连接线的形状,以使多个第一轮廓关键点之间的调整后的连接线构成的第一轮廓片段连贯,以保证后续目标字符沿着目标对象的轮廓移动时的显示效果。

在一些实施例中,每个第一轮廓关键点对应有两个控制点,任一第一轮廓关键点对应的两个控制点分别用于调整与该任一第一轮廓关键点相邻的不同第一轮廓关键点之间的连接线的形状。如图5所示,关键点501分别与关键点502和关键点503相邻,关键点501对应有控制点504和控制点505,控制点504用于调整关键点501与关键点502之间的连接线,控制点505用于调整关键点501与关键点503之间的连接线。

例如,在参考视频帧中,识别到目标对象的至少两个第一轮廓关键点,且确定出每个第一轮廓关键点对应的两个控制点后,将该多个第一轮廓关键点用直线连接,响应于每个第一轮廓关键点对应的两个控制点的移动操作,调整该多个第一轮廓关键点之间的连接线的形状,以使调整后的多个第一轮廓关键点之间的连接线构成圆滑的曲线,则将该圆滑的曲线确定为该第一轮廓片段。

在一些实施例中,对于相邻的任两个第一轮廓关键点之间的连接线,响应于对该两个第一轮廓关键点对应的控制点的移动操作,调整该两个第一轮廓关键点之间的连接线的形状,该两个第一轮廓关键点之间调整后的连接线上的任一位置,满足以下关系:

P(t)=P1·(1-t)3+C1·3(1-t)2t+C2·3(1-t)t2+P2·t3

0≤t≤1

其中,P(t)用于表示第一轮廓关键点P1与第一轮廓关键点P2之间调整后的连接线上任一位置,t用于表示第一轮廓关键点P1与第一轮廓关键点P2之间调整后的连接线上任一位置与第一轮廓关键点P1在该连接线上的距离,与该第一轮廓关键点P1与第一轮廓关键点P2之间调整后的连接线总长度的比值,C1用于表示第一轮廓关键点P1对应的控制点,用于调整第一轮廓关键点P1与第一轮廓关键点P2之间的连接线,C2用于表示第一轮廓关键点P2对应的控制点,用于调整第一轮廓关键点P1与第一轮廓关键点P2之间的连接线。

其中,上述能够采用贝塞尔曲线,来优化多个第一轮廓关键点之间的连接线的形状,以使调整后的多个第一轮廓关键点之间的连接线构成圆滑的曲线,该曲线即为贝塞尔曲线。

304、对于每个目标视频帧,基于第一轮廓片段在参考视频帧中的位置,将第一轮廓片段映射至目标视频帧中的相同位置,得到第二轮廓片段。

其中,第二轮廓片段与第一轮廓片段的形状和尺寸大小均相同。例如,第一轮廓片段为曲线,则第二轮廓片段也为曲线,且第二轮廓片段与第一轮廓片段的形状和尺寸大小相同。

在本公开实施例中,参考视频帧与目标视频帧的尺寸相同,参考视频帧中包含的多个位置点与该任一目标视频帧中包含的多个位置点一一对应。在确定参考视频帧中的第一轮廓片段后,即确定了第一轮廓片段在参考视频帧中的位置,基于第一轮廓片段在参考视频帧中的位置,将第一轮廓片段映射至目标视频帧中的相同位置,即得到的第二轮廓片段在目标视频帧中的位置,与该第一轮廓片段在参考视频帧中的位置相同。由于目标对象在目标视频帧中的位置,可能与目标对象在参考视频帧中的位置不同,则第二轮廓片段在目标视频帧中可能未与目标对象的轮廓重合。例如,在任一目标视频帧中,第二轮廓片段在该目标视频帧中的左上角位置,目标对象在该目标视频帧的右下角位置。

在一些实施例中,304包括:对于每个目标视频帧,基于第一轮廓片段上的每个轮廓关键点在参考视频帧中的位置,将每个轮廓关键点映射至目标视频帧中的相同位置,将映射得到的轮廓关键点连接构成该第二轮廓片段。

在将第一轮廓片段映射至目标视频帧时,将第一轮廓片段上的每个轮廓关键点映射至目标视频帧中,映射得到的轮廓关键点在目标视频帧中的位置,与对应的轮廓关键点在参考视频帧中的位置相同。

在上述实施例的一种可能实现方式中,基于第一轮廓片段上的每个轮廓关键点在参考视频帧中的坐标,确定目标视频帧中与每个轮廓关键点的坐标相同的关键点,将确定的关键点构成第二轮廓片段。

在本公开实施例中,参考视频帧与目标视频帧中的坐标系原点位于相同的位置,例如,坐标系原点位于视频帧的左上角,或视频帧的中心点。在参考视频帧和目标视频帧中的同一个位置,该位置在参考视频帧中的坐标与在目标视频帧中的坐标相同。

305、在目标视频帧中,识别目标对象的至少两个第二轮廓关键点,基于至少两个第一轮廓关键点与至少两个第二轮廓关键点之间的位置差异,确定调整参数。

其中,该调整参数用于调整目标视频帧中的第二轮廓片段,以使调整后的目标轮廓片段为目标对象在目标视频帧中的轮廓上的轮廓片段。在本公开实施例中,至少两个第二轮廓关键点与至少两个第一轮廓关键点一一对应。例如,至少两个第二轮廓关键点包括左肩关键点和右肩关键点,该至少两个第一轮廓关键点也包括左肩关键点和右肩关键点。基于至少两个第一轮廓关键点与至少两个第二轮廓关键点之间的位置差异,能够确定出目标对象在目标视频帧中的轮廓,与目标对象在参考视频帧中的轮廓之间的差异,从而能够确定出调整参数。

在一些实施例中,调整参数包括位置调整参数及缩放比例,位置调整参数用于表示至少两个第一轮廓关键点与至少两个第二轮廓关键点之间的位置差异,在一些实施例中,该位置调整参数用于指示调整目标视频帧中的第二轮廓片段时所需移动距离和方向。缩放比例用于表示目标对象在参考视频帧中的轮廓与目标对象在目标视频帧中轮廓之间的大小差异,即该缩放比例用于指示目标视频帧中的第二轮廓片段所需缩放的比例。

在上述实施例的一种可能实现方式中,该305包括:基于任一第一轮廓关键点与对应的第二轮廓关键点之间的位置差异,确定位置调整参数,将至少两个第一轮廓关键点之间的距离与至少两个第二轮廓关键点之间的距离的比值,确定为该缩放比例。

在本公开实施例中,任一第一轮廓关键点与目标对象之间的相对位置关系,与对应的第二轮廓关键点与目标对象之间的相对位置关系相同,例如,第一轮廓关键点为目标对象的左肩关键点,则该第一轮廓关键点对应的第二轮廓关键点也为目标对象的左肩关键点。基于任一第一轮廓关键点与对应的第二轮廓关键点之间的位置差值,能够确定出目标对象在参考视频帧和目标视频帧中的位置差异,因此,能够确定出该位置调整参数。

306、在目标视频帧中,基于调整参数对第二轮廓片段进行调整,得到目标轮廓片段。

在确定目标视频帧中的第一轮廓片段及调整参数后,基于该调整参数,对第一轮廓片段进行调整,以使调整后的目标轮廓片段与目标对象在目标视频帧中的轮廓相重合。

按照上述步骤304-306,即可获取到每个目标视频帧中的目标对象的目标轮廓片段。不同的目标视频帧中的目标轮廓片段与目标对象之间的相对位置关系是相同的,例如,对于任两个不同的目标视频帧中的目标轮廓片段,第一个目标视频帧中的目标轮廓片段该第一个目标视频帧包含的目标对象之间的相对位置关系,与第二个目标视频帧中的目标轮廓片段与该第二个目标视频帧包含的目标对象之间的相对位置关系相同。

通过先确定参考视频帧对应的第一轮廓片段,之后,将该第一轮廓片段映射至每个目标视频帧中得到第二轮廓片段,基于确定的调整参数进行调整即可得到每个目标视频帧中的目标轮廓片段,按照此种方式来确定多个目标视频帧的目标轮廓片段,避免了大量的重复工作,减少了工作量,减少的性能消耗。

在一些实施例中,每个目标视频帧中的目标对象的目标轮廓片段是由目标对象的轮廓上的至少两个轮廓关键点构成的,不同的目标视频帧中的目标轮廓片段包含的多个关键点相同。例如,对于每个目标视频帧中的目标轮廓片段,构成该目标轮廓片段的多个轮廓关键点包括左肩关键点、左耳关键点、头顶关键点、右耳关键点、右肩关键点,即该多个轮廓关键点之间连接构成该目标视频帧中的目标轮廓片段。

在上述实施例的一种可能实现方式中,该目标轮廓片段以连接线的形式表示,即将该目标轮廓片段包含的多个轮廓关键点之间的进行连接,即多个轮廓关键点之间的连接线构成了该目标轮廓片段。例如,相邻的任两个轮廓关键点之间的连接线为直线,或者,为曲线。

需要说明的是,本公开实施例是以先确定参考视频帧中的第一轮廓片段,再将第一轮廓片段映射至目标视频帧中,来获取目标视频帧中的目标轮廓片段的,而在另一实施例中,无需执行步骤302-306,能够采取其他方式来确定目标视频帧中的目标轮廓片段。

在一些实施例中,确定目标视频帧中的目标轮廓片段的过程包括:在每个目标视频帧中,识别目标对象的至少两个轮廓关键点,将识别出的至少两个轮廓关键点连接,构成第一轮廓片段。

其中,确定目标视频帧中的目标轮廓片段的过程,与上述303同理,在此不再赘述。

307、基于每个目标视频帧中的目标对象的目标轮廓片段,确定每个目标视频帧中待显示目标字符的显示位置。

在本公开实施例中,目标字符在每个目标视频帧中的显示位置,分别与每个目标视频帧中的目标对象的目标轮廓片段相关。按照多个目标视频帧的时间先后顺序,目标字符在多个目标视频帧中的显示位置在目标轮廓片段上依次排列,且在目标轮廓片段的目标方向上,相邻的任两个目标视频帧中的前一个目标视频帧中目标字符的显示位置在目标轮廓片段的目标方向上,与当前目标视频帧中的目标字符的显示位置间隔第一距离,该目标方向为顺时针方向或逆时针方向。在多个目标视频帧中,目标字符在相邻的每两个目标视频帧中的显示位置之间的第一距离可能不同。例如,目标字符在第一个目标视频帧中的显示位置与目标字符在第二个目标视频帧中的显示位置之间的第一距离,目标字符在第二个目标视频帧中的显示位置与目标字符在第三个目标视频帧中的显示位置之间的第一距离。

目标字符在多个目标视频帧中的显示位置相对于对应的目标视频帧中的目标对象,是随着多个目标视频帧的时间先后顺序逐渐变化的,以使后续在播放多个目标视频帧组合成的目标视频时,显示目标字符沿着目标对象的轮廓逐渐移动的效果。例如,多个目标视频帧为3个目标视频帧,目标字符在第一个目标视频帧中的显示位置在该第一个目标视频帧中的目标对象的左耳位置,目标字符在第二个目标视频帧中的显示位置在该第二个目标视频帧中的目标对象的头顶位置,目标字符在第三个目标视频帧中的显示位置在该第三个目标视频帧中的目标对象的右耳位置,即后续在播放3个目标视频帧时,显示目标字符由左耳位置,经过头顶位置,移动至右耳位置。

由于不同的目标视频帧中的目标轮廓片段与目标对象之间的相对位置关系是相同的,通过基于每个目标视频帧中的目标轮廓片段,确定目标字符在每个目标视频帧中的显示位置,以使后续在播放多个目标视频帧组合成的目标视频时,显示目标字符沿着目标对象的轮廓逐渐移动的效果。

在一些实施例中,该步骤307包括以下步骤3071-3074:

3071、基于第一个目标视频帧中的目标轮廓片段的第一个轮廓关键点,确定为第一个目标字符在第一个目标视频帧中的显示位置。

在本公开实施例中,目标字符包括多个。目标轮廓片段包括按序排列的多个轮廓关键点,基于第一个目标视频帧中的目标轮廓片段的第一个轮廓关键点,确定第一目标字符在第一个目标视频帧中的显示位置,以便后续在播放多个目标视频帧组合成的目标视频时,显示目标字符由该第一个轮廓关键点开始移动的效果。

在一些实施例中,3071包括:将第一个目标视频帧中的目标轮廓片段的第一个轮廓关键点,确定为第一个目标字符底部的边缘点所处的位置,基于该边缘点所处的位置确定第一个目标字符在第一个目标视频帧中的显示位置。

其中,目标字符底部的边缘点为目标字符的参考点,例如,目标字符包含于矩形框内,该目标字符与该矩形框相贴合,即该矩形框的长和宽,与该目标字符的长和宽分别相等,该矩形框底部的角即为该目标字符底部的边缘点,或者,该矩形框的底部的边的中点为目标字符底部的边缘点。将第一个目标视频帧中的目标轮廓片段的第一个轮廓关键点,确定为第一个目标字符底部的边缘点所处的位置,以使目标字符在第一个目标视频帧中的显示位置与该目标轮廓片段相贴合,以保证后续能够实现目标字符沿着目标轮廓片段移动的效果。

在一些实施例中,3071包括:将第一个目标字符中的目标轮廓片段的第一个轮廓关键点,确定为第一个目标字符的中心点所处的位置,基于该第一个目标字符的中心点所处的位置,确定第一个目标字符在第一个目标视频帧中的显示位置。

将第一个目标字符中的目标轮廓片段的第一个轮廓关键点,确定为第一个目标字符的中心点所处的位置,以使第一个目标字符在第一个目标视频帧中的显示位置位于该目标轮廓片段上,即轮廓线穿过目标字符,以保证后续能够实现目标字符沿着目标轮廓片段移动的效果,且在移动过程中,目标轮廓片段始终穿过目标字符的中心点。

在一些实施例中,3071包括:确定与第一个目标视频帧中的目标轮廓片段的第一个轮廓关键点间隔第四距离的位置点,将确定的位置点确定为第一个目标字符在第一个目标视频帧中的显示位置。

其中,第四距离为任意的距离,通过将与第一个轮廓关键点间隔第四距离的位置点,确定为第一个目标字符在第一个目标视频帧中的显示位置,以使目标字符与目标轮廓片段之间间隔有距离,以保证后续能够实现目标字符沿着目标轮廓片段的目标方向移动时,与目标轮廓片段之间间隔有距离。

3072、以第j个目标视频帧中的目标轮廓片段的第一个轮廓关键点为起始点,基于起始点沿着目标轮廓片段的目标方向移动第二距离后的位置,确定第一个目标字符在第j个目标视频帧中的显示位置。

在本公开实施例中,多个目标视频帧的数量为N,N为大于1的整数,j为大于1且不大于N的整数。第二距离是基于第j个目标视频帧与之前的任一目标视频帧之间的间隔时长及目标字符的移动速度确定,不同的目标视频帧对应的第二距离不同,且按照多个目标视频帧的时间顺序,排序越靠后的目标视频帧对应的第二距离越大。例如,第二距离是基于第j个目标视频帧与第一个目标视频帧之间的间隔时长及目标字符的移动速度确定,第2个目标视频帧对应的第二距离小于第3个目标视频帧对应的第二距离,第3个目标视频帧对应的第二距离小于第4个目标视频帧对应的第二距离。

基于第一个目标视频帧中的目标轮廓片段的第一个轮廓关键点,确定第一个目标字符在第一个目标视频帧中的显示位置后,对于第j个目标视频帧,以第一个轮廓关键点为起始点,将起始点沿着目标轮廓片段的目标方向移动第二距离后的位置,与起始点之间间隔有第二距离,基于确定的位置确定第一个目标字符在第j个目标视频帧中的显示位置,以使第一个目标字符在第j个目标视频帧中的显示位置相对于第一个轮廓关键点具有间隔距离,以保证目标字符由目标轮廓片段的第一个轮廓关键点开始,沿着目标轮廓片段的目标方向逐渐移动的效果。按照上述方式,即可确定目标字符在每个目标视频帧中的显示位置。

在确定目标字符在多个目标视频帧中的显示位置时,按照多个目标视频帧的时间先后顺序,先确定目标字符在每个目标视频帧中对应的移动距离,之后基于移动距离来确定目标字符在每个目标视频帧中的显示位置,以保证目标字符在多个目标视频帧中的连续性,以保证后续显示目标字符移动的效果。

在一些实施例中,在多个目标视频帧中,相邻的每两个目标视频帧之间的间隔时长相同,则确定第j个目标视频帧与之前的任一目标视频帧之间的间隔时长的过程,包括:确定多个目标视频帧中相邻的每两个视频帧之间的单位间隔时长,及该第j个目标视频帧与任一目标视频帧之间相隔的视频帧数目,将该单位间隔时长与该视频帧数目的乘积,确定为该第一个目标视频帧与任一目标视频帧之间的间隔时长。

例如,单位间隔时长为0.5秒,该第j个目标视频帧为多个视频帧中的第五个目标视频帧,即该第j个目标视频帧与该第一个目标视频帧之间相隔的视频帧数目为4,则该第一个目标视频帧与第j个目标视频帧之间的间隔时长为2秒。

在一些实施例中,第二距离是基于第j个目标视频帧与第一个目标视频帧之间的间隔时长及目标字符的移动速度确定,或者,是基于第j个目标视频帧与前一个目标视频帧之间的间隔时长及目标字符的移动速度确定。

在一些实施例中,确定第二距离的过程,包括以下两种方式:

第一种方式:获取目标字符对应的移动总时长及移动总距离,将移动总距离与移动总时长的比值,确定为目标字符的移动速度,将目标字符的移动速度与第j个目标视频帧与前一个目标视频帧之间的间隔时长的乘积,确定为第二距离。

其中,移动总时长为任意的时长,如该移动总时长为5秒或10秒等,该移动总时长为第一个目标视频帧与最后一个目标视频帧之间的间隔时长。该移动总距离为任意的距离,该移动总距离为目标字符由第一个目标视频帧中的显示位置移动至最后一个目标视频帧中的显示位置所需移动的距离。通过确定的移动总时长及移动总距离,来确定目标视频帧对应的第二距离,以保证第二距离的准确性,以便后续基于该人距离来确定目标字符的显示位置,以保证目标字符的显示位置的准确性。

第二种方式:获取目标字符的移动速度,将间隔时长与移动速度的乘积,确定为其他目标视频帧对应的第二距离。

其中,目标字符的移动速度是任意的速度。在获取到目标字符的移动速度,及目标字符由该第一个目标视频帧中的显示位置移动至该其他目标视频帧中的显示位置所需移动的时长,即该间隔时长,即可确定目标字符由第一个目标视频帧中的显示位置移动至该其他目标视频帧中的显示位置所需的第二距离。通过确定目标字符的移动速度,以保证确定的第二距离符合目标字符匀速移动的情况,之后基于该第二距离确定目标字符的显示位置,以保证后续按照确定的显示位置显示目标字符匀速移动的效果,从而提升了字符的显示效果。

需要说明的是,上述两种方式均是以目标字符匀速移动为例,来确定第二距离的,而在另一实施例中,目标字符的移动速度由第一个目标视频帧中的显示位置移动至最后一个目标视频帧中的显示位置的过程中,是先加速移动,之后再减速移动的,则按照目标字符的移动速度及该间隔时长,来确定目标视频帧对应的第二距离。

在一些实施例中,获取目标字符的初始移动速度、第一加速度、第二加速度及加速时长及减速时长,则获取第二距离的过程包括:响应于间隔时长不大于加速时长,基于该初始速度、第一加速度及该间隔时长,确定该第二距离;响应于间隔时长大于该加速时长,确定该间隔时长与该加速时长之间的差值时长,基于该初始速度、第一加速度及该加速时长,确定加速移动距离及该第一移动速度,基于该第一移动速度、第二加速度及差值时长,确定减速移动距离,将加速移动距离与该减速移动距离之和,确定为该第二距离。

其中,初始移动速度为任意的速度,用于表示目标字符从第一个目标视频帧中的显示位置以该初始移动速度开始移动。第一加速度为目标字符加速移动过程中的加速度,第二加速度为目标字符减速移动过程中的加速度,加速时长为该目标字符加速移动过程的总时长,减速时长为该目标字符减速移动过程的总时长,第一移动速度为目标字符由加速移动过程切换为减速移动过程时的速度,也即是该目标字符移动过程中的最大移动速度。

在一些实施例中,目标轮廓片段包括多个轮廓关键点,对于第j个目标视频帧,确定第一个目标字符在第j个目标视频帧中的显示位置的过程,包括以下30721-30724:

30721、在第j个目标视频帧中,在目标轮廓片段上查找参考轮廓关键点,其中目标轮廓片段上的多个轮廓关键点中,参考轮廓关键点与第一个轮廓关键点之间的第三距离小于第二距离,且与第二距离最接近。

其中,将多个轮廓关键点中的第一个轮廓关键点在第j个目标视频帧中的目标轮廓片段上移动第二距离后到达的位置,介于参考轮廓关键点及下一个轮廓关键点之间。

在一些实施例中,该第j个目标视频帧中的目标轮廓片段以连接线的形式表示,则该步骤30721包括:将该连接线包含的多个轮廓关键点中的第一个轮廓关键点,在目标轮廓片段上查找参考轮廓关键点。

在上述实施例的一种可能实现方式中,该连接线是由多个轮廓关键点中相邻的每两个轮廓关键点之间的直线段组成的,则相邻的任两个轮廓关键点之间的距离,即为该两个轮廓关键点之间的直线段长度,则按照该连接线中多个轮廓关键点的排列顺序,依次遍历多个轮廓关键点,并在遍历多个轮廓关键点的过程中,确定已遍历的轮廓关键点之间的距离和,响应于距离和大于该第二距离,则将当前正在遍历的轮廓关键点的前一个轮廓关键点确定为参考轮廓关键点。其中,第三距离为由第一个轮廓关键点至参考轮廓关键点之间的每个直线段长度总和。

例如,该连接线包括轮廓关键点1、轮廓关键点2、轮廓关键点3及轮廓关键点4,从轮廓关键点1开始遍历多个轮廓关键点,响应于遍历到轮廓关键点2,确定已遍历的轮廓关键点之间的距离和为轮廓关键点1与轮廓关键点2之间的距离,如果该距离小于第二距离,继续遍历下一个轮廓关键点,即该轮廓关键点3,响应于遍历到轮廓关键点3,确定已遍历的轮廓关键点之间的距离和为轮廓关键点1与轮廓关键点2之间的距离、及轮廓关键点2与轮廓关键点3之间的距离之和,响应于该距离和大于该第二距离,将当前正在遍历的轮廓关键点3的前一个轮廓关键点确定为参考轮廓关键点,即将轮廓关键点2确定为参考轮廓关键点。

在上述实施例的一种可能实现方式中,该连接线是由多个轮廓关键点中相邻的每两个轮廓关键点之间的曲线段组成的,则在目标轮廓片段内相邻的任两个轮廓关键点之间的距离,即为该两个轮廓关键点之间的曲线段长度,则在确定任两个轮廓关键点之间的曲线段的长度时,在该曲线段上提取多个参考位置点,基于该两个轮廓关键点及该多个参考位置点,将该曲线段分割成多个直线段,即该曲线段是由多个直线段构成,该多个直线段即为该两个轮廓关键点及该多个参考位置点中相邻的每两个点之间的直线段,则多个直线段的长度之和即为该曲线段的长度。则按照上述实施例中的一种可能实现方式,按照该连接线中多个轮廓关键点的排列顺序,依次遍历多个轮廓关键点,来确定参考轮廓关键点。其中,第三距离为由第一个轮廓关键点至参考轮廓关键点之间的每个曲线段长度总和。

例如,对于轮廓关键点1和轮廓关键点2之间的曲线段,从该曲线段中提取3个参考位置点,即参考位置点1、参考位置点2、参考位置点3,则组成该曲线段的多个直线段分别为关键点1与参考位置点1之间的直线段、参考位置点1与参考位置点2之间的直线段、参考位置点2与参考位置点3之间的直线段、参考位置点3与轮廓关键点2之间的直线段。

30722、以参考轮廓关键点为起点,沿着目标轮廓片段的目标方向,确定与起点之间具有目标距离的位置,目标距离为第三距离和第二距离之间的距离差。

通过以参考轮廓关键点为起点,确定在目标轮廓片段上与参考轮廓关键点间隔目标距离的位置,即确定的位置与目标轮廓片段的第一个轮廓关键点之间间隔该第二距离。

30723、基于所确定的位置,确定第一目标字符在第j个目标视频帧中的显示位置。

该步骤与上述30721同理,在此不再赘述。

通过以目标轮廓片段上的轮廓关键点之间的位置关系,来确定第一个目标字符在目标视频帧中的显示位置,以保证确定的显示位置与目标对象的轮廓相关联,也能够保证确定的显示位置的准确性,以保证后续目标字符的显示效果。

在一些实施例中,该目标轮廓片段以连接线的形式表示,该目标轮廓片段中相邻的任两个关键点之间的连接线为直线,则目标距离、第二距离、第三距离及目标字符在第j个目标视频帧中的显示位置,满足以下关系:

其中,P用于表示目标字符在第j个目标视频帧中的显示位置,Pn用于表示参考轮廓关键点,Pn+1用于表示参考轮廓关键点Pn的下一个轮廓关键点,d用于表示第二距离,用于表示第三距离,用于表示目标距离;用于表示轮廓关键点Pn+1与参考轮廓关键点Pn构成的向量,用于表示轮廓关键点Pn+1与参考轮廓关键点Pn之间的距离。

30724、在每个目标视频帧中,基于已确定的第一个目标字符的显示位置及字符间隔,沿着目标轮廓片段的目标方向,确定其余目标字符在第j个目标视频帧中的显示位置。

在本公开实施例中,目标字符包括多个,相邻的每两个目标字符之间具有字符间隔,该字符间隔为任意的距离。在确定第一个目标字符的显示位置后,基于字符间隔依次确定其余目标字符的显示位置。

在一些实施例中,该步骤30724包括:对于多个目标字符中除第一个目标字符外的任一其余目标字符,基于该其余目标字符与第一个目标字符之间的间隔数量及字符间隔,确定该其余目标字符与第一个目标字符之间的第五距离,以第一个目标字符对应的位置为起点,将该起点沿着目标方向移动第五距离后的位置,确定为该其余字符在第j个目标视频帧中的显示位置。

在确定第一个目标字符在第j个目标视频帧中的显示位置后,基于第一个目标字符与其余目标字符之间的位置关系,确定出其余目标字符在第j个目标视频帧中的显示位置,以保证确定的显示位置的准确性。

在上述实施例的一种可能实现方式中,在确定第五距离后,将目标距离与第五距离的和值,确定为第六距离,响应于第六距离不大于参考轮廓关键点与该参考轮廓关键点的下一个轮廓关键点之间的距离,确定第一个目标字符在目标轮廓片段上对应的位置,沿着目标轮廓片段的目标方向移动第五距离后到达的位置,基于确定的位置,确定该其余目标字符在第j个目标视频帧中的显示位置。

其中,第一个目标字符在目标轮廓片段上对应的位置,即为上述步骤30722中所确定的位置。在确定该其余目标字符在目标轮廓片段上对应的位置后,基于确定的位置确定显示位置的过程,与上述30721同理,在此不再赘述。

其中,第六距离不大于参考轮廓关键点与该参考轮廓关键点的下一个轮廓关键点之间的距离,表示该其余目标字符在目标轮廓片段上对应的位置,介于该参考轮廓关键点与该参考轮廓关键点的下一个轮廓关键点之间。

在上述实施例的一种可能实现方式中,第六距离、参考轮廓关键点与该参考轮廓关键点的下一个轮廓关键点之间的距离及任一其余目标字符在第j个目标视频帧中的显示位置,满足以下关系:

其中,用于表示任一其余目标字符在第j个目标视频帧中的显示位置,Pn用于表示参考轮廓关键点,Pn+1用于表示参考轮廓关键点的下一个轮廓关键点,a用于表示第六距离,用于表示轮廓关键点Pn+1与参考轮廓关键点Pn构成的向量,用于表示轮廓关键点Pn+1与参考轮廓关键点Pn之间的距离。

在上述实施例的一种可能实现方式中,确定该其余目标字符对应的第五距离的过程包括:获取多个目标字符中每个目标字符的字符宽度及相邻的每两个目标字符之间的字符间距,确定该其余目标字符与第一个目标字符之间相隔的字符数目,基于该字符宽度、字符间距及字符数目,确定该其余目标字符对应的第五距离。

例如,确定字符宽度与字符间距的和值,将该和值与该字符数目的乘积,确定为该其余目标字符对应的第五距离。

在上述实施例的一种可能实现方式中,在确定第六距离之后,该方法还包括:响应于第六距离大于参考轮廓关键点与该参考轮廓关键点的下一个轮廓关键点之间的距离,确定多个轮廓关键点中的第三轮廓关键点,将第三轮廓关键点与参考轮廓关键点之间的距离,确定为第七距离;将第六距离与第七距离之间的差值,确定为第八距离,响应于第八距离不大于第三轮廓关键点与该第三轮廓关键点的下一个轮廓关键点之间的距离,以在第j个目标视频帧中的目标轮廓片段的第三轮廓关键点为起始点,基于起始点沿着目标轮廓片段的目标方向移动第八距离后的位置,确定该其余目标字符在第j个目标视频帧中的显示位置。

其中,第三轮廓关键点为多个轮廓关键点中参考轮廓关键点的下一个轮廓关键点。第六距离大于参考轮廓关键点与该参考轮廓关键点的下一个轮廓关键点之间的距离,且第八距离不大于第三轮廓关键点与该第三轮廓关键点的下一个轮廓关键点之间的距离,表示该其余目标字符在目标轮廓片段上对应的位置,介于第三轮廓关键点与该第三轮廓关键点的下一个轮廓关键点之间。

需要说明的是,本公开实施例是先确定每个目标视频帧中的目标轮廓片段,之后基于每个目标视频帧中的目标轮廓片段,确定目标字符在每个目标视频帧中的显示位置的,而在另一实施例中,无需执行步骤302-306,能够采取其他方式,基于每个目标视频帧中的目标对象的目标轮廓片段,确定每个目标视频帧中待显示目标字符的显示位置。

在一些实施例中,确定每个目标视频帧中的目标对象的目标轮廓片段的过程,包括:基于目标字符在第i个目标视频帧中的显示位置,确定在第i+1个目标视频帧中对应的映射关键点,在第i+1个目标视频帧中,对目标对象进行轮廓识别得到多个轮廓关键点,将第i+1个目标视频帧中的映射关键点及目标轮廓关键点连接,得到第i+1个目标视频帧中的目标轮廓片段。

其中,i为大于0的整数,目标轮廓关键点为识别到的多个轮廓关键点中位于映射关键点的目标方向上的轮廓关键点,第i+1个目标视频帧中的映射关键点与目标对象之间的相对位置关系,与第i个目标视频帧中的显示位置对应的轮廓关键点与目标对象之间的相对位置关系相同。例如,第i个目标视频帧中的显示位置为左肩关键点,则第i+1个目标视频帧中对应的映射关键点也为左肩关键点。在本公开实施例中,按照多个目标视频帧的顺序,先确定第一个目标视频帧中的目标轮廓片段,并确定目标字符在该第一个目标视频帧中的显示位置,之后再确定下一个目标视频帧中的目标轮廓片段并确定目标字符对应的显示位置。即每个目标视频帧中的目标轮廓片段相当于是目标字符还未移动的轮廓片段,后续基于每个目标视频帧中的目标轮廓片段来确定目标字符的显示位置时,能够仅考虑未移动过的轮廓片段,从而保证确定的显示位置的准确性,也能保证后续在播放目标视频时,目标字符沿着目标轮廓片段逐渐移动的效果。

在上述实施例的一种可能实现方式中,在不同的目标视频帧中,构成目标视频帧中的目标轮廓片段包含的多个轮廓关键点不完全相同。

例如,第一个目标视频帧中的目标轮廓片段,是由该第一个目标视频帧中的轮廓上的左肩关键点、左耳关键点、头顶关键点、右耳关键点、右肩关键点构成的,第二个目标视频帧中的目标轮廓片段,是由该第二个目标视频帧中的轮廓上的左耳关键点、头顶关键点、右耳关键点、右肩关键点构成的,即第二目标视频帧中的目标轮廓片段不包含左肩关键点,即不同的目标视频帧中的目标轮廓片段包含的多个关键点部分相同,也即是不同的目标视频帧中的目标轮廓片段包含的多个关键点不完全相同。

308、在每个目标视频帧中的显示位置上渲染出目标字符,将渲染后的多个目标视频帧按照时间次序组合成目标视频。

在确定出每个目标字符在每个目标视频帧中的显示位置后,通过按照每个目标视频帧中的显示位置渲染出目标字符,将渲染后的多个目标视频帧按照时间次序组合成目标视频,实现了对视频添加视频特效的效果,以使后续在播放多个目标视频时,显示目标字符沿着目标对象的轮廓逐渐移动的画面。

在一些实施例中,在每个目标视频帧中渲染出目标字符的过程,包括:在每个目标视频帧中,基于目标视频帧中每个目标字符的显示位置及目标轮廓片段的目标方向,确定每个目标字符的旋转角度,在每个目标视频帧中按照已确定的显示位置及旋转角度渲染出每个目标字符。

通过确定目标字符在每个目标视频帧中的旋转角度,并按照每个目标视频帧对应的旋转角度来渲染目标字符,以保证渲染出的目标字符与目标对象的轮廓相匹配,以使后续播放目标视频时呈现出的目标字符的移动轨迹与目标对象的轮廓平行,从而保证后续目标字符沿着目标对象的轮廓移动的效果。

在上述实施例的一种可能实现方式中,确定每个目标字符在每个目标视频帧中的旋转角度的过程,包括:对于任一目标字符及任一目标视频帧,确定该目标字符在该目标视频帧中的显示位置在目标轮廓片段上对应的目标位置,确定与该目标位置相邻的第四轮廓关键点及第五轮廓关键点,确定第四轮廓关键点指向第五轮廓关键点的第一向量,及该目标视频帧中的坐标系的坐标原点所处的位置指向该目标位置的第二向量,将第一向量与第二向量之间的夹角,确定为目标字符在该目标视频帧中的旋转角度。

其中,该目标位置介于第四轮廓关键点与第五轮廓关键点之间,且第五轮廓关键点为第四轮廓关键点的下一个轮廓关键点。在本公开实施例中,每个目标视频帧中创建有一个坐标系,且多个目标视频帧中的坐标系在对应的目标视频帧中的位置相同,例如,以每个目标视频帧中的左上角位置作为坐标系的原点,分别创建每个目标视频帧中的坐标系。

由于第一向量能够表示第四轮廓关键点指向第五轮廓关键点之间的连线方向,第二向量能够表示出目标字符以初始角度显示时的样式,例如,初始角度为0,该目标字符以初始角度显示时,该目标字符竖直显示。为了保证渲染出的目标字符沿着目标对象的轮廓移动的效果,将第一向量与第二向量之间的夹角确定为目标字符对应的旋转角度,以便后续按照该旋转角度渲染出的目标字符,与该第四轮廓关键点指向第五轮廓关键点之间的连接线所在的方向平行,以便后续在播放目标视频时,呈现目标字符沿着目标对象的轮廓逐渐移动的效果。

例如,多个目标字符为“123456”,该其他目标视频帧中的目标轮廓片段以连接线的形式表示,如图6所示,该目标轮廓片段包括的第一参考关键点601、第二参考关键点602、第三参考关键点603、关键点604、关键点605,该多个目标字符中的前3个目标字符“123”的显示位置位于第一参考关键点601与第二参考关键点602之间,且目标字符“123”,与第一参考关键点601与第二参考关键点602之间的连接线所在的平行,后3个目标字符“456”的显示位置位于第二参考关键点602与第三参考关键点603之间,且目标字符“456”,与第二参考关键点602与第三参考关键点603之间的连接线所在的平行。

在上述实施例的一种可能实现方式中,旋转角度包括正旋转角度或负旋转角度,目标字符具有初始角度,确定目标字符的旋转角度后,确定目标字符的初始角度在其他目标视频帧中的显示位置的显示样式,以该显示位置为旋转中心,按照目标旋转方向将目标字符旋转该旋转角度后,目标字符的显示样式与该第四轮廓关键点指向第五轮廓关键点之间的连线平行。

在上述实施例的一种可能实现方式中,第一向量、第二向量及该旋转角度,满足以下关系:

其中,r用于表示旋转角度,cos-1(·)用于表示反三角函数,Pn用于表示第四轮廓关键点,Pn+1用于表示第五轮廓关键点,用于表示第五轮廓关键点Pn+1与第四轮廓关键点Pn构成的第一向量,用于表示第五轮廓关键点Pn+1与第四轮廓关键点Pn之间的距离,O用于表示目标视频帧中的坐标系的坐标原点,X用于表示目标位置,用于表示坐标原点O与目标位置X构成的第二向量,用于表示坐标原点O与目标位置X构成的第二向量的长度。

在一些实施例中,在308之后,该方法还包括:将该目标视频进行存储。

例如,待添加视频特效的视频为视频分享应用中的视频,采用本公开实施例提供的方法为该视频添加视频特征,得到的目标视频,将该目标视频进行存储,并基于该视频分享应用将该目标视频分享给用户,以使用户基于终端安装的视频分享应用播放该目标视频,呈现出在目标视频中添加的视频特效。

在一些实施例中,在308之后,该方法还包括播放目标视频。

由于渲染目标字符后的多个目标视频帧中包含了渲染出的目标字符,且渲染目标字符后的多个目标视频帧中的目标字符的显示位置按照多个目标视频帧的顺序排列,在播放目标视频的过程中,显示目标字符从第一个目标视频帧中的显示位置开始移动,并沿着目标对象的轮廓逐渐移动的画面,以呈现出目标字符沿着目标对象的轮廓逐渐移动的效果,保证了显示的目标字符移动过程的连贯性。如图7所示,在播放目标视频的过程中,显示目标字符701沿着目标视频中的目标对象702的轮廓逐渐移动。如图8所示,多个目标字符为“123456”在播放多个目标视频帧的过程中,显示多个目标字符由目标字符从第一个目标视频帧中的显示位置801开始移动,如图8中的左图所示,之后显示目标字符沿着轮廓逐渐移动,图8中的右图为目标字符移动过程中任一时刻显示的样式。

在一些实施例中,在步骤308之后,该方法还包括以下两种方式:

第一种方式:响应于目标字符的移动距离达到第一目标距离,取消显示目标字符;或者,响应于目标字符的移动时长达到目标时长,取消显示目标字符;或者,响应于目标字符移动至目标显示位置,取消显示目标字符。

其中,第一目标距离为任意的距离,目标时长为任意的时长,目标显示位置为目标对象的轮廓上的任一位置。在播放目标视频的过程中,显示目标字符沿着目标对象的轮廓移动,并在目标字符移动第一目标距离后,取消显示目标字符;或者,在显示目标字符沿着目标对象的轮廓移动的过程中,在目标字符的移动时长达到目标时长时,取消显示该目标字符;或者,在显示目标字符沿着目标对象的轮廓移动的过程中,在目标字符移动至目标显示位置时,取消显示目标字符。

第二种方式,目标字符包括多个,则在播放多个目标视频帧的过程中,显示多个目标字符依次移动至目标对象的轮廓上的同一显示位置并消失的画面。

通过显示多个目标字符依次移动至目标对象的轮廓上的同一显示位置并消失的画面,丰富了字符的显示样式,提升了字符的显示效果。

例如,该同一显示位置为目标对象的左肩位置,该目标字符包括3个,则在显示多个目标字符移动的过程中,在第一个目标字符移动至该左肩位置时,取消显示该第一个目标字符,此时仅显示第二个目标字符和第三个目标字符,在第二个目标字符移动至该左肩位置时,取消显示该第二个目标字符,此时仅显示第三个目标字符,在第三个目标字符移动至该左肩位置时,取消显示该第三个目标字符,此时取消显示了所有目标字符,即实现了多个目标字符逐渐移动至同一个显示位置并消失的画面。

本公开实施例提供的方法,由于目标字符在每个目标视频帧中的显示位置均是基于每个目标视频帧中的目标轮廓片段确定的,且目标字符在多个目标视频帧中的显示位置沿着目标轮廓片段的目标方向依次排列,在目标方向上相邻的任两个目标视频帧中的显示位置间隔有距离,在每个目标视频帧中的显示位置上渲染出目标字符后,由渲染后的多个目标视频帧按照时间次序组合成的目标视频是添加特效后的视频,以使后续在播放目标视频的过程中,能够呈现出目标字符沿着目标对象的轮廓移动的效果,并且使得目标字符的显示位置与目标对象相关联,即使目标对象移动,目标字符也会随着目标对象的移动而移动并沿着目标对象的轮廓移动,丰富了目标字符的显示样式,使得目标字符不再按照死板的移动轨迹来移动,从而提升了字符显示效果。

基于上述图3所示的实施例,将视频特效的生成方法应用于直播场景下,该流程包括:

主播终端基于主播账号登录直播服务器,将直播视频上传至直播服务器;直播服务器接收主播终端上传的直播视频,为该主播账号创建一个直播间,将该直播视频发布在该直播间中,以使访问该直播间的观众终端能够接收并播放该直播视频;直播服务器响应于任一观众终端发送的弹幕发布请求,该弹幕发布请求携带弹幕信息,获取未发布在直播间中的多个目标帧,该目标字符为弹幕发送指令对应的弹幕信息,按照上述图3所述的实施例,获取添加视频特效后的目标视频,将目标视频发布在该直播间中,以使访问该直播间的观众终端能够接收并播放该目标视频,呈现出目标字符沿着主播的轮廓逐渐移动的画面。

图9是根据一示例性实施例示出的一种视频特效的生成装置的框图。参见图9,该视频特效的生成装置包括:

获取单元901,被配置为执行获取视频的多个目标视频帧,多个目标视频帧包含目标对象;

确定单元902,被配置为执行基于每个目标视频帧中的目标对象的目标轮廓片段,确定每个目标视频帧中待显示的目标字符的显示位置,目标轮廓片段由至少两个轮廓关键点连接而成,轮廓关键点通过对目标对象进行轮廓识别得到;

组合单元903,被配置为执行在每个目标视频帧中的显示位置上渲染出目标字符,将渲染后的多个目标视频帧按照时间次序组合成目标视频;

其中,在目标轮廓片段的目标方向上,相邻的任两个目标视频帧中的前一个目标视频帧中目标字符的显示位置,与当前目标视频帧中的目标字符的显示位置间隔第一距离。

在一些实施例中,获取视频的多个目标视频帧之前,如图10所示,视频特效的生成装置还包括:

确定单元902,还被配置为执行确定视频中的参考视频帧,参考视频帧为多个目标视频帧之前、且包含目标对象的视频帧;

构成单元904,被配置为执行在参考视频帧中,识别目标对象的至少两个第一轮廓关键点,将识别出的至少两个第一轮廓关键点连接,构成第一轮廓片段;

映射单元905,被配置为执行对于每个目标视频帧,基于第一轮廓片段在参考视频帧中的位置,将第一轮廓片段映射至目标视频帧中的相同位置,得到第二轮廓片段;

确定单元902,被配置为执行在目标视频帧中,识别目标对象的至少两个第二轮廓关键点,基于至少两个第一轮廓关键点与至少两个第二轮廓关键点之间的位置差异,确定调整参数;

调整单元906,被配置为执行在目标视频帧中,基于调整参数对第二轮廓片段进行调整,得到目标轮廓片段。

在一些实施例中,如图10所示,视频特效的生成装置还包括:

确定单元902,还被配置为执行基于目标字符在第i个目标视频帧中的显示位置,确定在第i+1个目标视频帧中对应的映射关键点,第i+1个目标视频帧中的映射关键点与目标对象之间的相对位置关系,与第i个目标视频帧中的显示位置对应的轮廓关键点与目标对象之间的相对位置关系相同,i为大于0的整数;

识别单元907,被配置为执行在第i+1个目标视频帧中,对目标对象进行轮廓识别得到多个轮廓关键点;

连接单元908,被配置为执行将第i+1个目标视频帧中的映射关键点及目标轮廓关键点连接,得到第i+1个目标视频帧中的目标轮廓片段,目标轮廓关键点为识别到的多个轮廓关键点中位于映射关键点的目标方向上的轮廓关键点。

在一些实施例中,多个目标视频帧的数量为N,N为大于1的整数,如图10所示,确定单元902,包括:

确定子单元9021,被配置为执行基于第一个目标视频帧中的目标轮廓片段的第一个轮廓关键点,确定第一个目标字符在第一个目标视频帧中的显示位置;

确定子单元9021,还被配置为执行以第j个目标视频帧中的目标轮廓片段的第一个轮廓关键点为起始点,基于起始点沿着目标轮廓片段的目标方向移动第二距离后的位置,确定第一个目标字符在第j个目标视频帧中的显示位置;

其中,j为大于1且不大于N的整数,第二距离是基于第j个目标视频帧与之前的任一目标视频帧之间的间隔时长及目标字符的移动速度确定。

在一些实施例中,确定子单元9021,还被配置为执行在第j个目标视频帧中,在目标轮廓片段上查找参考轮廓关键点,其中目标轮廓片段上的多个轮廓关键点中,参考轮廓关键点与第一个轮廓关键点之间的第三距离小于第二距离,且与第二距离最接近;以参考轮廓关键点为起点,沿着目标轮廓片段的目标方向,确定与起点之间具有目标距离的位置,目标距离为第三距离和第二距离之间的距离差;基于所确定的位置,确定第一个目标字符在第j个目标视频帧中的显示位置。

在一些实施例中,确定单元902,还被配置为执行在每个目标视频帧中,基于已确定的第一个目标字符的显示位置及字符间隔,沿着目标轮廓片段的目标方向,确定其余目标字符的显示位置。

在一些实施例中,确定单元902,还被配置为执行在每个目标视频帧中,基于目标视频帧中每个目标字符的显示位置及目标轮廓片段的目标方向,确定每个目标字符的旋转角度;

组合单元903,被配置为执行在每个目标视频帧中按照已确定的显示位置及旋转角度渲染出每个目标字符。

关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

在示例性实施例中,还提供了一种电子设备,电子设备包括:

一个或多个处理器;

用于存储一个或多个处理器可执行指令的易失性或非易失性存储器;

其中,一个或多个处理器被配置为执行上述视频特效的生成方法中电子设备所执行的步骤。

在一些实施例中,该电子设备为终端。图11是根据一示例性实施例示出的一种终端1100的结构框图。该终端1100可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

终端1100包括有:处理器1101和存储器1102。

处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一条程序代码,该至少一条程序代码用于被处理器1101所执行以实现本公开中方法实施例提供的视频特效的生成方法。

在一些实施例中,终端1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、显示屏1105、摄像头组件1106、音频电路1107、定位组件1108和电源1109中的至少一种。

外围设备接口1103可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1104用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。

显示屏1105用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置在终端1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在终端1100的不同表面或呈折叠设计;在另一些实施例中,显示屏1105可以是柔性显示屏,设置在终端1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。

摄像头组件1106用于采集图像或视频。可选地,摄像头组件1106包括前置摄像头和后置摄像头。前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。

定位组件1108用于定位终端1100的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件1108可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。

电源1109用于为终端1100中的各个组件进行供电。电源1109可以是交流电、直流电、一次性电池或可充电电池。当电源1109包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端1100还包括有一个或多个传感器1110。该一个或多个传感器1110包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113、指纹传感器1114、光学传感器1115以及接近传感器1116。

加速度传感器1111可以检测以终端1100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1111可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1111采集的重力加速度信号,控制显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1111还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1112可以检测终端1100的机体方向及转动角度,陀螺仪传感器1112可以与加速度传感器1111协同采集用户对终端1100的3D动作。处理器1101根据陀螺仪传感器1112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1113可以设置在终端1100的侧边框和/或显示屏1105的下层。当压力传感器1113设置在终端1100的侧边框时,可以检测用户对终端1100的握持信号,由处理器1101根据压力传感器1113采集的握持信号进行左右手识别或快捷操作。当压力传感器1113设置在显示屏1105的下层时,由处理器1101根据用户对显示屏1105的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器1114用于采集用户的指纹,由处理器1101根据指纹传感器1114采集到的指纹识别用户的身份,或者,由指纹传感器1114根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1101授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1114可以被设置在终端1100的正面、背面或侧面。当终端1100上设置有物理按键或厂商Logo时,指纹传感器1114可以与物理按键或厂商Logo集成在一起。

光学传感器1115用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1115采集的环境光强度,控制显示屏1105的显示亮度。具体地,当环境光强度较高时,调高显示屏1105的显示亮度;当环境光强度较低时,调低显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1115采集的环境光强度,动态调整摄像头组件1106的拍摄参数。

接近传感器1116,也称距离传感器,设置在终端1100的前面板。接近传感器1116用于采集用户与终端1100的正面之间的距离。在一个实施例中,当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变小时,由处理器1101控制显示屏1105从亮屏状态切换为息屏状态;当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变大时,由处理器1101控制显示屏1105从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图11中示出的结构并不构成对终端1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在一些实施例中,该电子设备为服务器。图12是根据一示例性实施例示出的一种服务器的结构示意图,该服务器1200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1201和一个或一个以上的存储器1202,其中,存储器1202中存储有至少一条程序代码,该至少一条程序代码由处理器1201加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当存储介质中的程序代码由电子设备的处理器执行时,使得电子设备能够执行上述视频特效的生成方法中电子设备所执行的步骤。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述视频特效的生成方法中终端或服务器所执行的步骤。

本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

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