增强表情系统的制作方法

文档序号:23185771发布日期:2020-12-04 14:14阅读:145来源:国知局
增强表情系统的制作方法

优先权要求

本申请要求于2018年4月18日提交的序列号为62/659,337的美国临时专利申请的优先权的权益,在此要求其优先权的权益,其全部内容通过引用并入本文。

本公开的实施例一般涉及移动计算技术,并且更具体地但非限制性地涉及用于生成和显示增强现实界面的系统。



背景技术:

增强现实(ar)是物理现实世界环境的实时直接或间接视图,物理现实世界环境的元素通过计算机生成的感官输入来增强。

附图说明

为了容易地识别对任何特定元素或动作的讨论,参考数字中的一个或多个最高有效数字是指其中首次引入该元素的附图编号。

图1是示出了根据一些实施例的用于通过网络交换数据(例如,消息和相关联的内容)的示例消息传递系统的框图,其中,消息传递系统包括增强表情系统。

图2是示出了根据示例实施例的关于消息传递系统的进一步细节的框图。

图3是示出根据某些示例实施例的增强表情系统的各模块的框图。

图4是示出根据某些示例实施例的用于呈现增强现实显示的方法的流程图。

图5是示出根据某些示例实施例的用于呈现增强现实显示的方法的流程图。

图6是示出根据某些示例实施例的用于呈现增强现实显示的方法的流程图。

图7是示出根据某些示例实施例的用于基于面部跟踪输入来生成3d模型的方法的流程图。

图8是根据某些示例实施例的用于显示增强现实图像的界面的图。

图9是根据某些示例实施例的用于显示增强现实图像的界面的图。

图10是根据某些示例实施例的用于显示增强现实图像的界面的图。

图11是示出可与本文中所描述的各种硬件架构结合使用并用于实现各种实施例的代表性软件架构的框图。

图12是示出根据一些示例实施例的机器的组件的框图,该机器能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文讨论的方法中的任何一个或多个。

具体实现方式

在此描述的实施例涉及增强表情系统,其用于生成并使得显示特别配置的界面以呈现增强现实视角。增强表情系统接收用户的图像和视频数据,并基于图像和视频数据实时跟踪用户的面部界标,以生成并呈现用户的三维(3d)表情符号(bitmoji)。系统呈现增强现实显示,该增强现实显示包括用户的描述,用户的描述包括增强现实3d表情符号头部和元素,其覆盖在图像数据的呈现中的位置处。例如,用户可以显示,流式传输或录制描述其自己及其周围环境的视频。系统检测面部界标的存在,并作为响应,用3d表情符号头部来“替换”用户的头部,3d表情符号头部模仿并跟踪用户的面部表情动作。

增强表情系统从与客户端设备相关联的相机(例如,前置相机)接收图像和视频数据,其中,图像和视频数据包括用户的一组面部界标。响应于检测到一组面部界标的存在,系统基于一组面部界标来生成3d模型(例如3d表情符号),在图像数据的呈现中将3d模型覆盖在一组面部界标上的位置处,并基于所检测的一组面部界标的移动(例如通过面部跟踪)来动态地对3d模型进行动画处理。

在一些实施例中,系统基于由图像数据描绘的一组面部界标来识别一个或多个用户,并且基于与该用户相关联的用户简档来生成3d模型。例如,用户可以通过从一组3d表情符号中选择特定的3d表情符号来定义用户简档中3d表情符号的显示特性,或者可以基于3d表情符号的各个组件的选择来配置3d表情符号,例如面部特征、颜色、发型、眼睛颜色以及配饰(例如眼镜、帽子、太阳镜、单片眼镜)。在进一步的实施例中,系统基于用户的一组面部界标的属性来生成3d表情符号。例如,属性可以包括各种面部界标之间的距离和斜率,面部界标的大小和形状以及用户的肤色。系统根据面部标志的属性来选择3d表情符号的各个组成部分。

增强表情系统基于对图像数据所描绘的一组面部界标应用的面部界标跟踪技术来识别用户的面部表情。增强表情系统经由面部跟踪模块接收作为面部界标相对于彼此的移动和位置的输入。例如,面部跟踪模块接收输入,其包括界标标识符(例如,鼻子、嘴巴、左眼、右眼),指示面部界标相对于静态位置已经移动或改变了多少的输入值,以及指示移动的方向的移动方向。基于输入以及输入的组合,增强表情系统的面部跟踪模块确定用户的表情。例如,该系统可以跟踪用户的眼睛眉毛同时抬起,同时用户的嘴巴张开,并作为响应确定面部界标的移动和位置与“惊讶”表情相对应。

增强表情系统包括数据库,该数据库包括表情定义,其中,表情定义包括各种面部跟踪输入到表情的映射。这些表情包括用于3d表情符号的显示指令,而不仅仅是使3d表情符号模仿用户的一组面部界标的移动和位置。例如,显示指令可以包括响应于识别到特定表情而将被呈现在图像数据的呈现内的3d图形元素(例如,气球、五彩纸屑、心形)或者通过夸大一个或多个面部界标来强调表情(例如下颌、眼睛从头部冒出、眼睛变为程式化的“x”)的。用户还可以通过提供作为到支持触摸的设备中的触觉输入或作为面部界标的移动(例如眨眼,起皱纹或吹气等)的其它输入来与3d图形元素进行交互。

