掌桥专利:专业的专利平台
掌桥专利
首页

图像处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 16:06:26



技术领域

本公开实施例涉及图像处理技术领域,尤其涉及一种图像处理方法、装置、电子设备及存储介质。

背景技术

随着网络技术的发展,越来越多的应用程序进入了用户的生活,尤其是一系列可以拍摄短视频的软件,深受用户的喜爱。

为了提高视频拍摄的趣味性,软件开发商可以研发各种各样的特效道具,然而,目前为用户提供的特效道具十分有限,视频内容的丰富性有待进一步提升,同时,用户在视频中添加的特效无法与视频内容之间产生互动,例如,当画面中包含用户身体时,所添加的特效无法与用户身体进行联动,基于相关特效道具所生成的特效视频效果较差。

发明内容

本公开提供一种图像处理方法、装置、电子设备及存储介质,使所添加的特效能够与视频画面中用户的肢体相关联,同时,特效的朝向与画面中用户肢体的朝向相对应,从而使特效视频呈现出的视觉效果更加逼真。

第一方面,本公开实施例提供了一种图像处理方法,包括:

在检测到满足特效挂载条件时,确定与目标对象相对应的目标躯干模型;

确定目标特效与所述目标躯干模型上的目标顶点信息;

确定与所述目标顶点信息相对应的目标挂载点,并确定所述目标对象的当前偏移角度;

基于所述目标挂载点和所述当前偏移角度,将目标特效挂载在所述目标对象上,得到特效视频帧。

第二方面,本公开实施例还提供了一种图像处理装置,包括:

目标躯干模型确定模块,用于在检测到满足特效挂载条件时,确定与目标对象相对应的目标躯干模型;

目标顶点信息确定模块,用于确定目标特效与所述目标躯干模型上的目标顶点信息;

目标挂载点确定模块,用于确定与所述目标顶点信息相对应的目标挂载点,并确定所述目标对象的当前偏移角度;

特效视频帧生成模块,用于基于所述目标挂载点和所述当前偏移角度,将目标特效挂载在所述目标对象上,得到特效视频帧。

第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例任一所述的图像处理方法。

第四方面,本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本公开实施例任一所述的图像处理方法。

本公开实施例的技术方案,在检测到满足特效挂载条件时,确定与目标对象相对应的目标躯干模型,进而确定目标特效与目标躯干模型上的目标顶点信息,进一步的,确定与目标顶点信息相对应的目标挂载点,并确定目标对象的当前偏移角度,最后基于目标挂载点和当前偏移角度,将目标特效挂载在目标对象上,得到特效视频帧,从而使所添加的特效能够与视频画面中用户的肢体相关联,同时,特效的朝向与画面中用户肢体的朝向相对应,从而使特效视频呈现出的视觉效果更加逼真,增强了用户的使用体验。

附图说明

结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。

图1为本公开实施例所提供的一种图像处理方法流程示意图;

图2为本公开实施例所提供的一种图像处理装置结构示意图;

图3为本公开实施例所提供的一种电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

在介绍本技术方案之前,可以先对本公开实施例的应用场景进行示例性说明。示例性的,当用户将录制的多媒体数据流上传至应用对应的服务端,或者,通过包含摄像装置的移动终端实时采集视频画面时,应用可以对所获取的多个视频帧的画面内容(即画面内的多个对象)进行检测,并确定出目标对象,其中,视频画面内的目标对象既可以是动态的,也可以是静态的,同时,目标对象的数量可以是一个或多个。基于此,当应用检测到视频画面内存在目标对象时,即可基于本公开实施例的方案,将用户从特效包中所选择的、预先开发设计出来的特效,挂载到目标对象躯干相应的位置上,得到多个特效视频帧,从而使特效与画面内容之间产生互动,并根据多个特效视频帧生成更具趣味性的特效视频。

图1为本公开实施例所提供的一种图像处理方法流程示意图,本公开实施例适用于基于应用软件对当前视频帧进行处理,从而生成特效视频的情形,例如,在当前视频画面中存在目标对象身体的情况下,若检测到用户从特效包中选择了一个特效,并对目标对象的身体进行触控,应用即可按照本公开实施例的方案对各视频帧进行处理,从而使用户所选择的特效挂载在目标对象的身体上,并得到相应的特效视频,该方法可以由图像处理装置来执行,该装置可以通过软件和/或硬件的形式实现,可选的,通过电子设备来实现,该电子设备可以是移动终端、PC端或服务器等。

如图1所示,所述方法包括:

S110、在检测到满足特效挂载条件时,确定与目标对象相对应的目标躯干模型。

其中,执行本公开实施例提供的图像处理方法的装置,可以集成在支持图像处理功能的应用软件中,且该软件可以安装至电子设备中,可选的,电子设备可以是移动终端或者PC端等。应用软件可以是对图像/视频处理的一类软件,其具体的应用软件在此不再一一赘述,只要可以实现图像/视频处理即可。还可以是专门研发的应用程序,来实现添加特效并将特效进行展示的软件中,亦或是集成在相应的页面中,用户可以通过PC端中集成的页面来实现对特效视频的处理。

