HoloLens 2 中的眼动跟踪

Eye tracking demo in MRTK

HoloLens 2 为开发人员提供了使用用户所注视对象的相关信息的功能,将全息体验中的环境和人类理解能力提高到了一个新境界。 本页介绍了开发人员如何在不同的用例中利用眼动跟踪,以及在设计基于视线的用户交互时要注意哪些问题。

眼动跟踪 API 的设计考虑到了用户隐私,会避免传递任何身份信息,尤其是任何生物识别信息。 对于支持眼动跟踪的应用程序,用户需要授予应用使用眼动跟踪信息的权限。

设备支持

功能 HoloLens(第一代) HoloLens 2 沉浸式头戴显示设备
眼部凝视

头部和眼动跟踪设计概念演示

若要了解头部和眼动跟踪设计概念的运行情况,请查看下面的“设计全息影像 - 头部跟踪和眼动跟踪”视频演示。 完成后,请继续详细了解特定主题。

此视频取自“设计全息影像”HoloLens 2 应用。 请在此处下载并畅享完整体验。

校准

为使眼动跟踪准确工作,每个用户需要完成眼动跟踪用户校准,他们必须注视一组全息目标。 这样,设备就可以调整系统,从而为用户提供更舒适、更高质量的观看体验,同时确保眼动跟踪的准确性。

大多数用户都可以正常运行眼动跟踪,但在极少数情况下,某些用户无法成功校准。 校准可能因各种原因而失败,包括但不限于:

  • 用户之前选择退出校准过程。
  • 用户注意力不集中,眼睛未追随校准目标。
  • 用户佩戴了系统尚不支持的某种隐形眼镜和普通眼镜。
  • 用户的眼部生理结构或眼部状况较特殊,或做过眼科手术,系统尚不支持这种情况。
  • HoloLens 挡板或眼镜上的污迹、强烈的阳光直射以及眼睛前面的毛发等外部因素导致无法可靠地运行眼动跟踪。

开发人员应确保为可能无法获得其眼动跟踪数据(无法成功校准)的用户提供足够的支持。 我们在本页的底部部分提供了回退解决方案的建议。

若要详细了解校准以及如何确保流畅的体验,请查看眼动跟踪用户校准页。


提供的眼动跟踪数据

HoloLens 2 上的眼动跟踪可让开发人员设计自然直观的输入和交互方案。 眼动跟踪 API 提供有关用户以大约 30 FPS (30 Hz) 的单眼凝视射线(凝视原点和方向)查看的内容的信息。 要准确运行眼动跟踪,每个用户需要完成眼动跟踪用户校准。 有关如何访问眼动跟踪数据的更详细信息,请参阅有关使用 DirectX 中的眼睛凝视Unity 中的眼睛凝视的开发人员指南。

预测的视线在围绕实际目标的视角范围内的大约 1.5 度以内(见下图)。 预期会有轻微的不精确性,因此开发人员应计划围绕此下限值留出一些余量(例如,2.0-3.0 度可能会带来更舒适的体验)。 下面将更详细地讨论如何解决小目标的选择问题。

Optimal target size at 2 meter distance
2 米远处的最佳目标大小


扩展的眼动跟踪数据

扩展的眼动跟踪 API 允许开发人员通过提供有关用户眼睛凝视的更精细的信息来解锁下一级的创新方案,例如健康评估、监测和治疗。

扩展的眼动跟踪 API 提供对现有眼动跟踪值和新功能,例如单个(左和右)眼睛凝视矢量、支持的帧速率以及将眼动跟踪帧速率设置为 30、60 或 90fps 的能力。 若要使用扩展眼动跟踪 API,请参阅我们的开发人员指南,了解如何使用本机Unity 的扩展眼动跟踪 API。

用例

眼动跟踪可让应用程序实时跟踪用户正在注视的位置。 以下用例描述了如何在混合现实中使用 HoloLens 2 上的眼动跟踪进行一些交互。 这些用例尚未包括在全息外壳体验(启动 HoloLens 2 时看到的界面)中。 可以在混合现实工具包中尝试其中一些。 工具包提供了多个有趣且知识点非常丰富的示例,用于演示眼动跟踪的用法,例如,快速轻松地选择视线支持的目标,以及根据用户注视的对象自动滚动文本。

用户意图

有关用户注视位置和对象的信息为语音、手和控制器等其他输入提供了丰富的上下文。 可在各种任务中使用此信息。 例如,用户可以通过查看全息影像并说“选择”(另请参阅“凝视并提交”)或“放置...”来快速而毫不费力地瞄准整个场景,然后查看想要放置全息影像的位置,并说“...在那里”。 在混合现实工具包 - 视线支持的目标选择混合现实工具包 - 视线支持的目标定位中可以找到相关示例。

此外,用户意图的示例可能包括,使用用户注视的对象的相关信息的信息来增强具体化的虚拟代理和交互式全息影像的互动能力。 例如,虚拟代理能够根据当前查看的内容调整可用选项及其行为。

隐式操作

隐式操作的类别与用户意图密切相关。 其思路是,全息或用户界面元素凭借本能做出反应,就好像用户根本不是在与系统交互,而像是两者已同步。例如,基于视线的自动滚动,用户可以读取长文本,一旦用户到达文本框底部,就会自动开始滚动。 这样,用户就可以在不抬起手指的情况下保持在阅读流中。 此功能的一个重要特征是,滚屏速度与用户的阅读速度相适应。

另一个示例是视线支持的缩放和平移,用户可以感受到他们所要专注的内容立即涌现在眼前。

可以通过语音或手动输入来触发缩放和控制缩放速度,这对于为用户提供控制感和避免出现眼花缭乱的情况非常重要。 下面将更详细地讨论这些设计考虑因素。 例如,在放大后,用户可以通过视线顺畅地观看其周边的街景。 混合现实工具包 - 视线支持的导航示例中可以找到此类交互的演示。

隐式操作的其他用例包括

  • 智能通知:你是否曾经对视图中间弹出的通知而烦恼? 可以通过在偏离用户当前正在观看的位置显示通知来改善这种体验。 这有助于避免分散其注意力,并在他们阅读完通知后自动隐藏通知。
  • 专注的全息影像:这些全息影像在凝视时以微妙的方式反应。 这种反应包括柔和地让 UI 元素发光、当虚拟宠物开始回头看着用户或者摇尾巴时缓慢绽放花朵。 这种交互可以在应用程序中提供一种有趣的互动感和满足感。

注意力跟踪

有关用户注视位置或对象的信息极其有用。 这些信息可以帮助评估设计可用性,以及识别工作流中的问题,使工作流更高效。 眼动追踪可视化和分析是各个应用领域的普遍做法。 HoloLens 2 为这种认知提供了一个新的维度,3D 全息影像可以放在真实的上下文中,并相应地进行评估。

混合现实工具包提供了有关记录、加载和可视化眼动跟踪数据的基本示例。

Microsoft 致力于促进创新,同时确保用户对其眼动跟踪信息的使用方式有一个知情和透明的体验。 我们将与开发人员和 UX 团队持续合作,为第三方提供指导,确保体验以用户为中心。

此领域的其他应用场景包括:

  • 远程眼睛凝视可视化:可视化远程协作者正在查看的内容。 这可以提供即时反馈,促进更准确的信息处理。
  • 用户调研:注意力跟踪可以更深入地了解用户如何在不受干扰的情况下感知自然环境并与之互动。 这有助于开发人员设计更多本能的人机交互。 眼动跟踪可以提供研究参与者没有直接表达的信息,而研究人员很容易错过这些信息。
  • 培训和性能监视:更有效地识别执行流程中的瓶颈,实践并优化任务的执行。 眼动跟踪可以提供自然、实时且客观的信息,以帮助改善工作场所的培训、生产力和安全性。
  • 设计评估、营销和消费者调查:眼动跟踪使商业公司能够在真实环境中执行营销和消费者调查,或分析哪些内容能够吸引用户的注意力,以改善产品或空间设计

其他用例

  • 游戏:是否曾经想过拥有超能力? 机会来了!

可以注视全息影像,使之漂浮起来。

从眼睛发射激光束 - 在 RoboRaid for HoloLens 2 中体验。

将敌人变成石头,或将其冻住。

使用 X 光透视来扫描建筑物。

没有做不到,只有想不到! 不过,要注意不要让用户感到难以承受。 若要了解详细信息,请参阅基于眼睛凝视的输入设计指南

  • 富有表现力的虚拟形象:眼动跟踪有助于创建更富表现力的 3D 虚拟形象,因为它可以使用实时眼动跟踪数据来制作虚拟形象的眼睛动画,并让它们跟踪用户正在注视的位置。

  • 文本输入:可将眼动跟踪用作一种较为轻松的文本输入方式,尤其是不方便使用语音或双手时


使用视线进行交互

构建利用快速移动的眼球定位功能的交互式应用可能有难度。 由于眼睛的移动速度很快,如果不注意如何使用眼动输入,用户可能会感到难以承受或分心。 但这非常值得挑战,因为眼动跟踪可让你创造真正神奇的体验,这将激发你的用户! 如需帮助,请查看使用视线进行交互的主要优势、挑战概述和设计建议。

眼动跟踪不可用时的回退解决方案

在极少数情况下,可能无法获得眼动跟踪数据。 发生这种情况的原因有多种,下面列出了最常见的情况:

  • 系统未能校准用户
  • 用户跳过了校准过程。
  • 用户已校准,但决定不授予应用使用其眼动跟踪数据的权限。
  • 用户的眼镜比较独特或存在某种眼睛状况,系统尚不支持这种情况。
  • HoloLens 挡板或眼镜上的污迹、强烈的阳光直射以及眼睛前面的毛发等外部因素导致无法可靠地运行眼动跟踪。

开发人员应确保为这些用户提供适当的回退支持。 DirectX 中的眼动跟踪页上介绍了检测眼动跟踪数据是否可用所需的 API。

某些用户可能会认为,隐私比眼动跟踪可以提供的改进体验更重要,因此他们有意撤销对眼动跟踪数据的访问权限。 但是,在某些情况下,这种撤销可能是无意的。 如果你的应用使用眼动跟踪,并且这是体验的重要组成部分,我们建议向用户明确传达这一点。 向用户解释眼动跟踪如何解锁应用程序的全部潜力,这可帮助他们更好地了解他们放弃的内容。 如果启用眼动跟踪但不起作用,请使用上面的检查列表作为指南帮助用户识别和解决问题。 例如,如果你可以检测到系统支持眼动跟踪,而用户已完成校准甚至已授予权限,但仍未收到眼动跟踪数据,那么,这可能表明存在其他问题,例如有污迹或眼睛被遮挡。

在极少数情况下,眼动跟踪只是对某人不起作用,没有明显的原因。 请尊重这些用户的特殊情况,允许其关闭甚至禁用有关在应用中启用眼动跟踪的提醒。

使用视线作为主要输入指针的应用的回退

如果应用使用视线作为指针输入以快速选择场景中的全息影像,但眼动跟踪数据不可用,我们建议回退到头部跟踪视线并显示头部跟踪视线光标。 建议使用超时(例如 500-1500 毫秒)来确定是否切换。 此操作可防止每次系统因快速眼动或眨眼而短暂失去跟踪时出现光标。 如果你是一名 Unity 开发人员,可以在混合现实工具包中自动回退到头部跟踪视线。 如果你是一名 DirectX 开发人员,则需要自行处理这种切换。

其他眼动跟踪特定的应用程序的回退

你的应用可能以独特的方式使用眼睛凝视,专门针对眼睛定制,例如,对头像的眼睛或基于眼睛的注意力热度地图进行动画处理,这些地图依赖于有关视觉注意力的精确信息。 在这种情况下,没有明确的回退。 如果眼动跟踪不可用,可能需要禁用这些功能。 同样,我们建议向可能不知道该功能不起作用的用户明确传达这一点。


希望你通过本页中的概述很好地了解了 HoloLens 2 的眼球跟踪和视线输入的作用。 若要开始进行开发,请查看有关使用眼睛凝视与全息影像交互Unity 中的眼睛凝视DirectX 中的眼睛凝视的作用的信息。

另请参阅