增强表情系统促进了包括3d表情符号的内容的共享和分发。例如,用户可以流式传输或录制视频,该视频包括包含3d表情符号和视频的合成呈现。在一些实施例中,用户可以选择先前记录的图像或视频,并且使增强表情系统利用模仿用户的面部运动和表情的3d表情符号的显示来增强先前记录的图像或视频。在进一步的实施例中,用户可以实时记录或流式传输包括3d表情符号的显示的合成呈现,使得当在客户端设备处接收到图像数据时,将3d表情符号渲染到图像或视频上。

用户可以另外通过将3d表情符号和关联的图像数据分配给将要分发给一个或多个接收者的消息,来共享或分发包括3d表情符号的合成呈现。响应于向消息分配3d表情符号,系统基于图像数据和3d表情符号生成合成呈现的平面化呈现。用户可以将平面化的呈现分配或发送给一个或多个接收者(例如,作为消息或通过将平面化的呈现添加到与该用户的用户简档相关联的故事中)。

在进一步的实施例中,系统可以分别将描绘用户和3d表情符号的图像数据发送给一个或多个接收者,并使接收者在图像数据中的位置处基于一组面部界标生成包括3d表情符号的显示的图像数据的呈现。例如,系统可以将3d表情符号分割成一组区域,其中每个区域对应于该组面部界标中的不同的面部界标。在接收者设备处接收到3d表情符号和包括一组面部界标的图像数据后,系统通过基于每个面部界标的位置在图像数据中的位置处呈现3d表情符号,来使接收者设备生成图像数据的呈现。

在一些实施例中,用户可以发送3d表情符号指令,其使3d表情符号指令的接收者能够将3d表情符号显示在其个人设备上创建的内容上。例如,用户可以通过选择一个或多个表情符号组件和属性(例如,头部形状、颜色、配饰等)来配置3d表情符号。用户向3d表情符号分配标识符(例如,“angryputin”),并且增强表情系统索引并将3d表情符号指令和标识符存储在与用户的用户简档相关联的存储器位置处。3d表情符号指令的接受者可以生成增强现实呈现,其包括3d表情符号的显示(例如“angryputin”)。

图1是示出了用于通过网络交换数据(例如,消息以及相关联的内容)的示例性消息传递系统100的框图。消息传递系统100包括多个客户端设备102,每个客户端设备托管包括消息传递客户端应用104的多个应用。每个消息传递客户端应用104经由网络106(例如,因特网)通信地耦接到消息传递客户端应用104的其它实例和消息传递服务器系统108。

因此,每个消息传递客户端应用104能够经由网络106与另一消息传递客户端应用104以及与消息传递服务器系统108通信和交换数据。在消息传递客户端应用104之间交换的数据以及在消息传递客户端应用104和消息传递服务器系统108之间交换的数据包括函数(例如,调用函数的命令)以及有效载荷数据(例如,文本、音频、视频或其它多媒体数据)。

消息传递服务器系统108经由网络106向特定的消息传递客户端应用104提供服务器侧功能。尽管消息传递系统100的某些功能在本文中被描述为由消息传递客户端应用104或者由消息传递服务器系统108执行,但是可以理解的是,某些功能的位置在消息传递客户端应用104内或者消息传递服务器系统108是设计选择的。例如,在技术上优选首先在消息传递服务器系统108内部署某些技术和功能,但是随后将该技术和功能迁移到其中客户端设备102具有足够处理能力的消息传递客户端应用104。

消息传递服务器系统108支持提供给消息传递客户端应用104的各种服务和操作。该操作包括向消息传递客户端应用104发送数据,从消息传递客户端应用104接收数据以及处理由消息传递客户端应用104生成的数据。在一些实施例中,作为示例,该数据包括消息内容、客户端设备信息、地理位置信息、媒体注释和覆盖、消息内容持久性条件、社交网络信息和实况事件信息。在其它实施例中,其它数据也被使用。在消息传递系统100内的数据交换通过经由消息传递客户端应用104的gui(图形用户界面)可用的功能来调用和控制。

现在具体转向消息传递应用服务器系统108,应用编程接口(api)服务器110被耦接到应用服务器112,并向应用服务器112提供编程接口。应用服务器112通信地耦接到数据库服务器118,数据库服务器118有助于访问数据库120,在数据库120中存储了与由应用服务器112处理的消息相关联的数据。

具体地处理应用程序接口(api)服务器110,该服务器在客户端设备102和应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(api)服务器110提供可以由消息传递客户端应用104调用或查询的一组接口(例如,例程和协议),以调用应用服务器112的功能。应用程序接口(api)服务器110公开了由应用服务器112支持的各种功能,包括帐户注册,登录功能,经由应用服务器112从特定消息传递客户端应用104向另一消息传递客户端应用104发送消息,从消息传递客户端应用104向消息传递服务器应用114发送媒体文件(例如,图像或视频),以及用于由另一消息传递客户端应用104的可能访问,媒体数据集合(例如故事)的设置,对客户端设备102的用户的朋友列表的取得,对该集合的取得,对消息和内容的取得,对社交图添加和删除朋友,对社交图内的朋友的定位,打开并应用事件(例如,与消息传递客户端应用104有关的应用事件)。

