微软AR专利提出基于用户输入确定用户注视焦点的方法
确定用户焦点
(映维网Nweon 2022年08月17日)计算设备可以使用不同类型的传感器来测量周围环境的特性以检测自然用户输入。自然用户输入允许用户以感觉直观的方式与计算设备交互,例如通过眼睛注视。
传统计算架构通常假设用户输入模式是明确的。为了基于来自这种精确模式的输入确定用户的焦点,处理可以依赖于传统的光线投射和命中测试技术。然而,这种光线投射和命中测试技术没有考虑到自然用户输入模式可能存在的传感器噪点和不确定性。因此,将光线投射和命中测试技术与此类自然用户输入模式结合使用可能会导致确定用户焦点的不准确。
在名为“Intention image analysis for determining user focus”的专利申请中,微软提出了一种基于用户输入确定用户焦点的方法。在一个示例中,渲染系统用于生成包括多个交互对象的场景的意图图像。意图图像包括用基于用户的用户输入确定的意图值编码的像素。意图值指示用户意图聚焦于像素的可能性。意图图像中的交互对象根据交互对象具有用户焦点的可能性“亮起”。基于对应于交互对象的像素的意图值,为每个交互对象确定意图得分。
基于其相对于其他交互对象的意图得分,可以选择“最亮”的交互对象作为用户关注的对象。这种方法允许不将用户输入视为精确的点/位置,而是视为可能输入位置的概率空间分布。这允许使用噪点更大、精度更低的用户输入,从而提供用户焦点的准确确定。
另外,通过将聚焦对象的确定转化为使用计算机渲染系统的渲染操作,可以有利地利用该系统的各种功能。例如,可以并行使用多个图形处理单元(GPU),以快速渲染具有众多和/或具有复杂或不规则形状的交互对象的意图图像。
作为另一个示例,可以对渲染系统意图着色器进行编程,以使不同的交互对象在如何基于用户输入“点亮”方面遵循不同的规则。例如,不同的规则集可能与不同的“材质”相关联,可以选择所述材质来渲染交互式对象。同时,这种意图着色器可以是可编程的,从而允许通过考虑额外的情景信息来消除多个交互对象之间的焦点歧义。
图1显示了被配置为通过自然用户输入组件(102A-D)检测自然用户输入的不同电子设备(100A-D)。其中,设备100D是虚拟现实或增强现实头显。
图2示意性地示出了包括渲染系统202的示例计算机200。渲染系统202配置为基于表示虚拟现实或增强现实场景的模型的交互式网格206向显示器204渲染呈现图像。在一个示例中,交互式网格206可以表示虚拟现实或增强现实场景的三维模型。在其他示例中,交互式网格206可以表示虚拟现实或增强现实场景的二维模型。
交互式网格206包括场景中的多个交互式对象208。交互对象208是用户可以作为虚拟现实或增强现实体验的一部分虚拟交互的对象。对于虚拟现实实现,交互对象可以是虚拟场景中的虚拟对象。对于增强现实实现,交互对象可以是真实世界场景中实际不存在的虚拟对象。
如下文所述,渲染系统202配置为基于交互式网格206渲染意图图像,以确定与虚拟对象相关的用户焦点。渲染系统202可配置为接收每个交互对象208的渲染属性210。渲染属性210表征了交互对象208在呈现图像212中的外观。例如,渲染属性210可包括照明信息,如位置、方向、颜色、强度等;摄像头信息,如位置、视图、向上、投影类型等;材质/纹理信息,如光泽度、半透明性、纹理等;以及渲染信息,例如分辨率、后期效果、基元计数等。
另外,渲染系统202可配置为接收每个交互对象208的意图属性214。对象的意图属性212定义了渲染系统202用于确定与对象对应的像素的意图值220的规则。像素218的意图值220指示用户意图聚焦在其上的可能性。
意图属性214可以定义如何解释用户输入222以确定对应于为其指定属性的对象的像素的意图值。在一个示例中,由意图属性214定义的规则与可用于对交互对象208进行纹理处理的不同材质相关联。
在一个示例中,规则集R(无光)与无光饰面材质相关联,并用于对意图图像中的交互对象进行纹理处理,而不同的规则集R(闪亮)与用于对交互对象进行纹理处理的闪亮材料相关联。在另一个示例中,规则集R(仅限眼睛)是在确定意图值时响应眼睛注视向量并忽略其他用户输入(如手的位置)的材质。
在另一个示例中,规则集R(仅手)是响应手输入并忽略其他用户输入(如眼睛输入)的材质。另外,规则集R(仅限右手)是一种对右手输入做出响应并忽略其他用户输入(如左手输入和眼睛输入)的材质。通过将不同的规则集编码到不同的材质中,仅通过将选定的材质分配给特定的交互对象,就可以轻松地将不同规则集应用于不同的交互对象。通常,任何合适的规则集都可以编码到材质中,并应用于任何合适的交互对象。
渲染系统202可以配置为从一个或多个不同的用户输入模式接收用户输入222。在一个示例中,这类用户输入模式可包括由自然用户输入组件检测的自然用户输入。
眼动追踪数据224可以指示眼睛位置、相对于头部的眼睛运动和/或用户正在注视的注视目标。在一个示例中,计算机200可以从一个或多个向内摄像头接收眼动追踪数据224。
手部追踪数据226可以指示用户左手的位置/方向和/或用户右手的位置/方位。在一个示例中,计算机200可以从定位为对包括用户的手的真实世界场景成像的一个或多个朝外摄像头接收手部追踪数据226。
语音数据228可以指示用户的语音输入。语音数据228可以处理/细化到任何合适的程度以用于用户意图的分析。在一个示例中,计算机200可以本地处理语音数据228。在其他示例中,计算机200可以将语音数据228发送到远程计算机进行处理,例如基于云的服务。
眼动追踪数据224、手部追踪数据226和语音数据228是作为用户输入222的非限制性示例提供,并可以向渲染系统202通知用户的意图或焦点。渲
可选地,渲染系统202可配置为接收情景信息230以确定用户的焦点。例如,情景信息可以描述先前用户与交互对象的交互、来自先前意图图像的先前意图值/概率和/或未来用户意图的预测。
渲染系统202包括一个或多个意图着色器232,其配置为生成意图图像216。意图着色器232是一个软件程序,配置为根据用户输入222和可选的其他因素指示或通知如何处理意图图像216的像素218,根据交互式网格206,用户输入222和像素对应的对象的交互式对象标识符。
着色器同时可以接收对应对象的规则(即由意图属性214定义)和情景(即由情景信息230定义)。意图着色器232处理所述信息以生成像素的意图值220。在一个示例中,一个或多个意图着色器232可以针对意图图像216的每个像素逐个像素地执行此类处理。
在一个实施例中,多个意图分析器232可以配置为在计算机200的多个GPU上并行地对不同像素执行此类处理,可以将不同的意图着色器232分配给每个不同的交互对象208,使得特定意图着色器将意图值分配给与特定交互对象相关联的所有像素。在这样的示例中,意图着色器可以基于根据意图属性214为交互对象208选择的特定材质(即特定规则集)和可选的情景信息230来分配意图值。
在一个实施例中,意图图像216可以是多通道图像,其格式类似于具有红、蓝、绿和阿尔法通道的RBG彩色图像。对于意图图像的每个像素,渲染系统可以将意图值写入第一通道(例如红色通道),并将交互对象标识符写入第二通道(例如蓝色通道)。
在交互网格包括大量交互对象(例如,超过256个)的场景中,可以使用多个通道作为交互对象标识符(例如,蓝色通道和绿色通道)。在一个实施例中,可选地可以使用另一信道(例如,阿尔法信道)来编码情景信息和/或从情景信息导出的意图值。意图值、对象标识符和用于确定用户焦点的任何其他相关信息可以写入意图图像216的任何适当通道。
微软指出,相对于光线追踪或命中测试,专利描述的意图着色器和意图图像允许在确定用户输入焦点时对可能成为目标的虚拟对象进行高度定制和控制。除其他好处外,在评估用户焦点时,可以使用不同的用户输入模式、自定义规则集和情景信息。另外,在适用的情况下,使用基于GPU的渲染硬件可以允许在意图图像中渲染具有复杂形状的交互式对象,其速度远远快于基于CPU的方法。
在所描绘的示例中,渲染系统202包括输入焦点管理器234,其配置为基于与交互对象208相对应的像素218的意图值220来确定交互对象208的意图得分236。通常,输入焦点管理器234为在交互网格206中建模的每个交互对象208确定意图得分236。
在一个示例中,输入聚焦管理器234通过对对应于交互对象的像素的意图值求和来确定交互对象208的意图得分236。在一个示例中,意图得分236可以是与交互对象208相对应的像素218的意图值220的原始和。在另一个例子中,输入焦点管理器234通过平均与交互对象对应的像素的意图值来确定交互对象208的意图得分236。输入焦点管理器234可以使用任何合适的计算来确定交互对象的意图得分。
在一个实现中,输入焦点管理器234可选地可以配置为根据对象大小对多个交互对象的意图得分进行归一化。例如,具有500个像素的相对较大的交互对象可能具有50个具有高意图值的像素,而剩余的像素具有低意图值。另外,具有100个像素的相对较小的交互对象可能具有50个具有高意图值的像素,而剩余的像素具有低意图值。
在本例中,较小的交互对象比较大的交互对象具有更高的归一化意图得分,因为较小的交互式对象比较大对象的每像素平均意图值更高。在所述示例中,这种规范化可能会向较小的对象提供所需的偏差。在另一个示例中,交互对象的意图得分的归一化可以包括将所有意图值的总和除以意图图像中的非零意图像素的数目。输入焦点管理器234可以以任何合适的方式标准化多个交互对象的意图得分。
输入焦点管理器234可选地可以配置为基于从随时间生成的多个意图图像中采样的意图得分平滑交互对象的意图得分236。例如,这种平滑可能会使交互对象随着时间的推移变得“更亮”,用户关注交互对象的时间越长。意图得分可以随时间以任何合适的速率并且跨任何合适数量的意图图像进行采样。
可以使用任何合适的平滑算法来平滑意图得分。可以执行这种平滑以最小化用户输入的突然变化的影响,这类似于减少图像中的闪烁。在一个实现中,可以在两个或多个图像之间的每像素基础上执行平滑。在这样的示例中,可以使用线性组合来组合/平滑来自多个图像的像素的意图值。可以使用任何合适的组合操作来组合来自多个图像的像素的意图值。
输入焦点管理器234可以从多个候选虚拟对象中确定特定对象具有用户的焦点。具体而言,在本示例中,输入焦点管理器基于交互对象208的意图得分236确定聚焦对象238具有用户的焦点。在一个示例中,输出焦点管理器234确定在多个交互对象的意图得分中具有最高意图得分的交互对象是聚焦对象238。
输入焦点管理器234可配置为基于意图图像中交互对象的意图得分确定存在焦点模糊,从而最初无法将任何单个交互对象确定为聚焦对象。输入焦点管理器234可以基于这种模糊性或其他原因确定没有交互对象是焦点对象。
例如,如果没有交互对象的意图得分高于最小置信阈值,则输入焦点管理器234可以确定没有交互对象是聚焦对象。例如,可以基于意图图像中交互对象的意图得分之和,或者通过对这些意图得分的任何其他考虑/分析来设置最小置信阈值。另外,置信阈值可能因意图图像而异。如果无意图得分大于最小置信阈值,则意味着用户输入过于模糊,无法识别聚焦对象。
在其他情况下,输入焦点管理器234可以确定两个或多个交互对象之间存在焦点模糊。例如,如果两个或多个交互对象可能具有与意图图像中所有其他交互对象的意图得分相似且大于该意图得分的意图得分,则输入焦点管理器234可以采取附加动作来确定用户的意图。
在一个示例中,渲染系统202可以配置为经由显示器204可视地呈现消歧提示,以确定正在消歧的两个或多个交互对象的用户预期焦点目标。这种消歧提示可以包括缩放操作,以放大具有大于模糊阈值的意图分数的交互式对象,从而用户可以提供更精确的用户输入以确定聚焦对象238。任何合适的消歧提示都可以用于提示用户精化用户输入以决定聚焦对象。
渲染系统202包括一个或多个呈现着色器240,其配置为基于交互网格206和渲染属性210渲染呈现图像212。呈现图像212包括多个交互对象208,这些交互对象208根据渲染属性210按预期进行渲染。呈现图像212可以从呈现系统202输出到显示器204,用于向用户进行视觉呈现。注意,意图图像216与呈现图像212的不同之处在于意图图像传达指示用户意图聚焦于特定像素的可能性的意图值。
渲染系统202可以配置为以任何合适的频率生成意图图像,例如与呈现图像的帧速率相关。渲染系统202可以配置为为每个呈现图像生成意图图像,即一对一对应。在其他示例中,渲染系统202可配置为以较低频率生成意图图像,例如每两个、三个、四个、五个或更多呈现图像生成一个意图图像。
渲染系统202可配置为生成包括多个交互对象208的呈现图像212,并将呈现图像212输出到显示器,以便向用户进行视觉呈现。然后,基于确定交互对象208是聚焦对象238,渲染系统202可以配置为生成更新的呈现图像,其中交互对象208的视觉外观相对于先前的呈现图像发生改变,以指示交互对象208就是聚焦目标238。例如,当交互对象成为聚焦对象时,可以以另一种方式突出显示交互对象、改变颜色或改变外观,以区别于交互对象不是聚焦对象以及其他没有用户焦点的交互对象。
图3A、3B、3C、3D和3E示出了不同的示例场景,其中基于与增强现实体验交互期间的自然用户输入来确定用户关注一个或多个对象的意图。
图3A显示了真实世界场景300,其中包括佩戴近眼显示设备304的用户302。用户302通过近眼显示装置304的视场306查看增强现实体验。特别是,近眼显示装备304在视场306中可视地呈现呈现图像308。呈现图像308包括虚拟石板形式的多个交互对象310A-310F,交互对象呈现为位于真实世界场景300的真实世界墙壁312上。
用户302可以使用由传感器和/或近眼显示设备304的其他用户输入组件检测到的自然用户输入来选择虚拟石板中的任何一个。近眼显示设备304配置为基于眼动追踪314形式的自然用户输入生成意图图像400。意图图像包括交互式对象310A、310B、310D、310E、310F和310G。
意图图像400的每个像素用基于来自眼动追踪314的数据的意图值进行编码。每个意图值指示用户打算聚焦于图像中的各个像素的可能性。图3A和4A以及图3A和图4A所示的其他示例。在图3B、3C、3D、4B和4C中,意图值越大,用户302越可能关注像素。
例如,意图值可以在0-100的范围内,接近100的意图值表示用户聚焦于该像素的可能性更大,接近0的意图值指示用户聚焦于像素的可能性更小。所示的意图值是任意的和非限制性的,并且它们可以以任何合适的方式表示。
近眼显示设备304基于对应于交互对象的像素的意图值,确定交互对象310A-310G中的每一个的意图得分。可以通过对对应于交互对象的像素的意图值应用求和、平均或任何其他合适的操作来确定意图得分。交互对象的意图得分可以可选地通过对象大小进行归一化,基于来自其他意图图像的交互得分的采样进行平滑,和/或使用本文描述的技术受到上下文信息的影响。
在所述示例中,交互对象310G具有最高的意图得分,而交互对象310A具有次高的意图得分。因此,近眼显示设备304确定交互对象310G是具有用户焦点的聚焦对象。基于所述确定,可在呈现图像308中改变交互对象310G的外观,以使交互对象310G具有粗体、高亮的边框,从而向用户302提供交互式对象310G是聚焦对象的视觉反馈。
在图3B中,用户302以右手316的位置和方向的形式提供额外的自然用户输入,例如,由近眼显示设备304的朝外摄像头检测到。近眼显示设备304考虑右手316以及眼动追踪314的贡献,以确定聚焦对象。在所述示例中,右手316定位和定向为看起来指向交互式对象310A。附加的自然用户输入反映在由近眼显示设备304生成的更新的意图图像402中,其一部分如图4B所示。更新的意图图像402包括交互对象310A、310B、310D、310E、310F和310G。
基于来自眼动追踪314的数据和右手316的位置和方向,使用意图值对更新的意图图像400的每个像素进行编码。每个意图值表示用户打算关注意图图像402中的对应像素的可能性。在本例中,意图值越大,用户302越可能聚焦于该对应像素。基于所述确定,交互对象310A的外观在呈现图像308中改变,使得交互对象具有粗体、高亮的边框,以向用户302提供交互对象310A是聚焦对象的视觉反馈。
在图3D中,用户302的眼动追踪314导致多个交互式对象310A、310F和310G具有导致歧义的意图分数,使得近眼显示设备304最初无法确定哪个交互式对象是聚焦对象。因此如图3D所示,近眼显示设备304在视觉上呈现消歧提示320,其中放大交互式对象310A、310F和310G的视图,以确定所讨论的三个对象的用户预期聚焦目标。一旦交互式对象310A、310F和310G被放大,用户302就提供语音输入322,说“给我看棒球比赛”,从而明确选择交互式对象310A。
基于所述选择,交互对象310A的外观在呈现图像中改变,使得交互对象310A具有粗体、高亮的边界以区别于其他交互对象,并向用户302提供交互对象310B是聚焦对象的视觉反馈。在其他示例中,一旦提供了消歧提示,近眼显示设备304可以通过生成更新的意图图像并重新评估交互对象的意图得分来重新评估用户输入,以确定焦点对象。
相关专利:Microsoft Patent | Intention image analysis for determining user focus
名为“Intention image analysis for determining user focus ”的微软专利最初在2021年2月提交,并在日前由美国专利商标局公布。