需要说明的是,本实施例的技术方案既可以现有的视频文件为数据基础来执行,也可以在用户拍摄视频的过程中执行,例如,当用户预先录制好一个包含有目标对象的视频,并将该视频作为原始视频时,可以主动将该视频上传至应用对应的服务端,进一步的,按照自己的意愿从应用提供的特效包中选择目标特效,从而使服务端为视频内的目标对象构建出3D的躯干模型后,按照本公开实施例的方案对该视频中的各视频帧进行处理,也即是说,将用户选择的目标特效挂载到视频画面中目标对象的躯干上,得到特效视频帧;或者,用户可以利用安装有摄像装置的移动终端为目标对象实时采集视频,应用在实时采集得到的视频画面中检测到目标对象时,也可以为目标对象构建出相应的3D躯干模型,进一步的,当应用检测到用户针对目标对象躯干的触控操作时,同样可以基于自身的图像处理功能、按照本公开实施例的方案对各视频帧进行处理,进而得到相对应的特效视频帧。

在本实施例中,特效挂载条件包括下述至少一种:触发特效挂载控件;检测到触发目标对象;检测到语音信息触发特效挂载唤醒词;检测到肢体动作信息与预设动作信息相一致,可以理解,特效挂载条件即是将用户所选择的特效挂载在目标对象的躯干上并进行展示的触发条件。

具体的,对于上述第一种特效挂载条件来说,可以预先在应用软件中开发出一个控件,同时,将特效挂载相关程序与该控件进行关联,基于此,当检测到用户触发该控件时,应用软件即可调用相关程序,确定出用户所选择的特效,并将特效挂载在目标对象的躯干上,可以理解,用户触发控件的方式有多种,示例性的,当客户端安装部署于PC端时,用户可以通过鼠标点击的方式触发特效挂载控件,当客户端安装部署于移动终端上时,用户可以通过手指触控的方式触发特效挂载控件,本领域技术人员应当理解,具体的特效挂载触控方式可以根据实际情况进行选择,本公开实施例对此不做具体的限定。

对于上述第二种特效挂载条件来说,当应用接收到用户主动上传或利用摄像装置实时采集的图像或视频时,可以基于预先训练好的图像识别模型对图像或各视频帧进行处理,从而确定出画面中是否包含目标对象。进一步的,当画面中展示有目标对象时,应用需要对用户的触发操作进行实时检测,若检测到用户触发目标对象,应用即可将用户所选择的特效空间挂载在目标对象的躯干上,例如,当应用在当前展示的画面中检测到作为目标对象的一只猫的图案时,如果检测到用户通过触控屏点击了猫的头部区域,即可将用户预先选择的一个特效挂载在猫的头部。

对于上述第三种特效挂载条件来说,可以在应用软件中预先设置特定的信息作为特效挂载唤醒词,例如,将“挂载”、“特效挂载”以及“挂载特效”等词汇中的一个或多个作为特效挂载唤醒词,基于此,当应用软件接收到用户发出的语音信息后,可以利用预先训练好的语音识别模型对语音信息进行识别,并判断识别结果中是否包含上述预设的特效挂载唤醒词中的一个或多个,当判断结果为是时,应用即可将用户所选择的特效挂载至目标对象的躯干上。

对于上述第四种特效挂载条件来说,可以在应用软件中录入多个人或动物的动作信息,并将这些动作信息作为预设动作信息,例如,将反映人举起双手这一动作的信息作为预设动作信息,或者,将反映猫站立起来这一动作的信息作为预设动作信息,基于此,当应用接收到用户主动上传或利用摄像装置实时采集的图像或视频时,可以基于预先训练好的肢体动作信息识别算法对图像或各视频帧中的画面进行识别,当识别结果表明当前画面中目标对象的肢体动作信息与预设动作信息相一致时,应用即可将用户所选择的特效挂载在目标对象的躯干上。

需要说明的是,上述特效挂载条件可以同时生效于应用软件中,也可以仅选择其中一个或多个生效于应用软件中,本公开实施例对此不作具体的限定。

在本实施例中,目标对象可以是显示界面中所显示的用户,例如,当基于用于图像处理的应用软件播放某位用户的舞蹈视频时,视频内显示的舞蹈用户即是目标对象。当然,在实际应用过程中,目标对象还可以是多种动态或静态的生物,例如,用户家中的宠物等,本公开实施例对此不作具体的限定。

具体的,从原始视频中确定出目标对象的方式有两种,第一种方式为,用户可以在视频画面中预先标定出一个或多个目标对象,基于此,当应用获取到原始视频后,根据用户的标定结果即可确定出目标对象;第二种方式为,将原始视频上传至服务端后,或者,在实时采集视频的过程中,应用软件可以对视频画面进行动态识别,进而根据识别结果确定出一个或多个目标对象。