应用服务器112托管许多应用和子系统,包括消息传递服务器应用114、图像处理系统116、社交网络系统122和增强表情系统124。消息传递服务器应用114实现多种消息处理技术和功能,特别是与从消息传递客户端应用104的多个实例接收的消息中包含的内容(例如,文本和多媒体内容)的聚合和其它处理有关的技术和功能。如将进一步详细描述的,来自多个源的文本和媒体内容可以聚合到内容集合(例如,称为故事或图库)中。然后,消息传递服务器应用114可将这些集合提供给消息传递客户端应用104。鉴于用于此处理的硬件要求,消息传递服务器应用114还可在服务器侧执行其它处理器和存储器密集型数据处理。

应用服务器112还包括图像处理系统116,该图像处理系统116专用于执行各种图像处理操作,典型地与消息传递服务器应用114的消息的有效载荷内接收的图像或视频相关。

社交网络系统122支持各种社交网络功能和服务,并使这些功能和服务可用于消息传递服务器应用114。为此,社交网络系统122维护并访问数据库120内的实体图304。由社交网络系统122支持的功能和服务的示例包括消息传递系统100中与特定用户有关系或其“关注”的其他用户的标识,以及还有特定用户的其它实体和兴趣的标识。

应用服务器112通信地耦合到数据库服务器118,数据库服务器118促进对数据库120的访问,数据库120中存储有与由消息传递服务器应用114处理的消息相关联的数据。

图2是示出根据示例实施例的关于消息传递系统100的进一步细节的框图。具体地,消息传递系统100被示为包括消息传递客户端应用104和应用服务器112,其依次体现若干一些子系统,即短时计时器系统202、集合管理系统204和注释系统206。

短时计时器系统202负责对消息传递客户端应用104和消息传递服务器应用114所允许的内容(诸如,3d表情符号)执行临时访问。为此,短时计时器系统202并入了许多计时器,计时器基于与消息、消息的集合或图形元素相关联的持续时间和显示参数,经由消息传递客户端应用104选择性地显示消息和相关内容以及启用对消息和相关内容的访问。下面提供关于短时计时器系统202的操作的进一步详细信息。

集合管理系统204负责管理媒体集合(例如,文本、图像、视频和音频数据、3d表情符号、3d表情符号的平面化呈现的集合)。在一些示例中,内容的集合(例如,包括图像、视频、文本和音频的消息)可以被组织成“事件图库”或“事件故事”。这种集合可以在指定的时间期间内可用,诸如,与内容相关的事件的持续时间。例如,与音乐会有关的内容可以在该音乐会的持续时间内作为“故事”提供。集合管理系统204还可以负责向消息传递客户端应用104的用户界面发布提供对特定集合的存在的通知的图标。

集合管理系统204此外包括策展界面208,策展界面208允许集合管理者管理和策展特定的内容集合。例如,策展界面208使事件组织者能够策展与特定事件有关的内容的集合(例如,删除不适当的内容或冗余消息)。附加地,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些实施例中,可以向用户支付报酬,以将用户生成的内容包含在集合中。在这种情况下,策展界面208操作以便为了使用用户的内容而自动向该用户支付费用。

注释系统206提供使用户能够注释或以其它方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与由消息传递系统100处理的消息的媒体覆盖的生成和发布有关的功能。注释系统206可操作地基于客户端设备102的地理位置来向消息传递客户端应用104提供媒体覆盖。在另一示例中,注释系统206可操作地基于其它信息(例如,客户端设备102的用户的社交网络信息)将媒体覆盖提供给消息传递客户端应用104。媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、徽标、动画和音效、以及动画的面部模型,诸如由增强表情系统124所生成的那些。视觉效果的示例包括颜色覆盖。音频和视觉内容或视觉效果可以在客户端设备102处被应用到媒体内容项(例如,照片)。例如,媒体覆盖包括可以覆盖在客户端设备102拍摄生成的照片上的文本。在另一示例中,媒体覆盖包括位置标识覆盖(例如,威尼斯海滩)、实况事件名称或商家名称覆盖(例如,海滩咖啡馆)。在另一个示例中,注释系统206使用客户端设备102的地理位置来识别媒体覆盖,该媒体覆盖包括在客户端设备102的地理位置处的商家的名称。媒体覆盖可以包括与商家相关联的其它标记。媒体覆盖可以被存储在数据库120中并且可以通过数据库服务器118来访问。

在一个示例实施例中,注释系统206提供基于用户的发布平台,该平台使用户能够选择地图上的地理位置,并上传与所选地理位置相关联的内容。用户还可以指定环境,在该环境下应向其他用户提供特定媒体覆盖。注释系统206生成包括上传内容的媒体覆盖,并将上传内容与所选地理位置相关联。

