HoloLens 2 上基于眼睛凝视的交互

Eye tracking demo in MRTK

HoloLens 2 中一项令人非常期待的功能就是眼动跟踪。 在 HoloLens 2 上的眼动跟踪页上,我们提到每个用户都需要完成校准,提供了一些开发人员指南,并突出显示了眼动跟踪的用例。 眼睛凝视输入仍是一种新型用户输入方式,还有很多知识需要学习。

虽然眼睛凝视输入仅在 Holographic Shell 体验(启动 HoloLens 2 时看到的用户界面)中微妙地使用,但有几个应用(如“HoloLens Playground”)展示了几个很好的示例,可以看到眼睛凝视输入如何为全息体验增添魔力。 本页讨论了集成眼睛凝视输入以与全息应用程序交互的设计注意事项。

你将了解眼睛凝视输入的主要优势和独特挑战。 基于这些内容,我们提供了一些设计建议,帮助你创建令人满意的眼睛凝视支持用户界面。

设备支持

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

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

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

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

眼睛凝视输入设计准则

构建利用快速移动的眼球定位功能的交互式应用可能有难度。 本部分汇总了在设计应用程序时要考虑到的主要优势和难题。

眼睛凝视输入的优势

  • 高速指向。 眼部肌肉在人体中是反应速度最快的肌肉。

  • 不费力。 几乎没有任何身体动作。

  • 隐含性。 此功能通常被用户描述为“读心术”。有关用户眼部动作的信息可让系统知道用户想要与哪个目标互动。

  • 备选的输入通道。 眼睛凝视可为多年以来根据用户手眼协调性实现的手写和语音输入体验提供强有力的支持。

  • 视觉注意力。 另一个重要优势是能够推断出用户正在关注的对象。 这可以在各种应用领域中提供帮助,包括有效评估不同的设计,以帮助开发出更智能的用户界面,以及增强社交手段来实现远程通信。

简而言之,使用眼睛凝视作为输入可提供快速且简单的上下文输入信号。 与其他输入(如语音和手动输入)结合在一起时,此功能非常强大,可以确认用户的意图。

将眼睛凝视作为输入所带来的难题

虽然眼睛凝视可以用来创造令人满意的用户体验,这让你觉得自己像个超级英雄,但知道它的弱点也很重要。 下面的列表讨论在使用眼睛凝视输入时要考虑到的一些难题,以及如何解决这些难题:

  • 眼睛凝视“始终开启”:张开双眼的那一刻,眼睛就会开始注视环境中的事物。 对每种表情作出的反应,以及由于长时间注视某个事物而意外产生的动作,都会导致出现令人不满意的体验。 建议将眼睛凝视与语音命令、手势、按钮点击或延长的停顿相结合来触发目标选择(有关更多信息,请参阅眼睛凝视和提交)。 这种解决方法还可以让用户进入一种可以自由环顾的模式,而不会迫使他们不情愿地触发某个操作。 设计视觉和听觉反馈(注视某个目标)时,也应考虑到此问题。 尽量不要使用即时弹出式效果或惊悚的声音来让用户感到不知所措。 微妙才是关键所在。 稍后在谈到设计建议时,我们会进一步讨论一些最佳做法。

  • 观测与控制:假设你要在墙上精确地将某幅照片摆放整齐。 你会参照它的边框和四周,检查它是否平齐。 现在想一想,如果你要使用眼睛凝视作为输入来移动图片,如何做到平齐地移动呢? 有点难度,对不对? 这就是眼睛凝视在同时用于输入和控制时发挥的双重作用。

  • 点击之前离开目标:在快速目标选择方面,有研究表明,在确定手动点击(例如隔空敲击)之前,用户的眼睛凝视可能会移动。 将快速眼睛凝视信号与慢速控制输入(例如语音、手、控制器)同步时,要特别小心。

  • 小目标:你是否体会过阅读的文字太小,以致不能舒适阅读时的那种感受? 眼睛的紧张感会让你感到疲倦,因为你要尝试重新调整双眼,以便更好地聚焦。 当你使用眼球定位迫使用户选择应用程序中太小的目标时,可能会让用户产生这种感觉。 在设计方面,为了给用户建立一种愉悦舒适的体验,我们建议目标至少在 2° 的视角范围内,最好是再大一些。

  • 不规则的眼睛凝视移动:我们的眼睛会从一个位置快速移动到另一个位置。 观察录制的眼部运动扫描路径时你会发现,这些路径看起来是不规则的。 与头部跟踪视线和手部运动相比,眼睛的移动速度飞快,是本能跳动的。

  • 跟踪可靠性:当眼睛在光线变化的环境中适应新的条件时,眼动跟踪准确度可能会略有下降。 尽管这不会影响应用程序的设计,因为准确性应在 2° 限制范围内,但用户可能需要重新校准。

