增强现实用户界面控制的制作方法

文档序号:21732407发布日期:2020-08-05 01:27阅读:148来源:国知局
增强现实用户界面控制的制作方法

优先权

本申请要求于2017年12月22日提交的序列号为no.15/853,264的美国专利申请的优先权的权益,在此要求其每一个的优先权,并且其每一个通过引用全部并入在此。

本公开的实施例一般涉及采用用户界面内描绘的对象来控制用户界面。更具体地但非限制性地,本公开提出了用于在采用对象控制图形用户界面的至少一部分的同时采集图形用户界面内的真实世界对象的表示并描绘真实世界对象的系统和方法。



背景技术:

电信应用和装置可以使用各种媒体(诸如文本、图像、声音记录和/或视频记录)来提供多个用户之间的通信。例如,视频会议允许两个或更多个人使用软件应用、电信装置和电信网络的组合彼此通信。电信装置还可以记录视频流以在电信网络中作为消息进行发送。一些电信应用启用基于触摸的控制、与触摸屏的基于手势的交互以及与图形用户界面的其它用户交互。此外,一些电信应用允许用户通过屏幕或键盘交互来控制通信会话的选项,同时在图形用户界面内呈现由相机采集的图像。

附图说明

附图中的各个附图仅示出了本公开的示例实施例,并且不应被视为限制其范围。

图1是示出根据一些示例实施例的联网系统的框图。

图2是示出根据一些示例实施例的增强现实系统的图。

图3是示出根据一些示例实施例的用于采用用户界面内描绘的对象来控制用户界面的示例方法的流程图。

图4是描绘根据一些示例实施例的采用在用户界面内描绘的对象对用户界面的控制的用户界面图。

图5是描绘根据一些示例实施例的采用在用户界面内描绘的对象对用户界面的控制的用户界面图。

图6是描绘根据一些示例实施例的采用在用户界面内描绘的对象对用户界面的控制的用户界面图。

图7是示出根据一些示例实施例的用于采用在用户界面内描绘的对象来控制用户界面的示例方法的流程图。

图8是描绘根据一些示例实施例的采用在用户界面内描绘的对象对用户界面的控制的用户界面图。

图9是描绘根据一些示例实施例的采用在用户界面内描绘的对象对用户界面的控制的用户界面图。

图10是描绘根据一些示例实施例的采用在用户界面内描绘的对象对用户界面的控制的用户界面图。

图11是示出根据一些示例实施例的用于采用在用户界面内描绘的对象来控制用户界面的示例方法的流程图。

图12是示出根据一些示例实施例的用于采用在用户界面内描绘的对象来控制用户界面的示例方法的流程图。

图13是描绘根据一些示例实施例的示例移动装置和移动操作系统界面的用户界面图。

图14是示出根据一些示例实施例的可以安装在机器上的软件架构的示例的框图。

图15是呈现根据示例实施例的计算机系统形式的机器的图形表示的框图,在该计算机系统内可执行一组指令以使机器执行在此所讨论的任何方法。

本文提供的标题只是为了方便,并不必须影响所用术语的范围或含义。

具体实施方式

以下描述包括说明本公开的实施例的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,出于解释的目的,为了提供对本发明主题的各种实施例的理解而阐述了许多具体细节。然而,对于本领域技术人员显而易见的是,也可以在没有这些具体细节的情况下实践本发明主题的实施例。通常,公知的指令实例、协议、结构和技术不必详细示出。

本公开的一些方面描述了增强现实系统。增强现实系统的一些实施例被配置为能够使用用户界面内描绘的对象来控制装置(例如,智能电话)或在装置上呈现的图形用户界面。增强现实系统可以通过操纵图形用户界面、游戏、软件程序、触觉反馈系统、社交消息传递或社交联网程序和系统、浏览器、通信网络或任何其它合适的界面内的功能或操作来使能对装置的控制。增强现实系统可以使用与装置相关联的图像采集装置(例如,相机)来采集包括对象的视频流、一组帧或一组图像。在采集视频流时,在装置的显示组件上的图形用户界面内描绘了对象,并且对象在视频流内的运动引起对一个或多个装置与描绘对象的图形用户界面的控制或交互。

在增强现实系统能够控制游戏的情况下,增强现实系统可以采集诸如面部或手的控制对象的视频流。然后,在呈现在装置(诸如智能电话)的屏幕上的图形用户界面内渲染或显示控制对象。然后,增强现实系统生成增强现实元素,用户与该增强现实元素交互或操纵该增强现实元素以控制或导航游戏环境。例如,在控制对象是面部的情况下,智能电话的前置相机可以采集包括用户的面部的视频流。用户的面部可以示出在图形用户界面上的游戏环境内。然后,增强现实系统可以生成在图形用户界面内朝向面部飞或掉落的对象(例如,西红柿、馅饼、婴儿食品的勺子)。然后,用户可以在保持其面部在前置相机的视野内的同时移动其面部或移动智能电话,以避开对象(例如,躲避飞行的西红柿或馅饼)或抓住对象(例如,抓住用户口中的婴儿食品的勺子)。躲避或抓住对象后,对象可能会消失或被剩余部分(例如,西红柿或馅饼的飞溅部分)代替。然后,增强现实系统可以生成新对象以继续游戏。

在一些游戏环境中,用户还可以与在游戏环境中与控制对象一起保留的持久对象进行交互。例如,在控制对象是用户的头部或面部的情况下,用户可以将其头部或面部放置在智能电话的前置相机的视野中。相机可以采集包括用户的面部的视频流,并且增强现实系统可以在游戏环境内提供用户的面部。然后,增强现实系统生成持久元素(例如,球)。然后,增强现实系统可以将球扔向用户的面部。通过移动他们的头部或智能电话,当用户的面部处于前置相机视野中时,增强现实系统会操纵球的运动,使得球看起来像弹在用户的额头上。增强现实系统可以生成附加用户界面元素,诸如记分板、得分指示器、状态指示器、庆祝图形等,以表示球的连续反弹数量、分数、成就或任何其它合适的交互。

以上是一个具体示例。本公开的各种实施例涉及装置和装置的一个或多个处理器实现的指令,以采用在视频流中采集并在用户界面内描绘的真实世界对象来控制用户界面。描述了一种增强现实系统,其通过操纵在用户界面内描绘的对象的位置、角度、旋转、大小、距离或任何其它合适的方面,使得能够控制装置和图形用户界面中的一个或多个的功能。

图1是描绘根据一个实施例的网络系统100的网络图,网络系统100具有被配置用于通过网络交换数据的客户端-服务器架构。例如,网络系统100可以是消息传递系统,其中客户端在网络系统100内传送并交换数据。数据可涉及各种功能(例如,发送和接收文本和媒体通信,确定地理位置等)和与网络系统100及其用户相关联的方面(例如,传送通信数据,接收和发送通信会话的指示等)。虽然在此示出为客户端-服务器架构,但是其它实施例可以包括其它网络架构,诸如对等或分布式网络环境。

如图1中所示,网络系统100包括社交消息传递系统130。社交消息传递系统130通常基于三层架构,其包括接口层124、应用逻辑层126和数据层128。如相关计算机和因特网相关领域的技术人员所理解的,图1中所示的每个组件或引擎表示一组可执行软件指令和用于执行指令的相应硬件(例如,存储器和处理器),形成硬件实现的组件或引擎,并在执行指令时用作配置为执行一组特定功能的专用机器。为了避免不必要的细节模糊本发明的主题,从图1中省略了与传达对本发明主题的理解没有密切关系的各种功能组件和引擎。当然,附加的功能组件和引擎可以与社交消息传递系统(诸如图1中所示的社交消息传递系统)一起使用,以便于实现在此未具体描述的附加功能。此外,图1中描绘的各种功能组件和引擎可以驻留在单个服务器计算机或客户端装置上,或者可以以各种布置横跨若干服务器计算机或客户端装置分布。此外,尽管图1中描绘了社交消息传递系统130为三层架构,但是本发明的主题决不限于这种架构。

