没有合适的资源?快使用搜索试试~ 我知道了~
ETCAL:眼动仪校准的多功能库,易用且可扩展,用于不同校准场景,支持自动参数优化
SoftwareX 8(2018)71原始软件出版物ETCAL-用于眼动仪校准的多功能和可扩展库Pawel Kasperski*,Katarzyna Harezlak西里西亚理工大学信息学研究所Akademicka 16,44-100 Gliwice,Polandar t i cl e i nf o文章历史记录:2017年11月30日收到2017年12月11日接受关键词:眼动追踪校准库a b st ra ct最近,眼动跟踪已经成为一种流行的技术,可以用于各种应用,从医学应用开始,通过心理学,分析用户体验,以交互式游戏结束。基于视频的眼电图(VOG)是最受欢迎的技术,因为它是非侵入性的,可以在用户的自然环境中使用,并且相对便宜,因为它只使用经典的相机。那里已经建立了用于相机捕获时的眼睛检测的方法。然而,为了可用,在注视位置估计中,该信息必须与观察者场景中的区域相关联,这需要评估若干参数。这些参数通常在称为校准的过程中进行估计。本文所述软件的主要目的是建立一个通用平台,易于使用,可用于不同的校准场景。除了基于正态回归的校准外,ETCAL库还允许使用更复杂的方法,如自动参数优化或自动检测凝视目标。该库也很容易扩展,可以通过方便的Web/REST接口访问©2017由Elsevier B.V.这是一篇CC BY-NC-ND许可下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)的网站上进行了介绍。代码元数据当前代码版本0.1用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-17-00081法律代码许可证GNU LGPL使用git的代码版本控制系统使用Java的软件代码语言、工具和服务编译要求,操作环境依赖性Maven项目,可以编译为库(jar)或Web应用程序(war)如果可用,链接到开发人员文档/手册https://github.com/kasprowski/etcal/doc问题支持电子邮件pawel@kasprowski.pl软件元数据当前软件版本0.1此版本可执行文件的永久链接https://github.com/kasprowski/etcal法律软件许可GNU LGPL计算平台/操作系统需要Java Virtual Machine 1.8或更高版本的平台,可以启动Web版本任何servlet容器(Tomcat、Glassfish、WildFly等)安装要求依赖项pom.xml Maven文件如果可用,请链接到用户手册https://github.com/kasprowski/etcal/doc问题支持电子邮件pawel@kasprowski.pl原文DOI:http://dx.doi.org/10.1016/j.dsp.2017.11.011。* 通讯作者。电子邮件地址:kasprowski@polsl.pl(P. Kasperski)。https://doi.org/10.1016/j.softx.2017.12.0052352-7110/©2017由Elsevier B. V.发布1. 动机和意义眼动追踪有很多潜在的应用:医学[1,2],心理学[3],社会学[4],教育[5],可用性评估[6]或广告分析。还有越来越多的应用程序使用眼睛凝视作为新的输入这是一篇CC BY-NC-ND许可下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)的网站上进行了介绍。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx72P. Kaspersky,K.Harezlak/SoftwareX 8(2018)71图1.一、眼动仪相机使用的典型眼睛图像。模态[7]。有了能够处理复杂图像检索任务的高质量相机和设备,任何人都可以构建眼动仪。 许多算法能够在所提供的图像中找到眼睛中心、闪烁(光反射)或眼角(图11)。①的人。但是,这些值必须映射到与用户正在查看的场景相关的坐标这种转换对于推理人们必须应用的解决方案称为校准,并且必须在所有眼动配准之前。有几种类型的刺激,可以在校准阶段使用最受欢迎的是跳跃点希望与会者密切关注这一点另一种可能性是使用漫游点,其平滑地改变其在屏幕上的位置,从而引起平滑追踪眼球运动的效果[8,9]。也可以使用图像形式的更复杂的刺激,然而在这种情况下,需要明确定义的目标。有研究表明,校准过程包含在正常的特别是鼠标点击位置可以用作可能的凝视位置[11]。这样的环境可以提供多于一个可能的目标来凝视,因此需要能够选择可能的位置(目标)以获得最佳可能模型的特殊眼动仪的制造商及其设备提供专有软件,然而,它通常受到有限的校准场景的影响,并且不清楚它如何工作,因此难以对其进行调谐应用更复杂和可比的解决方案需要准备一个新的软件。同样的需求出现在自行开发的眼动仪的情况下[12,13]。这项工作的动机是提供易于使用和可用的在线工具,能够基于原始眼动记录计算凝视点,并产生可重现的校准结果。这可能是有用的研究人员利用一个非典型的校准方案或生产自己的眼动仪。该工具还可以用作公共平台,以比较使用不同眼睛跟踪器收集的数据所获得的结果。此外,ETCAL库包含更复杂的启发式算法,可使用参数化交叉验证自动优化各种校准模型(如多项式或SVR),并在隐式校准场景中自动检测凝视目标2. 软件描述该库是一个全面的工具,可用于准备校准模型。它是用Java编写的,整个代码可以在github仓库上使用,因此可以克隆或分叉。图二. ETCAL图书馆建筑。有两种方法可以使用ETCAL库:通过其编程接口或通过其REST接口。虽然前者对于Java程序员来说很方便,因为他们所需要的只是将库的jar文件与依赖项添加到他们的项目中非常重要的是,几乎每个ETCAL手术都有同步和同步版本。它使潜在的用户能够开始一个持久的过程,并继续自己的工作,而不必无所事事地等待结果。虽然ETCAL配备了几个现成的算法,它可以很容易地扩展。ETCAL的文档中详细解释了应实现的接口基本上,使用ETCAL的第一步是创建一个EtCal对象并上传训练数据。训练数据由眼动仪输出和某些平面上的预测注视坐标(目标对象)组成。在加载训练数据之后,可以执行六个主要活动(图1)。(2):1. 过滤器-可以使用预定义的或任何新的自实现的过滤器之一来过滤数据。2. map -如果数据由存在多个可能目标的数据单元组成,则可以启动Mapper,该Mapper使用启发式算法从给定数据单元的可能性列表中可逆地找到3. 构建模型-训练数据可用于使用预定义或自己的校准器中的一个来构建校准模型。4. 优化-数据可用于调整校准器的参数,以使数据的误差最小。不同的校准品类型、交叉验证类型和优化算法可能使用不同的优化器5. calibrate -在模型直接由校准器或优化器(也使用校准器,但在表面下)构建后,可以使用它来校准新数据。对于提供的一组特征,ETCAL返回具有注视坐标的目标对象。6. checkErrors,plotErrors-也可以提供一个新的数据集,校准它并检查错误(R2,RMSE)或获得一个图像,说明图上的错误。2.1. 输入数据格式输入数据集由一系列数据单元组成每个数据单元由变量(V)和相应的目标 T(凝视坐标):{“variables”:[20.0,13.0,10.0,20.0],“目标”:[{“x”:260.0,“y”:260.0,“w”:1.0},{“x”:360.0,“y”:360.0,“w”:1.0}]}P. Kaspersky,K.Harezlak/SoftwareX 8(2018)7173n+K每个变量都必须是浮点数。正如在列表中所见,可能为一个数据单元定义了多个目标映射器可用于识别数据单元的正确目标。当没有使用映射器时,每个单元中的第一个目标被视为默认目标。数据单元可以作为DataUnits对象或(特别是在REST接口的情况下)作为JSON文档提供。DataUnits类包含的方法允许轻松地将DataUnits对象转换为JSON格式,反之亦然,使用GSON [14]库。2.2. 过滤数据在加载所有训练数据之后,可以使用预定义或自定义过滤器之一来对其进行过滤。过滤器可以只修改所有数据单元中变量后者允许减少数据量,例如以提高性能而不损失精度。2.3. 来构建回归模型使用训练数据构建回归模型是ETCAL库的核心功能该模型可以由Calibration接口的任何实现来该对象的责任是使用提供的训练数据单元计算模型参数,然后返回新数据的可能目标坐标有几个校准器已经实现,包括第三次多项式一个可调数量的条款和SVR校准器使用RBF内核参数化成本和伽玛参数。还有一个抽象的校准器,可以很容易地扩展到使用WEKA [15]库中实现的任何回归函数2.4. 模型评估评估可以通过三种方式进行:(1)使用训练数据,(2)使用N折交叉验证;(3)使用用户提供的其他测试数据评价结果包括:决定系数(R2)、均方根误差(RMSE)和绝对误差(均为垂直和水平方向测量)。Evaluator对象被优化器隐式地使用,通常使用交叉验证(详见下一节)- 并且也可以在用户调用ETCAL方法:2.5. 为给定数据找到最佳模型(优化)如上所述,可能存在针对相同输入训练数据构建的许多不同每个模型都可以进行评估,以检查它是否优于其他模型。例如,对于基于三次多项式的模型,软件能够找到可用于构建模型的最佳项集。对于两个输入变量,这个问题是微不足道的,因为根据重复公式的组合,只有10个项和1024个可能的项集Ck=(n+k−1)(1)最好的模型。到目前为止,只有遗传算法被实现(使用JGAP库[16]),它有效地搜索所有可能的术语集的空间类似的技术用于SVR模型,用于优化成本和伽马参数。由于仅使用训练数据来决定哪个模型更好,因此不要过度拟合模型非常重要。因此,交叉验证是Evaluation对象的内置选项。可以指定折叠次数和交叉验证类型。2.6. 正在搜索正确的目标映射如已经陈述的,输入数据单元可以包括针对一个特定变量集合V的多于一个目标(可能的注视坐标)。当使用隐式校准而不是显式校准时,会发生这种情况[10]。在这种情况下,用户不会被迫看一个特定点。有了关于刺激的信息,我们试图预测用户可能会看向哪里。映射器利用一个假设,即使用正确映射构建的回归模型应该为训练数据提供低误差它为不同的映射创建校准品,比较错误并返回映射,其中给出了最低值。当可能的映射数量太大时,不可能只检查所有映射。可以替代地使用任何启发式算法ETCAL库包含一个内置的GeneticMapper,它使用JGAP库[16]来找到最佳的解决方案,但用户可以通过实现一个非常简单的Mapper接口来创建自己的映射器。2.7. 扩性用户可以很容易地创建他们自己的任何上述接口(过滤器,映射器,校准器或优化器)的实现。新类可以以两种方式应用于ETCAL。第一种方法是创建对象并调用适当的ETCAL方法,将此对象作为参数(例如build(MyCustomCalibration))。更灵活的方法是用一个特殊的泛型容器来调用ETCAL方法,该容器封装了类名,并且它是所有参数。例如,要创建具有两个参数lowwerBound和upperBound的FourierFilter类,容器将如下所示:{type:“org.example.FourierFilter”,params:{lowerBound:1,upperBound:14}}这将导致执行以下代码:Filterfilter= new org.example.FourierFilter();filter.setLowerBound(1); filter.setUpperBound(14);3. 说明性实例为了评估ETCAL库的有用性,进行了几项测试,作为库如何简化眼动跟踪数据分析的示例针对三种不同类型的眼动仪进行了实验:自制的头戴式眼动仪使用网络摄像头(VOG)的眼动仪,JAZZ-NOVO眼动仪和TheEye Tribe眼动仪。所有测试都有详细其中n是因子的数量(在3度多项式的情况下为4),mial),k是输入变量的数量但是当有更多的输入变量时,检查所有可能的集合可能是不可行的。例如,对于3个输入变量,有超过百万个组合,对于4个输入变量,有3个组合。44E 10组合。因此,软件可以使用启发式算法来找到在[17]中。所有眼动仪均用于注视点校准实验。实验的参与者看着屏幕上呈现刺激是屏幕上跳动的圆圈有30个随后的刺激位置(图。3)。刺激显示在74P. Kaspersky,K.Harezlak/SoftwareX 8(2018)71eeee图3.第三章。 点的布局和顺序。在每个位置大约3s刺激呈现的顺序对于每个会话是相同的对于每个眼动仪,为不同的参与者组提供相同的测试在每次会议期间获得的录音分为两组。将前9个点位置作为校准器的训练集(9p),将随后的21个点位置记录作为测试集(21p)以计算误差。CalibratorPolynomial用于校准具有三组不同项的当只有两个输入变量时,校准器的术语如下:xg=Axx3+Bxy3+Cxx2ye+Dxxey2calibpar.params.put(“mask“,mask);calsoft.build(calibpar);//calibrate trainDataUnits duTrainCalibrated = calsoft.get(duTrain);calsoft.plot(duTrain,duTrainCalibrated);System.out.println(“TRAIN:“+calsoft.checkErrors(duTrain));//calibrate testDataUnits duTestCalibrated = calsoft.get(duTest);calsoft.plot(duTest,duTestCalibrated);System.out.println(“TEST:“+calsoft.checkErrors(duTest));}4. 影响创建公共ETCAL库的决定受到这样一个事实的影响,即选择最适合当前数据的凝视确定模型仍然是一个未探索的问题。虽然有一些论文比较了不同的解决方案[18,12],但没有建立的,开放的,广泛可用的和随时可用的程序可应用于新数据。当然,存在由眼动仪供应商使用的专有的al-出租ms,但它们对于试图准备自己的校准场景或自己的眼动仪的研究人员来说是无用的。本文介绍的工具,这是为了帮助选择最好的可能的模型转换从眼动仪获得的数据的凝视位置。经过这种处理的数据可能在几个方面有所不同:配准设备、使用的刺激类型、校准场景(显式和隐式)或配准的采样频率此外,该软件可以用作评估所选方法效率的平台的+ Exxeye+Fxx2+Gxy2(二)创建ETCAL图书馆的主要目标是:e e+ Hxye+Ixye+Jxy g =Ay x3+ By y3+ Cy x2 ye+ Dy xey2提供一个免费且易于使用的工具,供人们构建自己的眼动仪。• 建立一个共同的平台来比较不同的口径-e e e e+Eyxeye+Fyx2+Gyy2对给定的数据使用算法。• 建立一个开放的、严格定义的COM方法,e e+Hyye+Iyye+Jy数据质量的保证。• 提供机会实施自己的元素:过滤器,校准其中注视坐标(xg,yg)是基于两个变量:xe,ye计算的。三次多项式回归考虑所有项(即掩码为11111111),二次多项式仅考虑六项(掩码:000011111),线性多项式仅考虑三项(掩码:0000000111)。图4显示了针对训练(9p)和测试(21p)数据的三次多项式计算的曲线图和误差。 当比较它的结果为二次(图。 5)和线性(图6)多项式,可以看出,具有所有10项的多项式给出了训练集的最佳结果,而具有6项和3项的多项式不会过度拟合,并且对于未知数据(测试集)更好地工作。为给定会话生成所有六个图的代码非常简单:DataUnits duTrain = DataUnits.load(9p_session>);DataUnits duTest = DataUnits.load(21p_session>);ETCal calsoft = newgetString(); getString();int n = new int n();calibpar.type=“pl.kasperski.etcal.calibration.CalibratorPolynomial”;//对于三组项for(String mask:newString[]{“11111111”,“000011111”,“000000111”}){它可以集成到ETCAL基础设施中。该软件的重要优点是,对于校准模型计算,它可以开箱即用,并且可以通过网络界面访问,使其能够在任何地方使用该软件的主要贡献如下:发布了一个即用型工具,用于眼动信号校准,具有编程和网络接口。当不是所有的凝视位置(目标)都已知时,对隐式校准有用的启发式算法的公布介绍并实现了一种启发式算法,该算法试图为给定的数据找到最佳模型。5. 结论本文和[17]中提出的ETCAL库是即用型工具,可用于校准从各种类型的眼动仪获得的信号。它提供了内置的方法,这些方法不仅能够创建回归模型,而且还能够找到校准函数的最佳参数集,甚至可以使用训练数据,其中不是所有的地面实况注视坐标都是····P. Kaspersky,K.Harezlak/SoftwareX 8(2018)7175(a)训练9分。 R2 = 0。999R2 = 0。999. RMSE x= 0。007(b)测试21点。 R2 =0。小行星859 =0。963,RMSE x= 0。090X yRMSE y= 0。015.X yRMSE y= 0。046.见图4。在使用三次(掩码:11111111)多项式校准器校准后,为训练9p(a)和测试21p(b)集计算X和Y轴的R2和RMSE误差。红色绿线连接(a)训练9P。R2 = 0。小行星998 = 0。995. RMSEx =0。017(b)测试21p。 R2=0。小行星987=0。957. RMSEx =0。027X yRMSE y= 0。025X yRMSE y= 0。049.图五. 在使用二次(掩码:000011111)多项式校准器校准后,为训练9p(a)和测试21p(b)集计算X和Y轴的R2和RMSE误差。红色“X”是预定义的点的位置,蓝色“+”是由校准模型计算的点。绿线连接(a)训练9P。R2 = 0。小行星990 = 0。980. RMSEx =0。037(b)测试21p。 R2=0。小行星952R2=0。872. RMSEx =0。052X yRMSE y= 0。052.X yRMSE y= 0。085.见图6。在使用线性(掩码:0000000111)多项式校准器校准后,为训练9p(a)和测试21p(b)集计算X和Y轴的R2和RMSE误差。红色绿线连接知道的它是完全可扩展的添加一个新的过滤器或校准器是非常容易和直接的,因为它只需要一个简单的接口的实施。非常方便的是,ETCAL可以通过其REST接口远程使用,这使得它可用于在任何环境中开发的软件。任何有兴趣的人都可以从它的github仓库免费获得它。由于所有这些优点,我们希望ETCAL可以成为一个共同的平台,眼动研究人员测试和实现自己的算法。我们还计划通过添加新的改进算法来过滤、校准、优化和映射眼动信号,从而实现软件的未来发展76P. Kaspersky,K.Harezlak/SoftwareX 8(2018)71确认我们感谢西里西亚理工大学授予BK/263/RAu 2/2016的支持引用[1] DuqueA,Vázquez C.临床抑郁症患者对积极和消极情绪面孔的双重注意偏向:来自眼动追踪研究的证据。J BehavTherapy Exp Psychiatry2015;46:107-14.[2] Armstrong T,Olatunji BO.情感障碍中注意力的眼动追踪:一项荟萃分析综述和综合。 临床心理学评论2012;32(8):704-23。[3] 王晓刚,王晓刚,等.视觉搜索中的眼动策略研究.北京:科学出版社,2000.Nature2005;434(7031):387-91.[4] [10] Li Y,Shergadwala M,Reid T,Panchal JH.利用眼睛注视数据理解设计决策中信息刺激的利用。参加:ASME2015国际设计工程技术会议和计算机与信息工程会议。美国机械工程师学会;2015V02 AT 03 A017-V02 AT 03 A017。[5] Kelly BS,Rainford LA,Darcy SP,Kavanagh EC,Toomey RJ.放射学专业知识的发展:在胸部X线片解释中,专家搜索模式可能早于气胸识别诊断准确性的专家水平。放射学2016;150409.[6] Harezlak K,Rzeszutek J,Kasperski P.用户界面评估中的眼动跟踪方法。在:智能决策技术。 Springer;2015. p. 325比35[7] Kasperski P , Harezlak K , et al. Eye movement tracking as a newpromisingmodality for human computer interaction. 在:喀尔巴阡山控制会议(ICCC),2016年第17届国际. IEEE;2016. p. 314-8[8] 杨伟华,王伟华,王伟华.追踪:基于平滑追踪眼球运动和移动目标与显示器的自发交互。2013年ACM普适计算国际联合会议论文集。ACM;2013年。p. 439-48.[9] Chelebi FM,Kim ES,Wang Q,Wall CA,Shic F.平滑追踪校准技术。在:眼动跟踪研究和应用研讨会的会议记录。ACM;2014. p. 377-8[10] 作者声明:John S.使用预测凝视目标的隐式校准。在:第九届两年一次的ACM眼动跟踪研究&应用研讨会的会议记录。ACM;2016. p. 245-8[11] Zhang Y,Hornof AJ.轻松进行眼动追踪数据的事后空间重新校准。在:眼动跟踪研究和应用研讨会的会议记录。ACM;2014. p. 95比8[12] 张 晓 鹏 , 张 晓 鹏 , 张 晓 鹏 . 使 用 注 视 点 的 眼 动 仪 校 准 指 南 。 Inf TechnolBiomed2014;4:225-36.[13] 放大图片作者:KazzlakK,Kasserski P,Stasch M.精确的眼动仪校准-方法和程序。Proc Comput Sci2014;35:1073-81.[14] GSON库,https://github.com/google/gson。[15] WEKA图书馆,http://www.cs.waikato.ac.nz/ml/weka/。[16] JGAP库,http://jgap.sourceforge.net/。[17] 作者声明:John S. ETCAL -用于眼动仪校准的多功能和可扩展库。数字信号处理2017.[18] Blignaut P.基于特征的凝视映射。J MovRes2016;9(3).
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 达梦数据库DM8手册大全:安装、管理与优化指南
- Python Matplotlib库文件发布:适用于macOS的最新版本
- QPixmap小demo教程:图片处理功能实现
- YOLOv8与深度学习在玉米叶病识别中的应用笔记
- 扫码购物商城小程序源码设计与应用
- 划词小窗搜索插件:个性化搜索引擎与快速启动
- C#语言结合OpenVINO实现YOLO模型部署及同步推理
- AutoTorch最新包文件下载指南
- 小程序源码‘有调’功能实现与设计课程作品解析
- Redis 7.2.3离线安装包快速指南
- AutoTorch-0.0.2b版本安装教程与文件概述
- 蚁群算法在MATLAB上的实现与应用
- Quicker Connector: 浏览器自动化插件升级指南
- 京东白条小程序源码解析与实践
- JAVA公交搜索系统:前端到后端的完整解决方案
- C语言实现50行代码爱心电子相册教程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功