具体实施方式
描述了使用移动设备来生成个性化增强现实环境的技术。移动设备可显示与基于状态的虚拟对象相关联的一个或多个图像,使得虚拟对象被感知到存在于真实世界环境内。基于状态的虚拟对象可以与多个不同状态相关联。多个不同状态中的每个状态可对应于一组唯一的与任何其他状态事件不同的触发事件。与特定状态相关联的这组触发事件可用于确定何时需要从特定状态的状态改变。在一些情况下,多个不同状态中的每个状态可与不同的3-D模型或形状相关联。在其他情况中,多个不同状态中的每个状态可与不同的虚拟对象属性(例如,虚拟质量或虚拟反射率程度)相关联。可使用支持基于状态的虚拟对象的预定和标准化文件格式来定义多个不同状态。在一些实施例中,可基于与这组触发事件相关联的一个或多个触发概率,来预测从特定状态的一个或多个潜在的状态改变。
随着连续启用和连接到网络的移动计算设备(诸如头戴式显示设备(HMD))的出现和增长,这些计算设备的终端用户可用的信息量在任意给定时刻都是巨大的。在一些情况中,增强现实环境可被移动计算设备的终端用户感知到。在一个示例中,增强现实环境可包括个性化的增强现实环境,其中基于对终端用户的标识、与终端用户相关联的用户偏好、终端用户的物理位置、或与终端用户的物理位置相关联的环境特征来生成和显示一个或多个虚拟对象。在一个实施例中,一个或多个虚拟对象可由移动计算设备经由补充信息提供者来获取。为了允许对虚拟对象的高效存储和交换,一个或多个虚拟对象可用预定和标准化文件格式来实现。一个或多个虚拟对象中的每个虚拟对象可与多个不同状态相关联。虚拟对象的当前状态可经由在预定和标准化文件格式内编码的状态图来确定。
图1是可在其中实现所公开的技术的联网计算环境100的一个实施例的框图。联网计算环境100包括多个计算设备,所述计算设备通过一个或多个网络180互连。所述一个或多个网络180允许特定计算设备连接到另一计算设备以及与其通信。所描绘的计算设备包括移动设备11、移动设备12、移动设备机19和服务器15。在一些实施例中,多个计算设备可以包括未示出的其他计算设备。在一些实施例中,多个计算设备可以包括比图1所示计算设备的数目更多或更少的计算设备。一个或多个网络180可以包括诸如企业专用网络之类的安全网络、诸如无线开放式网络之类的不安全网络、局域网(LAN)、广域网(WAN)、以及因特网。一个或多个网络180中的每个网络可以包括集线器、网桥、路由器、交换机、以及有线传输介质,比如有线网络或直接有线连接。
可包括补充信息服务器或应用服务器的服务器15可允许客户机从该服务器下载信息(例如,文本、音频、图像和视频文件)或者执行与存储在该服务器上的特定信息相关的搜索查询。一般而言,“服务器”可以包括在客户端-服务器关系中充当主机的硬件设备、或者与一个或多个客户端共享资源或为所述客户端执行工作的软件过程。客户机-服务器关系下的计算设备之间的通信可以由客户机通过向服务器发送要求访问特定资源或执行特定工作的请求来发起。服务器随后可以执行所请求的动作并且将响应发送回客户机。
服务器15的一个实施例包括网络接口155、处理器156、存储器157和翻译器158,所有这些都彼此通信。网络接口155允许服务器15连接到一个或多个网络180。网络接口155可以包括无线网络接口、调制解调器、和/或有线网络接口。处理器156允许服务器15执行存储在存储器157中的计算机可读指令以执行在此讨论的过程。翻译器158可包括用于将第一文件格式的第一文件翻译成第二文件格式的对应第二文件的映射逻辑(即,第二文件是经翻译的版本的第一文件)。可使用文件映射指令来配置翻译器158,该文件映射指令提供用于将第一文件格式的文件(或其部分)映射成第二文件格式的对应文件的指令。
移动设备19的一个实施例包括网络接口145、处理器146、存储器147、相机148、传感器149、以及显示器150,所有这些都彼此通信。网络接口145允许移动设备19连接到一个或多个网络180。网络接口145可以包括无线网络接口、调制解调器、和/或有线网络接口。处理器146允许移动设备19执行存储在存储器147中的计算机可读指令以执行在此讨论的过程。相机148可以捕捉色彩图像和/或深度图像。传感器149可生成与移动设备19相关联的运动和/或定向信息。传感器149可包括惯性测量单元(IMU)。显示器150可显示数字图像和/或视频。显示器150可包括透视显示器。
联网计算环境100可以为一个或多个计算设备提供云计算环境。云计算是指基于因特网的计算,其中共享的资源、软件和/或信息通过因特网(或其他全局网络)被按需提供给一个或多个计算设备。基于在计算机网络图中使用云图来将因特网描绘成对其所表示的底层基础设施的抽象,术语“云”被用作对因特网的比喻。
在一个示例中,移动设备19包括为头戴式显示设备(HMD)的终端用户提供增强现实环境或混合现实环境的头戴式显示设备。HMD可包括视频透视和/或光学透视系统。终端用户佩戴的光学透视HMD可允许(例如经由透明透镜)对真实世界环境的实际直接查看,并且可同时将虚拟对象的图像投影到终端用户的视野中,由此用虚拟对象来增强终端用户所感知的真实世界环境。
佩戴HMD的终端用户可利用该HMD在真实世界环境(例如,起居室)中四处移动,并感知用虚拟对象的图像来覆盖的真实世界的视图。虚拟对象可以看起来维护与真实世界环境的相关空间关系(即,当终端用户在真实世界环境中转动他们的头或移动时,显示给该终端用户的图像将改变,使得虚拟对象看起来像被终端用户感知的那样存在于该真实世界环境内)。虚拟对象还可看起来相对于终端用户的视角是固定的(例如,无论终端用户如何在真实世界环境中转动他们的头或移动,总是出现在终端用户视角的右上角的虚拟菜单)。在一个实施例中,真实世界环境的环境映射由服务器15(即,在服务器侧)来执行,而相机本地化在移动设备19上(即,在客户机侧)执行。虚拟对象可包括与真实世界对象相关联的文本描述。虚拟对象还可包括虚拟障碍(例如,不能移动的虚拟墙壁)和虚拟目标(例如,虚拟怪物)。
在一些实施例中,移动设备(诸如移动设备19)可与云中的服务器(诸如服务器15)通信,并可提供与移动设备相关联的服务器位置信息(例如,经由GPS坐标的移动设备的位置)和/或图像信息(例如,与在移动设备的视野内检测到的对象有关的信息)。作为响应,服务器可基于提供给该服务器的位置信息和/或图像信息向移动设备传送一个或多个虚拟对象。在一个实施例中,移动设备19可指定用于接收一个或多个虚拟对象的特定文件格式,并且服务器15可向移动设备19传送特定文件格式的文件内包含的一个或多个虚拟对象。
图2A描绘了与第二移动设备5通信的移动设备19的一个实施例。移动设备19可包括透视HMD。如所描绘的,移动设备19经由有线连接6与移动设备5通信。然而,移动设备19还可经由无线连接与移动设备5通信。移动设备5可由移动设备19用来卸载计算密集的处理任务(例如,呈现虚拟对象),并存储在移动设备19上提供增强现实环境所必要的虚拟对象信息和其他数据。
图2B描绘了HMD(诸如图1的移动设备19)的一部分的一个实施例。仅描绘了头戴式显示设备(HMD)200的右侧。HMD 200包括右镜腿202、鼻梁204、镜片216、以及镜片框214。右镜腿202包括与处理单元236通信的捕捉设备213(例如,前向相机和/或话筒)。捕捉设备213可包括用于记录数字图像和/或视频的一个或多个相机,并可将视觉记录传送到处理单元236。一个或多个相机可捕捉色彩信息、IR信息、和/或深度信息。捕捉设备213还可包括用于记录声音的一个或多个话筒,并可将音频记录传送到处理单元236。
右镜腿202还包括耳机230、运动和定向传感器238、GPS接收器232、电源239、以及无线接口237,所有这些都与处理单元236通信。运动和定向传感器238可以包括三轴磁力计、三轴陀螺仪、和/或三轴加速度计。在一个实施例中,运动和定向传感器238可包括惯性测量单元(IMU)。GPS接收器可确定与HMD 200相关联的GPS位置。处理单元236可以包括一个或多个处理器和用于存储将要在所述一个或多个处理器上执行的计算机可读指令。存储器还可存储要在一个或多个处理器上执行的其它类型的数据。
在一个实施例中,镜片216可包括透视显示器,处理单元236生成的图像由此可被投影和/或显示在透视显示器上。捕捉设备213可被校准,使得捕捉设备213所捕捉的视野对应于HMD 200的终端用户所看到的视野。耳机230可用于输出与虚拟对象的投影图像相关联的声音。在一些实施例中,HMD 200可包括两个或更多个前向相机(例如,每个镜腿上一个相机),以便从与前向相机所捕捉的视野相关联的立体信息中获得深度。两个或更多个前向相机还可包括3-D、IR、和/或RGB相机。也可从利用来自运动技术的深度的单个相机中获取深度信息。例如,可从单个相机获取两个图像,该相机与不同时间点处的空间中两个不同的点相关联。之后,给定与空间中两个不同点有关的位置信息,可执行视差计算。
在一些实施例中,HMD 200可使用与一个或多个人类眼睛元素(诸如角膜中心、眼球旋转的中心、或瞳孔中心)有关的注视检测元件和三维坐标系统,来为终端用户眼睛中的每只眼睛执行注视检测。注视检测元件的示例可包括生成闪光的照明器和用于捕捉表示所生成的闪光的数据的传感器。在一些情况中,角膜中心可以基于两次闪光使用平面几何来确定。角膜中心链接瞳孔中心和眼球的旋转中心,这可被当作用于在特定注视或观看角度确定终端用户的眼睛的光轴的固定位置。
图2C描绘了HMD的一部分的一个实施例,其中延伸到注视点的注视向量用于对准远瞳孔间距(IPD)。HMD 2是移动设备的一个示例,诸如图1中的移动设备19。如所描绘的,注视向量180l和180r在远离终端用户的注视点处相交(即,当终端用户正在看远处的对象时,注视向量180l和180r不相交)。基于Gullstrand示意眼模型示出了每只眼睛的眼球160l、160r的眼球模型。每只眼球被建模成具有旋转中心166的球体,并且包括被建模成球且具有中心164的角膜168。角膜168随着眼球旋转,并且眼球的旋转中心166可被当作固定点。角膜168覆盖虹膜170,瞳孔162处于虹膜170的中心。每个角膜的表面172上是闪光174和176。
如图2C所描绘的,传感器检测区域139(即分别是139l和139r)与眼镜架115内的每一显示光学系统14的光轴相对准。在一个示例中,与该检测区域相关联的传感器可包括能够捕捉表示分别由镜架115左侧的照明器153a和153b生成的闪光174l和176l的图像数据以及表示分别由镜架115右侧的照明器153c和153d生成的闪光174r和176r的数据的一个或多个相机。通过眼镜架115中的显示光学系统14l和14r,终端用户的视野包括现实对象190、192和194以及虚拟对象182和184。
从旋转中心166穿过角膜中心164到瞳孔162而形成的轴178包括眼睛的光轴。注视向量180也被称为从凹坑穿过瞳孔中心162延伸的视线或视轴。在一些实施例中,光轴被确定,并且通过用户校准来确定小型校正以获得被选作注视向量的视轴。对于每一终端用户,虚拟对象可由显示设备在不同的水平和垂直位置处的多个预先确定的位置中的每一位置处来显示。在对象在每一位置处的显示过程中,可以计算每一眼睛的光轴,并且光线被建模成从该位置延伸到用户眼睛中。具有水平和垂直分量的注视偏移角可以基于必须如何移动光轴以与所建模的光线相对准来确定。从不同的位置处,具有水平或垂直分量的平均注视偏移角可被选作要被应用于每一计算出的光轴的小型校正。在一些实施例中,仅水平分量被用于注视偏移角校正。
如图2C所描绘的,由于当向量在注视点处从眼球延伸到视野中而变得更加靠近在一起,因此注视向量180l和180r不是完全平行的。在每一显示光学系统14处,注视向量180看起来与光轴相交,传感器检测区域139以这一交点为中心。在这一配置中,光轴与瞳孔间距(IPD)对准。在终端用户看向正前方时,测得的IPD也被称为远IPD。
图2D描绘了HMD 2的一部分的一个实施例,其中延伸到注视点的注视向量用于对准近瞳孔间距(IPD)。HMD 2是移动设备的一个示例,诸如图1中的移动设备19。如所描绘的,左眼的角膜168l被旋转到右侧或朝向终端用户的鼻子,并且右眼的角膜168r被旋转到左侧或朝向终端用户的鼻子。两个瞳孔正在注视终端用户的特定距离内的现实对象194。始自每只眼睛的注视向量180l和180r进入真实对象194所处的Panum汇合区域195。Panum汇合区域是像人类视觉那样的双眼观察系统中的单视觉的区域。注视向量180l和180r的相交指示终端用户正在看现实对象194。在这样的距离处,随着眼球向内旋转,它们的瞳孔之间的距离减少到近IPD。近IPD通常比远IPD小大约4mm。近IPD距离准则(例如,距离终端用户小于四英尺处的注视点)可用来将显示光学系统14的IPD对准切换或调整成近IPD的对准。对于近IPD,每一显示光学系统14可以朝终端用户的鼻子移动,使得光轴以及检测区域139朝鼻子移动几毫米,如检测区域139ln和139rn所表示的。
关于为HMD的终端用户确定IPD并由此调整显示光学系统的更多信息可在2011年9月30日提交的美国专利申请号13/250,878、题为“PersonalAudio/Visual System(个人音频/视频系统)”中找到,该专利申请通过引用全部包含于此。
图2E描绘了HMD2的一部分的一个实施例,该HMD具有包括注视检测元件的可移动显示光学系统。表现为每只眼睛的镜片的是每只眼睛的显示光学系统14,即14r和14l。显示光学系统包括用于将虚拟内容与通过HMD的透镜看到的实际直接现实世界视图无缝地融合的透视透镜和光学元件(例如,反射镜、过滤器)。显示光学系统14具有一般处于透视透镜中心的光轴,其中光一般被校准来提供无失真视图。例如,在眼睛护理专业人员使一副普通眼镜适合于终端用户的脸部时,该眼镜通常在每一瞳孔与相应镜片的中心或光轴相对准的位置处落在终端用户的鼻子上,从而通常使得校准光到达终端用户的眼睛以得到清晰或无失真的视图。
如图2E所描绘的,至少一个传感器的检测区域139r、139l与其相应显示光学系统14r、14l的光轴相对准,使得检测区域139r、139l的中心捕捉沿着光轴的光。如果显示光学系统14与终端用户的瞳孔对准,则相应传感器134的每一检测区域139与终端用户的瞳孔相对准。检测区域139的反射光经由一个或多个光学元件被传送到相机的实际图像传感器134,在该实施例中传感器134由处于镜架115内部的虚线示出。
在一个实施例中,该至少一个传感器134可以是可见光相机(例如,RGB相机)。在一个示例中,光学元件或光引导元件包括是部分透射且部分反射的可见光反光镜。可见光相机提供终端用户的眼睛的瞳孔的图像数据,而IR光电探测器152捕捉作为频谱的IR部分中的反射的闪光。如果使用可见光相机,则虚拟图像的反射可以出现在该相机所捕捉的眼睛数据中。图像过滤技术可被用来在需要时移除虚拟图像反射。IR相机对眼睛上的虚拟图像反射是不敏感的。
在另一个实施例中,至少一个传感器134(即,134l和134r)是IR辐射可被定向到的IR相机或位置敏感检测器(PSD)。从眼睛反射的IR辐射可以来自照明器153、其他IR照明器(未示出)的入射辐射或者来自从眼睛反射的环境IR辐射。在一些情况中,传感器134可以是RGB和IR相机的组合,并且光引导元件可包括可见光反射或转向元件和IR辐射反射或转向元件。在一些情况中,相机134可被嵌入在系统14的镜片中。另外,可以应用图像过滤技术来将相机混合到用户视野中以减轻对用户的任何干扰。
如图2E所描绘的,有四组照明器153,照明器153与光电检测器152配对并由障碍154分开以避免照明器153所生成的入射光与在光电检测器152处接收到的反射光之间的干扰。为了在附图中避免不必要的混乱,就代表性的一对示出了附图标记。每一照明器可以是生成大约预定波长的窄光束的红外(IR)照明器。光电检测器中的每一个可被选择来捕捉大约该预定波长的光。红外还可包括近红外。因为照明器或光电检测器可能存在波长漂移或者波长周围的微小范围是可接受的,所以照明器和光电检测器可以具有与用于生成或检测的波长有关的容限范围。在传感器是IR相机或IR位置敏感检测器(PSD)的一些实施例中,光电检测器可包括附加数据捕捉设备并且也可被用来监视照明器的操作,例如波长漂移、波束宽度改变等。光电检测器还可提供闪光数据,其中可见光相机作为传感器134。
如图2E所描绘的,每一显示光学系统14以及它面向每一眼睛的注视检测元件的安排(例如,相机134及其检测区域139、照明器153以及光电检测器152)位于可移动的内部镜架部分171l、171r上。在该示例中,显示调整机构包括具有转动轴205的一个或多个马达203,该显示调整机构附连到在由马达203驱动的传动轴205的引导和力量下从左向右滑动或反向滑动的内部镜架部分117。在一些实施例中,一个马达203可以驱动两个内部镜架。
图2F描绘了HMD 2的一部分的一个替换实施例,该HMD具有包括注视检测元件的可移动显示光学系统。如所描绘的,每个显示光学系统14被包围在分开的镜架部分115l、115r中。镜架部分中的每一个可由马达203分开地移动。关于具有可移动显示光学系统的HMD的更多信息可在2011年9月30日提交的美国专利申请号13/250,878、题为“Personal Audio/Visual System(个人音频/视频系统)”中找到,该专利申请通过引用全部包含于此。
图2G描绘了HMD 2的一部分的侧视图的一个实施例,该HMD包括镜架115的眼镜腿102。在镜架115的前方是可捕捉视频和静止图像的前向视频相机113。在一些实施例中,前向相机113可包括深度相机以及可见光或RGB相机。在一个示例中,该深度相机可包括IR照明器发射器和像处于可见图像传感器前方的热镜等热反射表面,该热反射表面使得可见光透过并将处于照明器所发射的波长范围内或预定波长周围的所反射的IR辐射定向到CCD或其他类型的深度传感器。可使用其它类型的可见光相机(例如,RGB相机或图像传感器)和深度相机。关于深度相机的更多信息可在2010年6月11日提交的美国专利申请12/813,675中找到,该申请的全部内容通过引用结合于此。来自相机的数据可被发送到控制电路136以供处理,以便通过图像分割和/或边缘检测技术来标识对象。
耳机130、惯性传感器132、GPS收发器144、以及温度传感器138处于镜腿102内部或安装在镜腿102上。在一个实施例中,惯性传感器132包括三轴磁力计、三轴陀螺仪、以及三轴加速度计。惯性传感器用于感测HMD 2的位置、取向、和突然加速。从这些移动中,也可以确定头部位置。
在一些情况下,HMD 2可包括可创建包括一个或多个虚拟对象的一个或多个图像的图像生成单元。在一些实施例中,微显示器可被用作图像生成单元。如所描绘的,微显示器部件173包括光处理元件和可变焦调整器135。光处理元件的示例是微显示器单元120。其他示例包括诸如透镜系统122的一个或多个透镜之类的一个或多个光学元件、以及诸如面124之类的一个或多个反射元件。透镜系统122可包括单个透镜或多个透镜。
微显示器单元120安装在镜腿102上或处于镜腿102内部,它包括图像源并生成虚拟对象的图像。微显示器单元120在光学上与透镜系统122以及反射面124对准。光学对准可以沿着光轴133或包括一个或多个光轴的光路133。微显示器单元120通过透镜系统122来投影虚拟对象的图像,这可将图像光定向到反射元件124。可变焦调整器135改变微显示器部件的光路中的一个或多个光处理元件之间的位移或微显示器部件中的元件的光功率(optical power)。透镜的光功率被定义成其焦距的倒数(即,1/焦距),使得一个改变将影响另一个。焦距的改变导致聚焦于微显示器部件173所生成的图像的视野区域改变。
在微显示器部件173作出位移改变的一个示例中,在电枢137内对位移改变进行引导,电枢137支承诸如透镜系统122和微显示器120之类的至少一个光处理元件。电枢137帮助在各元件的物理移动期间稳定沿光路133的对准,以达到所选位移或光功率。在一些示例中,调整器135可以移动一个或多个光学元件,如电枢137内的透镜系统122中的透镜。在其他示例中,电枢可在光处理元件周围的区域中具有槽或空间,使得它在不移动光处理元件的情况下在该元件(例如微显示器120)上滑动。电枢中的另一元件(如透镜系统122)被附连,使得系统122或其内的透镜与移动的电枢137一起滑动或移动。位移范围通常是几毫米(mm)的量级。在一个示例中,这一范围是1-2mm。在其他示例中,电枢137可以向透镜系统122提供对涉及除位移之外的其他物理参数的调整的焦点调整技术的支持。这样的参数的示例是偏振。
关于调整微显示器部件的焦距的更多信息可在2010年11月8日提交的美国专利申请号12/941,825、题为“Automatic Variable Virtual Focus for AugmentedReality Displays(用于增强现实显示器的自动可变虚拟聚焦)”中找到,该专利申请通过引用全部结合于此。
在一个实施例中,调整器135可以是诸如压电马达之类的执行器。也可使用用于执行器的其他技术,并且这样的技术的一些示例是由线圈和永久磁铁、磁致伸缩元件、以及电致伸缩元件形成的音圈。
若干不同的图像生成技术可用于实现微显示器120。在一个示例中,微显示器120可以使用透射投影技术来实现,其中光源由光学活性材料来调制,用白光从背后照亮。这些技术通常是使用具有强大背光和高光能量密度的LCD类型的显示器来实现的。微显示器120还可使用反射技术来实现,其中外部光被光学活性材料反射并调制。取决于该技术,照明可由白光源或RGB源来向前点亮。数字光处理(DLP)、硅上液晶(LCOS)、以及来自Qualcomm有限公司的
显示技术都是高效的反射技术的示例,因为大多数能量从已调制结构反射并且可用于本文描述的系统中。附加地,微显示器120可以使用发射技术来实现,其中光由该显示器生成。例如,来自Microvision有限公司的PicoP
TM引擎使用微型镜面舵来将激光信号发射到担当透射元件的小型屏幕上或直接将光束(例如,激光)发射到眼睛。
图2H描绘了HMD2的一部分的侧视图的一个实施例,其提供对微显示器部件的三维调整的支持。以上在图2G中示出的附图标记中的一些已被移除以避免附图中的混乱。在显示光学系统14在三个维度中被移动的一些实施例中,由反射面124表示的光学元件和微显示器部件173的其他元件也可被移动以维持虚拟图像的光到该显示光学系统的光路133。在该示例中,由马达框203和传动轴205所表示的在控制电路136的控制之下的一个或多个马达所构成的XYZ传输机构控制微显示器部件173的各元件的移动。可以使用的马达的示例是压电马达。在所示示例中,一个马达被附连到电枢137并且也移动可变焦点调整器135,并且另一代表性马达203控制反射元件124的移动。
图3A-3E提供各种增强现实环境的示例,其中基于在各种真实世界环境内标识的环境特征来生成或适应一个或多个虚拟对象。在一些实施例中,一个或多个虚拟对象可包括基于状态的虚拟对象。
图3A描绘了佩戴HMD(诸如图1中的移动设备19)的终端用户所看到的增强现实环境310的一个实施例。终端用户既可看到真实对象也可看到虚拟对象。真实对象可包括椅子16。虚拟对象可包括虚拟怪物17a-b。由于通过HMD的透视透镜所感知的虚拟怪物17a-b被显示或覆盖在真实世界环境中,因此HMD的终端用户可感知到虚拟怪物17a-b存在于真实世界环境内。
图3B描绘了佩戴HMD(诸如图1中的移动设备19)的终端用户所看到的增强现实环境315的一个实施例。终端用户既可看到真实对象也可看到虚拟对象。真实对象可包括椅子16和计算系统10。虚拟对象可包括虚拟怪物17a。计算系统10可包括计算环境12、捕捉设备20、和显示器14,它们彼此通信。计算环境12可以包括一个或多个处理器。捕捉设备20可包括一个或多个颜色或深度传感相机,该相机可以用于在视觉上监视包括特定真实世界环境内的人以及一个或多个其他真实对象的一个或多个目标。捕捉设备20还可包括话筒。在一个示例中,捕捉设备20可包括深度传感相机和话筒,并且计算环境12可包括游戏控制台。计算系统10可通过向多个移动设备或客户机提供与真实世界环境有关的虚拟对象和/或映射信息来支持这多个移动设备或客户机。
在一些实施例中,计算系统10可跟踪并分析增强现实环境315内的虚拟对象。计算系统10还可跟踪并分析与增强现实环境315相对应的真实世界环境内的真实对象。对与虚拟对象(诸如,虚拟怪物17a)相关联的图像的呈现可由计算系统10或由HMD来执行。计算系统10还可向HMD提供与增强现实环境315相关联的3-D映射。
在一个实施例中,计算系统10可(例如,通过生成对真实世界环境的3-D映射)映射与增强现实环境315相关联的真实世界环境,并实时地跟踪增强现实环境315内的真实对象和虚拟对象这二者。在一个示例中,计算系统10提供特定商店(例如,服装店或汽车经销商)的虚拟对象信息。在HMD的终端用户进入该特定商店之前,计算系统10可能已经生成了包括该特定商店内部的静态真实世界对象的3-D映射。当终端用户进入该特定商店时,计算系统10可以开始跟踪增强现实环境315内的动态的真实世界对象和虚拟对象。在真实世界环境内移动的真实世界对象(包括终端用户)可以被检测,并使用边缘检测和模式识别技术来分类。当终端用户在该特定商店到处走动时,计算系统可确定真实世界对象与虚拟对象之间的交互,并向HMD提供虚拟对象的图像以供终端用户查看。在一些实施例中,包括该特定商店内部的静态真实世界对象的真实世界环境3-D映射可与一个或多个虚拟对象一起被传输到HMD,以供在特定商店内部使用。HMD随后可确定真实世界对象与一个或多个虚拟对象在该特定商店内的交互,并在该HMD上本地地生成增强现实环境315。
图3C描绘了增强现实环境320的一个实施例。终端用户既可看到真实对象也可看到虚拟对象。真实对象可包括椅子16。虚拟对象可包括虚拟怪物17a-d。由于通过HMD的透视透镜所感知的虚拟怪物17a-d被显示或覆盖在真实世界环境中,HMD的终端用户可感知到虚拟怪物17a-d存在于真实世界环境内。
如所描绘的,与增强现实环境320相关联的真实世界环境同与图3A中的增强现实环境310相关联的真实世界环境相比,包括更多的开放空间。在一些情况下,为了实现与游戏应用相关联的特定难度,较大量的开放空间可能需要更多数量的虚拟怪物出现在增强现实环境320内(例如,躲避在大的真实世界区域内移动的四个虚拟怪物可被认为与躲避较小的真实世界区域内的两个虚拟怪物一样困难)。然而,在其他游戏应用中,较大量的开放空间可与更困难的游戏环境相对应。关于具有适应性游戏规则的增强现实环境的更多信息可在2011年11月3日提交的美国专利申请号13/288,350、题为“Augmented RealityPlayspaces With Adaptive Game Rules(具有适应性游戏规则的增强现实游戏空间)”中找到,该专利申请通过引用全部结合于此。图3D-3E描绘了包括基于状态的虚拟对象的增强现实环境330的一个实施例。如所描绘的,HMD19的终端用户29既可查看真实对象也可看到虚拟对象。真实对象可包括椅子16。虚拟对象可包括虚拟怪物17a-c以及包括虚拟盒子39的基于状态的虚拟对象。由于通过HMD19的透视透镜所感知的虚拟对象被显示或覆盖在真实世界环境中,因此HMD19的终端用户可感知到虚拟对象存在于真实世界环境内。
在一个实施例中,终端用户29可查看包括虚拟盒子39的基于状态的虚拟对象。在图3D中所描绘的第一状态中,虚拟盒子看起来是封闭的。通过盯住虚拟盒子39一特定时间段和/或执行特定的物理姿势(例如,特定的手势),虚拟盒子39可从图3D中描绘的第一状态转移到图3E中描绘的第二状态。一旦虚拟盒子39被设置成第二状态,对象的形状和/或其他属性可被更改。如所描绘的,虚拟盒子39看起来被打开,并且新的虚拟对象(即,虚拟怪物17d)被生成并被显示为存在于增强现实环境330内的。在一个示例中,为了关闭虚拟盒子39,终端用户29可能必须执行与用于打开该虚拟盒子的特定物理姿势不同的物理姿势、和/或发出特定的语音命令。在一些实施例中,第二状态可对应于虚拟对象的3-D模型,该3-D模型和与第一状态相关联的3-D模型不同(例如,第二状态可与第一状态中的虚拟对象的变形版本相关联)。
图4示出了包括捕捉设备20和计算环境12的计算系统10的一个实施例。在一些实施例中,捕捉设备20和计算环境12可以集成在单个计算设备中。该单个计算设备可包括移动设备,诸如图1中的移动设备19。在一些情况中,捕捉设备20和计算环境12可被集成在HMD中。
在一个实施例中,捕捉设备20可以包括用于捕捉图像和视频的一个或多个图像传感器。图像传感器可以包括CCD图像传感器或CMOS图像传感器。在一些实施例中,捕捉设备20可包括IR CMOS图像传感器。捕捉设备20还可以包括深度相机(或深度传感相机),该相机被配置为经由包括例如飞行时间、结构化光、立体图像等在内的任何合适的技术来捕捉包括深度图像的带有深度信息的视频,该深度图像可包括深度值。
捕捉设备20可包括图像相机组件32。在一个实施例中,图像相机组件32可以包括可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维(2-D)像素区域,其中2-D像素区域中的每个像素都可以表示深度值,比如所捕捉的场景中的对象与图像相机组件32相距的例如以厘米、毫米等为单位的距离。
图像相机组件32可包括可用来捕捉捕捉区域的深度图像的IR光组件34、三维(3-D)相机36、以及RGB相机38。例如,在飞行时间分析中,捕捉设备20的IR光组件34可以将红外光发射到捕捉区域上,然后可以使用传感器,用例如3-D相机36和/或RGB相机38来检测从捕捉区域中的一个或多个对象的表面反向散射的光。在某些实施例中,可以使用脉冲式红外光从而可以测量出射光脉冲和相应的入射光脉冲之间的时间差并将其用于确定从捕捉设备20到捕捉区域中的一个或多个对象上的特定位置的物理距离。此外,可将出射光波的相位与入射光波的相位进行比较来确定相移。然后可以使用该相移来确定从捕捉设备到与一个或多个对象相关联的特定位置的物理距离。
在另一示例中,捕捉设备20可使用结构化光来捕捉深度信息。在该分析中,图案化光(即,被显示为诸如网格图案或条纹图案等已知图案的光)可经由例如IR光组件34被投影到捕捉区域上。在撞击到捕捉区域中的一个或多个对象(或目标)的表面时,作为响应,图案可变形。图案的这种变形可由例如3-D相机36和/或RGB相机38来捕捉并被分析以确定从捕捉设备到一个或多个对象上的特定位置的物理距离。捕捉设备20可包括用于产生准直光的光学器件。在一些实施例中,可使用激光投影仪来创建结构化光图案。激光投影仪可包括激光器、激光二极管和/或LED。
在某些实施例中,可将两个或更多个相机整合到一个集成捕捉设备中。例如,深度相机和视频相机(例如RGB视频相机)可以被合并到共同的捕捉设备中。在一些实施例中,可协同使用相同或不同类型的两个或更多分开的捕捉设备。例如,可以使用深度相机和分开的视频相机,可以使用两个视频相机,可以使用两个深度相机,可以使用两个RGB相机,或者可以使用任何组合和数目的相机。在一个实施例中,捕捉设备20可包括可以从不同的角度观察捕捉区域的两个或更多个在物理上分离的相机,以获取可以被解析以生成深度信息的视觉立体数据。还可通过使用多个检测器(可以是单色、红外、RGB)或任意其它类型的检测器捕捉图像、以及执行视差计算,来确定深度。也可使用其他类型的深度图像传感器来创建深度图像。
如图4所描绘的,捕捉设备20可以包括一个或多个话筒40。该一个或多个话筒40中的每一个都可以包括可以接收声音并将其转换成电信号的换能器或传感器。该一个或多个话筒可包括话筒阵列,其中一个或多个话筒可以按预定布局排列。
捕捉设备20可以包括可以与图像相机组件32可操作地通信的处理器42。处理器42可包括标准处理器,专用处理器、微处理器等。处理器42可以执行指令,所述指令可以包括用于存储过滤器或简档、接收和分析图像、确定是否已经发生特定情况的指令或任何其他合适的指令。应当理解,至少一些图像分析和/或目标分析和跟踪操作可以由诸如捕捉设备20之类的一个或多个捕捉设备内所包含的处理器来执行。
捕捉设备20可包括存储器44,该存储器可存储可由处理器42执行的指令、由3-D相机或RGB相机捕捉的图像或图像帧、过滤器或简档、或任何其他合适的信息、图像等等。在一个示例中,存储器44可包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘或任何其他合适的存储组件。如图所示,存储器44可以是与图像捕捉组件32和处理器42进行通信的单独的组件。在另一实施例中,存储器44可被集成到处理器42和/或图像捕捉组件32中。在其他实施例中,捕捉设备20的组件32、34、36、38、40、42和44中的部分或全部可被容纳在单个外壳中。
捕捉设备20可以经由通信链路46与计算环境12进行通信。通信链路46可以是包括例如USB连接、火线连接、以太网电缆连接等有线连接和/或诸如无线802.11b、802.11g、802.11a或802.11n连接等无线连接。计算环境12可以向捕捉设备20提供时钟,可以使用该时钟来通过通信链路46确定何时捕捉例如场景。在一个实施例中,捕捉设备20可将由例如3-D相机36和/或RGB相机38捕捉的图像经由通信链路46提供给计算环境12。
如图4中所描绘的,计算环境12包括与应用196通信的图像和音频处理引擎194。应用196可包括操作系统应用或诸如游戏应用的其他计算应用。图像和音频处理引擎194包括虚拟数据引擎197、对象和姿势识别引擎190、结构数据198、、处理单元191和存储器单元192,所有这些都彼此通信。图像和音频处理引擎194处理从捕捉设备20接收的视频、图像和音频数据。为了辅助对象的检测和/或跟踪,图像和音频处理引擎194可以利用结构数据198以及对象和姿势识别引擎190。虚拟数据引擎197处理虚拟对象,并记录与在存储器单元192中存储的真实世界环境的各种映射有关的虚拟对象的位置和定向。
处理单元191可以包括用于执行对象、面部和语音识别算法的一个或多个处理器。在一个实施例中,图像和音频处理引擎194可以将对象识别和面部识别技术应用于图像或视频数据。例如,对象识别可以用于检测特定对象(例如足球、汽车、人或陆标),并且面部识别可以用于检测特定人的面部。图像和音频处理引擎194可以将音频和语音识别技术应用于音频数据。例如,音频识别可以用于检测特定声音。要检测的特定面部、语音、声音和对象可以存储在存储器单元192中所包含的一个或多个存储器中。处理单元191可执行存储在存储器单元192中的计算机可读指令以执行此处讨论的过程。
图像和音频处理引擎194可以在执行对象识别时利用结构数据198。结构数据198可以包括关于要跟踪的目标和/或对象的结构信息。例如,可以存储人类的骨架模型以帮助识别身体部位。在另一示例中,结构数据198可以包括关于一个或多个无生命对象的结构信息以便帮助识别所述一个或多个无生命对象。
图像和音频处理引擎194还可以在执行姿势识别时利用对象和姿势识别引擎190。在一个示例中,对象和姿势识别引擎190可以包括姿势过滤器的集合,每个姿势过滤器都包括关于骨架模型可执行的姿势的信息。对象和姿势识别引擎190可将由捕捉设备20所捕捉的数据(其形式为骨架模型以及与其相关联的移动)与姿势库中的姿势过滤器进行比较来标识用户(其由骨架模型来表示)何时执行了一个或多个姿势。在一个示例中,图像和音频处理引擎194可以使用对象和姿势识别引擎190来帮助解释骨架模型的移动以及检测特定姿势的执行。
在一些实施例中,可以用诸如IR回射标记之类的一个或多个标记来扩充所跟踪的一个或多个对象,以便改进对象检测和/或跟踪。也可以使用平面基准图像、已编码AR标记、QR码和/或条形码来改进对象检测和/或跟踪。一旦检测到一个或多个对象和/或姿势,图像和音频处理引擎194可以向应用196报告所检测的每个对象或姿势的标识以及相应的位置和/或取向(如果适用)。
关于运动检测和跟踪对象的更多信息可在2009年12月18日提交的美国专利申请12/641,788“Motion Detection Using Depth Images(使用深度图像的运动检测)”,以及美国专利申请12/475,308“Device for Identifying and TrackingMultiple Humans over Time(用于随时间标识和跟踪多个人类的设备)”中找到,这两个申请的全部内容通过引用结合于此。关于对象和姿势识别引擎190的更多信息参见2009年4月13日提交的美国专利申请12/422,661“GestureRecognition System Architecture(姿势识别系统架构)”,该申请通过整体引用合并于此。关于识别姿势的更多信息可在2009年2月23日提交的美国专利申请12/391,150“Standard Gestures(标准姿势)”;以及2009年5月29日提交的美国专利申请12/474,655“Gesture Tool(姿势工具)”中找到,这两个申请的全部内容通过引用并入本申请。
图5A描绘了用于提供与感兴趣的特定位置或特定地方相关联的虚拟对象信息的AR系统2307的一个实施例。感兴趣的特定地方可包括百货商店、家具店、汽车经销商、游乐园、博物馆、动物园、或个人的工作处或住处。虚拟对象信息可包括环境的3-D映射、和/或与环境相关联的一个或多个虚拟对象。为了允许对虚拟对象的高效存储和交换,可使用预定和标准化文件格式来传输一个或多个虚拟对象。
AR系统2307包括与补充信息提供者2304a-e之一通信的个人A/V装置2302(例如,诸如图1中的移动设备19的HMD)。补充信息提供者2304a-e与中央控制和信息服务器2306通信,该中央控制和信息服务器2306可包括一个或多个计算设备。每个补充信息提供者2304可与一个或多个传感器2310a-e中的一个位于一处并与之通信。传感器可包括视频传感器、深度图像传感器、热传感器、IR传感器、重量传感器、和运动传感器。在一些实施例中,补充信息提供者可以不与任何传感器配对。
补充信息提供者的每一个针对感兴趣的特定地方被置于各个位置。补充信息提供者可提供与感兴趣的特定地方内的特定区域相关联的虚拟对象信息或3-D映射。传感器2310可获取与感兴趣的特定地方的不同子部分有关的信息。例如,在游乐园的情形中,补充信息提供者2304以及随附的一组一个或多个传感器2310可被置于游乐园中的每个搭乘点或景点处。在博物馆的情形中,补充信息提供者2304可位于博物馆的每一部分或房间中、或位于每个主要展品。传感器2310可用于确定等待搭乘(或展览)线路的人数或者该搭乘(或展览)的拥挤程度。
在一个实施例中,AR系统2307可向个人A/V装置2302的终端用户提供关于如何导航通过感兴趣的地方的指导。另外,中央控制和信息服务器2306可基于来自传感器2310的信息来指示感兴趣的地方的哪些区域不那么拥挤。在游乐园的情形中,系统可告诉个人A/V装置2302的终端用户哪条搭乘具有最短的线路。在滑雪山的情形中,AR系统2307可向个人A/V装置2302的终端用户提供对哪条电梯线路最短或哪根滑道不那么拥挤的指示。个人A/V装置2302可与终端用户一起在感兴趣的地方周围活动,并可在任意给定时间与最接近的补充信息提供者2304建立连接。
图5B示出了用于在补充信息提供者2304(诸如,图5A中的补充信息提供者2304a)上执行一个或多个进程和/或软件的系统架构的一个示例。补充信息提供者2304可创建并提供补充事件或位置数据,或者可以提供服务,该服务将事件或位置数据从第三方事件数据提供者918传输到终端用户的个人A/V装置2302。多个补充信息提供者和第三方事件数据提供者可与本技术一同使用。
补充信息提供者2304可包括为其利用服务的一个或多个事件或位置的补充数据。事件和/或位置数据可包括补充事件和位置数据910,该补充事件和位置数据910关于已知在特定时间段内发生的一个或多个事件、和/或关于提供定制体验的一个或多个位置。用户位置和跟踪模块912跟踪正在利用系统的各个用户。可通过唯一的用户标识符、位置、和/或其他标识元素来标识用户。信息显示应用914允许定制要提供给终端用户的显示信息的类型以及它被显示的方式这两者。该信息显示应用914可结合个人A/V装置2302上的信息显示应用来使用。在一个实施例中,显示处理在补充信息提供者2304处发生。在替换的实施例中,信息被提供给个人A/V装置2302,使得该个人A/V装置2302确定哪些信息应当被显示以及信息应被显示在显示器内的何处。授权应用916可在将补充信息传输到特定的个人A/V装置之前对该特定的个人A/V装置进行认证。
补充信息提供者2304还包括映射数据915和虚拟对象数据913。映射数据915可包括与一个或多个真实世界环境相关联的3-D映射。虚拟对象数据913可包括与映射数据可用的一个或多个真实世界环境相关联的一个或多个虚拟对象。在一些实施例中,可使用支持基于状态的虚拟对象的预定和标准化文件格式来定义一个或多个虚拟对象。
根据本技术,可利用各种类型的信息显示应用。可为不同的事件和位置提供不同的应用。不同的提供者可为同一实况事件提供不同的应用。可基于所提供的信息量、所允许的交互量或其他特征来隔离应用。应用可提供事件或位置内的不同类型的体验,并且不同的应用可以竞争在同一事件期间或在同一位置处向用户提供信息的能力。可在补充信息提供者2304和个人A/V装置902之间拆分应用处理。
图6A和6B是描述使用个人A/V装置(诸如图5A中的个人A/V装置2302)来提供个性化购物体验的一组过程的流程图。图6A的过程用于建立系统,使得个人性购物体验可在用户进入特定的商业或销售位置时被提供。在图6A的步骤1602中,将扫描用户。扫描用户的示例可包括拍摄用户的静态的照片、视频图像和/或深度图像。系统还可为该用户访问具有该用户之前的扫描和细节的简档。图像可用于创建关于用户的身体外貌的信息。在其他实施例中,用户可手动地输入各种测量结果。该用户的信息作为一个或多个对象被存储在用户的简档中。在步骤1604中,使用静态图像、视频图像、和/或深度图像来扫描用户的家。关于用户的家的信息作为一个或多个对象被存储在用户的简档中。在步骤1606中,使用静态图像、视频图像、和/或深度图像来扫描用户的所有物。所扫描的信息作为一个或多个对象被存储在用户的简档中。在步骤1608中,用户进行的任何购买将导致关于购买项的信息作为一个或多个对象被存储在用户的简档中。在一个实施例中,不必扫描额外的购买,因为关于购买项的信息将已经位于制造商或零售商的数据库中,并可从该数据库直接被加载到用户的简档中。在一个实施例中,用户简档由诸如图5A中的中央控制和消息服务器2306的服务器来存储。
图6B描述了提供个性化购物体验的过程的一个实施例。在步骤1630中,带有个人A/V装置的用户进入销售位置。在步骤1632中,该个人A/V装置连接到本地的补充信息提供者。在步骤1634中,用户将在在该销售位置浏览该个人A/V装置时选择一件商品。在一个实施例中,用户可通过说出该商品的名称、指向该商品、触摸该商品、或使用特定的姿势来选择该商品。用于利用个人/AV装置机载的一个或多个话筒、视频相机、和/或深度相机来选择商品的其他手段可用于感测用户正在选择什么。
在步骤1636中,个人A/V装置将该选择转发到位于该销售位置的本地补充信息提供者。补充信息提供者将在数据库中查找所选择的商品,以确定与该商品相关的虚拟对象的类型。在一个实施例中,数据库对补充信息提供者来说是本地的。在另一实施例中,补充信息提供者将通过因特网或其他网络来访问数据库。在一个示例中,每个销售位置(例如,商场中的一个商店)可具有它自己的服务器,或者商场可具有跨该商场中所有商店共享的全局服务器。
在步骤1638中,补充信息提供者将访问用户简档。在一个实施例中,用户简档被存储在诸如图5A中的中央控制和消息服务器2306的服务器上。在步骤1640中,补充信息提供者或者中央控制和信息服务器将基于步骤1636中获得的信息来标识用户简档中与该商品相关的那些对象。在步骤1642中,下载用户简档中与所选择的商品相关的对象。
在步骤1644中,该个人A/V装置将使用板载传感器来确定其定向。A/V装置还将确定用户的注视。在步骤1646中,个人A/V装置或者补充信息提供者将构建图形,该图形将所选择的商品的图像以及来自用户简档的所标识的对象相组合。在一个实施例中,只选择一件商品。在其他实施例中,能够选择多件商品,并且该图形可包括多件商品以及多个所标识的对象。在步骤1648中,正确地基于所确定的定向和注视,在个人A/V装置中呈现将所选择的商品的图像与所标识的对象相组合的图形。在一些实施例中,用户可浏览个人A/V装置以查看所选择的商品,并且对象将被自动地添加到用户的视野中。
图6B的过程的一个示例实现包括用户查看待售房屋。所选择的商品可以是房屋中的房间之一或可以是房屋本身。来自用户的简档的对象将是用户的家具。当用户在房屋(可能是空的)周围走动时,用户的家具(即,用户简档中被标记或以其他方式标识为用户家具的用户的对象)将被投影到个人A/V装置中,使得用户将看到房屋中用户的家具。
图6B的另一示例实现包括用户拜访家具商店。所选择的商品可以是家具商店中的一件或多件家具。从用户的简档中获得的对象将是用户的房屋中的房间以及用户的房屋中的家具。例如,如果用户正想购买沙发椅,则所选择的商品可以是一个或多个沙发椅。个人A/V装置将描绘具有被投影到用户起居室的所选择沙发椅的该起居室的图像,使用户能够看到沙发椅在他们的起居室中看起来如何。在一些情况中,与家具商店中被终端用户选择的一件或多件家具相关联的虚拟对象信息可被存储以供未来参考。在家中,用户可在查看他们的起居室时加载并查看与家具商店中待售的一件或多件家具相关联的一个或多个虚拟对象。
在一个实施例中,系统可用于增强对服装的购买。当用户看到他感兴趣的一件服装时,个人A/V系统可以投影用户穿着这件服装的图像。或者,用户可看向镜子以查看穿着感兴趣的服装的他自己/她自己。在此情形中,个人A/V系统将在镜子的反射中投影用户穿着这件服装的图像。这些示例示出用户可如何浏览透视个人A/V装置(例如,图1中的移动设备19)以及图像可被投影到用户的视野中,使得与通过个人A/V装置查看的真实世界相组合的这些投影图像为用户创建个性化体验。
在另一实施例中,系统用于基于用户感兴趣的东西来定制店内显示。例如,橱窗模特全部切换为穿着用户感兴趣的服装。考虑用户正想购买黑色衣服的示例,她走过的每个商店将所有的黑色衣服虚拟地显示在他们的正面显示中或头戴式显示演示专用的店面上的服装模特上。
在一些实施例中,补充信息提供者可向HMD传输与特定位置相关联的信息,该特定位置包括出现在该特定位置的真实对象和虚拟对象。所传输的信息可用于在HMD上生成增强现实环境。为了允许对虚拟对象的高效存储和交换,虚拟对象可被包含在预定和标准化文件格式内。在一个示例中,标准化文件格式可允许虚拟对象数据在不同计算平台或设备间的可移植性。在一些情形中,标准化文件格式可通过提供与虚拟对象的不同状态相关联的状态信息(例如,状态表的形式)来支持基于状态的虚拟对象。可使用包括有向图和/或散列表的各种数据结构来实现与虚拟对象相关联的状态。
标准化文件格式可包括全息文件格式。一个实施例包括用于向个人A/V装置的用户呈现定制体验的方法,包括:扫描多商品以创建全息文件格式的多个对象,为每商品创建一个对象,该全息文件格式具有预定的结构;为一个身份存储全息文件格式的对象;使用无线连接将个人A/V装置连接到本地服务器;向本地服务器提供来自个人A/V装置的身份;使用该身份访问对象的至少一个子集并将其下载到本地服务器;基于全息文件格式的预定结构来访问对象中的数据;以及使用该数据将虚拟图形添加到个人A/V装置的透视显示器。
参考图6A和6B,可使用全息文件格式的一个示例实现。在图6A的方法中,用户、用户的房屋以及用户的所有物可被扫描,并且来自扫描的信息可作为一个或多个对象被存储在用户的简档中。在一个实现中,信息作为一个或多个对象以全息文件格式被存储在简档中。这样,当用户进入销售位置并且该销售位置本地的相关联的补充信息提供者访问数据库中的对象时,可以访问全息文件格式的那些对象。以此方式,补充信息提供者将提前了解对象的文件格式,使得可高效地使用对象。使用该全息文件格式可允许开发者更容易地创建可利用这些数据的系统和平台,使得可使用个人A/V装置来定制更多的体验。
图7A描绘了虚拟对象文件702的一个实施例,该虚拟对象文件702包括与一个或多个虚拟对象相关联的虚拟对象信息。如所描绘的,虚拟对象文件702包括用于用虚拟对象标识符(或ID)“H1278”来生成虚拟对象的虚拟对象信息701。虚拟对象信息701包括用于指定HMD系统兼容性的HMD版本字段(例如,HMD system version1.3.8)、对虚拟对象是否与真实对象相关联的标识、与虚拟对象相关联的真实对象的所有者(例如,Sally)、以及真实对象的位置(例如,Sally's kitchen)。其他标记或字段(未示出)可包括何时且在何处获取虚拟对象信息、以及诸如“房屋家具”或“厨房电器”的对象描述。虚拟对象信息701还可包括对虚拟对象的初始状态的标识(例如,State0)。
虚拟对象信息701包括用于包括“State0(状态0)”和“State1(状态1)”的不同状态的信息。在一个示例中,“State0”可与关闭状态中的虚拟对象相关联(例如,虚拟盒子被关闭),并且“State1”可与打开状态中的虚拟对象相关联(例如,虚拟盒子是打开的)。在“State0”中,虚拟对象与3-D模型(即,model_A(模型A))和对象属性(例如,Mass(质量))相关联。当虚拟对象与真实对象或其他虚拟对象交互时,质量对象属性可用于确定动量和速度计算。也可使用其他对象属性(例如,对象反射率和/或透明度)。在“State1”中,虚拟对象同与“State0”相关联的3-D模型不同的3-D模型(即,model_B(模型B))相关联。在一个示例中,model_B可对应于变形版本的虚拟对象(例如,虚拟对象被弯曲或扭曲)。
如所描绘的,“State0”对应于与“State1”的触发事件不同的唯一一组触发事件。与特定状态相关联的触发事件可用于确定何时需要从特定状态的状态改变。当位于“State0”中时,如果满足两个要求(即,如果检测到Trigger1(触发器1)和Trigger2(触发器2)),则虚拟对象可转移到不同的虚拟对象状态(即,“State1”)。在一个示例中,Trigger1可对应于检测到特定的姿势,而Trigger2可对应于检测到特定的语音命令。在另一示例中,触发事件可对应于检测到与朝向虚拟对象的眼睛注视同时发生的特定手势。一旦检测到触发事件,则虚拟对象将转移到“State1”。应当注意的是,对Trigger3的检测不会导致虚拟对象转移到不同的状态,相反,只(例如,基于sound_file_A(声音文件A))播放与该虚拟对象相关联的声音。在一些情形中,可使用眼睛跟踪技术(诸如参考图2C-2D的HMD 2所利用的那些)或姿势识别和/或音频识别技术(诸如参考图4中的计算系统10所利用的那些)来检测触发事件。
当在“State1”中时,如果唯一的触发事件发生(即,如果检测到Trigger4),则虚拟对象可转移回到“State0”。在一个示例中,Trigger4可对应于检测到虚拟对象发生的特定交互(例如,虚拟对象被另一虚拟对象击打)。在此情形中,一旦检测到触发事件,则虚拟对象将转移回到“State0”。同样,一旦检测到触发事件,可以生成或产生一个新的虚拟对象(例如,X1)。例如,当虚拟盒子被打开时,可以创建诸如图3E中的虚拟怪物17d的新的虚拟对象。
在一些实施例中,与特定虚拟对象相关联的虚拟对象信息可包括关于对象的真实物理大小的信息(即,特定虚拟对象所基于的真实对象的实际真实世界大小)。虚拟对象信息还可指定特定虚拟对象的物理特性,诸如该特定虚拟对象是否可变形或可挤压。物理特性还可包括与特定虚拟对象相关联的重量或质量。虚拟对象信息还可指定与特定虚拟对象相关联的照明属性,诸如从特定虚拟对象发射(或反射)的任意光的颜色,以及特定虚拟对象的半透明度和反射率。虚拟对象信息还可指定当与特定虚拟对象交互时与该特定虚拟对象相关联的声音。在一些实施例中,关于照明属性、交互式声音属性和物理特性的虚拟对象信息可取决于虚拟对象的特定状态。
图7B是描述了用于生成增强现实环境的过程的一个实施例的流程图。增强现实环境可利用一个或多个基于状态的虚拟对象。在一个实施例中,图7B的过程由诸如图1中的移动设备19的移动设备来执行。
在步骤710中,标识与真实世界环境相关联的补充信息提供者。一旦补充信息提供者位于HMD的特定距离以内,它就可被检测和标识,或者它可经由指针或网络地址来向补充信息提供者标识。在步骤712中,协商与补充信息提供者的信息传输。信息传输可使用特定协议来进行,并可包括对特定类型的文件(例如,使用全息文件格式的虚拟对象文件)的传输。HMD和补充提供者还可协商信息传输将以何种方式进行、以及将传输什么类型的信息。在一个示例中,HMD可向补充信息提供者提供与该HMD相关联的位置信息,并且补充信息提供者可向HMD传输一个或多个文件,该一个或多个文件提供与位置信息相关联的虚拟对象信息。
在步骤714中,从补充信息提供者获取与真实世界环境相关联的3-D映射。在步骤716中,获取一个或多个虚拟对象。可经由补充信息提供者供应的虚拟对象信息来获取一个或多个虚拟对象。在一些情形中,一个或多个虚拟对象可被预先存储在HMD上,并且可由从补充信息提供者获取的虚拟对象信息来指向。一个或多个虚拟对象可包括与多个不同状态相关联的第一虚拟对象。多个不同状态中的每个状态可对应于一组唯一的与任何其他状态事件不同的触发事件。与特定状态相关联的这组触发事件可用于确定何时需要从特定状态的状态改变。
在步骤718中,第一虚拟对象被设为多个不同状态中的第一状态。在步骤720中,可以预测多个不同状态中与第一虚拟对象相关联的一个或多个其他状态。在一个示例中,可为一个或多个其他状态中的每一个确定相对于第一状态的触发概率。触发概率提供从虚拟对象的当前状态到达另一状态的概率或可能性。例如,如果与第二状态相关联的触发概率位于特定阈值以上,则可以预测多个不同状态中的第二状态。如果一个状态被预测,则与所预测的状态相关联的虚拟对象信息可被预先取出并被存储在HMD上以供未来使用。
在步骤722中,确定是否已经检测到与多个不同状态中的第二状态相关联的第一触发事件。在一个实施例中,第一触发事件与检测到与使用HMD所感知的朝向第一虚拟对象的眼睛注视同时发生的特定手势相关联。在一些情形中,如果来自另一虚拟对象或一真实对象的交互位于特定的虚拟力阈值以上,则可检测到第一触发事件。触发事件(或状态改变要求)还可以基于佩戴HMD的终端用户的生理特性。例如,与终端用户相关联的心率信息和眼睛移动和/或瞳孔放大可用于推断该终端用户害怕得足以保证触发事件。
在步骤724中,第一虚拟对象被设为第二状态。在步骤726中,获取一个或多个新的触发事件。可从补充信息提供者获取这一个或多个新的触发事件。在将第一虚拟对象设为第二状态之前,将一个或多个新的触发事件预先存储到HMD上。一个或多个新的触发事件可被加载到HMD上,由此HMD查找并检测与该一个或多个新的触发事件相关联的交互,而不是与第一状态相关联的一个或多个触发事件。在步骤728中,一个或多个虚拟对象被显示,使得该一个或多个虚拟对象被感知到存在于真实世界环境内。在一个示例中,使用HMD来显示一个或多个虚拟对象。
图7C是描述用于预测未来的虚拟对象状态的过程的一个实施例的流程图。图7C中描述的过程是用于实现图7B中的步骤720的过程的一个示例。在一个实施例中,图7C的过程由诸如图1中的移动设备19的移动设备来执行。
在步骤730中,标识与虚拟对象的第一状态相关联的一个或多个触发事件。在一个实施例中,HMD生成状态机,其中第一虚拟对象的当前状态可基于与该当前状态相关联的一个或多个触发事件被转移到不同的状态中。在步骤731中,确定与一个或多个触发事件相关联的一个或多个触发概率。一个或多个触发概率可基于使用HMD的终端用户的历史,与常被检测到的触发事件相关联的通用概率(即,非终端用户专用的),以及与特定姿势相关联的、运行在HMD上的增强现实应用的运行时期间的检测率来确定。在一些情形中,虚拟对象状态预测可由服务器(诸如,在HMD的特定距离以内的补充信息提供者)来执行。
在步骤732中,基于在步骤731中确定的一个或多个触发概率来预测虚拟对象的第二状态。在一个实施例中,如果与第二状态相关联的触发概率位于特定阈值以上,则第二状态被预测(例如,与第二状态相关联的触发事件将被触发的机会有90%)。在步骤733中,获取与第二状态相关联的一个或多个第二虚拟对象。在步骤734中,存储一个或多个第二虚拟对象。如果虚拟对象被转移到第二状态,则一个或多个第二虚拟对象可被存储或高速缓存到HMD上并且可被检索。在步骤735中,输出一个或多个第二虚拟对象。在一个实施例中,可将一个或多个第二虚拟对象从补充信息提供者传输到HMD。在步骤736中,输出第二状态的标识。在一个实施例中,可将一个或多个第二状态的标识从补充信息提供者传输到HMD。
图7D是描述与补充信息提供者协商信息转移的过程的一个实施例的流程图。图7D中描述的过程是用于实现图7B中的步骤712的过程的一个示例。在一个实施例中,图7D的过程由诸如图1中的移动设备19的移动设备来执行。
在步骤740中,特定全息文件格式的标识被传输到补充信息提供者。该特定全息文件格式可包括标准化文件格式,该标准化文件格式包括与一个或多个虚拟对象相关联的虚拟对象信息。在步骤741中,数据压缩标准被传输到补充信息提供者。可以使用该数据压缩标准,以便压缩从补充信息提供者传输到HMD的文件的大小。在步骤742中,从补充信息提供者接收关于是否支持特定全息文件格式和数据压缩标准的响应。在一个实施例中,HMD可接收该响应并且确定是否与补充信息提供者建立信息传输。在步骤743中,基于响应来建立与补充信息提供者的信息传输。
图7E是描述从补充信息提供者获取一个或多个虚拟对象的过程的一个实施例的流程图。图7E中描述的过程是用于实现图7B中的步骤716的过程的一个示例。在一个实施例中,图7E的过程由诸如图1中的移动设备19的移动设备来执行。
在步骤750中,标识真实世界环境内的一个或多个环境特征。该一个或多个环境特征可包括与真实世界环境相关联的位置(例如,特定的游乐园或博物馆)、与真实世界环境相关联的地形类型(例如,户外或拥挤的空间)、和/或与真实世界环境相关联的天气分类(例如,天气冷或者下雨)。在步骤751中,获取包括用户历史的用户简档。用户简档可描述HMD的终端用户的特定特性,诸如,终端用户的年龄。用户简档可以指定与增强现实环境相关联的用户偏好,诸如对在特定时间显示的虚拟对象的数量的限制、或者偏好在HMD上显示的虚拟对象的类型。用户简档还可指定与什么类型的虚拟对象可被显示相关联的许可。例如,用户简档可与儿童相关联,并且可阻止显示与特定类型的广告相关联的虚拟对象。
在步骤752中,一个或多个环境特征和用户简档被传输到补充信息提供者。可在HMD的特定距离以内检测补充信息提供者。补充信息提供者可以提供与真实世界环境相关联的虚拟对象。例如,真实世界环境可包括游乐园的搭乘或博物馆的展览。在步骤753,基于一个或多个环境特征和用户简档从补充信息提供者获取一个或多个虚拟对象。
图7F是描述获取一个或多个虚拟对象的过程的一个实施例的流程图。图7F中描述的过程是用于实现图7B中的步骤716的过程的一个示例。在一个实施例中,图7F的过程由诸如图1中的移动设备19的移动设备来执行。
在步骤760中,在特定环境内标识真实世界对象。HMD可使用对象或模式识别技术来标识真实世界对象。在步骤761中,获取基于真实世界对象的标识的虚拟对象。在一个实施例中,通过向补充信息提供者供应真实世界对象的标识,从补充信息提供者获取虚拟对象。在一些情形中,如果不存在与该标识的确切匹配,则可向HMD提供与该标识相关联的一个以上虚拟对象。
在步骤762中,基于对真实世界对象的扫描来生成真实世界对象的3-D模型。对真实世界对象的扫描可由HMD来执行。在步骤763中,检测到与真实世界对象的3-D模型相关联的封闭表面。在步骤764中,使用在步骤762中创建的3-D模型来对在步骤761中获取的虚拟对象进行验证。虚拟对象可被验证以检查虚拟对象的形状与3-D模型的形状之间的一一对应。
在步骤765中,通过将元数据附连到的虚拟对象来基于特定环境自动地标记虚拟对象。该元数据可被包括在与虚拟对象相关联的虚拟对象信息内。在一个实施例中,虚拟对象可被标记为HMD的终端用户所拥有。虚拟对象还可被标记为与终端用户的房屋(或其一部分)位于一处。虚拟对象可基于存储在终端用户简档中的信息被自动地标记,该终端用户简档被存储在HMD上。终端用户简档可提供与该终端用户相关联的标识信息,包括终端用户的名字、终端用户的工作位置、和终端用户的房屋位置。在步骤766中,虚拟对象被存储。虚拟对象可被存储在HMD上的非易失性存储器中。在步骤767中,虚拟对象被输出。虚拟对象信息可从HMD上的非易失性存储器中被检索并且用于生成虚拟对象的一个或多个图像。
图7G是描述显示一个或多个虚拟对象的过程的一个实施例的流程图。图7G中描述的过程是用于实现图7B中的步骤728的过程的一个示例。在一个实施例中,图7G的过程由诸如图1中的移动设备19的移动设备来执行。
在步骤780中,获取环境的3-D映射。3-D映射可包括一个或多个图像描述符。在步骤781中,获取环境的一个或多个视点图像。该一个或多个视点图像可与诸如HMD的移动设备的特定姿势相关联。在步骤782中,基于在步骤780中获取的3-D映射来确定与一个或多个虚拟对象相关联的一个或多个位置。在一个实施例中,一个或多个虚拟对象被记录为与3-D映射相关。在步骤783中,在一个或多个视点图像内检测一个或多个图像描述符的至少一个子集。可通过向一个或多个视点图像应用各种图像处理方法(诸如,对象识别、特征检测、角检测、团块检测、和边缘检测方法)来检测一个或多个图像描述符。一个或多个图像描述符可在确定关于3-D映射的特定姿态、位置和/或定向中被用作陆标。图像描述符可包括与特定对象(例如,红苹果)或特定对象位于特定环境内的一部分(例如,红苹果的顶部)相关联的色彩和/或深度信息。
在步骤784中,可以确定包括与环境内移动设备的位置和定向相关联的信息的六个自由度(6DOF)姿态。在步骤785中,基于在步骤784中确定的6DOF姿态来呈现与一个或多个虚拟对象相关联的一个或多个图像。在步骤786中,一个或多个图像被显示,使得一个或多个虚拟对象被感知到存在于环境内。关于记录虚拟对象并在增强现实世界中呈现对应图像的更多信息可在题为“Distributed Asynchronous Localization and Mapping for Augmented Reality(增强现实的分布式异步本地化和映射)”的美国专利申请13/152,220中找到,其通过引用全部结合于此。
所公开的技术的一个实施例包括获取包括第一虚拟对象的一个或多个虚拟对象。第一虚拟对象与第一状态以及与第一状态不同的第二状态相关联。第一状态与一个或多个触发事件相关联。一个或多个触发事件的第一触发事件与第二状态相关联。方法还包括将第一虚拟对象设为第一状态,检测第一触发事件,响应于检测到第一触发事件将第一虚拟对象设为第二状态,以及在移动设备上显示与处于第二状态中的第一虚拟对象相关联的一个或多个图像。一个或多个图像被显示,使得第二状态中的第一虚拟对象被感知到存在于真实世界环境内。
所公开的技术的一个实施例包括从补充信息提供者获取一个或多个虚拟对象。一个或多个虚拟对象包括第一虚拟对象。第一虚拟对象与第一状态以及与第一状态不同的第二状态相关联。第一状态与第一3-D模型相关联,并且第二状态与不同于第一3-D模型的第二3-D模型相关联。方法还包括将第一虚拟对象设为第一状态,预测第二状态,响应于预测第二状态来获取一个或多个第二虚拟对象,检测与第二状态相关联的一个或多个触发事件中的第一触发事件,响应于检测到第一触发事件将第一虚拟对象设为第二状态,以及在移动设备上显示与第二状态中的第一虚拟对象相关联的一个或多个图像。一个或多个图像被显示,使得第二状态中的第一虚拟对象被感知到存在于真实世界环境内。
所公开的技术可以与各种计算系统一起使用。图8-10提供了可用于实现所公开的技术的实施例的各种计算系统的示例。
图8是游戏和媒体系统7201(图3B中的计算环境12的一个示例)的实施例的框图。控制台7203具有中央处理单元(CPU)7200以及便于处理器访问各种存储器的存储器控制器7202,这些存储器包括闪存只读存储器(ROM)7204、随机存取存储器(RAM)7206、硬盘驱动器7208,以及便携式媒体驱动器7107。在一种实现中,CPU7200包括1级高速缓存7210和2级高速缓存7212,这些高速缓存用于临时存储数据并因此减少对硬盘驱动器7208进行的存储器访问周期的数量,从而提高了处理速度和吞吐量。
CPU7200、存储器控制器7202、以及各种存储器设备经由一个或多个总线(未示出)互连在一起。所述一个或多个总线可以包括下列各项中一个或多个:串行和并行总线、存储器总线、外围总线、使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例,这样的体系结构可以包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外围部件互连(PCI)总线。
在一个实施方式中,CPU7200、存储器控制器7202、ROM7204、以及RAM7206被集成到公用模块7214上。在此实施方式中,ROM7204被配置为通过PCI总线和ROM总线(两者都没有示出)连接到存储器控制器7202的闪速ROM。RAM7206被配置为多个双倍数据速率同步动态RAM(DDRSDRAM)模块,它们被存储器控制器7202通过分开的总线(未示出)独立地进行控制。硬盘驱动器7208和便携式媒体驱动器7107被示为通过PCI总线和AT附加(ATA)总线7216连接到存储器控制器7202。然而,在其他实施方式中,也可以在替代方案中应用不同类型的专用数据总线结构。
三维图形处理单元7220和视频编码器7222构成了视频处理流水线,用于进行高速度和高分辨率(例如,高清晰度)图形处理。数据通过数字视频总线(未示出)从图形处理单元7220传输到视频编码器7222。音频处理单元7224和音频编解码器(编码器/解码器)7226构成了对应的音频处理流水线,用于对各种数字音频格式进行多通道音频处理。通过通信链路(未示出)在音频处理单元7224和音频编解码器7226之间传输音频数据。视频和音频处理流水线向A/V(音频/视频)端口7228输出数据,以便传输到电视机或其他显示器。在所示出的实现中,视频和音频处理组件7220-7228安装在模块7214上。
图8示出了包括USB主控制器7230和网络接口7232的模块7214。USB主控制器7230通过总线(未示出)与CPU 7200和存储器控制器7202通信,并用作外围控制器7205(1)-7205(4)的主机。网络接口7232提供对网络(例如,因特网、家庭网络等等)的访问,并可以是各种有线或无线接口组件中的任何一种,包括以太网网卡、调制解调器、无线接入卡、蓝牙模块、电缆调制解调器等等。
在图8中描述的实现中,控制台7203包括用于支持四个控制器7205(1)-7205(4)的控制器支持子部件7240。控制器支持子部件7240包括支持与诸如,例如,媒体和游戏控制器之类的外部控制设备的有线和无线操作所需的任何硬件和软件组件。前面板I/O子部件7242支持电源按钮7213、弹出按钮7215,以及任何LED(发光二极管)或暴露在控制台7203的外表面上的其他指示器等多个功能。子部件7240和7242通过一个或多个电缆部件7244与模块7214进行通信。在其他实现中,控制台7203可以包括另外的控制器子部件。所示出的实施方式还示出了被配置为发送和接收可传递给模块7214的信号(例如从遥控器7290)的光学I/O接口7235。
MU 7241(1)和7241(2)被示为可以分别连接到MU端口“A”7231(1)和“B”7231(2)。附加MU(例如,MU 7241(3)-7241(6))被示为可连接到控制器7205(1)和7205(3),即每一个控制器两个MU。控制器7205(2)和7205(4)也可以被配置成接纳MU(未示出)。每一个MU 7241都提供附加存储,在其上面可以存储游戏、游戏参数、及其他数据。诸如便携式USB设备之类的附加存储器设备可用来代替MU。在一些实现中,其他数据可以包括数字游戏组件、可执行的游戏应用,用于扩展游戏应用的指令集、以及媒体文件中的任何一种。当被插入到控制台7203或控制器中时,MU 7241可以被存储器控制器7202访问。系统供电模块7250向游戏系统7201的组件供电。风扇7252冷却控制台7203内的电路。
包括机器指令的应用7260被存储在硬盘驱动器7208上。当控制台7203被上电时,应用7260的各个部分被加载到RAM7206和/或高速缓存7210和7212中以供在CPU7200上执行。其他应用也可以存储在硬盘驱动器7208上以供在CPU7200上执行。
可以通过简单地将系统连接到监视器、电视机、视频投影仪、或其他显示设备来将游戏和媒体系统7201用作独立系统。在此独立模式下,游戏和媒体系统7201允许一个或多个玩家玩游戏或欣赏数字媒体(例如观看电影或欣赏音乐)。然而,随着宽带连接的集成通过网络接口7232而成为可能,游戏和媒体系统7201还可以作为较大的网络游戏社区的参与者来操作。
图9是移动设备8300(诸如图1中的移动设备19)的一个实施例的框图。移动设备可以包括膝上型计算机、袖珍计算机、移动电话、个人数字助理、以及已经整合了无线接收机/发射机技术的手持式媒体设备。
移动设备8300包括一个或多个处理器8312以及存储器8310。存储器8310包括应用8330和非易失性存储8340。存储器8310可以是任何种类的存储器存储介质类型,包括非易失性和易失性存储器。移动设备操作系统处理移动设备8300的不同操作,并可包含用于操作的用户界面,如拨打和接听电话呼叫、文本消息收发、检查语音邮件等。应用8330可以是任何种类的程序,如用于照片和/或视频的相机应用、地址簿、日历应用、媒体播放器、因特网浏览器、游戏、闹钟应用、以及其他应用。存储器8310中的非易失性存储组件8340可以包含诸如音乐、照片、联系人数据、时间安排数据、以及其他文件之类的数据。
所述一个或多个处理器8312还与下列各项通信:RF发射机/接收机8306,其进而耦合到天线8302;红外发射机/接收机8308;全球定位服务(GPS)接收机8365;以及移动/定向传感器8314,其可以包括加速度计和/或磁力计。RF发射机/接收机8308可以通过诸如蓝牙
或IEEE802.11标准之类的各种无线技术标准来实现无线通信。加速度计可能已经并入到移动设备中以实现诸如下列应用:智能用户界面应用,其让用户通过姿势输入命令;以及定向应用,其可以在移动设备被旋转时自动地从竖向改变成横向。可以,例如,通过微机电系统(MEMS)来提供加速度计,该微机电系统是构建在半导体芯片上的微小机械设备(微米尺寸)。可以感测加速度方向、以及定向、振动和震动。所述一个或多个处理器8312还与响铃器/振动器8316、用户界面小键盘/屏幕8318、扬声器8320、话筒8322、相机8324、光传感器8326和温度传感器8328进行通信。用户界面小键盘/屏幕可以包括触敏屏幕显示。
所述一个或多个处理器8312控制无线信号的发射和接收。在发射模式期间,所述一个或多个处理器8312向RF发射机/接收机8306提供来自话筒8322的语音信号或其它数据信号。发射机/接收机8306通过天线8302来传送信号。响铃器/振动器8316被用于向用户发传入呼叫、文本消息、日历提醒、闹钟提醒或其他通知等信号。在接收模式期间,RF发射机/接收机8306通过天线8302接收来自远程站的语音信号或数据信号。所接收到的语音信号被提供给扬声器8320,同时所接收到的其它数据信号被适当地处理。
另外,可以使用物理连接器8388来将移动设备8300连接到诸如AC适配器或加电对接底座之类的外部电源,以便对电池8304进行再充电。物理连接器8388还可被用作到外部计算设备的数据连接。该数据连接允许诸如将移动数据与另一设备上的计算数据进行同步等操作。
图10是计算系统环境2200(诸如图3B中的计算系统10)的实施例的框图。计算系统环境2200包括计算机2210形式的通用计算设备。计算机2210的组件可以包括、但不限于处理单元2220、系统存储器2230、以及将包括系统存储器2230在内的各种系统组件耦合到处理单元2220的系统总线2221。系统总线2221可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线、外围总线、以及局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线。
计算机2210通常包括各种计算机可读介质。计算机可读介质可以是能被计算机2210访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非局限,计算机可读介质可以包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字多功能盘(DVD)或其他光盘存储设备,磁带盒、磁带、磁盘存储设备或其他磁存储设备,或者能用于存储所需信息且可以由计算机2210访问的任何其他介质。上述中任一组合也应包括在计算机可读介质的范围之内。
系统存储器2230包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)2231和随机存取存储器(RAM)2232。包含诸如在启动期间帮助在计算机2210内的元件之间传输信息的基本例程的基本输入/输出系统2233(BIOS)通常储存储在ROM 2231中。RAM 2232通常包含处理单元2220可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图10示出了操作系统2234、应用程序2235、其它程序模块2236和程序数据2237。
计算机2210也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图10示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器2241,从可移动、非易失性磁盘2252中读取或向其写入的磁盘驱动器2251,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘2256中读取或向其写入的光盘驱动器2255。可在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器2241通常由例如接口2240等不可移动存储器接口连接至系统总线2221,而磁盘驱动器2251和光盘驱动器2255通常由例如接口2250等可移动存储器接口连接至系统总线2221。
上文讨论并在图10中示出的驱动器及其相关联的计算机存储介质为计算机2210提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图10中,硬盘驱动器2241被示为存储操作系统2244、应用程序2245、其它程序模块2246和程序数据2247。注意,这些组件可与操作系统2234、应用程序2235、其他程序模块2236和程序数据2237相同,也可与它们不同。在此操作系统2244、应用程序2245、其他程序模块2246以及程序数据2247被给予了不同的编号,以说明至少它们是不同的副本。用户可以通过输入设备如键盘2262和定点设备2261(通常指鼠标、跟踪球或触摸垫)向计算机2210输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些以及其他输入设备通常通过耦合到系统总线的用户输入接口2260连接到处理单元2220,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其他接口和总线结构来连接。监视器2291或其他类型的显示设备也通过诸如视频接口2290之类的接口连接至系统总线2221。除了监视器以外,计算机还可包括诸如扬声器2297和打印机2296之类的其他外围输出设备,它们可通过输出外围接口2295来连接。
计算机2210可使用到一个或多个远程计算机(诸如,远程计算机2280)的逻辑连接而在联网环境中操作。远程计算机2280可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机2210描述的许多或所有元件,但在图10中只示出存储器存储设备2281。图10中所示的逻辑连接包括局域网(LAN)2271和广域网(WAN)2273,但也可以包括其它网络。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机2210通过网络接口或适配器2270连接到LAN2271。当在WAN联网环境中使用时,计算机2210通常包括调制解调器2272或用于通过诸如因特网等WAN2273建立通信的其他手段。调制解调器2272可以是内置的或外置的,可经由用户输入接口2260或其他适当的机制连接到系统总线2221。在联网环境中,相对于计算机2210所示的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图10示出了远程应用程序2285驻留在存储器设备2281上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。
所公开的技术可用各种其它通用或专用计算系统环境或配置来操作。适合在该技术中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包含上述系统或设备中的任一个的分布式计算机环境等。
所公开的技术可在诸如程序模块等由计算机执行的计算机可执行指令的一般上下文中描述。一般而言,如此处所述的软件和程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构和其他类型的结构。硬件或硬件和软件的组合可代替如此处所述的软件模块。
所公开的技术也可以在任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
出于本文档的目的,与所公开的技术相关联的每个过程可以持续地并由一个或多个计算设备来执行。该过程中的每个步骤都可由与在其他步骤中所使用的那些计算设备相同或不同的计算设备来执行,且每个步骤不必由单个计算设备来执行。
出于本文的目的,说明书中引述的“一实施例”、“一个实施例”、“某些实施例”或“另一实施例”用于描述不同的实施例并且不必然指的是同一实施例。
出于本文的目的,连接可以是直接连接或间接连接(例如,经由另一方)。
出于本文的目的,术语对象的“集合”指的是一个或多个对象的“集合”。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。