用于混合现实环境中的对象分割的方法和系统与流程

文档序号:18838952发布日期:2019-10-09 06:32阅读:211来源:国知局
用于混合现实环境中的对象分割的方法和系统与流程

本申请是非临时申请并要求于2018年3月20日提交的题为“accuratehandtrackingonaperipheraldeviceinamixedrealityenvironment(在混合现实环境中对外围设备的准确手跟踪)”的美国临时申请第62/645,760号的权益和优先权,出于所有目的在此通过引用将该临时申请以其全部内容并入。

如下常规美国专利申请(包括本申请)同时提交,并且其他申请的全部公开内容出于所有目的通过引用并入本申请中:

·2019年2月4日提交的题为“methodandsystemformixedrealityinteractionwithperipheraldevice”(用于与外围设备的混合现实交互的方法和系统)的第16/267,200号申请。



背景技术:

外围设备可以用于将人和计算机进行接口。一些常见的外围设备包括键盘、计算机鼠标、图像扫描仪、扬声器、麦克风、网络摄像机、头戴式显示器(hmd)、触针、笔、指针装置等。这些外围设备中的一些可以交互操作以改善用户体验。例如,hmd可以与其他外围设备(例如,鼠标、键盘等)操作,以提供混合现实(mr)或增强现实(ar)体验。例如,用户佩戴的hmd可以包括摄像机以捕获用户与该用户前方的另一外围设备(例如,键盘)的交互的实时图像。可以通过将来自图像的现实元素(例如,物理手或其他身体部位、物理键盘等)与虚拟元素(例如,虚拟键盘、虚拟手等)进行组合来生成合成图像。可以针对实时图像中的每个生成合成图像,并且可以在hmd处向用户显示合成图像以代替实时图像。

当hmd由于用户的运动而移动时,可以更新hmd中显示的合成图像,以反映用户的视角相对于外围设备的变化。合成图像中的虚拟元素和真实元素的渲染应该与hmd的运动同步,以提高一致性并减轻晕动病体验。



技术实现要素:

在某些实施方式中,提供了一种提供混合现实(mr)交互的方法。该方法包括:在第一时间处并使用用户的头戴式显示器(hmd)的摄像机捕获用户与物理对象的物理交互的第一图像;在第一时间与第二时间之间测量hmd相对于物理对象的运动;基于hmd的运动的测量来处理第一图像以生成第二图像;基于第二图像生成涉及用户的虚拟交互的合成图像;以及在第二时间处经由hmd并基于合成图像向用户显示虚拟交互以代替物理交互。

在一些方面中,在第一时间处捕获第一图像。该方法还包括:在第一时间与第二时间之间测量hmd相对于物理对象的运动,以获得一个或更多个测量结果;基于所述一个或更多个测量结果来处理第一图像以生成第二图像。

在一些方面中,基于所述一个或更多个测量结果来处理第一图像以生成第二图像包括:将第一图像存储在帧缓存器中;基于所述一个或更多个测量结果移动帧缓存器中的第一图像的一部分;以及基于第一图像的移动部分来生成第二图像。

在一些方面中,帧缓存器包括第一缓存区和第二缓存区。第一图像的数据在第一缓存区和第二缓存区之间划分。基于存储在第一缓存区中的第一图像的部分数据生成第二图像。移动帧缓存器中的第一图像的一部分包括改变帧缓存器内的第一缓存区的位置。

在一些方面中,帧缓存器包括第一缓存区和第二缓存区。第一图像的数据可以在第一缓存区和第二缓存区之间划分。可以基于存储在第一缓存区中的第一图像的部分数据来生成第二图像。移动帧缓存器中的第一图像的一部分可以包括:相对于帧缓存器内的第一缓存区的位置来改变第一图像的数据的存储位置。

在一些方面中,所述一个或更多个测量结果包括:hmd的角速度和hmd的旋转方向。

在一些方面中,基于所述一个或更多个测量结果移动帧缓存器中的第一图像的一部分包括:基于角速度、旋转方向以及第一时间和第二时间之间的时间差来确定旋转角度;基于旋转角度、hmd的第一位置和物理对象的第二位置来确定移动距离和移动方向;以及基于移动距离和移动方向移动帧缓存器中的第一图像的一部分。

在一些方面中,该方法还包括:基于估计第一时间和第二时间之间的延迟来确定时间差。

在一些方面中,第一图像包括显示时变图案的显示装置的图像。该方法还包括:从第一图像中识别图案;以及基于所识别的图案来确定第一时间。

在一些方面中,第一图像包括由物理对象发射的时变光图案。该方法还包括:从第一图像中识别光图案;以及基于所识别的光图案来确定第一时间。

在一些方面中,基于确定hmd的摄像机的快门打开时的时间来确定第一时间。

在一些方面中,基于确定第一图像被存储在帧缓存器中时的时间来确定第二时间。

在一些方面中,基于从附接至物理对象的光学传感器接收的信息来确定物理对象的第二位置。

在一些方面中,基于从光学传感器接收的信息来确定物理对象的第二位置,所述光学传感器接收来自附接至物理对象的光发射器的光。

在一些方面中,基于检测来自多个光发射器的定向光束和多个光发射器的预定位置来确定hmd的第一位置。

在一些方面中,基于如下操作来生成合成图像:基于hmd的位置、物理对象的位置以及所述一个或更多个测量结果来确定第二图像中的物理对象的图像位置;以及用虚拟对象的像素代替与图像位置处的第二图像中的物理对象对应的像素以生成合成图像。

在一些方面中,基于如下操作来生成合成图像:基于hmd的位置、物理对象的位置以及所述一个或更多个测量结果来确定第二图像中的物理对象的第一图像位置;基于第一图像位置且在第二图像中确定参与了与物理对象的物理交互的用户身体部位的第二图像位置;提取第二图像中的在第二图像位置处的用户身体部位的像素;以及将用户身体部位的像素放置在合成图像中。

在一些方面中,用户的身体部位包括用户的手的至少一部分。

在某些实施方式中,提供了一种设备。该设备包括:显示装置;摄像机,其被配置成在第一时间捕获用户与物理对象的物理交互的第一图像;图像处理器,其与摄像机和显示装置耦接并且被配置成:在第一时间和第二时间之间测量设备相对于物理对象的运动;基于设备的运动的测量来处理第一图像以生成第二图像;基于第二图像来生成涉及用户的虚拟交互的合成图像;以及将合成图像提供至显示装置,以在第二时间处向用户显示虚拟交互以代替物理交互。

在某些实施方式中,提供了一种非暂态计算机可读介质。非暂态计算机可读介质存储指令,所述指令在由硬件处理器执行时使硬件处理器进行如下操作:从头戴式显示器(hmd)的摄像机接收用户与物理对象的物理交互的第一图像,在第一时间处由摄像机捕获第一图像;在第一时间和第二时间之间测量hmd相对于物理对象的运动;基于hmd的运动的测量来处理第一图像以生成第二图像;基于第二图像来生成涉及用户的虚拟交互的合成图像;以及将合成图像提供至显示装置,以在第二时间处向用户显示虚拟交互以代替物理交互。

在某些实施方式中,提供了一种用于提供混合现实(mr)交互的方法。该方法包括:捕获用户的附器(appendage)和物理外围输入设备的第一图像,其中用户的附器覆盖物理外围输入设备的至少一部分;执行分割,该分割将第一图像分出与用户的附器对应的第一像素区域,其中第二像素区域对应于物理外围输入设备;基于代替第二像素区域地渲染表示虚拟外围输入设备的像素来从第一图像生成合成图像,使得虚拟外围输入设备在与物理外围输入设备相同的空间位置处出现在合成图像中并且由用户的附器至少部分地覆盖;以及向用户显示合成图像。

在一些方面中,与用户的附器覆盖物理外围输入设备的至少一部分基本上同时地向用户显示合成图像。

在一些方面中,基于物理外围输入设备的多个位置处的活动的分布来执行第一图像的分割。

在一些方面中,第一图像的分割包括:确定物理外围输入设备的多个位置处的活动的历史分布,活动的历史分布基于用户或一组用户与物理外围输入设备之间的先前交互;基于活动的历史分布来确定一个或更多个阈值;将第一图像的像素与一个或更多个阈值进行比较;基于比较的结果来确定与用户的附器对应的第一像素区域和与物理外围输入设备对应的第二像素区域。

在一些方面中,第一图像的分割包括:基于活动的历史分布的统计分析来确定用户的附器在物理外围输入设备的多个位置中的每个位置处的可能性的分布;基于可能性的分布来识别可能是用户的附器的一部分的像素;以及基于所识别的像素的一个或更多个属性来确定一个或更多个阈值。

在一些方面中,该方法还包括:确定一个或更多个阈值中的与用户的附器的第一区域对应的第一阈值;确定一个或更多个阈值中的与用户的附器的第二区域对应的第二阈值;以及将第一图像的像素与第一阈值和第二阈值进行比较,以确定与用户的附器对应的第一像素区域。

在一些方面中,该方法还包括:基于环境光强度或用户的身份中的至少一个来确定第一阈值或第二阈值中的至少一个。

在一些方面中,活动的分布包括活动在物理外围输入设备的多个位置处的即时分布。

在一些方面中,该方法还包括:从物理外围输入设备的第一位置处的传感器接收对活动进行接收的指示;基于该指示,捕获物理外围输入设备的第三图像;选择与第一位置对应的第三像素区域和在第一位置周围的第四像素区域;确定第三像素区域的颜色分量的第一直方图;确定第四像素区域的颜色分量的第二直方图;基于第一直方图和第二直方图来确定一个或更多个阈值;以及将第一图像的像素与一个或更多个阈值进行比较,以确定第一图像的与用户的附器对应的第一像素区域。

在一些方面中,该方法还包括:基于活动的历史分布识别物理外围输入设备的接收次数少于预定先前活动数量的第二位置;从第三图像中识别与第二位置对应的第五像素区域;确定第五像素区域的颜色分量的第三直方图;基于第三直方图来确定一个或更多个阈值的第二阈值;以及将第一图像的像素与第二阈值进行比较,以确定第一图像的与物理键盘对应的第二像素区域。

在一些方面中,该方法还包括:确定活动的分布相对于时间的变化;基于变化来确定感兴趣的区域;识别第一图像的感兴趣的区域中的像素;从所识别的像素确定与用户的附器对应的第一像素区域。

