论文部分内容阅读
计算机视觉作为一个极具挑战性的领域,一直以来都因为其巨大的发展潜力吸引了众多研究者的深入探索和研究。随着计算机在商业上得到越来越多的应用,越来越多的研究人员在对计算机视觉领域的重要研究方向如人眼检测跟踪方面进行了研究。利用人眼跟踪,可以实现疲劳检测,残疾人交互,视觉游戏等应用。本文主要研究内容可以分为人脸检测,人眼检测和人眼跟踪三个部分。本文使用的软件主要是VC++6.0与OpenCV相结合,通过调用OpenCV库函数,建立了一个人眼跟踪系统,极大地缩短了系统的开发周期。首先,本文采用了级联Adaboost算法,用于人脸检测、人眼检测和人眼瞳孔定位。对输入图像进行人脸检测,在人脸检测的基础上进行人眼检测并定位瞳孔。由于人眼的瞳孔区域包含了比较稳定的图像信息,因此,瞳孔定位成为人眼跟踪很重要的一步。但仅使用级联Adaboost算法的目标跟踪中,跟踪效果常常达不到所要的效果,也就是很难满足系统所需要的高实时性。因此为了提高实时检测的速度,引入CamShift跟踪算法。CamShift算法是在每一次跟踪前必须手动选取所要跟踪的目标,是一种半自动化跟踪算法,但将级联AdaBoost算法与CamShift算法的结合后,将AdaBoost算法检测到的人眼区域和瞳孔位置作为初始化搜索窗,解决了半自动跟踪的问题。并在跟踪过程中,对原图像求反向投影会增加运算量。在此基础上,本文提出改进的CamShift算法。即是将原CamShift算法中对原图像进行反向投影改为对人眼目标区域求反向投影,减少跟踪过程的运算量,该算法检测跟踪的速度得到提高,跟踪效果也更准确。满足实时性跟踪的高要求。利用人眼瞳孔中心位置与两眼之间中心点的偏移量,推导人眼的注视点,进而实现视线跟踪和鼠标控制。人眼跟踪过程中,设计的跟踪系统在检测出人眼后,提取人眼区域,通过对人眼进行二值化处理和对人眼图像进行垂直积分图投影,以此来简单判断人眼的状态。本文设计的人眼跟踪系统,对硬件没有过高要求,对一定的光照变化,大幅度侧脸和俯仰变化都具有很好的鲁棒性。