问题标签 [eye-tracking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
152 浏览

matlab - 多元隐马尔可夫模型实现问题

我必须对来自眼动仪的信号进行分类。我有一个向量表示给定时间的眼睛速度。这个想法是,当速度低时,它很可能是注视,而当速度高时,它是扫视。每个点都依赖于上一个以来。这导致使用多元隐马尔可夫模型 (HMM) 来分类是否是扫视。该模型是这样的两态系统。我总共要学习 8 个参数,每个高斯的均值和方差,以及每个状态的两个转换概率。为了估计参数,我将 MATLAB 与工具箱 PMTK3 一起使用。我还没有找到其他允许使用高斯 HMM 的 MATLAB 工具箱。我的代码如下所示:

据我了解,prior.k 是它应该找到多少个集群,应该是两个集群:扫视和注视。当我运行它时它会输出此错误消息:

当我尝试运行示例代码时,它可以工作,但我似乎无法弄清楚原因:

请向我解释我对 HMM 的误解是什么

0 投票
0 回答
648 浏览

unity3d - 使用瞳孔实验室 hmd 包创建热图

我的目标是生成和导出球形视频或静止图像,其中包含从凝视位置生成的热图。我使用 htc vive、unity 软件和瞳孔硬件 ( https://pupil-labs.com/vr-ar/ )

这些是解释如何执行此操作的站点:

https://github.com/pupil-labs/hmd-eyes

https://github.com/pupil-labs/hmd-eyes/blob/master/Developer.md

所以,我下载了包学生.import.package.vr.v 0.61.unitypackagehttps://github.com/pupil-labs/hmd-eyes/releases/tag/v0.61
我统一导入它,所以我有三个文件夹学生插件,市场场景演示和流资产(从源代码导入,我在包内找不到,需要录制视频)。

为了了解这个包是如何工作的,在我在Unity上制作我的项目之前,我使用包中给出的场景演示来制作热图:热图演示和带有热图的市场。

首先,我按照开发者页面中的描述设置建筑设置,并在场景构建中插入热图演示场景和带有热图场景的市场。

之后,我在统一的层次结构中加载了热图演示场景,并更改了学生凝视跟踪器(在学生管理器内部)中的记录路径。

最后,我构建了一个exe。

我播放了 exe,它成功地与瞳孔捕捉建立了联系,我可以进行成功的校准,然后我可以录制视频后按 h 来获取我正在看的地方。

当我播放录制的视频时,我只看到 3d 并且看不到覆盖的热图​​。

控制台中没有任何错误。

我还尝试将热图脚本中的模式更改为突出显示,但是当我播放视频时,我看到一个白色视频。

你可以帮帮我吗?

0 投票
2 回答
76 浏览

c# - 测量一个人注视多个物体的时间

我正在尝试创建一个 UWP 应用程序来衡量一个人注视多个对象的时间。大约有 300 个对象,它们都需要测量时间并将其显示在文本文件中。我已经成功地为一个对象编写了这个代码,但我不知道我如何能够用多个对象来做到这一点。我看到了这篇文章如何更有效地在 C# 中创建 300 个秒表?这个问题的答案对我帮助很大,但是我的代码不能很好地实现代码。所以我喜欢创建一个对象列表的想法,然后当人注视对象 [o] 时,相应的秒表将在眼睛进入对象时启动,并在眼睛离开对象时停止。问题正如我已经提到的,该解决方案不适用于我正在使用的代码。这是我使用的仅适用于一个元素的代码。

“GazeBlock”是在 XAML 文件中创建的第一个对象的名称。长话短说,我想实现这个解决方案:

但我不知道如何将这两个“合并”在一起,因此该解决方案不仅适用于一个对象,而且适用于大约 300 个对象。如果有人知道如何帮助我完成这项工作,谢谢!

文森特

0 投票
1 回答
385 浏览

r - 眼动数据R包扫视分析中的问题

我得到了 x/y 坐标和时间戳形式的眼动追踪凝视数据。

现在我想使用 R 包 saccades 绘制 saccades。不幸的是,它不起作用。我想这是数据格式错误的问题。

我的数据:

不起作用的代码:

detect.fixations(EUFKDCDL_Q09AS_saccades) 中的错误:未检测到扫视。出问题了。

应该根据 github ( https://github.com/tmalsburg/saccades ) 工作的完整代码:

所以我猜我的数据结构一定有问题吗?是什么意思?

我希望你们中的任何人都可以帮助我创建这个扫视图,如所附的截图所示

扫视图

我是 R 初学者。

0 投票
1 回答
2109 浏览

swift - ARKit 中的 FaceTracking – 如何在屏幕上显示“lookAtPoint”

ARFaceTrackingConfigurationARKit将ARFaceAnchor面部的位置和方向信息放置到场景中。其中,这个锚点具有lookAtPoint我感兴趣的属性。我知道这个向量是相对于人脸的。如何在屏幕上为该位置绘制一个点,这意味着如何转换该点的坐标?

0 投票
1 回答
1044 浏览

r - 错误:对于瞳孔数据,替换有 1810947 行,数据有 1810956(每次相同)

我在 R(数据)中有一个大型数据框,由 23 个 .gazedata 文件(每个主题一个)组成:

创建因子和时间变量后,我根据眼动仪收集的默认有效性参数创建瞳孔变量:

现在,我需要创建一个插值瞳孔变量 (pupil_inter) 来将值插值到最大间隙 4:

但是,会出现以下错误:

这些行金额每次都完全相同。

至关重要的是,如果我从预处理中排除主题 22 和 23 .gazedata 文件,后一个代码可以工作并且没有错误

我已尝试确定现有的“替换有 [x] 行,数据有 [y]”问题以帮助解决我的具体问题,但找不到相关的解决方案。所有 .gazedata 文件都是使用相同的硬件和软件收集的。

即使首先使用以下代码成功地创建了一个 null 瞳孔间变量,该错误仍然存​​在:

提前感谢您提供的任何建议。

0 投票
1 回答
202 浏览

c# - 每次在统一 3D 中启用脚本时创建一个新的 CSV 文件

我使用 VR 在 Unity 中创建了一个场景,我想跟踪用户的位置并将其保存到 CSV 文件中。因为我只想要某些任务的位置,所以我不想为整个场景运行脚本。因此创建了一个脚本,通过按钮上的简单 OnClick 事件启用和禁用脚本。

所以我创建了一个脚本,通过按钮上的简单 OnClick 事件启用和禁用脚本。我遇到的问题是,每次我禁用脚本并再次启用它时,都不会创建另一个 csv 文件。

这是我的代码:

所以我已经发现问题出在启动函数中。因为它在场景运行时只被调用一次,所以我的文件只会被创建一次。但实际上我不知道如何解决这个问题,因为我不知道如何拥有一个在每次再次启用脚本时创建一个 csv 文件的函数。

如果有人可以帮助我,我将不胜感激。

0 投票
1 回答
246 浏览

calibration - 眼动追踪校准如何帮助注视估计?

我被要求为眼动追踪算法创建校准。但是,我仍然不太了解校准如何有助于使我们的注视估计更准确,以及眼动追踪中的校准如何实际工作。我已阅读https://www.tobiidynavox.com/support-training/eye-tracker-calibration/以及https://developer.tobii.com/community/forums/topic/explain-calibration/,但我还是不完全明白。如果有人可以向我解释,我将不胜感激。

谢谢

0 投票
1 回答
161 浏览

c# - 设置参考号并将其与文本文件中的其他数据进行比较

该项目基于眼动仪。让我简要介绍一下项目背后的想法,以更好地理解我的问题。

我有 Tobii C 眼动仪的硬件。这个眼动仪将能够给出我正在看的地方的 X、Y 坐标。但是这个设备非常敏感。当我看 1 个点时,眼动仪会发出许多不同的坐标数据,但在± 100我发现的范围内。即使你盯着 1 个点,你的眼睛也会不停地移动,因此会给出很多数据。然后将这些数据(浮点数)保存在一个文本文件中。现在我只需要 1 个数据(X 坐标),它表示我正在盯着的 1 个点,而不是在该± 100范围内的许多数据并将其移动到新的文本文件。

我不知道我应该如何编写代码来做到这一点。

这些是float文本文件中的数字。

当我盯着点 1 时,数据是200-300,在± 100范围内。我想将200作为参考点设置为用下一个数字减去自身,并检查结果值是否在 内100,如果是,则删除它们。参考点应继续对以下数字执行此操作,直到超出± 100范围。一旦超出100范围,现在数字是310,那么现在这个数字是下一个参考点,做同样的事情并用下面的数字减去并检查结果值是否在 内100。一旦超出100范围,下一个数字是500,现在,这是新的参考点,并且做同样的事情。那是我的目标。简而言之,应该将参考点移动到一个新文件中。

到目前为止,这是我的代码,它获取注视坐标并将它们存储在文本文件中。

现在我的问题是如何编写代码来读取文本文件并设置参考号并用下一个数字减去自身并检查结果值是否在范围内100,如果超出± 100范围则有新的参考号。然后将这些参考编号存储在一个新的文本文件中。

0 投票
0 回答
67 浏览

unity3d - 如何根据头部位置、旋转、注视原点和方向找到用户在 Unity 场景中的位置?

我有一个播放 360 度视频的 Unity 场景。用户使用带有集成 Tobii 眼动追踪器的 HTC Vive HMD 观看 360 度视频。我正在使用 Tobii 预制件将原始数据和 Unity 数据保存到 XML 文件中。XML 文件具有头部位置、旋转、注视位置、方向等参数和值。我如何使用这些来找到佩戴 HMD 的用户正在查看场景的位置?

我使用了左右眼的注视方向值,并使用 matplotlib 绘制了这些值。但是,我无法解释特定条件下的情节,例如当佩戴 HMD 的用户转身观看 360 度视频的一部分时。