在一些方面中,该方法还包括:捕获没有被用户的附器遮蔽的物理外围输入设备的第二图像;基于第二图像来确定一个或更多个阈值;向用户发送将用户的附器放在物理外围输入设备的预定位置处的指示;在物理外围输入设备的预定位置处捕获用户的附器的第三图像;基于第三图像的与物理键盘的预定位置对应的像素来调节一个或更多个阈值;以及将第一图像的像素与经调节的一个或更多个阈值进行比较,以确定与用户的附器对应的第一像素区域。

在一些方面中,基于物理外围输入设备的模型或者用户与物理外围输入设备交互的应用中的至少一个根据多个活动分布确定活动的分布。

在一些方面中,基于如下操作来生成合成图像:用表示虚拟外围输入设备所位于的虚拟环境的像素代替与物理外围输入设备所位于的物理环境对应的像素。

在一些方面中,基于如下操作来生成合成图像:基于虚拟环境的亮度调节第一像素区域的亮度。

在一些方面中,基于如下操作来生成合成图像:添加由用户的附器投射的在虚拟环境中的虚拟阴影。

在一些方面中,第一图像由头戴式显示器(hmd)的摄像机捕获。合成图像由hmd显示。

在一些方面中,将第一图像分出与用户的附器对应的第一像素区域包括识别表示用户的附器的像素值的两个或更多个阈值,其中第一图像的没有落入所述两个或更多个阈值内的像素被丢弃。

在某些实施方式中,提供了一种设备。该设备可以包括:显示装置;摄像机,其被配置成捕获用户的附器和物理外围输入设备的第一图像,其中用户的附器覆盖物理外围输入设备的至少一部分;图像处理器,其与摄像机和显示装置耦接并且被配置成:从摄像机接收第一图像;执行分割,该分割将第一图像分出与用户的附器对应的第一像素区域,其中第二像素区域对应于物理外围输入设备;基于代替第二像素区域地渲染表示虚拟外围输入设备的像素来从第一图像生成合成图像,,使得虚拟外围输入设备在与物理外围输入设备相同的空间位置处出现在合成图像中并且由用户的附器至少部分地覆盖;以及将合成图像提供至显示装置以向用户显示。

在一些实施方式中,提供了一种非暂态计算机可读介质。该非暂态计算机可读介质存储指令,所述指令在由硬件处理器执行时使硬件处理器进行如下操作:从摄像机接收用户的附器和物理外围输入设备的第一图像,其中用户的附器覆盖物理外围输入设备的至少一部分;执行分割,该分割将第一图像分出与用户的附器对应的第一像素区域,其中第二像素区域对应于物理外围输入设备;基于代替第二像素区域地渲染表示虚拟外围输入设备的像素来从第一图像生成合成图像,使得虚拟外围输入设备在与物理外围输入设备相同的空间位置处出现在合成图像中并且由用户的附器至少部分地覆盖;以及将合成图像提供至显示装置以向用户显示。

附图说明

将参照附图来阐述详细描述。

图1a和图1b示出了利用所公开的技术的系统的典型实现。

图2示出了用于操作外围设备的系统。

图3a至图3f示出了根据一些实施方式的由图1a和图1b的系统进行的沉浸式混合现实(mr)体验生成的示例。

图4a至图4d示出了根据一些实施方式的图像延迟补偿方案的示例。

图5a至图5f示出了根据一些实施方式的手分割方案的示例。

图6示出了根据一些实施方式的图像处理引擎的示例。

图7示出了根据一些实施方式的提供混合现实(mr)体验的示例方法的流程图。

图8示出了根据一些实施方式的提供mr体验的示例方法的流程图。

具体实施方式

根据某些示例,本公开内容的各方面一般涉及外围设备,具体地涉及提供混合现实(mr)或增强现实(ar)交互体验的外围设备。如本文中所使用的,增强现实(ar)是现实世界环境的交互体验。现实世界环境直接通过用户的眼睛(例如,通过一副ar眼镜)对于用户是可见的,或者通过与用户的视线对准的摄像机成像。在ar中,驻留在现实世界中的对象通过计算机生成的感知信息来增强,有时跨越多种感觉形态,包括视觉、听觉、触觉、体感和嗅觉形态。混合现实(mr)——有时也被称为混合式现实——可以指现实世界和虚拟世界的融合。在混合现实中,可以呈现完全计算机生成的环境,该环境可以与现实对象的图像或表示融合。混合现实可以产生物理和数字对象实时共存和交互的新的环境和可视化以及新的用户交互。混合现实提供现实与虚拟现实的混合,并且可以通过沉浸式技术包含增强现实。

在下面的描述中,将描述提供mr和/或ar交互体验的外围设备的各种示例。出于说明的目的,陈述了具体配置和细节以提供对实施方式的透彻理解。然而,对于本领域技术人员而言明显的是,可以在没有公开每个细节的情况下实践或实现某些实施方式。此外,可以省略或简化公知的特征,以防止对本文中描述的新颖特征的任何混淆。

外围设备可以用于将人和计算机进行接口。一些常见的外围设备包括键盘、计算机鼠标、图像扫描仪、扬声器、麦克风、网络摄像机、头戴式显示器(hmd)、触针(styli)、笔、指针装置等。这些外围设备中的一些可以检测作为来自用户的输入的运动,并且将运动转换为至计算机的输入。例如,诸如计算机鼠标的手持外围设备可以检测其相对于表面的移动,并且将相对于表面的移动转换成在图形用户界面(gui)中显示的光标的相应移动。此外,键盘可以检测键的运动和/或手指在键处的敲击运动,并且向计算机发送信号以显示由键表示的某些信息(例如,字母、符号、光标移动等)。

这些外围设备中的一些可以互操作以改善用户体验。例如,hmd可以通过其他外围设备(例如,鼠标、键盘等)进行操作以提供混合现实(mr)或增强现实(ar)系统。例如,用户佩戴的hmd可以包括用于捕获表示用户的物理环境的视野的实时图像的摄像机。为了提供沉浸式mr/ar体验,可以捕获用户与另一外围设备的交互(例如,在物理键盘上键入动作)的实时图像。图像中示出的第一现实元素(例如,用户的物理手或其他身体部位/附器)可以与表示物理环境中的第二现实元素的虚拟元素(例如,虚拟键盘)组合以形成合成图像。可以基于例如第一现实元素和第二现实元素相对于hmd的物理位置来确定合成图像中的第一现实元素和虚拟元素的相对图像位置。

当hmd由于用户的移动(例如,头部的旋转、头部的点头、用户的整个身体移动等)而移动时,可以更新hmd中显示的合成图像以模仿用户的物理环境的视场随着用户移动的改变,以改善沉浸式交互体验。例如,在通过将虚拟键盘(或其他虚拟外围设备)放置到包括手的图像中来生成合成图像的情况下,虚拟键盘的图像位置可以相对于图像移动以将hmd的新位置/取向考虑在内。此外,在通过从图像提取手像素并将手像素放置到包括虚拟键盘的虚拟图像中来生成合成图像的情况下,也可以移动来自图像的手像素的提取位置以将hmd的新位置/取向考虑在内。

在合成图像生成的两种情况下,虚拟元素的图像位置的移动和现实元素的提取位置可以基于图像反映hmd的即时位置/取向的假设。然而,这种假设不一定有效。例如,由于诸如视频摄像机等待时间、渲染和处理延迟、数据传输延迟等各种因素,当在hmd开始移动时捕获图像时,在图像可用于现实元素的提取或与虚拟元素组合以形成合成图像的时间处,可能已经经过了相当大的时间延迟(例如,0.1秒)。因此,图像可以仅反映hmd的先前位置/取向。反映hmd的最新位置/取向的图像的渲染中的等待时间会被用户发觉并且可能劣化用户体验。例如,在基于hmd的最新位置/取向更新的图像位置处从该图像提取像素可能不会产生预期的现实元素(例如,手)。此外,将虚拟元素放置在合成图像中的更新图像位置处的该视频帧中可能导致现实元素和虚拟元素之间的不对准。例如,在特定时间点,hmd可以在虚拟键盘上显示手并与虚拟键盘进行交互。当hmd移动时,由于前述不对准,hmd可以将手显示在相对于虚拟键盘的后面位置,并且仅当hmd静止时手才与虚拟键盘对准,但是当hmd正在移动时手与虚拟键盘不对准。这可能导致不一致的交互体验或者甚至晕动病。

另外,如上所述,前述ar/mr系统可以通过从图像中提取手像素并将手像素放置到包括虚拟键盘(或其他虚拟外围设备)的虚拟图像中来生成合成图像。当用户与由虚拟键盘表示的物理键盘交互时,可以通过hmd向用户显示合成图像,以创建交互ar/mr体验。交互体验的品质可以取决于图像中手的准确分割,该图像描绘了手与物理键盘的交互。手分割可以基于将图像的像素与一个或更多个阈值进行比较,并且基于比较结果将像素分类为属于手或外围设备(或其他背景对象)。手分割的准确性可能受到各种因素的影响,所述各种因素包括例如皮肤色调、光照变化等。采用一个或更多个固定阈值来比较像素的分割方案可以仅适用于小范围的皮肤色调以及小范围的环境。为了允许在更大范围的设置中部署ar/mr系统——这可以提高系统的效用和用户体验,对于更宽范围的皮肤色调和更宽范围的环境,需要更鲁棒的方案来更准确地区分手像素和背景像素。

某些实施方式的概述

本公开内容的示例涉及用于提供沉浸式ar/mr体验的方法和系统,并且可以解决上述挑战中的一些挑战。根据一些实施方式,提供了一种提供混合现实(mr)交互的方法。该方法包括:在第一时间并使用用户的头戴式显示器(hmd)的摄像机来捕获用户与外围设备的物理交互的第一图像;在第一时间和第二时间之间测量hmd相对于外围设备的移动;基于hmd的移动的测量来处理第一图像以生成第二图像;基于第二图像来生成合成图像,以表示涉及用户的虚拟交互;以及在第二时间处通过hmd并基于合成图像来向用户显示虚拟交互以代替物理交互。虚拟交互可以包括例如用户的身体部位与表示外围设备的虚拟对象(例如,虚拟键盘)之间的虚拟交互、表示用户的身体部位的虚拟对象(例如,虚拟手)与外围设备之间的虚拟交互等。

