用于提供化身动画的电子装置及其方法与流程

文档序号:26728828发布日期:2021-09-22 21:27阅读:82来源:国知局
用于提供化身动画的电子装置及其方法与流程

1.本公开涉及一种用于提供化身动画(avatar animation)的电子装置及其方法。


背景技术:

2.电子装置可以提供用户能够在增强现实(ar)或虚拟现实(vr)中采用个性化角色的环境。例如,电子装置可以通过指示面部表情或姿势的化身动画实时地提供用户的意图或情绪。
3.电子装置可以通过相机获取外部对象(例如,用户)的图像,或者可以通过运动传感器或触摸传感器获取用户输入,以生成化身动画。例如,电子装置可以通过经由相机跟踪外部对象来实时地生成化身动画,或者可以根据所获取的用户输入来提供预先存储的数据(例如,化身模板)。
4.当电子装置通过相机跟踪外部对象时,化身动画的质量可能根据相机的性能而降低。例如,在包括具有有限尺寸的相机的便携式电子装置(诸如智能电话)的情况下,可能降低外部对象中不容易在其上执行跟踪的部分(例如头发、手指或配件)的动画的生成速度或精确度。此外,当外部对象的局部部分在相机的拍摄范围之外时,由于跟踪的误差,可能生成不自然的化身动画。
5.当电子装置使用预先存储的化身模板提供化身动画时,因为随着化身模板的数量增加,存储器中的存储空间可能减小,所以化身动画的类型可能被限制。此外,化身模板指示其中外部对象的部分已经被组合的形状的化身动画,并且因此电子装置可以不单独地反映外部对象的每个部分的运动。
6.上述信息仅作为背景信息来呈现,以帮助理解本公开。关于上述中的任何一个是否可以作为针对本公开的现有技术适用,没有做出任何确定,并且没有做出断言。


技术实现要素:

7.技术问题
8.本公开的实施例至少解决了上述问题和/或缺点,并且至少提供了下面描述的优点。因此,本公开的示例性方面是提供一种更精确地或多样地生成化身动画的电子装置和方法。
9.根据本公开的示例性方面,电子装置可以包括显示器、至少一个传感器、可操作地连接到显示器和至少一个传感器的处理器、以及可操作地连接到处理器的存储器。存储器可以存储指令,指令在被执行时使得处理器控制电子装置以:通过至少一个传感器获取与生成第一化身动画相关联的第一输入,基于所获取的第一输入获取用于第一对象的第一数据,基于所获取的第一输入和指定方案获取用于第二对象的第二数据,基于第一数据和第二数据生成第一化身动画,以及通过显示器显示第一化身动画。第一化身动画可以包括第一对象和指示不同于第一对象的位置的第二对象。
10.问题的解决方案
11.根据本公开的另一个示例性方面,电子装置的方法可以包括:获取与生成第一化身动画相关联的第一输入;基于所获取的第一输入获取第一对象的第一数据;基于所获取的第一输入和指定方案获取第二对象的第二数据;基于第一数据和第二数据生成第一化身动画;通过显示器显示第一化身动画。第一化身动画可以包括第一对象和指示不同于第一对象的位置的第二对象。
12.根据本公开的另一个示例性方面,电子装置可以包括显示器、至少一个传感器、可操作地连接到显示器和至少一个传感器的处理器、以及可操作地连接到处理器的存储器。存储器可以存储指令,指令在被执行时使得处理器控制电子装置以:通过至少一个传感器获取与生成第一化身动画相关联的第一输入;识别包括在第一化身动画中的第一对象是否满足指定条件;基于第一对象不满足指定条件,基于第一输入来生成用于第一对象的第一数据;或者基于第一对象满足指定条件,基于第一输入和指定方案来获取用于对象的第二数据;基于第一数据或第二数据生成第一化身动画;以及通过显示器显示第一化身动画。
13.通过下面结合附图的详细描述,本公开的其它方面、优点和显著特征对于本领域技术人员将变得显而易见,详细描述公开了本公开的各种实施例。
14.本发明的有益效果
15.根据在此公开的各种示例性实施例,电子装置可以快速和无缝地提供化身动画。
16.根据在此公开的各种示例性实施例,电子装置可以自然地并且更精确地显示对象,而不管包括在化身动画中的对象的位置。
17.虽然已经参考本公开的各种示例性实施例说明和描述了本公开,但是本领域技术人员将理解,在不脱离包括所附权利要求及其等同物的本公开的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。
附图说明
18.从以下结合附图的详细描述中,本公开的某些实施例的上述和其它方面、特征和优点将变得更加明显,其中:
19.图1是示出根据各种实施例的网络环境中的示例性电子装置的框图;
20.图2是示出根据各种实施例的示例性相机模块的框图;
21.图3a、图3b和图3c是示出根据各个实施例的电子装置的生成化身动画的示例性操作的图;
22.图4是示出根据各种实施例的用于生成化身动画的示例性电子装置的框图;
23.图5是示出根据各种实施例的电子装置的使用多个对象生成化身动画的示例性操作的流程图;
24.图6a、图6b和图6c是示出根据各种实施例的基于指定方案生成化身动画的示例的图;
25.图7a、图7b和图7c是示出根据各种实施例的基于指定方案生成化身动画的另一示例的示图;
26.图8是示出根据各种实施例的电子装置的基于指定条件生成对象的数据的示例性操作的流程图;
27.图9是示出根据各种实施例的指定条件的示例的图;
28.图10是示出根据各种实施例的电子装置的构成数据的示例性操作的流程图;以及
29.图11是示出根据各个实施例的电子装置的使用高速缓冲存储器生成化身动画的示例性操作的流程图。
具体实施方式
30.在下文中,可以参考附图描述本公开的各种示例性实施例。因此,本领域的普通技术人员将认识到,在不脱离本公开的范围和精神的情况下,可以对这里描述的各种示例性实施例进行各种修改、等同和/或替换。
31.图1是示出根据各种实施例的网络环境100中的示例性电子装置101的框图。
32.参照图1,电子装置101可以通过第一网络198(例如,短距离无线通信网络)与电子装置102通信,或者可以通过网络环境100中的第二网络199(例如,长距离无线通信网络)与电子装置104或服务器108通信。根据实施例,电子装置101可以通过服务器108与电子装置104通信。根据实施例,电子装置101可以包括处理器120、存储器130、输入装置150、声音输出装置155、显示装置160、音频模块170、传感器模块176、接口177、触觉模块179、相机模块180、电力管理模块188、电池189、通信模块190、用户识别模块196或天线模块197。根据一些实施例,可以省略电子装置101的组件中的至少一个(例如,显示装置160或相机模块180),或者可以向电子装置101添加一个或更多其它组件。根据一些实施例,上述部件中的一些可以用一个集成电路来实现。例如,传感器模块176(例如,指纹传感器、虹膜传感器或照度传感器)可以嵌入显示装置160(例如,显示器)中。
33.处理器120可以执行例如软件(例如,程序140)以控制电子装置101的连接到处理器120的其它组件(例如,硬件或软件组件)中的至少一个,并且可以处理或计算各种数据。根据实施例,作为数据处理或操作的一部分,处理器120可将从其它组件(例如,传感器模块176或通信模块190)接收的命令集或数据加载到易失性存储器132中,可处理加载到易失性存储器132中的命令或数据,且可将结果数据存储到非易失性存储器134中。根据实施例,处理器120可以包括主处理器121(例如,中央处理单元或应用处理器)以及独立于主处理器121操作或与主处理器121一起操作的辅助处理器123(例如,图形处理装置、图像信号处理器、传感器集线器处理器或通信处理器)。附加地或替代地,辅助处理器123可以使用比主处理器121更少的功率,或者被指定给指定的功能。辅助处理器123可以与主处理器121分开实现或作为其一部分实现。
34.辅助处理器123可以在主处理器121处于非活动(例如,睡眠)状态的情况下,或者在主处理器121处于活动(例如,应用程序执行)状态的情况下与主处理器121一起,控制例如与电子装置101的组件中的至少一个组件(例如,显示装置160、传感器模块176或通信模块190)相关联的功能或状态中的至少一些。根据实施例,辅助处理器123(例如,图像信号处理器或通信处理器)可以被实现为在功能上与辅助处理器123相关的另一组件(例如,相机模块180或通信模块190)的一部分。
35.存储器130可以存储电子装置101的至少一个组件(例如,处理器120或传感器模块176)所使用的各种数据。例如,数据可以包括软件(例如,程序140)和关于与软件相关联的命令的输入数据或输出数据。存储器130可以包括易失性存储器132或非易失性存储器134。
36.程序140可以作为软件存储在存储器130中,并且可以包括例如操作系统142、中间
件144或应用146。
37.输入装置150可以从电子装置101的外部(例如,用户)接收用于电子装置101的组件(例如,处理器120)的命令或数据。输入装置150可以包括例如麦克风、鼠标、键盘或数字笔(例如,指示笔)。
38.声音输出装置155可以向电子装置101的外部输出声音信号。声音输出装置155可以包括例如扬声器或接收器。扬声器可以用于通用目的,例如多媒体播放或录音播放,并且接收器可以用于接收呼叫。根据实施例,接收器和扬声器可以被整体地或单独地实现。
39.显示装置160可以在视觉上向电子装置101的外部(例如,用户)提供信息。例如,显示装置160可以包括显示器、全息图装置或投影仪以及用于控制相应装置的控制电路。根据实施例,显示装置160可以包括被配置为感测触摸的触摸电路或者用于测量触摸上的压力强度的传感器电路(例如,压力传感器)。
40.音频模块170可以双向转换声音和电信号。根据实施例,音频模块170可以通过输入装置150获取声音,或者可以通过直接或无线连接到电子装置101的声音输出装置155或外部电子装置(例如,电子装置102(例如,扬声器或耳机))输出声音。
41.传感器模块176可生成对应于电子装置101内部的操作状态(例如,功率或温度)或电子装置101外部的环境状态(例如,用户状态)的电信号或数据值。根据实施例,传感器模块176可以包括例如手势传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外传感器、生物测定传感器、温度传感器、湿度传感器或照度传感器。
42.接口177可以支持一个或更多指定的协议,以允许电子装置101直接或无线地连接到外部电子装置(例如,电子装置102)。根据实施例,接口177可以包括例如hdmi(高清晰度多媒体接口)、usb(通用串行总线)接口、sd卡接口或音频接口。
43.连接端178可以包括将电子装置101物理连接到外部电子装置(例如,电子装置102)的连接器。根据实施例,连接端178可以包括例如hdmi连接器、usb连接器、sd卡连接器或音频连接器(例如,耳机连接器)。
44.触觉模块179可以将电信号转换为由用户通过触觉或动觉感觉感知的机械刺激(例如,振动或运动)或电刺激。根据实施例,触觉模块179可以包括例如电机、压电元件或电刺激器。
45.相机模块180可以拍摄静止图像或视频图像。根据实施例,相机模块180可以包括例如至少一个或更多镜头、图像传感器、图像信号处理器或闪光灯。
46.电力管理模块188可以管理提供给电子装置101的电源。根据实施例,电力管理模块188可以被实现为电力管理集成电路(pmic)的至少一部分。
47.电池189可以向电子装置101的至少一个部件供电。根据实施例,电池189可以包括例如不可再充电(一次)电池、可再充电(二次)电池或燃料电池。
48.通信模块190可在电子装置101与外部电子装置(例如,电子装置102、电子装置104或服务器108)之间建立直接(例如,有线)或无线通信信道,并支持通过所建立的通信信道的通信执行。通信模块190可包括独立于处理器120(例如,应用处理器)操作并支持直接(例如,有线)通信或无线通信的至少一个通信处理器。根据实施例,通信模块190可以包括无线通信模块192(例如,蜂窝通信模块、短距离无线通信模块、或gnss(全球导航卫星系统)通信
模块)或有线通信模块194(例如,lan(局域网)通信模块或电力线通信模块)。上述通信模块中的相应通信模块可以通过第一网络198(例如,诸如蓝牙、wi

fi直连或irda(红外数据关联)的短距离通信网络)或第二网络199(例如,诸如蜂窝网络、因特网或计算机网络(例如,lan或wan)的长距离无线通信网络)与外部电子装置进行通信。上述各种通信模块可以分别被实现为一个组件(例如单个芯片)或单独的组件(例如芯片)。无线通信模块192可使用存储在通信网络(例如第一网络198或第二网络199)中的用户识别模块196中的用户信息(例如,国际移动订户身份(imsi))来识别和认证电子装置101。
49.天线模块197可向电子装置101的外部(例如,外部电子装置)发射信号或电力或从电子装置101的外部(例如,外部电子装置)接收信号或电力。根据实施例,天线模块197可以包括天线,该天线包括由形成在衬底(例如pcb)中或衬底上的导电材料或导电图案构成的辐射元件。根据实施例,天线模块197可以包括多个天线。在这种情况下,例如,可以通过通信模块190(例如,无线通信模块192)从多个天线中选择适于在通信网络(例如,第一网络198或第二网络199)中使用的通信方案的至少一个天线。然后,可以经由所选择的至少一个天线在通信模块190和外部电子装置之间发送或接收信号或电力。根据实施例,除了辐射元件之外的另一个部件(例如,射频集成电路(rfic))可以被附加地形成为天线模块197的一部分。
50.组件中的至少一些组件可以通过用于在外围装置之间彼此交换信号(例如,命令或数据)的通信方法(例如,总线、gpio(通用输入和输出)、spi(串行外围接口)或mipi(移动工业处理器接口))彼此连接。
51.根据实施例,可以通过连接到第二网络199的服务器108在电子装置101和外部电子装置104之间发送或接收命令或数据。电子装置102和104中的每一个可以与电子装置101相同或不同。根据实施例,由电子装置101执行的所有或一些操作可以由外部电子装置102、104或108中的一个或更多外部电子装置执行。例如,当电子装置101自动地或通过来自用户或另一装置的请求来执行一些功能或服务时,电子装置101可以除了自己执行功能或服务之外或代替自己执行功能或服务,请求一个或更多外部电子装置执行与功能或服务相关的至少一些功能。接收请求的一个或更多外部电子装置可以执行所请求的功能或服务的至少一部分或与请求相关联的附加功能或服务,并将执行结果发送到电子装置101。电子装置101可以原样或者在附加处理之后提供结果作为对请求的响应的至少一部分。为此,例如,可以使用云计算、分布式计算或客户机

