允许用户在AR/VR应用中与3D对象进行自然交互具有优势,因为它对应于用户与现实世界中对象的交互方式。但是,与手臂够不着的3D对象交互可能十分困难。对于这种情况,特别的“超自然”交互方法可能更为适合。
另外,尽管近距离交互可以用手直接操纵全息图来实现,但用户必须能够与距离用户较远的全息图进行交互。理想情况下,这种远距离交互应该以某种方式与近距离交互体验相结合,并且应该对当前的目标方向和选择状态有明确的启示。
在名为“Holographicpalm raycasting for targeting virtual objects”的专利申请中,微软提出了一种用于通过光线投射来与远距离对象交互的方法。
光线投射是各种超自然交互方法常用的方式。例如,可以从用户的手部或头部投射各种虚拟光线,从而便于用户与远处对象进行交互或显示为手臂够不着的对象。
在微软的构思发明中,当用户张开手掌并对准自己前方时,光线或光束从用户手掌发出,从而用于支持远处对象交互。例如,当张开手掌时,光线可以通过虚线可视化。当光线指向虚拟显示对象时,显示光标,例如环形光标。用户可以执行选择手势,例如轻敲,从而选择他们当前瞄准的项目。这时,光线的外观可以发生变化。例如,当光标从环形变为点时,光线本身可以显示为实线。光标变化可以二进制,或可以是模拟。一旦选择了对象,用户可以使用用于直接操纵近端对象的相同操纵手势来操纵对象。
在一个实现中,光线的投射方式可以是:通过对用户肩部和/或肘部的位置进行建模,然后通过手部追踪技术,通过用户建模的手臂关节和手部追踪手掌关节投射光线。然后,用户可以将手放在其侧面或前方进行瞄准。
图1示出了示例头戴式显示设备10。头戴式显示设备10包括以可佩戴在用户头部周围的框架12,其支持位于用户眼睛附近的透明显示组件。头戴式显示设备10可以使用增强现实技术来实现虚拟显示图像和真实世界背景的同时浏览。所以,头戴式显示设备10可以经由透明显示器14生成虚拟图像。透明显示器14包括单独的右眼和左眼显示器14R和14L,并且可以是完全或部分透明。透明显示器14可以采用任何合适的形式,例如波导管或棱镜,其配置为接收生成的图像并将图像指向佩戴者的眼睛。
头戴式显示设备10同时包括一个附加的透明光学组件16,其位于透明显示器14和佩戴者看到的真实环境之间。控制器18操作地耦合到透明光学组件16和其他显示组件。控制器18包括一个或多个逻辑设备和一个或多个计算机存储设备,存储逻辑设备可执行的指令,以实现头戴式显示设备10的功能。头戴式显示设备10同时可以包括各种其他组件,例如二维图像摄像头20(例如可见光摄像机和/或红外摄像机)和深度成像组件22,以及未示出的其他组件,包括但不限于扬声器、麦克风、加速度计、陀螺仪、磁强计和温度传感器等。
在一个实现中,深度成像组件22可包括右立体摄像头和左立体摄像头。来自两个摄像头的时间分辨图像可以相互注册并组合以产生深度分辨视频。
在一个实现中,“结构光”深度摄像头可配置为投射具有许多离散特征(例如线或点)的结构红外照明。摄像头可配置成对从场景反射的结构化照明成像。基于成像场景的各个区域中相邻特征之间的间隔,可以构建场景的深度映射。
在一个实现中,“飞行时间”(TOF)深度摄像头可包括配置成将脉冲红外照明投射到场景上的光源。可以配置两个摄像头来检测从场景反射的脉冲照明。
增强现实功能可能基于铰接式手部交互。对于近端独享,可利用直接交互,由此可将手视为直接操纵全息图。在一个示例中,全息图远离用户,例如大于基于臂长的阈值。可以计算用户或用户的延伸部分与预期目标之间的距离。通过这种方式,可以将相对距离与阈值距离进行比较,以确定预期目标相对于用户视为“近”(在可及范围内)还是“远”(不可及)。对于远距离对象,可以赋予用户“超自然”能力,以便他们可以与远距离全息图交互,无需“走向”全息图。
在一个实现中,可以通过发射光线的方式来允许用户对远距离虚拟对象进行定位、选择和操作。对于这种情况,VR系统经常是通过控制器发射光束的方式来进行实现。对于增强现实,可以把相同的心智模型和用户体验组合到一组直观的界面控件中,例如直接在用户手掌发射光线。
这种基于手的光线投射示例如图所示。用户的左手255和右手260以开放式构象表示。第一光线265显示为源自用户左手255的手掌,描绘为终止于选择光标270的虚线。第二光线275显示为源自用户右手260的手掌,描绘为终止于选择光标280的虚线。与以前的模型相比,这种光线投射提供了众多优势,例允许使用注视投射来指向对象,然后使用用户的手来控制动作的方法。直接从手部施放可以实现更直观的瞄准和精细控制。通过使用手掌,用户同时保留了用手指操纵目标对象的自由。
图3显示了增强现实环境中光线投射的示例方法300。在310,方法300包括在诸如头戴式显示器的显示设备上呈现一个或多个虚拟对象。一个或多个虚拟对象可以在沉浸式环境中渲染,并且可以由虚拟对象渲染机进行变换,以根据头戴式显示器的位置和方向修改渲染虚拟对象的位置、大小、形状或角度。每个渲染的虚拟对象可以呈现在相对于显示设备的环境中的对应位置。另外,可实时连续修改渲染虚拟对象,以根据头戴式显示器的变化位置和方向保持渲染虚拟对象的适当透视图和配置。在这方面,如果用户靠近渲染的虚拟对象,其相对距离将更接近用户。类似地,如果用户远离渲染的虚拟对象,其相对距离将显示得离用户更远。
当识别出预期目标时,用户可以使用选定的交互方法移动(例如重新定位)、变换(例如,缩放、旋转、倾斜、拉伸、扭曲等)、操纵或删除渲染对象,甚至创建新对象。
在320,方法300包括从深度摄像头接收关于环境的信息。例如,从深度摄像头接收的信息可用于确定环境边界(例如墙、天花板、地板、窗、门等)的位置和大小,以及环境中真实世界对象的位置、大小和方向。
在330,方法300包括确定显示设备在环境中的位置。显示设备的位置可以基于从深度照摄像头接收的信息。当包括在头戴式显示器中时,显示设备的位置可进一步基于一个或多个附加传感器组件(例如方向传感器和/或位置传感器)接收到的信息,从而促进生成与头戴式显示器的方向和位置以及与用户感知视场相对应的追踪数据。
在340,方法300包括基于头戴式显示器的位置推断用户手臂的关节的位置。用户手臂的关节可以是肩部、肘部或手腕,例如。在一个示例中,用户手臂的关节可能对头戴式显示器的深度摄像头不可见,因此3D位置可以推断关节的位置。例如,基于人体工程学的指标可用于根据已知头部位置预测用户肩部和/或肘部的位置。可以确定用户肩部和/或肘部的代码模型。
在一个示例中,用户可执行校准练习,以根据头戴式显示器的六自由度位置确定用户肩部和肘部的可能位置范围。诸如用户手部位置的附加信息可进一步告知用户肩部或肘部的位置。
在350,方法300包括基于从深度照摄像头接收到的信息确定用户手的位置。在一个实施例中,头戴式显示器可配置为分析与用户对应的深度映射的像素,以便确定每个像素对应于用户身体的哪个部分。
在一个实现中,机器学习可用于为每个像素分配身体部位索引和/或身体部位概率分布。机器学习方法参考从先前训练的已知姿势集合中学习的信息来分析用户。
对应于用户手部的点云可以进一步处理以揭示手的骨骼亚结构,并识别用户的手的组件,例如腕关节、手指关节、相邻的手指节段、指关节、手掌、背等。通过分析各种手关节和/或节段中的位置变化,可以确定成像手的操作、动作或手势。
在360,方法300包括基于用户手臂关节的位置和用户手的位置从用户手的一部分投射光线。例如,头戴式显示器可以生成和/或接收用户手臂关节的三维坐标和用户手的三维坐标。头戴式显示器实际配置为延伸一条射线,其端点位于用户手臂关节的位置并穿过用户手的部分。例如,可以为肩部和/或肘部以及手掌、手腕、关节等生成线。然后可以基于所述位置和方向投射光线。在一个示例中,用户手臂长度的校准可以简化算法。
投射光线的长度可以是有限,也可以是无限。对于有限长度的光线,可以光标、图标或其他合适的显示对象的形式指示光线的远端。光标可用于指向虚拟对象。有限射线的长度可基于用户偏好、环境的尺寸、环境中虚拟对象的位置等。用户可通过预定手势使射线变长或变短。另外或者,随着光线接近虚拟对象,光线的长度可能会增加或减少。
图4A-4D显示了各种光线投射模式的图示。
名为“Holographic palm raycasting for targeting virtual objects”的微软专利最初在2021年8月提交,并在日前由美国专利商标局公布。