一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

实时增强现实装扮的制作方法

2022-02-24 14:20:44 来源:中国专利 TAG:

实时增强现实装扮
1.优先权要求
2.本技术要求于2019年6月28日提交的美国专利申请序列号16/457,541的优先权,该申请通过引用整体并入本文。
技术领域
3.本公开的实施例大体上涉及增强现实(ar)媒体,并且更具体地,涉及生成和呈现ar媒体的系统。


背景技术:

4.增强现实(ar)是真实世界环境的交互式体验,其中驻留在真实世界环境中的对象通过计算机生成的感知信息得到增强,有时跨越多个感官模态。叠加的感官信息(即媒体内容)可以是建设性的(即对自然环境的添加)或破坏性的(即对自然环境的掩饰),并且与物理世界无缝交织,使得其被感知为真实世界环境的沉浸式方面。
附图说明
5.为了轻松识别任何特定元素或行为的讨论,参考编号中的一个或多个最高位是指首次引入该元素的图编号。
6.图1是示出根据一些实施例的用于通过网络交换数据(例如,消息和相关联内容)的示例消息传递系统的框图,其中消息传递系统包括ar装扮系统。
7.图2是示出根据示例实施例的关于消息传递系统的进一步细节的框图。
8.图3是示出根据某些示例实施例的ar装扮系统的各种模块的框图。
9.图4是示出根据某些示例实施例的用于在客户端设备处呈现ar内容的方法的流程图。
10.图5是示出根据某些示例实施例的用于在客户端设备处呈现ar内容的方法的流程图。
11.图6是示出根据某些示例实施例的用于生成ar内容的方法的流程图。
12.图7是示出根据某些示例实施例的在图形用户界面中呈现的ar内容的图。
13.图8是描绘根据某些示例实施例的用于呈现ar内容的地理围栏的图。
14.图9是示出可结合在此描述的各种硬件架构使用并用于实现各种实施例的代表性软件架构的框图。
15.图10是示出根据一些示例实施例的能够从机器可读介质(例如,机器可读存储介质)读取指令并执行在此讨论的任何一种或多种方法的机器的组件的框图。
具体实施方式
16.如上所述,ar是真实世界环境的交互式体验,其中驻留在真实世界环境中的对象可以通过添加计算机生成的感知信息来增强,有时跨越多个感官模态。叠加的感官信息(即
媒体内容)可以通过添加媒体内容而成为对自然环境的添加,或者通过掩盖自然环境对自然环境是破坏性的。因此,ar媒体与物理世界无缝交织,使得其被感知为真实世界环境的沉浸式方面。
17.根据在此描述的一些实施例,ar装扮系统可以是或包括可操作以计算、处理、存储、显示、生成、通信或应用用于执行操作的各种形式的数据的任何工具或工具的集合,该操作包括:导致在第一客户端设备处显示图像数据的呈现;基于来自第二客户端设备的位置数据来检测靠近第一客户端设备的第二客户端设备,第二客户端设备与包括用户配置文件数据的用户配置文件相关联;基于来自客户端设备的位置数据,来识别在图像数据的呈现内的位置处的对象的显示,对象的显示包括图像特征;访问来自与第二客户端设备相关联的用户配置文件的用户配置文件数据,用户配置文件数据包括ar内容;以及至少基于在图像数据的呈现内对象的位置,来在第一客户端设备处的图像数据的呈现内呈现ar内容。
18.在一些实施例中,在图像数据的呈现内呈现ar内容可以包括:基于对象的显示的图像特征将ar内容应用于对象。例如,根据某些实施例,ar内容可以包括数字“装扮”或“皮肤”,其中数字装扮被应用于客户端设备处的图像数据呈现内的人的显示。因此,从客户端设备的显示的角度来看,人可能看起来穿着数字装扮,使得数字装扮在图像数据的呈现内跟踪人的运动和位置。
19.在一些实施例中,ar内容可以包括修改对象的显示的特性和属性的ar内容。例如,ar内容可以通过缩放对象显示的大小、改变对象显示的比例以及改变对象显示的特征来改变对象的显示。作为说明性示例,在“对象”包括人的情况下,ar内容可能会改变人的显示比例,使得人的头部看起来比实际大得多或小得多,或者人的头发和皮肤是不同的颜色。
20.在一些实施例中,可以基于来自用户配置文件的用户配置文件数据以及与位置相关联的多个位置属性来生成与第二客户端设备相关联的用户配置文件的ar内容。例如,位置可以与地理围栏相关联。响应于检测到地理围栏内的客户端设备,ar装扮系统访问与客户端设备相关联的用户配置文件以取得用户配置文件数据(例如,用户偏好、用户人口统计数据、用户属性),并基于用户配置文件数据和与地理围栏相关联的一个或多个预定义条件生成ar内容。例如,条件可以基于用户属性(即,“用户属性a”与“媒体特征a”相关)定义媒体内容的特征。ar内容通过ar装扮系统与客户端设备的用户配置文件相关联。
21.在在此讨论的某些示例实施例中,ar装扮系统可以为了对象检测的目的,并且更具体地,为了检测数字图像和视频中对象的语义特征,而采用计算机视觉和图像处理技术。因此,ar装扮系统可以检测图像数据中描绘的对象的一个或多个语义特征并且基于对象的至少一个或多个语义特征生成ar装扮。
22.在一些实施例中,与客户端设备相关联的用户配置文件可以包括定义识别特征(例如图像特征)的用户配置文件信息。例如,图像数据的呈现内的对象的显示可以具有对应的图像特征。响应于检测到对象,ar装扮系统可以分析对象的图像特征以便识别与对象对应的用户配置文件。图像特征可以例如定义对象的大小、面部识别特征以及身体比例。
23.在一些实施例中,响应于检测到地理围栏内的客户端设备,ar装扮系统可以导致在客户端设备处显示请求,其中该请求包括一组ar装扮和ar装扮选项。客户端设备的用户可以提供选择ar装扮和一个或多个ar装扮选项的输入,以便生成ar装扮并将其与关联于该客户端设备的用户账户相关联。
24.从第一客户端设备的角度考虑以下说明性示例。第一客户端设备的用户可以在第一客户端设备的界面内显示由第一客户端设备的相机捕获的图像数据。与第二用户相关联的第二客户端设备由靠近第一客户端设备的ar装扮系统(例如,由地理围栏)检测到。响应于检测到靠近第一客户端设备的第二客户端设备,ar装扮系统从第二客户端设备访问位置数据。基于图像数据和来自第二客户端设备的位置数据,ar装扮系统然后可以基于图像数据的呈现内对象的显示的图像特征来检测与第二客户端设备对应的对象。
25.然后,ar装扮系统可以基于与第二用户设备相关联的用户配置文件将ar装扮应用到对象。例如,ar装扮可以是宇航服,使得第二用户穿着宇航服出现在第一客户端设备处的图像数据的呈现中。
26.图1是示出用于通过网络交换数据(例如,消息和相关联的内容)的示例消息传递系统100的框图。消息传递系统100包括多个客户端设备102,每个客户端设备托管包括消息传递客户端应用104的多个应用。每个消息传递客户端应用104经由网络106(例如,互联网)通信地耦合到消息传递客户端应用104的其它实例和消息传递服务器系统108。
27.因此,每个消息传递客户端应用104能够经由网络106与另一个消息传递客户端应用104以及与消息传递服务器系统108通信和交换数据。在消息传递客户端应用104之间以及在消息传递客户端应用104和消息传递服务器系统108之间交换的数据包括功能(例如,调用功能的命令)以及有效载荷数据(例如,文本、音频、视频或其它多媒体数据)。
28.消息传递服务器系统108经由网络106向具体消息传递客户端应用104提供服务器端功能。虽然消息传递系统100的某些功能在此被描述为由消息传递客户端应用104或由消息传递服务器系统108来执行,但是可以理解,消息传递客户端应用104或消息传递服务器系统108内的某些功能的位置是设计选择。例如,技术上优选的是在消息传递服务器系统108内初始部署某些技术和功能,但稍后在客户端设备102具有足够的处理能力的情况下将该技术和功能迁移到消息传递客户端应用104。
29.消息传递服务器系统108支持提供给消息传递客户端应用104的各种服务和操作。此类操作包括向由消息传递客户端应用104发送数据、从消息传递客户端应用104接收数据以及处理由消息传递客户端应用104生成的数据。在一些实施例中,作为示例,该数据包括消息内容、客户端设备信息、地理位置信息、媒体注释和覆盖、消息内容持久性条件、社交网络信息和实时事件信息。在其它实施例中,使用其它数据。消息传递系统100内的数据交换通过经由消息传递客户端应用104的gui可用的功能来调用和控制。
30.现在具体转到消息传递服务器系统108,应用程序接口(api)服务器110耦接到应用服务器112并向应用服务器112提供编程接口。应用服务器112通信地耦接到数据库服务器118,该数据库服务器118便于访问数据库120,在该数据库120中存储与由应用服务器112处理的消息相关联的数据。
31.具体地处理应用程序接口(api)服务器110,该服务器在客户端设备102和应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(api)服务器110提供可由消息传递客户端应用104调用或查询的一组接口(例如,例程和协议),以便调用应用服务器112的功能。应用程序接口(api)服务器110显现由应用服务器112支持的各种功能,各种功能包括账户注册;登录功能;经由应用服务器112从具体消息传递客户端应用104向另一个消息传递客户端应用104发送消息;从消息传递客户端应用104向
消息传递服务器应用114发送媒体文件(例如,图像或视频),并且用于由另一消息传递客户端应用104的可能访问;设置媒体数据的集合(例如,故事);取得客户端设备102的用户的朋友列表;取得此类集合;取得消息和内容;对社交图添加和删除朋友;朋友在社交图内的定位;打开和应用事件(例如,与消息传递客户端应用104有关的事件)。
32.应用服务器112托管多个应用和子系统,包括消息传递服务器应用114、图像处理系统116、社交网络系统122以及ar装扮系统124。消息传递服务器应用114实现多种消息处理技术和功能,特别是与从消息传递客户端应用104的多个实例接收的消息中包括的内容(例如,文本和多媒体内容)的聚合和其它处理有关的技术和功能。如将进一步详细描述的,来自多个源的文本和媒体内容可以聚合成内容集合(例如,称为故事、图库(gallery)或集合)。然后,由消息传递服务器应用114使这些集合对于消息传递客户端应用104可用。鉴于用于其它处理器和存储器密集的数据处理的硬件要求,还可以由消息传递服务器应用114在服务器端执行此类处理。
33.应用服务器112还包括图像处理系统116,该图像处理系统116专用于执行各种图像处理操作,典型地执行针对在消息传递服务器应用114处的消息的有效载荷内接收的图像或视频的各种图像处理操作。
34.社交网络系统122支持各种社交网络功能服务,并使这些功能服务对于消息传递服务器应用114可用。为此,社交网络系统122维护和访问数据库120内的实体图304。由社交网络系统122支持的功能和服务的示例包括消息传递系统100中的与具体用户具有关系或具体用户“关注”的其它用户的标识,以及具体用户的其它实体和兴趣的标识。
35.应用服务器112通信地耦合到数据库服务器118,该数据库服务器118促进对数据库120的访问,在该数据库120中存储有与由消息传递服务器应用114处理的消息相关联的数据。
36.图2是示出根据示例实施例的关于消息传递系统100的进一步细节的框图。具体地,消息传递系统100被示为包括消息传递客户端应用104和应用服务器112,它们进而体现一些子系统,即短时定时器系统202、集合管理系统204和注释系统206。
37.短时定时器系统202负责强制执行对消息传递客户端应用104和消息传递服务器应用114允许的内容的暂时访问。为此,短时定时器系统202结合了多个定时器,该定时器基于持续时间和与消息、消息集合或图形元素相关联的显示参数,经由消息传递客户端应用104选择性地显示和允许访问消息和相关联内容。下面提供关于短时定时器系统202的操作的进一步细节。
38.集合管理系统204负责管理媒体集合(例如,包括文本、图像视频和音频数据集合的媒体集合)。在一些示例中,内容集合(例如,消息,包括图像、视频、文本和音频)可以被组织成“事件图库”或“事件故事”。此类集合可以在指定的时间段内(诸如与内容相关的事件的持续时间)可用。例如,与音乐会有关的内容可以在该音乐会持续时间内作为“故事”提供。集合管理系统204还可以负责发布图标,该图标向消息传递客户端应用104的用户界面提供特定集合的存在的通知。
39.集合管理系统204另外包括策展接口208,该策展接口208允许集合管理者管理和策展特定的内容集合。例如,策展接口208使事件组织者能够策展与特定事件有关的内容集合(例如,删除不适当的内容或冗余消息)。此外,集合管理系统204采用机器视觉(或图像识
别技术)和内容规则来自动策划内容集合。在某些实施例中,可以向用户支付补偿以将用户生成的内容包括到集合中。在此类情况下,策展接口208操作以自动向此类用户支付使用他们的内容的费用。
40.注释系统206提供使用户能够注释或以其它方式修改或编辑媒体内容的各种功能,诸如由用户接收的要转发或重新分发给一个或多个接收者的用户支持内容。例如,注释系统206为消息传递系统100处理的消息提供与媒体覆盖的生成和发布相关的功能。注释系统206基于客户端设备102的地理位置可操作地向消息传递客户端应用104提供媒体覆盖。在另一个示例中,注释系统206基于其它信息(诸如客户端设备102的用户的社交网络信息),可操作地向消息传递客户端应用104提供媒体覆盖。媒体覆盖可以包括音频和视觉内容和视觉效果,以及增强现实覆盖。音频和视觉内容的示例包括图片、文本、徽标、动画和声音效果,以及动画面部模型、图像过滤器和增强现实媒体内容。视觉效果的示例包括颜色覆盖。音频和视觉内容或视觉效果可以应用于客户端设备102处的媒体内容项(例如,照片或视频或实况流)。例如,媒体覆盖包括可以覆盖在由客户端设备102拍摄的照片之上的文本。在另一示例中,媒体覆盖包括位置覆盖的标识(例如,威尼斯海滩)、现场事件的名称或商家覆盖的名称(例如,海滩咖啡馆)。在另一个示例中,注释系统206使用客户端设备102的地理位置来识别媒体覆盖,该媒体覆盖包括在客户端设备102的地理位置处的商家的名称。媒体覆盖可以包括与该商家相关联的其它标记。媒体覆盖可以存储在数据库120中并通过数据库服务器118访问。
41.在一个示例实施例中,注释系统206提供基于用户的发布平台,该平台使用户能够选择地图上的地理位置,并上传与所选地理位置相关联的内容。用户还可以指定应该向其他用户提供特定媒体覆盖的情况。注释系统206生成包括上传的内容并将上传的内容与选择的地理位置相关联的媒体覆盖。
42.在另一示例实施例中,注释系统206提供基于商家的发布平台,该基于商家的发布平台使商家能够选择与地理位置相关联的特定媒体覆盖。例如,注释系统206将最高出价商家的媒体覆盖与对应的地理位置相关联达预定义的时间量。
43.图3是根据某些示例实施例示出ar装扮系统124的组件的框图,该组件将ar装扮系统124配置为执行操作以检测第一客户端设备102处的图像数据的呈现内的人,识别与图像数据的呈现内检测到的人对应的用户配置文件,访问与用户配置文件相关联的ar内容,并且在第一客户端设备102处的图像数据的呈现内将ar内容呈现为ar装扮。
44.ar装扮系统124被示为包括图像模块302、机器视觉模块304、ar模块306和位置模块308,所有这些模块都被配置为彼此通信(例如,经由总线、共享存储器或开关)。这些模块中的任何一个或多个可以使用一个或多个处理器310来实现(例如,通过配置此类一个或多个处理器来执行针对该模块描述的功能),并且因此可以包括一个或多个处理器310。
45.所描述的任何一个或多个模块可以单独使用硬件(例如,机器的一个或多个处理器310)或硬件和软件的组合来实现。例如,描述的ar装扮系统124的任何模块可以物理地包括处理器310中的一个或多个(例如,机器的一个或多个处理器的子集或其中的子集)的布置,该处理器被配置为执行在此描述的用于该模块的操作。作为另一示例,ar装扮系统124的任何模块可包括软件、硬件或两者,其配置一个或多个处理器310(例如,在机器的一个或多个处理器之中)的布置以执行在此所述的用于该模块的操作。因此,ar装扮系统124的不
同模块可包括并配置此类处理器310的不同布置或在不同时间点的此类处理器310的单一布置。此外,ar装扮系统124的任何两个或更多个模块可以组合成单个模块,并且在此针对单个模块描述的功能可以在多个模块之间细分。此外,根据各种示例实施例,在此描述为在单个机器、数据库或设备内实现的模块可以分布在多个机器、数据库或设备上。
46.图4是示出根据某些示例实施例的用于在客户端设备102处呈现ar内容的方法400的流程图。方法400的操作可以由以上关于图3描述的模块来执行。如图4中所示,方法400包括一个或多个操作402、404、406、408和410。
47.在操作402处,图像模块302导致在第一客户端设备102处显示图像数据的呈现。图像数据可以包括由与第一客户端设备102相关联的相机捕获的图像和视频数据的数据流。例如,第一客户端设备102可以包括被配置为生成和流式传输图像数据的相机。
48.在操作404处,位置模块308基于来自第一客户端设备102和第二客户端设备102的位置数据来检测靠近第一客户端设备102的第二客户端设备102。例如,在一些实施例中,响应于图像模块302导致在第一客户端设备102处显示图像数据的呈现,位置模块308可以基于来自第一客户端设备102的位置数据识别靠近第一客户端设备102的一个或多个客户端设备。因此,位置模块308可以基于距第一客户端设备102的位置的阈值距离来识别一个或多个客户端设备,其中阈值距离基于用户偏好或基于地理围栏来定义。
49.在操作406处,机器视觉模块304基于来自第二客户端设备102的位置数据,识别在第一客户端设备102处的图像数据的呈现内的位置处的对象的显示,其中对象的显示包括一组图像特征。
50.例如,机器视觉模块304可以从第一客户端设备102和第二客户端设备102接收位置数据,其中位置数据识别第一和第二客户端设备的位置。例如,机器视觉模块304识别在第一客户端设备102处的图像数据的呈现内的一个或多个对象,并且使用来自第一客户端设备102的位置数据作为参考点,基于来自第二客户端设备102的位置数据,将一个或多个对象中的对象与第二客户端设备102相关联。
51.在一些实施例中,机器视觉模块304可以基于对象的图像特征来识别与第二客户端设备102对应的对象。例如,第二客户端设备102可以与用户配置文件相关联,其中用户配置文件包括用户配置文件数据,该用户配置文件数据包括识别特征(即,图像数据)。在检测到在第一客户端设备102处的图像数据的呈现内的对象时,机器视觉模块304可以基于图像特征查询数据库,诸如数据库120,以便识别与第二客户端设备102相关联的用户配置文件。图像特征可以例如包括面部识别特征以及身体比例。
52.在操作408处,响应于机器视觉模块304检测到与第二客户端设备102对应的对象,ar模块306访问与第二客户端设备102相关联的用户配置文件。与第二客户端设备102相关联的用户配置文件可以包括ar内容,以及可以定义ar内容的一组用户属性和偏好。
53.在一些实施例中,用户可以基于用户输入生成ar内容并将其与用户配置文件相关联。例如,ar装扮系统124可以向用户呈现ar内容配置界面,其中ar内容配置界面包括定义ar内容的一组选择。
54.在一些实施例中,ar模块306可以基于与用户配置文件相关联的用户属性和用户偏好即时地并且实时地生成ar内容。例如,ar内容可以基于一个或多个用户偏好、用户属性和上下文数据(例如,年龄、位置、时间或日期、季节、性别、头发颜色、眼睛颜色等)生成。
55.在操作410处,ar模块306基于在图像数据的呈现内与第二客户端设备102对应的对象的位置,以及对象的显示的图像特征,来在第一客户端设备102处的图像数据的呈现内呈现与第二客户端设备102相关联的ar内容。
56.图5是示出根据某些示例实施例的用于在客户端设备102处呈现ar内容的方法500的流程图。方法500的操作可以由以上关于图3描述的模块来执行。如图5中所示,方法500包括一个或多个操作502、504和506。根据某些实施例,该方法的操作500可以作为图4中描绘的方法400的子例程来执行。
57.在操作502处,定位模块308提供基于的地理围栏,其中地理围栏包括边界。
58.在一些实施例中,地理围栏的边界可以基于与第一客户端设备102的用户配置文件相关联的一组预定义用户偏好。例如,客户端设备102的用户可以基于阈值距离来定义边界。在一些实施例中,地理围栏的边界可由ar装扮系统124的管理员配置。
59.在一些实施例中,地理围栏可以基于第一客户端设备102的位置生成,使得地理围栏包括以第一客户端设备102作为其中心点的边界。因此,在此类实施例中,地理围栏随着第一客户端设备102“移动”。
60.在操作504处,定位模块308检测在地理围栏的边界内的第二客户端设备102。例如,基于来自第二客户端设备102的位置数据,位置模块308可以确定第二客户端设备102在地理围栏内。
61.在操作506处,响应于检测到在地理围栏的边界内的第二客户端设备102,ar模块306从与第二客户端设备102相关联的用户配置文件访问ar内容。例如,ar内容可以包括将被应用到与第二客户端设备102对应的对象(即,人)的显示的ar装扮或皮肤。因此,ar内容可以包括一组图像特征的标识,其中该组图像特征与ar内容的一个或多个节点对应,使得ar模块306可以基于该组图像特征的位置在图像数据的呈现内显示ar内容。
62.图6是示出根据某些示例实施例的用于生成ar内容的方法600的流程图。方法600的操作可以由以上关于图3描述的模块来执行。如图6中所示,方法600包括一个或多个操作602、604和606。根据某些实施例,该方法的操作600可以作为图4和5中描绘的方法400和500的子例程来执行。
63.在操作602处,位置模块308检测地理围栏(诸如图8的地理围栏805)的边界内的第二客户端设备102。
64.响应于检测到地理围栏的边界内的第二客户端设备102,ar模块306生成ar内容。在一些实施例中,可以基于与第二客户端设备102相关联的用户配置文件数据以及与地理围栏相关联的一个或多个属性来生成ar内容。
65.例如,用户配置文件数据可以包括定义ar内容的属性的用户属性和用户偏好。类似地,地理围栏本身可以与对应于用户偏好和用户属性的一个或多个ar内容属性相关联。例如,响应于检测到地理围栏内的第二客户端设备102,ar模块306访问与第二客户端设备相关联的用户配置文件并取得多个用户属性。
66.ar模块306然后可以访问与地理围栏相关联的媒体库,其中媒体库包括与用户属性相关的ar内容属性的集合。ar模块306然后可以基于用户属性为与第二客户端设备102相关联的用户配置文件生成ar内容。在操作606处,ar模块306将ar内容与关联于第二客户端设备102的用户配置文件相关联。
67.图7是示出根据图4、5和6中描绘的方法400、500和600以及根据某些示例实施例在界面中呈现的ar内容715的图700。
68.如方法400的操作402中所讨论的,ar装扮系统124的图像模块302导致在第一客户端设备102处显示图像数据705的呈现。图像数据可以包括由与第一客户端设备102相关联的相机捕获的图像和视频数据的数据流。
69.响应于第一客户端设备102处显示图像数据705的呈现,ar装扮系统124的机器视觉模块304识别在第一客户端设备102处图像数据705的呈现内的位置处的对象720的显示。对象720的检测可以基于一个或多个机器视觉或对象检测技术。例如,机器视觉模块304可以被配置为基于对象的图像特征来检测对象。
70.机器视觉模块304基于图像特征(即,面部识别)或基于从第二客户端设备接收的位置数据来识别与对象720相关联的用户账户,其中用户账户包括ar内容715的标识,或可由ar模块306用来生成和呈现ar内容715的一组用户属性和用户偏好。
71.例如,与第二客户端设备102相关联的用户账户(其中第二客户端设备102与对象720对应)可以包括ar内容715的标识(即,基于ar内容715的用户选择)。如图7中所见,ar内容715可以包括将被应用于在第一客户端设备102处的图像数据705的呈现内用户(即,对象720)的显示的装扮。
72.图8是描绘根据某些示例实施例的地理围栏区域805的图800。如上所述,在某些实施例中,可以使ar装扮系统124的操作对位于地理围栏区域805内的用户(例如用户810)可用。例如,只要用户810位于地理围栏区域805内,ar装扮系统124可以检测位于地理围栏805内的其它客户端设备102的位置,以便识别在与用户810相关联的客户端设备102处的图像数据的呈现中与客户端设备102相关联的用户的显示。
73.软件架构
74.图9是示出示例软件架构906的框图,该软件架构可以与在此描述的各种硬件架构结合使用。图9是软件架构的非限制性示例,并且应当理解,可以实现许多其它架构以促进在此描述的功能。软件架构906可以在诸如图10的机器1000的硬件上执行,该机器包括处理器1004、存储器1014和i/o组件1018等。代表性硬件层952被示出并且可以表示例如图9的机器900。代表性硬件层952包括具有相关联可执行指令904的处理单元954。可执行指令904表示软件架构906的可执行指令,包括在此所述的方法、组件等的实现方式。硬件层952还包括存储器和/或存储模块存储器/存储设备956,其也具有可执行指令904。硬件层952还可以包括其它硬件958。
75.在图9的示例架构中,软件架构906可以概念化为层的堆栈,其中每个层提供特定功能。例如,软件架构906可以包括诸如操作系统902、库920、应用916和呈现层914的层。在操作上,层内的应用916和/或其它组件可以通过软件堆栈调用应用程序接口(api)api调用908,并响应于api调用908接收响应。所示的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件918,而其它操作系统可提供此类层。其它软件架构可以包括附加层或不同层。
76.操作系统902可以管理硬件资源并提供公共服务。操作系统902可以包括例如内核922、服务924和驱动器926。内核922可以充当硬件和其它软件层之间的抽象层。例如,内核922可以负责存储器管理、处理器管理(例如,调度)、组件管理、网络、安全设置等。服务924
可以为其它软件层提供其它公共服务。驱动器926负责控制硬件或与底层硬件接口连接。例如,取决于硬件配置,驱动器926包括显示驱动器、相机驱动器、如,取决于硬件配置,驱动器926包括显示驱动器、相机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等等。
77.库920提供由应用916和/或其它组件和/或层使用的公共基础结构。库920提供允许其它软件组件以比与底层操作系统902功能(例如,内核922、服务924和/或驱动器926)直接接口更容易的方式执行任务的功能。库920可以包括系统库944(例如,c标准库),其可以提供诸如存储器分配功能、字符串操作功能、数学功能等的功能。另外,库920可以包括api库946,诸如媒体库(例如,用于支持各种媒体格式的呈现和操作的库,媒体格式诸如mpreg4、h.264、mp3、aac、amr、jpg、png)、图形库(例如,可用于在显示器上的图形内容中呈现2d和3d的opengl框架)、数据库库(例如,可提供各种关系数据库功能的sqlite)、web库(例如,可提供web浏览功能的webkit)等。库920还可以包括各种其它库948,以向应用916和其它软件组件/模块提供许多其它api。
78.框架/中间件918(有时也称为中间件)提供可由应用916和/或其它软件组件/模块使用的更高级别的公共基础结构。例如,框架/中间件1118可以提供各种图形用户界面(gui)功能、高级资源管理、高级位置服务等。框架/中间件918可以提供可以由应用916和/或其它软件组件/模块使用的广泛范围的其它api,其中的一些可以特定于特定操作系统902或平台。
79.应用916包括内置应用938和/或第三方应用940。代表性内置应用938的示例可包括但不限于联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用和/或游戏应用。第三方应用940可以包括由特定平台的供应商以外的实体使用androidtm或iostm软件开发工具包(sdk)开发的应用,并且可以是在诸如iostm、androidtm、phone的移动操作系统或其它移动操作系统上运行的移动软件。第三方应用940可以调用由移动操作系统(诸如操作系统902)提供的api调用908以促进在此描述的功能。
80.应用916可以使用内置操作系统功能(例如,内核922、服务924和/或驱动器926)、库920和框架/中间件918来创建用户界面以与系统的用户交互。可替代地或另外地,在一些系统中,与用户的交互可以通过呈现层(诸如呈现层914)发生。在这些系统中,应用/组件“逻辑”可以与和用户交互的应用/组件的方面分离。
81.图10是示出根据一些示例实施例的机器1000的组件的框图,机器1000能够从机器可读介质(例如,机器可读存储介质)读取指令并执行在此讨论的任何一个或多个方法。具体地,图10示出采用计算机系统的示例形式的机器1000的图形表示,在该机器1000内可以执行用于使机器1000执行在此所讨论的任何一种或多种方法的指令1010(例如,软件、程序、应用、小应用程序、应用软件或其它可执行代码)。这样,指令1010可以用于实现在此描述的模块或组件。指令1010将通用的未编程的机器1000转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器1000。在替代实施例中,机器1000作为独立装置操作或者可以耦接(例如,联网)到其它机器。在联网部署中,机器1000可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力操作,或者作为对等(或分布式)网络环境中的对
等机器操作。机器1000可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能手机、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家电)、其它智能设备、web装置、网络路由器、网络交换机、网络桥接器或能够顺序地或以其它方式执行指定机器1000要采取的动作的指令1010的任何机器。此外,尽管仅示出了单个机器1000,但是术语“机器”还应被视为包括机器的集合,该机器的集合单独或联合执行指令1010以执行在此所讨论的任何一种或多种方法。
82.机器1000可以包括可以被配置为诸如经由总线1002彼此通信的处理器1004、存储器/存储设备1006和i/o组件1018。存储器/存储设备1006可以包括存储器1014(诸如主存储器或其它存储设备)以及存储单元1016,两者都可由处理器1004诸如经由总线1002访问。存储单元1016和存储器1014存储体现任何一种或多种方法的指令1010或在此描述的功能。在机器1000的其执行期间,指令1010还可以完全或部分地驻留在存储器1014内、存储单元1016内、处理器1004中的至少一个处理器内(例如,在处理器的高速缓存内)或其任何合适的组合。因此,存储器1014、存储单元1016和处理器1004的存储器是机器可读介质的示例。
83.i/o组件1018可以包括各种各样的组件以接收输入,提供输出,产生输出,发送信息,交换信息,捕获测量等。在特定机器1000中包括的特定i/o组件1018将取决于机器的类型。例如,诸如移动电话的便携式机器可能包括触摸输入设备或其它此类输入机构,而无头服务器机器可能不包括此类触摸输入装置。应当理解,i/o组件1018可以包括图10中未示出的许多其它组件。仅仅是为了简化以下讨论,根据功能对i/o组件1018进行分组,并且分组决不是限制性的。在各种示例实施例中,i/o组件1018可以包括输出组件1026和输入组件1028。输出组件1026可以包括视觉组件(例如显示器,诸如等离子显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt))、声学组件(例如扬声器)、触觉组件(例如,振动电动机、电阻机构)、其它信号发生器等。输入组件1028可以包括字母数字输入组件(例如,键盘、配置为接收字母数字输入的触摸屏、光电键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指向仪器)、触觉输入组件(例如,物理按钮,提供触摸或触摸手势的位置和/或力的触摸屏,或其它触感输入组件)、音频输入组件(例如,麦克风)等。
84.在另外的示例实施例中,i/o组件1018可以包括广泛的其它组件中的生物度量组件1030、运动组件1034、环境组件1036或定位组件1038。例如,生物度量组件1030可以包括检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1034可包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件1036可包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近度传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,用于为了安全而检测危险气体浓度或测量大气中的污染物的气体检测传感器)或可能提供与周围物理环境相对应的指示、测量或信号的其它组件。定位组件1038可包括定位传感器组件(例如,全球定位系统(gps)接收器组件)、海拔传感器组件(例如,海拔计或检
测可以从中导出海拔的空气压力的气压计)、取向传感器组件(例如,磁力计)等。
85.可以使用各种技术来实现通信。i/o组件1018可以包括通信组件1040,其可操作以分别经由耦接器1022和耦接器1024将机器1000耦接到网络1032或设备1020。例如,通信组件1040可以包括网络接口组件或其它合适的设备以与网络1032接口。在进一步的示例中,通信组件1040可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如,低功耗)组件和其它通信组件,以经由其它模式提供通信。设备1020可以是另一机器或各种外围设备中的任何一种(例如,经由通用串行总线(usb)耦接的外围设备)。
86.此外,通信组件1040可以检测标识符或包括可操作以检测标识符的组件。例如,通信组件1040可以包括射频识别(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,光学传感器,其用于检测诸如通用产品代码(upc)条形码的一维条形码、诸如快速响应(qr)代码、aztec代码、data matrix、dataglyph、maxicode、pdf417、超码、ucc rss-2d条形码的多维条形码,和其它光学代码),或声学检测组件(例如,用于识别标记的音频信号的麦克风)。此外,可以经由通信组件1040来导出各种信息,例如经由互联网协议(ip)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的nfc信标信号的位置等。
87.词汇表
88.在该上下文中的“载波信号”是指能够存储、编码或承载用于由机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以便于此类指令的通信。可以使用传输介质经由网络接口设备并使用许多众所周知的传输协议中的任何一个传输协议来通过网络发送或接收指令。
89.在该上下文中的“客户端设备”是指与通信网络接口连接以从一个或多个服务器系统或其它客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(pda)、智能电话、平板计算机、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器或可编程的消费电子产品、游戏控制台、机顶盒或用户可用于访问网络的任何其它通信设备。
90.在该上下文中的“通信网络”是指网络的一个或多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网、互联网的一部分、公共交换电话网(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一种类型的网络,或两个或两个以上此类网络的组合。例如,网络或网络的一部分可以包括无线或蜂窝网络,并且耦合可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或其它类型的蜂窝或无线耦接。在该示例中,耦合可以实现各种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线服务(gprs)技术、gsm演进增强型数据速率(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准、由各种标准制定组织定义的其它标准、其它远程协议或其它数据传输技术。
91.在该上下文中的“短时消息”是指可在时间限制的持续时间内访问的消息。短时消息可以是文本、图像、视频等。短时消息的访问时间可以由消息发送者设置。可替代地,访问时间可以是默认设置或由接收者指定的设置。无论设置技术如何,该消息都是暂态的。
92.在该上下文中的“机器可读介质”是指能够临时或永久地存储指令和数据的组件、识别或其它有形介质,并且可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存、光学介质、磁介质、高速缓冲存储器、其它类型的存储器(例如,可擦除可编程只读存储器(eeprom))和/或其任何合适的组合。术语“机器可读介质”应被视为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”还应被视为包括能够存储由机器执行的指令(例如,代码)的任何介质或多个介质的组合,使得指令在由机器的一个或多个处理器执行时使机器执行在此描述的任何一种或多种方法。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”排除信号本身。
93.在该上下文中的“组件”是指具有由功能或子例程调用、分支点、应用程序接口(api)或提供特定处理或控制功能的分区或模块化的其它技术定义的边界的设备、物理实体或逻辑。组件可以经由它们的接口与其它组件组合以执行机器过程。组件可以是封装的功能硬件单元,其被设计用于与其它组件和通常执行相关功能的特定功能的程序的一部分一起使用。组件可以构成软件组件(例如,在机器可读介质上体现的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如,处理器或一组处理器)可以通过软件(例如,应用或应用部分)将其配置为进行操作以执行如在此所述的某些操作的硬件组件。
94.硬件组件还可以机械地、电子地或其任何合适的组合来实现。例如,硬件组件可以包括永久配置为执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,诸如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件组件还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件组件可以包括由通用处理器或其它可编程处理器执行的软件。在由该软件配置后,硬件组件就成为特定的机器(或机器的特定组件),其被独特地定制以执行所配置的功能并且不再是通用处理器。应当理解,可以由成本和时间考虑来驱动在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件组件的决定。因此,短语“硬件组件”(或“硬件实现的组件”)应该被理解为包含有形实体,即物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)的实体,以某种方式操作或执行在此所述的某些操作。考虑其中硬件组件被临时配置(例如,编程)的实施例,不需要在任何一个时刻配置或实例化硬件组件中的每个硬件组件。例如,在硬件组件包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为相应的不同的专用处理器(例如,包括不同的硬件组件)。软件相应地配置特定的一个或多个处理器,例如,在一个时刻构成特定的硬件组件,并在不同的时刻构成不同的硬件组件。
95.硬件组件可以向其它硬件组件提供信息并从其接收信息。因此,所描述的硬件组件可以被视为通信地耦接。在同时存在多个硬件组件的情况下,可以通过在两个硬件组件
之间或更多个硬件组件之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,例如通过在对多个硬件组件可访问的存储器结构中的信息的存储和取得,可以实现该硬件组件之间的通信。例如,一个硬件组件可以执行操作并将该操作的输出存储在与其通信耦接的存储设备中。然后,另一硬件组件可以稍后访问存储设备以取得和处理所存储的输出。
96.硬件组件还可以启动与输入或输出设备的通信,并且可以在资源(例如,信息集合)上操作。在此描述的示例方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时配置还是永久配置,该处理器可以构成处理器实现的组件,其用于执行在此描述的一个或多个操作或功能。如在此所使用的,“处理器实现的组件”是指使用一个或多个处理器实现的硬件组件。类似地,在此描述的方法可以至少部分地由处理器实现,其中特定的一个处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或多个处理器或处理器实现的组件来执行。此外,一个或多个处理器还可以操作以支持“云计算”环境中的相关操作的性能或作为“软件即服务”(saas)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可以经由网络(例如,因特网)并且经由一个或多个适当的接口(例如,应用程序接口(api))访问。操作中的某些操作的性能可以在处理器之间分配,不仅驻留在单个机器内,而且部署在多个机器上。在一些示例实施例中,处理器或处理器实现的组件可以位于单个地理位置(例如,在家庭环境、办公室环境或服务器群内)。在其它示例实施例中,处理器或处理器实现的组件可以分布在多个地理位置上。
97.在该上下文中的“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器代码”等)操纵数据值以及产生应用于操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)或其任何组合。处理器可以进一步是具有可以同时执行指令的两个或更多个独立处理器(有时称为“核”)的多核处理器。
98.在该上下文中,“时间戳”是指识别特定事件何时发生的字符序列或编码信息,例如给出日期和一天中的时间,有时精确到秒的分数。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献