相应的,当应用在视频画面中检测到目标对象时,可以调取预先生成的、或实时生成与目标对象相对应的目标躯干模型,具体来说,当采用第一种方式确定目标对象时(即预先对视频画面中的对象进行标定的情况),应用可以在获取到原始视频后实时地为一个或多个目标对象创建相应的目标躯干模型,当采用第二种方式确定目标对象时(即由应用对视频画面进行动态识别以确定目标对象的情况),应用可以为视频画面中的全部对象构建出相应的目标躯干模型(3D mesh),基于此,当应用在视频后续播放过程中再次识别到目标对象时,便可以直接调用已构建的、与该目标对象相对应的目标躯干模型(3D mesh)。可以理解,目标对象的身体是通过目标躯干模型所体现出来的。例如,当应用在视频画面中检测到目标对象时,可以利用多个面片实时构建出反映该用户身体各个部位的3D mesh,进而将3D mesh作为与该用户对应的目标躯干模型,在目标躯干模型构建完毕后,应用还可以对该模型进行标注,并与作为目标对象的用户进行关联,基于此,若应用在后续过程中再次在视频画面中检测到该用户的身体画面,则可以直接调用已构建的3D mesh作为目标躯干模型。本领域技术人员应当理解,当应用为目标对象确定出相应的目标躯干模型时,用户还可以根据实际需求对该模型进行编辑调整,从而进一步提高后续将特效挂载在目标对象身体过程中的准确度。

需要说明的是,当应用为目标对象构建出对应的目标躯干模型后,即是目标对象在后续的视频画面中多次出现,应用也无需为该目标对象重新构建模型,而是直接调用与该目标对象相对应的目标躯干模型即可。

还需要说明是,在实际应用过程中,当应用软件确定出目标躯干模型后,可以基于预先编写的关键点确定程序或算法,在目标躯干模型上确定出一个或多个关键点,例如,根据目标躯干模型上的关键点与人体各关节相对应的点,确定出变换矩阵。

其中,变换矩阵即是反应各关键点与人体上各关节点之间关联关系的矩阵,具体来说,变换矩阵中可以包括平移矩阵和旋转矩阵,通过这两个类型的矩阵,应用即可确定在当前视频画面中如何将目标躯干模型进行平移或旋转,进而在后续过程中确定出目标躯干模型对应的各像素点在当前视频帧中的目标显示位置。可以理解,基于该变换矩阵,即可实现目标躯干模型与实际的人体之间的绑定或关联,从而保证目标躯干模型可以与运动中的人体时刻保持对齐,即,保证目标躯干模型的动作时刻跟随人体实际的动作。

S120、确定目标特效与目标躯干模型上的目标顶点信息。

可选的,先确定与目标对象对应的触控点,基于触控点确定对应的目标躯干模型上的目标顶点信息;或,确定与语音信息相对应的挂载部位,并基于挂载部位确定对于目标躯干的目标顶点信息;或,根据肢体动作信息所对应的躯干模型,确定目标顶点信息。

具体的,当通过触控点确定目标顶点信息时,可以在检测到显示界面中包括目标对象时,确定与目标对象相对应的待处理躯干模型;确定至少一个面片的顶点信息,得到与目标对象相对应的目标躯干模型,以在检测到触控点时,确定触控点在所述目标躯干模型上所对应的目标顶点信息。需要说明的是,待处理躯干模型由至少一个面片构成;各面片的顶点信息不同。其中,面片是指支持特效图像处理的应用软件或应用程序中的网格(mesh),可以理解为,应用软件中用于承载图像的对象;同时,每个面片又可以由至少三个顶点构成,基于此可以理解,各面片的顶点信息即是构成待处理躯干模型的各个顶点的位置信息。

在实际的确定目标躯干模型的过程中,还可以先确定待处理身体躯干模型所对应的待处理贴图,再基于待处理贴图,确定各面片的顶点信息。其中,由于目标躯干模型是由多个面片构成的,因此,待处理贴图可以是应用为目标对象的躯干所创建的一个或多个贴图,每个贴图与特定的3D mesh相对应,可以理解,当目标对象为一名用户时,每个3D mesh至少用于表征该用户对应的目标躯干模型上的某一区域,例如,表征用户的头部区域,可以理解为,每个3D mesh表征多个区域中的至少一个,多个3D mesh则表征多个不同的区域。进一步的,由于各待处理贴图由多个顶点构成,因此,当应用确定出各待处理贴图后,可以从待处理贴图对应的面片上确定出相应的顶点排布信息,进而根据顶点排布信息确定出各面片的顶点信息,需要说明的是,在实际应用过程中,将所创建的各贴图与3D mesh进行关联后,还可以对从各3D mesh上确定出来的顶点进行设置,或者对各3D mesh的顶点的UV以及常规参数进行调整,从而保证各3D mesh的UV不复用。

