一种人眼红外图像瞳孔位置检测方法

文档序号:6364018阅读:232来源:国知局
专利名称:一种人眼红外图像瞳孔位置检测方法
技术领域
本发明涉及一种图像检测技术领域的一种方法,具体是一种可用于从人眼红外图像中检测瞳孔位置的方法。
背景技术
检测人眼瞳孔位置,就可以知道被测人的注意力放在那些物体上,这对于医学领域、产品设计以及人为因素研究等具有重大意义,非接触式的人眼瞳孔检测方法,即,使用图像检测技术获取人眼瞳孔位置的方法较为方便和被普通被测人员所接受。高效、准确的图像检测技术是不但能够降低眼位检测系统的硬件成本,同时能够增加检测的准确性和效率,因此,迫切需要高效、准确的从图像检测人眼瞳孔的方法。从图像中快速检测人眼瞳孔是眼位检测系统中的关键且难度非常大的环节,其原因在于,人眼动作通常较快,因此捕捉人眼运动的图像设备通常具有较高的帧率,这意味着检测人眼瞳孔的位置的过程必须在极短的时间内完成,否则会造成检测的人眼瞳孔位置不连续。人眼的瞳孔会反射红外线,人眼的红外图像中瞳孔位置的像素通常比较明亮,因此通常采用红外图像来检测瞳孔位置。通过对相关技术文献检索发现,从红外人眼图像检测瞳孔位置的采用 Xindian Long 在文献《A High Speed Eye Tracking System withRobust Pupil Center Estimation Algorithm》 (Engineering in Medicine and BiologySociety, 2007 Annual International Conference)人工根据环境设定阈值,对人眼红外图像进行二值化,然后进行一定的形态操作,最后得到瞳孔的位置。或者采用ChirayuthSreecholpech 在文献〈〈Circular and Elliptical Modeling for Pupil Boundary inClosed-up Human Eye Images》 (Electrical Engineering/Electronics, Computer,Telecommunications and Information Technology, ECTI CON 2008. 5th InternationalConference, Volume I, May2008)介绍的方法,根据人眼瞳孔是圆形这一特点,采用霍夫变换从图像中提取圆形目标,然后筛选掉半径较大和较小的圆形目标,剩下的就是人眼瞳孔。但是这两种方法都有一定的缺陷,第一种方法,需要大量人工干预,环境稍有变化就需要重新确定阈值。第二种方法,计算量比较大,需要精确定位瞳孔位置而采用高分辨率图像的情况难以做到实时处理。