在另一示例实施例中,注释系统206提供基于商家的发布平台,该平台使商人能够通过投标过程选择与地理位置相关联的特定媒体覆盖。例如,注释系统206在预定的时间量内将出价最高的商家的媒体覆盖与对应的地理位置相关联。

图3是示出了根据一些示例实施例的增强表情系统124的组件的框图,其配置增强表情系统124以基于图像数据和3d表情符号来生成和显示增强现实呈现。增强表情系统124被示为包括特征跟踪模块302、建模模块304、呈现模块306和通信模块308,它们均被配置为彼此通信(例如,经由总线、共享存储器或交换机)。这些模块中的任何一个或多个可以使用一个或多个处理器310来实现(例如,通过配置该一个或多个处理器来执行针对该模块描述的功能),并因此可以包括一个或多个处理器310。

所描述的模块中的任何一个或多个可以使用单独的硬件(例如,机器的一个或多个处理器310)或硬件和软件的组合来实现。例如,所描述的增强表情系统124任何模块可以物理地包括被配置为执行本文针对该模块所描述的操作的一个或多个处理器310(例如,机器的一个或多个处理器的子集或之中的一个子集)的布置。作为另一示例,增强表情系统124的任何模块可以包括软件,硬件或两者,其配置一个或多个处理器310(例如,在机器的一个或多个处理器之中)的布置以执行本文针对该模块所描述的操作。因此,增强表情系统124的不同模块可以包括并配置该处理器310的不同布置或者在不同的时间点处的该处理器310的单个布置。此外,增强表情系统124的任何两个或更多个模块可以被组合成单个模块,并且本文针对单个模块描述的功能可被细分为多个模块。此外,根据各种示例实施例,本文描述为在单个机器、数据库或设备内实现的模块可以分布在多个机器,多个数据库或多个设备上。

图4是示出根据某些示例实施例的用于呈现增强现实显示的方法400的流程图。方法400的操作可以由以上参照图3描述的模块来执行。如图4所示,方法400包括一个或多个操作402、404、406、408和410。

在操作402,呈现模块306使得在客户端设备(例如,客户端设备102a)处显示图像数据的呈现,其中图像数据描绘了用户的一组面部界标。例如,图像数据可以由与客户端设备102a相关联的相机(诸如前置相机)收集。

在操作404,建模模块304响应于呈现模块306显示图像数据的呈现而基于一组面部界标来生成3d模型(例如3d表情符号)。在一些实施例中,建模模块304响应于检测到图像数据内的面部界标的存在而生成3d模型。例如,面部跟踪模块302可以采用各种面部运动采集方法,其包括基于标记的技术以及无标记技术。无标记的面部运动采集方法可基于面部界标(例如,鼻孔、嘴唇和眼睛的角、瞳孔和皱纹)识别并跟踪面部运动和表情。响应于在图像数据中检测到该面部界标的存在,面部跟踪模块302使得建模模块基于所识别的面部界标来生成3d模型。

在一些实施例中,面部跟踪模块302基于所识别的一组面部界标的属性来识别用户,诸如每个面部界标之间的距离和斜率,每个面部界标的大小和形状以及客户端设备102a的设备属性(例如,设备标识符),并取得与该用户相关联的用户简档,其中用户简档包括用于3d表情符号的显示指令。

在另外的实施例中,建模模块304基于面部界标的属性来即时(onthefly)生成3d表情符号,使得3d表情符号类似于用户。例如,建模模块304可以访问包含表情符号元素的表情符号存储库,基于面部界标的属性来选择一组表情符号元素,并且基于所选择的表情符号元素来生成3d表情符号。

在一些实施例中,由建模模块304生成的3d表情符号包括一组表情符号区域,其中每个区域对应于该组面部界标中的不同的面部界标(例如,与表示用户的嘴的面部界标相对应的区域,与表示用户左眼的面部界标相对应的区域等)。在另外的实施例中,由建模模块304生成的3d表情符号包括将一组面部界标表示为一系列顶点位置的混合形状。

在操作406,呈现模块306基于一组面部界标的位置而将由建模模块304生成的3d表情符号覆盖在显示在客户端设备102a上的图像数据上的位置处。例如,面部跟踪模块302可以基于一组面部界标来识别一组参考特征,并且使呈现模块306将3d表情符号的呈现覆盖在客户端设备102a处的图像数据上。

在操作408,特征跟踪模块302接收面部跟踪输入(例如,一组面部界标中的面部界标的移动)。例如,用户可以张开或合上嘴巴,抬起眉毛或转头。响应于特征跟踪模块302接收到面部跟踪输入,在操作410,呈现模块302动态地使3d表情符号的与客户端设备102a处的面部界标相对应的区域动画化。客户端设备102a上显示的3d表情符号模仿用户的运动和面部表情。

图5是示出根据某些示例实施例的用于呈现增强现实显示的方法500的流程图。方法500的操作可以由以上参照图3描述的模块来执行。如图5所示,方法500包括一个或多个操作502、504、506、508和510。

