粒子滤波和卡尔曼滤波组合的瞳孔跟踪方法∗
2018-04-26王长元张文强薛鹏翔
王长元 张文强 薛鹏翔
(1.西安工业大学计算机科学与工程学院 西安 710021)(2.西安工业大学理学院 西安 710021)
1 引言
视线跟踪技术是一种利用电子,机械,光学等各种检测手段获取用户当前眼睛的状态,进而分析人眼当前注视位置的技术[11]。目前最为流行的是基于视频的视线跟踪方法(VOG)。视线跟踪技术被广泛地应用于人机交互、心理学检测、工业工程与人因分析等领域,越来越受到国内外的重视,已成为许多学科的研究热点。现有的视线追踪方法中,运用基于视频分析的瞳孔-角膜反射法时被测试者眼睛上没有被附加任何装置,使得实验结果更加真实自然,能够更为准确地分析出被测试者的眼动情况。在瞳孔-角膜反射法中瞳孔跟踪过程显得特别重要,它是指对摄像机摄取的序列图像进行逐帧分析,确定目标位置和状态参数的技术,其实质是一种目标检测技术。
由于瞳孔目标运动的随机性,基于卡尔曼滤波的瞳孔跟踪方法存在一定的缺陷,然而粒子滤波可以很好地解决瞳孔运动的非线性非高斯问题,但是粒子滤波对新时刻瞳孔状态进行长时间的预测,会存在粒子退化的问题,最终导致对瞳孔目标的检测出现较大误差。如果在预测瞳孔目标状态之后,将预测结果作为卡尔曼滤波滤波技术的观测值,并且根据粒子滤波的跟踪结果确定卡尔曼滤波的转换矩阵,然后利用卡尔曼滤波算法对瞳孔目标状态进行最优估计,就能够得到更加精确的瞳孔目标状态。
2 粒子滤波算法和卡尔曼滤波算法组合的基本原理
粒子滤波和卡尔曼滤波相结合的瞳孔跟踪方法可以有效解决瞳孔运动的非线性非高斯问题,并且能够提高瞳孔状态参数的提取精度,使系统的鲁棒性明显提高。在整个瞳孔跟踪过程中,视频图像序列是由硬件系统产生的交替出现的亮瞳和暗瞳图像序列,在初始的亮瞳和暗瞳图像中进行差分处理,利用瞳孔检测方法在差分图像中检测瞳孔目标参数,获得瞳孔目标状态参数,完成跟踪初始化。粒子滤波和卡尔曼滤波组合的瞳孔跟踪方法流程如下图1所示。
图1 粒子滤波和卡尔曼滤波组合的瞳孔跟踪流程
2.1 初始化参数阶段
本文程序通过鼠标在初始帧中选定瞳孔初始跟踪目标[5],并获取瞳孔特征参数,计算瞳孔特征直方图QX。
以已知的初始目标状态为中心,选择适当的方差高斯函数进行采样,得出一组开始时刻的粒子状态。粒子数为N,初始化粒子集状态STATESt-1,完成跟踪初始化。
2.2 粒子状态预测
通过瞳孔目标状态转移矩阵A,对粒子集状态进行预测。其中矩阵A由单位时间内瞳孔目标在图像中的偏移量来确定。预测粒子集的状态STATESt为
2.3 计算粒子相似度
本文通过结合灰度特征和形状特征来对粒子区域进行观测,灰度特征采用灰度直方图描述,形状特征采用椭圆度进行描述。通过灰度直方图计算粒子的欧氏距离:
其中u=1,…,bi为灰度级,mu为粒子的直方图,qu为目标状态的直方图。对粒子区域进行二值化,然后计算各粒子区域的椭圆形度为
然后对瞳孔目标状态进行估计,有
然后计算瞳孔目标状态的概率权重,有
2.4 粒子重采样阶段
为了避免粒子退化的问题,本文根据粒子集中每个粒子的权重,对粒子集中的粒子利用序贯重要性采样(SIR)进行重采样。对权重小的粒子舍弃,对权重较大的粒子进行选取,并且权重较大的粒子可能被重复选取,重复操作N次,这样可以有效避免粒子滤波方法带来的粒子退化问题。
2.5 更新瞳孔阶段
通过对目标状态的概率权重和事先设置的阈值ωt进行比对,若大于阈值,则更新瞳孔目标模型;即令 Xt=(1 -θ) Xt-1+θE(Xt);若小于阈值,则不更新瞳孔目标模型,即令Xt=Xt-1。
2.6 卡尔曼滤波瞳孔参数估计阶段
粒子滤波的跟踪结果对卡尔曼滤波最终确定瞳孔目标的参数起指导作用;卡尔曼滤波是在视频图像中的差分图像中进行的。根据上一帧图像中的瞳孔目标参数,利用卡尔曼滤波确定后一帧图像中的瞳孔目标参数;并且卡尔曼滤波的状态转移方程由粒子滤波的跟踪结果确定,其中,卡尔曼滤波中的观测值由粒子滤波跟踪区域的瞳孔分割获得,则新时刻的估计值由上一时刻的估计值和观测值通过状态转移方程得到。最终得到瞳孔的检测结果。
单次卡尔曼滤波过程如下:
设t-1时刻的瞳孔目标状态的卡尔曼滤波估计为X(t-1);状态转移矩阵为Φ,其中状态转移矩阵Φ的取值根据t时刻的粒子滤波状态估计中的矩形框中心坐标位移的不同而不同。t时刻经检测得出的瞳孔状态矢量为O()t。
1)首先,确定t时刻卡尔曼滤波观测差,为
其中,Z(t)为t时刻观测值。
2)确定卡尔曼增益K,为
至此,就完成了一次单步的卡尔曼滤波瞳孔目标状态估计过程;其得出的目标状态估计即为跟踪算法的最终估计结果。
当卡尔曼滤波跟踪步骤完成后,将t时刻的瞳孔目标位置参数作为粒子滤波的t时刻的状态矢量的估计值,并进入下一步的预测循环当中。如此进行循环,便可以实现粒子滤波和卡尔曼滤波组合的瞳孔跟踪过程。
3)对t时刻的瞳孔状态进行预测,为
3 实验与结果
本实验通过使用VS2013和openCV2.4.9在Win10系统上进行了实验验证。
3.1 实验准备环节
实验准备阶段,需要录制一段视频,视频要求包含一些典型的头动状态,并且眼睛运动方向也要具有一定的代表性,包括头部上扬、俯视、侧视,眼睛要具有眨眼、眯眼、旋转等眼部状态。
3.2 实验阶段(瞳孔跟踪)
程序开始运行时,通过显示视频的第一帧图像,并且要通过手动模拟瞳孔检测环节,确定跟踪初始目标,进行跟踪初始化,并且程序会获得瞳孔目标初始参数。
初始化完成后,开始跟踪瞳孔目标状态,随着视频帧的获取,程序能够成功跟踪瞳孔目标。实验程序能够很好地克服眨眼、头动等情况,达到较好的鲁棒性。
程序开始运行时,在视频的第一帧图像中手动选定初始瞳孔跟踪目标,结果如图2所示。
图2 获取初始跟踪目标
瞳孔跟踪开始后,首先通过高斯分布函数在初始化瞳孔区域附近选取若干初始化粒子,经过粒子滤波和卡尔曼滤波组合跟踪后得到当前时刻的瞳孔目标位置;瞳孔的不规则运动和头部的自由运动,本文方法都能够对瞳孔目标进行实时跟踪,并且具有较高的跟踪效率。
瞳孔跟踪结果如图3所示。
图3 瞳孔跟踪结果
3.3 实验数据对比结果
本文瞳孔跟踪方法和文献的运算效率对比如表1所示。
表1 文献算法对比结果
本文算法通过卡尔曼滤波和粒子滤波的组合算法,瞳孔跟踪过程通过在一帧图像中首先进行粒子滤波跟踪,对瞳孔目标进行定位,并确定卡尔曼滤波系统状态转移方程模型,再对瞳孔目标参数进行更加精确估计。通过系统运行时间计算得出每帧图像跟踪时间平均为11.8ms,即通过每帧开始时间到跟踪结束时间的平均时间,时效性较高。
通过实验对比,本文方法能够达到一定的实时性要求,并且迭代效率较高,能够很好提升系统的跟踪效率,达到了预期要求。
4 结语
本文通过粒子滤波和卡尔曼滤波组合的瞳孔跟踪方法,很好地克服了瞳孔运动的非线性非高斯问题和系统跟踪准确行问题,并且粒子滤波中采用了SIR重要性采样方法能够很好地解决粒子退化问题,系统平均准确率达到98%,具有较好的鲁棒性,也能够达到一定的实时性要求,对以后视线追踪相关的研究有一定的研究价值。但是本文方法研究也存在一些缺陷,例如阈值的确定没有采用动态阈值,可能对瞳孔目标估计存在一定的误差;还有就是当瞳孔目标跟踪较大是可能存在一定的效率问题,这将是今后研究的重点。
[1]王际航,刘富,袁雨桐,等.基于视频图像的眼动追踪系统算法[J].吉林大学学报(信息科学版),2016,34(2):259-265.WANG Jihang,LIU Fu,YUAN Yutong,et al.Eye Track⁃ing System based on Video Image[J].Journal of Jilin Uni⁃versity(Information Science Edition),2016,34(2):259-265.
[2]郭政业,胡雯蔷,朱李瑾.基于眼球重建异面直线模型的双目视线跟踪算法[J].计算机应用研究,2016,33(4):1249-1257.GUO Zhengye,HU Wenqiang,ZHU Lijin,et al.Binocular Vision Tracking Algorithm based on The Reconstruction of The Different Line Model[J].Application Research of Computers,2016,33(4):1249-1257.
[3]张峰,何小海,杨晓敏,等.基于模糊逻辑的多特征融合的粒子滤波跟踪算法[J].四川大学学报(工程科学版),2013,45(7):170-177.ZHANG Feng,HE Xiaohai,YANG Xiaomin,et al.Multi Feature Fusion based Particle Filter Tracking Algorithm based on Fuzzy Logic[J].Journal of Sichuan University(Engineering Science Edition),2013,45(7):170-177.
[4]张闯,迟键男,张朝晖,等.视线追踪系统中眼睛跟踪方法研究[J].自动化学报,2010,36(8):1051-1061.ZHANG Chuang,CHI Jiannan,ZHANG Zhaohui,et al.Re⁃search on Eye Tracking Method In Eye Gaze Tracking Sys⁃tem[J].Acta Automatica Sinica,2010,36(8):1051-1061.
[5]王长元,金瑞铭,田宝杰,等.一种基于粒子滤波的瞳孔跟踪方法[J].计算机与数字工程,2015,43(11):2044-2046.WANG Changyuan,JIN Ruiming,TIAN Baojie,et al.Pu⁃pil Tracking Method based on Particle Filter[J].Comput⁃er&Digital Engineering,2015,43(11):2044-2046.
[6]Villanueva A,Cabeza R.A novel gaze estimation system with one calibration point[J].IEEE Transactions on Sys⁃tem,Man,and Cybernetics,Part B:Cybernetics,2008,38(4):1123-1138.
[7]张闯,迟健男,邱亚飞,等.视线追踪系统中特征参数提取方法研究[J].中国图象图形学报,2010,15(9):1299-1308.ZHANG Chuang,CHI Jiannan,QIU Yafei,et al.Research on Feature Extraction in Line of Sight Tracking System[J].Journal of Image and Graphics,2010,15(9):1299-1308.
[8]张闯,迟健男,张朝晖,等.视线追踪系统中视线估计方法研究[J].中国科学:信息科学,2011,41(5):580-591.ZHANG Chuang,CHI Jiannan,ZHANG Zhaohui,et al.Line of Sight Estimation in Gaze Tracking System[J].Sci⁃entia Sinica Infomationis,2011,41(5):580-591.
[9]Pierre E,Jacob Lawrence M,Murray Sylvain Rubenthaler.Path storage in the particle filter[J].Statistics and Com⁃puting,2015,25(2):487-496.
[10]迟健男,王志良,张闯.视线追踪技术[M].北京:机械工业出版社.2011:1-251.CHI Jiannan,WANG Zhiliang,ZHANG Chuang.Eye Tracking Technology[M].Beijing:China Machine Press.2011:1-251.
[11]黄园刚,桑楠,郝宗波,等.改进CamShift算法的眼动跟踪方法[J].计算机应用研究,2014,31(4):1220-1224.HUANG Yuangang,SANG Nan,HAO Zongbo,et al.Eye Tracking Method based on Improved CamShift Algorithm[J].Application Research of Computers,2014,31(4):1220-1224.
[12]冯成志,沈模卫.视线跟踪技术及其在人机交互中的应用[J]. 浙江大学学报(理学版),2002,29(2):225-232.FENG Chengzhi,SHEN Mowei.Gaze Tracking Technolo⁃gy and its Application in Human-Computer Interaction[J].Journal of Zhejiang University(Science Edition),2002,29(2):225-232.
[13]K.S.Park and K.T.Lee,Eye-controlled human/comput⁃er interface using the line-of-sight and the intentional blink[J].Computer Engineering,1996,30(3):463-473.