虚拟现实中的眼睛跟踪
Posted 俺想发SCI
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟现实中的眼睛跟踪相关的知识,希望对你有一定的参考价值。
本文旨在介绍虚拟现实中眼动跟踪的新兴领域。虚拟现实本身是消费市场上的一项新兴技术,这将为研究创造许多新机会。它提供了一个高度沉浸的实验室环境,并与现实密切相关。一个使用虚拟现实的实验是在高度受控的环境中进行的,可以收集关于受试者动作的更深入的信息。眼球跟踪技术是一个多世纪前引入的,现在已经成为心理学实验中的一种成熟技术,但最近的发展使其具有多功能性,价格合理。结合这两种技术,可以在半现实条件下前所未有地监测和控制人类行为。
本文将以一个案例研究为例,探索在虚拟现实中使用眼睛跟踪进行实验的方法和工具。在技术描述的同时,我们展示了该技术的有效性,并展示了在虚拟现实中使用眼睛跟踪时可以获得什么样的结果。
它旨在引导读者通过将虚拟现实与眼睛跟踪相结合的过程进入实验室,并激发新实验的想法。
引言
最近的技术进步导致了虚拟现实技术的快速发展。虚拟现实技术的发展在一定程度上受到游戏行业的推动,游戏行业为商业目的大量生产虚拟现实套件。
因此,它被不断地进一步开发和改进,从而获得更高的分辨率、更高的刷新率和更大的视野。高性能显示器、图形卡和其他计算机硬件使得以合理的价格生产强大的虚拟现实工具包成为可能(虚拟现实学会,2017)。这些发展使虚拟现实成为一种非常有价值和更容易获得的研究工具。
虚拟现实的优点是控制良好的实验装置,同时仍然让受试者自由移动,并将其放置在相对自然的环境中。就像在现实世界中一样,受试者可以通过移动头部向各个方向看。在头部运动的同时,可以高精度测量与受试者位置相关的刺激位置。
事实上,可以实现全身运动,例如转向物体,甚至走路。通过身体运动和提供给眼睛的图像的同步,可以实现主体与虚拟环境的高度沉浸。通过向感官提供有关该环境的信息,受试者在非物理环境中获得存在感(Mestre&Vercher,2011)。
这有助于与人工创建的刺激进行更自然的交互。运动跟踪允许记录受试者的所有运动。因此,在受控条件下跟踪行为,这些条件可以在多个试验中相同。受试者对3D世界的更直观探索以及受试者运动和环境变化之间的对应关系提高了实验范式的生态有效性。因此,虚拟现实的发展与在更少人工条件下进行实验的努力是一致的,这被认为是真正理解认知过程所必需的(Jungnickel和Gramann,2016)。
眼睛跟踪是一种成熟的技术,广泛用于研究人类认知。20世纪初,它首次使用带有指针的特殊隐形眼镜(休伊,1908)。30年后,通过使用光束并记录其在胶片上的反射,这项技术得到了优化(Buswell,1938)。眼动研究的现代方法是在20世纪60年代发展起来的(Tatler、Wade、Kwan、Findlay和Velichkovsky,2010;Yarbus,1968),并从那时起得到进一步完善。在过去几年中,监测眼球运动的确切方法发生了很大变化。如今,使用计算机视觉技术的基于视频的系统占主导地位(Hansen和Ji,2010)。
由于为智能手机等设备开发了小型、高质量的摄像头,现在有可能拥有轻便、方便的眼球跟踪系统,甚至可以安装在虚拟现实耳机或便携式眼镜中。这些可以快速准确地监测眼球运动,提供大量数据。由于眼球运动与认知之间的密切关系(Deubel&Schneider,1996;J.E.Hoffman&Subramaniam,1995),眼球跟踪在各种实验环境中受到越来越多的关注。随着眼球跟踪领域的技术进步和研究量的增加,它现在已经发展成为一种可以在各种装置中有效地用于研究人类认知过程的技术。
与经典的眼球跟踪相比,虚拟现实中的眼球跟踪是一个相对较新且有希望的发展,它在本世纪初首次出现在文献中(Duchowski等人,2000)。它为开展有关人类感知和行为的研究开辟了许多新的可能性。它为搜索者提供了以前无法使用的工具。
这些工具包括VR系统的全身运动跟踪以及眼动跟踪器的视线跟踪。虽然受试者发现自己处于一个相对自然的环境中,对自己的动作和动作做出反应,但所有实验设置都可以具体控制。眼睛跟踪和虚拟现实的结合使我们能够在3D空间中计算受试者的凝视,并观察受试者在会话期间的注视位置。与真实世界的眼睛跟踪相反,在虚拟现实眼睛跟踪中,很容易在三维空间中定义感兴趣的区域,并及时跟踪点,以确定观察区域的时间。眼球跟踪和虚拟现实技术的结合,具有更自然的刺激、更自然的运动、受控的环境和受控的数据采集等优点,使得以一种彻底创新的方式回答许多研究问题成为可能。
本文将介绍虚拟现实中眼睛跟踪的技术和实践方面,旨在使其更广泛、更容易实现。我们将简要概述这种新的方法组合,并详细描述如何在您自己的实验室中设置和实现它。我们将研究该工具在研究环境中的使用场景,以及其优点和潜在缺点。此外,我们将描述可以收集的数据类型。重点是使用带有运动跟踪器和内置眼动跟踪器的虚拟现实系统,因为这些是收集数据的主要方法。可以使用多种软件和硬件解决方案。
没有任何关于使用最佳软件或硬件的声明,部分原因是我们的经验受到我们使用的硬件和软件的偏见,部分原因是因为这是一个蓬勃发展的行业,经常出现新的选择。工具和软件将通过适当的方式提供。阅读本文时,有关实现的一些技术方面可能已经改变或变得更容易。目的是为这一领域的新手提供基本介绍和可能的指导。这些信息应该有助于获得一个良好的开端,我们的样本数据可以向任何考虑使用这种技术进行研究的人展示虚拟现实的巨大可能性,并为未来的实验激发新的想法。
【方法】
【实验装置的组成】
在虚拟现实中使用眼睛跟踪的完整实验装置包含许多部分。这里概述了典型设置的硬件和软件组件。
VR硬件设置。
这包括头戴式显示器(HMD)、运动跟踪器和与虚拟世界交互所需的控制器(图1A)。Oculus 1和阀门公司以及HTC 2提供了一套完整的高品质组件。另一种选择是索尼3的PlayStation VR,您也可以使用Unity开发应用程序(Unity Technologies,2017)。微软还提供消费者虚拟现实耳机,您可以为其开发自己的应用程序4。此外,还提供了仅使用智能手机屏幕和硬纸盒的简单而廉价的解决方案5。然而,由于较低的刷新率、较低的计算能力以及到目前为止还没有现有的眼球跟踪解决方案,这些都不是研究的最佳选择6。
软件。
设计虚拟实验的常用工具是Unity 7、Unreal Engine 8或Vizard 9。前两个是游戏引擎,免费提供,而后一个更具体的虚拟现实。Unity使用javascript和C作为编程语言。Unreal使用C++并拥有一个可视化脚本系统。在Vizard中,使用Python编写脚本。通过这三种方式,您可以创建简单或复杂的3D环境,编写不同对象行为的脚本,并提取有关主体行为的信息。
PC硬件。
尽管PC硬件在过去三十年中有了长足的发展,但当前的虚拟现实应用甚至测试了最新系统的计算能力。这尤其适用于渲染具有许多可能是动态对象、详细纹理或照明变化的复杂场景。以高帧速率运行虚拟现实环境很重要,因为反应滞后和抖动运动很容易导致受试者晕车。计算机通常用作眼动跟踪器和虚拟现实硬件之间的接口,并用于收集有关受试者行为的所有数据。
眼动跟踪器。
这些是专门为不同类型的头戴而设计的。目前为头盔显示器提供眼动跟踪器的公司有小学生实验室(图1C)10和Tobii 11。FOVE目前提供了一款已经集成了眼动跟踪器12的头盔显示器。
耳机。
这些可以减少来自外部的分心声音,并支持强烈的沉浸感。当然,它们也可以用于特定的听觉实验。声音可以在3D空间中从不同的来源播放,因此音量可以根据主体转动头部的方式而变化(图1A)。
电缆管理。
大多数虚拟现实设置涉及将头盔显示器(和眼动跟踪器)连接到计算机的多条电缆。由于受试者通常在虚拟现实环境中移动,他们可能会被耳机的电缆缠住。这可以通过安装一个简单的电缆管理系统(图1B)来避免,因此我们强烈建议安装该系统。一些供应商为HMD 13提供无线解决方案,这是一个很好的替代方案。然而,大多数头盔显示器眼睛跟踪器仍需要某种电缆管理。一次性卫生盖。虚拟现实设置是在考虑单个客户的情况下进行的。然而,在实验室环境中,许多人会使用相同的耳机。具体来说,耳机坐垫会接触受试者的面部,温暖会导致出汗。因此,为了有一个舒适的体验,并增加卫生程序,强烈建议使用耳机接触受试者皮肤的一次性护盖。
【虚拟现实中的运动病、疲劳和其他问题】
运动病通常由视觉和前庭刺激之间的差异引起。例如,在船内,由于眼睛看到稳定的场景,但前庭系统检测到运动,因此会引起晕船。
在虚拟现实中会出现相反的效果。在虚拟现实中,眼睛检测场景的运动和玩家的明显运动,而在大多数情况下,真实的人是站在椅子上。来自眼睛的输入和来自前庭系统的输入之间的这种差异导致了虚拟现实中运动病的主要部分。维护实验所必需的功能,例如能够四处走动或使用更大、更复杂的场景是很困难的。避免晕车的最简单解决方案是设计一个虚拟环境,在那里受试者不必走路。在游戏虚拟现实中,最常见的走动方式是隐形传态14,因为这可以通过减少感觉不匹配而导致轻微运动病的方式实现。然而,这不是一种非常自然的运动方式,因此许多研究问题都不需要这种选择。另一种选择是让子对象在现实世界中的跑步机上行走,以便接收到的运动与虚拟现实中看到的运动相匹配。然而,这很难实现,尤其是当主体可以自由地向各个方向移动时。一个解决方案是使用全方位跑步机,但这项技术还没有很好的发展,而且相当昂贵。
作为一种替代方法,可以让主体坐在转椅上自由旋转,从而忽略真实空间中的平移。总的来说,关于虚拟现实中运动的最佳决定取决于一个人的实验和他想回答的问题的类型。此外,该领域目前有大量的发展,并且经常出现预防运动病的新想法。除了优化虚拟现实中所需的动作外,调整3D环境和实验设置的细节有助于将晕车降到最低。与传统显示器相比,虚拟现实中的子对象对小干扰更敏感,因为它们对现实有更高的期望。例如,电脑游戏的潜伏期可能为50ms或更高,但在虚拟现实中,超过15-20ms的潜伏期可能会导致严重的头晕和恶心(Abras,2012)。这是因为虚拟现实中的主体假设虚拟世界遵循与真实世界相同的规则。因此,如果受试者转头,虚拟世界也会随之发生轻微延迟,则会被视为干扰并导致疾病。除了延迟之外,不同的帧速率也会引起恶心。因此,作为虚拟现实实验开发人员,在决定实验场景的复杂性时,应该记住帧速率。
除了晕车,对大多数受试者来说,长时间戴着耳机也会非常累人。因为它有点重,所以会将受试者的头部向前拉,有人抱怨说颈部疼痛或鼻子受压。此外,在温暖的夏天,耳机下会变得很热,使大多数受试者出汗。为了使受试者保持舒适,应提供足够的空调。虚拟现实的另一个挑战是视觉和注意力之间的差异(图2)。这被称为焦点适应冲突(D.M.Hoffman、Girshick、Akeley和Banks,2008)。在现实世界中,我们的大脑接收来自会聚和眼睛晶状体焦点的深度信息。相反,我们在虚拟现实中只接收到关于收敛的信息。由于虚拟场景仅在固定距离的单个平面上呈现,即HMD显示,因此无法从镜头的焦点中提取任何深度信息。对于大多数人来说,这不是一个大问题,尽管一些人无法单独从收敛中提取很多深度信息,因此3D体验较弱。它还可能导致眼睛疲劳和疲劳(Forsyth,2015)。额外缺乏焦点模糊可能会导致对虚拟环境中对象的大小和距离的不同感知(Eggleston、Janson和Aldrich,1996)。因此,目前的技术可能仍然限制了虚拟现实在运动病和疲劳方面的应用。然而,在改善这些缺点方面还有很多工作要做。已经提出了包括焦点模糊在内的基于眼睛跟踪的中心凹渲染解决方案(Weier、Roth、Hinkenjann和Slusallek,2018a;Weier等人,2016)。
人眼可以在自然环境下 聚焦远处 but在戴眼镜VR环境下 焦距比较近???????????
【虚拟现实中眼动跟踪器的标定与验证】
校准和验证是确保眼睛跟踪测量准确性的常见做法。对于这两种程序,受试者在屏幕上的不同位置显示目标点,并指示其注视这些点。在校准过程中,眼动跟踪器使用这些目标作为参考点来调整其凝视计算,以匹配子对象正在观看的位置。在验证过程中,计算眼动跟踪器返回的坐标与目标实际坐标之间的视角,并提供校准的质量度量。根据我们的经验,由于漂移,例如在虚拟现实实验期间,受试者头部的耳机轻微滑动,眼睛跟踪的精度会慢慢下降。因此,在实验过程中每隔五到十分钟重复这两个步骤是有意义的。有一些方法可用于连续重新校准(Tripathi&Guenter,2016)。然而,他们使用了关于受试者观看行为的额外知识,例如由于高度显著的刺激、场景中的移动或由于执行鼠标点击。因此,它们会干扰实验装置,并且仅限于特殊情况。因此,在虚拟现实实验中经常需要重复校准,以抵消耳机可能出现的滑动页面,并确保精确的眼球跟踪数据。
在执行校准或验证程序时,重要的部分是在屏幕空间而不是世界空间中显示固定点。这使得它们与主体的头部一起移动,因此不可能将头部转向周围的目标,以便将其映射到视野中心。
这样可以确保所有目标显示在预期位置,并覆盖整个视野。此外,主要在视野中心进行验证是有意义的,因为外围部分在虚拟现实中的有效分辨率较低(Kreylos,2017)。这有助于主体在虚拟现实环境中把头转向他想看的物体,而不是将眼睛移向远处的偏心位置。因此,确保视野中心凹部分的更高准确性是有意义的。
【结合眼球跟踪和虚拟现实】
为了找出受试者在3D世界中的视线,需要计算从受试者眼睛到其视线方向的3D凝视向量。当使用3D眼睛模型进行瞳孔检测时,眼动跟踪器可以随时确定3D凝视。理论上,通过计算双眼凝视的交点,可以从双眼的发散度计算深度。然而,该计算不精确,仅返回最完美校准的可接受结果(Jansen、Onat和König,2009)。例如,当试图基于视线发散将注视20m距离物体的视线与无限距离进行区分时,并假设眼睛间距离为70mm,则必须通过使用非常小的发散度差(Cos(α)=0.07m/20m=0.0035)来进行判断。α ~ 0.2°). 因此,与眼间距相比,在较大距离处估计相对深度需要一定程度的精度,这是不可行的。由于这一精度很难达到当前眼球跟踪技术的精度,我们必须使用更可靠的方法进行深度计算。研究表明,使用多种特征回归注视深度可以改善结果(Weier、Roth、Hinkenjann和Slusallek,2018b)。
在这里,我们提出了一种更简单的方法,该方法利用了以下事实:在虚拟世界中,所有精确的物体位置都是已知的,并且凝视深度通常在到达表面的地方停止。
在虚拟现实中,我们有一个3D眼睛模型的优势,并且完全了解眼睛和物体之间的距离。这使得可以简单地计算注视点在三维空间中的深度。
假设与眼动跟踪器的不精确性相比,固定对象的空间范围较大,这会产生良好的结果。为了将眼球跟踪数据与虚拟现实环境相结合,我们需要将2D凝视位置转换为虚拟世界中的3D向量。对于这种方法,我们从两只眼睛的2D归一化眼睛位置开始。然后,可以基于头部位置和世界中的旋转,将该2D位置转换为对虚拟世界的3D凝视。从这个3D凝视中,可以通过计算虚拟世界中物体的下一个截面来检索深度信息。在游戏引擎中,计算3D注视向量相对容易。可以对每只眼睛单独进行,也可以使用独眼视力位置。在这种情况下,我们通过计算两只眼睛的平均值来使用后者。
接下来,需要从受试者眼睛的单眼水平和垂直坐标计算注视向量。这必须根据受试者的位置和头部方向进行。由于在虚拟现实中,受试者的头部可以沿三个轴旋转,并在一定半径内移动其位置,因此很难手动计算。这个问题的一个简单解决方案是创建主题的子对象15。该物体的位置将在相对于主体头部的坐标系内变化。该参考对象将根据眼睛的运动和头部的运动在其子坐标系内移动。这意味着,如果玩家向右看,物体就会相对于主体头部的位置和旋转向右移动。
现在,当从头部位置通过虚拟世界坐标系内该参考对象的位置绘制向量时,该向量表示3D中的凝视(见图3)。然后,该向量是主体的注视向量,为了简单起见,也可以对其进行归一化。然后,可以通过从参考点的位置减去头部的位置来简单地获得注视向量。
通过此过程,可以在游戏引擎内将2D凝视坐标转换为3D凝视向量。
【定义感兴趣的区域】
在计算注视向量后,下一步是确定主体是否正在注视特定的对象或感兴趣的区域。到目前为止,凝视向量仅提供方向。为了计算眼睛到被观察对象的距离,需要确定该向量与虚拟世界中的对象之间的交点。
为此,可以使用游戏开发软件(如Unity或Unreal Engine)中的光线投射系统。它的工作方式可以想象为从原点向一个方向发射一束看不见的光线。
然后,这条射线检测何时击中物体,并返回关于击中点和击中物体的信息。在我们的例子中,我们将从受试者的头部位置向注视向量的方向发射一束光线。从这条光线中,可以提取与之相交的第一个物体的信息。
一个应该被射线检测到的物体需要连接一个对撞机。通过这种方式,可以定义感兴趣区域(ROI)。碰撞器的大小和形状也决定了ROI的大小和形状。每当射线在一个ROI周围与碰撞器相交时,我们就会引出附着在碰撞器上的物体的名称和射线的长度,直到击中点(玩家的眼睛到物体的距离)。如果证明有必要在三维环境中设置不标记ROI的碰撞器,而只是为了物理学的目的,不应该用射线投射的方式来记录,我们可以用标签来区分这两种碰撞器。例如,可以为每个投资回报率创建一个标签,然后只记录凝视向量与被标记的碰撞器的交点。然后,从射线投射中提取的信息可以用记录注视向量的相同帧率进行保存。 提取注视向量和第一个碰撞点的交点需要计算能力,可能会减慢VR应用的速度。因此,我们建议在会话结束后进行离线操作,以避免不必要的计算降低VR应用的速度。在这一点上,将那些眼球追踪器给出的数据点分类出来是有意义的。
这些数据点要么是受试者闭着眼睛的时候,要么是眼球追踪器在识别瞳孔时出现问题。只要眼球追踪器的精度足以区分不同深度的典型物体的固定,这种方法就能产生可靠的凝视矢量长度的深度数据。
【
一些注意事项】
不同的软件通常使用不同的坐标系统。将眼球跟踪软件中的数据与3D引擎中的数据相结合,并用另一个软件分析这些数据,这就需要注意这些形式上的差异。通常,x、y和z并不表示程序之间的相同尺寸。在离线分析数据时,也需要考虑这一点。另一个转换问题是,二维平面上的原点可以位于平面的角点或中间。例如,瞳孔实验室使用标准化坐标系,原点0,0位于左下角,1,1位于右上角,而Unity的原点位于平面的中心。为了得到有效的结果,有必要仔细处理不同步骤的参考框架,并在文件中明确说明,以供以后使用。另一个问题是不同应用程序之间的帧速率差异。运行虚拟现实应用程序的游戏引擎的帧速率通常低于眼动跟踪器。3D应用程序中的帧速率也可能因视线中的对象而异。当看到一个非常复杂的物体时,它会突然下降,而当看到一个简单的物体时,它会飙升。增加和稳定帧速率的解决方案正在开发中,例如中心凹的ren-dering(Patney等人,2016),预计很快就会实现。在大型浸入式3D环境中,即使使用强大的硬件,帧速率的下降也是难以避免的。在计划获取详细的热图或其他需要高眼动帧速率的信息时,应考虑这一点。一般来说,很难收集具有一致高帧的数据。如果需要,您应该设计一个非常简单、低多边形的3D场景,没有光线变化或其他影响,以降低计算复杂度,从而确保以高帧速率录制。瞳孔实验室提供时间戳,以在外部以高帧速率记录眼球运动。这使您能够稍后将其与用户在虚拟现实环境中的动作同步。然而,希望在应用程序中保持较高的帧速率,以便稍后与高频瞳孔记录同步。否则,由于同步和帧插值不好,三维注视向量的精度将下降。如果这足以解决广告问题,则以低帧速率记录注视向量可以是确保稳定和完整记录的解决方案。
然而,如果人们对精确定义的注视或眼跳动力学感兴趣,则有必要解决眼睛跟踪的同步和更高采样率问题。一般来说,人们应该始终追求较高且相对恒定的帧速率,使眼球追踪器和VR引擎之间的同步更容易和更准确。
在虚拟现实中,当观看静态2D场景时,固定的定义不如眼睛跟踪过程中定义的好。需要建立一种明确的方法来区分从平滑追踪中的固定或视动性眼球震颤。A clear way to differentiate fixations from smooth pursuit or optokinetic nystagmus needs to be established. 必须记住,对于3D环境中的眼睛跟踪,固定和扫视等既定概念不再像2D屏幕前那样明确定义。然而,最近的研究首次尝试解决这个问题(Steil,Huang,&Bulling,2018)。在规划数据分析时,应考虑这些与2D屏幕上传统眼球跟踪研究的差异。
【作为示例应用的初步研究】
在下一节中,我们将介绍我们在虚拟城市试点研究期间收集的程序和数据。这是我们实验室研究真实世界中房屋和街道空间信息编码的后续研究(König、Goeke、Meilinger和König,2017)。在各自的研究中,受试者执行各种任务,包括拍摄他们家乡的房屋和街道照片,即Osnabrück,作为刺激。然而,受试者对刺激的熟悉程度只能在事后进行主观评估。因此,我们进行了第二轮实验,设计了一个虚拟城市,并对其进行了30分钟的探索。通过这种方式,我们可以控制和监控受试者的探索行为,并客观评估他们对不同刺激的熟悉程度。在提出的初步研究中,我们在虚拟现实中探索城市时,重点关注了受试者的视觉行为。调查受试者在探索虚拟城市时的视线,扩大了可用于了解其导航行为的数据范围。由于空间知识应该随着熟悉度的提高而提高,因此获得关于受试者对测试刺激熟悉度的更客观的测量值非常重要。以下全面研究正在进行中,将另行报告。
试点研究
据报道,调查空间知识获取的研究包含一个30分钟的虚拟现实培训课程,参与者在其中自由探索名为Seahaven的城市。该虚拟城市的设计方式使其最适合原始研究的任务(König等人,2017年)。这意味着它不包括高地标,也不是在常规网格中构建的,即曼哈顿风格。此外,这些房屋展示了各种各样的风格,看起来很容易相互区分,因为它们在整个研究的训练后任务中起到了刺激作用。总的来说,该市由214栋房屋组成,这些房屋分布在复杂的城市布局中。虚拟现实环境还包括移动的太阳,以提供自然照明条件和估计基本方向的方法。在我们的初步研究中,我们记录了31名受试者的数据,其中两人患有运动病,无法完成治疗。在两次会议期间,技术困难导致数据集不完整。因此,这里提供了剩余27名受试者(11名女性,16名男性)的数据,平均年龄为24.2岁。由于这些是初步测量,我们在前10名受试者的测量过程中改变了3D环境的次要方面,以改进设计。这包括添加丢失的对撞机、修复错位的物体或不相交的人行道、重新缩放看起来太大/太小的房屋、重新缩放太阳和玩家的体型。由于这些变化,我们不会将数据作为空间导航的实际结果。然而,由于这些变化的性质较小,我们预计不会对结果产生任何相关影响。在本文中,我们使用我们的数据作为虚拟现实实验的示例,并演示眼睛跟踪数据的使用。我们旨在通过将这些方法应用于一个特定的实验装置来演示这些方法。
【实验课的结构】
在会议开始之前,受试者接受研究介绍并给予书面同意。在解释了虚拟现实的机制和运动病的潜在风险后,将耳机放在受试者的头上,受试者调整瞳孔间距离,校准眼动跟踪器,受试者在小练习区内的虚拟现实中变得适应运动。一旦受试者感到舒适,他或她就会被安置在虚拟现实城市海港,并在镇内自由探索30分钟。在课程结束时,受试者通过转向那个方向主观地估计北方。然后会话终止。接下来是一个简短的任务,我们向受试者展示了位于虚拟现实城市内的50栋房屋的照片。这些房屋是随机挑选的,均匀分布在全市。所有受试者以随机顺序观看相同的50间房屋,并对每张图像的两个陈述进行评分(图5)。第一句话是“我能很好地记得这所房子的景象”,我们称之为熟悉度评级。第二句话是“我相信我能找到回这所房子的路”,我们称之为导航评级。在李克特量表上,评分范围从1分到5分,代表“完全不同意”回答没有时间限制。任务完成后,受试者填写了一份简短的问卷,了解其在虚拟现实中的体验。作为激励,受试者要么获得金钱补偿,要么获得研究项目所需的一个学分。每次会议持续约一小时。
【
设置】
设置
在我们的工作中,我们决定使用HTC Vive头盔,它有两个用于运动跟踪的基站和一个用于在虚拟世界中运动的控制器(图1A,B)。我们的眼球追踪器是Pupil Labs的HMD眼球追踪器(图1C)。该眼球追踪器是专门为HTC Vive设计的,可以很容易地安装在头戴式设备上。我们通过IPC主干网将信息从Unity发送到Pupil Service。我们在Pupil Capture和Unity之间通信的解决方案的代码可以在我们的GitHub存储库中找到16。 图6显示了我们在研究中使用的校准和验证点的分布。为了确保眼球追踪器在整个视野中具有良好的准确性,即在校准点之间的区域也是如此,我们在校准时将固定点显示在与验证时不同的位置。通过这些措施,眼球追踪器的精度有可能经常达到1.5°或更好。在实验过程中,我们只使用总的平均数进行验证,并决定一个受试者是否被校准得足够好(如果平均精度低于2°,则不能进行测量)。事后分析表明,中心点的准确度平均高于周边的点。然而,包括中心点在内的验证平均精度通常仍保持在1.5度以下。
对于软件开发,我们使用Unity。在Unity和MATLAB中进行了数据分析。
【海港中的单元】
重要的是,以直观的方式缩放虚拟城市的所有对象,以便主体对他或她正在探索的虚拟城市有一个自然的印象。由于海港包括来自不同来源的风格和大小不同的各种类型的房屋,我们努力缩放所有模型以达到自然比例。我们对海港中的每件事物都进行了尺寸测量,使现实世界中大约一米的距离类似于一个单位。图7显示了标准大小的块,以直观地显示缩放。玩家看不到的玩家形象大约有两米高(图7B)。
一个单位与一米的近似对应关系稍后可用于解释结果。
【基本变量的记录】
为了提取有关受试者视觉行为的信息,有必要以预定的时间间隔检查基本变量。我们将数据提取放入一个固定帧率的循环中,并将数据与时间戳一起保存。在这个固定的帧速率下,我们可以检查某些信息并加以保存,如注视方向和玩家的位置。
为了客观地评估熟悉程度,我们收集了每个参与者在探索虚拟城市时查看每座房子的时间信息。我们对所看的具体房子和看房子的距离很感兴趣,以便将其与后面的任务表现联系起来。我们在每秒30次的时间里反复检查这种形成,并将结果储存起来供以后分析。用同样的方法,我们还保存了关于被试者的其他信息,如头部方向和位置。
【勘探行为的测量和可视化】
首先,我们有兴趣了解我们的子项目在自由探索虚拟城市期间的位置。
因此,我们通过在地图上显示受试者的行走路径来可视化其导航行为。在图8A中,我们显示了单个主题在30分钟会话中所走过的路径。图8B显示了所有受试者的步行路径,展示了对整个城市的均匀覆盖。图8C显示了城市不同地区的受试者数量,这也揭示了海港的覆盖年龄。因此,我们可以得出结论,在自由探索的30分钟内,大部分虚拟城市都被访问过。
作为第二步,我们想评估在探索期间看了多少房子。记录的眼球追踪数据显示,在30分钟的会议期间,平均看到177.9间房屋,占城市的83%。27名参与者中,平均有22.5人观看了一所特定的房子。超过一半的受试者看到了97%的房屋。总之,我们的结果表明,受试者的房屋分布均匀。
为了计算对一栋房子的熟悉程度,我们调查了一栋房子被看了多长时间。结果表明,平均看一栋房子5.53秒。对观看次数最多和最少的房屋(总居住时间)进行的调查显示,与沿街排成一排的普通房屋相比,更大的房屋综合体和更特别的独立式房屋看起来更长。通过提取每次记录的时间戳,我们获得了一个表示在哪个时间点看到哪个对象的时间线。图9显示了一个受试者的时间线摘录,每个房子的水平时间线堆叠在一起。黄色的方块代表各个房子被观察的时间。人们通常会在一定的时间间隔内对房屋进行观察,其间会有一些短暂的跳跃。作为熟悉度度量,我们使用了从查看房屋的时间线中提取的单个房屋的查看时间。
接下来,我们想可视化受试者在3D环境中的观看行为(图10)。我们使用光线投射技术计算注视向量,并用彩色球体标记虚拟环境中的每个命中点。在此过程中,同时提取观察对象的信息。为了更好地可视化,我们根据受试者观察该特定点的距离(远->近=红色->蓝色)对球体进行了颜色编码。值得注意的是,图10所示的图像与受试者观察标记球体的角度不一致。这意味着,例如,如果你在同一个物体上看到许多不同颜色的球体,如右图10所示,受试者从很远的地方看这个物体,然后走近看它(反之亦然)---------------------所以我们看见的近处是红色,其实对于受试者是远处
。由于球体是在3D模型中可视化的,我们现在可以在这个模型中四处走动,探索主体的视线。因为我们只为每个房子使用少量的盒碰撞器来提高应用程序的性能,所以一些碰撞点并不完全对应于对象的形状。例如,这可以在右侧图片中两个广告面板之间的空白处看到。然而,在3D环境中直接标记视觉点击点提供了一种方便灵活的方式来可视化和调查探索虚拟城市海港的受试者的观看行为。
【
分析眼球跟踪数据与其他变量的关系】
一旦开始分析眼睛跟踪数据与实验期间记录的其他数据的关系,虚拟现实中眼睛跟踪的优势就显而易见。这些数据可能是受试者的位置或旋转、行走速度、在虚拟现实环境中的动作或在虚拟现实内外的任务中的表现或主观评价。在下一节中,我们将以我们的研究为例,介绍一系列广泛的此类分析。
【观看房屋与任务绩效的相关性】
之前的研究(König等人,2017)通过执行空间任务后的主观熟悉度评价来评估刺激物的熟悉度,即奥斯纳布吕克的房屋。
然而,我们不可能客观地评估十个受试者中究竟有多少人去过相应的地点。在VR中,我们可以提取观察特定房屋的总时间作为客观的熟悉度测量,并将其与主观的熟悉度测量联系起来。因此,在我们的试验研究中,受试者必须回答一个熟悉度问题("我可以很好地记住这个房子的样子")。答案的范围从1到5,1代表 "完全不同意",5代表 "非常同意"。所有分项的平均评分是2.81。观看时间和主观熟悉度评分之间的相关性为0.293。用同样的程序,我们计算了对有关空间导航问题("我有信心能找到回这个房子的路")的回答的平均数。在这里,受试者的总平均值为2.46。导航评分和观看时间之间的相关性为0.316。图11显示了每个房子和子项目的观看时间的分布,以及对它的熟悉程度的评价。总体结果支持我们的预期,即一个房子的主观熟悉度评分随着看房子的时间增加而增加。然而,这种关系比我们预期的要低。
(不咋高啊 就是熟悉度不咋高啊!!! )
接下来,我们调查了看房子的距离是否对被试对房子的熟悉程度有任何影响(图12)。我们没有发现熟悉度和房子的观看距离之间有很强的关系(相关度为-0.047)。另外,对于导航评级来说,也找不到与平均观看距离的相关性(相关性为-0.056)。看房子的距离的变化似乎也不影响评分。
【观察点的空间分布】NONONONONONONONONONONONNONO
观察点的空间分布
VR设置允许确定观察点的全三维分布17。在大多数的实验室实验中,使用的是二维的视觉刺激或固定位置在二维平面上的投影。相反,在VR中,我们有真正的三维信息可用,并可以使用三维热图构建观察点的三维分布,以可视化凝视运动。在收集眼动跟踪数据后生成二维热图以确定空间偏差是现在的普遍做法。使用VR,我们现在也可以看一下三维空间中的偏差,增加与二维平面的距离。受试者观察物体的距离将是我们三维热图的第三个维度,可以进一步了解三维环境的视觉覆盖。
图13显示了一个单一主体的三维空间分布的例子。为了在小距离上有更高的分辨率,我们把注视点的分布绘制成距离的自然对数的函数。大约ln(160)≈5.0的距离值代表了我们虚拟世界中的远剪平面,这是主体能看到的最远距离。显示在剪裁平面后面的点的平面代表没有击中任何物体的注视,例如,注视天空。图中显示,受试者最常直视的中等距离约为23个单位(约23米)。
这个三维热图包括观看者的属性以及环境的属性。具体来说,用户和房屋之间的距离统计可能发挥了作用。为了调整环境的属性,我们使用了两种不同的随机化方法。首先,我们对原始注视向量进行洗牌,并将其随机分配到用户的记录位置。这意味着会话开始时的凝视向量可以用于会话结束时访问的一个位置(以头为中心的坐标),并在不同的距离上击中不同的物体。由此产生的热图看起来与原始热图相似,最大密度为ln(14)=2.6。在水平和垂直维度上,数据点是相同的,因为我们使用的是这个子项目的原始注视向量。洗牌给各个点在距离轴上分配了新的值。当从原始热图中减去随机数据时,我们可以看到,原始命中点在更远距离上的点的密度高于洗牌后的凝视所产生的命中点(图14)。这表明受试者系统地看了更远的物体。请注意,这与在经典实验室条件下用3D显示器显示的静态图像得到的结果相反(Jansen等人,2009)。这强调了在自然条件下调查行为的重要性。
在第二个对照中,我们随机创建了具有平坦概率函数的新注视向量,并将其应用于被试的记录位置。当你看距离轴时,你会看到一个曲线状的图案和一个在最远距离的平面(图13,底部)。远处剪裁平面上的点的积累代表了所有进入天空或远处物体不再出现在显示屏上的凝视。曲线形状的图案直观地显示了落到地面上的目光。凝视越往下走,它就越早到达地面,因此在热图中显示的距离越短。它看起来与根据原始凝视矢量创建的热图非常不同,并且更多反映了三维世界的属性。这表明,没有任何随机化的原始热图显示的是实际的观看行为,而不仅仅是环境的产物。
【二维凝视可视化与分析】
在观察许多虚拟现实会话时出现的一个问题是,当受试者转动头部时,他的注视是否不同。有多种方法可以根据其他感兴趣的参数观察物体的2D凝视。在我们的案例中,我们对眼球运动感兴趣,眼球运动与虚拟环境中的不同身体运动相关。为此,我们将记录的眼睛位置分为三组:右转超过20度的10帧时间窗口中的眼睛位置,左转超过20度的10帧时间窗口中的眼睛位置,以及所有其他帧中受试者旋转变化不超过20度的眼睛位置。在绘制这三个类别时,我们看到左转和右转通常伴随着各自方向的凝视(图15)。因此,对于这些头部或身体的大转角,协同探索性眼球运动主导着补偿性稳定眼球运动(Einhäuser等人,2009)。
此外,我们检查了行走时的眼动与站立时的眼动(图16A,B)。图16A表明,站立时的凝视(橙色)中心浓度高于行走时的凝视。当站在热图上从凝视中减去行走时的凝视时,可以看到同样的情况(图16B)。这表明,在给定的实验条件下,受试者在行走时对环境有更强烈的视觉探索。然而,这也可能是受试者在虚拟世界中导航方式的副作用。由于受试者的行走方向由头戴式耳机的方向决定,因此行走过程中头部的移动会使其难以朝所需方向行走。这可能会使受试者在行走时更多地向周围移动眼球,而不是移动头部。站立时,受试者可以简单地将头部四处移动,并更多地注视HMD屏幕的中心。
【讨论】
在本文中,我们描述并讨论了一种在虚拟环境中轻松跟踪眼球运动的方法。这是通过使用基本几何计算来实现的,即首先从2D瞳孔位置构建3D凝视向量,然后将该向量与3D世界中的对象相交。我们还提出了可以应用于记录数据的分析建议,以及技术实现的一些细节和可能的问题来源。现在,我们将对这项技术进行更深入的讨论,特别是它带来的局限性和可能性。
【虚拟现实的局限性和可能性】
在虚拟现实城市的发展和后续的试点研究中,我们得出结论,虚拟现实是一个非常强大的研究工具。它提供了大量有价值的数据,同时很好地模拟了真实世界,使主体能够相对自由地移动。虚拟环境比通常的实验室环境更接近自然条件,并且比在真实世界中进行的研究更易于控制。这使得它成为探索空间导航和许多其他领域的广泛问题的非常有价值的工具。以合理的精度跟踪受试者的身体运动和眼球运动的选项为研究者提供了有关受试者在虚拟环境中行为的大量信息。它可以分析受试者的行为与其所观察的内容的关系,以及分析受试者的行为与其所观察的位置的关系。以如此精确和简单的方式研究身体运动和凝视运动的相互作用的可能性为回答许多新问题提供了可能性。此外,3D热图的创建也证明了这一研究观看行为的宝贵工具。在提出研究或构建新假设时,将3D模型内的注视模式可视化的可能性也可以是一个有用的工具。有更多的方法可以将虚拟现实和眼球跟踪结合起来,发挥你的优势。我们看到了这项新技术的巨大潜力,以及促进未来研究的许多机会。
然而,这些优势伴随着挫折而来。目前的主要问题是人们在虚拟现实中体验运动病的趋势。在我们的研究中,在问卷调查中报告的31名受试者中,有12名受试者在运动过程中因运动病而感到轻微不适。此外,由于这个原因,两名参与者不得不中断培训。只有6名参与者在问卷调查中表示,他们通常在汽车或其他车辆中出现运动障碍。受试者中运动病的发病率很高,因此很难进行任何持续时间超过30分钟的实验,并导致许多参与者在一次会议期间不得不停止。运动病也会阻止受试者完全参与探索(或任何其他任务),因为他们的注意力将集中在控制头晕或恶心。此外,运动病会导致适应的导航行为,这意味着,例如,行走速度较慢、行走时不转头、停下来环顾四周或长时间只看一个物体来对抗运动病。患有运动病的受试者的所有这些适应性阻碍了我们分析其自然导航行为的能力。
这个问题的一个潜在解决方案是将会话分割为较短的时间跨度。例如,三次10分钟的训练,中间有两次休息,而不是一次30分钟的训练。另一种解决方法是找到一种更自然的方式在虚拟环境中移动。这将同时解决两个问题。这将减少运动病,使模拟条件更接近自然条件。为了在探索我们的虚拟城市时进行连续运动,受试者坐在可旋转的椅子上,只通过拇指操作控制器并旋转椅子来影响他们的运动。这与自然运动不同,也不清楚它在多大程度上影响导航行为。例如,它可以使人侧身和向后行走,这是一种不常见的现象。此外,行走方向受头部方向的影响,朝一个方向移动,而朝另一个方向看需要一些训练和协调。然而,目前很难找到一种更自然的方式在虚拟现实中移动,这不会引起运动病。对于许多研究问题来说,在像远程搬运这样的游戏中使用的解决方案是不可行的。
另一个可能的帮助是给受试者一个积极的任务,这可以分散他们对晕车的注意力。这是一些受试者的建议,他们报告说,没有任务时,他们有很多时间来关注自己的感觉,并注意到晕车比他们在执行任务时预期的更容易。然而,很难找到一个不干扰实验主要目的的好任务。由于每个任务都会影响主题的导航行为,因此将其添加到会话设置中是有问题的。另一方面,自然导航行为通常由任务或目标驱动,因此通过在分析中考虑精心设计的任务的影响,这也可能是一种可能的解决方案。
总的来说,在虚拟现实中设计实验时应该考虑这些缺点。一些研究问题可能需要重新制定或使用不同的方法回答。然而,在许多应用程序中,虚拟现实是一个强大的工具,用于收集以前极难评估的各种主题的信息。随着虚拟现实领域当前发展的步伐、计算能力的提高和更高效的算法,我们期望在不久的将来能够解决其中许多问题。
【人眼跟踪在虚拟现实中的应用】
虚拟现实中的眼睛跟踪是一个很好的解决方案,它结合了经典实验室设置、固定监视器屏幕和真实世界的优点。本文向您介绍了一种在任何虚拟现实设置中实现眼睛跟踪的方法,该方法定义了感兴趣的对象,并收集了有关观察对象的时间、观察者到对象的距离以及他观察的确切点的数据。通过三维可视化,您可以了解哪些对象以及对象的哪些部分被看得最多。
当然,也有一些小缺点。一个缺点是受试者戴眼镜不能总是参与虚拟现实实验。另一个因素是需要校准和验证眼动跟踪器,这需要额外的时间,并且可能会在更长的时间内造成破坏。此外,在校准后,参与者不能再移动头戴式耳机,这就是为什么你需要在课程开始时确保它舒适地坐在脸上的原因。VR中的快速移动可能会导致耳机在脸上移动,应避免。在分析过程中,一些眼睛比其他眼睛更容易被跟踪可能是一个问题(通常明亮的眼睛比黑暗的眼睛好)。由于我们只记录置信度高于0.5的注视点,因此一些受试者比其他受试者有更多的注视点需要分析。
【虚拟现实中行为与真实世界行为的可比性】
在考虑了上述所有因素后,剩下一个问题:我们在虚拟现实中观察到的行为在多大程度上与现实世界中的实际行为相对应?换句话说,我们可以将我们在虚拟现实中获得的结果概括为正常的人类(观看)行为吗?与正常屏幕上的实验相比,真实世界的相似性有所提高,通常是在头部固定的情况下,这似乎证明了使用虚拟现实的合理性。然而,在解释我们的结果时,我们需要记住一些差异。
首先,与外部部件相比,屏幕中央的有效分辨率更高(Kreylos,2017)。这会影响头部和眼睛移动之间的关系,因为受试者需要移动头部才能在虚拟现实中以高分辨率看到感兴趣的对象。当前头盔显示器的视野相当有限,这也可能导致这种效果。
关于观看行为,真实世界和虚拟世界之间的主要区别之一是趋同冲突。由于两个屏幕到眼睛的距离总是相同的,我们的透镜不需要转移焦点来观察不同深度的物体。由于所有信息都是在单个焦平面上提供的,而不是像在现实世界中那样从多个焦平面获取,因此传递的深度信息也较少。缺乏像模糊这样的景深线索会导致对物体大小的不同感知(Eggleston等人,1996)。目前,在虚拟现实中有几种解决方案正在开发中,包括光场显示(Lanman和Luebke,2013)或通过眼睛跟踪实现边缘模糊(Parkin,2016;Weier等人,2018a)。然而,我们必须考虑,类似的限制适用于典型的监视器设置,即,这不是一个特定于虚拟现实的问题。尽管如此,虚拟世界对主体的不同呈现仍应予以考虑,因为它可能会影响视觉行为。
在更大的虚拟环境中自然行走是很难实现的,因为它需要全方位的跑步机,目前正在开发18,但在消费者市场上仍然很难买到,而且价格昂贵。另一种解决方案可能是安装一个与虚拟环境一样大的跟踪区域,但这需要很大的空间和一个电缆解决方案,如VR背包19或无线信息传输20。这些地区正在进行大量开发,这就是为什么我们期望在不久的将来出现新的、价格合理的解决方案。
涉及与物体交互的实验可能需要手跟踪系统,而不是使用控制器。有一些可用的解决方案涉及使用红外摄像机21或使用手套22的系统进行手部跟踪,这也可以提供一些力反馈23。
这些与现实世界的差异是否会影响结果,在很大程度上取决于研究问题,但在设计实验和评估结果时,应考虑所有这些差异。
【结论】
总的来说,眼球跟踪是研究虚拟现实中各种问题的非常有用的工具。它工作准确,使用本文提出的方法,您可以轻松地将眼睛注视与虚拟环境中的不同对象匹配。模拟各种环境并控制其各个方面的可能性在研究中具有很高的价值,应在未来进一步开发。另一方面,虚拟现实在自然运动和运动病方面给实验者带来了一些挑战,目前尚未找到完美的解决方案。虽然由于虚拟现实技术领域的快速变化,我们预计这些问题的解决方案将很快被发现。最后,在我们的研究中,使用虚拟现实的可能性大于缺点,这为分析受试者在虚拟现实城市中的行为开辟了许多新的机会。总之,我们相信虚拟现实中的眼睛跟踪具有巨大的研究潜力,可以在回答有关人类认知和行为的进一步问题方面发挥巨大作用。我们希望通过本文激发一些新的想法,并在未来进一步利用这项技术的优势。
通过 Android 眼睛检测和 OpenCV 跟踪在 android 中睁眼和闭眼
【中文标题】通过 Android 眼睛检测和 OpenCV 跟踪在 android 中睁眼和闭眼【英文标题】:open eye and closed eye in android by Android eye detection and tracking with OpenCV 【发布时间】:2015-05-02 18:23:01 【问题描述】:我通过此链接link 进行了应用程序眼睛检测,它可以工作 我如何检测眼睛是睁着还是闭着? android中是否有库来检测关闭或打开
【问题讨论】:
Opencv - detecting whether the eye is closed or open的可能重复 新的Android Face API支持检测“睁眼”和“微笑”:developers.google.com/vision 【参考方案1】:我不知道是否有任何库,但使用Aleksandra Królak and Paweł Strumiłło
的文章Eye-blink detection system for human–computer interaction
中描述的技术(你可以下载它hereand here,这里是一些simplified version)在我的意见是一个不错的选择。一般来说,这种技术非常简单:
-
找到一只眼睛(或两只眼睛)。记住这部分图像作为模板。
在下一帧中使用某种关联(作者使用标准化互相关方法,但您可以尝试使用其他类型 - OpenCV has few types of correlation methods implemented)来查找与您的模板相似的区域。具有最高相关值(最有可能)的地方将是眼睛。
如果相关值 > some_threshold_value 而不是眼睛是打开的,否则它是关闭的。
作者使用的阈值在文章中,但是当我使用这种技术时,我使用了其他值,因此很可能您需要自己为您的案例找到价值。
【讨论】:
以上是关于虚拟现实中的眼睛跟踪的主要内容,如果未能解决你的问题,请参考以下文章
国科大人工智能学院《计算机视觉》课 —运动视觉—视觉跟踪(目标跟踪视觉定位)
国科大人工智能学院《计算机视觉》课 —运动视觉—视觉跟踪(目标跟踪视觉定位)
国科大人工智能学院《计算机视觉》课 —运动视觉—视觉跟踪(目标跟踪视觉定位)