在本实施例中,当显示界面中展示有目标躯干模型时,应用软件还可以实时地对用户的触控操作进行检测,当检测到触控点时,则需要确定该触控点是否位于目标对象上,进一步的,若确定触控点位于目标对象上时,应用即可在目标躯干模型上确定出与该触控点相对应的目标顶点信息。可以理解,由于躯干模型由至少一个面片组成,每个面片又由至少三个顶点构成,因此,目标顶点信息即是构成目标躯干模型的各个顶点的位置信息,例如,各顶点在三维空间坐标系内的坐标。继续以上述示例进行说明,当视频画面中展示有一位正在舞蹈的用户时,若其他用户在显示界面上进行触控,且触控点位于画面中舞蹈用户的身体上时,应用即可进一步在该舞蹈用户的用户躯干模型上,确定出与该触控点相对应的三个顶点的坐标信息,即目标顶点信息。

在本实施例中,当通过语音信息相对应的挂载部位确定目标顶点信息时,同样可以以预设特效挂载条件的方式,在应用软件中预设特定的信息作为确定挂载位置的信息,例如,将“头部”、“肩部”或“腿部”等词汇中的一个或多个作为确定特效挂载位置的信息,同时,上述各信息还与相应的躯干位置相关联。基于此,当应用需要将特效挂载至目标对象的躯体上,且接收到用户的语音信息时,可以利用预先训练好的语音识别模型对语音信息进行识别,当确定识别结果中包含“头部”这一词汇时,应用即可确定出与该词汇相关联的目标躯干模型上的头部区域,从而确定出该区域的目标顶点信息。

在本实施例中,当通过肢体动作信息所对应的躯干模型,确定目标顶点信息时,可以通过应用对画面中的目标对象的动作进行实时检测,当检测到目标对象做出特定的动作时,即可在目标对象的目标躯干模型上确定出与该动作相关联的目标区域,进而确定出该区域的顶点信息作为目标顶点信息。

具体来说,在确定目标顶点信息的过程中,还可以确定触控点在显示界面的像素点,或确定挂载部位的中心所对应的像素点,或根据肢体动作信息所对应的躯干模型,确定几何中心点,并将几何中心点作为像素点,进而确定像素点对应目标面片;根据目标面片的三个顶点信息,确定与触控点相对应的目标顶点信息。其中,当包含有目标对象躯干的视频处于播放状态时,若检测到用户通过鼠标点击画面中目标对象的身体,用户鼠标点击的位置即是触控点;或者,当包含有目标对象躯干的视频在触控屏上进行展示时,若检测到用户通过手指或其他设备触发画面中目标对象的身体,手指或其他设备与触控屏接触的位置即是触控点。

在本实施例中,应用还可以将挂载部位的中心确定为像素点,例如,当确定特效挂载部位为用户胳膊区域时,可以直接确定胳膊区域中心的像素点,当确定特效挂载部位为头部时,可以直接确定头部区域中心的像素点;同时,由于目标躯干模型既可以是静态的,也可以是动态的,因此可以在肢体动作信息对应的躯干模型上确定出一个几何中心点,例如,当目标躯干模型是一名用户的肢体模型,且模型上的用户的一只手臂一直处于摆动状态时,应用即可确定出模型上用户手臂部分的几何中心点,进而将该点作为像素点。

示例性的,应用可以先基于各视频帧绘制相应的渲染纹理(render texture),并输出其每个顶点的UV值,可以理解为,为网格mesh的每个顶点设置连续且不同的UV值,基于此,当用户对显示界面中舞蹈用户的身体部位进行触控时,应用可以确定出一个脚本点击事件并进行解析,从而确定出用户在屏幕上点击的位置(即像素点),进一步的,根据该像素点确定出目标躯干模型上对应的三角面(即目标面片)UV,从而将表征该三角面位置的三个顶点信息作为与该用户触控点相对应的目标顶点信息。

可选的,在根据目标面片的三个顶点信息确定目标顶点信息时,可以基于目标面片的三个顶点信息和触控点,对三个顶点信息插值处理,从而确定触控点的目标顶点信息。示例性的,当应用软件确定出目标面片与目标对象躯干上某一区域相对应的网格时,可以确定出该面片对应的三个顶点信息,进一步的,结合已确定的触控点,即可对三个顶点信息进行插值处理,从而确定出目标顶点作为特效的挂载点,可以理解,图像插值处理即是利用已知临近像素点的灰度值(或rgb图像中的三色值)来产生未知像素点的灰度值的过程,本公开实施例对此不再赘述。

S130、确定与目标顶点信息相对应的目标挂载点,并确定目标对象的当前偏移角度。