更具体地,可以在hmd移动开始之前的第一时间处捕获用户与外围设备的物理交互(例如,通过手或其他身体部位)的第一图像,但是由于处理延迟,第一图像对于合成图像生成不可用,直到hmd已经移动超过一定距离或朝特定方向旋转超过一定角度的第二时间为止。因此,第一图像不反映在第二时间处即时的用户与外围设备交互的视场。将在第一时间处捕获的物理交互的现实元素与用户在第二时间处看到的物理交互的位置处的虚拟元素组合可能导致现实元素和虚拟元素之间的不对准。作为说明性示例,hmd可以捕获用户的手指与键盘之间的物理交互的图像,并且可以生成描绘用户的手指和虚拟键盘之间的虚拟交互的合成图像。当hmd移动时,由于前述的不对准,hmd可能将用户的手指显示为与虚拟键盘分离或偏离,并且仅当hmd静止时,手指才可以与虚拟键盘准确地对准。这可能导致不一致的交互体验(例如,在虚拟键盘上键入时性能劣化)或甚至晕动病。

为了减少不对准,可以基于hmd的移动的测量来处理第一图像以生成第二图像,并且可以使用第二图像来生成合成图像。该处理可以包括移动第一图像的一部分以生成第二图像。第二图像可以表示由hmd的摄像机在第二时间处捕获的交互的视场。在一些示例中,可以在存储第一图像的帧缓存器处执行第一图像的一部分的移动。帧缓存器可以分成显示区域和非显示区域。存储在显示区域处的图像数据被提供用于合成图像生成和/或用于显示,而存储在非显示区域处的图像数据不被提供用于合成图像生成或不被提供用于显示。可以移动帧缓存器中的显示区域的位置以选择图像数据的不同部分以用于显示,这可能产生图像数据的一部分在合成图像内或相对于合成图像移动的效果。显示区域内的第一图像数据的一部分可以形成第二图像。在一些示例中,显示区域和非显示区域也可以是静态的,并且帧缓存器内的图像数据可以相对于静态显示区域和非显示区域而移动以产生移动效果。

在一些示例中,可以基于hmd的移动的测量以及hmd和外围设备在第二时间处的位置来确定第一图像的该部分的移动量。移动的测量可以包括例如hmd的旋转角度。为了确定旋转角度,可以确定旋转的角速度和方向以及在第一时间和第二时间之间经过的时间段。旋转的角速度和方向可以通过例如hmd的惯性测量单元(imu)来确定。此外,可以基于hmd处的第一图像的处理延迟来确定在第一时间和第二时间之间经过的时间段。有多种确定处理延迟的方式。作为示例,作为校准处理的一部分,hmd的摄像机可以用于捕获提供时间指示的对象的图像。该对象可以包括例如时钟、显示时变图像(例如,条形码)的显示装置、由外围设备发射的时变图案等。可以分析图像以识别指示时间的图案(例如,由时钟显示的数字、时钟臂的位置、条形码图案等),可以从所识别的图案推导出定时信息。外围设备可以包括例如键盘、鼠标等。由对象指示的时间可以与hmd的定时同步,并且可以用作图像的捕获时间。当hmd显示图像时,可以记录显示时间。显示时间和捕获时间之间的差可以表示处理延迟。鉴于处理延迟在已知系统中通常非常稳定,前述校准处理可以用于确定hmd处的其他后续图像的处理延迟。

另外,可以确定在第二时间处hmd和外围设备在物理空间内的位置。可以确定外围设备的位置和hmd的位置之间的第一位置矢量。另外,可以通过将第一位置矢量以旋转角度旋转来确定外围设备相对于hmd的第二位置矢量。第二位置矢量可以用于表示第一图像中的外围设备的未校正图像位置。第二位置矢量还可以表示执行校正所需的移动的倒数。可以通过确定外围设备的未校正图像位置与外围设备的位置之间的移动矢量并将移动矢量缩放回显示坐标来确定移动量。缩放可以基于例如将世界坐标投影到显示坐标的矩阵表达。

存在确定hmd和外围设备的位置的不同方式。作为示例,一个或更多个传感器盒可以附接至外围设备,以检测来自位于空间内的不同预定位置处的光发射器(例如,灯台)的定向光束。传感器盒还可以基于例如定向光的飞行时间来执行测距测量。基于方向和飞行时间信息以及灯台的已知位置,可以确定外围设备的位置。作为另一示例,外围设备可以包括发射定向光束的光发射器,该定向光束可以由位于空间内的不同预定位置处的多个光传感器检测。光传感器还可以执行测距测量。基于测距测量以及光传感器检测到的光束的方向以及光传感器的已知位置,还可以确定外围设备的位置。类似的技术也可以用于确定外围设备的位置。

通过基于hmd的移动/旋转的测量来处理第一图像而生成的第二图像可以用于以不同方式生成合成图像。作为示例,可以在第二时间处在交互的预测图像位置处将虚拟元素(例如,虚拟键盘)放置到第二图像中。作为另一示例,可以在第二时间处在交互的预测位置处从第二图像提取现实元素(例如,用户的手/手指或用户的其他身体部位),并且现实元素可以被放置在虚拟图像中,该虚拟图像还包括在第二时间处在交互的预测位置处的虚拟元素(例如,虚拟键盘)。在这两种情况下,手和虚拟键盘之间的交互可以在合成图像中显示。交互的现实元素(例如,用户的手)更可能与交互的虚拟元素(例如,虚拟键盘)对准,这可以改善交互体验的一致性和品质(特别是对于需要视觉线索和物理线索之间的协调的交互,例如键入),并且减少晕动病的可能性。

另外,根据一些实施方式,提供了一种提供混合现实(mr)交互的方法。该方法可以包括:由用户的头戴式显示器(hmd)的摄像机捕获用户的身体部位和物理对象之间的物理交互的第一图像;由hmd执行将第一图像分出与用户身体部位对应的第一像素区域以及与物理对象对应的第二像素区域,该分割基于物理对象的多个位置处的物理交互的分布;从第一像素区域或第二像素区域之一生成涉及用户的虚拟交互的合成图像;以及由hmd向用户显示虚拟交互的合成图像以代替物理交互。

更具体地,可以执行第一图像的分割,以在用户和物理对象之间的物理交互的图像中区分用户的身体部位(例如,手的一部分、手指等)和由该身体部位操纵的物理对象(例如,诸如键盘、鼠标等的外围设备)。分割的方法可以用于从图像中提取被预测为身体部位的一部分的像素。基于交互的分布,可以配置一个或更多个阈值以包括像素的各种属性(例如,像素的颜色、像素的亮度等)。基于比较结果,可以确定像素可能是用户身体的一部分还是物理对象的一部分,并且可以基于该确定来提取像素的子集。提取的像素可以包括例如用户的身体部位的像素或物理对象的像素。在一些示例中,可以将提取的像素放置在描绘虚拟环境的合成图像中以表示虚拟交互。在一些示例中,可以基于用虚拟对象(例如,虚拟的手/手指)的像素代替提取的像素来从第一图像导出合成图像。在两种情况下,虚拟交互将被描绘给用户以代替物理交互,以向用户提供mr交互体验。

如上所述,第一图像的分割可以基于交互的分布。可以基于历史信息和/或即时信息来确定分布。具体地,历史信息可以是基于先前交互活动的统计分析生成的热点图或概率图的形式。先前的交互活动可以在用户和外围设备之间、在其他用户和外围设备的其他实例和/或类似外围设备之间等。热点图可以提供在外围设备上的多个位置间发生交互活动的分布。统计分析可以包括例如基于发生次数和确定该次数的时间段来确定外围设备的接收交互活动的位置的可能性。热点图中外围设备上的位置可以被映射到用户与外围设备交互的图像的像素。基于热点图或概率图,可以确定在多个位置中的每个位置处找到用户的身体部位(例如,手、手指等)的像素的可能性。来自热点图的可能性信息可以用于确定与像素的某些属性(例如,亮度、颜色等)相关的一个或更多个阈值。例如,具有找到手像素的高可能性的区域中的像素的属性(例如,亮度、颜色等)的值可以被调整为用于在其他图像中确定像素是否是手像素的阈值。

阈值也可以被调整为用于不同操作条件。在一些示例中,可以增加阈值以用于比较来自找到手/手指像素的可能性低的位置的像素,也可以减小阈值以用于比较来自找到手/手指像素的可能性高的位置的像素。还可以基于操作环境的环境光来调整阈值。例如,如果环境光强度高,则可以调高手/手指像素的亮度阈值,也可以调低亮度阈值以降低环境光强度。在一些示例中,多个阈值也可以被调整为用于例如不同的用户、他们的手的不同部位等。例如,可以调整不同的阈值以提取指甲、手指指节、手掌、手腕等的像素,指甲、手指指节、手掌、手腕等中的每个可能具有不同的颜色。此外,阈值也可以被调整为用于不同的用户。例如,一些用户可能已经涂了指甲,并且可以调整用于提取那些用户的指甲的像素的阈值以将涂了的指甲的颜色考虑在内。作为另一示例,一些用户可能具有覆盖他们的手的全部或部分的纹身和/或佩戴装置等,并且可以调整用于提取那些用户的手像素的阈值以将他们的手的被覆盖部分考虑在内。可以为用户定义手模型,以包括用于该用户的手的不同区域的阈值的分布。

在一些示例中,历史信息可以用于计算例如同一像素相对于时间的差异,其可以用于执行多阶段像素比较处理以提高计算效率。例如,连续计算从一帧到另一帧的总强度(或颜色变化)的差异可以提供图像中变化部分的视觉图,其可以用于识别表示运动对象例如与外围设备交互的用户的手或其他身体部位的像素的一个或更多个边界。边界可以限定例如可能是用户的手或其他身体部位的像素的区域,并且仅将属于这些区域的像素与阈值进行比较以确定像素是否属于用户的身体部位。利用这样的布置,可以减少要与用于分割处理的阈值进行比较的像素的总数,这可以提高计算效率。