在操作502,面部跟踪模块302基于作为一组面部界标的移动和位置而接收到的输入来识别用户的表情(例如,面部表情)。例如,面部跟踪模块302接收输入,其包括界标标识符(例如,鼻子,嘴巴,左眼,右眼),指示面部界标相对于静态位置移动或改变了多少的输入值,以及指示移动方向的移动方向。响应于接收到输入,面部跟踪模块302访问包括一组表情定义的存储库,其中表情定义包括各种面部跟踪输入到预定表情的映射。

在一些实施例中,客户端设备102a的用户经由一个或多个用户输入显式地提供表情定义。例如,用户可以将他们的脸形成为特定表情并在客户端设备102a处采集描绘表情的图像。面部跟踪模块302确定图像中的一组面部界标中的每个面部界标的相对位置,并将面部界标的相对位置分配给特定的表情,其中用户可以对该特定的表情分配表情标识符以及显示指令。例如,用户可以指示响应于基于面部跟踪输入检测到特定表情,增强表情系统124在图像数据的呈现内显示特定图形元素。

在操作504,建模模块304基于由面部跟踪模块302识别的表情从一组图形元素中选择图形元素。例如,响应于面部跟踪模块302识别表情,建模模块304取得对应的表情定义,该表情定义包括用于显示特定图形元素(诸如3d对象)以及在客户端设备102a处图像数据的呈现的指令。

在操作506,呈现模块306使得在客户端设备102a处图像数据的呈现内显示图形元素。在一些实施例中,图形元素的位置和取向是基于用户的表情的。例如,每个图形元素可包括显示指令,该显示指令基于由面部跟踪模块302所跟踪的一组面部界标的位置、移动和取向来定义在图像数据的呈现中如何以及在何处显示图形元素。

在操作508,面部跟踪模块302接收第二面部跟踪输入(例如,与先前的移动不同的移动)。在操作510,呈现模块306基于第二面部跟踪输入的属性(诸如,输入值)将改变应用于图形元素。

例如,在图像数据的呈现内显示的图形元素可以包括显示在代表用户的嘴唇的3d表情符号的区域附近的3d气球。使用者可以皱起他们的嘴唇以表明他们正在吹气球。响应于检测到用户嘴唇的移动,呈现模块306使3d气球膨胀,如同用户在给它充气。

图6是示出根据某些示例实施例的用于呈现增强现实显示的方法600的流程图。方法600的操作可以由以上参照图3描述的模块来执行。如图6所示,方法600包括一个或多个操作602、604、606和608。

在操作602,通信模块308基于图像数据和3d表情符号生成平面化的呈现。平面化的呈现包括图像数据和3d表情符号的合并。在将图像数据和3d表情符号合并成单个层之后,在操作604,客户端设备102a的用户将平面化的呈现分配给消息。例如,该消息可以寻址到一个或多个接收者,包括第二客户端设备102b。

在操作606,通信模块308将包括平面化呈现的消息分发给包括第二客户端设备102b的接收者。在操作608,呈现模块306使得在第二客户端设备102b处显示平面化的呈现,例如作为短暂消息。

图7是示出根据某些示例实施例的用于基于面部跟踪输入来生成3d模型的方法的流程图700。如图7所示,流程图700包括步骤700a、700b和700c。

在步骤700a,如在图4中的方法400的操作402所述,在客户端设备102a处接收图像数据702。例如,图像数据702可以由客户端设备102a关联的相机收集,例如前置相机。

在步骤700b,面部跟踪模块302识别图像数据702中的一组面部界标704。如图7所示,一组面部界标704可以表示为图像数据702中描绘的表示用户面部的面部界标的点的分布。面部界标704可以例如包括鼻尖、眼角、眉毛角、嘴角和瞳孔。可以将点的分布细分为点的集合,使得点的每个集合对应于3d表情符号706的区域。例如,沿图像数据702中所描绘的面部的下部划线的点的集合708可以对应于3d表情符号706的下部710。

在步骤700c,建模模块304基于一组面部界标704生成3d表情符号706,如在图4中的方法400的操作404处所述。如图7的步骤700c所示,在基于一组面部界标704的位置处,将3d表情符号706覆盖在图像数据702上。

图8是根据某些示例实施例的用于显示增强现实图像的界面的图800。如图8中所见,图800包括根据诸如图4的方法400中所描述的那些的某些示例实施例的,覆盖在图像数据804上的3d表情符号802的描绘。

图9是根据某些示例实施例的用于显示增强现实图像的界面的图900。如图9所示,图900包括覆盖在图像数据904上的3d表情符号902的描绘。图900还包括界面项906,以接收用户输入以记录内容,该内容包括包含图像数据804和3d表情符号902的合成呈现。

如图9所示,3d表情符号902包括由增强表情系统124识别的表情的夸大描绘,如图5的方法500所述。响应于基于在客户端设备102a处接收的一个或多个面部跟踪输入而检测到特定表情,增强表情系统124使3d表情符号呈现该表情的夸张描绘。

图10是根据某些示例实施例的用于显示增强现实图像的界面的图1000。如图10所示,根据诸如图5的方法500中所描述的那些实施例的某些示例实施例,图10包括3d表情符号1002,图形元素1004,其覆盖在图像数据1006上。

