
很快,我们将发布带有
定制 “
眼动仪校准”功能的产品。 不幸的是,由于种种原因,它仍然无法完成本文。 但是,最近发生了一个有趣的事件,提示您完成开始的工作。 但是,首先是第一件事。 我希望有人仍然可以从我们的经验中受益,尽管事实证明这个职位很潮湿。
简而言之,
眼动仪是使您能够跟踪视线以及眼睛和头部位置的设备。
眼动仪有很多应用领域,其中之一是计算机游戏行业(
更多 )。
通常,凝视检测负责游戏中的辅助(辅助)功能,但很重要:
- 相机移动;
- 瞄准
- 选择用于交互的对象;
- 武器选择;
- 视线自动暂停;
- 其他。
在大多数情况下,标准校准(我们将讨论
Tobii Eye Tracker 4C设备)足以舒适地使用
Eye Track'era 。
但是,不幸的是,就我们的目的而言,通过标准校准获得的设备精度还不够,因为在我们的项目中,外观是控制的主要机制。
根据上述内容,形成了
任务 :改进标准校准;
条件 :
Tobii Eye Tracker 4C设备,开发语言为
C#(WPF) 。
这似乎是一个表面上的解决方案:如果您想要更高的精度-添加更多的校准点,但这并不是那么简单。
Tobii AB有很多用于处理其设备的
工具 。 发现
Tobii Pro SDK时,Joy
无止境 ,该
SDK具有所有用于
校准的包子,但是后来证明,该
SDK不适合专门用于我们的
眼动仪模型(尽管很奇怪使用此
SDK时,设备的凝视检测仍然存在。 我不得不更轻松地使用工具
-Tobii.EyeX.Client 。
根据经验,可以找到最佳数量的校准点及其位置:一个
4x3矩阵,其中放置
12个校准点(每个校准点位于单元的中心)。
还凭经验找到以下参数:
校准算法(从简单到疯狂)
对于校准矩阵的每个单元,依次执行校准:
- 如果当前校准点与从设备接收到的点之间的距离小于最大允许偏差 ,则该点(从设备接收到)将落入集合中以进行进一步处理,否则-当前电池的校准将重置为其原始状态(并且一切都是新的) ;
- 用完一个校准点的校准时间后,我们从先前收集的数据中获得位移的平均值。
校准完成后,我们
将按区域(矩阵单元)收集12个
平均偏差值 。
用法(甚至更容易)
- 确定从设备接收的点属于哪个区域;
- 我们将从设备接收的点偏移该区域中偏移的平均值 。
因此,有可能以编程方式提高
Tobii Eye Tracker 4C设备的准确性(通过在标准校准上添加附件)。
不幸的是,由于保密协议,我无法指定软件名称,也无法布置源代码或屏幕截图。 幸运的是,他们让我分享了算法。 我希望有人发帖仍然有用。
本文提供了主要校准过程的最简单描述。 此外,还有很多其他东西:
- 将点值与上一个值进行平均(以确保平滑度);
- 检查是否超出屏幕边界;
- 视线丢失;
- 跟踪眼睛在太空中的位置变化;
- 眼动仪状态跟踪;
- 跟踪屏幕分辨率的变化;
- 跟踪中止校准;
- 随机选择校准标记的类型;
- 还有更多。
这正是促成本文“完成”的事件:由于一些不可思议的巧合,我的朋友(
来自上一篇文章)有机会与
Tobii AB的开发人员进行实时聊天。 在交谈中,开发人员提到标准校准并不理想,我们的努力也没有白费。