在一些示例中,还可以基于即时信息来确定交互的动作的分布。例如,外围设备可以包括多个位置处的多个运动传感器(例如,键盘的键)。摄像机(其可以是hmd的一部分或者可以是独立装置)可以捕获外围设备上的多个位置的图像。传感器图可以将图像的不同像素映射到多个运动传感器所位于的多个位置。当运动传感器检测到多个位置中的一个或更多个位置处的交互活动(例如,击键动作、按钮按压动作、触摸/非触摸手势等)时,运动传感器可以触发摄像机捕获外围设备的多个位置的图像,并且图像还包括交互活动。从图像并基于传感器图,可以确定外围设备的第一区域以及围绕第一区域的第二区域,该第一区域包括检测交互活动的运动传感器。第一区域可以对应于接收交互活动的外围设备的区域(例如,键盘键、按钮、触摸板等),并且可以包含参与交互活动的用户的手/手指(或其他身体部位)的像素。第二区域可以包含外围设备或其他背景对象的像素。可以针对第一区域确定不同颜色分量的第一直方图(例如,每个颜色分量的相对强度)。还可以针对第二区域确定那些分量的第二直方图。可以基于第一直方图和第二直方图来确定用于确定像素是否属于用户的手/手指的阈值。例如,可以针对每个颜色分量来确定用于确定像素是否属于用户的手的阈值(例如,像素属于手的阈值概率),其中基于第一直方图和第二直方图中的那个颜色分量的强度的加权平均来确定阈值。在其他图像中,可以将像素的每个颜色分量与对应的阈值进行比较,以确定该像素是否属于用户的手。

在一些示例中,可以使用历史信息和即时信息的组合来设置用于背景检测的第二阈值。例如,可以周期性地捕获接收到很少交互活动或没有接收到交互活动的外围设备的位置的图像,并且可以确定那些位置的颜色分量的第三直方图。可以基于第三直方图来确定用于背景检测的第二阈值。用于背景检测的第二阈值(例如,像素属于背景的阈值概率)可以与用于手/手指检测的第一阈值(例如,像素属于手/手指的阈值概率)以不同的方式组合。作为示例,用于背景检测的第二阈值可以用作检查的第一步骤。如果像素非常接近第二阈值并且结果是不确切的,则可以将像素与用于手/手指检测的第一阈值进行比较。作为另一示例,可以通过对第一阈值和第二阈值求平均来确定组合阈值,并且可以将图像的像素与组合阈值进行比较以识别手像素。

阈值的确定可以是基于图像代替的校准处理的一部分。例如,可以捕获未被用户的手/手指阻挡的外围设备(例如,键盘)的图像。图像的像素可以用作用于确定区分手/手指像素和外围设备的像素的阈值的基线/起始点。作为校准处理的一部分,用户可以以预先描述的方式将他/她的手指放在外围设备上,并且由手指覆盖的外围设备的第二图像可以被捕获。基于手/手指的已知像素位置以及不包括手/手指的外围设备的已知像素位置,可以从基线点调整阈值,以例如使正确区分外围设备的像素和用户的手/手指的像素的可能性最大化。还可以周期性地执行外围设备的成像,以提供更新的图像,用于确定基线阈值以将操作条件的变化(例如,环境光强度的变化、外围设备空闲等)考虑在内。

在识别出用户身体部位(例如,手、手指等)的像素之后,可以通过像素的识别来生成合成图像。例如,提取的像素(例如,手、手指等的像素)可以被放置在合成图像中描绘的虚拟环境中以表示虚拟交互。还可以修改提取的像素和/或虚拟环境以彼此协调。例如,可以调整提取的像素的亮度以匹配虚拟环境的照明条件。作为另一示例,由手(由提取的像素表示)投射到虚拟外围设备上的虚拟阴影也可以被添加到合成图像。在一些示例中,虚拟环境的附加像素也可以由手/手指像素代替,以填充手/手指像素的提取中的间隙。

通过基于外围设备上的动作的分布来调整手/背景检测,手分割方案可能不易受到可能劣化手检测精度的其他因素例如皮肤色调、光强度等的影响。例如,假设用户具有较暗的皮肤色调和/或在较暗的环境中操作键盘,并且用户操作键盘的图像被捕获。因为用户的较暗的皮肤色调和/或环境中较低的环境光,图像中的手像素和键盘像素可能比具有较浅皮肤色调的用户在强环境光下操作暗键盘的情况更不易区分,这会降低手分割的准确性。此外,如果环境光较低,也可以中断手分割。通过基于键盘上的动作的历史分布或即时分布来调整检测阈值,手检测可以基于另外一组信息,这可以减轻皮肤色调和光强度的影响。因此,可以实现更鲁棒的分割方案,该分割方案可以准确地识别用于更宽范围的皮肤色调和更宽范围的环境的手像素。

特定示例的典型系统环境

图1a和图1b示出了可以利用所公开的技术的系统100的典型实现。系统100可以包括计算机110、显示器120和多个外围设备,所述多个外围设备包括例如外围设备130(例如,“计算机鼠标130”)、外围设备140(例如,“键盘140”)、外围设备150(例如,“麦克风150”)和外围设备160(例如,“头戴式显示器(hmd)160”)。如本领域普通技术人员将理解的,对于系统100,计算机鼠标130、键盘140和麦克风150可以被配置成控制计算机110、显示器120和hmd160的各方面。计算机110可以被称为“主计算机”或“主计算设备”。外围设备130至160中的每个可以包括一个或更多个传感器,以感测用户提供的输入动作(或输入信号,例如音频信号)并生成相应的传感器数据(例如,表示计算机鼠标130的移动的距离的传感器数据、指示键盘140的键的按压的传感器数据、由麦克风150收集的音频数据等)。外围设备130至150可以将传感器数据提供至计算机110,以控制计算机110的一个或更多个操作。例如,基于由计算机鼠标130检测到的移动,计算机110可以检测在显示器120上显示的图形用户界面中用户对音频文件的选择并且播放所选择的音频文件。另外,如图1b所示,hmd160可以捕获用户与鼠标130或键盘140中的一个或更多个的交互的图像(例如,摄像机图像170),并向用户显示用户交互的图像。如下面更详细地描述的,hmd160可以将来自摄像机图像170的现实元素(例如,用户的手180、键盘140、鼠标130等)与虚拟元素组合,以提供沉浸式增强现实(ar)/混合现实(mr)体验。

计算机110和hmd160均可以包括机器可读介质(未示出),该机器可读介质被配置成存储诸如键盘驱动器软件等的计算机代码,其中计算机代码能够由计算机110的处理器执行,以影响外围设备130、140和/或150对计算机110的控制。本文中描述的各种示例通常将外围设备120称为显示器,将外围设备130称为计算机鼠标,将外围设备140称为键盘,以及将外围设备150称为麦克风;然而,应该理解,外围设备130至150可以是任何输入/输出(i/o)设备、用户接口设备、控制设备、输入单元等。例如,外围设备130至150也可以是遥控设备、可穿戴设备(例如,智能手表、腕带、眼镜)、智能电话等,并且可以通过在外围设备120中显示的图形用户界面提供输入和输出。

计算机110通常被描述为台式计算设备或膝上型计算设备。然而,应该理解,主计算设备可以是任何合适的计算设备,还包括平板计算机、智能电话等。计算机110也可以是hmd160的一部分。hmd160可以提供虚拟或增强现实界面(例如,具有2d或3d显示器)、全息界面等。本领域普通技术人员将理解其许多变化、修改和替代实施方式。

图2示出了根据某些实施方式的用于操作外围设备(例如,外围设备130至160中的一个或更多个)的系统。系统200包括一个或多个处理器210、存储器阵列220、电源管理系统230、通信系统240和输入检测模块250。系统块220至250中的每个可以与一个或多个处理器210电连通(例如,通过总线系统)。系统200还可以包括附加系统,为了防止使本文中描述的新颖特征混淆,没有示出或讨论上述附加系统。系统块220至250可以实现为单独的模块,或者可选地,可以在单个设备中实现多于一个的系统块。在一些示例中,系统块220至250可以在外围设备上实现。在一些示例中,系统块220至250可以实现为包括外围设备和加密狗(dongle)的多设备系统。系统块220至250可以被配置成实现下面要描述的用于位移估计的技术。

在一些示例中,一个或多个处理器210包括一个或更多个微处理器(μc),并且可以被配置成控制系统200的操作。可替选地,如本领域普通技术人员将理解的,一个或多个处理器210可以包括一个或更多个微控制器(mcu)、数字信号处理器(dsp)等,支持硬件和/或固件(例如,存储器、可编程i/o等)。一个或多个处理器210可以控制外围设备130至160的操作的一些方面或所有方面(例如,系统块220至250)。可替选地或另外地,系统块220至250中的一些可以包括附加的专用处理器,该附加的专用处理器可以与处理器210一起工作。本领域普通技术人员将理解其许多变化、修改和替代实施方式。

存储器阵列220可以被配置成存储关于外围设备130至150的一个或更多个操作配置的信息。如下面进一步讨论的,外围设备130至150的一个或更多个操作配置可以包括外围设备130至150的设置性能特性,包括但不限于计算机鼠标滚动速度、计算机鼠标移动传感器的灵敏度、键盘热键的映射、麦克风音量等。如下面进一步讨论的,存储器阵列220还可以存储用于与外围设备130至150通信的其他配置信息。

另外,存储器阵列220可以存储要由处理器(例如,在一个或多个处理器210中)执行的一个或更多个软件程序。应当理解,“软件”可以指代在由一个或多个处理单元(例如,处理器、处理设备等)执行时使系统200执行软件程序的某些操作的指令序列。指令可以存储为驻留在只读存储器(rom)中的固件和/或存储在介质存储器中的应用,其可以被读入存储器以由处理设备进行处理。软件可以实现为单个程序或单独程序的集合,并且可以存储在非易失性存储器中,并且在程序执行期间全部地或部分地被复制到易失性工作存储器中。

电源管理系统230可以被配置成管理外围设备130至150的电力分配、再充电、电力效率等。在一些实施方式中,电力管理系统230可以包括电池(未示出)、用于电池的基于usb的再充电系统(未示出)和电源管理装置(例如,低压差电压调整器——未示出)。在某些实施方式中,电源管理系统230提供的功能可以合并到一个或多个处理器210中。电源可以是可更换电池、可再充电储能装置(例如,超级电容器、锂聚合物电池、nimh、nicd)或有线电源。再充电系统可以是附加电缆(专用于再充电目的)或者再充电系统可以使用usb连接以对电池进行再充电。