在本实施例中,当在目标躯干模型上确定出目标顶点信息后,为了将用户选择的目标特效与视频画面中用户的身体进行关联,还需要确定出与目标顶点信息相对应的目标挂载点,同时,为了使特效朝向与视频画面中用户躯干的朝向相一致,应用还需要确定出目标对象的当前偏移角度。

其中,目标挂载点可以是目标顶点所隶属的面片上的点,用于表示目标特效的挂载位置。例如,当确定目标顶点隶属的面片与视频画面中用户胳膊区域相对应时,可以将该面片对应的顶点确定为目标挂载点,或者,将该面片内的某一点作为目标挂载点。

在本实施例中,由于视频画面中的目标对象可能处于一直运动的状态,目标对象的朝向与虚拟相机之间会产生一定角度的偏转,因此,在确定目标挂载点的同时,应用还需要确定出目标对象的当前偏移角度。其中,当前偏移角度即表示视频画面中的用户身体在当前时刻的朝向,例如,将视频画面中的用户的脊柱部分与空间坐标系的z轴相关联,进一步的,当目标对象面向虚拟相机时,从目标对象的目标躯干模型上确定出一个面,进而得到一条面向虚拟相机的法线,基于此,当目标对象的躯干发生偏转时,可以基于目标躯干模型再次得到一条法线,通过计算两条法线之间的夹角,应用即可确定出目标躯干模型在空间坐标系中的偏转角度,从而将该角度作为当前偏移角度。

可选的,基于目标顶点信息确定于显示界面上的目标挂载点,并基于目标肢体躯干的偏转角度,确定目标对象的当前偏移角度。

具体来说,当确定出目标面片对应的目标顶点信息(如,三个顶点的位置坐标)后,可以基于预先创建的插值确定插件,将该面片其中一个顶点确定为目标挂载点,或者,将该面片内某一点确定为目标挂载点。同时,基于该插件可以在虚拟三维空间内构建出一个空间坐标系,并任选空间坐标系中的一条坐标轴与目标对象的目标躯干模型进行关联,

S140、基于目标挂载点和当前偏移角度,将目标特效挂载在目标对象上,得到特效视频帧。

需要说明的是,在将特效挂载至视频画面内用户的身体上之前,用户首先需要在应用软件中选择相应的目标特效。其中,目标特效可以是用户从应用提供的特效包中选择的特效,例如,目标特效可以是展示于显示界面中、且能够在目标对象的身体上进行挂载的物品、花朵以及首饰等。

在本实施例中,目标特效还包括静态特效和动态特效;其中,静态特效为固定在目标挂载点的特效,动态特效为与目标挂载点相关联的运动特效。例如,当利用任意图像处理软件预先生成一个3D气球模型作为静态特效,并生成与该静态特效相关联的控件后,若检测到用户点击该控件,则可以确定用户当前已选择该气球特效,进一步的,基于用户的触控点,应用可以将静态特效对应的3D气球模型固定在显示界面所展示的用户身体上的某一位置;当预先生成一条彩色的光带作为动态特效,并生成与该动态特效相关联的控件后,若检测到用户点击该控件,则可以确定用户当前已选择该光带特效,进一步的,基于用户的触控点,应用可以将动态特效对应的光带与显示界面所展示的用户身体上的某一区域进行关联,从而使这条光带随着界面中用户身体的移动而产生适应性运动,为用户呈现出更加丰富的视觉效果。

在本实施例中,当应用确定出目标挂载点以及当前偏移角度后,便可以将用户选择的目标特效挂载在目标对象上,例如,将用户所选特效对应的3D气球模型挂载在视频画面中正在舞蹈的用户的身体上。需要说明的是,在实际应用过程中,依然可以利用预先创建的插值确定插件执行将目标特效挂载到目标对象上的操作,也即是说,利用该插件可以将目标对象的各个部分作为一个实体entity,从而将特效附着到该实体目标网格的UV点上,同时,通过lerp函数还可以目标躯干模型上所挂载特效的具体位置进行调整。

在实际应用过程中,目标对象可以分为两类,包括动态的目标对象以及静态的目标对象,基于此,当目标对象为静态时,应用将用户从特效包中选择的特效挂载到目标对象的身体上后,该特效会保持静态显示;当目标对象为动态时,应用将用户从特效包中选择的特效挂载到目标对象的身体上后,该特效还会随着目标对象的运动而产生适应性移动,下面对这一过程进行详细说明。

具体的,当所挂载的目标特效为动态特效时,为了得到对应的特效视频帧,还需要确定动态特效的显示样式、运动速率和运动路径。其中,显示样式可以是表征动态特效图案、颜色以及纹理等参数的信息,运动速率则是反映目标特效对应的2D贴图或3D模型在显示界面中运动快慢的参数,运动路径则表征目标特效对应的2D贴图或3D模型在显示界面中运动的轨迹,当然,在实际应用过程中,动态特效的显示样式、运动速率以及运动路径均可以根据实际需求进行调整,本公开实施例对此不作具体的限定。