例如,响应于面部跟踪模块302接收到与特定表情相对应的面部跟踪输入(例如,用户皱起他的嘴唇),呈现模块306使图形元素1004显示在图像数据1006中的位置处。

软件架构

图11是示出示例软件架构1106的框图,其可以与在此描述的各种硬件架构结合使用。图11是软件架构的非限制性示例,并且可以理解,许多其它架构可被实现以促进在此描述的功能。软件架构1106可以在诸如图12的机器1200的硬件上执行,机器1200包括处理器1204、存储器1214、和i/o组件1218等。代表性硬件层1152被示出并且可以表示例如图12的机器1200。代表性硬件层1152包括具有相关联可执行指令1104的处理单元1154。可执行指令1104表示软件架构1106的可执行指令,包括在此描述的方法、组件等的实施方式。硬件层1152还包括存储器和/或存储模块存储器/存储设备1156,其也具有可执行指令1104。硬件层1152还可以包括其它硬件1158。

在图11的示例性架构中,软件架构1106可以概念化为层的堆栈,其中每个层提供特定的功能。例如,软件架构1106可以包括诸如操作系统1102、库1120、应用1116和呈现层1114的层。在操作上,层内的应用1116和/或其它组件可以通过软件堆栈来调用应用编程接口(api)api调用1108,并且响应于api调用1108而接收响应。所示的层本质上是代表性的,并且并不是所有软件架构都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件1118,而其它操作系统可提供此类层。其它软件架构可以包括附加的层或不同的层。

操作系统1102可以管理硬件资源并提供公共服务。操作系统1102可以包括例如内核1122、服务1124和驱动器1126。内核1122可以用作硬件和其它软件层之间的抽象层。例如,内核1122可以负责存储器管理、处理器管理(例如,调度)、组件管理、网络、安全设置等。服务1124可以为其它软件层提供其它公共服务。驱动器1126负责控制底层硬件或与底层硬件接口连接。例如,驱动器1126包括显示驱动器、相机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、wi-fi驱动器、音频驱动器、电源管理驱动器等等,取决于硬件配置。

库1120提供由应用1116和/或其它组件和/或层使用的公共基础结构。库1120提供允许其它软件组件以比与底层操作系统1102功能(例如,内核1122、服务1124和/或驱动器1126)直接通过接口连接更容易的方式执行任务的功能。库1120可以包括系统库1144(例如,c标准库),其可以提供诸如存储器分配功能、字符串操作功能、数学功能等的功能。另外,库1120可以包括api库1146,诸如媒体库(例如,用于支持各种媒体格式(诸如mpreg4、h.264、mp3、aac、amr、jpg、png)的呈现和操作的库)、图形库(例如,可用于在显示器上的图形内容中渲染2d和3d的opengl框架)、数据库库(例如,可提供各种关系数据库功能的sqlite)、web库(例如,可提供web浏览功能的webkit)等。库1120还可以包括各种其它库1148,以向应用1116和其它软件组件/模块提供许多其它api。

框架/中间件1118(有时也称为中间件)提供可由应用1116和/或其它软件组件/模块使用的更高级别的公共基础结构。例如,框架/中间件1118可以提供各种图形用户界面(gui)功能、高级资源管理、高级位置服务等。框架/中间件1118可以提供可以由应用1116和/或其它软件组件/模块使用的宽范围的其它api,其中的一些可以针对特定操作系统1102或平台。

应用1116包括内置应用1138和/或第三方应用1140。代表性内置应用1138的示例可包括但不限于联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用和/或游戏应用。第三方应用1140可以包括由特定平台的供应商以外的实体使用androidtm或iostm软件开发工具包(sdk)开发的应用,并且可以是在诸如iostm、androidtmphone的移动操作系统或其它移动操作系统上运行的移动软件。第三方应用1140可以调用由移动操作系统(诸如操作系统1102)提供的api调用1108以便于实现在此描述的功能。

应用1116可以使用内置操作系统功能(例如,内核1122、服务1124和/或驱动器1126)、库1120和框架/中间件1118来创建用户界面以与系统的用户交互。可替代地或另外地,在一些系统中,与用户的交互可以通过表示层(诸如呈现层1114)发生。在这些系统中,应用/组件“逻辑”可以与和用户交互的应用/组件的方面分开。

图12是示出根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行在此所讨论的任何一种或多种方法的机器1200的组件的框图。具体地,图12示出了以计算机系统的示例形式的机器1200的图形表示,在该计算机系统内可以执行用于使机器1200执行在此所讨论的任何一种或多种方法的指令1210(例如,软件、程序、应用、小应用、应用软件或其它可执行代码)。这样,指令1210可用于实现在此描述的模块或组件。指令1210将通用的非程序化的机器1200变换成被编程为以所描述的方式执行所描述和示出的功能的特定的机器1200。在替代实施例中,机器1200作为独立装置操作或者可以耦接(例如,联网)到其它机器。在联网部署中,机器1200可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器1200可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家电)、其它智能设备、网络装置、网络路由器、网络交换机、网络桥接器、或者能够顺序地或以其它方式执行指令1210的任何机器,该指令1210指定机器1200要采取的动作。此外,尽管仅示出了单个机器1200,但是术语“机器”还可被视为包括单独或联合地执行指令1210以执行在此所讨论的任何一种或多种方法的机器的集合。