通信系统240可以被配置成在例如外围设备130至150中的一个或更多个与处理器210之间提供无线和/或有线通信。通信系统240可以被配置成提供射频(rf)、ble、wifi、红外线(ir)、logitech或其他合适的通信技术,以与其他计算设备和/或外围设备进行通信。通信系统240还可以提供与处理器210的硬连线连接。硬连线连接可以包括串行互连,例如,通用串行总线(usb)、高清晰度多媒体接口(hdmi)等。

输入检测模块250可以控制用户与外围设备130至150上的输入元素的交互的检测。例如,输入检测模块250可以基于来自计算机鼠标130的传感器数据检测用户输入。在一些实施方式中,输入检测模块250可以与存储器阵列220一起工作,以基于从通信系统240接收的传感器数据生成到处理器210的输入数据。例如,基于存储在存储器阵列220中的滚动速度信息以及来自计算机鼠标130的传感器数据,输入检测模块250可以计算显示器120上的鼠标指针所经过的距离,并且将距离信息提供至处理器210(或渲染器)以渲染鼠标在显示器120上的移动。

如本领域普通技术人员将理解的,尽管可能没有明确地讨论某些系统,但是它们应该被视为系统200的一部分。例如,系统200可以包括用于将电力和/或数据传输到系统200中的不同系统以及从上述不同系统传输电力和/或数据的总线系统。

应当理解,系统200是说明性的,并且可以进行变化和修改。系统200可以具有本文中没有具体描述的其他功能。此外,虽然参照特定块描述了系统200,但是应当理解,这些块是为了方便描述而定义的,并且不旨在暗示部件的特定物理布置。此外,这些块无需对应于物理上不同的部件。块可以被配置成:例如通过对处理器进行编程或提供适当的控制电路系统来执行各种操作,并且取决于如何获得初始配置,各种块可能可重新配置或可能不可重新配置。

可以在包括使用电路系统和软件的任何组合实现的电子装置的各种设备中实现所公开的技术的示例。此外,系统200的各方面和/或各部分可以根据设计需要与其他子系统组合或由其他子系统操作。例如,输入检测模块250和/或存储器阵列220可以在一个或多个处理器210内操作,而不是作为单独实体工作。另外,本文中描述的发明构思还可以应用于各种外围设备,并且不限于计算机鼠标、键盘或麦克风。系统200可以应用于本文中的实施方式中描述的任何外围设备,无论是明确地、参考地还是默认地描述(例如,本领域普通技术人员已经知道其适用于特定外围设备)。前述实施方式不旨在是限制性的,并且本领域普通技术人员通过本公开内容的益处将理解无数应用和可能性。

沉浸式混合现实体验生成的示例

图3a至图3f示出了由图1a和图1b的系统100生成的沉浸式混合现实(mr)体验的示例。如图3a和图1b所示,hmd160可以捕获用户与例如键盘140的交互的摄像机图像170。代替向用户显示摄像机图像170,hmd160可以将摄像机图像170的一些现实元素(例如,用户的手180)与诸如虚拟键盘的虚拟元素302组合以生成合成图像,并且向用户显示合成图像。为了提供沉浸式体验,合成图像还可以描绘与摄像机图像170中所示的交互相同的交互,但是交互在用户的手180和虚拟键盘302之间。例如,虽然摄像机图像170可以描绘由手180的一组手指执行的键入动作,但是合成图像可以描绘由手180的同一组手指执行的相同键入动作,但是键入动作在虚拟键盘302而不是键盘140上执行。尽管在本公开内容中提供了描述用户的手和键盘之间的交互的各种示例,但是应当理解,这些示例是非限制性的,并且所公开的技术可以适用于涉及其他类型的身体部位(例如,手指、手臂、腿、脚等)与不限于外围设备的其他类型的物理对象的用户交互。

图3a还示出了生成合成图像以提供沉浸式mr体验的不同方式。如图3a所示,可以通过将虚拟键盘312放置在摄像机图像170中代替键盘140来生成合成图像310,以描绘用户的手180在虚拟键盘312而不是键盘140上键入。合成图像310保留所有其他现实元素,包括例如显示器120、鼠标130、用户的手180等。此外,还可以通过从摄像机图像170提取用户的手180的图像来生成合成图像320并且将合成图像320放置在描绘一组虚拟元素的虚拟图像中,上述一组虚拟元素包括例如虚拟花322和虚拟钢琴键324。用户的手180可以放置在合成图像320的图像位置处,该图像位置对应于摄像机图像170中的键盘140的图像位置。

为了改善沉浸式交互体验,也可以针对hmd160的位置和取向来调整合成图像310和320的生成,以产生从不同位置和/或角度观看现实元素和虚拟元素的效果。例如,当用户向右旋转/移动他的头部(由标记“a”表示)时,hmd160显示的内容可以向左移动(由标记“b”表示)。如图3a所示,在合成图像310中,现实元素(例如,显示器120、鼠标130、用户的手180等)和虚拟元素(例如,虚拟键盘312)都如标记“b”所指示的向左移动。此外,在合成图像320中,现实元素(例如,用户的手180)和虚拟元素(例如,虚拟钢琴键312和虚拟花322)都如标记“b”所指示的向左移动。

hmd160可以基于跟踪参考对象相对于hmd160的位置来执行合成图像310和320中的显示内容的移动。参考对象可以是诸如键盘140的外围设备。图3c示出了跟踪过程的示例。如图3c的左侧所示,hmd160的摄像机的视线(由箭头330表示)与参考对象340对准,并且参考对象340的跟踪器位置345位于摄像机图像170的中心。如下所述,跟踪器位置345可以用于确定将虚拟元素(例如,虚拟键盘312)或现实元素(例如,用户的手180)放置在合成图像中的何处。跟踪器位置允许系统相对于hmd160跟踪参考对象340。此外,参考对象340还在摄像机图像170中的图像位置350处形成图像,并且图像位置350和跟踪器位置345是相同的。在一些示例中,可以基于例如分割处理来确定图像位置350,以从摄像机图像170识别和提取参考对象340的像素。

hmd160和参考对象340在物理空间360中的位置坐标(参考xyz坐标系统)以及hmd160在物理空间360中的取向可以通过如下面要描述的各种位置和取向感测技术来确定。如图3c的右侧所示,当hmd160向右顺时针旋转时,hmd160的摄像机的视线相对于参考对象340形成角度α。假设角度α小,基于hmd160和参考对象340的位置坐标,hmd160可以确定hmd160与对象340之间的距离(由标记“d”表示),并且基于下式来计算跟踪器位置345的预期移动(由标记“s”表示):

跟踪器位置345的移动=d×sin(α)(式1)

另外,当hmd160处于新取向时,hmd160的摄像机还可以捕获更新的摄像机图像170,并且参考对象340的图像位置350可以呈现出与跟踪器位置345相同程度的移动,使得跟踪器位置345和图像位置350保持对准。

如上所述,跟踪器位置345可以用于确定将虚拟元素(例如,虚拟键盘312)或现实元素(例如,用户的手180)放置在合成图像中的何处。图3d示出了放置虚拟元素和现实元素以形成合成图像的示例。如图3d的左侧所示,可以在摄像机图像170中识别键盘140的跟踪器位置345,并且可以通过用虚拟键盘312的像素代替跟踪器位置345处的键盘140的像素来生成合成图像310。在跟踪器位置345已经向左移动(由“b”表示)以考虑hmd160的旋转时,如果在旋转之后在hmd160相对于键盘140处于新的取向时摄像机图像170被捕获,那么摄像机图像170中的所有其他现实元素(例如,显示器120、鼠标130、键盘140、用户的手180等)可以向左移动。此外,如图3d的右侧所示,基于用户的手180与键盘140并置的假设,可以在摄像机图像170的跟踪器位置345处提取用户的手180。所提取的手图像可以被放置在虚拟图像中,其中虚拟元素(例如,虚拟钢琴键324、虚拟花322等)根据跟踪器位置345的移动而向左移动,以形成合成图像320。在两种情况下,移动将交互的虚拟元素(例如,虚拟键盘312、虚拟钢琴键324等)与交互的现实元素(例如,用户的手180)对准,这允许交互的准确表示并改善沉浸式交互体验。

如上所述,在hmd160的移动期间,合成图像中的在交互的虚拟元素与交互的现实元素之间的对准取决于摄像机图像170的内容(从中提取现实元素或者在其上放置虚拟元素)也被移动以反映hmd160的移动。然而,情况不一定如此。由于处理延迟(例如,摄像机成像延迟、系统处理延迟等),用于合成图像生成的摄像机图像170可能不反映hmd160相对于参考对象340的即时取向/位置。图3e和图3f示出了使用过时的摄像机图像170来生成合成图像的效果。如图3e所示,在hmd160旋转角度α之后,hmd160可以如上所述基于hmd160和参考对象340的位置坐标以及检测到的旋转角度α来移动参考对象340的跟踪器位置345。然而,由于处理延迟,摄像机图像170中的参考对象340(例如,键盘140)的实际图像位置350保持与旋转之前相同。因此,跟踪器位置345和图像位置345不再彼此对准。

图3f示出了跟踪器位置345和图像位置345之间的不对准对合成图像310和320的生成的影响。如图3f的左侧所示,参考对象340的跟踪器位置345已经向左移动,但是摄像机图像170没有被更新,并且摄像机图像170的现实元素没有向左移动。当将虚拟键盘312放置在移动的跟踪器位置345处时,虚拟键盘312不再与用户的手180对准。此外,键盘140的部分图像可以保留在摄像机图像170中,而不是由虚拟键盘312代替。合成图像310中的键盘的描绘以及合成图像中用户的手180相对于键盘的相对位置对用户来说可能非常混乱,并且会严重劣化沉浸式交互体验。此外,如图3f的右侧所示,在移动的跟踪器位置345处从摄像机图像170提取像素,期望提取的像素表示用户的手180。虚拟图像中的虚拟元素(例如,虚拟花322、虚拟钢琴键324等)也基于跟踪器位置345向左移动。但是由于没有更新摄像机图像170,因此提取的像素可以包括用户的手180的一部分(或不包括用户的手180的任何部分)和一些其他伪像。在合成图像320中插入提取的像素还为用户创建令人困惑的显示效果,并严重劣化了沉浸式交互体验。

用于图像延迟补偿的实施方式