可选的,将目标挂载点作为动态特效的起始点,按照运动路径和运动速率进行运动,从而得到特效视频帧。其中,特效视频帧即是在原视频帧中添加目标特效后所得到的视频帧,同时,各特效视频帧携带有与原视频帧相同的时间戳,因此,基于时间戳对各特效视频帧进行拼接后,即得到与原视频对应的特效视频。可以理解,在特效视频中,动态特效对应的2D贴图或3D模型会以目标挂载点作为起始点,并按照应用所确定的运动路径和运动速率进行运动。

示例性的,当用户所选择的目标特效为与某种特定的物体相对应的特效特效时,应用可以先确定出该特效对应的显示样式,即该特效所关联的物体模型,同时,确定出该物体模型在显示界面中的运动速率为1,即表明该模型每秒在显示界面中移动一个单位长度,确定出该物体模型在显示界面中的运动路径为一条特定长度的横线,基于此,当目标挂载点为目标对象左侧肩部时,即表明该模型添加至视频中得到特效视频帧,并基于多个特效视频帧生成特效视频后,特效视频内所显示的物体模型会按照预设运动速率在从目标对象左侧肩部移动至右侧肩部。

在实际应用过程中,应用还可以基于目标挂载点的目标顶点信息、运动路径和运动速率,确定目标特效在目标躯干模型上的至少一个途径顶点;基于目标顶点信息和至少一个途径顶点,确定目标特效在目标躯干模型上运动的特效视频帧。具体来说,在应用基于目标特效生成特效视频的过程中,由于已经确定出目标挂载点作为目标特效关联的2D贴图或3D模型的起始点,同时,还确定出该模型在视频中的运动路径和运动速率,因此,应用可以通过预先编辑的程序计算得到目标特效在目标躯干模型上的多个途径顶点,例如,当确定出3D气球在视频画面中运动的起点,以及该3D气球的运动速率和运动轨迹后,应用即可调用并运行预先编辑的途经点确定程序,从而确定出多个途径顶点,可以理解,这些顶点可以直接地反映出目标特效关联的2D贴图或3D模型的运动路径。

进一步的,基于作为特效运动起点的目标顶点信息,以及多个途径顶点,应用即可控制目标特效对应的2D贴图或3D模型在原视频的画面中进行运动,从而得到多个特效视频帧。本领域技术人员应当理解,当得到多个特效视频帧后,应用即可将特效视频帧中各像素点的信息写入到渲染引擎中,从而使渲染引擎在显示界面中渲染出与当前特效视频帧相对应的画面,其中,渲染引擎可以是控制图形处理器(Graphics Processing Unit,GPU)对相关图像进行渲染的程序,即,可以使计算机完成多个特效视频帧的绘制任务,本公开实施例在此不再赘述。

还需要说明的是,在实际应用过程中,还可以通过预先编写的脚本读取算法实时驱动的与视频画面中用户身体对应的网格mesh,并测试所挂载的目标特效对应的2D贴图或3D模型是否可以正确跟随特定网格mesh运动,同时,还可以测试出各网格mesh是否可以和显示界面中目标对象的躯干相对齐。

本公开实施例的技术方案,在检测到满足特效挂载条件时,确定与目标对象相对应的目标躯干模型,进而确定目标特效与目标躯干模型上的目标顶点信息,进一步的,确定与目标顶点信息相对应的目标挂载点,并确定目标对象的当前偏移角度,最后基于目标挂载点和当前偏移角度,将目标特效挂载在目标对象上,得到特效视频帧,从而使所添加的特效能够与视频画面中用户的肢体相关联,同时,特效的朝向与画面中用户肢体的朝向相对应,从而使特效视频呈现出的视觉效果更加逼真,增强了用户的使用体验。

图2为本公开实施例所提供的一种图像处理装置结构示意图,如图2所示,所述装置包括:目标躯干模型确定模块210、目标顶点信息确定模块220、目标挂载点确定模块230以及特效视频帧生成模块240。

目标躯干模型确定模块210,用于在检测到满足特效挂载条件时,确定与目标对象相对应的目标躯干模型。

目标顶点信息确定模块220,用于确定目标特效与所述目标躯干模型上的目标顶点信息。

目标挂载点确定模块230,用于确定与所述目标顶点信息相对应的目标挂载点,并确定所述目标对象的当前偏移角度。

特效视频帧生成模块240,用于基于所述目标挂载点和所述当前偏移角度,将目标特效挂载在所述目标对象上,得到特效视频帧。

在上述各技术方案的基础上,图像处理装置还包括待处理躯干模型确定模块以及目标躯干模型确定模块。

待处理躯干模型确定模块,用于在检测到所述显示界面中包括目标对象时,确定与所述目标对象相对应的待处理躯干模型;其中,所述待处理躯干模型由至少一个面片构成。