如图1中所示,接口层124包括接口组件(例如,web服务器)140,其接收来自各种客户端计算装置和服务器(诸如执行客户端应用112的客户端装置110,和执行第三方应用122的第三方服务器120)的请求。响应于所接收的请求,接口组件140经由网络104向请求装置传送适当的响应。例如,接口组件140可以接收请求,诸如超文本传输协议(http)请求或其它基于web的应用编程接口(api)请求。

客户端装置110可以执行传统web浏览器应用或已经为特定平台开发以包括各种移动计算装置和移动专用操作系统(例如,iostm、androidtmphone)中的任何一个的应用(也称为“app”)。此外,在一些示例实施例中,客户端装置110形成增强现实系统160的全部或一部分,使得增强现实系统160的组件配置客户端装置110以执行关于增强现实系统160的操作的一组特定功能。

在示例中,客户端装置110执行客户端应用112。客户端应用112可以提供向用户106呈现信息以及经由网络104进行通信以与社交消息传递系统130交换信息的功能。此外,在一些示例中,客户端装置110执行增强现实系统160的功能以采用在视频流中采集并在用户界面内描绘的真实世界对象来控制用户界面。

每个客户端装置110可以包括计算装置,计算装置至少包括显示和与网络104的通信能力以访问社交消息传递系统130、其它客户端装置和第三方服务器120。客户端装置110包括但不限于远程装置、工作站、计算机、通用计算机、因特网装置、手持装置、无线装置、便携式装置、可穿戴计算机、蜂窝或移动电话、个人数字助理(pda)、智能电话、平板计算机、超极本、上网本、膝上型计算机、台式机、多处理器系统、基于微处理器或可编程的消费电子产品、游戏机、机顶盒、网络pc、小型计算机等。用户106可以是人、机器或与客户端装置110交互的其它部件。在一些实施例中,用户106经由客户端装置110与社交消息传递系统130交互。用户106可能不是联网系统100的一部分,但是可以与客户端装置110相关联。

如图1中所示,数据层128具有便于访问信息存储库或数据库134的数据库服务器132。数据库134是存储数据(诸如成员简档数据、社交图数据(例如,社交消息传递系统130的成员之间的关系)、图像修改偏好数据、可访问性数据和其它用户数据)的存储装置。

个人可以对社交消息传递系统130进行注册以成为社交消息传递系统130的成员。在注册后,成员可以在社交消息传递系统130上形成社交网络关系(例如,朋友、关注者或联系人),并且与社交消息传递系统130提供的广泛的应用交互。

应用逻辑层126包括各种应用逻辑组件150,应用逻辑组件150结合接口组件140而采用从数据层128中的各种数据源或数据服务取得的数据生成各种用户界面。各个应用逻辑组件150可用于实现与社交消息传递系统130的各种应用、服务和特征相关联的功能。例如,社交消息传递应用可以与应用逻辑组件150的至少一部分一起实现。社交消息传递应用为客户端装置110的用户提供消息传递机制,以发送和接收包括文本和媒体内容(诸如图片和视频)的消息。客户端装置110可以访问和查看来自社交消息传递应用的消息达指定的时间段(例如,有限的或无限制的)。在示例中,消息接收者可以访问特定消息达预定义的持续时间(例如,由消息发送者指定),该预定义的持续时间在特定消息被首次访问时开始。在预定义的持续时间过去之后,消息将被删除,并且消息接收者将无法再访问该消息。当然,其它应用和服务可以分别体现在它们各自的应用逻辑组件150中。

如图1中所示,社交消息传递系统130可以包括能够采用描绘用户界面的对象来控制用户界面的增强现实系统160的至少一部分。类似地,如上所述,客户端装置110包括增强现实系统160的至少一部分。在其它示例中,客户端装置110可以包括整个增强现实系统160。在客户端装置110包括增强现实系统160的一部分(或全部)的情况下,客户端装置110可以单独工作或与社交消息传递系统130协作工作,以提供在此描述的增强现实系统160的功能。

在一些实施例中,社交消息传递系统130可以是短时消息系统,短时消息系统允许短时通信,其中内容(例如,视频剪辑或图像)在诸如查看时间或查看完成的删除触发事件之后被删除。在这种实施例中,装置在生成、发送、接收或显示短时消息的各方面的任何情况下使用在此描述的各种组件。例如,实现增强现实系统160的装置可以使得能够在社交消息传递系统的用户之间进行交互(例如,玩接球)。该装置可以启用、生成和发送用户之间的交互的表示,作为短时消息的内容生成的一部分。在交互会话完成后,可以启用删除触发器以删除交互的记录或表示。

在图2中,在各种实施例中,增强现实系统160可以实现为独立系统或者结合客户端装置110实现,并且不必须包括在社交消息传递系统130中。增强现实系统160被示出为包括模式组件210、识别组件220、增强组件230以及运动组件240。组件210-240中的全部或一些例如经由网络耦接、共享存储器等彼此通信。组件210-240中的每个组件可以实现为单个组件,组合到其它组件中,或者进一步细分为多个组件。与示例实施例无关的其它组件也可被包括,但未被示出。

图3描绘了示出根据一些示例实施例的用于采用描绘用户界面的对象来控制用户界面的示例方法300的流程图。方法300的操作可以由增强现实系统160的组件执行,并且出于说明的目的在下面进行描述。

在操作310中,模式组件210发起客户端装置110的增强现实模式。在一些实施例中,增强现实模式被配置为在呈现在客户端装置110的显示组件上的图形用户界面内呈现增强现实元素。增强现实模式可以响应于图标或其它可选界面元素的选择而发起。在选择图标时,模式组件210发起增强现实模式,该增强现实模式可以包含或包括被配置为执行以下描述的操作的软件。例如,模式组件210可以通过打开增强现实程序并执行一个或多个处理器可读指令以引起在客户端装置110的显示组件上图形用户界面的呈现来发起增强现实模式。在一些情况下,图形用户界面最初包括客户端装置110的图像采集组件的视野的至少一部分。例如,图形用户界面最初可以包括智能电话的前置相机的视野的一部分。

在一些实施例中,图形用户界面最初包括用于用户与客户端装置110交互的一个或多个指令。该指令可以指示一组游戏规则、初始对象窗口(例如,指定用于图形用户界面的关注对象或控制对象的初始放置的区域)、一组控制操作以及任何其它合适的信息中的一个或多个。在一些情况下,图形用户界面包括一个或多个可选界面元素。可选界面元素可以代表使用增强现实系统160玩的游戏的可选选项,修改在客户端装置110的图像采集组件的视野内呈现的对象,修改图像采集组件的视野,或与增强现实系统160相关联的任何其它合适的可选选项。

在操作320中,识别组件220在耦接到客户端装置110的图像采集组件的视野内检测关注对象。在一些实施例中,如图4中所示,关注对象是操作或接近客户端装置110并且在图像采集组件的视野内的用户的面部。例如,客户端装置110可以使用客户端装置110的前向图像采集组件(例如,自拍相机)来启用图像采集。客户端装置110的用户可以被定位在前向图像采集组件的视野内。在前向图像采集组件发起视野的图像采集后,可以将采集的图像(例如,视频流中的帧)传递到识别组件220。识别组件220然后可以检测用户的面部402,并且在客户端装置110的显示组件上在图形用户界面400内显示面部402。