图4a至图4d示出了减轻由于摄像机图像170的处理延迟而引起的跟踪器位置345和图像位置350之间的不对准的图像延迟补偿方案的示例。如图4a的左侧所示,包括图像位置350处的参考对象340的图像的摄像机图像170的内容可以相对于跟踪器位置345移动,使得图像位置350和跟踪器位置345可以对准。移动摄像机图像170的内容的效果类似于hmd160在旋转移动之后相对于参考对象340在新取向处捕获更新的摄像机图像170。

可以基于物理空间360中的参考对象340和hmd160的位置坐标以及旋转角度α来确定摄像机图像170的移动量。基于参考对象340和hmd160的位置坐标,可以确定从hmd160到参考对象340的第一位置矢量v1。此外,可以通过将v1旋转旋转角度α来确定从hmd160的第二位置矢量v2,其对应于参考对象340的未校正图像位置350。可以基于v2和hmd160的位置坐标来确定未校正的图像位置350。假设跟踪器位置345由标记“p2”表示并且未校正的图像位置350由标记“p3”表示,可以基于下式来确定摄像机图像170的移动矢量vs:

vs=vector(p3,p2)(式2)

在式2中,可以将移动矢量vs确定为从未校正图像位置350到跟踪器位置345的矢量。移动矢量vs的方向可以指示移动的方向。尽管图4a示出了移动垂直于z轴(其可以对应于hmd160的用户旋转他/她的头部),但是应当理解,移动也可以对应于例如hmd160的用户的点头动作垂直于x轴或y轴发生。此外,移动矢量vs的大小可以指示移动的距离。可以参考物理空间360的坐标系来计算距离,并且按比例缩小到像素距离。缩放可以基于例如将世界坐标投影到显示坐标的矩阵表达。

存在确定hmd160和参考对象340(例如,键盘140)的位置的不同方法。作为示例,一个或更多个传感器盒可以附接至参考对象340,以检测来自位于物理空间360内的不同预定位置处的光发射器(例如,灯台)的定向光束。传感器盒可以基于例如定向光的飞行时间来执行测距测量。传感器盒可以将测距测量结果发送到hmd160。基于测量结果以及灯台的已知位置和灯台发射的光束的已知方向,hmd160可以确定参考对象340的位置。作为另一示例,参考对象340可以包括发射定向光束的光发射器,该定向光束可以由位于物理空间360内的不同预定位置处的多个光传感器检测。光传感器还可以执行测距测量并将测距测量结果发送到hmd160。基于测距测量以及光束的已知方向和光传感器的位置,hmd160可以确定参考对象340的位置。类似技术或其他技术(例如,同时定位和映射、基于wi-fi的定位等)也可以用于确定hmd160在物理空间360内的位置。

除了hmd160和参考对象340的位置之外,移动矢量vs的确定还依赖于旋转角度α。旋转角度α可以对应于hmd160从摄像机图像170被捕获的第一时间到要生成合成图像并将合成图像显示给用户的第二时间的旋转角度。第一时间和第二时间之间的持续时间可以对应于前述处理延迟。旋转角度α可以被确定为第一时间和第二时间之间的持续时间与hmd160的角速度的乘积。角速度可以通过例如hmd160的惯性测量单元(imu)来测量。

此外,第一时间和第二时间之间的持续时间可以以不同方式确定。例如,参照图4c,作为校准处理的一部分,hmd的摄像机可以用于捕获提供第一时间(在图4c中由t0表示)的指示的对象的图像。对象可以包括例如:显示第一时间的时钟;显示指示第一时间的时变图像(例如,条形码)的显示设备;由外围设备(例如,键盘、鼠标等)发出并指示第一时间的时变图案等。时钟、显示设备、外围设备和hmd的定时可以全部与全局时钟同步。当图像在第二时间(在图4c中由t1表示)处被显示在显示设备上时,记录第二时间。第一时间和第二时间之间的差可以被确定以表示处理延迟。hmd160可以内部地存储处理延迟信息,并且如果在捕获摄像机图像170之后检测到hmd160的旋转移动,则使用处理延迟信息来计算用于计算移动矢量vs的旋转角度α。如果在检测到摄像机图像170之后没有检测到旋转移动,则hmd160可以确定不需要移动摄像机图像170来生成合成图像。

在一些示例中,可以在存储摄像机图像170的帧缓存器处执行摄像机图像170的移动。图4c和图4d示出了帧缓存器402处的移动操作的示例。如图4c所示,帧缓存器402可以存储摄像机图像170的图像数据。帧缓存器402可以分成显示区域404和非显示区域406。存储在显示区域404处的摄像机图像170的第一部分可以被提供为用于合成图像生成和/或用于显示的第二图像410,而存储在非显示区域406处的摄像机图像170的第二部分不被提供用于合成图像生成或用于显示。显示区域404和非显示区域406可以指代帧缓存器402内的不同组的地址或缓冲存储空间。

在一些示例中,帧缓存器402的显示区域和非显示区域可以移动,以产生在第二图像410内移动摄像机图像170的内容的效果。例如,参照图4d,以产生在第二图像410中向左移动(由标记“b”指示)显示器120、鼠标130、键盘140和用户的手180的效果,显示区域404可以在帧缓存器402中向右移动(由标记“a”指示)以提取第二图像410。然后可以提供第二图像410以进行合成图像生成。在图4d的示例中,移动的跟踪器位置345(基于hmd160的移动)与键盘140的校正的图像位置350对准。然后,hmd160可以用虚拟键盘312的像素代替在移动的跟踪器位置345处的第二图像410的键盘140的像素,以生成合成图像310。类似地,用户的手180的像素也可以在第二图像410的移动的跟踪器位置345处被提取并且被插入到虚拟图像中(其也被移动以将hmd160的移动考虑在内),以生成合成图像320。在一些示例中,显示区域404和非显示区域406的位置也可以是静态的,并且可以在帧缓存器402内相对于静态的显示区域和非显示区域移动摄像机图像170以产生移动效果。

用于基于活动分布的手分割的实施方式

如上所述,用于创建沉浸式ar/mr体验的合成图像的生成可以包括将用户的皮肤像素与背景对象(例如,键盘、鼠标或其他外围设备)的像素区分开。皮肤像素可以是与背景对象交互的用户的手的一部分、手的一部分或其他身体部位。例如,返回参照图3d、图3f和图4d,当生成合成图像310时,识别键盘140的像素并用虚拟键盘312的像素代替键盘140的像素。此外,还可以提取手180的像素并将其放入合成图像310中。

键盘140和手180的像素的识别可以涉及例如滤除可能是用户的手180的一部分的像素。此外,当生成合成图像320时,用户的手180的像素被提取并且被放置在虚拟钢琴键324的顶部上。在两种情况下,可以采用图像分割方案来区分用户身体部位(例如,手、手指等)的像素与背景对象的像素。图像分割方案可以基于例如将图像的像素与表示例如皮肤色调/颜色、背景对象的颜色等的一个或更多个阈值进行比较。对像素是否属于用户的手的确定可以基于该比较结果。

各种因素可以影响图像分割方案的准确性。一个因素可以是用户的皮肤色调/颜色。如果由于天然皮肤色调/颜色或者由于环境光条件而导致用户的皮肤色调/颜色看起来类似于背景对象(例如,用户正操作的外围设备)的颜色,那么由摄像机捕获的用户的皮肤像素颜色和外围设备的像素颜色可能变得非常相似,这可能导致图像分割处理中的错误。当使用固定阈值来比较像素并且固定阈值没有将因素例如不同的用户可能具有不同的皮肤颜色/色调、环境光条件可以根据操作条件而改变等考虑在内时,图像分割处理的准确性可能进一步降低。

在一些实施方式中,为了提高图像分割处理的准确性,可以基于外围设备上的动作的空间分布来调整用于像素比较的阈值。更具体地,动作的空间分布可以指示外围设备的哪个/哪些位置(例如,键盘的哪个键或哪个区域)已经接收到特定用户动作(例如,敲击)以及外围设备的哪个/哪些位置还没有接收到任何用户动作。空间分布信息可以用于调整阈值。具体地,可以获得捕获与外围设备交互的用户身体部位(例如,手、手指等)的图像,并且可以从图像中识别外围设备的各种位置的像素。基于动作的空间分布,可以识别可能捕获用户身体部位的像素。所识别的像素的各种属性(例如,亮度、颜色等)可以用于确定阈值,该阈值用于比较其他像素以确定那些像素是否属于该身体部位。空间分布信息可以用作二次检查。例如,可以将像素与不是基于空间分布信息确定的另一阈值进行比较。如果像素比较结果不确切或者具有低置信水平,则可以使用空间分布信息来确认或否定该比较结果。作为示例,如果像素的比较结果不确切并且像素对应于如空间分布信息所指示的接收很少用户动作或没有用户动作的外围设备的位置,则可以确定像素不属于用户的身体部位。

可以基于历史信息或即时信息来确定交互的动作的分布。具体地,历史信息可以是基于先前交互活动的统计分析生成的热点图或概率图的形式。图5a示出了键盘140的热点图502的示例。热点图502可以表示键盘140的任何给定位置处的交互的统计水平。在图5a中,区域504、506、508和510可以表示键盘140的最常用区域(例如,键),而键盘140的其余区域可以表示最少使用的区域。每个黑色区域还可以包括该区域内的使用的分布。热点图502可以被编码为图像中的键盘140的每个像素的灰度掩模。例如,灰度掩模520示出了从热点图502的一部分导出的灰度掩模的示例,其可以被映射到键盘140的图像。在灰度掩模520中,黑色像素可以表示找到用户身体部位(例如,手、手指等)的像素的可能性为100%,而白色像素可以表示可能性为0%。

可能性信息可以用于配置图像分割方案,诸如被用作二次检查以确认或否定来自比较结果的决定,和/或调整比较阈值。例如,假设像素被证明难以分类为皮肤或非皮肤(例如,由于像素值非常接近阈值),可以使用可能性信息来确认或否定来自比较结果的决定。作为说明性示例,如果比较指示像素属于皮肤,但是像素与阈值之间的差异低于置信水平,并且如果该像素的灰度掩模520是黑色的,则可以确定该像素属于皮肤。然而,如果该像素的灰度掩模520是白色的,则可以确定该像素不属于皮肤。

