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

基于上下文的虚拟对象渲染的制作方法

2022-04-14 08:01:37 来源:中国专利 TAG:

基于上下文的虚拟对象渲染
1.优先权要求
2.本技术要求2020年1月20日提交的美国专利申请序列号第16/747,318号和2019年9月6日提交的美国临时申请序列号第62/897,001号的优先权,其中的每一个通过引用整体并入本文中。
技术领域
3.本公开内容一般涉及视觉呈现,更具体地涉及基于上下文数据在摄像机馈送中描绘的现实世界环境中渲染虚拟对象。


背景技术:

4.虚拟渲染系统可以用于创建增强现实体验,其中三维(3d)虚拟对象图形内容似乎存在于现实世界中。许多常规的虚拟渲染系统通常渲染为所有用户所共用的基本静态模板,并且通常无法提供吸引人和有趣的增强现实体验。由于环境条件、用户动作、摄像机与正在渲染的对象之间的意外视觉中断等,这些系统还可能出现呈现问题。
附图说明
5.在不一定按比例绘制的附图中,相似的附图标记可以描述不同视图中的相似部件。为了容易识别对任何特定元素或行动的讨论,附图标记中的一个或多个最高位数字是指首次引入该元素的图号。在附图的图中,通过示例而非限制的方式来示出一些实施方式,在附图中:
6.图1是示出根据一些示例实施方式的用于基于上下文信息渲染虚拟对象的示例通信系统的系统图。
7.图2是示出根据示例实施方式的通信系统的更多细节的框图。
8.图3是示出根据示例实施方式的可以存储在消息传递服务器系统的数据库中的数据的示意图。
9.图4是示出根据示例实施方式的由消息传递客户端应用生成以用于进行通信的消息的结构的示意图。
10.图5是示出根据示例实施方式的虚拟渲染系统的各种组件的框图。
11.图6至图10是示出根据示例实施方式的在执行用于在3d空间中渲染虚拟对象的方法时虚拟渲染系统的示例操作的流程图。
12.图11是示出根据一些示例实施方式的由虚拟渲染系统基于上下文信息渲染的虚拟对象的界面图。
13.图12是示出根据示例实施方式的机器的组件的框图,所述机器的组件能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文中讨论的方法中的任何一个或更多个方法。
具体实施方式
14.以下的描述包括实施本公开内容的说明性实施方式的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,出于说明的目的,阐述了许多具体细节,以便提供对本发明主题的各种实施方式的理解。然而,对于本领域技术人员来说,将明显的是,可以在没有这些具体细节的情况下实践本发明主题的实施方式。通常,不必详细示出公知的指令实例、协议、结构和技术。
15.此外,本公开内容的实施方式通过创建增强现实体验来改进虚拟渲染系统的功能,所述增强现实体验利用上下文信息将虚拟对象渲染到图像数据(例如,图像和视频)中描绘的3d现实世界环境,如同对象存在于现实世界环境中一样。在渲染虚拟对象时,虚拟渲染系统使用一组规则,该组规则可以基于上下文信息中的一个或更多个上下文信号指定要渲染虚拟对象的方式。更具体地,在一些实施方式中,虚拟渲染系统使用该组规则来确定可以添加至虚拟对象模板以生成用于渲染的虚拟对象的风格化以及在渲染时虚拟对象的行为。
16.上下文信号可以提供关于与虚拟对象渲染相关联的移动设备周围的环境的信息。例如,上下文信息可以包括以下中的一个或更多个:用户输入数据;生物识别数据;运动数据;环境数据;定位数据;时间数据;描述事件的事件数据;描述计算设备位置的位置数据;由摄像机生成的图像数据的视觉属性;由摄像机生成的检测到对象的图像数据;由摄像机生成的检测到动作或姿势的图像数据;天气状况数据;由与计算设备通信的麦克风产生的音频数据;计算设备用户的注视;或者虚拟对象的属性。例如,一个或更多个风格化可以包括以下中的任意一个或更多个:颜色;纹理;尺寸;对象几何形状;不透明度;排版;印刷重点;装饰;或者与虚拟对象有关的附加虚拟表示。虚拟对象的行为可以对应于虚拟对象的动画移动或动作。
17.作为第一示例,如果周围环境是海滩,则渲染系统可以用砂状纹理渲染虚拟对象。作为第二示例,如果温度低于华氏32度,则渲染系统可以用冰柱状装饰渲染虚拟对象。作为第三示例,渲染系统可以基于检测到用户键入“爱”而渲染心形和/或微笑表情符号。作为第四示例,如果虚拟对象包括文本字符串“我生气了”,则渲染系统可能会连同烟雾和/或火焰表情符号一起渲染虚拟对象。作为第五示例,如果在摄像机馈送中描绘了一碗拉面,则虚拟渲染系统可以在基于一碗拉面的环境中的一定位置处渲染拉面猫。作为第五示例,当在米饭和拉面餐厅时,渲染系统可能会渲染包括词语“米饭和拉面”的虚拟对象。在该示例中,可以基于虚拟渲染系统基于一个或更多个生物识别信号确定用户愉快而连同樱花花瓣一起渲染文本“米饭和拉面”。
18.图1是示出根据一些示例实施方式的用于基于上下文信息渲染虚拟对象的示例通信系统100的系统图。例如,通信系统100可以是一种消息传递系统,其中客户端在通信系统100内传送和交换数据,其中某些数据被传送至本文中描述的可穿戴设备以及从本文中描述的可穿戴设备传送。数据可以涉及各种功能(例如,发送和接收图像内容以及文本和其他媒体通信)以及与通信系统100及其用户相关联的各方面。尽管通信系统100在本文中被示出为具有客户端服务器架构,但是其他实施方式可以包括其他网络架构,例如对等式网络环境或分布式网络环境。
19.如图1中所示,通信系统100包括应用服务器130。应用服务器130通常基于由接口
层124、应用逻辑层126和数据层128组成的三层架构。如相关计算机和因特网相关领域的技术人员所理解的,图1中所示的每个模块或引擎表示一组可执行软件指令以及用于执行指令的相应硬件(例如,存储器和处理器)。在各种实施方式中,附加功能模块和引擎可以与消息传递系统例如图1中所示的消息传递系统一起使用,以便于本文中没有具体描述的附加功能。此外,图1中描绘的各种功能模块和引擎可以驻留在单个服务器计算机上,或者可以以各种布置分布在几个服务器计算机上。此外,尽管应用服务器130在图1中被描绘为具有三层架构,但是本发明主题决不限于这样的架构。
20.如图1中所示,接口层124由接口模块(例如,web服务器)140组成,所述接口模块140接收来自各种客户端设备和服务器例如执行客户端应用112的客户端设备110的请求。响应于接收到的请求,接口模块140经由网络104向请求设备传送适当响应。例如,接口模块140可以接收诸如超文本传输协议(http)请求或其他基于web的应用编程接口(api)请求的请求。
21.客户端设备110可以执行已经为特定平台开发以包括多种移动设备和特定于移动的操作系统(例如,ios
tm
、android
tm
、phone)中的任何一种的一个或多个常规web浏览器应用(也称为“app”)。在示例中,客户端设备110正在执行客户端应用112。客户端应用112可以提供向用户106呈现信息以及经由网络104通信以与应用服务器130交换信息的功能。客户端设备110中的每一个可以包括如下设备,该设备包括至少显示能力和访问应用服务器130的与网络104的通信能力。客户端设备110包括但不限于:远程设备、工作站、计算机、通用计算机、因特网设备、手持设备、无线设备、便携式设备、可穿戴计算机、蜂窝电话或移动电话、个人数字助理(pda)、智能手机、平板电脑、超级本、上网本、膝上型计算机、台式电脑、多处理器系统、基于微处理器的或可编程的消费性电子产品、游戏机、机顶盒、网络个人计算机(pc)、迷你计算机等。用户106可以包括人、机器或者与客户端设备110交互的其他装置。在一些实施方式中,用户106分别经由客户端设备110与应用服务器130交互。
22.个人可以向应用服务器130注册以成为应用服务器130的成员。一旦注册,成员就可以在应用服务器130上形成社交网络关系(例如,朋友、追随者或联系人),并与应用服务器130所提供的广泛应用交互。
23.应用逻辑层126包括各种应用逻辑模块150,这些应用逻辑模块150与接口模块140结合利用从数据层128中的各种数据源或数据服务检索的数据生成各种用户界面。各个应用逻辑模块150可以用于实现与应用服务器130的各种应用、服务和特征相关联的功能。例如,可以用应用逻辑模块150中的一个或更多个来实现消息传递应用。消息传递应用为客户端设备110的用户提供消息传递机制,以发送和接收包括文本和媒体内容例如图片和视频的消息。客户端设备110可以在指定的时间段(例如,有限或无限)内访问和查看来自消息传递应用的消息。在示例中,消息接收者可以在首次访问特定消息时开始的预定义持续时间(例如,由消息发送者指定)内访问特定消息。在预定义持续时间流逝之后,消息被删除并且消息接收者无法再访问该消息。
24.另外,应用逻辑模块150可以提供在由客户端设备110的摄像机160产生的摄像机馈送中描绘的3d现实世界环境内生成、渲染和跟踪虚拟对象的功能。摄像机馈送包括图像数据,该图像数据包括描绘现实世界环境的一系列图像(例如,视频),并且虚拟对象的显示
覆盖在现实世界环境上。因此,应用逻辑模块150可以使客户端设备110显示虚拟对象作为增强现实体验的一部分,在该增强现实体验中用户106可以查看虚拟对象、与虚拟对象交互以及修改虚拟对象。
25.至少部分地在应用逻辑模块150内实现的虚拟渲染系统基于一组规则确定渲染虚拟对象的方式。例如,由虚拟渲染系统渲染的虚拟对象可以用基于与客户端设备110相关联的上下文信息确定的一个或更多个风格化来渲染。作为另一示例,渲染虚拟对象可以包括用根据与客户端设备相关联的上下文信息确定的一个或更多个行为来渲染虚拟对象。
26.例如,虚拟对象可以包括在使用消息传递应用交换的一个或更多个消息中。这些消息可以包括包含现实世界环境的一个或更多个图像的媒体内容,现实世界环境被增强以包括在现实世界环境上覆盖的虚拟对象的显示。媒体内容还可以包括与图像的捕获结合记录的音频数据。
27.摄像机160通信地耦接至客户端设备110。例如,在一些实施方式中,摄像机160可以嵌入在客户端设备110(例如,具有嵌入式摄像机的智能手机)中。在一些实施方式中,摄像机160可以嵌入在配套设备中。
28.如图1中所示,数据层128具有一个或更多个数据库服务器132,所述一个或更多个数据库服务器132便于访问信息存储库或数据库134。数据库134存储诸如虚拟对象模板、成员简档数据、社交图数据(例如,应用服务器130的成员之间的关系)和其他用户数据的数据。例如,数据库134可以存储虚拟对象模板的集合,所述虚拟对象模板为要由虚拟渲染系统渲染的虚拟对象提供基础。虚拟渲染系统可以从数据库134选择虚拟对象模板,并将一个或更多个风格化应用于虚拟对象模板以生成虚拟对象。
29.图2是示出根据示例实施方式的关于通信系统100的更多细节的框图。具体地,通信系统100被示出为包括客户端应用112和应用服务器130,客户端应用112和应用服务器130又实施了许多子系统,即暂时定时器系统202、集合管理系统204和虚拟渲染系统206。
30.暂时定时器系统202负责执行对客户端应用112和应用服务器130所允许的内容的临时访问。为此,暂时定时器系统202并入多个定时器,所述多个定时器基于与消息或消息的集合(例如,故事)相关联的显示参数以及持续时间,选择性地显示和实现经由客户端应用112访问消息和相关联内容。
31.集合管理系统204负责管理媒体的集合(例如,文本、图像、视频和音频数据的集合)。在一些示例中,可以将内容(例如,消息,包括图像、视频、文本和音频)的集合组织成“事件库”或“事件故事”。这样的集合可以在指定的时间段例如与内容有关的事件的持续时间内可获得。例如,与音乐会有关的内容可以在该音乐会的持续时间内作为“故事”可获得。
32.此外,集合管理系统204包括策展接口208,该策展接口208允许集合管理器管理和策展特定的内容集合。例如,策展接口208使事件组织者能够策展与特定事件有关的内容集合(例如,删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动策展内容集合。
33.虚拟渲染系统206提供在客户端设备110的现场摄像机馈送中描绘的3d现实世界环境内生成、渲染和跟踪虚拟对象的功能。虚拟对象可以包括媒体覆盖物。媒体覆盖物可以包括音频和视觉内容以及视觉效果和动画。音频和视觉内容的示例包括图片、文本、标识、动画和声音效果。音频和视觉内容或视觉效果可以应用于媒体内容项(例如,图像)。例如,
媒体覆盖物包括可以覆盖在由摄像机160生成的图像之上的文本。这样的媒体覆盖物的模板可以存储在数据库134中并通过数据库服务器132被访问。
34.虚拟渲染系统206还提供使用户能够利用虚拟对象增强或以其他方式修改或编辑媒体内容(例如,包括图像数据和/或音频数据)的功能。例如,虚拟渲染系统206提供与由通信系统100处理的消息中的虚拟对象的生成和发布相关的功能。
35.在示例实施方式中,虚拟渲染系统206提供基于用户的发布平台,该基于用户的发布平台使用户能够在地图上选择地理位置并上载与所选择的地理位置相关联的内容。用户还可以指定应当将特定虚拟对象或虚拟对象模板提供给其他用户的情况。虚拟渲染系统206生成包括上载的内容并将上载的内容与所选择的地理位置相关联的媒体覆盖物。
36.图3是示出根据特定示例实施方式的可以存储在消息传递服务器系统108的数据库134中的数据的示意图300。虽然数据库134的内容被示出为包括许多表,但是应当理解,数据可以存储在其他类型的数据结构中(例如,作为面向对象的数据库)。
37.数据库134包括存储在消息表314内的消息数据。实体表302存储实体数据,包括实体图304。在实体表302内为其保存记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。无论类型如何,消息传递服务器系统108存储数据所涉及的任何实体都可以是识别的实体。每个实体都被提供有唯一标识符以及实体类型标识符(未示出)。
38.此外,实体图304存储关于实体之间的关系和关联的信息。这样的关系可能仅仅例如是社会的、职业的(例如,在共同的公司或组织工作)、基于兴趣的或者基于活动的。
39.数据库134还将以过滤器和透镜的示例形式的注释数据存储在注释表312中。其数据存储在注释表312内的过滤器和透镜与视频(其数据存储在视频表310中)和/或图像(其数据存储在图像表308中)相关联以及被应用于视频(其数据存储在视频表310中)和/或图像(其数据存储在图像表308中)。过滤器是在呈现给接收者用户期间被显示为覆盖在图像或视频上的覆盖物。透镜包括可以添加至摄像机馈送中描绘的现实世界环境(例如,当用户经由消息传递客户端应用112的一个或更多个界面查看摄像机馈送时、在编写消息时或者在呈现给接收者用户期间)的实时视觉效果和/或声音。在一些实施方式中,在透镜被应用于客户端设备110的摄像机馈送时,在客户端设备110处捕获图像或视频之后,过滤器被应用于图像或视频,使得当利用应用的透镜在客户端设备110处捕获图像或视频时,应用的透镜被并入作为生成的图像或视频的一部分。过滤器和透镜可以是各种类型,包括当发送用户编写消息时由消息传递客户端应用112呈现给发送用户的来自过滤器库或透镜库的用户选择的过滤器和透镜。
40.如上面提到的,视频表310存储视频数据,在一个实施方式中,该视频数据与其记录保存在消息表314内的消息相关联。类似地,图像表308存储与其消息数据存储在实体表302中的消息相关联的图像数据。实体表302可以将来自注释表312的各种注释与存储在图像表308和视频表310中的各种图像和视频相关联。
41.故事表306存储关于消息的集合的数据以及相关联的图像、视频或音频数据,这些数据被编译成集合(例如,故事或库)。特定集合的创建可以由特定用户(例如,其记录保存在实体表302中的每个用户)发起。用户可以以已由该用户创建和发送/广播的内容集合的形式创建“个人故事”。为此,消息传递客户端应用112的ui可以包括用户可选择的图标,以使发送用户能够向他或她的个人故事添加特定内容。
42.集合还可以构成作为来自多个用户的内容集合的“现场故事”,该内容集合是手动地、自动地或者使用手动技术和自动技术的组合创建的。例如,“现场故事”可以构成来自各种位置和事件的策展的用户提交的内容流。可以例如经由消息传递客户端应用112的用户界面向其客户端设备使位置服务被启用并且在特定时间处于公共位置事件的用户呈现选项,以将内容贡献给特定的现场故事。可以由消息传递客户端应用112基于他或她的位置向用户识别现场故事。最终结果是从社区角度讲述的“现场故事”。
43.另一种类型的内容集合被称为“位置故事”,该“位置故事”使其客户端设备110位于特定地理位置内(例如,在学院或大学校园)的用户能够对特定集合做出贡献。在一些实施方式中,对位置故事的贡献可能需要第二程度的认证,以验证最终用户属于特定的组织或其他实体(例如,是大学校园的学生)。
44.图4是示出根据一些实施方式的消息400的结构的示意图,该消息400由消息传递客户端应用112生成以用于与其他消息传递客户端应用112或消息传递服务器应用130进行通信。特定消息400的内容用于填充存储在数据库134内的消息表314,可由消息传递服务器应用130访问。类似地,消息400的内容作为客户端设备110或应用服务器130的“传输中”或“飞行中”数据存储在存储器中。消息400被示出为包括以下组件:
45.·
消息标识符402:标识消息400的唯一标识符。
46.·
消息文本有效载荷404:要由用户经由客户端设备110的用户界面生成并且包括在消息400中的文本。
47.·
消息图像有效载荷406:由客户端设备110的摄像机组件捕获或者从客户端设备110的存储器检索并且包括在消息400中的图像数据。
48.·
消息视频有效载荷408:由摄像机组件捕获或者从客户端设备110的存储器组件检索并且包括在消息400中的视频数据。
49.·
消息音频有效载荷410:由麦克风捕获或者从客户端设备110的存储器组件检索并且包括在消息400中的音频数据。
50.·
消息注释412:表示要应用于消息400的消息图像有效载荷406、消息视频有效载荷408或消息音频有效载荷410的注释的注释数据(例如,过滤器、粘贴标签或其他增强功能)。
51.·
消息持续时间参数414:以秒为单位指示消息的内容(例如,消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410)经由消息传递客户端应用112要呈现给用户或可由用户进行访问的时间量的参数值。
52.·
消息地理位置参数416:与消息的内容有效载荷相关联的地理位置数据(例如,纬度坐标和经度坐标)。多个消息地理位置参数416值可以包括在有效载荷中,其中这些参数值中的每一个与内容中包括的内容项(例如,在消息图像有效载荷406中的特定图像,或者在消息视频有效载荷408中的特定视频)相关联。
53.·
消息故事标识符418:标识一个或更多个内容集合(例如,“故事”)的标识符值,消息400的消息图像有效载荷406中的特定内容项与这些内容集合相关联。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。
54.·
消息标签420:每个消息400可以用多个标签来标记,所述多个标签中的每一个指示在消息有效载荷中包括的内容的主题。例如,在消息图像有效载荷406中包括的特定图
像描绘动物(例如,狮子)的情况下,标签值可以包括在指示相关动物的消息标签420内。可以基于用户输入手动生成标签值,或者可以使用例如图像识别自动生成标签值。
55.·
消息发送者标识符422:指示在其上生成消息400以及从其发送消息400的客户端设备110的用户的标识符(例如,消息传递系统标识符、电子邮件地址或设备标识符)。
56.·
消息接收者标识符424:指示消息400被寻址的客户端设备110的用户的标识符(例如,消息传递系统标识符、电子邮件地址或设备标识符)。
57.消息400的各种组件的内容(例如,值)可以是指向表中存储内容数据值的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表308内的位置的指针(或图像表308内的位置的地址)。类似地,消息视频有效载荷408内的值可以指向存储在视频表310内的数据,存储在消息注释412内的值可以指向存储在注释表312中的数据,存储在消息故事标识符418内的值可以指向存储在故事表306中的数据,以及存储在消息发送者标识符422和消息接收者标识符424内的值可以指向存储在实体表302内的用户记录。
58.图5是示出虚拟渲染系统206的功能组件的框图,这些功能组件配置虚拟渲染系统206以在现场摄像机馈送中描绘的3d现实世界环境中渲染虚拟对象。虚拟渲染系统206被示出为包括渲染组件502、跟踪系统504、间断检测组件506、事件检测组件508和数据库510。虚拟渲染系统206的各种组件可以被配置成彼此通信(例如,经由总线、共享存储器或交换机彼此通信)。虽然在图5中未示出,但是在一些实施方式中,虚拟渲染系统206可以包括摄像机或者可以与摄像机通信,该摄像机被配置成产生包括包含一系列图像(例如,视频)的图像数据的摄像机馈送。
59.可以单独使用硬件(例如,机器的处理器512中的一个或更多个)或者使用硬件和软件的组合来实现所描述的组件中的任何一个或更多个。例如,虚拟渲染系统206的所描述的任何组件可以物理地包括处理器512中的一个或更多个(例如,机器的一个或更多个处理器的子集或在机器的一个或更多个处理器之中)的布置,所述布置被配置成执行本文中针对该组件描述的操作。作为另一示例,虚拟渲染系统206的任何组件可以包括软件、硬件或软件和硬件,所述软件、硬件或软件和硬件配置一个或更多个处理器512(例如,在机器的一个或更多个处理器之中)的布置以执行本文中针对该组件描述的操作。因此,虚拟渲染系统206的不同组件可以包括和配置在不同时间点处的这样的处理器512的不同布置或这样的处理器512的单个布置。
60.此外,虚拟渲染系统206中的任何两个或更多个组件可以组合成单个组件,并且本文中针对单个组件描述的功能可以在多个组件之间细分。此外,根据各种示例实施方式,本文中描述为在单个机器、数据库或设备内实现的组件可以分布在多个机器、数据库或设备上。
61.渲染组件502被配置成在由客户端设备110的摄像机产生的现场摄像机馈送内捕获的3d空间中渲染虚拟对象。渲染组件502使用一组规则,该组规则基于一个或更多个上下文信号指定要渲染虚拟对象的方式。渲染虚拟对象的方式可以包括应用于虚拟对象的一个或更多个风格化,并且在一些实施方式中,渲染虚拟对象的方式可以包括虚拟对象的行为。
62.在渲染虚拟对象时,渲染组件502从数据库510标识虚拟对象模板,并使用该组规则来基于一个或更多个上下文信号确定一个或更多个风格化以应用于虚拟对象模板。渲染组件502通过将风格化应用于虚拟对象模板来生成虚拟对象,并使虚拟对象由客户端设备
110的显示设备显示。
63.在一些实施方式中,渲染组件502还可以使用该组规则来基于一个或更多个上下文信号确定虚拟对象的行为。如上所述,行为可以包括虚拟对象的一个或更多个移动或动作。与这些实施方式一致,渲染组件502根据所确定的行为渲染虚拟对象。也就是说,渲染组件502可以渲染执行一个或更多个移动或动作的虚拟对象的动画。
64.跟踪系统504可以包括第一跟踪子系统504a、第二跟踪子系统504b和第三跟踪子系统504c。每个跟踪子系统基于一组跟踪标记将虚拟对象的定位跟踪到3d空间。
65.由于环境条件、用户动作、摄像机与正被跟踪的对象/场景之间的意外视觉中断等,跟踪系统出现频繁的跟踪故障。传统上,这样的跟踪故障将导致虚拟对象在3d空间中的呈现间断。例如,虚拟对象可能消失或以其他方式不规律地行事,从而中断虚拟对象呈现在3d空间内的错觉。这削弱了整个3d体验的感知质量。
66.传统的跟踪系统依赖于单个方法(自然特征跟踪(nft)、同时定位和地图创建(slam)、陀螺仪等),该单个方法由于不准确的传感器数据、视觉标记的移动、丢失或遮挡、或对场景的动态中断而都在现实世界使用中具有断点。此外,每个方法可能都具有能力的个体限制。例如,陀螺仪跟踪系统只能跟踪具有三个自由度(3dof)的项。此外,由于每个单独的系统的固有限制,使用单个跟踪系统提供了不准确或不稳定的定位估计。例如,由于单独的视觉跟踪的不准确性,nft系统可能无法提供足够的俯仰、偏航或滚转估计,而陀螺仪跟踪系统提供了不准确的平移(上、下、左、右)。
67.为了解决传统跟踪系统的前述问题,虚拟渲染系统206包括能够在跟踪子系统之间实现无缝转换的多个冗余跟踪子系统504a至504c。多个冗余跟踪子系统504a至504c通过将多个跟踪方法合并到单个跟踪系统504中来解决传统跟踪系统的问题。跟踪系统504能够通过基于由跟踪系统跟踪的跟踪标记的可用性在多个跟踪系统之间进行组合和转换来组合6dof和3dof跟踪技术。因此,当由任何一个跟踪系统跟踪的标记变得不可用时,虚拟渲染系统206在6dof和3dof的跟踪之间无缝地切换,从而向用户提供不中断的体验。例如,在视觉跟踪系统(例如,nft、slam)的情况下,为了确定取向通常分析的跟踪标记可以用来自陀螺仪跟踪系统的陀螺仪跟踪标记代替。因此,这将使得能够基于跟踪标记的可用性在6dof和3dof的跟踪之间进行转换。
68.在一些示例实施方式中,为了在6dof和3dof的跟踪之间转换,虚拟渲染系统206收集跟踪标记并将其存储在包括平移标记(例如,上、下、左、右)和旋转标记(例如,俯仰、偏航、滚转)的跟踪矩阵内。因此,由nft系统收集的平移标记可以从跟踪矩阵提取,并在由nft系统收集的未来平移标记变得不准确或不可用时被利用。同时,旋转标记继续由陀螺仪提供。以这种方式,当移动设备失去跟踪标记时,在3d空间中呈现的跟踪对象将不会在跟踪标记丢失时的帧处突然改变。随后,当目标跟踪对象重新出现在屏幕中并且获得新的平移t1时,视图矩阵的平移部分将然后利用新的平移t1并使用t
1-t0作为视图矩阵的平移。
69.虚拟渲染系统206可以以6dof通过一个或更多个跟踪系统来跟踪和调整虚拟对象的定位。例如,虚拟渲染系统206的一个或更多个跟踪系统可以收集一组跟踪标记(例如,滚转、俯仰、偏航、自然特征等)并对该组跟踪标记进行分析,以便以6dof跟踪在3d空间中虚拟对象相对于客户端设备110的定位。在这样的实施方式中,虚拟渲染系统206可以基于跟踪标记的可用性在跟踪系统之间转换,以在6dof中保持一致跟踪。
70.间断检测组件506监视跟踪标记以检测间断。在间断检测组件506检测到一个或更多个标记的中断,使得6dof的跟踪变得不可靠或不可能时,虚拟渲染系统206转换为以3dof在3d空间中跟踪虚拟对象以便防止显示中断。例如,虚拟渲染系统206可以从第一跟踪系统(或者在该组跟踪系统之中的第一组跟踪系统)转换到该组跟踪系统之中的第二跟踪系统(或第二组跟踪系统),其中第二跟踪系统能够基于可用的跟踪标记在3d空间中以3dof跟踪虚拟对象。
71.在一些示例实施方式中,虚拟渲染系统206的一组跟踪系统包括陀螺仪跟踪系统、nft系统和slam跟踪系统。该组跟踪系统之中的每个跟踪系统可以对跟踪标记进行分析,以便跟踪虚拟对象在3d空间内的定位。例如,为了以6dof跟踪虚拟对象,虚拟渲染系统206可能需要至少六个跟踪标记是可用的。当跟踪标记由于各种原因而变为遮挡或不可用时,虚拟渲染系统206可以在该组跟踪系统之中的可用跟踪系统之间转换,以便在必要时保持6dof或转换到3dof。
72.将容易理解,虚拟渲染系统206在各种环境和情况中提供在现实世界3d空间中的一致的渲染虚拟对象(例如,应用于现实世界表面的视觉效果)。在许多应用中,可能期望在一个或更多个用户、摄像机或其他跟踪项在环境中四处移动时为这些虚拟对象的位置提供牢固的一致性。这可能涉及在现实世界环境中识别和使用特定的固定参考点(例如,固定表面)。未使用固定参考点或项会导致虚拟对象的渲染和呈现中的浮动或其他不期望的不一致性。
73.为了确保虚拟对象位置的牢固的一致性,可以采用特定于本文中描述的虚拟对象跟踪和渲染的以呈现透镜的示例形式的注释数据。特别地,表面感知透镜是标识和参考现实世界表面(例如,地面)以用于虚拟对象在3d空间中的一致渲染和呈现的呈现透镜。表面感知透镜可以是渲染组件502内的特定部分或子组件。渲染组件502的该表面感知透镜可以被配置成基于视觉摄像机内容识别参考表面,并且还可以利用其他设备输入(例如,陀螺仪、加速度计、罗盘)来确定什么是在现场摄像机馈送中描绘的3d空间内的适当表面。一旦确定了参考表面,就可以相对于该参考表面完成虚拟对象。在示例中,3d空间中的参考表面是地表面。虚拟渲染系统206可以在3d空间中的一定定位处渲染虚拟对象,使得对象看起来被锚定到地表面。
74.在一些实施方式中,虚拟渲染系统206可以响应于触发事件将虚拟对象渲染到客户端设备110的现场摄像机馈送中描绘的3d空间。为此,事件检测组件508负责检测这样的触发事件。事件检测组件508可以基于从客户端设备110的一个或更多个组件或从可经由网络104访问的一个或更多个外部源接收的数据检测触发事件。例如,触发事件可以基于来自客户端设备110的位置组件的地理位置数据,并且触发事件的检测可以包括检测客户端设备110处于特定地理位置或在特定地理位置附近。作为另一示例,触发事件可以基于时间因素,并且触发事件的检测可以包括基于由客户端设备110维护的时钟信号检测特定日期或时间。作为又一示例,触发事件可以基于描述天气状况的天气状况数据(例如,通过网络104从外部源获得),并且触发事件的检测可以包括检测特定天气状况条件(例如,雪、雨、风)。
75.图6至图10是示出根据本公开内容的各种实施方式的用于在3d空间中渲染虚拟对象的方法600的流程图。方法600可以实施在计算机可读指令中,以供一个或更多个处理器执行,使得方法600的操作可以部分地或全部地由虚拟渲染系统206的功能组件执行;因此,
下面参考其通过示例的方式描述方法700。然而,应当理解,可以在各种其他硬件配置上部署方法700的操作中的至少一些操作,并且方法700不旨在限于虚拟渲染系统206。
76.在操作602处,虚拟渲染系统206选择虚拟对象模板,以用于生成要在计算设备的摄像机馈送中捕获的3d空间内渲染的虚拟对象。也就是说,虚拟对象模板为要渲染的虚拟对象提供了基础。如下面将进一步详细讨论的,虚拟渲染系统206可以响应于检测到触发事件选择虚拟对象模板。在一些实施方式中,虚拟渲染系统206可以基于用户输入(例如,指示从显示对象模板集合的界面对虚拟对象模板的选择)选择虚拟对象模板。
77.在一些实施方式中,虚拟渲染系统206可以基于描述在计算设备周围的环境的上下文信息选择虚拟对象模板。例如,虚拟渲染系统206可以基于计算设备的位置、时间因素例如一天中的某个时间、一周中的某一天或一年中的某个时间、或者计算设备的位置处的天气状况选择虚拟对象。在一些实施方式中,虚拟渲染系统206从模板的数据库选择虚拟对象模板,模板与上下文信息相关联地存储在模板的数据库中。
78.作为第一示例,当计算设备位于法国巴黎时,虚拟渲染系统206可以选择与巴黎具体相关联的虚拟对象模板,例如表示埃菲尔铁塔的模板。在该示例中,虚拟渲染系统206可以基于在数据库中与巴黎具体相关联的模板选择表示埃菲尔铁塔的模板。
79.作为第二示例,在星期一,虚拟渲染系统206可以选择与星期一具体相关联的虚拟对象模板,例如包括提供关于星期一的评论(例如,“我讨厌星期一”)的文本字符串的模板。在该示例中,虚拟渲染系统206可以基于在数据库中与星期一具体相关联的模板选择包括文本字符串的模板。为了进一步进行该示例,数据库可以另外为一周中的其他日子指定虚拟对象模板(例如,星期三的“驼峰日”或星期五的“星期五耶!!”)。
80.作为第三示例,在冬季期间,虚拟渲染系统206可以选择与冬季具体相关联的虚拟对象模板,例如表示雪人的模板。在该示例中,虚拟渲染系统206可以基于在数据库中在模板与冬季之间的具体关联选择表示雪人的模板。
81.在操作604处,虚拟渲染系统206基于包括一个或更多个上下文信号的上下文信息确定虚拟对象模板的一个或更多个风格化。虚拟渲染系统206基于一组规则确定虚拟对象模板的一个或更多个风格化,该组规则基于一个或更多个上下文信号定义了渲染虚拟对象的方式。该组规则中的规则可以响应于检测到特定上下文信号或特定上下文信号组合指定应用于虚拟对象模板的一个或更多个风格化。
82.例如,上下文信息可以包括以下中的一个或更多个:用户输入数据;生物识别数据;运动数据;环境数据;定位数据;时间数据;描述事件的事件数据;描述计算设备位置的位置数据;由摄像机生成的图像数据的视觉属性;由摄像机生成的检测到对象的图像数据;由摄像机生成的检测到动作或姿势的图像数据;天气状况数据;由与计算设备通信的麦克风产生的音频数据;计算设备用户的注视;或者虚拟对象的属性。例如,一个或更多个风格化可以包括以下中的任何一个或更多个:颜色;纹理;尺寸;对象几何形状;不透明度;排版;印刷重点;装饰;或与虚拟对象有关的附加虚拟表示。
83.作为第一示例,如果虚拟渲染系统206确定计算设备位于海滩,则该组规则可以包括指定将砂状纹理应用于虚拟对象的规则。作为第二示例,如果虚拟渲染系统206确定计算设备区域中的温度低于温度阈值,则该组规则可以包括指定将冰柱状装饰添加至虚拟对象的规则。作为第三示例,该组规则可以包括以下规则,该规则指定当在一天中的第一时间期
间渲染时将第一颜色应用于虚拟对象(例如,当在早晨渲染时应用红色),以及当在一天中的第二时间期间渲染时将第二颜色应用于虚拟对象(例如,当在晚上渲染时应用黑色)。作为第四示例,该组规则可以包括以下规则,该规则指定将诸如心形的装饰添加至包括文本字符串“我喜欢这个”的虚拟对象。
84.在操作606处,虚拟渲染系统206通过将一个或更多个风格化应用于虚拟对象模板来生成虚拟对象。一个或更多个风格化的应用可以包括以下中的任何一个或更多个:添加或改变虚拟对象的一个或更多个方面的颜色;添加或改变虚拟对象的一个或更多个方面的纹理;调整虚拟对象模板的尺寸;调整对象几何形状;调整不透明度;改变或设置排版;添加或移除印刷重点;添加或移除装饰;或者添加与虚拟对象模板有关的附加虚拟表示。
85.在上面关于操作604呈现的更具体的示例之后,在第一示例中,虚拟渲染系统206可以基于计算设备位于海滩将砂线纹理应用于基于文本的虚拟对象模板。在第二示例中,虚拟渲染系统206可以基于计算设备区域中的温度低于阈值温度将冰柱状装饰添加至虚拟对象模板。在第三示例中,虚拟渲染系统206当在一天中的第一时间期间渲染时将第一颜色应用于虚拟对象,以及当在一天中的第二时间期间渲染时将第二颜色应用于虚拟对象。在第四示例中,虚拟渲染系统206将心形作为装饰应用于文本字符串“我喜欢这个”。
86.在操作608处,虚拟渲染系统206根据一个或更多个风格化在摄像机馈送中捕获的3d空间中渲染虚拟对象。也就是说,虚拟渲染系统206利用应用于虚拟对象模板的一个或更多个风格化渲染基于虚拟对象模板的虚拟对象。摄像机馈送包括图像数据,该图像数据包括描绘3d空间的一系列图像(例如,视频)。
87.在上面关于操作604和606呈现的更具体的示例之后,在第一示例中,虚拟渲染系统206利用砂状纹理渲染基于文本的虚拟对象。在第二示例中,虚拟渲染系统206用冰柱状装饰渲染虚拟对象。在第三示例中,虚拟渲染系统206在一天中的第一时间期间以第一颜色渲染虚拟对象,以及在一天中的第二时间期间以第二颜色渲染虚拟对象。
88.如图7中所示,在一些实施方式中,方法600可以包括操作702和704。与一些实施方式一致,操作702可以在虚拟渲染系统206渲染虚拟对象的操作606之前执行。在操作702处,虚拟渲染系统206基于上下文信息确定虚拟对象的行为。虚拟渲染系统206基于一组规则确定虚拟对象的行为,该组规则基于一个或更多个上下文信号定义了渲染虚拟对象的方式。该组规则中的规则可以基于特定上下文信号或特定上下文信号组合指定与虚拟对象相关联的行为。
89.虚拟对象的行为可以对应于虚拟对象的动画移动或动作。也就是说,行为可以包括由虚拟对象的一个或更多个方面执行的一个或更多个移动或动作。在示例中,虚拟对象是猫,并且虚拟渲染系统206可以基于指示在计算设备区域中晴天的上下文信息确定虚拟对象的行为包括眯眼。
90.所确定的行为可以是可以应用于虚拟对象的多个常规行为中的一个,或者所确定的行为可以对应于特定于虚拟对象模板的行为。也就是说,虚拟对象模板可以具有一个或更多个相关联的行为,所述一个或更多个相关联的行为可以应用于基于该虚拟对象模板生成的虚拟对象,而不应用于基于其他模板生成的虚拟对象。例如,在虚拟对象是猫的上述示例中,眯眼是可获得的行为;然而,这种行为将是不适用的,并且因此对基于文本的虚拟对象是不可用的。虚拟对象模板可以指定哪些行为可以应用于基于该虚拟对象模板生成的虚
拟对象。
91.与一些实施方式一致,操作704可以作为操作608的一部分来执行,在操作704中,虚拟渲染系统206根据所确定的行为渲染虚拟对象。根据所确定的行为渲染虚拟对象可以包括渲染虚拟对象的动画或者执行一个或更多个移动或动作的虚拟对象的一个或更多个方面。在上述猫的示例之后,虚拟渲染系统206可以在计算设备的摄像机馈送内捕获的晴天3d空间中渲染猫眯眼。
92.如图8中所示,在一些实施方式中,方法600可以包括操作802和804。与一些实施方式一致,操作802和804可以作为虚拟渲染系统206选择用于渲染的虚拟对象的操作602的一部分来执行。在操作802处,虚拟渲染系统206获得描述要在其上渲染虚拟对象的计算设备的位置的位置数据。在一些实施方式中,位置数据可以包括坐标(例如,纬度和经度)或者描述计算设备的地理位置的其他信息。在一些实施方式中,位置数据可以基于对由计算设备的摄像机产生的图像数据的分析。换言之,可以通过虚拟渲染系统206对由计算设备的摄像机产生的图像数据进行分析以确定计算设备的位置,作为生成位置数据的过程的一部分。
93.在操作804处,虚拟渲染系统206使用位置数据从数据库标识虚拟对象模板。例如,如上所述,数据库包括位置与虚拟对象模板之间的关联。也就是说,数据库指定与虚拟渲染系统206的位置具体相关联的虚拟对象模板。数据库可以按位置索引,并且因此,虚拟渲染系统206可以使用计算设备的位置对数据库执行查找以标识与计算设备的位置相关联的虚拟对象。
94.在一些实施方式中,虚拟对象模板的实质与计算设备的位置有关。在某些情况下,虚拟对象模板包括与计算设备的位置有关的文本字符串。例如,虚拟渲染系统206可以基于指示计算设备的当前位置是法国巴黎的位置数据标识包括文本字符串“法国巴黎”的虚拟对象模板。作为另一示例,虚拟渲染系统206可以基于指示计算设备的当前位置在米慎街(mission st)和第16街(16th st)的拐角的位置数据标识包括文本字符串“米慎街和第16街”的虚拟对象模板。
95.应当理解,尽管图8提供了基于计算设备的位置标识虚拟对象模板的示例,但是用于标识虚拟对象模板的基础不限于虚拟对象模板的位置,并且在其他实施方式中,可以使用其他上下文信号可以来标识虚拟对象模板。此外,从其标识虚拟对象模板的数据库中的关联不限于位置,并且在其他实施方式中,其他上下文信号可以与虚拟对象模板相关联。
96.如图9中所示,在一些实施方式中,方法600可以包括操作902。与一些实施方式一致,操作902可以作为虚拟渲染系统206选择虚拟对象模板的操作602的一部分执行。
97.在操作902处,虚拟渲染系统206检测触发事件。例如,可以基于描述计算设备的位置的位置数据(例如,来自计算设备的位置组件)检测触发事件。作为示例,触发事件的检测可以包括检测计算设备何时处于特定位置或在特定位置的预定义距离内。作为另一示例,可以基于时间因素检测触发事件,并且因此,检测触发事件可以包括检测特定日期或时间。作为又一示例,可以基于天气状况检测触发事件,并且因此,触发事件的检测可以包括检测特定天气状况条件(例如,雪、雨、风)。
98.在一些实施方式中,触发事件可以对应于用户输入,并且检测触发事件可以包括检测从计算设备的输入/输出组件接收的特定用户输入。作为示例,计算设备可以执行提供渲染虚拟对象的功能的客户端应用。虚拟渲染系统206可以接收输入以激活虚拟对象渲染
功能。该输入可以是手动用户输入的形式,其可以是例如按钮点击或者以指示功能的选择的这样的方式保持或指向活动摄像机。与该示例一致,触发事件的检测可以包括接收用户输入以激活虚拟对象渲染功能。
99.与这些实施方式一致,检测触发事件可以包括检测用户提供输入。例如,虚拟渲染系统206可以检测用户键入“爱”并且作为响应,虚拟渲染系统206可以选择心形以用于渲染。
100.如图10中所示,在一些实施方式中,方法600可以包括操作1002、1004、1006、1008、1010和1012。与这些实施方式一致,操作1002、1004、1006、1008、1010和1012可以作为渲染系统206渲染虚拟对象的操作608的一部分(例如,子例程或子任务)执行。
101.在操作1002处,渲染组件602检测摄像机馈送中描绘的3d空间中的现实世界参考表面。参考表面可以是地表面,然而也可以使用任何其他固定和可确定的表面。例如,渲染组件602可以通过基于对视觉摄像机内容的分析标识固定表面来检测参考表面,并且还可以利用其他设备输入(例如,陀螺仪、加速度计、罗盘)来确定什么是在摄像机馈送中描绘的3d空间内的适当表面。
102.在一些实施方式中,参考表面的检测可以基于在摄像机馈送的呈现上接收的用户输入。该输入可以是手动用户输入的形式,其可以是例如按钮点击或者以指示正在参考表面的这样的方式保持或指向活动摄像机。在下面将参照图10讨论的其他实施方式中,参考表面的检测可以响应于检测与参考表面相关联的触发事件。
103.在各种实施方式中,可以向用户请求适当的参考表面已经被指示或突出显示的确认。在一些情况下,系统可以指示适当的参考表面不能被检测到,使得可能需要来自用户的进一步输入或帮助。
104.在操作1004处,渲染组件602基于检测到的参考表面定向虚拟对象。虚拟对象的定向可以包括基于检测到的参考表面将虚拟对象分配给3d空间中的一定位置,以及标识由跟踪系统604在在3d空间中跟踪虚拟对象时要使用的一组跟踪标记。被分配虚拟对象的位置可以对应于参考表面或参考表面上方的预定义距离。
105.在操作1006处,渲染组件602相对于参考表面渲染虚拟对象。更具体地,虚拟对象相对于参考表面的渲染可以包括在3d空间内的分配位置处渲染和保持虚拟对象。因此,在分配位置是距参考表面的预定义距离的情况下,虚拟对象的渲染可以包括在距参考表面的预定义距离处渲染和保持虚拟对象。在这些情况下,虚拟对象在渲染时实际上可能看起来不接触参考表面或不停留在参考表面上,而是可能看起来以预定义距离悬停在参考表面上方或者以预定义距离延伸远离参考表面。
106.在操作1008处,跟踪系统604经由第一跟踪子系统604a或多个跟踪子系统(例如,第一跟踪子系统604a和第二跟踪子系统604b)的组合,基于所标识的一组跟踪标记以6dof跟踪在3d空间中的一定位置处的虚拟对象。在以6dof跟踪虚拟对象时,在客户端设备110上查看对象的用户可以在任何方向上转动或移动,而不会间断对象的跟踪。例如,跟踪系统604可以基于nft系统和陀螺仪跟踪系统的组合跟踪虚拟对象的定位。
107.在操作1010处,间断检测组件606检测来自由跟踪子系统(例如,第一跟踪子系统604a)跟踪的跟踪标记之中的跟踪标记的中断。例如,第一跟踪子系统604a可以包括被配置成依赖于跟踪标记的nft系统,所述跟踪标记包括环境的特征或在环境内的虚拟对象附近
活动光源(例如,地面平面或地平线)。因此,第一跟踪子系统604a的nft系统可以依赖于环境中的三个或更多个已知特征的位置,以确定在三维空间中虚拟对象相对于客户端设备110的定位。如果由第一跟踪子系统604a跟踪的跟踪标记中的任何一个或更多个变为遮挡或不可用,则在3d空间中对虚拟对象的跟踪将变成间断。
108.在操作1012处,响应于间断检测组件606检测到一个或更多个跟踪标记的间断,跟踪系统604转换到一个或更多个其他跟踪子系统(例如,第二跟踪子系统604b和/或第三跟踪子系统604c)以保持在3d空间中相对于客户端设备110对虚拟对象的跟踪。在这样做时,跟踪系统604可以从6dof转换到3dof,其中3dof测量俯仰、滚转和偏航,但不测量平移。当跟踪标记再次变为可用时,跟踪系统604可以从3dof转换回到6dof。例如,当nft系统变为不可用时,跟踪系统604可以利用由nft系统在整个随后3dof体验中收集和跟踪的最后跟踪标记。
109.图11是示出根据一些示例实施方式的由虚拟渲染系统206基于上下文信息渲染的虚拟对象1100的界面图。如所示地,虚拟对象1100是基于来自计算设备的位置组件的输入数据而选择以及响应于来自计算设备的位置组件的输入数据而渲染的文本字符串(“72市场”)。虚拟对象1100在计算设备的摄像机馈送内描绘的现实世界城市环境内相对于路面被渲染。如所示地,包括特定排版的渲染风格化至少部分地基于计算设备的位置(如由位置数据确定的)应用于文本字符串作为渲染的虚拟对象1100的一部分。也就是说,形成虚拟对象1100的文本字符串和风格化特定于计算设备的当前位置,并且可以在不同的位置渲染具有不同风格化的不同文本字符串。
110.图12是示出根据一些示例实施方式的机器1200的组件的框图,所述组件能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文中讨论的方法中的任何一个或更多个方法。具体地,图12示出了以计算机系统的示例形式的机器1200的图解表示,在该机器1200内可以执行用于使机器1200执行本文中讨论的方法中的任何一个或更多个方法的指令1210(例如,软件、程序、应用、小程序、app或其他可执行代码)。因此,指令1210可以用于实现本文中描述的模块或组件。指令1210将一般的非编程机器1200变换为特定机器1200,该特定机器1200被编程为以所描述的方式执行所描述和所示的功能。在替选实施方式中,机器1200作为独立设备操作,或者可以耦接(例如,联网)至其他机器。在联网部署中,机器1200可以在服务器客户端网络环境中以服务器机器或客户端机器的能力操作,或者在对等式(或分布式)网络环境中作为对等机器操作。机器1200可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板电脑、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能手机、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能设备)、其他智能设备、web设备、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指令1210的任何机器,所述指令1210指定要由机器1200采取的动作。此外,虽然仅示出了单个机器1200,但是术语“机器”也应被视为包括单独或共同执行指令1210以执行本文中讨论的方法中的任何一个或更多个方法的机器集合。
111.机器1200可以包括处理器1204、存储器/存储装置1206以及i/o组件1218,上述组件可以被配置成例如经由总线1202彼此通信。在示例实施方式中,处理器1204(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理
单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)、其他处理器或其任何合适的组合)可以包括例如可以执行指令1210的处理器1208和处理器1212。术语“处理器”旨在包括多核处理器1204,所述多核处理器1204可以包括可以同时执行指令的两个或更多个独立处理器(有时称为“核”)。虽然图12示出了多个处理器,但是机器1200可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器、或其任何组合。
112.存储器/存储装置1206可以包括存储器1214例如主存储器或其他存储器存储装置以及存储单元1216,存储器1214和存储单元1216二者都可以例如经由总线1202由处理器1204访问。存储单元1216和存储器1214存储实施本文中描述的方法或功能中的任何一个或更多个的指令1210。指令1210还可以在由机器1200执行指令1210期间全部地或部分地驻留在存储器1214内、驻留在存储单元1216内、驻留在处理器1204中的至少一个内(例如,驻留在处理器的高速缓冲存储器内)或其任何合适的组合内。因此,存储器1214、存储单元1216和处理器1204的存储器是机器可读介质的示例。
113.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可以包括字母数字输入组件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸姿势的位置和/或力的触摸屏或其他触觉输入组件)、音频输入组件(例如,麦克风)等。
114.在其他示例实施方式中,i/o组件1218可以包括在各种各样其他组件之中的生物识别组件1230、运动组件1234、环境组件1236或定位组件1238。例如,生物识别组件1230可以包括检测表达(例如,手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)的组件、测量生物信号(例如,血压、心率、体温、汗水或脑波)的组件、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)的组件等。运动组件1234可以包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件1236可以例如包括照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或更多个温度计)、湿度传感器组件、压力传感器组件(例如,气压计)、声学传感器组件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器组件(例如,检测附近对象的红外传感器)、气体传感器(例如,用于检测危险气体的浓度以确保安全或测量大气中的污染物的气体检测传感器)或者可以提供与周围物理环境相对应的指示、测量或信号的其他组件。定位组件1238可以包括位置传感器组件(例如,gps接收器组件)、高度传感器组件(例如,检测从其可能得到高度的空气压力的高度计或气压计)、取向传感器组件(例如,磁力
计)等。
115.可以使用各种各样的技术来实现通信。i/o组件1218可以包括可操作以分别经由耦接1224和耦接1222将机器1200耦接至网络1232或设备1220的通信组件1240。例如,通信组件1240可以包括网络接口组件或者与网络1232接口的其他合适的设备。在其他示例中,通信组件1240可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如,低功耗)、组件以及经由其他方式提供通信的其他通信组件。设备1220可以是其他机器或多种外围设备中的任何一种(例如,经由usb耦接的外围设备)。
116.此外,通信组件1240可以检测标识符或包括可操作以检测标识符的组件。例如,通信组件1240可以包括射频识别(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,检测诸如通用产品代码(upc)条码的一维条码、多维条码例如快速响应(qr)代码、aztec代码、数据矩阵、dataglyph、maxicode、pdf417、超代码、ucc rss-2d条码和其他光学代码的光学传感器)或声学检测组件(例如,识别标记的音频信号的麦克风)。另外,可以经由通信组件1240得到各种信息,例如经由因特网协议(ip)地理位置得到位置、经由信号三角测量得到位置、经由检测可以指示特定位置的nfc信标信号得到位置等。
117.术语表:
118.在该上下文中,“载波信号”是指能够存储、编码或携带以供机器执行的指令的任何无形介质,并且包括数字或模拟通信信号或其他无形介质,以便于这样的指令的通信。可以经由网络接口设备使用传输介质以及使用多个公知的传输协议中的任何一个,通过网络发送或接收指令。
119.在该上下文中,“客户端设备”是指与通信网络接口以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、台式计算机、膝上型计算机、pda、智能手机、平板电脑、超级本、上网本、膝上型电脑、多处理器系统、基于微处理器的或可编程消费电子产品、游戏机、机顶盒或者用户可以使用以接入网络的任何其他通信设备。
120.在该上下文中,“通信网络”是指网络的一个或更多个部分,网络可以是自组织(ad hoc)网络、内联网、外联网,虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、因特网、因特网的一部分、公共交换电话网络(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、其他类型的网络、或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接、或者其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电服务(gprs)技术、增强数据速率gsm演进(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准、由各种标准设置组织定义的其他数据传输技术、其他远程协议或其他数据传输技术。
121.在该上下文中,“暂时消息”是指可在时间受限的持续时间内访问的消息。暂时消
息可以是文本、图像、视频等。暂时消息的访问时间可以由消息发送者设置。可替选地,访问时间可以是默认设置或者由接收者指定的设置。无论设置技术如何,消息都是暂态的。
122.在该上下文中,“机器可读介质”是指能够临时或永久地存储指令和数据的组件、设备或其他有形介质,并且可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪速存储器、光学介质、磁介质、高速缓冲存储器、其他类型的存储装置(例如,可擦除可编程只读存储器(eeprom))和/或其任何合适的组合。术语“机器可读介质”应被视为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库、或相关联的缓存和服务器)。术语“机器可读介质”还应被视为包括任何介质或多个介质的组合,这些介质能够存储以供机器执行的指令(例如,代码),使得指令在由机器的一个或更多个处理器执行时使机器执行本文中所述的方法中的任何一个或更多个方法。因此,“机器可读介质”是指单个存储装置或设备、以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”不包括信号本身。
123.在该上下文中,“组件”是指具有由函数或子例程调用、分支点、api或为特定处理或控制功能的分区或模块化提供的其他技术限定的边界的设备、物理实体或逻辑。可以经由其与其他组件的接口来组合组件以执行机器过程。组件可以是封装的功能硬件单元,该封装的功能硬件单元被设计成用于与其他组件以及通常执行相关功能的特定功能的程序的一部分一起使用。组件可以构成软件组件(例如,在机器可读介质上实施的代码)或硬件组件。“硬件组件”是能够执行特定操作的有形单元,并且可以以某个物理方式被配置或布置。在各种示例实施方式中,一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或更多个硬件组件(例如,处理器或一组处理器)可以由软件(例如,应用或应用部分)作为硬件组件配置,该硬件组件操作以执行如本文中所述的特定操作。还可以机械地、电子地或以其任何合适的组合来实现硬件组件。例如,硬件组件可以包括被永久配置成执行特定操作的专用电路系统或逻辑。硬件组件可以是专用处理器,例如现场可编程门阵列(fpga)或asic。硬件组件还可以包括由软件临时配置成执行特定操作的可编程逻辑或电路系统。例如,硬件组件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件被配置,硬件组件就变为被唯一定制成执行配置的功能的特定机器(或机器的特定组件),并且不再是通用处理器。应当理解,可以通过成本和时间考虑来驱动机械地、以专用和永久配置的电路系统、或者以临时配置的电路系统(例如,由软件配置)实现硬件组件的决定。因此,短语“硬件组件”(或“硬件实现的组件”)应被理解为包含有形实体,即为被物理地构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式操作或执行本文中描述的某些操作的实体。考虑到其中硬件组件被临时配置(例如,编程)的实施方式,硬件组件中的每个不需要在任何一个时间实例处都被配置或实例化。例如,在硬件组件包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间分别被配置为不同的专用处理器(例如,包括不同的硬件组件)。因此,例如,软件将特定的一个处理器或多个处理器配置成在一个时间实例处构成特定硬件组件,以及在不同时间实例处构成不同的硬件组件。硬件组件可以向其他硬件组件提供信息,以及从其他硬件组件接收信息。因此,所描述的硬件组件可以被视为通信地耦接。在多个硬件组件同时存在的情况下,可以通过硬件组件中的两个或更多个之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在多个硬件组件在不同时间被配
置或实例化的实施方式中,可以例如通过在多个硬件组件访问的存储器结构中存储信息和检索信息来实现这样的硬件组件之间的通信。例如,一个硬件组件可以执行操作并将该操作的输出存储在其通信地耦接的存储器设备中。然后,另一个硬件组件可以在稍后时间访问存储器设备以检索和处理存储的输出。硬件组件还可以发起与输入设备或输出设备的通信,并且可以对资源(例如,信息集合)进行操作。本文中描述的示例方法的各种操作可以至少部分地由被临时配置(例如,由软件配置)或永久配置成执行相关操作的一个或更多个处理器来执行。无论是临时配置还是永久配置,这样的处理器可以构成操作以执行本文中描述的一个或更多个操作或功能的处理器实现的组件。如本文中所使用的,“处理器实现的组件”是指使用一个或更多个处理器实现的硬件组件。类似地,本文中描述的方法可以是至少部分处理器实现的,其中特定的一个处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或更多个处理器或者处理器实现的组件来执行。此外,一个或更多个处理器还可以操作以支持在“云计算”环境中相关操作的执行或作为“软件即服务”(saas)操作。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,其中这些操作可经由网络(例如,因特网)以及经由一个或更多个适当的接口(例如,api)访问。某些操作的执行可以分布在处理器之间,处理器不仅驻留在单个机器内,而且还部署在多个机器上。在一些示例实施方式中,处理器或处理器实现的组件可以位于单个地理位置处(例如,在家庭环境、办公环境或服务器场中)。在其他示例实施方式中,处理器或处理器实现的组件可以分布在多个地理位置上。
124.在该上下文中,“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器代码”等)操纵数据值并产生被应用以操作机器的相应输出信号的任何电路或虚拟电路(通过实际处理器上执行的逻辑模拟的物理电路)。处理器可以例如是cpu、risc处理器、cisc处理器、gpu、dsp、asic、rfic或其任何组合。处理器还可以是具有可以同时执行指令的两个或更多个独立处理器(有时称为“核”)的多核处理器。
125.在该上下文中,“时间戳”是指标识某个事件何时发生的一系列字符或编码信息,例如给出日期和时间,有时会精确到几分之一秒。
再多了解一些

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

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

相关文献