机器1200可以包括处理器1204、存储器/存储设备1206和i/o组件1218,其可以被配置为例如经由总线1202彼此通信。存储器/存储设备1206可以包括存储器1214(诸如主存储器或其它存储设备)和存储单元1216,两者都可由处理器1204诸如经由总线1202访问。存储单元1216和存储器1214存储体现在此描述的任何一种或多种方法或功能的指令1210。在机器1200的执行期间,指令1210还可以完全或部分地驻留在存储器1214内、存储单元1216内、处理器1204中的至少一个处理器内(例如,处理器的缓存存储器内)、或其任何合适的组合。因此,存储器1214、存储单元1216和处理器1204的存储器是机器可读介质的示例。

i/o组件1218可以包括各种组件,以接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等。在特定机器1200中包括的特定i/o组件1218将取决于机器的类型。例如,诸如移动电话的便携式机器可能包括触摸输入设备或其它此类输入机构,而无头服务器机器可能不包括此类触摸输入设备。可以理解,i/o组件1218可以包括图12中未示出的许多其它组件。i/o组件1218根据功能分组仅仅是为了简化以下讨论,并且分组决不是限制性的。在各种示例实施例中,i/o组件1218可以包括输出组件1226和输入组件1228。输出组件1226可以包括可视组件(例如,显示器,诸如等离子显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt))、声学组件(例如扬声器)、触觉组件(例如,振动电机、电阻机构)、其它信号发生器等等。输入组件1228可以包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指向仪器)、触知输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏,或其它触知输入组件)、音频输入组件(例如,麦克风)等。

在进一步的示例实施例中,i/o组件1218可以包括生物度量组件1230、运动组件1234、环境组件1236或定位组件1238,以及多种其它组件。例如,生物度量组件1230可包括检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1234可包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件1236可包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,用于为了安全而检测危险气体浓度或测量大气中的污染物的气体检测传感器)或可能提供与周围物理环境相对应的指示、测量或信号的其它组件。定位组件1238可包括定位传感器组件(例如,全球定位系统(gps)接收器组件)、高度传感器组件(例如,高度计或检测气压的气压计,从该气压可以导出高度)、取向传感器组件(例如,磁力计)等。

通信可以使用各种技术来实现。i/o组件1218可以包括通信组件1240,其可操作以分别经由耦接器1222和耦接器1224将机器1200耦接到网络1232或设备1220。例如,通信组件1240可包括网络接口组件或与网络1232接口连接的另一合适设备。在另外的示例中,通信组件1240包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如,低功耗)、组件和经由其它模式提供通信的其它通信组件。设备1220可以是另一机器或各种外围设备(例如,经由通用串行总线(usb)耦接的外围设备)中的任何一个。

此外,通信组件1240可检测标识符或包括可操作以检测标识符的组件。例如,通信组件1240可包括射频识别(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,光学传感器,其用于检测诸如通用产品代码(upc)条形码的一维条形码、诸如快速响应(qr)代码、aztec代码、数据矩阵、数字图形、最大码、pdf417、超码、uccrss-2d条形码和其它光学代码的多维条形码)或声学检测组件(例如,用于识别标记的音频信号的麦克风)。此外,可以经由可以指示特定位置的通信组件1240来导出各种信息,诸如经由因特网协议(ip)地理位置的位置、经由信号三角测量的位置、经由检测nfc信标信号的位置等。

词汇表

在该上下文中的“载波信号”是指能够存储、编码或承载用于由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以便于此类指令的通信。可以使用传输介质经由网络接口设备并使用许多公知的传输协议中的任何一个传输协议来通过网络发送或接收指令。

在该上下文中的“客户端设备”是指与通信网络接口连接以从一个或多个服务器系统或其它客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(pda)、智能电话、平板计算机、超级本、上网本、笔记本、多处理器系统、基于微处理器或可编程的消费电子产品、游戏控制台、机顶盒或用户可用其访问网络的任何其它通信设备。

