一种基于近眼相机的视线追踪方法

文档序号:26496287发布日期:2021-09-04 00:08阅读:130来源:国知局
一种基于近眼相机的视线追踪方法

1.本发明涉及视线追踪技术领域,特别涉及一种基于近眼相机的视线追踪方法。


背景技术:

2.人眼视线能够反映人的关注信息,视线追踪技术即利用软件算法、机械、电子、光学等各种检测手段获取受试者当前视线方向的技术,它广泛应用于人机交互、辅助驾驶、心理研究、虚拟现实和军事等多个领域。
3.近年来,随着计算机和图像处理技术的发展,基于视频图像处理的视线追踪技术逐渐成为主流。如今的视线追踪系统主要分为穿戴式和非穿戴式两类。其中穿戴式指需受试者穿戴头盔、眼镜等装置,利用近眼相机采集人眼图像,并对其进行处理后得到人眼视线信息。由于穿戴式装置与受试者头部之间固定连接,因此具有成像清晰、图像背景简单的优点,但仍然存在眼部阴影、睫毛遮挡、角膜反射光斑以及瞳孔部分被遮挡等因素对瞳孔中心坐标的提取造成的影响。


技术实现要素:

4.针对背景技术中提到的问题,本发明的目的是提供一种基于近眼相机的视线追踪方法,以解决背景技术中提到的问题。
5.本发明的上述技术目的是通过以下技术方案得以实现的:
6.一种基于近眼相机的视线追踪方法,包括先采用近眼相机采集眼部灰度图像,其特征在于:还包括以下步骤:
7.step1.眼部图像预处理;
8.step2.视线特征提取;
9.step3.视线落点估计。
10.较佳的,所述step1包括以下子步骤:
11.step11.获取感兴趣区域:获取眼部灰度图像中包含完整瞳孔部分的感兴趣区域;
12.step12.中值滤波:对获取感兴趣区域的眼部灰度图像进行中值滤波。
13.较佳的,所述step11包括以下子步骤:
14.step111、图像预裁剪:以原始图像中心为中心点,选取长宽均为原始图像2/3的矩形区域对图像进行裁剪,仅保留矩形区域内像素,得到预裁剪图像;
15.step112、感兴趣区域裁剪:设定像素数量阈值num,灰度级tn(n=0,1,2

,255),初始值t0=0,遍历预裁剪图像,计算灰度值小于等于t0的像素数量num;当num<num的时候,增加灰度级,即t1=1,重新遍历预裁剪图像,再次计算小于等于此灰度级的像素数num,并与num进行比较,重复此过程,直至num满足num≥num,记录此时的灰度级tn,并将其值赋予灰度阈值t,即令t=tn;然后将预裁剪图像中所有灰度值小于t的像素利用如下公式(1),计算得到瞳孔区域的灰度质心:
[0016][0017]
其中,图像左上角作为参考坐标系原点,i和j分别表示像素的横坐标和纵坐标,f(i,j)表示像素灰度值,m和n分别表示图像中像素总列数和总行数。
[0018]
较佳的,所述step12中值滤波具体包括以下子步骤:
[0019]
step121.将含有若干个点的窗口的滤波模板中心与感兴趣区域图像中的某个像素位置重合;
[0020]
step122.读取与模板重合的所有像素的灰度值;
[0021]
step123.将这些灰度值从小到大进行排列;
[0022]
step124.取这些数据的中值,将其赋予对应模板中心位置的像素,如果窗口中有奇数个像素,中值取按灰度值大小排序后的中间像素的灰度值,如果窗口中有偶数个像素,中值取按灰度值大小排序后,中间两个像素灰度的平均值;
[0023]
step125.更改滤波模板位置,按照从左到右、从上到下的顺序,重复step121到step124,遍历整幅感兴趣区域图像。
[0024]
较佳的,所述step2包括以下子步骤:
[0025]
step210.二值化分割;
[0026]
step220.形态学处理;
[0027]
step230.获取最大连通区域;
[0028]
step240.瞳孔边缘提取;
[0029]
step250.光斑区域去除;
[0030]
step260.椭圆拟合。
[0031]
较佳的,所述step210二值化分割时,利用步骤step112中得到的灰度阈值t,根据如下公式(2)对图像进行二值化分割:
[0032][0033]
其中,f(x,y)为灰度图像,g(x,y)为分割后的二值图像。
[0034]
较佳的,所述step220形态学处理时,利用公式(3)对二值图像先进行形态学闭运算处理,再利用公式(4)对形态学闭运算处理后的图像进行形态学开运算处理,用以去除二值图像中的残余睫毛、瞳孔边缘噪点以及小面积阴影区域:
[0035][0036]
[0037]
所述step230获取最大连通区域时遍历整幅图象,标记出每个连通区域,并计算各个连通区域的像素数量,最后仅保留像素数量最多的连通区域,用以去除图像中的与瞳孔区域面积接近的阴影或眉毛等噪声区域;
[0038]
所述step230步骤中,最大连通区域的获取包括以下步骤:
[0039]
step231、按照从左到右、从上到下的顺序遍历图像,标号初始值为1,当遇到像素值为1的点时,判断其邻接的左、左上、上、右上这4个像素是否已被标记,若没有被标记则将该像素点赋予新的标号;若已被标记,则将该像素赋予同一标号,如果邻接像素存在多种标号,则将该像素赋予最小的标号,并将这多个标号记为一个等价对;
[0040]
step232、将存在直接或间接等价关系的等价对合并为一个等价序列,并赋予每个等价序列一个序列号,序列号以1为初始值逐次递增,然后重新遍历一次图像,将属于同一等价序列的标记像素赋予该等价序列的序列号,即标记出每个连通区域;
[0041]
step233、计算每个连通区域的像素数量,将像素数量最大的连通区域予以保留,将其像素值置为1,其余像素值均置为0,完成获取最大连通区域步骤。
[0042]
较佳的,所述step240瞳孔边缘提取时,采用canny算子对图像进行处理,包括利用一阶偏导的有限差分计算梯度幅值和方向、对梯度幅值进行非极大值抑制、双阈值法检测和连接边缘三个子步骤;
[0043]
step241、用一阶偏导的有限差分计算梯度幅值和方向:
[0044]
使用sobel算子计算x和y方向上的梯度以及梯度的方向角;
[0045]
将待检测边缘的图像i分别与x和y方向的卷积因子进行卷积,采用公式(5)如下:
[0046][0047]
求得x、y方向的梯度后,再采用公式(6)计算梯度图像的幅值:
[0048][0049]
最后采用公式(7)计算梯度的方向角:
[0050][0051]
step242、对梯度幅值进行非极大值抑制:
[0052]
对step241得到的幅值图像进行非极大值抑制,消除非边缘点的噪声并细化边缘,以待判断像素点为中心分为四个扇区,代表梯度方向近似的四个可能的角度,将梯度角离散为圆周的四个扇区,对应于8邻域空间的四种可能组合;抑制逻辑为:沿着待判断点的梯度方向,比较前后两个点的幅值大小,若该点大于前后两点,则保留,若该点小于前后两点,则置为0,对每一个像素点都进行此操作,即完成了非极大值抑制;
[0053]
step243、用双阈值算法检测和连接边缘:
[0054]
所述双阈值的机理为指定一个低阈值和一个高阈值,对非极大值抑制后的图像进行判断,根据判断结果分为以下三种情况:如果某一像素位置的梯度幅值超过高阈值,则该像素被保留为边缘像素;如果某一像素位置的梯度幅值小于低阈值,则该像素被排除;如果
某一像素位置的梯度幅值介于高、低阈值之间,则判断该像素8邻域空间的像素是否存在高于高阈值的像素,如果存在,则该像素被保留。
[0055]
较佳的,所述step250光斑区域去除时,设置光斑灰度阈值tspot,利用阈值分割法对灰度图像进行处理,得到仅包含光斑区域的二值图像;利用光斑区域外接矩形中心作为中心,设置长宽为该外接矩形2倍的矩形区域,对该区域的像素坐标位置进行标记,将该标记范围内的像素的值置为0,作为假性边缘点进行去除;
[0056]
所述step260椭圆拟合时,通过计算瞳孔区域的对称性,将瞳孔分为遮挡和未遮挡两种情况,对不同情况采取不同的拟合点采样方式,利用最小二乘法对瞳孔边缘点进行椭圆拟合,进而得到椭圆中心坐标,并将其视作瞳孔中心;
[0057]
所述step260椭圆拟合时,包括以下子步骤:
[0058]
step261、计算每行瞳孔左右边缘像素点之间的距离,找到距离最大的两个边缘点将其连接,作为瞳孔区域上下部分的分割线,然后分别求取上下部分外接矩形的高度h1和h2,计算二者之比r,得到公式(8):
[0059][0060]
step262、将r的阈值设置为0.9,即当r≥0.9时,认定瞳孔未被遮挡;而当r<0.9时,认定瞳孔区域被遮挡;
[0061]
step262、采样点选取:对于瞳孔未被遮挡的情况,所有瞳孔边缘点均为有效采样点,采用随机10点采样的方法选取采样点;对于瞳孔被遮挡的情况,取瞳孔轮廓的左、右、下3个特征边缘点,即瞳孔区域上下部分的分割线与瞳孔左右边缘的交点,以及瞳孔边缘纵坐标最小点,同时对瞳孔轮廓的下半部分边缘进行随机7点采样,将这10个点共同组成被遮挡瞳孔的采样点;
[0062]
step263、建立二维平面坐标系下的椭圆方程,即公式(9):
[0063]
x2+axy+by2+cx+dy+e=0
ꢀꢀ
(9);
[0064]
其中x、y分别为横、纵坐标,a、b、c、d、e为待定参数,设p
i
(x
i
,y
i
)(i=1,2,

,10)为瞳孔边缘轮廓上的采样点,依据最小二乘原理,所拟合的目标函数为公式(10):
[0065][0066]
f要达到最小,需要满足公式(11)条件:
[0067][0068]
因此得到以下公式(12)方程:
[0069]
[0070]
解此方程得到参数a、b、c、d、e的值,最后根据椭圆的几何运算计算出椭圆中心(xe,ye);
[0071]
所述step3包括以下步骤:
[0072]
step310、采用基于九点标定的二维多项式映射的方法,计算瞳孔中心坐标与交互界面标定点之间的拟合参数,采用的标定方法如下:将交互界面的长、宽三等分得到等面积的9个注视区域,取每个区域的中心点作为标定点,用户佩戴近眼相机,保持头部位置不动,眼睛依次注视标定界面上的九个点,同时记录每组瞳孔中心坐标及对应的标定界面注视点坐标;
[0073]
step320、建立公式(13)的二维映射方程:
[0074][0075]
其中,x
c
、y
c
分别为标定界面的标定点的横、纵坐标,x
e
、y
e
分别为对应瞳孔中心横、纵坐标,a0~a5和b0~b5为待定参数,将9组标定坐标数据代入方程组中,求解待定参数即可得到映射方程。
[0076]
综上所述,本发明主要具有以下有益效果:
[0077]
本发明对现有视线追踪方法进行了分析和改进,提出了一种由粗到精进行瞳孔中心点获取的视线追踪方法。首先在图像预处理步骤中采用了改进的灰度质心算法得到瞳孔粗定位中心,并以此中心裁剪得到包含完整瞳孔的感兴趣区域,大大减小了原始图像中噪声影响以及所要处理的数据量,提高了后续算法的处理速度和准确性;其次在视线特征提取步骤中采用了改进的连通区域标记算法,提高了标记速度,从而提高了算法的实时性;最后通过光斑检测算法对受光斑区域影响的瞳孔边缘点进行了剔除,并在椭圆拟合步骤中采用了瞳孔遮挡判定的方法,对不同遮挡情况进行相应的算法处理,提高了椭圆拟合算法的效率和准确性。本方法同现有的视线追踪方法相比,在光照不良环境下、角膜反射光斑明显、睫毛和眼睑遮挡瞳孔情况下均表现出较好的鲁棒性,具有较高的精确性,同时具有良好的实时性。本发明提出了一种基于近眼相机的视线追踪方法,该方法解决了阴影区域噪声及反射光斑对瞳孔边缘提取产生干扰的问题,同时根据瞳孔的不同遮挡情况,提出了相对应的采样点选取算法,提升了瞳孔中心定位的准确性。该视线追踪方法具有鲁棒性强、瞳孔中心定位精度高以及实时性好等优点。
附图说明
[0078]
图1是本发明的算法流程图;
[0079]
图2是获取灰度阈值t的流程图;
[0080]
图3是二值图像阵列示意图;
[0081]
图4是标记像素阵列及等价对示意图;
[0082]
图5等价序列及标记连通像素阵列示意图;
[0083]
图6最大连通区域像素矩阵示意图;
[0084]
图7是sobel算子图;
[0085]
图8是梯度方向示意图;
[0086]
图9是瞳孔未遮挡情况示意图;
[0087]
图10是瞳孔遮挡情况示意图
[0088]
图11是遮挡瞳孔轮廓特征点示意图;
[0089]
图12是九点标定界面示意图。
具体实施方式
[0090]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0091]
参考图1至图12,一种基于近眼相机的视线追踪方法,包括先采用近眼相机采集眼部灰度图像,其特征在于:还包括以下步骤:
[0092]
step1.眼部图像预处理;
[0093]
step2.视线特征提取;
[0094]
step3.视线落点估计。
[0095]
较佳的,step1包括以下子步骤:
[0096]
step11.获取感兴趣区域:获取眼部灰度图像中包含完整瞳孔部分的感兴趣区域;
[0097]
step12.中值滤波:对获取感兴趣区域的眼部灰度图像进行中值滤波。
[0098]
其中,step11包括以下子步骤:
[0099]
step111、图像预裁剪:以原始图像中心为中心点,选取长宽均为原始图像2/3的矩形区域对图像进行裁剪,仅保留矩形区域内像素,得到预裁剪图像;
[0100]
step112、感兴趣区域裁剪:设定像素数量阈值num,灰度级tn(n=0,1,2

,255),初始值t0=0,遍历预裁剪图像,计算灰度值小于等于t0的像素数量num;当num<num的时候,增加灰度级,即t1=1,重新遍历预裁剪图像,再次计算小于等于此灰度级的像素数num,并与num进行比较,重复此过程,直至num满足num≥num,记录此时的灰度级tn,并将其值赋予灰度阈值t,即令t=tn;然后将预裁剪图像中所有灰度值小于t的像素利用如下公式(1),计算得到瞳孔区域的灰度质心:
[0101][0102]
其中,图像左上角作为参考坐标系原点,i和j分别表示像素的横坐标和纵坐标,f(i,j)表示像素灰度值,m和n分别表示图像中像素总列数和总行数。
[0103]
其中,step12中值滤波具体包括以下子步骤:
[0104]
step121.将含有若干个点的窗口的滤波模板中心与感兴趣区域图像中的某个像
素位置重合;
[0105]
step122.读取与模板重合的所有像素的灰度值;
[0106]
step123.将这些灰度值从小到大进行排列;
[0107]
step124.取这些数据的中值,将其赋予对应模板中心位置的像素,如果窗口中有奇数个像素,中值取按灰度值大小排序后的中间像素的灰度值,如果窗口中有偶数个像素,中值取按灰度值大小排序后,中间两个像素灰度的平均值;
[0108]
step125.更改滤波模板位置,按照从左到右、从上到下的顺序,重复step121到step124,遍历整幅感兴趣区域图像。
[0109]
较佳的,step2包括以下子步骤:
[0110]
step210.二值化分割;
[0111]
step220.形态学处理;
[0112]
step230.获取最大连通区域;
[0113]
step240.瞳孔边缘提取;
[0114]
step250.光斑区域去除;
[0115]
step260.椭圆拟合。
[0116]
其中,step210二值化分割时,利用步骤step112中得到的灰度阈值t,根据如下公式(2)对图像进行二值化分割:
[0117][0118]
其中,f(x,y)为灰度图像,g(x,y)为分割后的二值图像。
[0119]
其中,step220形态学处理时,利用公式(3)对二值图像先进行形态学闭运算处理,再利用公式(4)对形态学闭运算处理后的图像进行形态学开运算处理,用以去除二值图像中的残余睫毛、瞳孔边缘噪点以及小面积阴影区域:
[0120][0121][0122]
step230获取最大连通区域时遍历整幅图象,标记出每个连通区域,并计算各个连通区域的像素数量,最后仅保留像素数量最多的连通区域,用以去除图像中的与瞳孔区域面积接近的阴影或眉毛等噪声区域;
[0123]
step230步骤中,最大连通区域的获取包括以下步骤:
[0124]
step231、按照从左到右、从上到下的顺序遍历图像,标号初始值为1,当遇到像素值为1的点时,判断其邻接的左、左上、上、右上这4个像素是否已被标记,若没有被标记则将该像素点赋予新的标号;若已被标记,则将该像素赋予同一标号,如果邻接像素存在多种标号,则将该像素赋予最小的标号,并将这多个标号记为一个等价对;
[0125]
step232、将存在直接或间接等价关系的等价对合并为一个等价序列,并赋予每个等价序列一个序列号,序列号以1为初始值逐次递增,然后重新遍历一次图像,将属于同一等价序列的标记像素赋予该等价序列的序列号,即标记出每个连通区域;
[0126]
step233、计算每个连通区域的像素数量,将像素数量最大的连通区域予以保留,将其像素值置为1,其余像素值均置为0,完成获取最大连通区域步骤。
[0127]
其中,所述step240瞳孔边缘提取时,采用canny算子对图像进行处理,包括利用一阶偏导的有限差分计算梯度幅值和方向、对梯度幅值进行非极大值抑制、双阈值法检测和连接边缘三个子步骤;
[0128]
step241、用一阶偏导的有限差分计算梯度幅值和方向:
[0129]
使用sobel算子计算x和y方向上的梯度以及梯度的方向角;
[0130]
将待检测边缘的图像i分别与x和y方向的卷积因子进行卷积,采用公式(5)如下:
[0131][0132]
求得x、y方向的梯度后,再采用公式(6)计算梯度图像的幅值:
[0133][0134]
最后采用公式(7)计算梯度的方向角:
[0135][0136]
step242、对梯度幅值进行非极大值抑制:
[0137]
对step241得到的幅值图像进行非极大值抑制,消除非边缘点的噪声并细化边缘,以待判断像素点为中心分为四个扇区,代表梯度方向近似的四个可能的角度,将梯度角离散为圆周的四个扇区,对应于8邻域空间的四种可能组合;抑制逻辑为:沿着待判断点的梯度方向,比较前后两个点的幅值大小,若该点大于前后两点,则保留,若该点小于前后两点,则置为0,对每一个像素点都进行此操作,即完成了非极大值抑制;
[0138]
step243、用双阈值算法检测和连接边缘:
[0139]
双阈值的机理为指定一个低阈值和一个高阈值,对非极大值抑制后的图像进行判断,根据判断结果分为以下三种情况:如果某一像素位置的梯度幅值超过高阈值,则该像素被保留为边缘像素;如果某一像素位置的梯度幅值小于低阈值,则该像素被排除;如果某一像素位置的梯度幅值介于高、低阈值之间,则判断该像素8邻域空间的像素是否存在高于高阈值的像素,如果存在,则该像素被保留。
[0140]
其中,step250光斑区域去除时,设置光斑灰度阈值tspot,利用阈值分割法对灰度图像进行处理,得到仅包含光斑区域的二值图像;利用光斑区域外接矩形中心作为中心,设置长宽为该外接矩形2倍的矩形区域,对该区域的像素坐标位置进行标记,将该标记范围内的像素的值置为0,作为假性边缘点进行去除;
[0141]
step260椭圆拟合时,通过计算瞳孔区域的对称性,将瞳孔分为遮挡和未遮挡两种情况,对不同情况采取不同的拟合点采样方式,利用最小二乘法对瞳孔边缘点进行椭圆拟合,进而得到椭圆中心坐标,并将其视作瞳孔中心;
[0142]
step260椭圆拟合时,包括以下子步骤:
[0143]
step261、计算每行瞳孔左右边缘像素点之间的距离,找到距离最大的两个边缘点将其连接,作为瞳孔区域上下部分的分割线,然后分别求取上下部分外接矩形的高度h1和h2,计算二者之比r,得到公式(8):
[0144][0145]
step262、将r的阈值设置为0.9,即当r≥0.9时,认定瞳孔未被遮挡;而当r<0.9时,认定瞳孔区域被遮挡;
[0146]
step262、采样点选取:对于瞳孔未被遮挡的情况,所有瞳孔边缘点均为有效采样点,采用随机10点采样的方法选取采样点;对于瞳孔被遮挡的情况,取瞳孔轮廓的左、右、下3个特征边缘点,如图11中
“×”
点所示,同时对瞳孔轮廓的下半部分边缘进行随机7点采样,将这10个点共同组成被遮挡瞳孔的采样点;
[0147]
step263、建立二维平面坐标系下的椭圆方程,即公式(9):
[0148]
x2+axy+by2+cx+dy+e=0
ꢀꢀ
(9);
[0149]
其中x、y分别为横、纵坐标,a、b、c、d、e为待定参数,设p
i
(x
i
,y
i
)(i=1,2,

,10)为瞳孔边缘轮廓上的采样点,依据最小二乘原理,所拟合的目标函数为公式(10):
[0150][0151]
f要达到最小,需要满足公式(11)条件:
[0152][0153]
因此得到以下公式(12)方程:
[0154][0155]
解此方程得到参数a、b、c、d、e的值,最后根据椭圆的几何运算计算出椭圆中心(x0,y0);
[0156][0157]
其中step3.视线落点估计包括以下步骤:
[0158]
step310、采用基于九点标定的二维多项式映射的方法,计算瞳孔中心坐标与交互界面标定点之间的拟合参数。标定方法如下:将交互界面的长、宽三等分得到等面积的9个注视区域,取每个区域的中心点作为标定点,如图12所示。用户佩戴近眼相机,保持头部位置不动,眼睛依次注视标定界面上的九个点,同时记录每组瞳孔中心坐标及对应的标定界面注视点坐标。
[0159]
step320、建立如下二维映射方程:
[0160][0161]
其中,x
c
、y
c
分别为标定界面的标定点的横、纵坐标,x
e
、y
e
分别为对应瞳孔中心横、纵坐标,a0~a5和b0~b5为待定参数,将9组标定坐标数据代入方程组中,求解待定参数即可得到映射方程。此步骤的目的在于获取瞳孔坐标平面与交互平面的映射关系,通过这种映射关系,可以将瞳孔的中心坐标转换为交互平面上的坐标,进而实现视线追踪。
[0162]
其中,本发明对现有视线追踪方法进行了分析和改进,提出了一种由粗到精进行瞳孔中心点获取的视线追踪方法。首先在图像预处理步骤中采用了改进的灰度质心算法得到瞳孔粗定位中心,并以此中心裁剪得到包含完整瞳孔的感兴趣区域,大大减小了原始图像中噪声影响以及所要处理的数据量,提高了后续算法的处理速度和准确性;其次在视线特征提取步骤中采用了改进的连通区域标记算法,提高了标记速度,从而提高了算法的实时性;最后通过光斑检测算法对受光斑区域影响的瞳孔边缘点进行了剔除,并在椭圆拟合步骤中采用了瞳孔遮挡判定的方法,对不同遮挡情况进行相应的算法处理,提高了椭圆拟合算法的效率和准确性。本方法同现有的视线追踪方法相比,在光照不良环境下、角膜反射光斑明显、睫毛和眼睑遮挡瞳孔情况下均表现出较好的鲁棒性,具有较高的精确性,同时具有良好的实时性。本发明提出了一种基于近眼相机的视线追踪方法,该方法解决了阴影区域噪声及反射光斑对瞳孔边缘提取产生干扰的问题,同时根据瞳孔的不同遮挡情况,提出了相对应的采样点选取算法,提升了瞳孔中心定位的准确性。该视线追踪方法具有鲁棒性强、瞳孔中心定位精度高以及实时性好等优点。
[0163]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1