目标躯干模型确定模块,用于确定所述至少一个面片的顶点信息,得到与所述目标对象相对应的目标躯干模型,以在检测到触控点时,确定所述触控点在所述目标躯干模型上所对应的目标顶点信息;其中,各面片的顶点信息不同。

在上述各技术方案的基础上,目标躯干模型确定模块包括待处理贴图确定单元以及顶点信息确定单元。

待处理贴图确定单元,用于确定所述待处理身体躯干模型所对应的待处理贴图。

顶点信息确定单,用于基于所述待处理贴图,确定各面片的顶点信息。

在上述各技术方案的基础上,所述特效挂载条件包括下述至少一种:触发特效挂载控件;检测到触发目标对象;检测到语音信息触发特效挂载唤醒词;检测到肢体动作信息与预设动作信息相一致。

可选的,目标顶点信息确定模块220,还用于确定与所述目标对象的触控点,基于所述触控点确定对应所述目标躯干模型上的目标顶点信息;或,确定与所述语音信息相对应的挂载部位,并基于所述挂载部位确定对应于所述目标躯干的目标顶点信息;或根据所述肢体动作信息所对应的躯干模型,确定所述目标顶点信息。

在上述各技术方案的基础上,目标顶点信息确定模块220包括像素点确定单元以及目标顶点信息确定单元。

像素点确定单元,用于确定所述触控点在所述显示界面的像素点;或,确定所述挂载部位的中心所对应的像素点;或,根据肢体动作信息所对应的躯干模型,确定几何中心点,并将所述几何中心点作为所述像素点。

目标顶点信息确定单元,用于确定所述像素点对应的目标面片,并根据所述目标面片的三个顶点信息,确定与所述触控点相对应的目标顶点信息。

可选的,目标顶点信息确定单元,还用于基于所述目标面片的三个顶点信息和所述触控点,对所述三个顶点信息插值处理,确定所述触控点的目标顶点信息。

可选的,目标挂载点确定模块230,还用于基于所述目标顶点信息确定于显示界面上的目标挂载点,并基于所述目标肢体躯干的偏转角度,确定所述目标对象的当前偏移角度。

在上述各技术方案的基础上,所述目标特效为静态特效和动态特效;其中,所述静态特效为固定在所述目标挂载点的特效,所述动态特效为与所述目标挂载点相关联的运动特效。

在上述各技术方案的基础上,图像处理装置还包括显示样式确定模块。

显示样式确定模块,用于确定动态特效的显示样式、运动速率和运动路径。

可选的,特效视频帧生成模块240,还用于将所述目标挂载点作为所述动态特效的起始点,按照所述运动路径和运动速率进行运动,得到所述特效视频帧。

可选的,特效视频帧生成模块240,还用于基于所述目标挂载点的目标顶点信息、运动路径和运动速率,确定所述目标特效在所述目标躯干模型上的至少一个途径顶点;基于所述目标顶点信息和所述至少一个途径顶点,确定所述目标特效在所述目标躯干模型上运动的特效视频帧。

本实施例所提供的技术方案,在检测到满足特效挂载条件时,确定与目标对象相对应的目标躯干模型,进而确定目标特效与目标躯干模型上的目标顶点信息,进一步的,确定与目标顶点信息相对应的目标挂载点,并确定目标对象的当前偏移角度,最后基于目标挂载点和当前偏移角度,将目标特效挂载在目标对象上,得到特效视频帧,从而使所添加的特效能够与视频画面中用户的肢体相关联,同时,特效的朝向与画面中用户肢体的朝向相对应,从而使特效视频呈现出的视觉效果更加逼真,增强了用户的使用体验。

本公开实施例所提供的图像处理装置可执行本公开任意实施例所提供的图像处理方法,具备执行方法相应的功能模块和有益效果。

值得注意的是,上述装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开实施例的保护范围。

图3为本公开实施例所提供的一种电子设备的结构示意图。下面参考图3,其示出了适于用来实现本公开实施例的电子设备(例如图3中的终端设备或服务器)300的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图3示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图3所示,电子设备300可以包括处理装置(例如中央处理器、图案处理器等)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储装置306加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有电子设备300操作所需的各种程序和数据。处理装置301、ROM 302以及RAM 303通过总线304彼此相连。编辑/输出(I/O)接口305也连接至总线304。

通常,以下装置可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的编辑装置306;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及通信装置309。通信装置309可以允许电子设备300与其他设备进行无线或有线通信以交换数据。虽然图3示出了具有各种装置的电子设备300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置306被安装,或者从ROM 302被安装。在该计算机程序被处理装置301执行时,执行本公开实施例的方法中限定的上述功能。

本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

本公开实施例提供的电子设备与上述实施例提供的图像处理方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。

本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提供的图像处理方法。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:

在检测到满足特效挂载条件时,确定与目标对象相对应的目标躯干模型;

确定目标特效与所述目标躯干模型上的目标顶点信息;

确定与所述目标顶点信息相对应的目标挂载点,并确定所述目标对象的当前偏移角度;

