记录和导出注视数据
一旦启用了眼动追踪并为任务配置(见 在任务中设置眼动追踪),您需要事件来实际捕捉作为记录变量的注视数据。
自动事件设置
当您在任务编辑器中选中 Enable Eye-Tracking: 时,会出现一个“眼动追踪设置”对话框,提供为您创建这些事件的选项:
![]()
Record gaze timeseries [X,Y,T,C]: 创建一个注视记录事件,默认选中Record fixation timeseries [X,Y,Dur,Start,End,Disp]: 创建一个注视固定记录事件,默认选中。如果您任务的注视检测模式设置为No Fixation Detection,接受此选项会自动启用。
您还可以选择范围:On all frames(默认)适用于整个试验中的每一帧,而 Select a frame 限制在一个特定的帧上。单击 Add Events 将按照这些选择创建事件;Skip 会关闭对话框而不创建任何内容。
这涵盖了常见情况:记录整个试验中的每一次注视和注视样本。如果您跳过了此对话框,需限制记录到特定的刺激物体(见下文),或将眼动追踪事件添加到已经存在的任务中,则请手动构建事件。
手动记录注视坐标
要记录注视坐标的时间序列:
- 从事件编辑器中添加一个新事件。
- 对于触发器,选择
Physiological Signal Triggers→Eyetracking Gaze。 - 对于动作,选择
Variable Actions→Set / Record Variable,然后创建一个新变量:- 格式:
Array(推荐,以便可以一起存储一对 X/Y 坐标) - 记录类型:
All changes / time series,这样每次注视更新都会被记录,而不仅仅是在试验结束时的最终值
- 格式:
- 在值选择菜单中,从
Trigger (Eyetracking Gaze)选项中选择Coord. + Time + Confidence [X,Y,T,C] Array。这会在一个数组中记录 X 和 Y 坐标、精确的时间戳和置信度值。
还有一个 Eyetracking Fixation 触发器,利用在任务设置中配置的注视检测模式报告参与者的注视(他们的目光停留的地方,而不是每个单独的注视样本)。目前处于测试阶段。
限制记录到特定刺激物体
Eyetracking Gaze 和 Eyetracking Fixation 触发器都可以限制仅在参与者注视特定刺激物体时触发,而不是任何帧上的任何位置。为此,选择仅在特定元素上触发的选项,然后将这些元素作为目标添加。当您只关心参与者是否观看特定图像或区域,而不关心他们在其他地方的注视位置时,这非常有用。
记录校准和试验误差
除了注视坐标外,您还可以记录特定参与者的眼动追踪精确度:
- 添加另一个事件,以
On Frame Start作为触发器。 - 对于动作,选择
Variable Actions→Set / Record Variable。 - 在值选择菜单中,在
Frame/Task/Object→Eyetracking下,选择Error Trial以记录当前试验的误差,或选择Error Calibration以记录原始校准的误差。
两个误差值都是预计注视坐标与校准或试验期间显示的实际目标注视位置之间的均值欧几里得距离,以帧单位表示。记录两者使您可以在分析期间排除低于准确度阈值的参与者或特定试验。
导出注视数据
导航到 Dataview & Export 标签以访问您的记录数据。有两种类型的导出:
- 正常数据:每个试验记录一次,例如响应、条件和校准/试验误差(如果您选择记录它们)。每个变量是自己的列,每个试验是自己的行。
- 时间序列数据:在试验中持续记录,这就是注视坐标使用的,因为它们每秒更新多次。每一行表示一个注视样本,旁边有一个独立的
times列,所有时间序列变量共享。
![]()
X: 注视的 X 坐标; Y: 注视的 Y 坐标; T: 时间戳; C: 置信区间
处理这些列时有几点需要记住:
- 基于
T而不是单独的times列来进行时间测量。T是相机实际捕获图像的调整时间戳,而times反映的是Labvanced记录值的时间,这稍微滞后于实际捕获时刻,因为算法需要几毫秒来处理每个快照。 C的范围是从 0 到 1。接近 1 的值表示置信度高;接近 0 的值通常表示眨眼或参与者的眼睛没有对准相机。- 采样率并不是完全恒定的,可以从
T中确定。一般来说,由于大多数商业可用网络摄像头的硬件限制,30Hz以上的采样率是无法实现的。
Labvanced的 GitHub 存储库 提供了用于进一步处理导出的眼动追踪和WebSocket数据的脚本。