CN116645450A - 表情包生成方法及设备 - Google Patents
表情包生成方法及设备 Download PDFInfo
- Publication number
- CN116645450A CN116645450A CN202210141293.XA CN202210141293A CN116645450A CN 116645450 A CN116645450 A CN 116645450A CN 202210141293 A CN202210141293 A CN 202210141293A CN 116645450 A CN116645450 A CN 116645450A
- Authority
- CN
- China
- Prior art keywords
- determining
- expression
- component
- target
- motion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000014509 gene expression Effects 0.000 title claims abstract description 277
- 238000000034 method Methods 0.000 title claims abstract description 60
- 239000000463 material Substances 0.000 claims abstract description 141
- 230000000737 periodic effect Effects 0.000 claims abstract description 124
- 238000010586 diagram Methods 0.000 claims abstract description 49
- 230000006870 function Effects 0.000 claims description 82
- 239000011159 matrix material Substances 0.000 claims description 28
- 238000007667 floating Methods 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 125000004122 cyclic group Chemical group 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 33
- 238000004519 manufacturing process Methods 0.000 abstract description 27
- 230000002829 reductive effect Effects 0.000 abstract description 8
- 210000004209 hair Anatomy 0.000 description 36
- 230000000875 corresponding effect Effects 0.000 description 30
- 230000008569 process Effects 0.000 description 11
- 210000001508 eye Anatomy 0.000 description 10
- 210000003128 head Anatomy 0.000 description 10
- 210000000214 mouth Anatomy 0.000 description 10
- 230000001815 facial effect Effects 0.000 description 9
- 230000029058 respiratory gaseous exchange Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 210000004709 eyebrow Anatomy 0.000 description 7
- 210000000720 eyelash Anatomy 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005034 decoration Methods 0.000 description 4
- 210000001747 pupil Anatomy 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000010355 oscillation Effects 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000036544 posture Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100460844 Mus musculus Nr2f6 gene Proteins 0.000 description 1
- 102100023170 Nuclear receptor subfamily 1 group D member 1 Human genes 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 210000000744 eyelid Anatomy 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000241 respiratory effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/5866—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Library & Information Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开实施例提供一种表情包生成方法及设备,该方法包括:获取虚拟形象上目标部件的素材图,在包含虚拟形象的表情包中目标部件处于运动状态;根据素材图,确定目标部件的全局位置;确定目标部件在表情包中的周期运动幅度;根据素材图、全局位置和周期运动幅度,生成表情包。从而,在表情包中实现部件的动态效果,无需用户掌握特定软件和使用复杂技巧进行顶点布局和移动,也无需涉及特定的模型文件,降低了表情包的制作难度,提高了表情包的制作效率,为用户提供更好的表情包制作体验。
Description
技术领域
本公开实施例涉及计算机技术领域,尤其涉及一种表情包生成方法及设备。
背景技术
以静态图像、动态图像等方式呈现的表情包形象生动、趣味性强,深受用户喜爱,除了在聊天中使用表情包,制作表情包也成为部分用户的喜好。
在动态的表情包中,一些部件的动态效果最难绘制,比如头发的飘动效果、身体的呼吸效果。目前,可利用live2d(一种绘图渲染技术)的驱动方式来产生部件的动态效果,但该方式需要绘制者掌握特定软件并利用复杂的技巧进行顶点布局和移动,对绘制者有着较高的技术门槛要求;或者,还可以设计基于物理引擎的头发飘动效果和身体呼吸效果,但该方式需要制作不同的特定模型文件,制作流程复杂,难度较高。
因此,如何降低表情包中部件的动态效果的制作难度是亟需解决的问题。
发明内容
本公开实施例提供一种表情包生成方法及设备,以克服表情包中部件的动态效果的制作难度较高的问题。
第一方面,本公开实施例提供一种表情包生成方法,包括:获取虚拟形象上目标部件的素材图,在包含所述虚拟形象的表情包中所述目标部件处于运动状态;根据所述素材图,确定所述目标部件的全局位置;确定所述目标部件在所述表情包中的周期运动幅度;根据所述素材图、所述全局位置和所述周期运动幅度,生成所述表情包。
第二方面,本公开实施例提供一种表情包生成设备,包括:获取单元,用于获取虚拟形象上目标部件的素材图,在所述虚拟形象的表情包中所述目标部件处于运动状态;位置确定单元,用于根据所述素材图,确定所述目标部件的全局位置;幅度确定单元,用于确定所述目标部件在所述表情包中的周期运动幅度;生成单元,用于根据所述素材图、所述全局位置和所述周期运动幅度,生成所述表情包。
第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面或第一方面各种可能的设计所述的表情包生成方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面或第一方面各种可能的设计所述的表情包生成方法。
第五方面,根据本公开的一个或多个实施例,提供了一种计算机程序产品,所述计算机程序产品包含计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面或第一方面各种可能的设计所述的表情包生成方法。
本实施例提供的表情包生成方法及设备,获取虚拟形象上目标部件的素材图,在包含所述虚拟形象的表情包中所述目标部件处于运动状态;根据所述素材图,确定所述目标部件的全局位置;确定所述目标部件在所述表情包中的周期运动幅度;根据所述素材图、所述全局位置和所述周期运动幅度,生成所述表情包。因此,通过上述过程实现表情包中部件的动态效果,无需用户掌握特定软件和使用复杂技巧进行顶点布局和移动,也无需涉及特定的模型文件,降低了表情包的制作难度,提高了表情包的制作效率,为用户提供更好的表情包制作体验。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种应用场景的示例图;
图2为本公开实施例提供的表情包生成方法流程示意图一;
图3a为多个部件的素材图的示例图;
图3b为部件分类和部件命名的示例图;
图4为本公开实施例提供的表情包生成方法的流程示意图二;
图5为本公开实施例提供的模型确定设备的结构框图;
图6为本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
首先,对公开实施例涉及的词语进行解释:
(1)虚拟形象:在计算设备中通过图像描绘的虚拟角色,比如动漫角色。
(2)虚拟形象的部件:虚拟形象的组成部分;比如,动漫角色的眼睛、鼻子、嘴巴等均属于动漫角色的部件。
(3)部件的素材图:绘制有该部件的图层;其中,不同部件可对应不同素材图,即不同部件可对应不同图层,以提高部件组合的灵活性。
(4)部件的全局位置:部件在表情包中的表情图内的图像位置,其中,表情图上包括多个部件组合得到的虚拟形象。
其次,提供本公开实施例的构思:
表情包通常需要由具备绘画技术的人员进行逐帧绘制并合成,其中虚拟形象上部件的动态效果最难绘制,例如头发飘动效果、身体呼吸效果。相关技术中,专业人员采用基于live2d的驱动方式来绘制动态效果,但该方式的技术门槛较高,需要利用复杂的技巧进行顶点的布局和移动。另外,可基于物理引擎绘制部件动态效果,但需要设计特定的模型文件,制作流程复杂。
为解决上述问题,本公开的实施例提出了一种表情包生成方法及设备。在本公开的实施例中,通过获取虚拟形象上目标部件的素材图,目标部件在表情包中为处于运动状态的部件,确定目标部件的全局位置和目标部件在表情包中的周期运动幅度,根据素材图、全局位置和周期运动幅度,生成表情包。从而,在表情包中实现部件周期性运动的动态效果,整个过程中用户仅需准备虚拟形象上多个部件的素材图,降低了表情包的制作难度,提高了制作效率,提高了用户的表情包制作体验。
参考图1,图1为本公开实施例提供的一种应用场景的示例图。
如图1所示,应用场景为动态表情包制作场景,在该场景下,用户可在终端101上准备虚拟形象上多个部件的素材图,终端101基于该多个部件的素材图,制作动态的表情包,或者,终端101可将该多个部件的素材图发送至服务器102,由服务器102基于多个部件的素材图制作动态的表情包。
示例性的,在聊天场景中,用户想要制作独特有趣的动态表情包,可在终端上点击进入聊天应用程序提供的表情包制作页面,在该表情包制作页面可以输入一些自己设计的卡通动物、动漫人物等虚拟形象的多个部件的素材图,或者,也可以输入一些公开授权可用的卡通动物、动漫人物等虚拟形象的多个部件的素材图,通过表情包制作程序得到制作好的表情包。
下面,结合图1所示的应用场景,描述本公开的实施例提供的表情包生成方法及设备。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
需要说明的是,本公开的实施例可应用于电子设备,电子设备可以为终端或者服务器。其中,终端可以是个人数字处理(personal digital assistant,简称PDA)设备、具有无线通信功能的手持设备(例如智能手机、平板电脑)、计算设备(例如个人电脑(personalcomputer,简称PC))、车载设备、可穿戴设备(例如智能手表、智能手环)、智能家居设备(例如智能显示设备)等。其中,服务器可以是整体式服务器或是跨多计算机或计算机数据中心的分散式服务器。服务器还可以是各种类别的,例如但不限于,网络服务器,应用服务器,或数据库服务器,或代理服务器。
参考图2,图2为本公开实施例提供的表情包生成方法流程示意图一。如图2所示,该表情包生成方法包括:
S201、获取虚拟形象上目标部件的素材图,在包含虚拟形象的表情包中目标部件处于运动状态。
本实施例中,可获取用户输入的一个或多个目标部件的素材图。例如,用户可通过表情包制作页面的输入控件输入目标部件的素材图;又如,可在表情包制作页面显示多个虚拟形象的部件素材图,用户可从中选取同一虚拟形象的目标部件的素材图。其中,除了目标部件外,用户还可以输入虚拟形象上的其它部件的素材图,以提高虚拟形象的完整性。
为了增强表情包的真实性,虚拟形象的上身会随着呼吸而上下起伏,头发也会呈现飘动效果,所以,虚拟形象的身体部件和头发部件在表情包中均处于运动状态。因此,可选的,目标部件包括虚拟形象的身体部件和/或头发部件。其中,头发部件的数量为一个或多个。
S202、根据目标部件的素材图,确定目标部件的全局位置。
本实施例中,在目标部件为多个的情况下,不同的目标部件的素材图的大小一致,目标部件在素材图中的位置反映了目标部件的全局位置,因此,可通过确定目标部件在素材图中的位置,得到目标部件的全局位置。从而,通过素材图大小一致、目标部件在素材图中的位置决定目标部件在表情图中的全局位置的方式,提高目标部件的全局位置的准确性。
S203、确定目标部件在表情包中的周期运动幅度。
其中,由于动态的表情包相当于视频,表情包中的多个表情图相当于视频中的多个视频帧,表情包具备一定的时长,目标部件在表情包中的动态效果可以通过目标部件在该时长内的周期运动来实现,使得目标部件在表情包中的动态效果更为自然。比如,虚拟形象的上身进行周期性的上下呼吸起伏,虚拟形象的头发进行周期性地飘动,因此,在目标部件包括身体部件和/或头发部件的情况下,可以确定身体部件和/或头发部件在表情包中的周期性运动幅度,以基于部件各自的周期性运动幅度控制部件周期性运动。
其中,目标部件在表情包中的周期性运动幅度包括目标部件在表情包的时间轴上的多个时刻的运动幅度,该多个时刻的运动幅度周期性变化。比如,目标部件的周期性运动幅度按照时间顺序为0、1、2、3、2、1、0。
其中,考虑到不同目标部件的全局位置可能不同且不同目标部件的图案大小不同,所以,不同目标部件在表情包中的周期性运动幅度可不同,以生成目标部件的更准确、更合理的运动效果。
本实施例中,基于目标部件在表情包中周期性运动的规律,确定目标部件在多个时刻的运动幅度,即得到目标部件的周期性运动幅度。
S204、根据素材图、全局位置和周期运动幅度,生成表情包。
本实施例中,由于目标部件的周期性运动幅度包括目标部件在多个时刻的运动幅度,因此,可基于目标部件的全局位置和目标部件的周期性运动幅度,确定目标部件在各个时刻的表情图中的图像位置,控制目标部件的素材图运动至这些图像位置,实现目标部件在表情包中的动态效果。
此外,虚拟形象上除目标部件以外的剩余部件,如果该剩余部件的动作姿态会随着表情变化而变化,比如在微笑时嘴角逐渐向上弯,则还可以结合剩余部件的素材图、全局位置和姿态来生成表情包。比如,确定剩余部件在各个时刻的姿态,基于剩余部件的全局位置和各个时刻的姿态,对剩余部件的素材图进行组合,以得到各个时刻的表情图。
需要说明的是,本公开的各实施例中仅关注目标部件在表情包中动态效果的生成(比如上身的上下呼吸起伏的动态效果、头发左右飘动的动态效果、蝴蝶结左右摆动的动态效果等),而不关注部件的姿态变化(比如,眉毛、嘴角在不同表情下的形状变化)。因此,在本公开的各实施例中对如何确定部件在不同时刻不同表情下的姿态不做具体描述,也不做限制。
本公开实施例中,获取虚拟形象上目标部件的素材图,目标部件在表情包中为处于运动状态的部件,确定目标部件的全局位置和目标部件在表情包中的周期运动幅度,根据素材图、全局位置和周期运动幅度,生成表情包。从而,在表情包中实现部件周期性运动的动态效果,整个过程中用户仅需准备虚拟形象上多个部件的素材图,降低了表情包的制作难度,尤其是降低了表情包中一些部件的动态效果的绘制难度,有效地提高了表情包的制作效率,提高了用户的表情包制作体验。
下面,在图2提供的实施例的基础上,提供多个可行的扩展实施例。
(1)关于虚拟形象
在一些实施例中,虚拟形象包括虚拟人物形象,尤其是动漫人物形象。相较于其他类型的表情包,动漫人物形象的表情包的制作难度较高,通常需要通过2D图像绘制出3D的动态效果。本实施例中,用户通过输入动漫人物形象上多个部件的素材图,即可得到动漫人物形象的动态表情包,提高了动漫人物形象的动态表情包的制作效率,降低了制作难度。
进一步的,在虚拟形象为虚拟人物形象的情况下,目标部件包括身体部件和/或头发部件,头发部件的数量大于或等于1。
(2)关于部件
在一些实施例中,预先设置有必要部件和非必要部件。
其中,必要部件是制作虚拟形象的表情包所必需的部件,非必要部件是制作虚拟形象的表情包的可选部件。用户在输入多个部件的素材图时必须输入所有必要部件的素材图,以确保表情包中虚拟形象的完整性。
从而,通过将部件区分为必要部件和非必要部件,提高表情包制作的成功率和表情包的制作效果。当然,用户也可以在输入必要部件的素材图之余,输入非必要部件的素材图,以进一步完善和丰富虚拟形象。
其中,目标部件可能是必要部件,也可能是非必要部件。
可选的,在虚拟形象为动漫人物形象的情况下,必要部件可包括眉毛部件、上睫毛部件、瞳孔部件、嘴巴部件和脸部部件。其中,通过这些部件可以准确描绘出动漫人物形象的外貌,还可以生动地表达出多种情绪,有利于确保虚拟形象的完整性并提高虚拟形象的表情生动性。
可选的,非必要部件可包括如下至少一种:前景部件、头发部件、头部装饰部件、下睫毛部件、眼白部件、鼻子部件、耳朵部件、身体部件、背景部件。从而,通过这些非必要部件使得虚拟形象更具细节。
其中,前景部件是指根据空间关系位于虚拟形象前面的部件。
在一些实施例中,预先设置多个部件类别。在获取虚拟形象上目标部件的素材图之前,可显示多个部件类别。从而,便于用户按照部件类别来输入部件的素材图。其中,部件类别可以分为多个层次的类别,部件类别分为两个层次时,部件类别可分为父类和父类下的子类。
可选的,父类包括如下至少一种:前景部件、头发部件、头部部件、身体部件、背景部件。头发部件下的子类包括如下至少一种:头部装饰部件、前发部件、耳前发部件、耳后发部件、后发;头部部件下的子类包括头部装饰部件、眉毛部件、眼睛部件、鼻子部件、嘴巴部件、脸部部件、耳朵部件。
进一步的,子类还可以进一步划分为不同类别。具体的,眼睛部件下的子类可包括如下至少一种:上睫毛部件、下睫毛部件、瞳孔部件、眼白部件。
作为示例的,如图3a所示,图3a为多个部件的素材图的示例图。在图3a中,给出了动漫人物形象的眉毛部件、上睫毛部件、瞳孔部件、嘴巴部件、脸部部件、身体部件这些部件分别对应的素材图,可以看出,这些素材图大小一致,通过这些部件的素材图组合拼接,可以得到对应的动漫人物形象。
(3)关于素材图
在一些实施例中,一个部件可对应一个或多个素材图。比如,虚拟形象有多个头部装饰部件,所以头部装饰部件可对应多个素材图。
在一些实施例中,素材图对应唯一的图像标识,即不同的素材图对应不同的图像标识。从而,在根据部件的素材图生成表情包的过程中,可通过图像标识来区分素材图以及区分素材图对应的部件。
可选的,图像标识包括图像名称。
比如,前景部件对应的多个素材图的图像名称分别为前景一、前景二、……;头发装饰部件对应的多个素材图的图像名称分别为头发装饰部件一、头发装饰部件二、……,等等。
作为示例的,如图3b所示,图3b为部件分类和部件命名的示例图,其中,左侧区域显示了多个部件,右侧区域显示了多个部件类型下的素材图的命名方式,“图层”是指素材图,“png”为素材图的图像格式。
从图3b可以看出:1)“前景”可以对应多个图层,图像命名可以为前景_1、前景_2等;2)“头发装饰”可以对应多个图层,图像命名可以为头发装饰_1、头发装饰_2等;3)“前发”可以对应多个图层,图像命名可以为前发_1、前发_2等;4)“耳前发”可以对应多个图层,图像命名可以为耳前发_1、耳前发_2等;5)“后发”可以对应多个图层,图像命名可以为后发_1、后发_2等;6)“头部装饰”可以对应多个图层,图像命名可以为头部装饰_1、头部装饰_2等;7)“眉毛”可以对应多个图层,多个图层可以合并为一个png,即多个素材图可以合并为一个素材图,图像命名可以为眉毛_1;……等等。如此,可为不同类别的部件下的素材图提供不同的命名,为同一类别的部件下的不同素材图提供不同的命名。在此不一一描述。
(4)关于全局位置的确定
在一些实施例中,S202的一种可能的实现方式包括:在目标部件的素材图中,确定目标部件的外接矩阵;根据目标部件的外接矩阵,确定目标部件的全局位置。从而,通过在目标部件的素材图中求解目标部件的外接矩阵的方式,提高目标部件的全局位置的准确性。
本实现方式中,可在目标部件的素材图中识别出目标部件的外接矩阵,得到目标部件的外接矩阵在素材图中的位置。其中,外接矩阵在素材图中的位置包括外接矩阵的四个顶点在素材图中的像素点坐标。接着,由于所有部件的素材图大小一致,目标部件在素材图中的图像位置反映目标部件的全局位置,所以,可确定目标部件的全局位置为目标部件的外接矩阵的位置。
可选的,目标部件的素材图的图像通道包括位置通道。
其中。在素材图中,像素点在位置通道的通道值反映出该像素点是否位于目标部件的图案区域。比如:如果像素点在位置通道的通道值为1,则确定该像素点位于图案区域;如果像素点在位置通道的通道值为0,则确定该像素点不位于图案区域。所以,可通过素材图中多个像素点的位置通道的取值,确定出目标部件在素材图中的外接矩阵,提高了外接矩阵的准确性。
进一步,目标部件的素材图为RGBA四通道图像,即目标部件的素材图的图像通道包括R通道、G通道、B通道和A通道。其中,R通道、G通道、B通道分别为图像的红、绿、蓝三种颜色通道,A通道为图像的位置通道。
因此,可在目标部件的素材图中获取各像素点在A通道的通道值,根据各像素点的A通道的通道值,确定目标部件的外接矩阵。例如,在目标部件的素材图中,确定A通道的通道值为1的所有像素点,确定包含这些像素点的外接矩阵为目标部件的外接矩阵。
进一步的,目标部件的外接矩阵还可为目标部件的最小外接矩阵(minimumbounding rectangle,MBR),以提高目标部件全局位置的准确性。
(5)关于周期运动幅度的确定
参考图4,图4为本公开实施例提供的表情包生成方法的流程示意图二。如图4所示,表情包生成方法包括:
S401、获取虚拟形象上目标部件的素材图,在包含虚拟形象的表情包中目标部件处于运动状态。
S402、根据素材图,确定目标部件的全局位置。
其中,S401~S402的实现原理和技术效果可参照前述实施例,不再赘述。
S403、确定目标部件的运动幅度上限。
本实现方式中,可随机性确定目标部件的运动幅度上限;或者,可由专业人员根据经验预设不同部件的运动幅度上限,从中获取目标部件的运动幅度上限;或者,可根据目标部件的特征(比如目标部件的部件尺寸、目标部件所在的全局位置),确定目标部件的运动幅度上限。其中,在表情包中,不同的目标部件的运动幅度上限可不同,以提高运动幅度上限的准确性和合理性,比如,有些头发部件的摆动幅度更大,有些头发部件仅微微摆动。
在一些实施例中,S403的一种可能的实现方式包括:根据目标部件的全局位置,确定目标部件的运动幅度上限。
其中,目标部件的全局位置反映了目标部件所占的图像区域大小,即反映了目标部件的部件尺寸。所以,根据目标部件的全局位置确定目标部件的运动幅度上限,相当于根据目标部件的部件尺寸确定目标部件的运动幅度上限。其中,运动幅度上限与部件尺寸成正比,即目标部件的部件尺寸越大则目标部件的运动幅度上限越大,以提高目标部件运动的合理性。
本实现方式中,可根据目标部件的全局位置,确定目标部件的部件尺寸,再基于目标部件的部件尺寸,确定目标部件的运动幅度上限。确定目标部件的部件尺寸的过程中:在基于目标部件的外接矩阵确定目标部件的全局位置的情况下,可以根据目标部件的外接矩阵的四个顶点的像素点坐标,确定目标部件的部件尺寸。确定目标部件的运动幅度上限的过程中:可基于部件尺寸与运动幅度上限的预设对应关系,确定目标部件的运动幅度上限;或者,可基于目标部件的部件尺寸和运动幅度上限的计算公式,确定目标部件的运动幅度上限。其中,在该计算公式中部件尺寸与运动幅度上限成正比。
可选的,根据目标部件的全局位置确定目标部件的运动幅度上限,包括:根据目标部件的全局位置,确定目标部件的部件尺寸;根据目标部件的部件尺寸和表情包的图像尺寸,确定目标部件的运动幅度上限。
本可选方式中,根据目标部件的全局位置确定部件尺寸的确定过程不再赘述,可参照前述相关内容。表情包的图像尺寸即表情包中表情图的图像尺寸,而表情图的图像尺寸又可以与目标部件的素材图的图像尺寸相同,这些图像尺寸都是预先设置好的。考虑到仅基于目标部件的部件尺寸来确定目标部件的运动幅度上限,可能出现目标部件的运动幅度上限过大或者过小的情况,结合目标部件的部件尺寸和表情包的图像尺寸确定目标部件的运动幅度上限,有利于避免这种情况的出现,提高目标部件的运动幅度上限的合理性。
其中,目标部件的运动幅度上限与目标部件的部件尺寸成正比且与表情包的图像尺寸成反比。一示例中,可预先设置由目标部件的部件尺寸和表情包的图像尺寸构成的二元组与目标部件的运动幅度上限之间的对应关系,在该对应关系中,运动幅度上限与部件尺寸成正比,与图像尺寸成反比,因此,可以在该对应关系中确定目标部件的运动幅度上限。又一示例中,可基于目标部件的部件尺寸、表情包的图像尺寸和运动幅度上限的计算公式,确定目标部件的运动幅度上限。其中,在该计算公式中,目标部件的部件尺寸与目标部件的运动幅度上限成正比,表情包的图像尺寸与目标部件的运动幅度上限成反比。进一步的,在该计算公式中,目标部件的部件尺寸与表情包的图像尺寸的比值,与目标部件的运动幅度上限成正比。
进一步的,考虑到运动状态为左右摆动状态的目标部件和运动状态为上下起伏状态的目标部件在运动幅度上限上受不同的因素影响,其中,左右摆动状态的目标部件的运动幅度上限主要受目标部件的长度和宽度影响,比如,头发部件越长越宽则运动幅度上限可能越大,上下起伏状态的目标部件的运动幅度上限主要受目标部件在表情图中的高度影响,比如,上身部件的不同高度处的像素点随着呼吸起伏而上下移动的距离不同。因此,针对不同的运动状态下的目标部件,需要采用不同方式来确定运动幅度上限,以提高表情包中目标部件运动的真实性。具体的,确定运动幅度上限的方式如下:
方式一,在目标部件的运动状态包括左右摆动状态的情况下,目标部件的部件尺寸包括目标部件的部件高度和部件宽度,目标部件的运动幅度上限包括目标部件左右摆动的最大幅度,此时,可确定目标部件的部件高度与图像尺寸中的图像高度的比值,根据该比值、目标部件的部件宽度和第一缩放参数,确定目标部件左右摆动的最大幅度。因此,结合目标部件的部件高度、部件宽度等参数,提高运动幅度上限的合理性。
其中,目标部件的部件高度与图像尺寸中的图像高度的比值反映了目标部件在表情图中的相对高度,也是反映了目标部件的相对长度,第一缩放参数可根据经验设置,有利于提高运动幅度上限的灵活性和合理性。
在方式一中,可将目标部件的部件高度与图像尺寸中的图像高度的比值、目标部件的部件宽度以及第一缩放参数的乘积,确定为目标部件左右摆动的最大幅度,从而使得部件高度越高、部件宽度越大的目标部件的运动幅度上限越大,提高运动幅度上限的合理性。
可选的,目标部件左右摆动的最大幅度的计算公式可表示为:
其中,amp1表示目标部件左右摆动的最大幅度,ɑ表示第一缩放比例,目标部件的左上角和右上角坐标表示为(x1,y1,x2,y2),(x2-x1)表示目标部件的宽度,(y2-y1)表示目标部件的高度,h表示图像尺寸中的图像高度。
可选的,在方式一中,目标部件为头发部件。从而,可以针对不同高度(即不同长度)、不同宽度的头发部件确定不同的左右摆动最大幅度,为不同的头发部件实现不同的飘动效果。从上述公式可以看出,左右摆动的最大幅度与头发部件的宽度和高度正相关,头发部件越长越宽,则其左右摆动幅度越大,有利于提高头发左右飘动的真实性。
方式二、在目标部件的运动状态包括上下起伏状态的情况下,目标部件的部件尺寸包括目标部件的部件高度,目标部件的运动幅度上限包括目标部件中多列顶点上下起伏的最大幅度。此时,可确定目标部件的部件高度与图像尺寸中的图像高度的比值,通过非线性函数,确定目标部件中多列顶点分别对应的浮动权重,接着,根据该比值、目标部件的部件高度、多列顶点分别对应的浮动权重和第二缩放参数,确定多列顶点上下起伏的最大幅度。从而,通过将目标部件的上下起伏细化为目标部件中多列顶点的上下起伏,并结合目标部件的部件高度、浮动权重以及第二缩放参数,提高多列顶点上下起伏的最大幅度的准确性,进而提高表情包中目标部件上下起伏的真实性。
其中,目标部件的部件高度与图像尺寸中的图像高度的比值反映了目标部件在表情图中的相对高度;第二缩放参数可根据经验设置,有利于提高运动幅度上限的灵活性和合理性;目标部件中的多列顶点即目标部件的素材图上的多列顶点,在素材图上分布有m*n大小的顶点网格,以通过控制该顶点网络中的各个顶点的方式用来控制素材图的运动。
在方式二中,考虑到真实场景中人物呼吸时上身不同位置的上下起伏幅度是不同的,不同顶点上下起伏的运动幅度可能不同,通过非线性函数来确定多列顶点分别对应的浮动权重。接着,可将目标部件的部件高度与图像尺寸中的图像高度的比值、目标部件的部件高度、多列顶点对应的以及第二缩放参数的乘积,确定为目标部件上多列顶点上下起伏的最大幅度。从而,充分考虑到不同顶点上下起伏的运动幅度不同,并考虑到目标部件的部件高度,提高了目标部件运动的真实性,即提高了表情包的真实性。
可选的,考虑到表情包中目标部件的上下起伏状态是类似正弦函数的向上弯曲的弧度状态,非线性函数可采用正弦函数,以进一步提高目标部件上下起伏运动的真实性,提高表情包的真实性。
可选的,目标部件上多列顶点上下起伏的最大幅度的计算公式表示为:
其中,amp2表示目标部件上第j列顶点上下起伏的最大幅度,β表示第二缩放参数,表示第j列顶点对应的浮动权重。
可选的,目标部件中的多列顶点为位于目标部件的中心区域的顶点,从而,在表情包中,仅控制目标部件的部分区域进行上下浮动,例如仅控制身体部件的胸部区域因呼吸而上下起伏,提高表情包的真实性。其中,目标部件中的多列顶点可以表示为通过设置m1、m2、n1、n2的取值来确定控制哪些顶点上下起伏,i为顶点行数索引,j为顶点列数索引。
可选的,在方式二中,目标部件为身体部件。从而,可以在通过确定身体部件中多行顶点的上下起伏的最大幅度,来控制身体部件因呼吸而上下起伏的幅度,提高表情包的真实性。
S404、通过周期性函数和目标部件的运动幅度上限,确定目标部件的周期运动幅度。
其中,S404中的周期性函数用于基于目标部件的运动幅度上下,确定目标部件在多个时刻的运动幅度,即目标部件的周期运动幅度,与上述用于确定多行顶点上下起伏的最大幅度的非线性函数的作用不同。
本实施例中,在确定目标部件的运动幅度上限后,需要基于目标部件的运动幅度上限确定目标部件在表情包中的多个时刻的运动幅度。考虑到不论是头发部件的飘动还是身体部件因呼吸的上下起伏都可以看作是周期性运动,因此,利用周期性函数在目标部件的运动幅度上限的基础上,确定目标部件在表情包中的多个时刻的运动幅度。例如,可用周期性函数乘以目标部件的运动幅度上限,得到目标部件在表情包中的多个时刻的运动幅度。
在一些实施例中,不同的目标部件可采用同一周期性函数,使得不同目标部件在同一时刻下姿态的运动规律一致,提高不同目标部件的运动和谐性。
在一些实施例中,S404的一种可能的实现方式包括:通过周期性函数,确定目标部件在多个时刻的运动权重;根据目标部件在多个时刻的运动权重和目标部件的运动幅度上限,确定目标部件的周期运动幅度。
本实现方式中,由于周期性函数的取值是周期性变化的,所以可将周期性函数在多个时刻的取值确定为目标部件在多个时刻的运动权重。之后,可将目标部件在多个时刻的运动权重分别与目标部件的运动幅度上限的乘积,确定为目标部件在多个时刻的运动幅度,即目标部件的周期运动幅度。由于目标部件在多个时刻的运动权重呈现周期性,目标部件在多个时刻的运动幅度也呈现周期性,有效地提高了表情包的真实性。
可选的,在通过周期性函数确定目标部件在多个时刻的运动权重的过程中,根据表情包的图像帧数和表情包的帧率,通过周期性函数,确定目标部件在多个时刻的运动权重。从而,通过在周期性函数中结合表情包的图像帧数和帧率,更准确地确定表情包中目标部件在多个时刻的运动权重。
本可选方式中,可根据表情包的图像帧数和表情包的帧率,确定输入数据,将输入数据输入至周期性函数中,得到目标部件在多个时刻的运动权重。
进一步的,针对各个时刻,可确定该时刻对应的表情图在表情包中的帧序,将该时刻对应的表情图在表情包中的帧序与表情包的帧率的比值,确定为该时刻对应的输入数据,将该时刻对应的输入数据输入至周期性函数中,得到目标部件在该时刻的运动权重。
可选的,根据表情包的时长确定周期性函数,以提高周期性函数用于表情包生成时的合理性和准确性。
本可选方式中,可将表情包的时长确定为周期性函数的周期,也可以将表情包的时长的两倍确定为周期性函数的周期,具体要根据周期性函数的函数值变化范围进行确定。
可选的,周期性函数为正弦函数。由于正弦函数的函数值变化规律与虚拟形象上目标部件的运动规律相似,采用正弦函数来参与确定目标部件在多个时刻下的运动权重,可以提高目标部件在多个时刻下的运动幅度的准确性和流畅性,进而提高表情包中虚拟形象表情的准确性、流畅性以及真实性。
进一步的,在周期性函数为正弦函数的情况下,周期性函数可表示为:
f(x)=sin(wx)
其中,T=2π/|w|,T为周期,x为正弦函数的输入,w为参数。
在上述公式的基础上,可结合表情包的图像帧数和表情包的帧率,确定目标部件在多个时刻的运动权重,此时,周期性函数可表示为:
其中,weight表示运动权重,fps为表情包的帧率,i表示第i帧图像。假设第i帧图像对应t时刻,则可以通过上述公式求得目标部件在t时刻的运动权重。
假设表情包的时长为1秒,表情包的时长相当于正弦函数的半个周期,正弦函数的周期为2秒。此时,周期性函数可表示为:
进一步的,目标部件的周期运动幅度的计算公式可表示为
其中,表示周期运动幅度,k=1或者2,k=1时该公式求解的是目标部件在时刻t下的左右摆动幅度,k=2时该公式求解的是目标部件在时刻t下的上下起伏幅度。
S405、根据目标部件的素材图、目标部件的全局位置和目标部件的周期运动幅度,生成表情包。
其中,S405的实现原理和技术效果可参照前述实施例,不再赘述。
本公开实施例中,通过确定虚拟形象上处于运动状态的目标部件的运动幅度上限,并基于运动幅度上限,利用周期性函数确定目标部件的周期运动幅度,使得目标部件在表情包中按照周期性规律进行运动,例如,头发部件进行周期性的左右飘动、身体部件进行周期性的上下呼吸起伏,不仅降低了表情包的制作难度,还提高了表情包的真实性。
在一些实施例中,在根据目标部件的素材图、目标部件的全局位置和目标部件的周期运动幅度,生成表情包的过程中,一种可能的实现方式包括:根据目标部件的全局位置和目标部件的周期运动幅度,通过驱动算法,确定素材图在表情包中各帧表情图上的位置和形状,得到表情包。
本实施例中,驱动算法用于对素材图进行驱动,具体的,用于根据部件的全局位置和部件的动作姿态,将部件的素材图驱动至相应的位置和相应的形状,针对处于运动状态的目标部件,驱动算法还将参照目标部件的全局位置和目标部件在多个时刻的运动幅度,将目标部件的素材图驱动到相应的位置。进而由驱动后的素材图构成表情包中的表情图。
由于在驱动过程中目标部件与除目标部件以外的剩余部件的处理过程仅在于目标部件有对应的运动幅度,仅需要在位置驱动时加上该运动幅度,其它过程均相同,所以后续统一描述驱动算法对部件的驱动过程。
可选的,在驱动算法中,针对各部件,可从部件的素材图中获得部件图像,将部件图像划分为多个矩形的图像区域,得到各个图像区域的顶点,确定各个顶点的深度值,使得部件图像在视觉上呈现类似3维的效果,使得表情包中虚拟形象更为立体,提高表情包生成效果。
其中,可以预设不同部件对应的深度值,也可以基于素材图的图像标识(比如图像名称),确定素材图的前后位置关系,进而确定相应深度值。
可选的,在驱动算法中,可根据多个部件的全局位置,确定脸部特征信息,根据多个部件在多个时刻的动作姿态,确定各个素材图的旋转矩阵,根据脸部特征信息和素材图的旋转矩阵,对素材图进行位移变换和旋转。
其中,可基于部件的素材图上的多个关键点(比如眉毛、眼睛、瞳孔、嘴巴)的全局位置,来确定与多个关键点相关的脸部特征信息,以提高定脸部特征信息的稳定性,进而提高表情的稳定性。其中,脸部特征信息例如左/右眉毛移动高度、左/右眼张开高度、嘴巴张开大小、嘴巴宽度等。
本可选方式中,在得到与多个关键点相关的定脸部特征信息之后,可基于定脸部特征信息确定多个关键点的最大形变值。其中,脸部关键点的最大形变值可包括关键点运动的上极限值和下极限值。比如,眼睛的上极限值为眼睛睁开时的特征值,下极限值为眼睛闭上时的特征值。
本可选方式中,针对各关键点,可以在关键点的脸部特征信息中,确定关键点变化时(比如眼睛上下眨动)对应的特征值,根据关键点变化时对应的特征值和关键点对应的最大形变值,确定关键点的形变值,也即关键点的位移值,根据关键点的位移值来驱动关键点的位置变化并进行绘制渲染,实现对关键点的形变。并根据素材图的旋转矩阵对素材图进行旋转。如此,完成对部件的素材图的驱动,实现表情包的自动生成。
可选的,在驱动过程中,考虑到部件在形变时会产生空白或者间隙,此时可以利用形态学进行图像填补,以提高表情包生成效果。比如,利用形态学自动生成上下眼皮的图像、口腔的图像。
通过上述各实施例,既可以得到表情包,也可以得到表情包中虚拟形象的各帧表情图,尤其是可以得到虚拟形象的定格表情图,即虚拟形象的表情为目标表情的表情图。由于表情包中虚拟形象的表情是从初始表情变化至目标表情再从目标表情变化至初始表情,所以,定格表情图是表情包中虚拟形象表情幅度最大的表情图。从而,提高了动态的表情包和静态的定格表情图的制作效率,降低了制作难度,提高了用户的表情包制作体验。
对应于上文实施例的表情包生成方法,图5为本公开实施例提供的表情包生成设备的结构框图。为了便于说明,仅示出了与本公开实施例相关的部分。参照图5,表情包生成设备包括:获取单元501、位置确定单元502、幅度确定单元503和生成单元504。
获取单元501,用于获取虚拟形象上目标部件的素材图,在虚拟形象的表情包中目标部件处于运动状态;
位置确定单元502,用于根据素材图,确定目标部件的全局位置;
幅度确定单元503,用于确定目标部件在表情包中的周期运动幅度;
生成单元504,用于根据素材图、全局位置和周期运动幅度,生成表情包。
在一些实施例中,在确定目标部件在表情包中的周期运动幅度的过程中,幅度确定单元503具体用于:确定目标部件的运动幅度上限;通过周期性函数和运动幅度上限,确定周期运动幅度。
在一些实施例中,在确定目标部件在表情包中的周期运动幅度的过程中,幅度确定单元503具体用于:通过周期性函数,确定目标部件在多个时刻的运动权重;根据目标部件在多个时刻的运动权重和运动幅度上限,确定周期运动幅度。
在一些实施例中,在通过周期性函数,确定目标部件在多个时刻的运动权重的过程中,幅度确定单元503具体用于:根据表情包的图像帧数和表情包的帧率,通过周期性函数,确定目标部件在多个时刻的运动权重。
在一些实施例中,表情包生成设备还包括:函数确定单元(图中未示出),用于根据表情包的时长,确定周期性函数;其中,周期性函数为正弦函数。
在一些实施例中,在确定目标部件的运动幅度上限的过程中,幅度确定单元503具体用于:根据全局位置,确定运动幅度上限,全局位置反映目标部件的部件尺寸,运动幅度上限与部件尺寸成正比。
在一些实施例中,在根据全局位置,确定运动幅度上限的过程中,幅度确定单元503具体用于:根据全局位置,确定部件尺寸;根据部件尺寸和表情包的图像尺寸,确定运动幅度上限。
在一些实施例中,运动状态包括左右摆动状态,部件尺寸包括目标部件的部件高度和部件宽度,运动幅度上限包括目标部件左右摆动的最大幅度,在根据部件尺寸和表情包的图像尺寸,确定运动幅度上限的过程中,幅度确定单元503具体用于:确定部件高度与图像尺寸中的图像高度的比值;根据比值、部件宽度和第一缩放参数,确定目标部件左右摆动的最大幅度。
在一些实施例中,运动状态包括上下起伏状态,部件尺寸包括目标部件的部件高度,运动幅度上限包括目标部件中多列顶点上下起伏的最大幅度,在根据部件尺寸和表情包的图像尺寸,确定运动幅度上限的过程中,幅度确定单元503具体用于:确定部件高度与图像尺寸中的图像高度的比值;通过非线性函数,确定多列顶点分别对应的浮动权重;根据比值、部件高度、多列顶点分别对应的浮动权重和第二缩放参数,确定多列顶点上下起伏的最大幅度。
在一些实施例中,在根据素材图、全局位置和周期运动幅度,生成表情包的过程中,生成单元504具体用于:根据全局位置和周期运动幅度,通过驱动算法,确定素材图在表情包中各帧图像上的位置和形状,得到表情包。
在一些实施例中,在根据素材图,确定目标部件的全局位置的过程中,位置确定单元502具体用于:在素材图中,确定目标部件的外接矩阵;根据外接矩阵,确定全局位置。
本实施例提供的表情包生成设备,可用于执行上述表情包生成方法的实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
参考图6,其示出了适于用来实现本公开实施例的电子设备600的结构示意图,该电子设备600可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(Portable MediaPlayer,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(Read Only Memory,简称ROM)602中的程序或者从存储装置608加载到随机访问存储器(Random Access Memory,简称RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
第一方面,根据本公开的一个或多个实施例,提供了一种表情包生成方法,包括:获取虚拟形象上目标部件的素材图,在包含所述虚拟形象的表情包中所述目标部件处于运动状态;根据所述素材图,确定所述目标部件的全局位置;确定所述目标部件在所述表情包中的周期运动幅度;根据所述素材图、所述全局位置和所述周期运动幅度,生成所述表情包。
根据本公开的一个或多个实施例,所述确定所述目标部件在所述表情包中的周期运动幅度,包括:确定所述目标部件的运动幅度上限;通过周期性函数和所述运动幅度上限,确定所述周期运动幅度。
根据本公开的一个或多个实施例,所述确定所述目标部件在所述表情包中的周期运动幅度,包括:通过周期性函数,确定所述目标部件在多个时刻的运动权重;根据所述目标部件在多个时刻的运动权重和所述运动幅度上限,确定所述周期运动幅度。
根据本公开的一个或多个实施例,所述通过周期性函数,确定所述目标部件在多个时刻的运动权重,包括:根据所述表情包的图像帧数和所述表情包的帧率,通过所述周期性函数,确定所述目标部件在多个时刻的运动权重。
根据本公开的一个或多个实施例,所述通过周期性函数,确定所述目标部件在多个时刻的运动权重之前,还包括:根据所述表情包的时长,确定所述周期性函数;其中,所述周期性函数为正弦函数。
根据本公开的一个或多个实施例,所述确定所述目标部件的运动幅度上限,包括:根据所述全局位置,确定所述运动幅度上限,所述全局位置反映所述目标部件的部件尺寸,所述运动幅度上限与所述部件尺寸成正比。
根据本公开的一个或多个实施例,所述根据所述全局位置,确定所述运动幅度上限,包括:根据所述全局位置,确定所述部件尺寸;根据所述部件尺寸和所述表情包的图像尺寸,确定所述运动幅度上限。
根据本公开的一个或多个实施例,所述运动状态包括左右摆动状态,所述部件尺寸包括所述目标部件的部件高度和部件宽度,所述运动幅度上限包括所述目标部件左右摆动的最大幅度,所述根据所述部件尺寸和所述表情包的图像尺寸,确定所述运动幅度上限,包括:确定所述部件高度与所述图像尺寸中的图像高度的比值;根据所述比值、所述部件宽度和第一缩放参数,确定所述目标部件左右摆动的最大幅度。
根据本公开的一个或多个实施例,所述运动状态包括上下起伏状态,所述部件尺寸包括所述目标部件的部件高度,所述运动幅度上限包括所述目标部件中多列顶点上下起伏的最大幅度,所述根据所述部件尺寸和所述表情包的图像尺寸,确定所述运动幅度上限,包括:确定所述部件高度与所述图像尺寸中的图像高度的比值;通过非线性函数,确定所述多列顶点分别对应的浮动权重;根据所述比值、所述部件高度、所述多列顶点分别对应的浮动权重和第二缩放参数,确定所述多列顶点上下起伏的最大幅度。
根据本公开的一个或多个实施例,所述根据所述素材图、所述全局位置和所述周期运动幅度,生成所述表情包,包括:根据所述全局位置和所述周期运动幅度,通过驱动算法,确定所述素材图在所述表情包中各帧图像上的位置和形状,得到所述表情包。
根据本公开的一个或多个实施例,所述根据所述素材图,确定所述目标部件的全局位置,包括:在所述素材图中,确定所述目标部件的外接矩阵;根据所述外接矩阵,确定所述全局位置。
第二方面,根据本公开的一个或多个实施例,提供了一种表情包生成设备,包括:获取单元,用于获取虚拟形象上目标部件的素材图,在所述虚拟形象的表情包中所述目标部件处于运动状态;位置确定单元,用于根据所述素材图,确定所述目标部件的全局位置;幅度确定单元,用于确定所述目标部件在所述表情包中的周期运动幅度;生成单元,用于根据所述素材图、所述全局位置和所述周期运动幅度,生成所述表情包。
根据本公开的一个或多个实施例,所述确定所述目标部件在所述表情包中的周期运动幅度,包括:确定所述目标部件的运动幅度上限;通过周期性函数和所述运动幅度上限,确定所述周期运动幅度。
根据本公开的一个或多个实施例,所述确定所述目标部件在所述表情包中的周期运动幅度,包括:通过周期性函数,确定所述目标部件在多个时刻的运动权重;根据所述目标部件在多个时刻的运动权重和所述运动幅度上限,确定所述周期运动幅度。
根据本公开的一个或多个实施例,所述通过周期性函数,确定所述目标部件在多个时刻的运动权重,包括:根据所述表情包的图像帧数和所述表情包的帧率,通过所述周期性函数,确定所述目标部件在多个时刻的运动权重。
根据本公开的一个或多个实施例,所述通过周期性函数,确定所述目标部件在多个时刻的运动权重之前,还包括:根据所述表情包的时长,确定所述周期性函数;其中,所述周期性函数为正弦函数。
根据本公开的一个或多个实施例,所述确定所述目标部件的运动幅度上限,包括:根据所述全局位置,确定所述运动幅度上限,所述全局位置反映所述目标部件的部件尺寸,所述运动幅度上限与所述部件尺寸成正比。
根据本公开的一个或多个实施例,所述根据所述全局位置,确定所述运动幅度上限,包括:根据所述全局位置,确定所述部件尺寸;根据所述部件尺寸和所述表情包的图像尺寸,确定所述运动幅度上限。
根据本公开的一个或多个实施例,所述运动状态包括左右摆动状态,所述部件尺寸包括所述目标部件的部件高度和部件宽度,所述运动幅度上限包括所述目标部件左右摆动的最大幅度,所述根据所述部件尺寸和所述表情包的图像尺寸,确定所述运动幅度上限,包括:确定所述部件高度与所述图像尺寸中的图像高度的比值;根据所述比值、所述部件宽度和第一缩放参数,确定所述目标部件左右摆动的最大幅度。
根据本公开的一个或多个实施例,所述运动状态包括上下起伏状态,所述部件尺寸包括所述目标部件的部件高度,所述运动幅度上限包括所述目标部件中多列顶点上下起伏的最大幅度,所述根据所述部件尺寸和所述表情包的图像尺寸,确定所述运动幅度上限,包括:确定所述部件高度与所述图像尺寸中的图像高度的比值;通过非线性函数,确定所述多列顶点分别对应的浮动权重;根据所述比值、所述部件高度、所述多列顶点分别对应的浮动权重和第二缩放参数,确定所述多列顶点上下起伏的最大幅度。
根据本公开的一个或多个实施例,所述根据所述素材图、所述全局位置和所述周期运动幅度,生成所述表情包,包括:根据所述全局位置和所述周期运动幅度,通过驱动算法,确定所述素材图在所述表情包中各帧图像上的位置和形状,得到所述表情包。
根据本公开的一个或多个实施例,所述根据所述素材图,确定所述目标部件的全局位置,包括:在所述素材图中,确定所述目标部件的外接矩阵;根据所述外接矩阵,确定所述全局位置。
第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面或第一方面各种可能的设计所述的表情包生成方法。
第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的表情包生成方法。
第五方面,根据本公开的一个或多个实施例,提供了一种计算机程序产品,所述计算机程序产品包含计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面以及第一方面各种可能的设计所述的表情包生成方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (15)
1.一种表情包生成方法,包括:
获取虚拟形象上目标部件的素材图,在包含所述虚拟形象的表情包中所述目标部件处于运动状态;
根据所述素材图,确定所述目标部件的全局位置;
确定所述目标部件在所述表情包中的周期运动幅度;
根据所述素材图、所述全局位置和所述周期运动幅度,生成所述表情包。
2.根据权利要求1所述的表情包生成方法,所述确定所述目标部件在所述表情包中的周期运动幅度,包括:
确定所述目标部件的运动幅度上限;
通过周期性函数和所述运动幅度上限,确定所述周期运动幅度。
3.根据权利要求2所述的表情包生成方法,所述确定所述目标部件在所述表情包中的周期运动幅度,包括:
通过周期性函数,确定所述目标部件在多个时刻的运动权重;
根据所述目标部件在多个时刻的运动权重和所述运动幅度上限,确定所述周期运动幅度。
4.根据权利要求3所述的表情包生成方法,所述通过周期性函数,确定所述目标部件在多个时刻的运动权重,包括:
根据所述表情包的图像帧数和所述表情包的帧率,通过所述周期性函数,确定所述目标部件在多个时刻的运动权重。
5.根据权利要求3所述的表情包生成方法,所述通过周期性函数,确定所述目标部件在多个时刻的运动权重之前,还包括:
根据所述表情包的时长,确定所述周期性函数;
其中,所述周期性函数为正弦函数。
6.根据权利要求2至5任一项所述的表情包生成方法,所述确定所述目标部件的运动幅度上限,包括:
根据所述全局位置,确定所述运动幅度上限,所述全局位置反映所述目标部件的部件尺寸,所述运动幅度上限与所述部件尺寸成正比。
7.根据权利要求6所述的表情包生成方法,所述根据所述全局位置,确定所述运动幅度上限,包括:
根据所述全局位置,确定所述部件尺寸;
根据所述部件尺寸和所述表情包的图像尺寸,确定所述运动幅度上限。
8.根据权利要求7所述的表情包生成方法,所述运动状态包括左右摆动状态,所述部件尺寸包括所述目标部件的部件高度和部件宽度,所述运动幅度上限包括所述目标部件左右摆动的最大幅度,所述根据所述部件尺寸和所述表情包的图像尺寸,确定所述运动幅度上限,包括:
确定所述部件高度与所述图像尺寸中的图像高度的比值;
根据所述比值、所述部件宽度和第一缩放参数,确定所述目标部件左右摆动的最大幅度。
9.根据权利要求7所述的表情包生成方法,所述运动状态包括上下起伏状态,所述部件尺寸包括所述目标部件的部件高度,所述运动幅度上限包括所述目标部件中多列顶点上下起伏的最大幅度,所述根据所述部件尺寸和所述表情包的图像尺寸,确定所述运动幅度上限,包括:
确定所述部件高度与所述图像尺寸中的图像高度的比值;
通过非线性函数,确定所述多列顶点分别对应的浮动权重;
根据所述比值、所述部件高度、所述多列顶点分别对应的浮动权重和第二缩放参数,确定所述多列顶点上下起伏的最大幅度。
10.根据权利要求1至5任一项所述的表情包生成方法,所述根据所述素材图、所述全局位置和所述周期运动幅度,生成所述表情包,包括:
根据所述全局位置和所述周期运动幅度,通过驱动算法,确定所述素材图在所述表情包中各帧图像上的位置和形状,得到所述表情包。
11.根据权利要求1至5任一项所述的表情包生成方法,所述根据所述素材图,确定所述目标部件的全局位置,包括:
在所述素材图中,确定所述目标部件的外接矩阵;
根据所述外接矩阵,确定所述全局位置。
12.一种表情包生成设备,包括:
获取单元,用于获取虚拟形象上目标部件的素材图,在所述虚拟形象的表情包中所述目标部件处于运动状态;
位置确定单元,用于根据所述素材图,确定所述目标部件的全局位置;
幅度确定单元,用于确定所述目标部件在所述表情包中的周期运动幅度;
生成单元,用于根据所述素材图、所述全局位置和所述周期运动幅度,生成所述表情包。
13.一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至11任一项所述的表情包生成方法。
14.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至11任一项所述的表情包生成方法。
15.一种计算机程序产品,所述计算机程序产品包含计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至11任一项所述的表情包生成方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210141293.XA CN116645450A (zh) | 2022-02-16 | 2022-02-16 | 表情包生成方法及设备 |
PCT/SG2023/050075 WO2023158375A2 (zh) | 2022-02-16 | 2023-02-13 | 表情包生成方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210141293.XA CN116645450A (zh) | 2022-02-16 | 2022-02-16 | 表情包生成方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116645450A true CN116645450A (zh) | 2023-08-25 |
Family
ID=87579179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210141293.XA Pending CN116645450A (zh) | 2022-02-16 | 2022-02-16 | 表情包生成方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116645450A (zh) |
WO (1) | WO2023158375A2 (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001216525A (ja) * | 2000-02-04 | 2001-08-10 | Sharp Corp | 画像処理装置 |
JP2002157605A (ja) * | 2000-11-21 | 2002-05-31 | Sharp Corp | 画像処理装置、画像処理方法、及び画像処理用プログラムを記録した記録媒体 |
CN1256702C (zh) * | 2003-12-31 | 2006-05-17 | 马堃 | 数字图像合成的方法 |
JP2007286669A (ja) * | 2006-04-12 | 2007-11-01 | Sony Corp | 画像処理装置および方法、並びにプログラム |
CN102270352B (zh) * | 2010-06-02 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 动画播放的方法和装置 |
US10796480B2 (en) * | 2015-08-14 | 2020-10-06 | Metail Limited | Methods of generating personalized 3D head models or 3D body models |
CN107180446B (zh) * | 2016-03-10 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 人物面部模型的表情动画生成方法及装置 |
CN110520901B (zh) * | 2017-05-16 | 2021-01-05 | 苹果公司 | 表情符号录制和发送 |
-
2022
- 2022-02-16 CN CN202210141293.XA patent/CN116645450A/zh active Pending
-
2023
- 2023-02-13 WO PCT/SG2023/050075 patent/WO2023158375A2/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023158375A2 (zh) | 2023-08-24 |
WO2023158375A3 (zh) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gaboury | Image objects: An archaeology of computer graphics | |
US9314692B2 (en) | Method of creating avatar from user submitted image | |
US11790621B2 (en) | Procedurally generating augmented reality content generators | |
CN106575445B (zh) | 毛皮虚拟化身动画 | |
CN109151540B (zh) | 视频图像的交互处理方法及装置 | |
US12062141B2 (en) | Ingestion pipeline for generating augmented reality content generators | |
CN112995534B (zh) | 视频生成方法、装置、设备及可读存储介质 | |
CN110148191A (zh) | 视频虚拟表情生成方法、装置及计算机可读存储介质 | |
US11562548B2 (en) | True size eyewear in real time | |
Miranda et al. | Sketch express: A sketching interface for facial animation | |
RU2671990C1 (ru) | Способ отображения трехмерного лица объекта и устройство для него | |
CN116958344A (zh) | 虚拟形象的动画生成方法、装置、计算机设备及存储介质 | |
CN110580677A (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
US8009171B2 (en) | Image processing apparatus and method, and program | |
CN109074670B (zh) | 信息处理装置、图像生成方法以及记录介质 | |
CN116645450A (zh) | 表情包生成方法及设备 | |
WO2021155666A1 (zh) | 用于生成图像的方法和装置 | |
CN116645449A (zh) | 表情包生成方法及设备 | |
JP7145359B1 (ja) | 推論モデル構築方法、推論モデル構築装置、プログラム、記録媒体、構成装置及び構成方法 | |
CN115714888B (zh) | 视频生成方法、装置、设备与计算机可读存储介质 | |
US20240355072A1 (en) | Ingestion pipeline for generating augmented reality content generators | |
US20230267664A1 (en) | Animation processing method and apparatus, electronic device and storage medium | |
Santos | Virtual Avatars: creating expressive embodied characters for virtual reality | |
KR20240119644A (ko) | 디지털 휴먼의 표정 변화에 따라 피부 텍스처를 변화시키기 위한 방법 | |
CN118732820A (zh) | 虚拟对象交互方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |