HoloLens 2 中的眼动跟踪

Eye tracking demo in MRTK

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

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

设备支持

功能 HoloLens(第 1 代) 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 米远处的最佳目标大小


用例

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

用户意图

有关用户注视位置和对象的信息为语音、手和控制器等其他输入提供了丰富的上下文。 可在各种任务中使用此信息。 例如,这些任务可能包括,注视某个全息影像并说出“选择”(另请参阅视线和提交),或者说出“将这个...”,然后注视要将该全息影像放到的某个位置并说出“...放到这里”,即可快速轻松地在场景中切换目标位置。 在混合现实工具包 - 视线支持的目标选择混合现实工具包 - 视线支持的目标定位中可以找到相关示例。

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

隐式操作

隐式操作的类别与用户意图密切相关。 其思路是,全息或用户界面元素凭借本能做出反应,就好像用户根本不是在与系统交互,而像是两者已同步。一个例子是基于视线的自动滚动,在这种情况下,用户可以阅读长文本,一旦到达文本框底部,该文本就会自动开始滚动,使用户能够不间断地阅读,而不需要动手翻页。
此功能的一个重要特征是,滚屏速度与用户的阅读速度相适应。 另一个例子是视线支持的缩放和平移:用户可以感受到他们所要专注的内容立即涌现在眼前。 可以通过语音或手动输入来触发缩放和控制缩放速度,这对于为用户提供控制感和避免出现眼花缭乱的情况非常重要。 下面将更详细地讨论这些设计考虑因素。 例如,在放大后,用户可以通过视线顺畅地观看其周边的街景。 有关这些类型的交互的详细信息,请参阅混合现实 Toolkit - 支持眼睛的导航页面。

隐式操作的其他用例包括:

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

注意力跟踪

有关用户注视位置或对象的信息极其有用。 这些信息可以帮助评估设计可用性,以及识别工作流中的问题,使工作流更高效。 眼动追踪可视化和分析是各个应用领域的普遍做法。 HoloLens 2 为这种认知提供了一个新的维度,3D 全息影像可以放在真实的上下文中,并相应地进行评估。 混合现实工具包提供了有关记录、加载和可视化眼动跟踪数据的基本示例。 Microsoft 致力于促进创新,同时确保用户对其眼动跟踪信息的使用方式有一个知情和透明的体验。 我们将与开发人员和 UX 团队合作,为第三方提供指导,确保体验以用户为中心。

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

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

其他用例

  • 游戏:是否曾经想过拥有超能力? 机会来了! 可以注视全息影像,使之漂浮起来。 从眼睛发射激光束 - 在 RoboRaid for HoloLens 2 中体验。 将敌人变成石头,或将其冻住。 使用 X 光透视来扫描建筑物。 没有做不到,只有想不到! 但请注意不要让用户眼花缭乱 - 有关详细信息,请查看基于视线的输入设计指导原则

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

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


使用视线进行交互

构建利用快速移动的眼球定位功能的交互式应用可能有难度。 一方面,眼睛转动速度极快,需要小心使用视线输入,否则用户可能会发现体验眼花缭乱或无法集中注意力。 另一方面,还可以创建真正神奇的体验,让用户兴奋不已! 如需帮助,请查看使用视线进行交互的主要优势、挑战概述和设计建议。

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

在极少数情况下,可能无法获得眼动跟踪数据。 其原因各不相同,下面列出了最常见原因:

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

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

某些用户可能有意决定撤销对其眼动跟踪数据的访问权限,并且出于隐私考虑,不提供对其眼动跟踪数据的访问权限,并愿意为此降低其用户体验,但某些情况下,这种决定可能是无意的。 如果你的应用使用眼动跟踪,并且这是体验的重要组成部分,我们建议向用户明确传达这一点。

请告知用户为何眼动跟踪对体验应用程序的全部潜能至关重要(甚至可以列出一些增强功能),帮助用户更好地了解他们正在放弃什么。 帮助用户确定眼动跟踪不起作用的原因(基于上述检查),并提供一些建议以快速排查潜在问题。

例如,如果你可以检测到系统支持眼动跟踪,而用户已完成校准甚至已授予权限,但仍未收到眼动跟踪数据,那么,这可能表明存在其他一些问题,例如有污迹或眼睛被遮挡。

在极少数情况下,眼动跟踪可能对用户不起作用。 因此,请尊重这些用户的特殊情况,允许关闭甚至禁用有关在应用中启用眼动跟踪的提醒。

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

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

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

应用可能使用了专门针对眼睛定制的独特方式使用视线。 例如,动画显示虚拟形象的眼睛,或基于眼睛的注意力热图依赖于关于视觉注意力的精确信息。 在这种情况下,没有明确的回退措施。 如果眼动跟踪不可用,可能需要禁用这些功能。 同样,我们建议向可能不知道该功能不起作用的用户明确传达这一点。


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

请参阅