如上所述,在一些实施例中,识别组件220接收或以其它方式访问描绘面部的至少一部分的一个或多个图像。在一些实施例中,识别组件220接收一个或多个图像作为由与客户端装置110相关联的图像采集组件采集并呈现在增强现实模式的用户界面上的视频流。识别组件220可以直接接收由图像采集组件采集的一个或多个图像或视频流。在一些情况下,识别组件220将一个或多个图像或视频流(例如,包括视频流的一组图像)的全部或一部分传递给增强现实系统160的一个或多个组件,以进行进一步处理和操纵,如下面更详细所述。

在一些实施例中,识别组件220被配置为检测预定对象或对象类型。例如,识别组件220可以被配置为检测或识别出现在图像采集组件的视野中的人、面部、面部特征、手或任何其它对象或对象类型。识别组件220可以被配置为从一组对象或对象类型中检测对象或对象类型。识别组件220还可被配置为基于模式(例如,增强现实模式)检测对象或对象类型。在该实施例中,模式可以从多个模式中选择,其中每个模式与指定的对象或对象类型相关联。

识别组件220可以基于大小、位置、突出、形状、颜色、颜色变化、一组参考点、边缘检测操作、对象跟踪操作或对象的任何其它合适的可定义或可检测方面来确定关注对象。例如,在一些实施例中,识别组件220可以采用一组面部跟踪操作来确定与位于图像采集组件的视野内的面部相关联的一个或多个界标。识别组件220可以基于所检测的界标确定在视野内描绘的面部是关注对象。在一些实施例中,识别组件220将面部网格应用于关注对象(例如,面部),使得视频流的一帧或多帧内的一个或多个界标的位置是已知的。在已知一个或多个界标的位置在视频流的帧的至少一部分内后,识别组件220可以跟踪界标。

在操作330中,增强组件230在图形用户界面内顺序地呈现一组增强现实元素。在一些实施例中,如图4中所示,响应于识别组件220在图像采集组件的视野内检测到关注对象(例如,面部402),而呈现一组增强现实元素404。增强组件230可以在图形用户界面400中呈现一组增强现实元素404,使得增强现实元素的子集和关注对象(例如,用户的面部402)描绘在图形用户界面400内。

在一些实施例中,增强组件230在会话(诸如增强现实模式的游戏会话)的发起时呈现一个或多个增强现实元素。例如,可以向增强组件230传递发起针对增强现实模式的会话的用户界面选择的指示。如图4中所示,然后,增强组件230可以在图形用户界面400内与关注对象402一起呈现第一增强现实元素406。第一增强现实元素406可以最初呈现在第一位置中。在一些情况下,在图形用户界面400内呈现时,第一增强现实元素406可以以一定速度呈现,使得第一增强现实元素406沿着路径在图形用户界面400内行进。如图4-6中所示,当沿着路径行进时,第一增强现实元素406可以在客户端装置110的显示组件上描绘的连续采集并呈现的帧中改变图形用户界面400上的位置。

在一些实施例中,一个或多个增强现实元素包括交互环境。在该实施例中,面部402可以被呈现在图形生成的主体(诸如动画人物、头像、套装(例如,太空服、飞行服、一套衣服))或任何其它合适的主体之内或之上。一个或多个增强现实元素可以包括背景、一个或多个交互对象(例如,树木、花朵、云彩、人物、动物等)。增强现实元素的第一部分(例如,背景和主体)可以同时呈现,增强现实元素的第二部分(例如,树木、动物和碎片)响应于面部402的运动而顺序呈现。

在操作340中,运动组件240检测关注对象402的至少一部分相对于增强现实元素的子集中的第一增强现实元素406的运动。在一些实施例中,运动组件240通过跟踪参考特征408的运动来检测关注对象402的该部分的运动。例如,运动组件240可以通过检测参考特征408的运动来检测面部402的运动,其中参考特征408是定义面部402的周长的一个或多个点。在一些情况下,参考特征408包括一组面部界标、面部特征(例如,鼻子、一只或多只眼睛、嘴巴、下巴线、发际线、代表一个或多个特征的面部参考点、它们的组合或任何其它合适的面部特征)、面部特性或面部的任何其它可识别或可区分的方面中的一个或多个。

如图4-6中所示,运动组件240可以通过比较在(图4和图5)视频流的两个以上帧中面部402(例如,关注对象402)的位置来检测运动。在检测关注对象402的运动中,运动组件240可以确定在第一帧(例如,图4)中参考特征408的第一位置。参考特征408可以是关注对象402的一组界标、一组边缘或任何其它区别方面中的一个或多个。然后,运动组件240可以确定或检测在第二帧(例如,图5)中关注对象402或参考特征408的第二位置。在第一位置和第二位置不同的情况下,运动组件240可以检测关注对象402的运动。在一些实施例中,运动组件240通过针对多个帧(例如,接连或连续的帧或非连续的帧)检测关注对象402或参考特征的平均位置来确定运动。

在一些实施例中,在增强现实元素包括环境的情况下,关注对象的部分的运动可以使得关注对象被呈现在图形用户界面内的不同位置或变化位置处。关注对象可以通过改变关注对象的位置来与增强现实元素的一部分(例如,第一增强现实元素)进行交互,从而避开、接触、捕捉、跳过或以其它方式相对于至少一个增强现实元素执行一个动作或一组动作。例如,关注对象可以被呈现在增强现实环境中,并且被描绘为沿着山坡滑雪的人。关注对象(例如,面部)的运动可以控制包括关注对象的关于图形用户界面的身体或头像的运动,以避开障碍物(例如,增强现实元素的一部分),收集或接触目标(例如,增强现实元素的一部分)并沿着渲染的滑雪坡向下前进。关注对象的运动也可以用于控制通过增强现实环境的任何合适的运动,诸如飞行、跑步、滑行、游泳或任何其它合适的行进或导航方法。在一些实施例中,关注对象(诸如头部)的运动可以通过在保持图像采集装置的静态位置的同时在图像采集装置的视野内移动关注对象来执行。例如,举起相机的人可以在移动其头部的同时将相机保持在静止位置。该运动可以控制在相机的屏幕(例如,智能电话显示器)上描绘的图形元素、在屏幕上描绘的环境中的运动或变化、新元素的生成、游戏的进展或任何其它合适的变化。

在操作350中,增强组件230修改第一增强现实元素的呈现,并引起增强现实元素的子集中的至少一个第二增强现实元素的呈现。增强组件230可以基于关注对象或参考特征的运动或与其的接近度来修改第一增强现实元素。增强组件230可以响应于第一增强现实元素的修改来呈现至少一个第二增强现实元素。如图4-6中所示,增强现实组件230和运动组件240在包括视频流的帧或图像内跟踪第一增强现实元素406和关注对象402。当第一增强现实元素406接近关注对象402时,关注对象402可以移出第一增强现实元素406的感知路径或轨迹。如图6中所示,可以通过改变在图形用户界面400内描绘的第一增强现实元素406的量来修改第一增强现实元素406。例如,第一增强现实元素406可以被描绘为在关注对象402或与关注对象402相关联的用户的一部分之后经过。

在一些实施例中,如图6中所示,在修改第一增强现实元素406时,增强组件230可引起至少一个第二增强现实元素410的呈现。类似于以上关于第一增强现实元素406描述的方式,至少一个第二增强现实元素410可以被呈现为沿着图形用户界面400内的轨迹行进。在一些实施例中,至少一个第二增强现实元素410可以具有与第一增强现实元素406相似的形状、大小、类型或其它特征集合。至少一个第二增强现实元素410还可以包括指示对第一增强现实元素406的修改的附加增强现实元素。例如,可以生成并呈现增强现实元素,其指示第一增强现实元素406未中关注对象402或命中了关注对象402。还可以呈现增强现实元素,其指示得分或积点、数字的增量(例如,未命中的次数、命中次数、得分或总分数等)、庆祝效果、颜色变化、或视频流的任何其它合适的增强。