发明内容
针对上述现有技术存在的问题,本发明的目的在于提供一种人眼红外图像瞳孔位置检测方法,该方法能够用于实时从人眼红外图像中检测人眼瞳孔位置,减少人工干预,且具有很高的精度和鲁棒性。本发明是通过以下技术方案实现的。一种人眼红外图像瞳孔位置检测方法,包括如下步骤步骤一,采用常速模型对图像从上到下,从下到上,从左到右,从右到左,四个方向每行每列对应设置的一个卡尔曼滤波器进行设定初始像素值;
步骤二,利用步骤一中的初始像素值使用卡尔曼滤波器对图像进行四个方向的滤波,在对每行每列进行滤波的同时利用来自于每个滤波器在每个位置的测量残差计算并保存该位置的残差权值I (k);步骤三,将四个方向分别计算得到的相同位置的残差权值ξ (k)求和,将结果与由预设虚的警率计算得到的域值进行二值化操作得到瞳孔模版。步骤一中的卡尔曼滤波器利用前一时刻地估计值和当前时刻的观测值来更新对状态变量的估计,得到当前时刻的估计值。步骤一中采用常速模型的卡尔曼滤波器的参数设定为状态向量χ=(7 )τ, 是对图像中某行某列的某个像素的灰度值的估计,n没有具体的意义,测量向量的值z(k)等于某个滤波器在第k时刻与该滤波器对应的行或列的第k个元素的像素值,测量矩阵H (I τλ _
=(O I),系统控制矩阵G = 0,状态转移矩阵 Λ 1,Τ为采样时间,这里T= 1,这里测
F=、0 1J
量噪声方差R = 50,状态噪声方差Q=G j,初始方差P (O IO)=。步骤一中卡尔曼滤波器设定初始像素值为a.从上到下沿着每一列分别滤波时第n(n = 1,2,3,…)个滤波器初始状态值确定如下x(0|0) = (O I(l,n))T,I(l,n)为图像第I行,n列的像素值;b.从下到上沿着每一列分别滤波时第n个滤波器初始状态值确定如下x(0|0) = (0,I(M,n))T,I(M,n)为图像第 M 行,n 列的像素值;c.从左到右沿着每一行分别滤波时第n个滤波器初始状态值确定如下x(0|0) = (O I(n,l))T,l(n,0)为图像第 n 行,I 列的像素值;d.从右到左沿着每一行分别滤波时第n个滤波器初始状态值确定如下x(0|0) = (O I(n,N))T,I(n,N)为图像第n行,N列的像素值,其中I表示图像的灰度值。步骤二中的测量残差的公式为μ (k+1) = z(k+l)_z(k+l|k),其中,k为时刻,测量向量的值z (k+1)等于某个滤波器的第k+Ι时刻与该滤波器对应的行或列的第k+Ι个元素的像素值;步骤二中的残差权值ξ (k)是人为定义的一个量,是利用所得的残差和残差的方差经运算得到的。所述的将结果与由人工选取的域值进行二值化操作,是指当某一位置残差权值I (k)的和大于所设定的域值,将此位置的值设为1,当残差权值ξ (k)的和小于所设定的域值,将此位置的值设为O。与现有技术相比,本发明具有以下有益效果本方法只需人工根据经验和检测效果确定Kalman滤波器中的测量噪声的方差和获取模版时的域值两个参数,计算量与使用阈值的方法在同一数量级,具有较好的实时性和良好的检测效果。
具体实施例方式下面通过实施例进一步说明本发明是如何实现的。实施例
人眼红外图像瞳孔位置检测方法步骤一,采用常速模型对图像从上到下,从下到上,从左到右,从右到左,四个方向每行每列对应设置的一个卡尔曼滤波器设定初始像素值。首先近距离拍摄人眼红外图像。设该人眼图像I大小为M*N像素(M为图像的宽度方向像素的个数,N为图像的高度方向像素个数),由于需要从四个方向进行滤波,即从上到下,从下到上,从左到右,从右到左,每行(列)对应一个滤波器,所以需要初始化2(M+N)个滤波器。步骤一中的卡尔曼滤波器采用信号与噪声的状态空间模型,利用前一时刻的估计值和现时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值。卡尔曼滤波器对于高斯噪声下对线性系统进行参数估计具有较好效果。给定状态方程和测量方程如下X (k+1) = F (k) X (k) +G (k) u (k) +v (k) (I)
z (k+1) = H (k+1) X (k+1)+w (k+1)其中x,z为状态向量和测量向量;v,w为零均值高斯噪声,分别被称作状态噪声和测量噪声,Q,R分别其为方差;u是已知的输入向量,F,H为状态转移矩阵和测量矩阵;F,G,Q假设已知并且可能是时变的;这两个噪声序列和初始状态假设互不相关。卡尔曼滤波方法可以描述如下X (k+11 k) = F (k) X (k I k)+G (k) u (k)z (k+1) = H (k+1) X (k+11 k) (2)μ (k+1) = z (k+1) _z (k+11 k)P (k+11 k) = F(k)P(k|k)F(k) ; +Q (k)S (k+1) = R (k+1) +H (k+1) P (k+11 k) H (k+1)'X (k+11 k+1) = X (k+11 k) +W (k+1) μ (k+1)W (k+1) = P (k+11 k) H (k+1) ' S (k+1)-IP (k+11 k+1) = P (k+11 k) -W (k+1) S (k+1) W (k+1)'其中A (k+11 k)表示在k时刻对k+1时刻A的值的估计;P,S为状态协方差矩阵和更新协方差矩阵;w,μ为滤波器增益和测量残差。本实施例在滤波时采用常速模型(CV模型)的卡尔曼滤波器进行滤波。即使用CV模型来描述图像的变化情况。瞳孔区域的图像不满足CV模型,因而只要检测出这些不满足CV模型的区域就可以检测出瞳孔区域。在采用常速模型(CV模型)的卡尔曼滤波器中,步骤一中采用常速模型的卡尔曼滤波器的参数设定为状态向量X= (η Υ ’々是对图像中某行某列的某个像素的灰度值的估计,η没有具体的意义,测量向量的值z(k)等于某个滤波器在第k时刻与该滤波器对应的行或列的第k个元素的像素值,测量矩阵H= (O 1),系
(I τΛ _
统控制矩阵G = 0,状态转移矩阵F=,Τ为采样时间,这里T = 1,这里测量噪声方差
U
(Ix ( R RIT Λ
R= 50,状态噪声方差Q= O χ,初始方差P(OlO)= RjT 2r/t2。把图像中的每行(列)看作是一个测量序列,即(I)式中的Z,那么就可以使用上述CV模型的卡尔曼滤波器对图像的每一行(列)分别进行滤波。每一行(列)对应一个卡尔曼滤波器。由于将图像中的行(列)看作是测量序列,因此对应于某个滤波器的第k时刻的测量向量的值Z (k)等于与该滤波器对应的行(列)的第k个元素的像素值。每个滤波器均采用上述相同的参数设置。步骤一中卡尔曼滤波器设定初始像素值为a.从上到下沿着每一列分别滤波时第η (η = 1,2,3,…)个滤波器初始状态值确定如下x(0|0) = (O I(l,n))T,I(l,n)为图像第I行,η列的像素值;b.从下到上沿着每一列分别滤波时第η个滤波器初始状态值确定如下 χ(0|0) = (0,Ι(Μ,η))τ,Ι(Μ,η)为图像第 M 行,η 列的像素值;c.从左到右沿着每一行分别滤波时第η个滤波器初始状态值确定如下χ(0|0) = (O I (n, I))τ, I (η,O)为图像第 η 行,I 列的像素值;cL从右到左沿着每一行分别滤波时第η个滤波器初始状态值确定如下χ(0|0)=(O Ι(η, N))τ, Ι(η, N)为图像第η行,N列的像素值,其中I表示图像的灰度值。也可以将所有滤波器状态初始值设置为χ_ = (ο rfj为图像I的平均灰度值,但求取了会一定程度上降低检测速度。步骤二,利用步骤一中的初始像素值使用卡尔曼滤波器对图像进行四个方向的滤波,在对每行每列进行滤波的同时利用来自于每个滤波器在每个位置的测量残差μ (k)计算并保存该位置的残差权值ξ (k);步骤二中的测量残差的公式为μ (k+1)=Z(k+i)-Z(k+i |k),其中,k为时刻,测量向量的值Z(k+1)等于某个滤波器的第k+i时刻与该滤波器对应的行或列的第k+Ι个元素的像素值;这里的测量残差来自于卡尔曼滤波器,即(2)式中的μ。对于步骤一中的任意一个滤波器,在高斯条件下μ (k) DN(0,S(k)),N(0, S(k))为均值0,方差为S(k)的正态分布,并且残差权值ξ (k) = μ T (k) S-1 (k) μ (k) (3)服从( nz=dim(^ ),是μ的维数)分布,其中μ (k),S (k)见⑵式。沿自上而下的方向对对图片每一列进行滤波的同时利用来自于滤波器在的测量残差μ (k)计算该位置的残差权值ξ (k),将其保存矩阵Σ up中。类似的沿自下而上的方向、自左而右、自由而左的方向对图片进行滤波时可以分别得到Σ down, Σ left, Σ right。矩阵Σ up,Σ down, Σ left,Σ right用以在步骤三中确定瞳孔模版。步骤三,将四个方向分别计算得到的相同位置的残差权值ξ (k)求和,将结果与由人工选取的域值进行二值化操作得到瞳孔模版。所述的将结果与由人工选取的域值进行二值化操作,是指当某一位置残差权值I (k)的和大于所设定的域值,将此位置的值设为1,当残差权值ξ (k)的和小于所设定的域值,将此位置的值设为O。由于基于残差的X 2检测有一定的滞后性,仅采用从一个方向进行检测会造成检测到的瞳孔位置偏离真实位置,例如,仅采从上到下的检测会发生检测到的瞳孔比实际瞳孔的位置略微偏下,因此采用从四个方向分别滤波并计算残差权值ξ (k),然后将四个方向分别计算得到相同位置的残差权值ξ (k)分别相加,即,计算E = Eup+ Σ down+ Σ left+ Σ right (4)Σ如果残差权值ξ (k)的和超过了某个域值ξ(^>ζΙ(α)(5)
该位置就是瞳孔区域,其中l-α为置信区间,Zt(㈨为选取域值的一个参照,具体的取值范围可以根据X2分布表来选取,人工选取域值的时候一般应适当增大域值。由人工选取的域值对Σ进行二值化操作得到瞳孔模版。即,若矩阵Σ中第i行j列元素的值大于设定的域值则将矩阵中该元素的值置为1,否则置为O。对矩阵Σ进行二值 化后就得到了瞳孔模版。该域值应不低于( O,可根据实际检测效果进行增加,本实例中该域值设置为60。这样所取得的瞳孔模版略大于真实的瞳孔,从瞳孔模板估计出模板的中心,该中心即为瞳孔的中心,由于瞳孔是对称的,因此虽然模板略大于真实瞳孔,但其中心位置能够保持与实际瞳孔位置一致。
权利要求
1.一种人眼红外图像瞳孔位置检测方法,包括如下步骤 步骤一,采用常速模型对图像从上到下,从下到上,从左到右,从右到左,四个方向每行每列对应设置的一个卡尔曼滤波器设定初始像素值; 步骤二,利用步骤一中的初始像素值使用卡尔曼滤波器对图像进行四个方向的滤波,在对每行每列进行滤波的同时利用来自于每个滤波器在每个位置的测量残差计算,并保存该位置的残差权值ξ (k); 步骤三,将四个方向分别计算得到的相同位置的残差权值ξ (k)求和,将结果与由人工选取的域值进行二值化操作得到瞳孔模版。
2.根据权利要求I所述的人眼红外图像瞳孔位置检测方法,其特征是,步骤一中的卡尔曼滤波器是利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出现时刻图像像素灰度变化快慢的估计值。
3.根据权利要求I所述的人眼红外图像瞳孔位置检测方法,其特征是,步骤一中采用常速模型的卡尔曼滤波器的参数设定为 状态向量X= (η Υ ’々是对图像中某行某列的某个像素的灰度值的估计,η没有具体的意义; 测量向量的值Z (k)等于某个滤波器在第k时刻与该滤波器对应的行或列的第k个元素的像素值; 测量矩阵H = (O I); 系统控制矩阵G = O; (I τλ _ 状态转移矩阵F=-T为采样时间,T=I;Vu iJ 测量噪声方差R = 50 ; (I 0λ 状态噪声方差Q= π 1 ; f R RIT Λ 初$口方差P (O I O) R/T 1RIT1,
4.根据权利要求I或3所述的人眼红外图像瞳孔位置检测方法,其特征是,步骤一中卡尔曼滤波器设定初始像素值为 a.从上到下沿着每一列分别滤波时第n(n= 1,2,3,…)个滤波器初始状态值确定如Tx(0|0) = (O I(l,n))T,I(l,n)为图像第I行,n列的像素值; b.从下到上沿着每一列分别滤波时第n个滤波器初始状态值确定如下 x(0|0) = (0,I(M,n))T,I(M,n)为图像第M行,n列的像素值; c.从左到右沿着每一行分别滤波时第n个滤波器初始状态值确定如下 X(OlO) = (O I(n,l))T,I(n,0)为图像第n行,I列的像素值; d.从右到左沿着每一行分别滤波时第n个滤波器初始状态值确定如下X(O I O) = (OI(n, N))τ,I (n,N)为图像第n行,N列的像素值,其中I表示图像的灰度值。
5.根据权利要求I所述的人眼红外图像瞳孔位置检测方法,其特征是,步骤二中的测量残差的公式为μ (k+1) = z(k+1)-z(k+1Ik) 其中,k为时刻,测量向量的值z(k+l)等于某个滤波器的第k+Ι时刻与该滤波器对应的行或列的第k+Ι个元素的像素值。
6.根据权利要求I所述的人眼红外图像瞳孔位置检测方法,其特征是,步骤二中的残差权值I (k)是人为定义的一个量,是利用所得的残差和残差的方差经运算得到的。
7.根据权利要求I所述的人眼红外图像瞳孔位置检测方法,其特征是,步骤三所述的将结果与由人工选取的域值进行二值化操作,是指当某一位置残差权值ξ (k)的和大于所设定的域值,将此位置的值设为1,当残差权值ξ (k)的和小于所设定的域值,将此位置的值设为O。
全文摘要
一种人眼红外图像瞳孔位置检测方法,包括如下步骤一、采用常速模型对图像从上到下,从下到上,从左到右,从右到左,四个方向每行每列对应设置的一个卡尔曼滤波器设定初始像素值;二、利用步骤一中的初始像素值使用卡尔曼滤波器对图像进行四个方向的滤波,在对每行每列进行滤波的同时利用来自于每个滤波器在每个位置的测量残差μ(k)计算并保存该位置的残差权值ξ(k);三、将四个方向分别计算得到的相同位置的残差权值ξ(k)求和,将结果与由人工选取的域值进行二值化操作得到瞳孔模版。本方法只需人工根据经验和检测效果确定两个参数,使用简单。本方法计算量与使用阈值的方法在同一数量级,能够应用于实时在线的情况。
文档编号G06K9/00GK102657513SQ201210102459
公开日2012年9月12日 申请日期2012年4月10日 优先权日2012年4月10日
发明者刘伯文, 吴建民, 翟鸣 申请人:中国航空无线电电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1