在一些实施方式中,可以基于灰度掩模520来配置用于比较像素的阈值。例如,从键盘140的图像,可以基于灰度掩模520来识别可能是用户身体部位/皮肤的像素。可以使用那些像素的属性(例如,颜色、亮度等)来确定比较阈值,该比较阈值用于比较其他像素以确定那些像素是否属于用户的身体部位/皮肤。还可以基于灰度掩模520来调整比较处理。例如,对于图像中的在灰度掩模520中具有高值的像素,有资格作为皮肤像素的通过要求可以比在灰度掩模520中具有低值的像素更宽松。作为说明性示例,只要该差异在差异阈值内,即使那些像素低于比较阈值,在灰度掩模520中具有高值的像素仍然可以有资格作为皮肤像素,而在灰度掩模520中具有低值的像素必须超过比较阈值才有资格作为皮肤像素。

在一些示例中,可以使用历史信息来计算例如同一像素相对于时间的差异,该差异可以用于执行多阶段像素比较处理以提高计算效率。例如,如图5b所示,可以从不同的图像帧生成多个灰度掩模520(例如,灰度掩模520a、520b、520c等)。从一帧到另一帧的总强度(或颜色变化)的差异可以提供图像中的变化部分的视觉图,该视觉图可以用于识别表示与外围设备交互的移动对象如用户的手或其他身体部位的像素的一个或更多个边界530(例如,边界530a、530b等)。边界可以定义例如可能是用户的手或其他身体部位的像素的区域532(例如,区域532a、532b等),并且仅将属于这些区域的像素与一个或多个阈值进行比较,以确定像素是否属于用户的身体部位。利用这样的布置,可以减少要与用于分割处理的一个或多个阈值进行比较的像素的总数,这可以提高计算效率。

在一些实施方式中,还可以针对不同的操作条件和用户来调整阈值。例如,还可以基于操作环境的环境光来调整阈值。具体地,如果环境光强度高,则可以调高手/手指像素的亮度阈值,以及可以针对降低的环境光强度调低亮度阈值。此外,也可以针对例如不同的用户、他们的手的不同部位等调整多个阈值。例如,可以调整不同的阈值以提取指甲、手指指节、手掌、手腕等的像素,指甲、手指指节、手掌、手腕等中的每个可能具有不同的颜色。此外,还可以针对不同的用户调整阈值。例如,一些用户可能已经涂了指甲,并且可以调整用于提取那些用户的指甲的像素的阈值以将涂了的指甲的颜色考虑在内。作为另一示例,一些用户可能具有覆盖他们的手的全部或部分的纹身和/或佩戴装置等,并且可以调整用于提取那些用户的手部像素的阈值以将他们的手的被覆盖部分考虑在内。参照图5c,可以为多个用户定义手模型数据库550,以包括阈值的分布(例如,针对不同用户的手的不同区域和/或针对不同环境光强度的阈值552至558)。

存在生成热点图602的许多不同方式。例如,可以由其他用户针对键盘140的其他实例根据外围设备使用的分析数据或数据集离线编译热点图。也可以基于运动传感器的类型和分布(其可以确定使用的分布模式)来将外围设备分组成类别,并且可以针对每个类别生成热点图以表示类别内的所有外围设备的统计使用模式。还可以执行统计分析,以基于该位置处的交互活动的发生数量和确定该数量的时间段来确定外围设备的接收交互活动的位置的可能性,并且可以针对外围设备的不同位置来重复统计分析。在一些示例中,还可以针对特定用户在运行中生成热点图,以捕获用户的键盘140的使用模式。此外,可以针对不同的应用生成多个热点图/概率图。例如,对于游戏应用,热点图/概率图可能显示在某些键(例如,“w”、“a”、“s”、“d”键和周围的键)上找到手指的高概率,而对于编码和文字处理应用,找到手指的概率可以更均匀地分布在键盘的键之间。通过训练每个应用的热点图,可以提高提供用于皮肤像素提取的手指位置的准确预测的热点图的准确性。

在一些示例中,还可以基于即时信息来确定交互的动作的分布。图5d和图5e示出了收集用于手分割的动作的即时分布的示例。如图5d所示,键盘140的图像可以由被摄像机控制器562控制的摄像机560捕获。摄像机560(以及摄像机控制器562)可以是例如hmd160的摄像机或者具有键盘140的未被遮蔽视场的其他摄像机。键盘140的图像的捕获可以由摄像机控制器562基于键盘140的运动传感器对一个或更多个键的击键动作的检测来触发。可以提供传感器图570,以将图像的不同像素区域(例如,像素区域572、574等)映射到键盘140的键。虽然图5d示出了键盘,但是应当理解,其他外围设备和运动传感器(例如,按钮、触摸板等)也可以用于收集即时交互信息。

图5e示出了由摄像机560捕获的键盘140的图像580。基于传感器图570以及击键的检测,摄像机控制器562可以识别与接收击键动作的一个或更多个键对应的第一像素区域582。图像处理器还可以识别与第一区域582相邻或在第一区域582周围的第二像素区域584,该第二像素区域584不接收击键动作。第一像素区域582可以包含参与击键动作的用户手的像素,而第二像素区域584可以包含键盘140的像素。可以针对第一像素区域582来确定一组颜色分量(例如,每个颜色分量的相对强度)的第一直方图592。还可以针对第二像素区域584来确定用于同一组颜色分量的第二直方图594。

第一直方图592和第二直方图594可以用于调整阈值,该阈值用于比较用于图像分割的像素(例如,以确定像素是否属于用户的手/手指)。例如,可以针对每个颜色分量来计算阈值,并且可以基于例如对第一直方图592和第二直方图594之间的颜色分量的强度进行平均(或执行加权平均)来计算每个阈值。可以确定一组颜色分量的一组阈值。为了确定像素是属于手还是属于背景对象,可以计算像素的颜色分量的一组强度。可以将该组强度与该组阈值进行比较,并且可以根据比较结果来确定该像素是否属于手/手指。在一些示例中,直方图数据还可以用于重新定义用户皮肤色调的基本事实。基本事实信息可以用于训练机器学习模型,以对在不同光照条件下收集的图像像素执行手分割。

在一些示例中,可以使用历史信息和即时信息的组合来设置用于背景检测的第二阈值。例如,可以周期性地捕获已经接收到很少或没有交互活动的外围设备的位置的图像,并且可以确定那些位置的颜色分量的第三直方图。可以基于第三直方图来确定用于背景检测的第二阈值。用于背景检测的第二阈值(例如,像素属于背景的阈值概率)可以以不同方式与用于手/手指检测的第一阈值(例如,像素属于手/手指的阈值概率)组合。作为示例,用于背景检测的第二阈值可以用作检查的第一步骤。如果像素非常接近第二阈值并且结果不确切,则可以将像素与用于手/手指检测的第一阈值进行比较。作为另一示例,可以通过对第一阈值和第二阈值进行平均来确定组合阈值,并且可以将图像的像素与组合阈值进行比较以识别手像素。

阈值的确定可以是基于图像替换的校准处理的一部分。例如,返回参照图5d,可以捕获用户的手/手指没有遮挡的键盘140的图像。图像的像素可以用作用于确定阈值的基线/起始点,以区分手/手指像素和外围设备的像素。作为校准处理的一部分,用户可以以预先描述的方式将他/她的手指放在键盘140上,并且可以捕获由手指覆盖的键盘140的第二图像。基于手/手指的已知像素位置(例如,基于检测击键以及传感器图570)以及键盘140的不包括手/手指的已知像素位置,可以从基线点调整阈值,以例如使准确区分键盘140的像素和用户的手/手指的像素的可能性最大化。还可以周期性地执行键盘140的成像以提供用于确定基线阈值的更新的图像,以将操作条件的变化(例如,环境光强度的变化、外围设备空闲等)考虑在内。

在识别出用户的身体部位(例如,手、手指等)的像素之后,可以通过像素的识别来生成合成图像。例如,如图4d所示,可以将提取的像素(例如,手、手指的像素等)放置至在合成图像中描绘的虚拟环境中以表示虚拟交互。还可以修改提取的像素和/或虚拟环境以使彼此协调。例如,返回参照图4d,可以调整手180的提取像素的亮度,以匹配合成图像310中的虚拟环境的照明条件。作为另一示例,由手180(由提取的像素表示)投射到虚拟键盘312上的虚拟阴影也可以被添加到合成图像310。在一些示例中,还可以用手/手指像素代替虚拟环境的附加像素以填充手/手指像素的提取中的间隙。

在一些示例中,如图5f所示,可以提供数据库596以存储多个热点图/概率图597(例如,热点图597a、597b等)。每个热点图/概率图可以与影响用户与外围设备的交互的不同属性——包括例如发生交互的应用、外围设备的类型和模型等——相关联。例如,如上所述,游戏应用可以引起与文字处理应用相比不同的用户与键盘交互的模式。作为另一示例,由于不同的操作模式,键盘和操纵杆具有不同的用户交互模式。此外,由于例如键的不同布置,同一外围设备(例如,键盘)但不同的模型也可以具有不同的用户交互模式。在数据库596中,可以基于不同的应用标识符598(例如,应用标识符598a,598b等)以及基于不同的外围设备标识符599(例如,外围设备标识符599a、599b等)来组织热点图/概率图,应用标识符598可以标识不同的应用,外围设备标识符599可以标识外围设备的不同类型和型号。为了执行分割,可以基于用户与外围设备交互的应用以及/或者基于外围设备的类型和型号来从数据库596检索热点图/概率图。利用这样的布置,可以使用正确的热点图/概率图来执行手分割(或其他身体部位的分割),这可以提高分割的准确性。

通过基于外围设备上的动作分布来调整手分割,手分割方案可能不易受到可能劣化手部检测的准确度的其他因素例如皮肤色调、光强度等的影响。因此,可以实现更鲁棒的分割方案,该分割方案可以准确地识别用于更宽范围的皮肤色调并且在更宽范围的环境中的手像素。

系统

图6示出了处理引擎600的示例,处理引擎600可以是hmd160的一部分并且可以被配置成生成合成图像以提供沉浸式ar/mr交互体验。在一些示例中,处理引擎600可以是在hmd160的硬件处理器上可执行的软件指令。在一些示例中,处理引擎500还可以包括在专用集成电路(asic)中实现的逻辑电路、现场可编程门阵列(fpga)等。如图6所示,处理引擎600可以包括运动检测模块602、等待时间确定模块606、补偿确定模块608、合成图像生成模块610,合成图像生成模块610包括图像分割模块612和图4的帧缓存器402。虽然图6示出作为单个实体的处理引擎600,但是应当理解,处理引擎600的部件可以分布在不同实体上。例如,合成图像生成模块610可以位于远程计算机处并从hmd接收图像数据和传感器数据,生成合成图像,并且将合成图像发送回hmd以供显示。

