HoloLens 2能否获取、存储并查看瞳孔直径等眼动追踪数据?
基于MRTK的HoloLens 2眼动数据采集存储方案
HoloLens 2原生眼动API支持输出瞳孔直径、注视射线、眼动速度等核心指标,搭配MRTK的眼动追踪模块可以快速实现采集、存储需求,具体实现步骤如下:
1. 项目前置配置
- 首先在Unity项目中开启眼动追踪权限:打开
Edit > Project Settings > Player > Publishing Settings > Capabilities,勾选Gaze Input权限 - 确保MRTK配置文件中已启用眼动追踪功能:在MRTK配置文件的
Input > Data Providers中添加Windows Mixed Reality Eye Gaze Provider
2. 核心数据采集逻辑
编写自定义数据采集脚本,定时读取MRTK的眼动数据接口,核心实现代码如下:
using Microsoft.MixedReality.Toolkit; using Microsoft.MixedReality.Toolkit.Input; using System; using System.Text; using System.IO; public class EyeTrackingRecorder : MonoBehaviour { private StringBuilder dataBuilder; private string savePath; private float recordInterval = 0.02f; // 50Hz采样,可根据需求调整 private float timer; void Start() { // 初始化存储路径,对应HoloLens本地可访问的应用私有目录 savePath = Path.Combine(Application.persistentDataPath, $"eye_data_{DateTime.Now:yyyyMMdd_HHmmss}.csv"); dataBuilder = new StringBuilder(); // 写入CSV表头 dataBuilder.AppendLine("Timestamp,PupilDiameterLeft,PupilDiameterRight,GazeOriginX,GazeOriginY,GazeOriginZ,GazeDirectionX,GazeDirectionY,GazeDirectionZ,VelocityX,VelocityY,VelocityZ"); } void Update() { timer += Time.deltaTime; if (timer >= recordInterval) { timer = 0; RecordEyeData(); } } void RecordEyeData() { // 校验当前眼动数据是否有效 if (CoreServices.InputSystem?.EyeGazeProvider?.IsEyeGazeValid == true) { var eyeGaze = CoreServices.InputSystem.EyeGazeProvider; // 读取双眼瞳孔直径 float leftPupil = eyeGaze.LeftEyePupilDiameter; float rightPupil = eyeGaze.RightEyePupilDiameter; // 读取注视原点、方向数据 var gazeOrigin = eyeGaze.GazeOrigin; var gazeDir = eyeGaze.GazeDirection; // 读取眼动速度 var velocity = eyeGaze.GazeVelocity; // 拼接数据行写入缓存 string line = $"{DateTime.Now:HH:mm:ss.fff},{leftPupil},{rightPupil},{gazeOrigin.x},{gazeOrigin.y},{gazeOrigin.z},{gazeDir.x},{gazeDir.y},{gazeDir.z},{velocity.x},{velocity.y},{velocity.z}"; dataBuilder.AppendLine(line); } } // 结束录制时将缓存数据写入本地文件 public void StopRecording() { File.WriteAllText(savePath, dataBuilder.ToString()); } }
3. 数据存储与导出
- 上述代码默认将数据存储为CSV格式,保存在HoloLens的应用私有目录下
- 你可以通过HoloLens设备门户访问该文件:进入设备门户的
System > File explorer > LocalAppData > [你的应用名称] > LocalState路径,即可下载导出CSV文件
4. 数据查看
- 导出的CSV文件可以直接用Excel、WPS或者Python的pandas库打开查看,也可以自行开发简单的可视化工具绘制瞳孔大小、眼动速度的变化曲线
- 如果需要实时查看数据,可以在Unity编辑器调试模式下通过控制台打印关键指标,或者在HoloLens应用中添加UI文本组件实时显示当前数值
注意事项
- 瞳孔直径数据仅支持HoloLens 2 21H1及以上版本系统输出,旧版本系统会返回0值
- 眼动数据采样率最高支持120Hz,可根据需求调整采样间隔,过高采样率会带来额外性能消耗
- 采集数据前需要用户授权眼动追踪权限,应用启动时会自动弹出权限申请窗口
内容的提问来源于stack exchange,提问作者Schlauchman
相关产品推荐
相关产品推荐