图7描绘了示出根据一些示例实施例的用于采用描绘用户界面的对象来控制用户界面的示例方法700的流程图。方法700的操作可以由增强现实系统160的组件执行。在一些情况下,如将在下面更详细解释的,方法700的某些操作可以使用方法300的一个或多个操作或者作为方法300的一个或多个操作的子操作来执行。

在操作710中,识别组件220和运动组件240中的一个或多个确定针对关注对象的参考特征的面部位置。在一些实施例中,识别组件220识别关注对象(例如,面部)上的一个或多个面部界标。识别组件220将面部网格应用于面部。面部网格的一个或多个顶点可以对应于一个或多个面部界标。识别组件220可以从面部网格的一个或多个顶点或一个或多个界标确定参考特征的面部位置。例如,一个或多个顶点的至少一部分可以与指定的面部特征相关联。在将面部网格应用于面部之后,识别组件220可以基于面部特征与面部网格的顶点的已知关联来选择针对参考特征的顶点或面部界标。

在一些情况下,识别组件220通过识别关注对象上的多个面部界标来确定参考特征的面部位置。在识别出面部界标后,识别组件220选择与参考特征相关联的一个或多个面部界标。一个或多个面部界标可以定义参考特征,表示参考特征的一个或多个点或方面,或者以其它方式与参考特征相关联。

例如,如图8中所示,增强组件230可以最初呈现图形用户界面800,该图形用户界面800描绘了客户端装置110的图像采集组件804的视野内的关注对象802(例如,用户的面部)。识别组件220然后确定在关注对象802上描绘的参考特征806(例如,嘴巴)的面部位置。然后,增强组件230呈现第一增强现实元素808。如下面将更详细说明的,第一增强现实元素808可以被呈现在第一位置处,并且被描绘为沿着轨迹、路径或者以其它方式将位置从第一位置改变为第二位置。

在操作720中,增强组件230确定第一增强现实元素在图形用户界面内的空间位置。如图8中所示,增强组件230可以呈现第一增强现实元素808,并在呈现第一增强现实元素808之后的时间确定或识别第一增强现实元素808在图形用户界面800中的空间位置。在一些实施例中,空间位置可以在对应于参考特征从第一状态改变为第二状态的时间处确定。第一增强现实元素808的空间位置可以被确定为针对图形用户界面定义的网格内的位置、与描绘第一增强现实元素的一组像素对应的位置或像素位置、针对第一增强现实元素808或第一增强现实元素808上或之内的点的一组坐标,或图形用户界面800内的任何其它合适的可定义空间位置。

在一些实施例中,第一增强现实元素的空间位置相对于参考特征或参考特征的面部位置来确定。例如,随着测量距参考特征的一部分的距离、第一增强现实元素与参考特征之间的像素数量或任何其它合适的相对位置或测量,第一增强现实元素的空间位置可被确定。在一些情况下,增强组件230可以基于或响应于第一增强现实元素的运动来确定第一增强现实元素的空间位置。

例如,如图8中所示,第一增强现实元素808被描绘为处于第一位置。增强组件230和运动组件240可以通过比较在视频流的两个以上帧中的面部(例如,关注对象802)的位置来检测第一增强现实元素808的运动。在检测关注对象802的运动中,运动组件240或增强组件230可以确定参考特征806在第一帧(例如图8)中的第一位置、一组界标、一组边缘或任何关注对象802或参考特征806的其它区别方面。运动组件240然后可以确定或检测关注对象802或参考特征806在第二帧(例如,图9)中的第二位置。在第一位置和第二位置不同的情况下,运动组件240可以检测关注对象802或参考特征806的运动。

在一些实施例中,运动组件240通过针对多个帧(例如,接连或连续的帧或非连续的帧)检测关注对象802或参考特征806的平均位置来确定运动。响应于检测到针对关注对象802的运动,增强组件230可以检测第一增强现实元素808的空间位置。在一些情况下,空间位置可以被识别为相对于关注对象802或关注对象802上的点的位置、位置或距离。

在运动组件240检测参考特征806的运动的一些实施例中,运动组件240识别参考特征806的第一状态。第一状态可以对应于与参考特征对应的一组界标点的一个或多个第一位置。例如,在参考特征是在用户的面部上描绘的嘴巴的情况下,运动组件240可以在第一帧检测嘴巴的第一状态。第一状态可以对应于第一帧中嘴巴的一个或多个像素、界标(例如,口腔连合、朱红色边、丘比特弓型、人中、人中脊或其它点)或其它可辨别方面的位置。然后,运动组件可以通过将上述针对第一帧确定的位置与第二帧中同一方面或特征的位置进行比较,来检测第二帧的嘴巴的第二状态。

在操作730中,增强组件230将空间位置到面部位置的接近度确定为在接近度阈值内。在一些情况下,接近度阈值是距关注对象或参考特征的至少一部分的距离。接近度阈值可被定义为距关注对象或参考特征的距离,其将第一增强现实元素的至少一部分放置为与参考特征或关注对象的边缘或边界重叠或交叉。例如,如图8-10中所示,当第一增强现实元素从第一位置(图8中所示)移动到与参考特征806的一部分重叠的后续位置(图10中所示)时,可以确定第一增强现实元素808在接近度阈值内。

在识别第一状态之后,如以上关于操作720所述,运动组件240确定参考特征806的改变。参考特征806的改变可以是从第一状态到第二状态的改变,该第二状态对应于一组界标点中的至少一个界标点的一个或多个第二位置。如上所述,至少一个界标点的第二位置可以是视频流的第二帧中的至少一个界标点的位置。运动组件240可以使用任何合适的运动跟踪、面部跟踪或对象跟踪操作来检测关注对象802、参考特征806、或关注对象和参考特征之一或二者的界标的运动。

例如,在关注对象802是面部并且参考特征806是嘴巴(如图8-10中所示)的情况下,运动组件240可以将嘴巴的第一状态确定为张开状态,使得嘴巴张开到运动组件240、识别组件220或增强组件230可检测的程度。在一些情况下,张开状态可以被确定为张开嘴巴超过预定阈值。可以基于在图形用户界面的所选区域内存在的黑色或深色像素的量来确定嘴巴的张开。所选区域是由嘴巴或包含与嘴巴相关联的面部区域的边界框中的一个或多个界定的区域。还可以基于嘴巴的一个或多个面部界标点之间的距离或位于其附近的距离来确定嘴巴的张开。第二状态可以是嘴巴的闭合状态。在该实施例中,参考特征806(例如,嘴巴)从第一状态改变到第二状态可以是嘴巴从张开位置向闭合位置或朝向闭合位置移动的表示。

在一些实施例中,响应于关注对象802的运动来确定空间位置的接近度。运动组件240可以通过连续跟踪关注对象802、参考特征806或关注对象802和参考特征806之一或二者的界标来检测运动。运动组件240还可通过周期性地确定关注对象802、参考特征806或一个或多个界标中的一个或多个的位置来检测运动。当周期性地确定位置时,运动组件240可以选择一组帧(例如,参考帧),从该组帧中确定位置。可以基于预定的帧间隔、帧的质量(例如,聚焦质量、指定的一个或多个界标的存在或任何其它质量度量)、帧平均(例如,帧子集的一个或多个平均的方面、特征或质量)或任何其它合适的选择度量来选择该组参考帧。在选择或确定参考帧之后,运动组件240可以确定关注对象802、参考特征、其一部分或参考帧内的至少一个界标的位置,并将检测到的位置与先前参考帧中一个或多个先前检测到的位置进行比较。在确定关注对象802的运动之后,增强组件230可以确定第一增强现实元素808相对于关注对象802的面部位置的空间位置。

