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