运动检测模块602可以从hmd160的imu620接收hmd160的运动的指示以及hmd160的速度和方向(例如,角速度、旋转方向等)的测量。另外,等待时间确定模块506可以基于上述技术确定hmd160的摄像机601对摄像机图像170的捕获和处理上的处理延迟。作为示例,等待时间确定模块606可以基于摄像机图像170(例如,摄像机图像170包括时钟的图像、由对象发射的时变图案等。)的内容获得摄像机601捕获摄像机图像170的时间作为第一时间,记录摄像机图像170被存储在帧缓存器402中并且可用于合成图像生成的第二时间,并且基于第一时间和第二时间之间的差来确定处理延迟。

补偿确定模块608可以基于角速度信息和处理延迟信息来确定例如移动向量vs,该角速度信息和处理延迟信息可以用于基于例如将角速度和处理延迟相乘来计算旋转角度α。还可以基于hmd160和参考对象340的位置坐标信息602来确定移动向量。如上所述,位置坐标信息603可以从例如由附接至参考对象340的传感器盒、检测由参考对象340发射的光的光传感器等提供的测量来获得或者基于例如由附接至参考对象340的传感器盒、检测由参考对象340发射的光的光传感器等提供的测量。可以通过来自运动检测模块602的hmd160的运动的指示来触发移动向量vs的确定。如果在捕获图像170之后检测到运动,则补偿确定模块608可以使用移动向量vs信息来确定移动的方向和移动的距离,并且使用方向/距离信息来改变帧缓存器402中的显示区域404的位置,或者直接移动帧缓存器402内的图像170以生成第二图像410,并且将第二图像410提供至合成图像生成模块610。

合成图像生成模块610包括图像分割模块612,图像分割模块612可以基于上面公开的技术来执行第二图像410的分割。例如,可以执行分割以区分用户的手/手指(或其他身体部位)的像素与由用户操作的外围设备的像素。分割可以基于将第二图像410的像素与根据例如与外围设备的交互的分布而确定的一个或更多个阈值进行比较。也可以针对用户(例如,基于用户的皮肤颜色/色调、用户指甲的特征、手指指节等)以及操作条件(例如,环境光强度)来调整一个或更多个阈值。基于分割结果,可以提取外围设备的像素或用户身体部位的像素。在一些示例中,合成图像生成模块610可以将提取的像素放入描绘虚拟环境的合成图像中以表示虚拟交互。合成图像生成模块610还可以基于用虚拟对象(例如,虚拟的手/手指)的像素代替提取的像素来从第一图像生成合成图像。还可以修改提取的像素和/或虚拟环境以使彼此协调。例如,可以调整用户身体部位的提取像素的亮度,以匹配虚拟环境的照明条件。作为另一示例,由手(由提取的像素表示)投射到虚拟外围设备上的虚拟阴影也可以被添加到合成图像。在一些示例中,虚拟环境的附加像素也可以由手/手指像素代替,以填充手/手指像素的提取中的间隙。然后可以将合成图像提供至hmd160的显示器530以向用户显示。

方法

图7示出了用于提供混合现实(mr)交互的方法700的简化流程图。方法700可以由例如hmd结合图6的处理引擎600基于上述技术来执行。

方法700从步骤702开始,在步骤702中,用户的hmd的摄像机601可以捕获用户与物理对象的交互的第一图像。物理对象可以包括例如物理键盘,交互可以包括用户的手指在物理板上键入。

在步骤704中,处理引擎600可以测量在第一时间和第二时间之间hmd相对于物理对象的运动。例如,如上所述,运动检测模块602可以从hmd160的imu620接收hmd160的运动的指示以及hmd160的速度和方向(例如,角速度、旋转方向等)的测量。另外,等待时间确定模块506可以基于上述技术来确定hmd160的摄像机601对摄像机图像170的捕获和处理上的处理延迟。作为示例,等待时间确定模块606可以基于摄像机图像170的内容(例如,第一图像包括时钟的图像、由对象发射的时变图案等)获得摄像机601捕获第一图像的时间作为第一时间,记录第一图像被存储在帧缓存器402中并且可用于合成图像生成的第二时间,并且基于第一时间和第二时间之间的差来确定处理延迟。另外,补偿确定模块608可以基于角速度信息和处理延迟信息来确定例如移动向量vs,该角速度信息和处理延迟信息可以用于基于例如将角速度和处理延迟相乘来计算旋转角度α。还可以基于hmd160和参考对象340的位置坐标信息602来确定移动向量。如上所述,位置坐标信息603可以从例如由附接至参考对象340的传感器盒、检测由参考对象340发射的光的光传感器等提供的测量来获得或者基于例如由附接至参考对象340的传感器盒、检测由参考对象340发射的光的光传感器等提供的测量。可以通过来自运动检测模块602的hmd160的运动的指示来触发移动向量vs的确定。

在步骤706中,处理引擎600可以基于hmd的运动的测量来处理第一图像以生成第二图像。例如,如果在捕获第一图像之后检测到运动,则补偿确定模块608可以使用移动向量vs信息来确定移动的方向和移动的距离,并且使用方向/距离信息来改变帧缓存器402中的显示区域404的位置,或者直接移动帧缓存器402内的图像170以生成第二图像。

在步骤708中,处理引擎600可以基于第二图像来生成涉及用户的虚拟交互的合成图像。例如,合成图像生成模块610可以提取外围设备的像素或用户身体部位(例如,手、手指等)的像素。在一些示例中,合成图像生成模块610可以将提取的像素放入描绘虚拟环境的合成图像中以表示虚拟交互。合成图像生成模块610还可以基于用虚拟对象(例如,虚拟的手/手指)的像素代替提取的像素来从第一图像生成合成图像。还可以修改提取的像素和/或虚拟环境以使彼此协调。例如,可以调整用户身体部位的提取像素的亮度,以匹配虚拟环境的照明条件。作为另一示例,由手(由提取的像素表示)投射到虚拟外围设备上的虚拟阴影也可以被添加到合成图像。在一些示例中,虚拟环境的附加像素也可以由手/手指像素来代替,以填充手/手指像素的提取中的间隙。

在步骤710中,然后可以将合成图像提供至hmd160的显示器530,以被显示给用户以代替物理交互。显示可以与物理交互基本上同时进行,以提供混合现实体验。

图8示出了用于提供混合现实(mr)交互的方法800的简化流程图。方法800可以由例如hmd结合图6的处理引擎600基于上述技术来执行。

方法800从步骤802开始,在步骤802中,用户的附器和物理外围输入设备的第一图像被捕获。第一图像可以由例如hmd的摄像机601捕获。用户的附器可以覆盖物理外围输入设备的至少一部分。第一图像可以描绘用户的附器与物理外围输入设备之间的物理交互。附器可以包括例如手、手指等。物理外围输入设备可以包括例如键盘、鼠标等。

在步骤804中,处理引擎600可以执行分割,该分割将第一图像分出与用户的附器对应的第一像素区域,其中第二像素区域对应于物理外围输入设备。在一些实施方式中,分割可以基于将第一图像的像素与根据例如与物理外围输入设备的交互的分布而确定的一个或更多个阈值进行比较。交互的分布可以包括交互的历史分布(来自用户或来自一组用户)、用户的交互的即时分布或者两者的组合。也可以基于上述技术针对用户(例如,基于用户的皮肤颜色/色调、用户指甲的特征、手指指节等)以及操作条件(例如,环境光强度)来调整一个或更多个阈值。基于分割结果,可以提取外围设备的像素或用户身体部位的像素。

在步骤806中,处理引擎600可以基于代替第二像素区域地渲染表示虚拟外围输入设备的像素来从第一图像生成合成图像,使得虚拟外围输入设备在与物理外围输入设备相同的空间位置处出现在合成图像中并且由用户的附器至少部分地覆盖。例如,在第一图像捕获用户在物理键盘上键入的情况下,合成图像可以包括与物理键盘在相同空间位置处的虚拟键盘,以向用户提供该用户正在虚拟键盘而不是物理键盘上键入的感觉。

在步骤808中,可以经由例如显示器630向用户显示合成图像。合成图像可以与物理交互基本上同时显示,以向用户提供混合现实体验。

其他变更在本公开内容的精神内。因此,尽管所公开的技术易于进行各种修改和替代构造,但是其某些示出的实施方式在附图中示出并且已经在上面详细描述。然而,应该理解,并不意在将本公开内容限制于所公开的一个或多个特定形式,而相反地,意图是覆盖落入如所附权利要求中限定的本公开内容的精神和范围内的所有修改、替代构造和等同物。例如,任何实施方式、替代实施方式等及其概念可以适用于所描述的任何其他实施方式以及/或者在本公开内容的精神和范围内。

除非本文中另有说明或上下文明显相矛盾,否则在描述所公开的实施方式的上下文中(特别是在所附权利要求的上下文中)使用术语“一个(a)”和“一个(an)”、“该(the)”以及类似的指示物应该被解释为涵盖单数和复数两者。除非另有说明,否则术语“包括(comprising)”、“具有(having)”、“包括(including)”和“包含(containing)”应该被解释为开放式术语(即,意味着“包括但不限于”)。即使存在介于中间的事物,术语“连接”仍然应该被解释为部分或全部包含在内、附接或结合在一起。在适当的时候,短语“基于”应该被理解为是开放式的,并且不以任何方式进行限制,并且旨在被解释或以其他方式理解为“至少部分地基于”。除非本文中另有说明,否则本文中对数值范围的描述仅旨在用作单独地提及落入该范围内的每个单独值的简略方法,并且每个单独值并入本说明书中,如同其在本文中被单独引用一样。除非本文中另有说明或上下文明显矛盾,否则本文中描述的所有方法均可以按照任何合适的顺序执行。除非另外声明,否则本文中提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地说明本公开内容的实施方式,并且不对本公开内容的范围构成限制。说明书中的语言都不应该被解释为表明任何未声明的要素对于本公开内容的实践是必不可少的。

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