在操作740中,响应于检测到参考特征806从第一状态改变为第二状态的运动,增强组件230修改第一增强现实元素808的呈现。在一些情况下,如上所述,增强组件230基于空间位置与面部位置的接近度来修改第一增强现实元素808的呈现。增强组件230可以通过在检测到参考特征806的状态改变时执行一个或多个操作或子操作来修改第一增强现实元素808的呈现。例如,增强组件230可以迭代地或渐渐地遮盖或去除第一增强现实元素808的一部分,改变第一增强现实元素808的一种或多种颜色,改变第一增强现实元素808的大小,或任何其它合适的修改。

如上所述,在一些实施例中,增强组件230在空间位置处确定第一增强现实元素806遮盖了参考特征806的至少一部分(例如,嘴巴)。参考特征806的由第一增强现实元素808遮盖的部分可位于参考特征806的内部区域内。例如,在参考特征806是嘴巴的情况下,嘴巴的内部区域可以是在图形用户界面内表示处于张开状态的嘴巴并由代表嘴唇或嘴巴的其它部分的像素界定的深色区域。这样,在一些情况下,内部区域可以理解为参考特征806的内部表面。

响应于第一增强现实元素808遮盖了参考特征806的一部分,增强组件230可以在终止第一增强现实元素808的呈现之前的一段时间内修改第一增强现实元素808的呈现。例如,在参考特征806是嘴巴并且第一增强现实元素808是遮盖嘴巴的张开的一部分的一块糖果的情况下,增强组件230可以逐渐修改第一增强现实元素808的呈现(例如,逐渐改变一种或多种颜色,逐渐减小大小或其它渐进式或迭代式呈现修改)以描绘糖果落入张开的嘴巴。在经过一段时间之后,第一增强现实元素808的位置改变或任何其它合适的触发,增强组件230可以终止第一增强现实元素808的呈现。

例如,如图10中所示,增强组件230可以在视频流的一个或多个帧中相对于关注对象802或其一部分来修改第一增强现实元素808的呈现。在图8-10中,第一增强现实元素806被描绘为横跨一组帧沿着轨迹行进。关注对象802被检测为相对于第一增强现实元素806和图形用户界面800内的点中的一个或多个而运动。在图10中,增强组件230响应于关注对象802作用在第一增强现实元件806上来修改第一增强现实元件806的呈现。如图所示,增强现实系统160的一个或多个组件可以检测关注对象802的一部分(例如,嘴巴)相对于第一增强现实元素806的接近度。当嘴巴在第一增强现实元素806的指定接近度范围内或第一增强现实元素806遮盖嘴巴的至少一部分时,增强组件230可以通过改变第一增强现实元素806的颜色和大小中的一个或多个来修改第一增强现实元素806的呈现。增强组件230可以通过使第一增强现实元素806变暗来修改颜色,或者可以通过减小第一增强现实元素806的一个或多个尺寸来改变大小,使得第一增强现实元素806被描绘为在图10或之后在关注对象802的嘴巴内消失。

在操作750中,增强组件230引起图形用户界面内的至少一个第二增强现实元素与关注对象(例如,面部)一起呈现。在一些实施例中,增强组件230基于在操作730中确定的接近度来引起至少一个第二增强现实元素的呈现。增强组件230可以基于操作730的接近度并响应于参考特征从第一状态改变806到第二状态而引起至少一个第二增强现实元素的呈现。

在一些实施例中,可以在图形用户界面内在与面部和参考特征间隔开一定距离处呈现至少一个第二增强现实元素。该至少一个第二增强现实元素可以被呈现为沿着朝向关注对象或参考特征的轨迹行进或移动。例如,如图10中所示,在修改第一增强现实元素806时或在修改之后,增强组件230可以引起第二增强现实元素1010的呈现。在一些实施例中,可以以与第一增强现实元素806的方式类似的方式来初始地呈现第二增强现实元素1010。第二增强现实元素1010最初可以占据与第一增强现实元素806不同的位置。在一些实施例中,第二增强现实元素808被呈现为沿着图形用户界面800内的轨迹或路径行进。轨迹或路径可以与第一增强现实元素806的轨迹或路径类似或不同。例如,如图10中所示,第二增强现实元素1010可以被呈现为沿着与第一增强现实元素806相似的轨迹或方向下落,但是最初位于图形用户界面800的不同部分中。

在一些实施例中,除了修改第一增强现实元素的呈现之外,增强组件230还修改关注对象的呈现。例如,在关注对象是面部的情况下,增强组件230可以在图形用户界面内修改面部的描绘以生成修改的面部。在一些情况下,可以响应于面部的一部分的运动并修改第一增强现实元素的呈现来执行面部的修改。增强组件230可以引起与第一增强现实元素和至少一个第二增强现实元素中的一个或多个的呈现同时地呈现修改的面部。

图11描绘了示出根据一些示例实施例的用于采用描绘用户界面的对象控制用户界面的示例方法1100的流程图。方法1100的操作可以由增强现实系统160的组件执行。在一些情况下,方法1100的某些操作可以使用方法300或方法700的一个或多个操作或者作为方法300或方法700的一个或多个操作的子操作来执行,如下面将更详细说明的。例如,在一些实施例中,方法1100的一个或多个操作可以作为操作340的一部分,作为操作340的子操作或者响应于以上关于图3描述的操作340而执行。

在操作1110中,移动组件240在图形用户界面内或客户端装置110的图像采集组件的视野内识别关注对象的位置的改变。位置的改变可以是从第一位置到第二位置的改变。运动组件240可以以与上面关于操作340所述的方式相似或相同的方式来识别位置的改变。运动组件240可以在视频流的第一帧内识别或检测关注对象上的一个或多个点以识别第一位置。在后续帧中,运动组件240可以识别关注对象上的一个或多个点,并比较第一帧和后续帧中的点的位置,以确定位置的改变。

在操作1120中,移动组件240在第一时间或第一参考帧中确定图形用户界面内的关注对象的对象位置。在关注对象是面部的实施例中,运动组件240可以在第一时间确定图形用户界面内的头部位置。对象位置可以包含围绕关注对象的图形用户界面的至少一部分。

在操作1130中,运动组件240在第二时间确定第一增强现实元素的空间位置。在一些实施例中,运动组件240以与以上参考操作720和730所述的方式相似或相同的方式确定第一增强现实元素的空间位置。在确定第一增强现实元素的空间位置时,移动组件240或增强组件230确定在客户端装置110的显示组件上描绘的图形用户界面内第一增强现实元素的至少一个点、特征或方面的位置。

在操作1142中,增强组件230在第二时间确定空间位置相对于对象位置的接近度。增强组件230可以确定空间位置相对于对象位置的接近度超过未中阈值。在一些实施例中,增强组件230将空间位置与对象位置进行比较。增强组件230可以使用空间位置和对象位置的一个或多个值、坐标或其它合适的数字表示来比较位置。

在一些实施例中,增强组件230可以通过将针对空间位置和对象位置的值之间识别的差与未中阈值进行比较来确定接近度超过未中阈值。在针对未中阈值的值小于针对空间位置和对象位置之间的差的值的情况下,增强组件230可以将空间位置识别为未命中。增强组件230还可以通过识别围绕用于第一增强现实元素的空间位置的缓冲区和围绕用于关注对象的对象位置的缓冲区来确定接近度超过未中阈值。增强组件230可以确定针对第一增强现实元素的缓冲区的边缘与针对关注对象的缓冲区之间的差的值大于未中阈值的值。尽管参考指定实施例进行了描述,但是增强组件230可以通过任何合适的方法来确定接近度超过未中阈值。

在操作1144中,增强组件230通过在一段时间内修改第一增强现实元素的大小、颜色和位置中的一个或多个来修改第一增强现实元素的呈现。在一些实施例中,增强组件230以与以上关于图6和图10描述的方式相似或相同的方式来修改第一增强现实元素。增强组件230可以修改与未中阈值、关注对象的位置、游戏的主题或任何其它合适的配置中的一个或多个对应的第一增强现实元素的任何合适的方面、特性或值。

