记录和导出注视数据
一旦在任务中启用并配置了眼动追踪(请参见 在任务中设置眼动追踪),您需要能够实际捕捉到注视数据的事件,以记录变量。
自动事件设置
当您在任务编辑器中勾选 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 数据的脚本。