基于python 自写Tobii VI-T滤波器

本文介绍了Tobii I-VT滤波器的基本操作流程,包括缺失数据内插、眼动选择、降噪处理、速度计算、分类以及相邻注视点合并。详细解析了每个步骤的关键参数和作用,如线性内插、非加权移动平均滤波、视角速度计算等。同时,讨论了阈值设置和Python代码实现中遇到的问题及改进策略。

官网参考文档

Tobii的默认注视点滤波器是I-VT,官方给出了参考文档《The Tobii I-VT Fixation Filter》。今天学习了一下,这里做个笔记。
主要看第三小节“The Tobii Studio implementation of the Tobii I-VT filter”的内容,简单概述I-VT滤波器的基本操作流程:内插fixations=>眼动位置确定=>降噪处理=>速度计算=>分类=>临近注视区合并。
整个流程的关键参数就在下面这张图中,下面分别介绍具体操作流程:
在这里插入图片描述

Gap fill-in interpolation

主要目的是将一些missing的fixations通过内插的方式填补上,关键的参数‘Max gap length’。为避免将一些由于被试眨眼,转头和遮挡等非采取误差导致数据填补,系统默认设置Max gap length小于正常眨眼的时间,一般为75mm。(通常2~6秒就要眨眼一次,每次眨眼要用0.2~0.4秒钟时间
对于数据的填补就是简单线性内插即可。
在这里插入图片描述

Eye selection

相对很好理解,由于采集的两只眼的眼动信息,需要选取以哪只眼的fixations位置为准。可选择的有左右眼,以及平均。我们选择avarage就好,即两只眼都采集到数据时去两者位置的平均,只有一只眼时只取一只眼的数据。

Noise reduction

Tobii采用的non-weighted moving-average filter,也是一个很好理解的滤波方式,即连续取某一个时刻前N和后N个样本点,取平均位置。

y [ n ] = 1 2 ∗ N + 1 ∑ k = − N N x [ n − k ] y[n]=\frac{1}{2 * N+1} \sum_{k=-N}^{N} x[n-k] y[n]=2N+11k=NNx[nk]
显然样本点的个数将直接影响fixations的位置曲线,样本点越多曲线越平滑,对应的眼动速度也越低。这样操作虽然能消除噪音的影响也会对影响数据准确度,所以需要合适选取数据。
采样时间间隔乘以N需要远小于眼跳的时间间隔。
在这里插入图片描述
相比均值降噪,中位数降噪能减少对过度区域的过平滑操作。
在这里插入图片描述

Velocity calculator

为方便分类阈值的设定,这里眼动速度一般采用视角,桌面式的眼动仪器因为知道被试与刺激物的纵向距离,视角便可以方便计算得到。
在这里插入图片描述
视角速度的计算就是两个注视点的距离除以一个时间间隔,其中window length需要进行合理设置,经验选取20ms可以有效降噪且避免打乱数据。

v t 1 t 2 = ∣ s t 1 − s t 2 ∣ ∣ t 1 − t 2 ∣ v_{t_{1} t_{2}}=\frac{\left|s_{t_{1}}-s_{t_{2}}\right|}{\left|t_{1}-t_{2}\right|} vt1t2=t1t2st1st2

I-VT classifier

接下来就是根据velocity threshold对注视点进行分类了,默认设置为30°/s。但是根据数据的信噪比,需要合理调整阈值。每秒的眼跳次数为2-5次,眼跳持续时间10-100ms,一次注视的时间约200-500ms,可据此检验阈值设置的可靠性。比如下图左侧,噪声较多,阈值需要设置大一些,右侧噪声少,阈值设当设置小一些。
在这里插入图片描述

Merge adjacent fixations

对于临近的注视点处理,主要基于三个参数:
max time between fixations: 75ms(大约75超过眼跳,应该时眨眼等行为)
max angle between fixations: 0.5°(小于这个数值,合并)
merge adjacent fixations: 60ms (小于一次注视的时长合并)
意思都很好理解了,提出的机理是根据文献中人的行为特点决定的,比如最后一个参数注视时长是人视觉观察物体,并提取关键信息所必须的最短时长。
至此便完成了对眼动数据的滤波处理。

官方文档

https://www.tobiipro.com/learn-and-support/learn/

<think> 首先,用户的问题是关于Tobii X3-120屏幕式眼动仪的数据分析方法和相关技术。用户引用了参考内容,所以我需要基于这些引用和我之前的回答来构建响应。 回顾引用: - 引用[1]:描述了使用Tobii X3眼动仪(采样率120 Hz,精度0.4°)作为心理生理工具的一部分,用于评估Sencogi视觉复杂度模型。提到了数据表示方法,如人类视觉注视用高斯模糊创建热图,以及Sencogi的宏观块表示。 - 引用[2]:讨论了在高中数学学习中眼动数据的应用,包括注视点、注视时长、眼跳次数等,强调数据量大需要高效处理。 - 引用[3]:提到了通过眼动数据探究APP界面的认知效果,使用ErgoLAB平台记录交互行为。 用户的具体查询是关于Tobii X3-120屏幕式眼动仪的数据分析。Tobii X3是一个特定的眼动仪型号,属于屏幕式眼动仪(screen-based),意味着它固定在屏幕上,不像头戴式那样移动。 我的回答需要: - 使用中文(根据系统指令)。 - 结构清晰,帮助用户逐步解决问题。 - 确保真实可靠:基于引用和我的一般知识(作为AI,我有知识库)。 - 遵循LaTeX格式:行内数学表达式用$...$,独立公式用$$...$$。 - 生成相关问题(在末尾)。 - 在回答中引用的段落末尾自然地添加引用标识,如[^1]。 关键点从引用中提取: - 眼动仪参数:Tobii X3,120 Hz采样率,0.4°精度。 - 数据分析方法:注视点、注视时长、眼跳次数(从引用[2])。 - 数据表示:热图(引用[1])。 - 应用场景:评估视觉复杂度(引用[1])、在线学习(引用[2])、APP界面设计(引用[3])。 一般知识(补充): - Tobii X3眼动仪用于眼动追踪,输出数据如瞳孔位置、注视点序列。 - 数据分析方法包括: - 预处理:过滤噪声、校准。 - 特征提取:注视点检测(例如,使用I-VT或I-DT算法)、眼跳、眨眼检测。 - 可视化:热图、扫描路径。 - 统计分析:相关分析、机器学习建模。 - 技术:使用Python或专门的软件如Tobii Pro Lab进行数据分析。 结构化回答: 1. **介绍Tobii X3-120眼动仪**:简要描述其特性和用途。 2. **数据处理流程**: - 数据采集:如何获取数据。 - 预处理:校准、过滤。 - 特征提取:注视点、眼跳等。 - 分析方法:例如,热图生成、统计测试。 3. **相关技术**:提到使用的软件和算法。 4. **应用示例**:基于引用,给出例子。 5. **生成相关问题**:在末尾添加。 引用标识:在引用的内容后添加[^1], [^2], [^3]。 确保LaTeX正确:如果有数学表达式,比如描述算法或公式,使用指定的格式。例如,如果需要描述注视点算法,可以用$...$。 现在,构建回答大纲: - 起始:确认用户需求。 - 主体: - 数据处理流程。 - 具体分析方法。 - 技术工具。 - 结尾:总结。 - 相关问题。 最终输出格式: - 回答内容。 - §§相关问题§§。 生成相关问题: 1. 如何校准Tobii X3眼动仪? 2. Tobii X3眼动仪在用户体验测试中的应用? 3. 常见的眼动数据处理软件有哪些? </think> ### Tobii X3-120屏幕式眼动仪数据分析方法与相关技术 Tobii X3-120屏幕式眼动仪是一款固定在屏幕上的眼动追踪设备,采样率为120 Hz,精度为0.4°。它主要用于捕获用户在观看屏幕内容(如网页、图像或视频)时的眼球运动数据,包括注视点位置、注视时长、眼跳次数和瞳孔直径等参数。这些数据广泛应用于用户体验评估、教育研究、视觉复杂度分析等领域[^1]。以下我将一步步介绍其数据分析方法和技术流程,确保内容基于引用和可靠知识。 #### 1. **数据处理流程** 眼动数据分析通常分为三个阶段:数据采集、预处理和特征提取。整个过程需要高效的数据处理技术来处理大量原始数据(例如,120 Hz采样率每秒产生120个数据点)。 - **数据采集**: Tobii X3通过红外摄像头捕捉眼球运动,输出原始数据包括: - **坐标系**:设备以屏幕左上角为原点$(0,0)$,右下角为$(1920,1080)$(假设屏幕分辨率),输出注视点坐标$(x,y)$序列。 - **时间序列**:每个数据点包含时间戳(单位:毫秒)、注视状态(注视、眼跳或眨眼)和瞳孔直径。 例如,一个典型的注视点序列可表示为时间序列数据:$(t_i, x_i, y_i, \text{state})$,其中$i$为采样索引。 - **数据预处理**: 原始数据常包含噪声(如头部移动或眨眼干扰),需要校准和过滤: - **校准**:实验前需进行系统校准,用户注视预设点(例如5个校准点),调整设备以最小化误差(精度0.4°)。校准误差可通过最小二乘法优化,公式为: $$ \min \sum_{k=1}^{n} \left( \| \text{实测点} - \text{目标点} \|^2 \right) $$ 其中$n$为校准点数量[^1]。 - **滤波**:使用移动平均或低通滤波器去除高频噪声。例如,对$x$坐标应用一阶巴特沃斯滤波器: $$ y_t = \alpha x_t + (1-\alpha) y_{t-1}, \quad \alpha \in (0,1) $$ 其中$\alpha$为平滑系数,推荐值$0.2-0.3$以减少抖动。 - **注视点检测**:将原始坐标序列转换为连续的注视事件。常用算法包括I-VT(基于速度阈值): - 当眼球速度$v_t = \sqrt{ (x_t - x_{t-1})^2 + (y_t - y_{t-1})^2 } / \Delta t$低于阈值(例如30°/s),视为注视点;否则为眼跳[^2]。 - **特征提取**: 从预处理数据中提取关键指标,这些在研究中常用于量化用户行为: - **注视点特征**:注视点数量、平均注视时长(单位:毫秒)。例如,在视觉复杂度评估中,高注视点密度区域暗示认知难点[^1]。 - **眼跳特征**:眼跳次数、眼跳幅度(距离变化)。 - **热图生成**:通过高斯模糊将注视点转换为可视化热图: $$ f(x,y) = \sum_{i} \exp\left( -\frac{(x - x_i)^2 + (y - y_i)^2}{2\sigma^2} \right) $$ 其中$(x_i, y_i)$为注视点坐标,$\sigma$控制模糊半径。这在Sencogi模型中用于对比宏块复杂度(如8×8像素区域)[^1]。 - **时间统计**:如首次注视时间(Time to First Fixation)和总注视时长(Total Fixation Duration),用于评估注意力分配。 #### 2. **数据分析方法** 分析眼动数据的方法取决于应用场景,常见技术包括: - **描述性分析**: - **热图和扫描路径**:使用热图可视化注视热点(如图像或网页的特定区域);扫描路径则绘制注视点顺序,揭示用户视觉轨迹。引用[1]中的Sencogi模型就是通过这种对比评估视觉复杂度。 - **统计指标**:计算平均值、标准差或相关性(如注视时长与任务准确性的皮尔逊相关系数$r$)。 - **推断性分析**: - **假设检验**:例如,t-测试比较不同实验组间的平均注视时长(如APP界面A vs B)。如果$p < 0.05$,表示显著差异。 - **机器学习建模**:使用监督学习预测用户认知状态: - 特征向量:$[ \text{注视次数}, \text{平均注视时长}, \text{眼跳次数} ]$。 - 模型:如支持向量机(SVM)或随机森林,分类用户注意力水平(高/低)。在高中数学学习中,这种模型可识别学生理解难点[^2]。 - **多模态集成分析**: Tobii X3常与其他传感器(如脑电图或面部表情识别)同步。例如,引用[1]中使用iMotions平台整合眼动、EEG和Affectiva数据: - 时间对齐:通过时间戳同步眼动和EEG数据。 - 联合分析:如眼动注视时长与情绪valence(正负情绪指数)的回归分析,探索认知-情感交互。 #### 3. **相关技术与工具** 执行上述分析需专业软件和框架: - **专用软件**: - Tobii Pro Lab:Tobii官方的分析工具,提供一键式热图生成、注视点检测和统计报告。 - ErgoLAB平台:如引用[3]所述,内置交互行为分析,可与Tobii X3集成,定量测评APP界面的可用性(通过注视点和点击事件相关性)。 - iMotions:多模态研究平台,支持数据同步和高级可视化。 - **编程工具**: - Python库:如PyGaze或Pandas处理数据,Matplotlib生成热图。示例代码: ```python import pandas as pd import matplotlib.pyplot as plt from scipy.ndimage import gaussian_filter # 加载数据(假设为CSV格式) data = pd.read_csv('gaze_data.csv') # 生成热图 heatmap, xedges, yedges = np.histogram2d(data['x'], data['y'], bins=50) smoothed_heatmap = gaussian_filter(heatmap, sigma=1.5) plt.imshow(smoothed_heatmap.T, cmap='hot', origin='lower') plt.colorbar() plt.title('注视热图') plt.show() ``` - R语言:用于统计分析,如lme4包进行混合效应模型。 - **硬件集成**:Tobii X3通过USB连接计算机,API支持实时数据流(如Tobii Pro SDK)。 #### 4. **应用示例** 基于引用,典型应用包括: - **视觉复杂度评估**:在Sencogi模型中,眼动数据(如注视点密度)对比宏块的复杂度,辅助设计优化[^1]。 - **教育研究**:高中数学学习中,分析注视时长与题目难度的关系,提供个性化学习反馈[^2]。 - **用户体验测试**:与ErgoLAB结合,测评APP界面效率,如通过注视点与点击事件的时序分析减少用户认知负荷[^3]。 总之,Tobii X3-120眼动仪的数据分析侧重于从原始坐标提取认知特征,并结合统计或机器学习方法解释用户行为。数据量大(每秒120个点)要求高效算法,推荐使用Tobii Pro Lab或Python脚本以提升可靠性[^1][^2]。
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值