在操作1146中,增强组件230在修改第一增强现实元素的呈现之后终止第一增强现实元素的呈现。在一些实施例中,增强组件230在引起至少一个第二增强现实元素的呈现之前终止第一增强现实元素的呈现。增强组件230可以在第一增强现实元素的修改之后的指定的或预定的时间量处终止第一增强现实元素的呈现。在一些情况下,增强组件230基于修改第一增强现实元素的一个或多个方面终止第一增强现实元素的呈现。例如,在第一增强现实元素飞过用户或关注对象的肩膀的情况下,在修改第一增强现实元素的大小和颜色以将第一增强现实元素描绘为通过视界、经过关注对象的指定距离或任何其它合适的效果之后,增强组件230可以终止第一增强现实元素的呈现。

在操作1152中,增强组件230在第二时间确定空间位置相对于对象位置的接近度低于未中阈值。在一些实施例中,增强组件230可以以与以上关于操作1142所述的方式相似或相同的方式来确定接近度低于未中阈值。在确定空间位置和对象位置的接近度中,增强组件230可以比较用于空间位置的值和用于对象位置的值。可以将表示空间位置和对象位置之间的差的值确定为小于或以其它方式低于未中阈值。

在操作1154中,增强组件230在第三时间确定第一增强现实元素的终止位置。在一些实施例中,终止位置在关注对象的边界内。在一些实施例中,增强组件230基于第一增强现实元素的轨迹来确定第一增强现实元素的终止位置。增强组件230还可以基于第一增强现实元素的轨迹和关注对象的位置(例如,对象位置)来确定第一增强现实元素的终止位置。例如,在第一增强现实元素将撞击或击中关注对象的情况下,基于值低于未中阈值,增强组件230可以确定第一增强现实元素将撞击诸如面部、颈部或肩膀的关注对象的位置。在一些实施例中,增强组件230使用关注对象的竖直位置、水平位置和深度位置中的一个或多个来确定终止点。增强组件230还可以基于第一增强现实元素的轨迹、第一增强现实元素的速度、关注对象的位置以及任何其它合适的信息中的一个或多个,来确定第一增强现实元素将撞击关注对象的终止时间(例如,第三时间)。

在操作1156中,增强组件230通过将第一增强现实元素从第一状态修改为第二状态来修改第一增强现实元素的呈现。第一增强现实元素的第二状态可以在关注对象上在终止位置处保持一段时间。在一些情况下,第一状态包括如在此所述的先前操作中所呈现的第一增强现实元素的描绘。第二状态可以响应于第一增强现实元素对关注对象的模拟撞击来表示第一增强现实元素。例如,在第一增强现实元素是西红柿的图形表示的情况下,第一状态可以将西红柿描绘为完整且未损坏。第二状态可以响应于第一增强现实元素对关注对象的撞击而将西红柿描绘为压碎、挫伤或以其它方式变形的。在该示例中,可以在预定时间段(例如,1到5秒钟)、第一增强现实元素移动的时间段(例如,飞溅的西红柿沿用户的面部滑落)或任何其它合适的时间段内在图形用户界面内呈现以第二状态描绘的第一增强现实元素(例如,溅出的西红柿)。

图12描绘了示出根据一些示例实施例的用于采用描绘用户界面的对象来控制用户界面的示例方法1200的流程图。方法1200的操作可以由增强现实系统160的组件执行。在一些情况下,方法1200的某些操作可以使用方法300、700或900的一个或多个操作或者作为方法300、700或900的一个或多个操作的子操作来执行,如将在下面更详细说明的。例如,在一些实施例中,方法1200的一个或多个操作可以作为操作350的一部分,作为操作350的子操作或响应于以上关于图3描述的操作350而执行。

在操作1210中,增强组件230引起第一增强现实元素在相对于关注对象的第一方向(例如,第一轨迹)中行进的呈现。在一些实施例中,增强组件230以与以上关于图3和图8描述的方式相似或相同的方式呈现第一增强现实元素。增强组件230可以最初在图形用户界面内的第一位置处呈现第一增强现实元素。增强现实元素可以以间隔、速率或其它机制来迭代或连续地改变第一增强现实元素的位置,以将第一增强现实元素描绘为在图形用户界面内沿着行进路径或轨迹并以选定的速度或速率移动。

在操作1220中,增强组件230和运动组件240中的一个或多个确定第一增强现实元素与关注对象的区域之间的接触。在一些实施例中,可以响应于关注对象的一部分的运动来确定接触。在一些实施例中,增强组件230可以以与上面关于操作1152所述的方式相似或相同的方式来确定接触。在该实施例中,增强组件230可以基于第一增强现实元素的点和关注对象的点在指定的接近度内来确定接触。在一些实施例中,增强组件230通过识别第一增强现实元素的第一边缘和关注对象的第二边缘来确定接触。例如,第一边缘和第二边缘可以分别被识别为像素屏障、所生成的轮廓或第一增强现实元素与关注对象之间的任何其它适当定义的相交以及在图形用户界面内描绘的另一方面。增强组件230可以通过识别将在同一位置、坐标、像素或其它定义的位置处渲染第一边缘的一部分和第二边缘的一部分的位置和时间来确定接触。

在操作1230中,增强组件230引起第一增强现实元素在相对于关注对象的第二方向中行进的呈现。在一些实施例中,响应于在操作1220中确定的接触,增强组件230修改轨迹(例如,在第一方向中行进以在第二方向中行进)。例如,在第一增强现实元素被描绘为球并且关注对象是面部的情况下,增强组件230可以基于球和面部的模拟接触来修改球的轨迹(例如,朝向球)。在一些实施例中,增强组件230通过改变轨迹的一个或多个角度(例如,以相对于初始行进路径的角度弹起)来修改轨迹。增强组件230还可通过将第一增强现实元素描绘为沿着与操作1210中相同的行进路径在与行进路径的初始方向相反的方向(例如,反向路线)中行进来修改轨迹。

在操作1240中,增强组件230引起至少一个第二增强现实元素的呈现。该至少一个第二增强现实元素可以类似于第一增强现实元素(例如,另外的球、西红柿或糖果),或者可以与第一增强现实元素不同。例如,该至少一个第二增强现实元素可以是庆祝图形、总得分、总积分、分数、词语、效果(例如,烟花爆裂、火焰、雪花等),或图形用户界面内和视频流内的任何其它合适的图形元素。

在一些实施例中,操作1240包括一个或多个子操作。例如,在操作1242中,增强组件230引起增强现实元素的呈现,该增强现实元素表示第一增强现实元素与关注对象的区域之间的接触。在此类实施例中,表示接触的增强现实元素可以是接触的图形表示。在此类情况下,增强现实元素可以是暂时的或短时的,出现一小段时间并且然后停止呈现。例如,表示接触的增强现实元素可以是指示撞击的一组线、词语(例如,象声词,诸如“bonk”)或任何其它合适表示。

在操作1244中,增强组件230引起增强现实元素的呈现,该增强现实元素表示面部相对于第一增强现实元素的交互历史。在一些实施例中,增强组件230对关注对象生成效果,诸如模拟的损伤、瘀伤、血液、肿胀、转移的油漆、刮擦、凹痕或交互历史的其它表示。表示交互历史的增强现实元素可以在使用会话的持续时间内保持不变。在一些情况下,表示交互历史的增强现实元素被呈现预定或动态的时间段。在时间段是动态的情况下,时间段可以基于交互历史的长度(例如,会话已经活动的时间量)、第一增强现实元素的特征(例如,大小、形状、硬度或元素的其它方面)、关注对象与第一增强现实元素的多次交互,或第一增强现实元素、关注对象和用户会话中一个或多个的任何其它合适的方面或特征。

模块、组件和逻辑