服务器计算技术。
52.图2是示出根据各种实施例的示例性相机模块180的框图200。参照图2,相机模块180可以包括镜头组件210、闪光灯220、图像传感器230、图像稳定器240、存储器250(例如,缓冲存储器)或图像信号处理器260。镜头组件210可以收集从待捕获对象发射的光。镜头组件210可以包括一个或更多镜头。根据实施例,相机模块180可以包括多个镜头组件210。在这种情况下,相机模块180可以用例如双摄像头、360度摄像头或球形摄像头来实现。多个镜头组件210的部分可以具有相同的镜头属性(例如,视场、焦距、自动聚焦、f号、或光学变焦);或者,至少一个镜头组件可以具有不同于另一个镜头组件的镜头属性的一个或更多镜头属性。例如,镜头组件210可以包括广角镜头或远摄镜头。
53.闪光灯220可以发射用于增强从对象发射或反射的光的光。根据实施例,闪光灯220可以包括一个或更多发光二极管(例如,红绿蓝(rgb)led、白色led、红外led或紫外led)
或氙灯。图像传感器230可以通过将从对象发射或反射并随后透射通过镜头组件210的光转换为电信号来获取对应于对象的图像。根据实施例,例如,图像传感器230可以包括选自于具有不同属性的图像传感器(例如rgb传感器、黑白(bw)传感器、ir传感器或uv传感器)的单个图像传感器、具有相同属性的多个图像传感器、或具有不同属性的多个图像传感器。例如,包括在图像传感器230中的每个图像传感器可以使用电荷联接器件(ccd)传感器或互补金属氧化物半导体(cmos)传感器来实现。
54.图像稳定器240可以使包括在镜头组件210或图像传感器230中的至少一个镜头在特定方向上移动,或者可以响应于相机模块180或包括相机模块180的电子装置101的运动来控制(例如,调整读出定时等)图像传感器230的操作特性。这使得可以通过在所捕获的图像上的移动来补偿至少部分的负面影响。根据实施例,图像稳定器240可以使用设置在相机模块180内部或外部的陀螺仪传感器(未示出)或加速度传感器(未示出)来检测相机模块180或电子装置101的这种移动。根据实施例,例如,图像稳定器240可以用光学图像稳定器来实现。存储器250可以至少暂时存储通过图像传感器230获取的图像的至少一部分,用于下一个图像处理任务。例如,当根据快门的图像获取被延迟时,或者当以高速获取多个图像时,所获取的原始图像(例如,拜耳图案化图像或高分辨率图像)可以被存储在存储器250中,并且与所获取的原始图像相对应的复制图像(例如,低分辨率图像)可以通过显示装置160被预览。然后,当满足指定条件(例如,用户输入或系统命令)时,例如可以通过图像信号处理器260获取并处理存储在存储器250中的原始图像的至少一部分。根据实施例,存储器250可以用存储器130的至少一部分或独立于存储器130操作的单独存储器来实现。
55.图像信号处理器260可以对通过图像传感器230获取的图像或存储在存储器250中的图像执行一个或更多图像处理。例如,一个或更多图像处理可以包括深度图的生成、三维建模、全景图生成、特征点提取、图像合成或图像补偿(例如,降噪、分辨率调整、亮度调整、模糊、锐化或软化)。附加地或替代地,图像信号处理器260可以对包括在相机模块180中的组件的至少一个(例如,图像传感器230)进行控制(例如,曝光时间控制或读出定时控制等)。由图像信号处理器260处理的图像可以再次存储在存储器250中用于进一步处理,或者可以被提供给相机模块180的外部组件(例如,存储器130、显示装置160、电子装置102、电子装置104或服务器108)。根据实施例,图像信号处理器260可以用处理器120的至少一部分来实现,或者可以用独立于处理器120操作的单独处理器来实现。当用与处理器120分离的处理器来实现图像信号处理器260时,由图像信号处理器260处理的至少一个图像可以由处理器120通过显示装置160原样显示,或者在进一步的图像处理之后显示。
56.根据实施例,电子装置101可以包括具有不同属性或功能的多个相机模块180。在这种情况下,例如,多个相机模块180中的至少一个可以是广角相机,并且至少另一个可以是远摄相机。类似地,多个相机模块180中的至少一个可以是前部相机,并且至少另一个可以是后部相机。
57.图3a、图3b和图3c是示出根据各个实施例的电子装置101生成化身动画300的示例性操作的图。
58.参考图3a、图3b和图3c,电子装置101可以生成按照图3a、图3b和图3c的顺序移动的化身动画300。化身动画可以包括,例如,但不限于,指示化身(例如,310)在ar或vr环境中移动的动画图像(例如,

mp4、avi或gif)。例如,电子装置101可以通过构成多个帧(或图像)
来生成化身动画300。该帧可以包括指示化身310在特定时间点(或实例)的操作的数据(其可以被称为“动画数据”)。在这种情况下,图3a、图3b和图3c中的每一个可以指示单个帧。
59.图3a、图3b和图3c示出了包括三个帧的化身动画300。然而,形成化身动画300的帧的数量或帧速率不限于图3所示的示例。例如,形成化身动画300的帧的帧速率可以与由电子装置101的显示器(例如,图1的显示装置160的至少一部分)支持或由显示器呈现的图像的帧速率相同或相似。在这种情况下,电子装置101可以在图3a、图3b和图3c所示的帧之间插入其它帧(或图像),使得化身310的运动连续出现。
60.参照图3a,化身310可以包括多个对象301、302、303、304和305。例如,物体可以包括,例如,但不限于,身体部分(例如,头发、面部、上身、下身、脚或手)、服装、配饰等。实施例在图3a中以示例的方式示出为化身310,其包括头发301、面部302、身体303、手304和配饰305。然而,包括在化身310中的对象的类型或数量不限于图3a中所示的示例。
61.当电子装置101基于通过至少一个传感器(例如,相机、运动传感器或触摸传感器)获取的图像输入或用户输入生成化身动画(例如,300)时,化身动画的质量可能根据至少一个传感器的性能而降低。例如,不容易进行跟踪的对象(例如,头发301、手304或配饰305)的动画的生成速度或生成精度可能降低;当一些对象在相机的拍摄范围之外时,由于跟踪的误差,可能生成不自然的化身动画。
62.根据实施例,电子装置101可以将不同的数据生成方法应用于多个对象301、302、303、304和305。例如,电子装置101可以基于图像输入或用户输入中的至少一个为某些对象(例如,面部320或身体303)生成动画数据,并且可以基于指定的方案为某些其它对象(例如,头发301、手304或配饰305)生成动画数据。指定的方案可以包括:例如但不限于,基于规则的动画生成方案、基于物理的动画生成方案,基于机器学习的动画生成方案、基于约束的动画生成方案等中的至少一个。
63.例如,当对手304的跟踪不容易时,电子装置101可以基于跟踪为其它部分(例如,头发301、面部302、身体303和配饰305)生成动画数据,并且可以根据基于机器学习的动画生成方案为手304生成动画数据。例如,在电子装置101(或外部服务器)学习到当用户抬高他/她的手臂时弯曲和展开用户的手指的情况下,电子装置101可以基于用户抬高手臂的输入来生成指示弯曲和展开用户的手指的操作的动画数据。
64.通过上述方法,电子装置101可以生成指示各种操作的化身动画,同时减小存储器(例如,图1的130)的使用空间。此外,电子装置101可以生成精确和自然的化身动画。
65.图4是示出根据各个实施例的用于生成化身动画的示例性电子装置的框图400。
66.参照图4,电子装置可以包括至少一个传感器(例如,传感器模块176或相机模块180)、动画生成模块(例如,包括动画生成电路)420、数据库430和显示装置160。在传感器模块176、相机模块180和显示装置160的描述中,可以省略与图1的描述重叠的部分。
67.根据实施例,传感器模块176可以包括具有传感器电路的各种传感器,并且被配置为获取用户输入。例如,传感器模块176可以通过例如但不限于手势传感器、触摸传感器、陀螺仪传感器或加速度传感器中的至少一个来检测手势输入、触摸输入和运动中的至少一个,并且可以生成与所检测到的输入相对应的参数(例如,运动数据)。
68.根据实施例,相机模块180可以包括各种相机电路和组件,并且被配置为获取图像输入。例如,相机模块180可以通过红绿蓝(rgb)相机或深度相机中的至少一个来捕获图像,
并且可以从所捕获的图像获取运动数据。
69.根据实施例,动画生成模块420可以包括各种动画生成电路,并且被配置为生成化身动画(例如,图3的300)。动画生成模块420可以包括各种处理电路和/或可执行程序元件,包括例如硬件模块或存储在存储器(例如,图1的130)中的指令集,诸如应用程序(例如,图1的146)。根据实施例,电子装置101的处理器(例如,图1的120)可以包括各种处理电路,并且执行电子装置101的整体功能以用于通过执行动画生成模块420来生成化身动画。动画生成模块420可以包括基于输入的数据生成模块(例如,包括各种处理电路和/或可执行程序元件)421、基于方案的数据生成模块(例如,包括各种处理电路和/或可执行程序元件)423、以及合成模块(例如,包括各种处理电路和/或可执行程序元件)429。
70.根据实施例,基于输入的数据生成模块421可以包括各种处理电路和/或可执行程序元件,并且基于从传感器模块176或相机模块180生成的数据(例如,运动数据)以及预先存储在数据库430中的动画数据来生成用于至少一个对象的动画数据。
71.根据实施例,基于方案的数据生成模块423可以包括各种处理电路和/或可执行程序元件,并且基于指定的方案为生成针对满足指定条件的至少一个对象的动画数据。满足指定条件的对象可以指例如由传感器模块176和相机模块180生成的动画数据的具有不良(例如,低)质量的对象。例如,当对应于对象(例如,图3的头发301、手304或配饰305)的图像的分辨率小于阈值时,当对象在指定范围(例如,相机的拍摄范围)之外时,或者当对象对应于化身动画的指定部分时,电子装置101可以确定对象满足指定条件。基于方案的数据生成模块423可以包括基于规则的生成模块(例如,包括各种处理电路和/或可执行程序元件)424、基于物理的生成模块(例如,包括各种处理电路和/或可执行程序元件)425、基于机器学习的生成模块(例如,包括各种处理电路和/或可执行程序元件)426、以及基于约束的生成模块(例如,包括各种处理电路和/或可执行程序元件)427。
72.根据实施例,基于规则的生成模块424可以包括各种处理电路和/或可执行程序元件,并且根据基于规则的动画生成方案生成动画数据。基于规则的生成模块424可以基于预先输入的规则生成动画数据。根据实施例,基于规则的生成模块424可以例如但不限于基于多个对象的相关性、用户的面部表情、用户的情绪状态等中的至少一个来输入规则。基于规则的生成模块424可以基于对象的转移概率和先前输入的规则来生成动画数据。下面将参考图6a、图6b和图6c更详细地描述基于规则的动画生成方案的实施例。根据实施例,基于规则的生成模块424可以通过执行关键帧内插来对关键帧之间的区域应用内插或者通过应用机器学习来生成对其应用了先前输入的规则的动画数据。
73.根据实施例,基于物理的生成模块425可以包括各种处理电路和/或可执行程序元件,并且根据基于物理的动画生成方案来生成动画数据。基于物理的生成模块425可以通过物理模拟来计算对象的运动。例如,基于物理的生成模块425可以通过根据化身的运动物理地计算化身(例如,图3的301)的头发(例如,图3的310)的运动来生成用于头发的动画数据。基于物理的生成模块425可以组合(或合成)由物理仿真生成的对象(例如,头发)的动画数据和另一对象(例如,图3的面部302)的动画数据。下面将参考图7a、图7b和图7c更详细地描述基于物理的动画生成方案的实施例。根据实施例,基于物理的生成模块425可以通过执行关键帧内插来对关键帧之间的区域应用内插或者通过应用机器学习来生成对其应用了物理模拟的动画数据。
74.根据实施例,基于机器学习的生成模块426可以包括各种处理电路和/或可执行程序元件,并且根据基于机器学习的动画生成方案来生成动画数据。基于机器学习的生成模块426可以基于该学习生成对象的动画数据。根据实施例,基于机器学习的生成模块426可以学习基于对象的操作,例如但不限于深度学习、自学习、无监督学习等中的至少一个。基于机器学习的生成模块426可以将基于学习生成的动画数据与另一对象的动画数据组合。根据实施例,基于机器学习的生成模块426可以通过执行关键帧内插以用于对关键帧之间的区域应用内插来生成对其应用了机器学习的动画数据。
75.根据实施例,基于约束的生成模块427可以包括各种处理电路和/或可执行程序元件,并且根据基于约束的动画生成方案生成动画数据。基于约束的生成模块427可以基于先前输入的约束来生成动画数据。例如,约束可以包括引起化身远离指定区域(例如障碍物)移动的条件,或者引起化身总是通过另一指定区域的条件。根据实施例,基于约束的生成模块427可以通过执行关键帧内插以对关键帧之间的区域应用内插或者通过应用机器学习来生成对其应用了约束的动画数据。
76.根据实施例,合成模块429可以包括各种处理电路和/或可执行程序元件,并基于从基于输入的数据生成模块412生成的动画数据和从基于方案的数据生成模块423生成的动画数据生成化身动画(例如图3的300)。例如,合成模块429可以通过为多个对象合成动画数据片段来生成指示单个动作的化身动画。当对象的动画数据的帧数不同时,合成模块429可以通过执行内插来调整帧数。根据实施例,合成模块429可以通过动作拼接技术连接不同部分的对象的动画数据。
77.根据实施例,显示装置160可以包括被配置为显示化身动画的屏幕和显示器。
78.根据实施例,数据库430可以存储用于包括在化身动画中的多个对象(例如,第一对象、第二对象、
……
)的动画数据。例如,面部的动画数据(例如,图3的302)可以指示面部表情或面部的运动;身体的动画数据(例如,图3的303)可以指示臂、腿或躯干的至少一个运动;手的动画数据(例如,图3中的304)可以指示手指的运动或闭合和打开手的运动;配饰(例如,图3的305)的动画数据可以指示耳饰、衣服或帽子。根据实施例,电子装置101可以在数据库430中更新由基于方案的数据生成模块420生成的动画数据之中的、在数据库430中不存在的动画数据。
79.根据实施例,电子装置101还可以包括在数据库430和动画生成模块420之间的高速缓冲存储器435。电子装置101可以将具有高使用频率或最近已经使用的动画数据存储在高速缓冲存储器435中。电子装置101可以通过从高速缓冲存储器435加载动画数据来提高命中率和生成速度。
80.图5是示出根据各个实施例的电子装置101使用多个对象生成化身动画的示例性操作的流程图500。包括在操作流程图500中的操作可以例如由电子装置101执行,或者可以由电子装置101的组件(例如,图1的处理器120或图4的动画生成模块420)执行。
81.参照图5,在操作505中,电子装置101可以获取与第一化身动画(例如,图3的300)的生成相关联的第一输入。第一化身动画可以包括多个对象(例如图3中的301、302、303、304和305)。根据实施例,第一输入可以包括图像输入或用户输入中的至少一个。
82.在操作510中,电子装置101可以基于第一输入获取用于多个对象中的第一对象的第一数据(其可以例如被称为“第一动画数据”)。例如,电子装置101可以基于通过至少一个
传感器获取的运动数据获取第一数据。
83.在操作515中,电子装置101可以基于第一输入和指定的方案获取用于多个对象中的第二对象的第二数据(其可以例如被称为“第二动画数据”)。根据实施例,第二对象可以指示与第一对象的位置或部分不同的位置或部分。例如,电子装置101可以根据基于规则的动画生成方案、基于物理的动画生成方案、基于机器学习的动画生成方案或基于约束的动画生成方案中的至少一个来获取第二数据。
84.根据实施例,电子装置101可以基本上同时执行操作510和操作515,或者可以按顺序或按相反顺序执行操作510和操作515。
85.根据实施例,当对象没有运动时,或者当对象的运动小于阈值时,电子装置101可以通过使用关键帧获取第一数据或第二数据来减少电子装置101的组件之间的数据传输量。例如,电子装置101可以通过关键帧和通过内插生成的帧来获取第一数据或第二数据。
86.在操作520中,电子装置101可以基于第一数据和第二数据生成第一化身动画。例如,电子装置101可以组合(例如,合成)第一数据和第二数据。
87.在操作525中,电子装置101可以通过显示器(例如,图4的显示装置160)显示第一化身动画。
88.图6a、图6b和图6c是示出根据各种实施例基于指定方案生成化身动画600的示例的图。
89.参照图6,电子装置101例如可以生成按照图6a、图6b和图6c的顺序移动的化身动画600。化身610可以包括多个对象(例如,头发601、面部602、身体603、手604和耳环605)。在图6a中,电子装置101可以接收用户输入650以沿指定方向(例如,向上)移动化身610的手604。
90.根据实施例,电子装置101可以根据用户输入650为在指定方向上移动的手604生成动画数据。
91.根据实施例,响应于接收到用户输入650,电子装置101可以根据基于规则的动画生成方案为面部602和身体603生成动画数据。例如,电子装置101可以根据输入的规则生成指示面部602和身体603的运动的动画数据,使得当手604在指定方向上移动时,面部602和身体603面向手604所在的方向。
92.根据实施例,响应于接收到用户输入650,电子装置101可以根据基于物理的动画生成方案为头发601和化身610穿戴的配饰(例如,耳环605或衣服)生成动画数据。
93.根据实施例,电子装置101可以通过为多个对象(例如,头发601、面部602、身体603、手604和耳环605)合成动画数据片段来生成化身动画600。
94.图7a、图7b和图7c是示出根据各种实施例基于指定方案生成化身动画700的另一示例的图。
95.参照图7a、图7b和图7c,电子装置101可以基于通过相机(例如,图4的相机模块180)获取的图像输入生成动物(例如,兔子)形式的、表示用户的面部表情和姿势的化身710。化身710可以包括多个对象(例如,面部701、身体702和耳部703)。电子装置101可以生成按照图7a、图7b和图7c的顺序移动的化身动画700。
96.根据实施例,电子装置101可以基于所获取的图像输入为面部701和身体702生成动画数据。
97.根据实施例,可以根据基于物理的动画生成方案来生成耳部703的动画数据。例如,电子装置101可以根据面部701和身体702的运动以及物理模拟来生成指示耳部703的运动的动画数据。
98.根据实施例,电子装置101可以通过合成面部701的动画数据、身体702的动画数据和耳部703的动画数据来生成化身动画700。
99.图8和图9包括示出根据各种实施例的电子装置101基于指定条件生成数据的示例性操作的流程图和图示。图8是示出根据各个实施例的电子装置101基于指定条件生成数据的示例性操作的流程图800。图是示出根据各种实施例的在指定条件下的电子装置的示例性操作的图。包括在操作流程图800中的操作可以是图5的操作510或操作515的实施例。流程图800中所示的操作可以由电子装置101执行,或者可以由电子装置101的组件(例如,图1的处理器120或图4的动画生成模块420)执行。
100.参照图8,在操作805中,电子装置101可以识别对象(例如,图5的第一对象或第二对象)是否满足指定条件。满足指定条件的对象可以指例如由传感器模块176和相机模块180生成的动画数据的具有不良质量的对象。
101.例如,参考图9,在通过相机获取的图像900中,由于手912可能较小,手912的图像的分辨率(或可靠性)可能较低。当图像的分辨率低时,手912的动画数据的精确度可能降低。此外,化身的一些身体部分(例如脚914)可能由于相机的有限尺寸而超出相机的拍摄范围910。当脚914在相机的拍摄范围910之外时,电子装置101可能无法获取脚914的运动数据。根据实施例,当对应于对象(例如,手912)的图像的分辨率小于阈值时,或者当对象(例如,脚914)在相机的拍摄范围之外时,电子装置101可以确定对象满足指定的条件。对于另一个示例,电子装置101可以预先指定不容易在其上执行跟踪的对象,例如配饰905、头发901或手912,并且可以确定指定的对象满足指定的条件。
102.当对象满足指定条件(操作805中的“是”)时,在操作810中,电子装置101可以基于第一输入和指定方案生成数据(例如,图5的操作515)。
103.当对象不满足指定条件(操作805中的“否”)时,在操作815中,电子装置101可以基于第一输入生成数据(例如,图5的操作510)。
104.图10是示出根据各个实施例的电子装置101合成数据的示例性操作的流程图1000。包括在操作流程图1000中的操作可以是图5的操作520的实施例。操作流程图1000中所示的操作可以由电子装置101执行,或者可以由电子装置101的组件(例如,图1的处理器120或图4的动画生成模块420)执行。
105.参照图10,在操作1005中,电子装置101可以识别第一数据的帧数是否与第二数据的帧数相同。当第一数据的帧数与第二数据的帧数相同时(操作1005中的“是”),电子装置101可以执行操作1015。
106.当第一数据的帧数与第二数据的帧数不相同时(操作1005中的“否”),在操作1010中,电子装置101可以对第一数据或第二数据执行内插。电子装置101可以通过内插来调整第一数据或第二数据的帧数。根据实施例,电子装置101可以使用关键帧来执行内插。
107.在操作1015中,电子装置101可以合成第一数据和第二数据。根据实施例,电子装置101可以通过经由动作拼接方案连接根据不同方法生成的动画数据来控制化身的身体部分以自然地彼此连接。
108.图11是示出根据各个实施例的电子装置101使用高速缓冲存储器(例如,图4的435)生成化身动画的示例性操作的流程图1100。操作流程图1100中所示的操作可以由电子装置101执行,或者可以由电子装置101的组件(例如,图1的处理器120或图4的动画生成模块420)执行。图11示出了其中图5的第二数据被存储在高速缓冲存储器中的实施例。然而,相同的原理可应用于图5的第一数据被存储在高速缓冲存储器中的实施例。
109.参照图11,在操作1105中,电子装置101可以将第二数据存储在高速缓冲存储器中。
110.在操作1110中,电子装置101可以获取与生成不同于第一化身动画的第二化身动画相关联的第二输入。例如,第二输入可以包括图像输入或用户输入中的至少一个。根据实施例,第二化身动画可以包括第一对象和第二对象。第二对象可以指示与第一对象的位置或部分不同的位置或部分。
111.在操作1115中,电子装置101可以基于第二输入获取第一对象的第三数据。例如,电子装置101可以基于通过至少一个传感器获取的运动数据来获取第三数据。
112.在操作1120中,电子装置101可以从高速缓冲存储器获取第二对象的第二数据。电子装置101可以通过从高速缓冲存储器加载第二数据来提高命中率和生成速度。根据实施例,电子装置101可以基本上同时执行操作1115和操作1120,或者可以按顺序或按相反顺序执行操作1115和操作1120。
113.在操作1125中,电子装置101可以基于第三数据和第二数据生成第二化身动画。例如,电子装置101可以合成第三数据和第二数据。
114.在操作1130中,电子装置101可以通过显示器显示第二化身动画。
115.如上所述,电子装置(例如,图1的101)可以包括显示器(例如,图1的显示装置160的至少一部分)、至少一个传感器(例如,图1的传感器模块176和相机模块180)、可操作地连接到显示器和至少一个传感器的处理器(例如,图1的120)、以及可操作地连接到处理器的存储器(例如,图1的130)。存储器可以存储指令,指令在被执行时使得处理器控制电子装置以:通过至少一个传感器获取与生成第一化身动画相关联的第一输入;基于所获取的第一输入获取用于第一对象的第一数据;基于所获取的第一输入和指定方案获取用于第二对象的第二数据;基于第一数据和第二数据生成第一化身动画;通过显示器显示第一化身动画。第一化身动画可以包括第一对象和指示不同于第一对象的位置的第二对象。
116.根据示例性实施例,至少一个传感器可以包括触摸传感器、运动传感器或图像传感器中的至少一个。指令在被执行时可以使得处理器控制电子装置通过至少一个传感器接收图像输入或用户输入中的至少一个,并且从图像输入或用户输入中的至少一个获取第一对象或第二对象中的至少一个的运动数据。
117.根据示例性实施例,指定的方案可以包括基于规则的动画生成方案、基于物理的动画生成方案、基于机器学习的动画生成方案或基于约束的动画生成方案中的至少一个。
118.根据示例性实施例,指令在被执行时可以使得处理器控制电子装置以:识别第一对象和第二对象是否满足指定条件;基于第一对象不满足指定条件,基于所获取的第一输入来获取第一数据;以及基于第二对象满足指定条件,基于所获取的第一输入和指定方案来获取第二数据。
119.根据示例性实施例,指令在被执行时可以使得处理器控制电子装置以:基于与第
二对象对应的图像的分辨率小于阈值、基于第二对象超出指定范围、或者基于第二对象与第一化身动画中的指定部分对应,识别出第二对象满足指定条件。
120.根据示例性实施例,指令在被执行时可以使处理器控制电子装置以:基于第一数据的帧数不等于第二数据的帧数,对第一数据或第二数据执行内插,并且通过合成第一数据和第二数据来生成第一化身动画。
121.根据示例性实施例,指令在被执行时可以使处理器控制电子装置以:通过对第一数据和第二数据执行动作拼接来生成第一化身动画。
122.根据示例性实施例,电子装置还可以包括高速缓冲存储器。指令在被执行时可致使处理器控制电子装置以:将第二数据存储在高速缓冲存储器中;通过至少一个传感器获取与生成第二化身动画相关联的第二输入;基于所获取的第二输入获取用于第一对象的第三数据;基于存储在高速缓冲存储器中的第二数据获取用于第二对象的第二数据;基于第三数据和第二数据生成第二化身动画;以及通过显示器显示第二化身动画。第二化身动画可以包括第一对象和第二对象。
123.如上所述,电子装置(例如,图1的101)的方法可以包括:获取与生成第一化身动画相关联的第一输入;基于所获取的第一输入获取第一对象的第一数据;基于所获取的第一输入和指定方案获取第二对象的第二数据;基于第一数据和第二数据生成第一化身动画;通过显示器显示第一化身动画。第一化身动画可以包括第一对象和指示不同于第一对象的位置的第二对象。
124.根据示例性实施例,获取第一输入可以包括接收图像输入或用户输入中的至少一个,并且从图像输入或用户输入中的至少一个获取运动数据。
125.根据示例性实施例,指定的方案可以包括基于规则的动画生成方案、基于物理的动画生成方案、基于机器学习的动画生成方案或基于约束的动画生成方案中的至少一个。
126.根据示例性实施例,获取第一数据可以包括:识别第一对象是否满足指定条件;并且基于第一对象不满足指定条件,基于所获取的第一输入来获取第一数据。获取第二数据可以包括:识别第二对象是否满足指定条件;并且基于第二对象满足指定条件,基于所获取的第一输入和指定方案来获取第二数据。
127.根据示例性实施例,识别第二对象是否满足指定条件可以包括:识别对应于第二对象的图像的分辨率是否小于阈值、第二对象是否超出指定范围、或者第二对象是否对应于第一化身动画中的指定部分。
128.根据示例性实施例,生成第一化身动画可以包括:基于第一数据的帧数不等于第二数据的帧数,对第一数据或第二数据执行内插;以及通过合成第一数据和第二数据来生成第一化身动画。
129.根据示例性实施例,合成第一数据和第二数据可以包括对第一数据和第二数据执行动作拼接。
130.如上所述,电子装置(例如,图1的101)可以包括显示器(例如,图1的显示装置160的至少一部分)、至少一个传感器(例如,图1的传感器模块176和相机模块180)、可操作地连接到显示器和至少一个传感器的处理器(例如,图1的120)、以及可操作地连接到处理器的存储器(例如,图1的130)。存储器可以存储指令,指令在被执行时使得处理器控制电子装置以:通过至少一个传感器获取与生成第一化身动画相关联的第一输入;识别包括在第一化
身动画中的第一对象是否满足指定条件;基于第一对象不满足指定条件来生成用于第一对象的第一数据;或者基于第一对象满足指定条件,基于第一输入和指定方案来获取用于对象的第二数据;基于第一数据或第二数据生成第一化身动画;以及通过显示器显示第一化身动画。
131.根据示例性实施例,指定的方案可以包括基于规则的动画生成方案、基于物理的动画生成方案、基于机器学习的动画生成方案或基于约束的动画生成方案中的至少一个。
132.根据示例性实施例,指令在被执行时可以使得处理器控制电子装置以:基于与第一对象相对应的图像的分辨率小于阈值、基于第一对象超出指定范围、或者基于第一对象与第一化身动画中的指定部分相对应,识别出第一对象满足指定条件。
133.根据示例性实施例,至少一个传感器可以包括触摸传感器、运动传感器或图像传感器中的至少一个。指令在被执行时可以使得处理器控制电子装置以:通过至少一个传感器接收图像输入或用户输入中的至少一个,并且从图像输入或用户输入中的至少一个获取第一对象的运动数据。
134.根据示例性实施例,电子装置还可以包括高速缓冲存储器。指令在被执行时可致使处理器控制电子装置以:将第二数据存储在高速缓冲存储器中;通过至少一个传感器获取与生成第二化身动画相关联的第二输入;识别包括在第二化身动画中的第一对象是否满足指定条件,基于第二输入获取用于第一对象的第三数据;基于第一对象不满足指定条件,从高速缓冲存储器获取第二数据;从第二数据或第三数据生成第二化身动画;以及通过显示器显示第二化身动画。
135.根据本公开中披露的各种示例性实施例的电子装置可以是各种类型的装置。电子装置可以包括:例如,便携式通信装置(例如,智能电话)、计算机装置、便携式多媒体装置、移动医疗装置、相机、可穿戴装置、家用装置等。根据本公开的实施例的电子装置不应限于上述装置。
136.应当理解,本公开内容的各种示例性实施方式和实施方式中使用的术语不是旨在将本公开内容中披露的技术特征限于本文公开的具体实施方式;相反,本公开应当被理解为覆盖本公开的实施例的各种修改、等同物或替换。关于附图的描述,类似的或相关的部件可以被赋予类似的附图标记。如本文所用,除非上下文另外清楚地指示,否则对应于项目的单数形式的名词可包括一个或更多项目。在本文公开的公开内容中,本文使用的表述“a或b”、“a和b中的至少一个”、“a或b中的至少一个”、“a、b或c”、“a、b和c中的一个或更多”或“a、b或c中的一个或更多”等中的每一个可以包括一个或更多相关列出的项目的任何和所有组合。诸如“第一”、“第二”的表述可以仅用于将组件与其它组件区分开的目的,而不是在其它方面(例如,重要性或次序)限制相应组件。应当理解,如果元件(例如,第一元件)被称为“与
……
联接”、“联接至”、“与
……
连接”或“连接至
……”
另一个元件(例如,第二元件),则该元件可以直接(例如,有线地)、无线地或通过第三元件与另一个元件联接。
137.在本公开中使用的术语“模块”可以包括以硬件、软件或固件或其任何组合实现的单元,并且可以与术语“逻辑”、“逻辑块”、“部分”和“电路”互换使用。“模块”可以是集成部件的最小单元或者可以是其一部分。“模块”可以是用于执行一个或更多功能的最小单元或其一部分。例如,根据实施例,“模块”可以包括专用集成电路(asic)。
138.本公开的各种实施例可以由包括存储在机器可读存储介质(例如,内部存储器136
或外部存储器138)中的指令的软件(例如,程序140)来实现,机器可读存储介质可由机器(例如,电子装置101)读取。例如,机器(例如,电子装置101)的处理器(例如,处理器120)可以从机器可读存储介质调用指令并执行由此调用的指令。机器可以基于被调用的至少一个指令来执行至少一个功能。一个或更多指令可以包括由编译器生成的代码或由解释器执行的代码。机器可读存储介质可以以非暂时性存储介质的形式提供。这里,“非暂时性”存储介质是有形的,但是可以不包括信号(例如,电磁波)。术语“非暂时性”不区分数据被永久存储在存储介质中的情况与数据被临时存储在存储介质中的情况。
139.根据实施例,根据本公开中披露的各种实施例的方法可以作为计算机程序产品的一部分来提供。计算机程序产品可以作为产品在卖方和买方之间交易。计算机程序产品可以以机器可读存储介质(例如,光盘只读存储器(cd

rom))的形式分发,或者可以通过应用商店(例如,play store)或在两个用户装置(例如,智能电话)之间直接在线分发(例如,下载或上传)。在在线分发的情况下,计算机程序产品的至少一部分可以临时地在机器可读存储介质(例如制造商的服务器、应用商店的服务器或中继服务器的存储器)中被存储或生成。
140.根据各种实施例,上述组件的每个组件(例如,模块或程序)可以包括一个或更多实体。根据各种实施例,可以省略上述组件或操作中的至少一个或更多组件,或者可以添加一个或更多组件或操作。可替换地或附加地,一些组件(例如,模块或程序)可以集成在一个组件中。在这种情况下,集成组件可以执行在集成之前由每个相应组件执行的相同或相似的功能。根据各种实施例,由模块、编程或其它组件执行的操作可以顺序地、并行地、重复地或以试探的方法执行,或者至少一些操作可以以不同的顺序执行、被省略,或可以添加其它操作。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1