设计建议

下面根据所述的眼睛凝视输入的优势和难题,列出了具体的设计建议:

  1. 眼睛凝视不同于头部跟踪视线:

    • 考虑快速但不规则的眼部运动是否符合输入任务:虽然快速但不规则的眼部运动非常适合在我们的视野中快速选择目标,但它不太适用于需要平稳输入轨迹的任务(例如,绘图或环绕批注)。 在这种情况下,应该首选手部或头部指向。

    • 避免将物件直接对准用户的眼睛凝视(例如滑块或光标)。 以光标为例,这可能会导致“光标逃逸”效应,因为投影的眼睛凝视信号中存在微小的偏移。 以滑块为例,它会与眼睛凝视既要通过眼睛控制滑块,又要检查对象是否位于正确的位置这种双重角色相冲突。 对于滑块示例,最好将眼睛凝视与手势结合使用。 这意味着用户可以在多个滑块之间快速轻松地进行切换,抬起手,捏合大拇指和食指来抓取和移动滑块。 当释放捏合手势时,滑块将停止移动。 用户可能会不知所措并分心,尤其是当信号对该用户不精确时。

  2. 将眼睛凝视与其他输入相结合:将眼动跟踪与其他输入(例如手势、语音命令或按钮)相集成可提供以下优势:

    • 可以自由观察:假设我们的眼睛主要用于观察环境,则务必允许用户在不触发任何(视觉、听觉等)反馈或操作的情况下环顾四周。 将眼动跟踪与其他输入控制结合起来,可以在眼动跟踪观察和输入控制模式之间平稳过渡。

    • 强大的上下文提供程序:在发出语音命令或使用手势的同时,使用有关用户正在注视的位置和对象的信息,可以无缝地在整个视野中传送输入。 例如:发出“放在这里”语音命令后,通过注视某个目标和预期目的地,就能快速顺畅地在场景中选择和放置全息影像。

    • 同步多模输入的需求:将快速眼部运动与更复杂的输入(例如长时间的语音命令或手势)相结合,可以在完成和识别额外的输入命令之前,承受用户继续张望的风险。 如果你要创建自己的输入控制(例如自定义手势),请务必记录此输入的发生时间或近似持续时间,使之与用户过去注视的物件相关联。

  3. 眼动跟踪输入的微秒反馈:如果某个目标已被注视(表示系统正在按预期方式工作)但应保持微妙的状态,则最好是提供反馈。 这可能包括缓慢混入和混出、视觉对象突出显示或执行其他微妙的目标行为(如缓慢移动,稍微增加目标大小)。 这表示系统正确检测到用户正在注视某个目标,而没有不必要地中断用户的当前工作流。

  4. 避免强制使用非自然的眼部运动作为输入进行:不要强制用户使用特定的眼部运动(凝视手势)在应用程序中触发操作。

  5. 考虑不精确性:我们区分两种类型的不精确性,这两种类型对用户而言是显而易见的:偏移和抖动。 解决偏移的最简单方法是提供足够大的目标来与之进行交互。 建议使用大于 2° 的视角作为参考。 例如,当你伸出手臂时,缩略图视角大约为 2°。 因此,我们的指导如下:

    • 不要强迫用户选择微小的目标。 研究表明,如果目标足够大并且系统设计得当,用户就会将交互效果描述为轻松且神奇。 如果目标太小,则用户就会将体验描述为费力、令人沮丧。

本页面很好地概述了如何开始了解在混合现实中作为输入的眼睛凝视。 若要开始进行开发,请查看有关 Unity 中的眼睛凝视DirectX 中的眼睛凝视的信息。

另请参阅