在此将某些实施例描述为包括逻辑或多个组件、模块或机制。组件可以构成硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例实施例中,计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的硬件组件(例如,至少一个硬件处理器、处理器或一组处理器)由软件(例如,应用或应用部分)配置为用于执行如在此所述的某些操作的硬件组件。

在一些实施例中,硬件组件以机械、电子或其任何合适的组合实现。例如,硬件组件可以包括永久配置为执行某些操作的专用电路或逻辑。例如,硬件组件可以是专用处理器,诸如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件组件还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件组件可以包括包含在通用处理器或其它可编程处理器内的软件。可以理解,可以通过成本和时间考虑来驱动机械地在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中实现硬件组件的决定。

因此,短语“硬件组件”应该被理解为包含有形实体,是物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)从而以某个方式操作或执行在此所述的某些操作的实体。如在此所使用的,“硬件实现的组件”指的是硬件组件。考虑其中临时配置(例如,编程)硬件组件的实施例,不需要在任何一个时刻配置或实例化硬件组件中的每一个硬件组件。例如,在硬件组件包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为相应不同的专用处理器(例如,包括不同的硬件组件)。因此,软件可以配置特定的一个或多个处理器,例如,在一个时刻构成特定的硬件组件,并在不同的时刻构成不同的硬件组件。

硬件组件可以向其它硬件组件提供信息并从其接收信息。因此,所描述的硬件组件可以被视为通信地耦接。在同时存在多个硬件组件的情况下,可以通过在两个或更多个硬件组件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,可以例如通过存储和取得多个硬件组件可访问的存储器结构中的信息来实现这些硬件组件之间的通信。例如,一个硬件组件执行操作并将该操作的输出存储在与其通信耦接的存储器装置中。然后,另一硬件组件可以稍后访问存储器装置以取得和处理存储的输出。硬件组件还可以发起与输入或输出装置的通信,并且可以在资源(例如,信息集合)上操作。

在此描述的示例方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的处理器来执行。无论是临时配置还是永久配置,这种处理器构成处理器实现的组件,该组件操作以执行在此所述的操作或功能。如在此所使用的,“处理器实现的组件”指的是使用处理器实现的硬件组件。

类似地,在此描述的方法可以至少部分地由处理器实现,其中特定的一个处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由处理器或处理器实现的组件执行。此外,处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(saas)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)和经由适当的接口(例如,应用程序接口(api))来访问。

某些操作的性能可在处理器之间分配,不仅驻留在单个机器内,还横跨多个机器部署。在一些示例实施例中,处理器或处理器实现的组件位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其它示例实施例中,处理器或处理器实现的组件横跨多个地理位置分布。

应用

图13示出与一些实施例一致的执行移动操作系统(例如,iostm、androidtmphone或其它移动操作系统)的示例移动装置1300。在一个实施例中,移动装置1300包括可操作来从用户1302接收触知数据的触摸屏。例如,用户1302可物理地触摸1304移动装置1300,并且响应于触摸1304,移动装置1300可以确定触知数据,诸如触摸位置、触摸力或手势动作。在各种示例实施例中,移动装置1300显示主屏幕1306(例如,iostm上的springboard),其可操作以启动应用或以其它方式管理移动装置1300的各个方面。在一些示例实施例中,主屏幕1306提供诸如电池寿命、连接性或其它硬件状态的状态信息。用户1302可以通过触摸由相应的用户界面元素占据的区域来激活用户界面元素。以该方式,用户1302与移动装置1300的应用交互。例如,触摸主屏幕1306中包括的特定图标占据的区域导致启动与特定图标对应的应用。

如图13中所示,移动装置1300可以包括成像装置1308。成像装置1308可以是相机或耦接到能够采集视频流或一个或多个连续图像的移动装置1300的任何其它装置。成像装置1308可以由增强现实系统160或可选择的用户界面元素来触发,以启动对视频流或图像的连续体的采集,并将视频流或图像的连续体传递给增强现实系统160以根据在本公开中描述的一个或多个方法来处理。

可以在移动装置1300上执行许多种类的应用(也称为“应用软件”),诸如本机应用(例如,在iostm上运行的以objective-c、swift或另一种合适的语言编程的应用,或在androidtm上运行的以java编程的应用)、移动web应用(例如,以超文本标记语言-5(html5)编写的应用)或混合应用(例如启动html5会话的本机壳应用)。例如,移动装置900包括消息传递应用软件、音频录制应用软件、相机应用软件、书籍阅读器应用软件、媒体应用软件、健身应用软件、文件管理应用软件、位置应用软件、浏览器应用软件、设置应用软件、联系人应用软件、电话呼叫应用软件或其它应用软件(例如,游戏应用软件、社交网络应用软件、生物度量监视应用软件)。在另一示例中,移动装置1300包括诸如的社交消息传送应用软件1310,其与一些实施例一致,允许用户交换包括媒体内容的短时消息。在该示例中,社交消息传送应用软件1310可以合并在此描述的实施例的各方面。例如,在一些实施例中,社交消息传递应用包括由用户社交消息传递应用创建的短时的媒体图库。这些图库可以包括用户张贴并且可由用户的联系人(例如,“朋友”)查看的视频或图片。可替代地,公共图库可由社交消息传递应用的管理员创建,该应用包括来自应用的任何用户(并且可由所有用户访问)的媒体。在又一个实施例中,社交消息传递应用可以包括“杂志”特征,其包括发布者在社交消息传递应用的平台上生成并可由任何用户访问的文章和其它内容。这些环境或平台中的任何一个都可以用来实现本发明主题的概念。

在一些实施例中,短时消息传送系统可以包括具有短时视频剪辑或图像的消息,该短时视频剪辑或图像在诸如观看时间或观看完成的删除触发事件之后被删除。在此类实施例中,实现增强现实系统160的装置可以允许在控制交互时采用由图像采集装置采集并在图形用户界面内呈现的对象来控制图形用户界面或其中所描绘的元素。增强现实系统160可以在生成短时消息的同时使得控制图形用户界面,并使得使用短时消息系统将短时消息传输至另一装置。

软件架构

图14是示出可以安装在上述装置上的软件1402的架构的框图1400。图14仅仅是软件架构的非限制性示例,并且将理解可以实现许多其它架构来促进在此所述的功能。在各种实施例中,软件1402由诸如图15的机器1500的硬件来实现,机器1500包括处理器1510、存储器1530和i/o组件1550。在该示例架构中,软件1402可以被概念化为层的堆栈,其中每一个层可以提供特定的功能。例如,软件1402包括诸如操作系统1404、库1406、框架1408和应用1410的层。操作上,与一些实施例一致,应用1410通过软件堆栈调用应用程序编程接口(api)调用1412,并响应于api调用1412接收消息1414。

在各种实施方式中,操作系统1404管理硬件资源并提供公共服务。操作系统1404包括例如内核1420、服务1422和驱动器1424。与一些实施例一致,内核1420作为硬件与其它软件层之间的抽象层。例如,内核1420提供了存储器管理、处理器管理(例如调度)、组件管理、网络连接和安全设置等功能。服务1422可以为其它软件层提供其它公共服务。根据一些实施例,驱动器1424负责控制底层硬件或与底层硬件接口连接。例如,驱动器1424可以包括显示器驱动器、相机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等。

在一些实施例中,库1406提供由应用1410利用的低级通用基础设施。库1406可以包括系统库1430(例如,c标准库),其可以提供诸如存储器分配函数、字符串操作函数、数学函数等的函数。此外,库1406可以包括api库1432,诸如媒体库(例如,支持各种媒体格式(诸如运动图像专家组-4(mpeg4)、高级视频编码(h.264或avc)、运动图像专家组层-3(mp3)、高级音频编码(aac)、自适应多速率(amr)音频编解码器、联合图像专家组(jpeg或jpg)或便携式网络图形(png))的呈现和操纵的库)、图形库(例如,用于在显示器上的图形内容中呈现二维(2d)和三维(3d)的opengl框架)、数据库库(例如,提供各种关系数据库功能的sqlite)、web库(例如,提供网页浏览功能的webkit)等。库1406同样可以包括各种各样的其它库1434,以向应用1410提供许多其它api。

