相关申请
本申请要求于2018年5月7日提交的美国临时专利申请号62/668,205的优先权和权益。美国临时专利申请号62/668,205的全部内容通过引用合并于此。
本公开总体上涉及增强现实或虚拟现实。更具体地,本公开涉及使用户能够将虚拟对象锚定到物理位置的系统和方法。
背景技术:
虚拟现实可以指通过感觉和感知模拟体验的计算机生成的环境。增强现实可以指已采用计算机添加的感知信息(可以称为虚拟对象)“增强”的物理真实世界环境的实时视图。例如,计算机添加的虚拟对象可以包括被设计为通过一种或多种感官模态(诸如例如视觉、听觉、触觉、体感和/或嗅觉)来体验的信息。
尽管一些虚拟或增强现实系统确实跨多个用户提供了一定程度的共享体验,但是这些系统通常依赖于虚拟环境生成和部署的自顶向下模型。该自顶向下模型不允许用户在物理世界内生成和锚定虚拟对象。此类模型也无法大规模共享用户锚定的虚拟对象,从而无法跨多个附加设备进行有效渲染。
技术实现要素:
本公开的实施例的方面和优点将在以下描述中部分地阐述,或者可以从描述中得知,或者可以通过实施例的实践而得知。
一个示例方面针对被配置为执行操作的一个或多个服务器计算设备。该操作包括从第一计算设备接收描述第一计算设备的周围环境的数据和描述第一计算设备的周围环境内的锚的姿态的数据,其中虚拟对象与锚相关联。该操作包括将描述锚的姿态的数据存储在数据存储设备中。该操作包括从第二计算设备接收对锚的姿态的请求。该操作包括向第二计算设备提供描述锚相对于第二计算设备的姿态的姿态的数据。
另一个示例方面针对被配置为执行操作的计算设备。该操作包括收集描述计算设备的周围环境的传感器数据。该操作包括从用户接收对生成用于计算设备的周围环境内的虚拟对象的锚的请求。该操作包括经由应用编程接口向服务器计算系统提供描述计算设备的周围环境的数据和描述用于计算设备的周围环境内的虚拟对象的锚的姿态的数据。
另一个示例方面针对被配置为执行操作的计算设备。该操作包括经由应用编程接口从服务器计算系统接收描述计算设备的周围环境内的虚拟对象的锚的姿态的数据。该操作包括根据锚的姿态在计算设备的显示器上渲染计算设备的周围环境内的虚拟对象。
本公开的其它方面针对各种系统、装置、非暂态计算机可读介质、用户界面和电子设备。
参考以下描述和所附权利要求,将更好地理解本公开的各种实施例的这些和其它特征、方面和优点。结合在本说明书中并构成本说明书的一部分的附图示出了本公开的示例实施例,并且与描述一起用于解释相关原理。
附图说明
在参考附图的说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,在附图中:
图1a-d描绘了根据本公开的示例实施例的示例计算系统配置。
图2描绘了根据本公开的示例实施例的用于增强现实系统的示例工作流的框图。
图3描绘了根据本公开的示例实施例的示例计算系统的框图。
具体实施方式
总体上,本公开针对允许第一用户将虚拟对象锚定到物理位置并且允许第二用户查看该物理位置处的虚拟对象的系统和方法。特别地,本公开的各方面针对使第一计算设备能够(例如基于由第一设备所收集的传感器数据)生成其物理环境的自组织映射并将虚拟对象定位和锚定在此类映射内的物理位置处的工作流、应用编程接口(“api”)和计算系统基础结构。可以将描述映射和虚拟对象的数据存储在云数据库中,并且然后由第二设备使用或用于第二设备在锚的位置处渲染该虚拟对象。例如,第二设备的渲染可以基于(例如,基于由第二设备收集的传感器数据而生成的)第二设备的物理环境的第二自组织映射。
更特别地,本公开的中心方面是“锚”的放置和使用。锚通常可以指在物理世界和虚拟世界之间定义的连接。锚的使用允许虚拟内容在物理世界内的放置和定位(例如,由个体用户),并且随后允许在锚位置处的物理世界上渲染锚定的虚拟内容。
因此,锚通常对应于或包括真实世界(例如,特定桌子的拐角)中的姿态(例如,定位和取向)。例如,姿态可以在诸如笛卡尔坐标框架的坐标框架内表达。可以以允许用户将虚拟对象附加到该姿态的方式通过使用api经由软件开发工具包(“sdk”)来浮现该姿态。例如,系统可以允许用户将虚拟对象放置在桌子的拐角上。
在已经放置锚之后,可以将其存储在云系统中,并且然后可以(例如,经由api)将其服务于附加设备。因此,当附加设备寻求在特定桌子处享受ar体验时,虚拟对象将重新出现在确切的相同位置中。即使与放置锚的设备相关联的应用已关闭,情况仍然如此。
为了使该识别起作用,可以使计算设备能够描述/理解锚周围的场景看起来是什么样的。因此,在一些实施方式中,每个设备可以收集传感器数据(例如,由(一个或多个)相机捕捉的图像),并且可以以使得设备可以相对于锚定位的方式记忆或以其它方式确定周围场景的几何形状和外观。
因此,本文描述的系统和方法支持增强现实(“ar”)和/或虚拟现实(“vr”)多用户“共享”体验(例如,其中会话大致同时发生)和/或“持久性”体验(例如,一个或多个用户的多个会话同时和/或在不同的时间发生),其中使存在于锚的位置处的一个或多个第二用户可以看到由第一用户锚定到物理世界的虚拟对象。特别地,包括跨平台api和sdk的云基础结构能够实现跨多个不同的设备和用户的无缝共享体验。
在一些实施方式中,可以在被称为感兴趣框架(“framesofinterest,foi”)的数据结构中描述由用户生成的锚。foi可以描述虚拟对象已以其被锚定的姿态(例如,定位和取向)。在一些实施方式中,一个或多个虚拟对象已经被锚定处的位置可以被称为ar或vr“热点”。
在一些实施方式中,锚可以相对于环境中的一个或多个视觉特征(例如,描述符和检测器)定位。在一些实施方式中,由放置锚的用户操作的计算设备(例如,其应用)可能需要从他们希望锚稍后从其被识别的任何视角(perspective)查看锚。设备和/或应用可以主动地(例如在映射步骤期间,例如,其中向用户提供在ar内容位置周围走动的指令)或被动地(例如,在常规应用使用期间)收集视觉信息。在一些实施方式中,锚还可以包括图像或视频剪辑或与其相关联以帮助用户识别锚被放置的位置(例如,当与将需要找到ar锚的其他用户共享时,这可能特别有用)。该附加图像收集和存储也可能有助于开发更优的视觉特征。
在一些实施方式中,foi描述了锚的姿态,但是不一定描述虚拟对象本身。相反,例如,可以简单地引用虚拟对象的模型,并且可以从一些其它位置(例如,云数据库、应用中包含的固定资产集合和/或一些其它通道)访问虚拟对象的模型。因此,可以将ar伪像相对于锚定位。ar伪像可以存储在第一方伪像索引中,或者它们可以由第三方应用或应用后端管理。锚可以支持所有这些用例,并且不一定需要使用第一方索引。
锚的姿态(例如,定位和取向)可以根据物理世界的一部分的映射或相对于物理世界的一部分的映射来定义。该映射可以是先前生成的全局映射,或者根据本公开的一方面,该映射可以是基于由寻求建立锚定的设备收集的传感器数据而生成的局部映射。
在一些实施方式中,可以在被称为区域描述文件(“areadescriptionfile,adf”)的数据结构中存储和描述物理世界的一部分的映射。adf可以包括环境的地图,该环境的地图以允许ar渲染算法识别场景和/或相对于场景定位设备的方式描述场景的外观和几何形状。
在一些实施方式中,adf不公开地暴露。adf可以与其它adf合并,并且可以随时间推移以附加数据增强。例如,合并两个或更多个adf可以包括将两个或更多个adf提供的数据组合到具有单个共享坐标框架的单个文件中。在一些情况下,如果adf描述的环境至少部分地重叠,则可以合并它们。
根据一个方面,本公开提供了支持虚拟内容在物理世界中的持久放置而不需要预先映射的空间的api和系统基础结构。特别地,本公开提供了计算基础结构,该计算基础结构使能基于云的存储和服务对锚定和渲染虚拟对象有用的信息,诸如例如环境映射和虚拟对象描述。
作为一个示例,服务器计算系统可以提供视觉定位服务(visualpositioningservice,vps),该视觉定位服务可以可选地作为“云”中的服务来提供。vps可以生成、接收、存储、使用和/或服务于描述虚拟对象的锚定姿态的foi和描述底层映射数据的adf。vps可以管理、合并、优化和/或压缩foi和/或adf。例如,可以通过其对应的foi共享和/或索引adf。
因此,在一些实施方式中,计算系统(例如,由服务器计算系统提供的vps)可以执行foi的管理。例如,在一些实施方式中,可以通过api请求应在当前会话中显示的foi。然后,用户计算设备可以从本地磁盘和/或通过vps(例如,使用图块或服务器侧查询)针对给定的foi加载必要的映射数据,并可以根据foi在场景内渲染虚拟对象。
根据另一方面,该计算系统(例如,由服务器计算系统提供的vps)可以实现foi的持久化。例如,在一些实施方式中,如果foi应该被持久化,则底层映射系统可以在foi创建期间采集必要的传感器数据(例如,用于识别和/或定位的原始和/或处理的视频数据)。持久性foi可以存储在foi商店中。在api之下,多个foi可以引用相同的映射数据,并且多个foi的映射数据可以合并为单个表示。
在一些实施方式中,计算系统可以提供支持vps的持久性。例如,在一些实施方式中,可以将foi和/或adf上传到vps后端以进行索引和处理。重叠的adf可以被合并并联合地完善。可以将映射数据的改进和/或压缩的版本下载回“原始”设备,从而允许该设备释放其存储器中的一些存储器。一旦foi持久化到云中,它们也可以与其它设备共享,用于共存体验或其它体验。与全局vps支架(scaffolding)重叠的adf也可以注册到全局支架。
在一些实施方式中,为了使多个会话(例如,在相同或不同的时间发生)能够一致地示出同一物理位置处的虚拟对象,所有涉及的电子设备(例如,诸如智能电话、头戴式显示器等的用户设备)必须理解它们相对于环境的姿态(例如,定位和取向)。因此,设备在很大程度上建立或以其他方式理解公共参考框架,并且知道它们在其内的姿态。一旦建立了此公共参考框架并启用了实时姿态估计,所有设备都可以以一致的方式渲染相关内容。
在一些情况下,上述多个设备之间的姿态共配准可以通过使用外部跟踪设备(诸如运动捕捉工作室中使用的设备)来实现。然而,对于普通的终端用户采用的更广泛的移动ar/vr系统,使用复杂的外部跟踪设备通常是不实际的。
鉴于该缺陷,本公开提供利用由设备的(一个或多个)相机、(一个或多个)惯性测量单元(“imu”)和/或其它传感器捕捉的视觉、惯性和/或其它感官信息建立公共参考框架的系统和方法。在一个示例工作流中,“托管设备”使用传感器信息构建环境的模型并构建环境的映射(例如,可以采取adf的形式),该环境的映射以原始形式或预处理形式发送到服务器计算系统(例如,服务器系统的vps)。在服务器系统处,在与来自“接收设备”的数据结合使用之前潜在地对信息进行进一步处理,以识别环境中的视觉元素。
在一些实施方式中,这些处理和识别步骤可以由服务器系统执行(例如,在这种情况下,接收设备可以向服务器发送传感器数据以用于识别)。可替代地,处理和识别步骤可以由接收设备执行(例如,在这种情况下,服务器系统将来自托管设备的感官信息发送到接收设备以用于处理)。在进一步的实施方式中,除了涉及服务器系统的路径之外,可替代地,设备之间的直接点对点连接也是可能的,其中两个设备直接交换视觉信息以建立公共参考框架。在此,数据处理可以由托管设备和/或接收设备执行。
一旦通过传感器数据的匹配建立了公共参考框架,则对于两个设备来说锚姿态(以及因此内容的定位)都是可解析的,并且允许跨两个设备的虚拟内容的一致渲染。因此,云锚实现了全局规模的持久性内容放置和发现。
特别地,在其中系统是跨平台的一些实施方式中,云锚服务api可以与用于不同平台(诸如google的arcore或apple的arkit)的低级api进行接口。该系统可以以固定或可变频率捕捉和/或经由api发送运动和视觉数据。该信息可涉及来自相机、imu和/或其它传感器的原始和/或预处理的传感器信息。然后将原始和/或预处理和/或压缩的信息发送到服务器后端,在服务器后端进一步处理和存储数据。在一些实施方式中,当接收设备想要解析锚柱(anchorpost)时,其将视觉数据发送到服务器或托管设备,该服务器或托管设备然后将该信息与托管设备创建的可视地图进行比较。一旦找到匹配,就可以返回接收设备的计算出的柱。与最初创建的锚姿态一起,可以渲染所期望的内容。
因此,在一些实施方式中,接收计算设备(例如,诸如智能电话、头戴式显示器或其它渲染设备的用户计算设备)可以执行foi定位和/或可以与服务器或其它托管设备一起工作以执行foi定位。例如,在一些实施方式中,只要设备上的应用访问foi坐标系统,底层映射数据就将保留在存储器中,并用于设备上foi的定位。通过在内部切换到最合适的adf,定位算法可以最准确地跟踪最接近用户的foi。未被活跃地跟踪的foi可能相对于相机姿态漂移。
对于持久化到云的foi,定位查询也可以由vps后端处理。应用可以向vps发送视觉查询,该视觉查询用于查询区域中所有附近的adf。一旦识别出adf并且可以在其中定位设备,foi(及其变换)就可用于应用以进行内容渲染。例如,服务器计算系统可以将所有foi变换到设备的服务开始(例如,最初)框架,以简化开发者工作流。为了准确跟踪foi,系统可能会决定将映射数据(例如图块)从服务器下载到设备。
在一些实施方式中,建立的锚可以具有限定的寿命。例如,在一些实施方式中,取决于例如捕捉的传感器数据的丰富度和/或其它特性,放置在ar热点处的内容的每一项可以具有有限的寿命。内容到期后,可以自动将其从系统中删除。为了使内容持续更长的时间,用户可以捕捉更多的传感器数据/视点/一天中的时间/等。拥有自动到期日期对于用户期望和后端基础结构具有很好的含义。
可以通过许多不同的方式来发现内容。在一个示例中,内容发现可以通过显式内容共享来发生。例如,在一些实施方式中,用户可以共享内容url或内容位置的其它指示,其包含关于在哪里找到体验的信息。一旦位于正确的物理位置,vps服务器系统就可以识别adf并解析内容相对于相机的姿态以进行渲染。信标设备是执行内容共享的一种潜在选项。例如,信标设备可以向特定空间中的所有用户告知相关内容。
在另一个示例中,内容发现可以通过视觉识别发生。例如,在一些实施方式中,内容可以公开地放置;锚定到支架和/或锚定到其本身的热点adf。用户可以通过使用vps识别其中放置了对象的附近地方来发现内容(例如,类似指南针的用户界面可以提供对体验的指导)。对于vps识别的adf,可以将对应的foi姿态发送到设备。反过来,可以使用可用的foi解析内容。
因此,在一个示例中,从近似位置(例如gps)开始,可以针对附近的adf对设备进行云定位,并且可以以设备坐标返回嵌入的锚及其姿态。然后,ar索引可以使用已识别锚的集合及其位置来检索可见内容。应用可以使用锚元数据进行过滤(例如,限制为由消费应用创建或可渲染的锚)。如果用户未主动使用ar,则还可使用位置来警告用户附近的ar内容的存在。
在一个示例使用中,各自具有一个设备的两个用户看向一个场景。他们可以在相同时间或在不同时间处在同一物理场景处。第一用户将对象放置在检测到的平面处,并且按下应用中的“发布”按钮。开始后台处理(例如,具有进度通知),该后台处理将记录的场景外观和foi数据发送到vps系统。一旦进度条达到100%,内容就变得对同一物理空间中的第二用户可见,而无需显式的映射或共享步骤。在一些实施方式中,可以提供使第一用户能够将对象的可见性限制为用户的特定子集(例如,第二用户)的控件。可替代地,用户可以允许对象对任何和所有用户的可见性。
可以利用云锚的示例应用包括娱乐应用(例如,基于位置的或多玩家(特别是异步或大型用户规模)的游戏、倾斜刷艺术装置(tiltbrushartinstallations)等);社交表达应用(例如,持久性装饰品(例如,ar礼物或装饰)、涂鸦墙、布告栏等);信息注释应用(例如,将时间表附于会议室,有关airbnb租赁的说明等);和/或其它类型的应用。
因此,在一些实施方式中,本公开提供或利用以下技术组件:用于放置源ar索引的资产的可浏览库;用于第一用户的对象放置的平面检测和用户界面;设备上和/或云foi管理;数据记录和上传(例如以压缩的传感器流和/或特征的形式,诸如例如作为mp4视频加imu数据);vps地图处理(例如,低延迟捆绑处理);vps定位器索引(例如按序列指纹识别和插入至动态索引);查询vps(例如动态和静态索引)以检索匹配的adf的可解析foi;检索通过微型adf或支架可定位的那些foi;以及为内容提供姿态并允许检索的foi。本文所述的系统提供了允许跨平台共享和持久化的第一arsdk。可以作为自动化(云后端)服务执行共享。
使用支持云的服务(例如,与纯设备上的服务相比)的益处包括:
公开和异步共享:可以广泛共享支持云的锚,而无需点对点连接或特定于应用的基础结构。
全局规模的锚存储和发现:云解决方案可以更有效地管理全局规模的ar内容创建、发现和检索。
改进的锚调用和精确性:云处理允许使用更多的计算和数据密集型算法,该算法利用使用情况数据来改进性能。工程师还可以在支持云的算法上更快地进行创新,并在不等待应用更新的情况下部署到终端用户。
跨平台:实施一次即可完成,并以较小设备占用空间分发到不同移动设备。
通用ar查看:以共享的索引和标准化内容格式,单个ar浏览应用可以渲染来自多个源的内容。
现在参考附图,将进一步详细讨论本公开的示例实施例。
示例计算系统配置
图1a-d描绘了根据本公开的示例实施例的示例计算系统配置。特别地,图1a描绘了示例系统,其中用于场景识别的锚信息和视觉数据被发送到服务器以进行中继和处理。然后,“接收设备”将传感器信息发送到服务器,并且服务器对来自接收设备的数据与“托管设备”的数据执行匹配。例如,执行匹配可以包括执行被设计用于定位和/或坐标对准的各种视觉特征匹配算法。匹配成功时,锚和设备姿态从服务器返回到“接收设备”。
图1b描绘了另一示例系统,其中用于场景识别的锚信息和视觉数据在被传递到第二设备之前被发送到服务器以进行中继和处理。在服务器将来自“托管设备”的传感器信息发送到接收设备的接收设备上计算“接收设备”的姿态的识别。因此,与其中在服务器设备处执行视觉匹配的图1a相比,在图1b中,在接收设备处执行视觉匹配。
图1c描绘了另一个示例系统,其中用于场景识别的锚信息和视觉数据直接在设备之间传递而不涉及服务器。“接收设备”将其视觉数据发送到“托管设备”,该托管设备返回两个设备的相对姿态和锚的姿态。因此,在图1c中,视觉匹配在托管设备处执行。
图1d描绘了另一个示例系统,其中用于场景识别的锚信息和视觉数据直接在设备之间传递而不涉及服务器。“托管设备”将其视觉数据和锚姿态发送到自行执行识别的“接收设备”。因此,在图1d中,视觉匹配在托管设备处执行。
示例工作流
图2描绘了用于增强现实系统的示例工作流的框图。可以通过由服务器计算系统实现的视觉处理系统来至少部分地(例如,除了所示出的设备200和250之外)实现所示的工作流。所示的工作流仅作为一个示例提供。也可以使用其它工作流。
首先,爱丽丝在她的安卓设备200上启动应用。接下来,设备200的arcore204开始运行运动跟踪。
接下来,爱丽丝放置并共享ar内容。调用arcore204创建锚。调用锚托管sdk202以共享锚。vpssdk202向vps服务器226调用createanchor()以创建云锚(a)。vpssdk202提取传感器信息并创建数据集(b)。vpssdk202将数据集上传到接收服务器210(c)。
数据集被存储在加密的短期存储装置212中(d)。上传服务器216将通知发送到热点处理器214(e)。热点处理器214接收dataset_uploaded通知,并开始从存储装置212优化adf,并将得到的地图保存在服务器存储装置218处用于服务(f)。
热点处理器214更新与fio存储装置222处的锚相关联的定位信息(g)。热点处理器214发送dataset_processed通知,并且上传服务器216通过清理来自短期存储装置212的数据集来响应dataset_processed通知(h)。
接下来,爱丽丝与鲍勃的ios设备250共享anchor_id(i)。该步骤也可以更早发生(例如,在(a)之后)。
设备250在他的ios设备上启动应用。arkit254运动跟踪从本地arkit坐标框架开始。
设备250检索由爱丽丝共享的ar内容。特别地,锚(vps)sdk252调用具有anchor_id、camera_features、sos_t_imu和imu_t_camera的resolveanchorpose()(j)。vps服务器226检查访问控制224(k)。假设设备250可以访问内容,则vps服务器226从锚获取adf_t_anchor,并将localize()调用到云定位服务220,该云定位服务220使用来自(f)的tile进行定位。vps服务器226将camera_t_anchor返回到锚(vps)sdk252(l)。vpssdk252调用arkit254以创建用于arkit跟踪的aranchor。
示例计算系统
图3描绘了根据本公开的示例实施例的示例计算系统100的框图。系统100包括通过网络180可通信地耦合的用户计算设备102、用户计算设备152和服务器计算系统130。例如,用户计算设备102、用户计算设备152与服务器计算系统130之间的通信可以通过使用应用编程接口来实现。
用户计算设备102可以是任何类型的计算设备,诸如例如个人计算设备(例如,膝上型计算机或台式计算机)、移动计算设备(例如,智能电话或平板计算机)、游戏控制台或控制器、可穿戴计算设备、嵌入式计算设备或任何其它类型的计算设备。
用户计算设备102包括一个或多个处理器112和存储器114。该一个或多个处理器112可以是任何合适的处理设备(例如,处理器核、微处理器、asic、fpga、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器114可以包括一个或多个非暂态计算机可读存储介质,诸如ram、rom、eeprom、eprom、闪存设备、磁盘等,及其组合。存储器114可以存储由处理器112执行以使用户计算设备102执行操作的指令118和数据116。
用户计算设备102可以包括软件开发工具包(sdk)120。sdk可以包括计算机可执行指令,该计算机可执行指令当由(一个或多个)处理器112执行时使用户计算设备102能够共享和接收用于三维对象的锚姿态。用户计算设备102还可以包括增强现实应用或引擎121。例如,增强现实应用或引擎121可以包括计算机可执行指令,该计算机可执行指令当由(一个或多个)处理器112执行时使用户计算设备102能够在用户计算设备102的显示器上渲染增强现实内容(例如,虚拟对象)。
用户计算设备102还可以包括接收用户输入的一个或多个用户输入组件122。例如,用户输入组件122可以是对用户输入对象(例如,手指或手写笔)的触摸敏感的触敏组件(例如,触敏显示屏或触摸板)。触敏组件可以用来实现虚拟键盘。其它示例用户输入组件包括麦克风、传统键盘或用户可通过其提供用户输入的其它手段。
用户计算设备102还可以包括一个或多个传感器123,诸如相机、加速度计、陀螺仪、雷达、激光雷达和/或多类型的传感器。传感器123可以收集描述用户计算设备102的周围环境的信息(例如,视觉信息)。
服务器计算系统130包括一个或多个处理器132和存储器134。该一个或多个处理器132可以是任何合适的处理设备(例如,处理器核、微处理器、asic、fpga、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器134可以包括一个或多个非暂态计算机可读存储介质,诸如ram、rom、eeprom、eprom、闪存设备、磁盘等,及其组合。存储器134可以存储由处理器132执行以使服务器计算系统130执行操作的指令138和数据136。
在一些实施方式中,服务器计算系统130包括一个或多个服务器计算设备或以其它方式由其实现。在服务器计算系统130包括多个服务器计算设备的情况下,此类服务器计算设备可以根据顺序计算体系结构、并行计算体系结构或其一些组合来操作。
服务器计算系统130可以包括视觉处理系统140。视觉处理系统140可以包括计算机可执行指令,该计算机可执行指令当被执行时使服务器计算系统接收、存储、索引并提供与虚拟锚相关联的姿态和环境信息。例如,视觉处理系统140可以至少部分地(例如,除了所示的设备200和250之外)实现图2所示的工作流。
视觉处理系统140可以与一个或多个数据库通信,所述一个或多个数据库诸如为:数据库141,其存储一个或多个区域描述文件(adf)或其它类型的环境映射;数据库142,其存储一个或多个感兴趣框架(foi)或其它类型的锚姿态数据;和/或数据库143,其存储可用于渲染一个或多个虚拟对象的数据。数据库可以是单个数据库,也可以是分布式数据库。虚拟对象可以是二维、三维、位置/形状固定的、动态的网格对象和/或其它类型的虚拟对象。
网络180可以是任何类型的通信网络,诸如局域网(例如,内联网)、广域网(例如,因特网)或其一些组合,并且可以包括任何数量的有线或无线链路。通常,可以使用各种通信协议(例如,tcp/ip、http、smtp、ftp)、编码或格式(例如,html、xml)和/或保护方案(例如vpn、安全http、ssl)经由任何类型的有线和/或无线连接来承载通过网络180的通信。
图3示出可用于实现本公开的一个示例计算系统。也可以使用其它计算系统。
附加公开
本文讨论的技术参考服务器、数据库、软件应用和其它基于计算机的系统,以及采取的行动和发送往返此类系统的信息。基于计算机的系统的固有灵活性允许在组件之间以及组件之中进行多种可能的配置、组合以及任务和功能的划分。例如,本文讨论的过程可以使用单个设备或组件或组合工作的多个设备或组件来实现。数据库和应用可以在单个系统上实现,或可以跨多个系统分布。分布式组件可以顺序或并行操作。
计算设备可以指任何类型的计算设备,包括例如智能电话、膝上型计算机、台式计算机、服务器计算设备、嵌入式计算设备、游戏控制台、智能设备等。计算设备通常包括一个或多个处理器和存储器。该一个或多个处理器可以是任何合适的处理设备(例如,处理器核、微处理器、asic、fpga、控制器、微控制器等),并且可以是一个处理器或可操作连接的多个处理器。存储器可以包括一个或多个非暂态计算机可读存储介质,诸如ram、rom、eeprom、eprom、闪存设备、磁盘等,及其组合。存储器可以存储由处理器执行以使计算设备执行操作的指令和数据。可以以软件、硬件、固件或其组合来实现计算设备的功能方面。
尽管已经关于本主题的各种特定示例实施例详细描述了本主题,但是每个示例都是通过说明的方式提供的,而不是对本公开的限制。本领域技术人员在获得了对前述内容的理解之后,可以容易地对此类实施例进行变更、变化和等同。因此,本公开并不排除如对本领域的普通技术人员而言显而易见的对本主题的此类修改、变化和/或添加的包含。例如,作为一个实施例的一部分示出或描述的特征可以与另一实施例一起使用以产生另一实施例。因此,本公开旨在覆盖此类变更、变化和等同。