在该上下文中的“通信网络”是指网络的一个或多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、因特网、因特网的一部分、公共交换电话网(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一种类型的网络,或两个以上此类网络的组合。例如,网络或网络的一部分可以包括无线或蜂窝网络,并且耦接可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或其它类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线服务(gprs)技术、gsm演进增强型数据速率(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准、由各种标准制定组织定义的其它标准、其它远程协议或其它数据传输技术。

在该上下文中的“短时消息”是指可在受时间限制的持续时间期间访问的消息。短时消息可以是文本、图像、视频等。短时消息的访问时间可以由消息发送者设置。可替代地,访问时间可以是默认设置或由接收者指定的设置。无论设置技术如何,消息是暂态的。

在该上下文中的“机器可读介质”是指能够临时或永久地存储指令和数据的组件、设备或其它有形介质,并且可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存、光学介质、磁介质、高速缓冲存储器、其它类型的存储器(例如,可擦除可编程只读存储器(eeprom))和/或其任何合适的组合。术语“机器可读介质”应被视为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还可被视为包括能够存储由机器执行的指令(例如,代码)的任何介质或多个介质的组合,使得指令在由机器的一个或多个处理器执行时使机器执行在此描述的任何一种或多种方法。因此,“机器可读介质”是指单个存储设备或设备,以及包括多个存储设备或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”排除信号本身。

在该上下文中的“组件”是指具有由功能或子例程调用、分支点、应用编程接口(api)或提供特定处理或控制功能的分区或模块化的其它技术定义的边界的设备、物理实体或逻辑。组件可以经由它们的接口与其它组件组合以执行机器过程。组件可以是被设计用于与其它组件一起使用的封装功能硬件单元,以及通常执行相关功能的特定功能的程序的一部分。组件可以构成软件组件(例如,在机器可读介质上体现的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如,处理器或一组处理器)可以通过软件(例如,应用或应用部分)将其配置为操作以执行如在此所述的某些操作的硬件组件。硬件组件还可以机械地、电子地或其任何合适的组合来实现。例如,硬件组件可以包括永久配置为执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,诸如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件组件还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件组件可以包括由通用处理器或其它可编程处理器执行的软件。在由该软件配置后,硬件组件就成为特定的机器(或机器的特定组件),其被独特地定制以执行配置的功能并且不再是通用处理器。应当理解,可以由成本和时间考虑来驱动在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件组件的决定。因此,短语“硬件组件”(或“硬件实现的组件”)应该被理解为包含有形实体,即物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)的实体,以某种方式操作或执行在此所述的某些操作。考虑其中硬件组件被临时配置(例如,编程)的实施例,不需要在任何一个时刻配置或实例化硬件组件中的每个硬件组件。例如,在硬件组件包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为相应的不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置特定的处理器或多个处理器,例如,在一个时刻构成特定的硬件组件,并在不同的时刻构成不同的硬件组件。硬件组件可以向其它硬件组件提供信息并从其接收信息。因此,所描述的硬件组件可以被视为通信地耦接。在同时存在多个硬件组件的情况下,可以通过在两个硬件组件之间或更多个硬件组件之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,例如通过对多个硬件组件可访问的存储器结构中的信息的存储和取得,可以实现该硬件组件之间的通信。例如,一个硬件组件可以执行操作并将该操作的输出存储在与其通信耦接的存储器设备中。然后,另一硬件组件可以稍后访问存储器设备以取得和处理所存储的输出。硬件组件还可以启动与输入或输出设备的通信,并且可以在资源(例如,信息集合)上操作。在此描述的示例方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时配置还是永久配置,该处理器可以构成处理器实现的组件,其用于执行在此描述的一个或多个操作或功能。如在此所使用的,“处理器实现的组件”是指使用一个或多个处理器实现的硬件组件。类似地,在此描述的方法可以至少部分地由处理器实现,其中特定的处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或多个处理器或处理器实现的组件来执行。此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(saas)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)并且经由一个或多个适当的接口(例如,应用编程接口(api))访问。操作中的某些操作的性能可以分布在处理器之间,不仅驻留在单个机器内,而且部署在多个机器上。在一些示例实施例中,处理器或处理器实现的组件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其它示例实施例中,处理器或处理器实现的组件可以分布在多个地理位置上。

在该上下文中的“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器代码”等)操纵数据值以及产生应用于操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、asic、射频集成电路(rfic)或其任何组合。处理器可以进一步是具有可以同时执行指令的两个或更多个独立处理器、(有时称为“核”)的多核处理器。

在该上下文中,“时间戳”是指识别特定事件何时发生的字符序列或编码信息,例如给出日期和一天中的时间,有时精确到秒的分数。

在此上下文中,“lift”是针对随机选择目标模型测量的目标模型在预测或分类具有增强的响应(相对于总体而言)的情况时的性能的测量。

在此上下文中的“音素对齐(phonemealignment)”,因素是将一个单词与另一个单词区分开的语音单元。一个音素可能由一系列关闭、爆发和吸气事件组成;或者,连音可能会从后元音过渡到前元音。因此,不仅可以通过语音信号所包含的音素来描述语音信号,还可以通过音素的位置来描述语音信号。因此,音素对齐可以描述为波形中音素的“时间对齐”,以便确定语音信号中每个音素的适当顺序和位置。

在本文中的“听觉到视觉转换”是指可听语音信号到可见语言的转换,其中可见语言可以包括代表可听语音信号的嘴形。

在本文中的“时延神经网络(tdnn)”中,tdnn是一种人工神经网络架构,其主要目的是处理顺序数据。例如,将连续音频转换为用于语音识别的分类音素标签流。

在本文中的“双向长短期存储器(blstm)”是指可在任意间隔内记忆值的递归神经网络(rnn)架构。存储的值不会随着学习的进行而被修改。rnn允许在神经元之间的向前和向后连接。在给定未知大小和事件之间的持续时间的情况下,blstm非常适合时间序列的分类、处理和预测。

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