根据一些实施例,框架1408提供可由应用1410利用的高级公共架构。例如,框架1408提供各种图形用户界面(gui)功能、高级别资源管理、高级位置节点等。框架1408可以提供可由应用1410利用的其它广泛范围的api,其中的一些可以特定于特定操作系统或平台。

在示例实施例中,应用1410包括主页应用1450、联系人应用1452、浏览器应用1454、书籍阅读器应用1456、位置应用1458、媒体应用1460、消息传递应用1462、游戏应用1464以及诸如第三方应用1466的其它广泛分类的应用。根据一些实施例,应用1410是执行程序中定义的功能的程序。可以利用各种编程语言来创建以各种方式构造的应用1410,诸如面向对象的编程语言(例如,objective-c、java或c++)或过程编程语言(例如,c或汇编语言)。在具体示例中,第三方应用1466(例如,由特定平台的供应商之外的实体使用androidtm或iostm软件开发工具包(sdk)开发的应用)可以是在移动操作系统(诸如iostm、androidtmphone或其它移动操作系统)上运行的移动软件。在该示例中,第三方应用1466可以调用由操作系统1404提供的api调用1412以便于执行在此描述的功能。

示例机器架构和机器可读介质

图15是示出根据一些实施例能够从机器可读介质(例如,非暂态机器可读存储介质)读取指令(例如处理器可执行指令)并执行在此讨论的任何方法的机器1500的组件的框图。具体地,图15示出了以计算机系统的示例形式的机器1500的示意图,在该计算机系统内可以执行用于使机器1500执行在此讨论的任何方法的指令1516(例如,软件、程序、应用、小程序、应用程序或其它可执行代码)。在替代实施例中,机器1500作为独立装置操作或者可以耦接(例如,网络连接)到其它机器。在联网部署中,机器1500可以以服务器-客户端网络环境中的服务器机器或客户端机器的能力操作,或者作为对等(或分布式)网络环境中的对等机器。机器1500可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能手机、移动装置、可穿戴装置(例如,智能手表)、智能家居装置(例如,智能家电)、其它智能装置、网络装置、网络路由器、网络交换机、网络桥接器、或者连续或以其它方式指定机器1500将采取的动作的能够执行指令1516的任何机器。此外,虽然只示出单个机器1500,但是术语“机器”同样可被认为包括单独或联合执行指令1516以执行在此所讨论的任何方法的机器1500的集合。

在各种实施例中,机器1500包括处理器1510、存储器1530以及可被配置成经由总线1502彼此通信的i/o组件1550。在示例实施例中,处理器1510(例如,中央处理单元(cpu)、简化指令集计算(risc)处理器、复合指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)、另一个处理器或其任何合适的组合)包括例如可以执行指令1516的处理器1512和处理器1514。术语“处理器”旨在包括多核处理器,该多核处理器可以包括可以同时执行指令1516的两个以上独立处理器(同样称为“核”)。尽管图15示出了多个处理器1510,但是机器1500可以包括单个具有单核的处理器、单个具有多核的处理器(例如,多核处理器)、多个具有单核的处理器、多个具有多核的处理器或其任何组合。

根据一些实施例,存储器1530包括主存储器1532、静态存储器1534和经由总线1502可被处理器1510访问的存储单元1536。存储单元1536可以包括机器可读介质1538,在该机器可读介质1538上存储了体现在此所述的任何方法或功能的指令1516。指令1516同样可以在由机器1500的其执行期间完全或至少部分地驻留在主存储器1532内、静态存储器1534内、处理器1510中的至少一个内(例如,在处理器的高速缓冲存储器内)或任何合适的组合。因此,在各种实施例中,主存储器1532、静态存储器1534和处理器1510被认为是机器可读介质1538。

如在此所使用的,术语“存储器”是指能够临时或永久地存储数据的机器可读介质1538,并且可以认为包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓存、闪存和高速缓存。虽然机器可读介质1538在示例实施例中被示出为单个介质,但术语“机器可读介质”应当被认为包括能够存储指令1516的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”同样可被视为包括能够存储指令(例如,指令1516)用于由机器(例如,机器1500)执行的任何介质或多个介质的组合,使得指令在由机器1500的处理器(例如,处理器1510)执行时使机器1500执行在此描述的任何方法。因此,“机器可读介质”是指单个存储设备或装置,以及包括多个存储设备或装置的“基于云”的存储系统或存储网络。因此,术语“机器可读介质”可被视为包括但不限于以固态存储器(例如,闪存)、光学介质、磁性介质、其它非易失性存储器(例如,可擦除可编程只读存储器(eprom))或其任何合适的组合的形式的数据存储库。术语“机器可读介质”特别排除非法定信号本身。

i/o组件1550包括用于接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等的各种各样的组件。通常,可理解的是i/o组件1550可以包括图15中未示出的许多其它组件。i/o组件1550根据功能被分组,仅用于简化以下讨论,并且分组决不是限制性的。在各种示例实施例中,i/o组件1550包括输出组件1552和输入组件1554。输出组件1552包括视觉组件(例如,显示器,诸如等离子体显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt))、听觉组件(例如扬声器)、触觉组件(例如振动电动机)、其它信号发生器等。输入组件1554包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指示仪器)、触知输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏、或其它触知输入组件)、音频输入组件(例如,麦克风)等。

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

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

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

传输介质

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

在示例实施例中,经由网络接口装置(例如,在通信组件1564中包括的网络接口组件)使用传输介质通过网络1580发送或接收指令1516,并且利用多个公知的传输协议(例如,超文本传输协议(http))中的任何一个。类似地,在其它示例实施例中,使用传输介质经由耦接1572(例如,对等耦接)向装置1570发送或接收指令1516。术语“传输介质”可被视为包括能够存储、编码或携带由机器1500执行的指令1516的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以便于这种软件的通信实现。

此外,因为机器可读介质1538不体现传播信号,所以机器可读介质1538可以是非暂态的(换句话说,不具有任何短时信号)。然而,将机器可读介质1538标记为“非暂态”不应被解释为意味着介质不能移动。介质应该被认为是可从一个物理位置传送到另一物理位置。另外,由于机器可读介质1538是有形的,因此介质可以被认为是机器可读装置。

语言

在整个说明书中,多个实例可以实现被描述为单个实例的组件、操作或结构。虽然将方法的单独操作示出和描述为单独的操作,但可以同时执行单独的操作,并且不需要以所示顺序执行操作。作为示例配置中的单独组件呈现的结构和功能可以被实现为组合的结构或组件。类似地,作为单个组件呈现的结构和功能可以被实现为分离的多个组件。这些和其它变化、修改、添加和改进落入本文主题的范围内。

虽然已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的此类实施例在此可以单独地或集体地由术语“发明”指代,这仅仅为了方便,如果事实上公开了多于一个则不旨在将本申请的范围限制于任何单个公开内容或发明构思。

在此示出的实施例足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用和从中导出其它实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被认为是限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。

如在此所使用的,术语“或”可以以包含或排除的方式来解释。此外,可以为在此所述的资源、操作或结构提供多个实例作为单个实例。此外,各种资源、操作、组件、引擎和数据存储之间的边界是一定程度上任意的,并且在特定说明性配置的上下文中示出了特定的操作。可以设想功能的其它分配,并且这些其它分配可以落入本公开的各种实施例的范围内。通常,作为示例配置中的分离的资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为分离的资源。这些和其它变化、修改、添加和改进落入由所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的而不是限制性的。

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