发明内容
本发明的目的是提供一种判别视线方向的方法和装置,以便于对显示终端进行非接触式操作。
根据本发明的一方面,提供了一种判别视线方向的方法,以确定操作者的视线相对于显示屏幕的显示区域的位置,包括:
a.提供分别对应于所述显示区域的多个位置的多组头部姿态参数和眼睛姿态参数的基准值;
b.获取操作者头部正面的图像;
c.根据所获取的图像计算操作者的头部姿态参数和眼睛姿态参数的当前值;和
d.基于所计算的当前值和所述多组头部姿态参数和眼睛姿态参数的基准值确定操作者的视线相对于所述显示区域的位置,
其中所述头部姿态参数包括与头部的俯仰姿势有关的头部俯仰参数和与头部的水平转动角度有关的头部水平转动参数,所述眼睛姿态参数包括与视线在水平方向上的注视方向有关的水平注视参数和与视线在竖直方向上的注视方向有关的竖直注视参数。
优选地,步骤a包括:
对于所述多个位置中的每一个位置,
a1.在该位置显示注视对象,并在操作者注视所述注视对象时捕捉操作者头部正面的图像;和
a2.根据所捕捉的图像计算对应于该位置的一组头部姿态参数和眼睛姿态参数的基准值,并提供所述基准值。
根据本发明的另一方面,提供了一种判别视线方向的装置,以确定操作者的视线相对于显示终端的显示区域的位置,其中所述显示终端连接到该装置,该装置包括:
存储装置,用于存储分别对应于所述显示区域的多个位置的多组头部姿态参数和眼睛姿态参数的基准值;
图像获取装置,用于获取操作者头部正面的图像;
图像分析装置,用于根据所获取的图像计算操作者的头部姿态参数和眼睛姿态参数的当前值;和
视线方向判别装置,基于所计算的当前值和所述多组头部姿态参数和眼睛姿态参数的基准值确定操作者的视线相对于所述显示区域的位置,
其中所述头部姿态参数包括与头部的俯仰姿势有关的头部俯仰参数和与头部的水平转动角度有关的头部水平转动参数,所述眼睛姿态参数包括与视线在水平方向上的注视方向有关的水平注视参数和与视线在竖直方向上的注视方向有关的竖直注视参数。
优选地,该判别视线方向的装置还包括用于在所述多个位置上显示注视对象的注视对象驱动装置。
进一步优选地,对于所述多个位置中的每一个位置:
所述注视对象驱动装置在该位置显示注视对象,并且所述图像获取装置在操作者注视所述注视对象时捕捉操作者头部正面的图像;和
所述图像分析装置根据所捕捉的图像计算对应于该位置的一组头部姿态参数和眼睛姿态参数的基准值,并且将所计算的基准值提供给所述存储装置。
利用本发明,可以通过注视期望操作的对象来完成对操作对象的选择或操作,也就是说,利用本发明可以实现非接触式操作。因此本发明带来的有益效果是:有助于防止使用公用设施时传播病菌;和为不方便利用手动方式进行操作的残疾人提供了便利。本发明的附加优点是避免了因经常接触使用而可能对操作设备造成的人为磨损。
具体实施方式
图1示出了根据本发明的装置10,包括图像获取装置12、连接到图像获取装置的图像分析装置14、连接到图像分析装置的存储装置16和视线方向判别装置18,其中存储装置还连接到视线方向判别装置,装置10还包括注视对象驱动装置(未示出)。使用时,装置10连接到一个显示终端,以确定操作者的视线相对于所述显示终端的显示区域的位置。装置10可以用来实施根据本发明的判别视线方向的方法,下面将结合装置10来说明该方法。
根据本发明的方法包括训练过程和实际判别过程。
在训练过程中,提供分别对应于显示终端的显示区域的多个位置的多组头部姿态参数和眼睛姿态参数的基准值,供实际判别过程使用。
头部姿态参数和眼睛姿态参数的基准值根据操作者头部正面的图像来计算得到。在一个特定优选实施例中,头部姿态参数包括与头部的俯仰姿势有关的头部俯仰参数和与头部的水平转动角度有关的头部水平转动参数,眼睛姿态参数包括与视线在水平方向上的注视方向有关的水平注视参数和与视线在竖直方向上的注视方向有关的竖直注视参数。这些参数的值可以根据操作者脸部和双眼的大小、双眼相对于脸部的位置以及瞳孔的位置来计算。鉴于下文将会涉及对这些参数的值的应用,有必要先说明这些参数的计算过程,具体如下。
对于操作者头部正面的图像,图像分析装置14首先检测图像中操作者脸部的位置及大小,这可以利用公知的人脸检测技术或其它已知技术来完成;继而在操作者脸部上检测出操作者双眼的位置及大小,这可以通过公知的模板匹配算法或其它已知方法来实现;进而在双眼上分别确定瞳孔的位置及中心坐标,例如,用公知的直方图的方法来确定。现在参照图2和图3进行详细描述。
图2是所检测到的操作者脸部及双眼的示意图,其示出了检测出的操作者脸部高度H和脸部宽度W。根据双眼的位置可以求出眉心的位置,根据操作者脸部的位置及大小、双眼的位置及大小和眉心的位置可以求出操作者双眼距下颌的高度Y1和眉心距脸部左侧边缘的距离X1,也分别在图2中示出。
因此,可以计算头部俯仰参数(下文用a1表示)的值,即比值a1=Y1/H,其大小与操作者头部的俯仰姿势有关,俯仰角在±10度的范围内时,操作者越向上仰,该比值越大;反之越小。也可以计算头部水平转动参数(下文用a2表示)的值,即比值a2=X1/W,其大小与操作者头部的水平转动角度有关,水平转动角度在±30度的范围内时,操作者越向右转,该比值越小;越向左转,该比值越大。
图3是操作者眼睛和瞳孔的示意图,其示出了操作者眼睛的宽度W2和眼帘的张开尺度Y2。根据眼睛的位置和大小及瞳孔的中心坐标可以求出操作者瞳孔中心到眼睛外侧的距离X2,也在图3中示出。
因此,可以计算水平注视参数(下文用a3表示)的值,即比值a3=X2/W2,其大小与操作者视线在水平方向上的注视方向有关。也可以计算竖直注视参数(下文用a4表示)的值,即比值a4=Y2/W2,其大小与操作者视线在竖直方向上的注视方向有关,操作者越向上方注视,Y2就越大,因而比值也越大。
接下来将举例说明如何获得分别对应于显示区域的多个位置的多组头部姿态参数和眼睛姿态参数的基准值。
在一种实施方案中,注视对象驱动装置被设置在显示区域的多个不同位置显示一个注视对象,例如,一个直径为20个像素的红色小球。就矩形显示区域而言,所述多个位置可以包括显示区域的左上角、左下角、右上角、右下角、中心和上下左右四个边各自的中点等。当小球显示在每个位置上的时候,操作者用目光注视小球足够长的时间,例如3秒以上,在此期间,诸如摄像头之类的图像获取装置12捕捉并以一定的帧率,如每秒30帧,记录操作者头部正面的图像。将所记录的图像保存在合适的媒介上,待获得对应于上述各个期望位置的图像之后由图像分析装置14分别进行处理。现在以计算对应于左上角的头部姿态参数和眼睛姿态参数的基准值为例,说明具体的处理方式。
对在显示区域左上角获得的每帧图像,按照前面所描述的计算过程利用图像分析装置14分别计算出操作者的头部姿态参数和眼睛姿态参数的值,则可得到若干组头部姿态参数和眼睛姿态参数的值。对这若干组中的对应参数值分别取平均,例如,就a1而言,根据上面的描述可以得到若干个关于a1的参数值,通过计算这若干个参数值的平均值及均方差可以确定对应于该位置的a1的基准值。用同样的方法,可以得到对应于该位置的a2、a3和a4的基准值。这样就得到了对应于显示区域左上角的头部姿态参数和眼睛姿态参数的基准值。
对在其它位置上获得的图像进行类似的处理,就得到了对应于显示区域的多个位置的多组头部姿态参数和眼睛姿态参数的基准值。
在一种供选择的方案中,注视对象驱动装置被设置在显示区域上显示一个移动的注视对象,使得所述注视对象按照一定的或随机的路线运动并在期望的多个位置停留足够长的时间,如3秒以上。在该过程中,操作者的视线跟随注视对象移动,同时图像获取装置12记录整个过程中操作者头部正面的图像。将该注视对象处于各个期望位置时所记录的图像与各个期望位置分别对应起来,并按照上述处理方式利用图像分析装置14对各个期望位置所对应的图像分别进行处理,从而获得对应于显示区域的多个位置的多组头部姿态参数和眼睛姿态参数的基准值。
将所述基准值存储在存储装置16中,供在后续的实际判别过程中使用。
在实际判别过程中,通过摄像头之类的图像获取装置12获取操作者头部正面的图像。基于所获取的图像,按照前述计算过程利用图像分析装置14计算出操作者的头部姿态参数和眼睛姿态参数的当前值,例如a1、a2、a3和a4的值。视线方向判别装置18根据所计算的当前值和存储装置16中存储的多组基准值确定操作者的视线相对于显示屏幕的显示区域的位置。优选地,视线方向分析装置通过将所计算的当前值与所述多组头部姿态参数和眼睛姿态参数的基准值进行匹配和利用插值的方法来进行确定。举例来说,假设已知分别对应于显示区域的多个位置的多组a1、a2、a3和a4的基准值,则将所计算的a1、a2、a3和a4值与所述多组a1、a2、a3和a4的基准值进行匹配,并通过插值方法得到更精细的结果。a1与a4是存在关联关系的。例如,同样将视线向下移动,操作者可能保持眼球不动,将头向下低一点(即减小a1);也可能保持头部不动,将眼睛向下转动(即减小a4);也可能通过共同调整两者来完成。这一关联关系可以通过统计来得出。a2与a3是存在关联关系的,这一关联关系也可以通过统计来得出。为了方便叙述,现在假设在操作者头部保持不动的情况下(即根据a3、a4的值)来确定视线位置。根据a3的值确定视线在左右方向上的大致位置。例如,假设显示区域上的左边中间位置所对应的a3的基准值为0.2,中心位置所对应的a3的基准值为0.5。假设计算得到的a3值为0.35,如果利用线性插值方法则可以推出此时视线在左右方向上大致处于中心偏左1/4的位置。需要说明的是,插值方法的选择根据具体情况而定,在精确度要求不是很高的应用场合可以进行线性插值,如果对精确度要求较高,可以采用更高阶的插值方法,如二阶或三阶等。这些插值方法对本领域的技术人员来说是熟知的。同样,可以根据a4的值确定视线在竖直方向上的大致位置。这样,操作者视线在屏幕显示区域上的方位就基本确定了。在头部参数的值也发生变化的情况下,用类似的方法,根据a1、a2、a3、a4的值并结合a2与a3以及a1与a4的关联关系确定操作者视线在显示区域上的具体位置。
现在参照图4举例说明根据a1、a4确定操作者视线在屏幕显示区域竖直方向上的位置的一种方法。该图中描述了对应于屏幕显示区域上、下边缘的a1和a4值的分布情况,图中的黑点表示在训练过程中得到的各组a1、a4的基准值。可以看出,对屏幕显示区域竖直方向上的某个位置,如上边缘或下边缘,a1和a4的分布是有规律的,这种规律性可以近似地用高斯分布(Gaussian Distribution)来描述。而且对于屏幕显示区域竖直方向上的不同位置,该分布是比较容易区分的,并具有各自的高斯分布中心点。这样,对于一组新的(a1,a4)的值,我们可以求出它到各个高斯分布中心点的马哈拉诺比斯距离(Mahalanobis distance)。根据各个马哈拉诺比斯距离的大小,我们可以判断出这组新的(a1,a4)的值所对应的屏幕显示区域竖直方向上的某个位置。类似地,可以根据a2、a3确定操作者视线在屏幕显示区域水平方向上的位置,从而可以确定操作者视线在屏幕显示区域上的具体位置。需要说明的是,这里所描述的方法是特定的,根据具体情况还可以通过其他已知方法来进行确定。
图象分析装置14、视线方向判别装置18和注视对象驱动装置可以是在CPU上运行的计算机程序模块或在CPU外部单独实现的硬件模块。
事实上,在实际应用时,操作者的视线可能离开显示区域。为了对这种情况进行判断,需要获得对应于显示区域的某些边界点的基准值,供确定操作者视线相对于显示区域的位置时使用。相应地,在训练过程中,需要在多个边界点上显示注视对象以按照上述方式获得对应于这多个边界点的基准值。例如,通过使注视对象的移动路线至少遍历显示区域的边界、捕捉对应于多个边界点的图像并根据图像计算相应的基准值来实现。在这种情况下,以上面提到的矩形显示区域为例,移动路线可以经过显示区域的四条边和某些中间区域,边界点可以包括显示区域的左上角、左下角、右上角、右下角和上下左右四个边各自的中点等,另外,通常还需要关于显示位置的某些中间点,如显示区域的中心,计算基准值供确定操作者视线相对于显示区域的位置时使用。边界点和中间点的选择根据具体情况而定。
前面的描述意图仅是说明性的,而不是为了限制本发明。本领域的普通技术人员可以对在这里公开的实施例的形式和细节进行许多变化,而不脱离本发明的精神和实质。本发明的范围由附加的权利要求限定。