本发明涉及一种交互装置,具体涉及一种眼动信号控制的交互装置。
背景技术:
随着计算机技术及人工智能的迅猛发展,符合人类自然认知习惯的交互手段成为人机交互技术发展的主流,产生了诸如动作追踪、语音识别、感觉反馈、眼动控制、脑机接口等多通道交互方式,信号输入装置也由鼠标、键盘转变为肢体动作、语音、眼动和脑电波。根据berger的研究,在五大感知系统中眼睛所获取的信息约占80%,人类不需要专门的学习和训练,就能自由灵活的控制眼球转动以注视不同的对象,眼动追踪技术具有自然性和直观性的优点,成为诸多学科领域的共同关注焦点。
眼机交互是用眼睛来控制计算机或装备的技术,采用眼动仪获取用户的视线信息,通过捕捉用户的注视点,识别出用户注视点的实时位置以及轨迹,以眨眼、凝视、眼球移动、平滑跟踪运动、瞳孔变化等指标作为输入指令,实现“所视即所得”。
眼控系统中交互技术分为两种:基于视线的交互(gazebasedinterface)和视线辅助的交互(gazeaddedinterface),前者仅用眼睛和计算机或设备做交互,无其他输入设备,后者是将眼动辅以鼠控、语音交互和体感交互等多通道技术,有其他输入设备。
传统的眼机交互的直接输入者是人眼,眼睛本身是一个感知器官,人类不习惯用眼动来控制目标,导致了一个瓶颈问题:系统难以辨识用户的注视行为是在检查信息,还是想触发操作,即“米达斯接触”效应。一旦出现“米达斯接触”,系统将出现输入冲突,引起误判,甚至会导致严重失误。采用通用的眼睛注视行为作为触发手段,很容易出现“米达斯接触”效应,导致系统崩溃。
技术实现要素:
发明目的:为了克服现有技术的不足,本发明提供一种眼动信号控制的交互装置,该装置可以解决数字界面交互的低效和“米达斯接触”效应的问题。
技术方案:本发明所述的一种眼动信号控制的交互装置,包括眼动信号检测模块、眼动信号处理模块、功能图标处理模块和控制模块,所述眼动信号检测模块检测到人的眼动信号,由所述眼动信号处理模块进行处理,由所述功能图标处理模块对功能图标进行处理,将处理后的眼动信号和功能图标存储到微处理器中并进行匹配,匹配成功后触发控制模块,实现人机交互。
优选的,所述眼动信号检测模块包括:
眼动信号采集模块,由眨眼检测器与眼动仪共同通信完成,其中,所述眨眼检测器用于记录眨眼事件的次数以及眼睛闭合事件的时长,所述眼动仪用于采集被试者的眼动数据;
眼动信号输出模块,用于输出瞳孔中心点的实时坐标,tobiistudio软件输出眼睛运动过程中瞳孔中心点的实时坐标,将所述坐标值输送到象限计算器,其与所述眨眼检测器、tobiistudio软件相互通信,所述象限计算器用于计算瞳孔中心点坐标所在的象限位置。
优选的,所述眼动数据的采集方法为眼睛注视计算机界面的功能图标,同时观察功能图标的数字编码,依次按照所述数字编码做眼睛运动,看到数字编码“1”,眼睛朝右上运动,看到数字编码“2”,眼睛朝左上运动,看到数字编码“3”,眼睛朝左下运动,看到数字编码“4”,眼睛朝右下运动。
优选的,所述眼动信号处理模块用于对眼动信号进行数字编码,首先建立眼睛二维图像的直角坐标系,然后根据瞳孔中心点的实时坐标,对所述眼动信号进行数字编码,眼球在不同象限下的有效连续运动会产生不同的数字编码序列,按照眼睛在不同象限有效运动的先后顺序,根据眼睛动作信号的数字编码,依次标定眼睛连续动作信号的数字编码。
优选的,所述功能图标处理模块包括:
功能图标获取模块,用于获取所述计算机界面中的功能标识符号;
功能图标编码模块,用于对所述功能图标进行数字编码,每个所述功能图标对应一个唯一的数字编号i,所述数字编号i的位数w为[1,4]区间上的整数,当w≥2时,数字编号的相邻数字间不重复,按照所述功能图标的使用频率m对所述功能图标进行数字编码。
优选的,所述功能图标编码模块中,功能图标的数字编码包括:
所述功能图标的使用频率为完成z个主要操作任务所需某个功能图标的总单击次数x与完成z个所述主要操作任务所需所有功能图标的总单击次数y的比值,即m=x/y,m∈[0,1],根据m的值从大到小对功能图标进行数字编码;
当w=1时,数字编号i=4,m的值排在前4位的功能图标的数字编码依次标定为:1、2、3、4;
当w=2时,数字编号i=12,m的值排在第5-16位的功能图标的数字编码依次标定为:12、13、14、21、23、24、31、32、34、41、42、43;
当w=3时,数字编号i=36,m的值排在第17-52位的功能图标的数字编码依次标定为:121、123、124…431、432、434;
当w=4时,数字编号i=108种,m的值排在第53-108位的功能图标的数字编码依次标定为:1212、1213、1214…4341、4342、4343。
优选的,所述控制模块是将所述象限计算器输出的象限数字代码组合,与存储在所述微处理器中的数组进行匹配,若匹配成功,则输出功能图标的触发指令给窗口编译模块,其与计算机通信实现所述功能图标所指的特定功能,若匹配不成功,所述眼动信号采集模块重新采集眼动信号。
有益效果:本发明通过对功能图标和眼睛动作进行数字编码,用户根据功能图标右上角的数字编码,在四个象限进行有序眼睛运动,实现眼睛对功能图标的触发,更加直接和简洁,有效规避了用户的注视行为,有较高的准确率,可节省操作时间,直接避免了“米达斯接触”效应的发生,减少了误触发率,显著提高了数字界面的交互效率。
附图说明
图1为本发明的装置结构框图;
图2为本发明的功能图标的数字编码示意图;
图3为本发明的图标的一种预处理示意图;
图4为本发明的眼睛图像区域划分示意图;
图5为本发明的装置原理示意图;
图6为本发明的功能图标的确认对话框。
图中包括:眼动信号检测模块(1),眼动信号采集模块(11),眼动信号输出模块(12),眼动信号处理模块(2),功能图标处理模块(3),功能图标获取模块(31),功能图标编码模块(32),控制模块(4),微处理器(5),眨眼检测器(6),眼动仪(7),tobiistudio软件(8),象限计算器(9),窗口编译模块(10)。
具体实施方式
如图1,本发明涉及一种眼动信号控制的交互装置,本装置不需要任何语言和动作,直接通过图标的眼动信号实现对数字界面的控制,因此,适用于残疾人、老年人和飞行员等特定人群,在某些不便用手协调的场合,如宇航员在飞船或太空舱操作计算机、汽车驾驶、手术过程等,也可使用基于眼动信息的人机接口来执行动作或进行交流。
该装置的眼动信号检测模块1检测到人的眼动信号,由眼动信号处理模块2进行处理,由功能图标处理模块3对功能图标进行处理,将处理后的眼动信号和功能图标存储到微处理器5中并进行匹配,匹配成功后触发控制模块4,从而实现人机交互。
功能图标处理模块3,首先进行功能图标的预处理,该模块包括功能图标获取模块31和功能图标编码模块32,其中,所述功能图标获取模块31,用于获取功能图标。从任一开源软件的系统文件中获取png格式功能图标,即用户界面中的功能标识符号,约定某开源软件的功能图标总个数不超过108个,108个以上的功能图标眼动信号的控制方法,也可根据原理对本发明的技术方案做相应改变,从而实现眼动信号的控制作用。
功能图标编码模块32,首先用于对功能图标进行数字编码;每个功能图标对应一个唯一的数字编号,定义该数字编号为i,且i为正整数,数字编号i的位数w为[1,4]区间上的整数,数字编号i可表示为a、ab、abc或abcd,a、b、c、d为[1,4]区间上的整数,其中,w≥2时,数字编号i的相邻数字间不重复,数字编号i共计可标定为108种情况。上述涉及的某款开源软件有z个主要操作任务,此处的主要操作任务为完成某款开源软件的某个主要功能触发时,所需要单个或多个功能图标的触发组合,z的数量根据某款开源软件的主要功能来确定,其中每个任务操作流程主要是对不同功能图标单击的组合。
如图2,按照功能图标的使用频率m,对功能图标进行数字编码。所述的功能图标的使用频率m为完成z个操作任务所需某个功能图标的总单击次数x与完成z个操作任务所需所有功能图标的总单击次数y的比值,即m=x/y,m∈[0,1],根据m的值从大到小对功能图标进行数字编码:
w=1时,数字编号i有1×4=4种,m的值排在前4位的功能图标的数字编码依次标定为:1、2、3、4。
w=2时,数字编号i有4×3=12种,m的值排在第5-16位的功能图标的数字编码依次标定为:12、13、14、21、23、24、31、32、34、41、42、43。
w=3时,数字编号i有4×3×4=36种,m的值排在第17-52位的功能图标的数字编码依次标定为:121、123、124…431、432、434。
w=4时,数字编号i有4×3×3×3=108种,m的值排在第53-108位的功能图标的数字编码依次标定为:1212、1213、1214…4341、4342、4343。
其次,对功能图标进行处理;运用photoshop,illustrator或coreldraw图形图像处理软件,将前一步骤标定好的数字编号i,放置于与之对应的png格式功能图标的右上角,如图3为一种处理方式,经过处理后的png格式功能图标的像素和处理前的原始图标保持一致。
最后,用于将功能图标进行替换;手动找到原始png格式功能图标的系统文件夹,在该文件夹的根目录下,将经过处理的png功能图标进行同文件名覆盖或替换。
眼动信号处理模块2,首先对眼睛动作信号的数字编码;
(1)建立眼睛二维图像的直角坐标系
眼睛动作信号通过瞳孔中心点的坐标(x,y)进行表征,将眼睛的二维图像定义为平面直角坐标系,向右为x轴正向,向左为x轴负向,向上为y轴正向,向下为y轴负向,x轴和y轴将坐标空间划分为四个区域:
x轴正向和y轴正向组成的区域为第一区域,
x轴负向和y轴正向组成的区域为第二区域,
x轴负向和y轴负向组成的区域为第三区域,
x轴正向和y轴负向组成的区域为第四区域。
眼睛正视前方时瞳孔中心点为坐标系零点(0,0),眼睛运动过程中瞳孔中心点的实时坐标为(x0,y0)。
(2)眼睛动作信号的数字编码
瞳孔中心点的实时横坐标x0和实时纵坐标y0,当眼睛运动到第一象限,满足x0>0,y0>0且x02+y02≥9mm2条件时,标定所述眼动信号数字编码为“1”;
当眼睛运动到第二象限,满足x0<0,y0>0且x02+y02≥9mm2条件时,标定所述眼动信号数字编码为“2”;
当眼睛运动到第三象限,满足x0<0,y0<0且x02+y02≥9mm2条件时,标定所述眼动信号数字编码为“3”;
当眼睛运动到第四象限,满足x0>0,y0<0且x02+y02≥9mm2条件时,标定所述眼动信号数字编码为“4”;
当所述瞳孔中心线和坐标轴线重合时,即x0=0或y0=0,认为眼球未做有效运动,不予标定。
上述公式中的9mm2是当采用300hz采样率的眼动仪7的最小有效面积范围为9mm2,即以眼球为中心的最小有效面积范围,眼睛在此范围之内的运动,是无效的眼动信号编码。在本发明的优选方案中,9mm2可以根据眼动仪7的采样精度来进行调整,眼动仪7精度越高,可适当缩小该范围。
若2000hz采样率的眼动仪7的最小有效面积范围则可降为4mm2,即眼动信号的数字编码表示为:
瞳孔中心点的实时横坐标x0和实时纵坐标y0,当眼睛运动到第一象限,满足x0>0,y0>0且x02+y02≥4mm2条件时,标定所述眼动信号数字编码为“1”;
当眼睛运动到第二象限,满足x0<0,y0>0且x02+y02≥4mm2条件时,标定所述眼动信号数字编码为“2”;
当眼睛运动到第三象限,满足x0<0,y0<0且x02+y02≥4mm2条件时,标定所述眼动信号数字编码为“3”;
当眼睛运动到第四象限,满足x0>0,y0<0且x02+y02≥4mm2条件时,标定所述眼动信号数字编码为“4”;
当所述瞳孔中心线和坐标轴线重合时,即x0=0或y0=0,认为眼球未做有效运动,不予标定。
(3)眼睛连续动作信号的数字编码
如图4,眼球在不同象限下的有效连续运动会产生不同的数字编码序列,按照眼睛在不同象限有效运动的先后顺序,根据眼睛动作信号的数字编码,依次标定眼睛连续动作信号的数字编码,即为不同眼睛动作信号的数字编码的组合形式。
功能图标处理模块3和眼动信号处理模块2对功能图标和眼动信号处理完毕之后,对功能图标和眼动信号数字编码进行存储。
(1)功能图标数字编码与眼睛动作信号数字编码的匹配
以1、2、3、4为最小编码,进行数字组合,相邻数字间不重复,即4*3*3*3=108种组合方式,且1、2、3、4代表不同的眼睛运动形式。
功能图标右上角的数字“1”代表眼睛运动到第一象限,且瞳孔中心点坐标满足x0>0,y0>0且x02+y02≥9mm2。
功能图标右上角的数字“2”代表眼睛运动到第二象限,且瞳孔中心点坐标满足x0<0,y0>0且x02+y02≥9mm2。
功能图标右上角的数字“3”代表眼睛运动到第三象限,且瞳孔中心点坐标满足x0<0,y0<0且x02+y02≥9mm2。
功能图标右上角的数字“4”代表眼睛运动到第四象限,且瞳孔中心点坐标满足x0>0,y0<0且x02+y02≥9mm2。
同时,可根据实际情况进行扩展,比如以1、2、3、4为最小编码,进行五位数的组合12341,相邻数字间不重复,即4*3*3*3*3=324种组合方式,且1、2、3、4代表不同的眼睛运动形式。但实际上,一个软件一般不可能有300个功能图标。
本发明只用“1、2、3、4”是基于眼睛在四个象限的运动为编码来考虑的,不用“1、2、3、4、5、...、108”,因为如果每个数字代表一种眼动运动形式,用户根本记不住那么多眼动形式,而且也没有那么多眼动形式,以组合的方式呈现最佳。
同理,若2000hz采样率的眼动仪7的最小有效面积范围则可降为4mm2,功能图标数字编码与眼睛动作信号数字编码的匹配为:
功能图标右上角的数字“1”代表眼睛运动到第一象限,且瞳孔中心点坐标满足x0>0,y0>0且x02+y02≥4mm2。
功能图标右上角的数字“2”代表眼睛运动到第二象限,且瞳孔中心点坐标满足x0<0,y0>0且x02+y02≥4mm2。
功能图标右上角的数字“3”代表眼睛运动到第三象限,且瞳孔中心点坐标满足x0<0,y0<0且x02+y02≥4mm2。
功能图标右上角的数字“4”代表眼睛运动到第四象限,且瞳孔中心点坐标满足x0>0,y0<0且x02+y02≥4mm2
(2)对所有功能图标的眼动信号数组的存储
将软件中的所有功能图标眼动信号的数字编码,以数组b[j]的形式存储于微处理器中,其中j表示功能图标的总个数。
此时存储的功能图标编码和眼动信号编码必须一一对应,因为只有编码一一对应才能触发目标图标,即用户想要触发的那个功能图标,否则,可能会出现误触发或不响应的情况发生。
眼动信号检测模块1,用于对眼睛运动信号进行采集、输出、计算与识别,其包括眼动信号采集模块11和眼动信号输出模块12,首先眼睛运动信号的记录与采集过程,由眨眼检测器6与tobii便携式眼动仪7共同通信完成,其中眨眼检测器6用于记录眨眼事件的次数以及眼睛闭合事件的时长,tobii便携式眼动仪7用于采集被试者的眼动数据。当眨眼检测器6检测到眨眼事件且眼睛闭合时长在3s以上时,眼动仪7开始采集被试者的眼球运动数据。
如图5,被试者眼睛注视软件界面的功能图标,同时观察功能图标的数字编码,依次按照该数字编码做眼睛运动,被试者看到数字编码“1”,眼睛朝右上运动,被试者看到数字编码“2”,眼睛朝左上运动,被试者看到数字编码“3”,眼睛朝左下运动,被试者看到数字编码“4”,眼睛朝右下运动。
当眨眼检测器6检测到连续3次闭合眼睛事件发生时,眼动仪7停止对眼睛运动信号的记录。
人类自然连续眨眼一般为1-2次,3次是有目的性眨眼的最低次数,同理,本发明也可针对3次以上的眨眼,但3次以上的眨眼会给用户带来视觉疲劳,增加眼动的复杂性。
在tobiistudio软件8的textexport模块下,输出眼睛运动过程中瞳孔中心点的实时坐标(x0,y0),将该坐标值输送到象限计算器9。
象限计算器9与眨眼检测器6、tobiistudio软件8等三个模块相互通信,象限计算器9用于计算被试者瞳孔中心点坐标所在的象限位置,约定象限计算器9对于tobiistudio软件8连续输送过来的同一象限内的多个不同瞳孔坐标点,只输出1次象限数字代码,直至象限发生变化时,输出新的象限数字代码。象限计算器9的数字代码有四个:1、2、3、4,分别对应第一象限、第二象限、第三象限和第四象限。
瞳孔中心点坐标(x,y)所在象限位置的计算由matlab软件编程完成,程序代码如下:
function[results]=myfun(x,y)
if(x>0&y>0&x^2+y^2>=9)
results=1;
end
说明:此段为第一象限位置的计算程序。
if(x<0&y>0&x^2+y^2>=9)
results=2;
end
说明:此段为第二象限位置的计算程序。
if(x<0&y<0&x^2+y^2>=9)
results=3;
end
说明:此段为第三象限位置的计算程序。
if(x>0&y<0&x^2+y^2>=9)
results=4;
end
说明:此段为第四象限位置的计算程序。
disp(results)
end
所述控制模块4是将所述象限计算器9输出的象限数字代码组合,与存储在所述微处理器5中的数组进行匹配,若匹配成功,则输出功能图标的触发指令给窗口编译模块10,其与计算机通信实现所述功能图标所指的特定功能,若匹配不成功,所述眼动信号采集模块11重新采集眼动信号。本实施例是将象限计算器9输出的象限数字代码组合p在微处理器5中,与数组b[j]进行匹配,如果p存在于数组b[j]中,输出功能图标的触发指令q。
数字p与数组b[j]的匹配过程如下,用matlab软件编程实现:
[a,b,c,d]=ndgrid(1:4);
bb1=[a(:),b(:),c(:),d(:)];
[efg]=ndgrid(1:4);
bb2=[e(:)f(:)g(:)];
[hi]=ndgrid(1:4);
bb3=[h(:)i(:)];
lut1=nan(2,1);lut2=nan(2,1);lut3=nan(2,1);说明:此段为变量的定义
说明:此段为四位数字编码的眼动信号
说明:此段为三位数字编码的眼动信号
说明:此段为两位数字编码的眼动信号
说明:此段为数字p与数组b[j]匹配的计算过程。
当用户想触发某特定功能图标时,功能图标需要接收到触发指令,本实施例以“放大功能”图标为例。放大功能指通过眼睛观看“放大镜”图标,实现触发“放大镜”图标,该案例的最终效果是实现对软件窗口内信息或者文字的放大。如图5中,软件窗口内的文字是“xxxxxx”,在触发特定功能图标后,首先弹出是否实现该功能的确认对话窗口,之后窗口内的文字“xxxxxx”即实现了该功能图标所指的特定功能。
以放大功能为例,如图6,接受到功能图标的触发指令q后,弹出确认对话框窗口,该窗口由vb语言编译生成,代码如下:
功能图标触发指令的确认过程由眨眼检测器与窗口编译模块共同通信完成。
当眨眼检测器检测到被试者3秒内眨眼次数少于4次,则认为无误,计算机运行d:\1.exe,d:\1.exe为实现功能图标的触发的可执行程序。
当检测到3秒内连续4次眨眼,则认为指令错误,计算机运行d:\2.exe,d:\2.exe为删除该触发指令并重新提取采集和识别眼睛运动信号的可执行程序。