基于所述目标挂载点和所述当前偏移角度,将目标特效挂载在所述目标对象上,得到特效视频帧。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

根据本公开的一个或多个实施例,【示例一】提供了一种图像处理方法,该方法包括:

在检测到满足特效挂载条件时,确定与目标对象相对应的目标躯干模型;

确定目标特效与所述目标躯干模型上的目标顶点信息;

确定与所述目标顶点信息相对应的目标挂载点,并确定所述目标对象的当前偏移角度;

基于所述目标挂载点和所述当前偏移角度,将目标特效挂载在所述目标对象上,得到特效视频帧。

根据本公开的一个或多个实施例,【示例二】提供了一种图像处理方法,该方法,还包括:

可选的,在检测到所述显示界面中包括目标对象时,确定与所述目标对象相对应的待处理躯干模型;其中,所述待处理躯干模型由至少一个面片构成;

确定所述至少一个面片的顶点信息,得到与所述目标对象相对应的目标躯干模型,以在检测到触控点时,确定所述触控点在所述目标躯干模型上所对应的目标顶点信息;

其中,各面片的顶点信息不同。

根据本公开的一个或多个实施例,【示例三】提供了一种图像处理方法,该方法,还包括:

可选的,确定所述待处理身体躯干模型所对应的待处理贴图;

基于所述待处理贴图,确定各面片的顶点信息。

根据本公开的一个或多个实施例,【示例四】提供了一种图像处理方法,该方法,还包括:

可选的,所述特效挂载条件包括下述至少一种:

触发特效挂载控件;

检测到触发目标对象;

检测到语音信息触发特效挂载唤醒词;

检测到肢体动作信息与预设动作信息相一致。

根据本公开的一个或多个实施例,【示例五】提供了一种图像处理方法,该方法,还包括:

可选的,确定与所述目标对象的触控点,基于所述触控点确定对应所述目标躯干模型上的目标顶点信息;或,

确定与所述语音信息相对应的挂载部位,并基于所述挂载部位确定对应于所述目标躯干的目标顶点信息;或

根据所述肢体动作信息所对应的躯干模型,确定所述目标顶点信息。

根据本公开的一个或多个实施例,【示例六】提供了一种图像处理方法,该方法,还包括:

可选的,确定所述触控点在所述显示界面的像素点,或,确定所述挂载部位的中心所对应的像素点;或,根据肢体动作信息所对应的躯干模型,确定几何中心点,并将所述几何中心点作为所述像素点;

确定所述像素点对应的目标面片,并根据所述目标面片的三个顶点信息,确定与所述触控点相对应的目标顶点信息。

根据本公开的一个或多个实施例,【示例七】提供了一种图像处理方法,该方法,还包括:

可选的,基于所述目标面片的三个顶点信息和所述触控点,对所述三个顶点信息插值处理,确定所述触控点的目标顶点信息。

根据本公开的一个或多个实施例,【示例八】提供了一种图像处理方法,该方法,还包括:

可选的,基于所述目标顶点信息确定于显示界面上的目标挂载点,并基于所述目标肢体躯干的偏转角度,确定所述目标对象的当前偏移角度。

根据本公开的一个或多个实施例,【示例九】提供了一种图像处理方法,该方法,还包括:

可选的,所述目标特效为静态特效和动态特效;

其中,所述静态特效为固定在所述目标挂载点的特效,所述动态特效为与所述目标挂载点相关联的运动特效。

根据本公开的一个或多个实施例,【示例十】提供了一种图像处理方法,该方法,还包括:

可选的,确定动态特效的显示样式、运动速率和运动路径。

根据本公开的一个或多个实施例,【示例十一】提供了一种图像处理方法,该方法,还包括:

可选的,将所述目标挂载点作为所述动态特效的起始点,按照所述运动路径和运动速率进行运动,得到所述特效视频帧。

根据本公开的一个或多个实施例,【示例十二】提供了一种图像处理方法,该方法,还包括:

可选的,基于所述目标挂载点的目标顶点信息、运动路径和运动速率,确定所述目标特效在所述目标躯干模型上的至少一个途径顶点;

基于所述目标顶点信息和所述至少一个途径顶点,确定所述目标特效在所述目标躯干模型上运动的特效视频帧。

根据本公开的一个或多个实施例,【示例十三】提供了一种图像处理装置,该装置包括:

目标躯干模型确定模块,用于在检测到满足特效挂载条件时,确定与目标对象相对应的目标躯干模型;

目标顶点信息确定模块,用于确定目标特效与所述目标躯干模型上的目标顶点信息;

目标挂载点确定模块,用于确定与所述目标顶点信息相对应的目标挂载点,并确定所述目标对象的当前偏移角度;

特效视频帧生成模块,用于基于所述目标挂载点和所述当前偏移角度,将目标特效挂载在所述目标对象上,得到特效视频帧。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

技术分类

06120114701910