刘颖,王劲松,王苗
(长春理工大学 光电工程学院,长春 130022)
非接触式眼压计是医疗机构常用的测量人体眼压的计量器具,利用空气脉冲喷射对眼角膜进行压平,将外加机械力替换为气体压力,通过空气脉冲开始喷射到角膜达到压平状态的时间,对气体压力进行计算,最后得到被测者压眼的压值从而测出眼压数值[1-2]。眼压测量的第一步就是识别跟踪到人眼瞳孔才能进行接下来的喷气测量操作。在以往的跟踪定位方法中,通常是使用单目摄像机,得到跟踪目标对应的二维坐标。但是单目视觉获取信息较少,距离信息在环境中存在干扰的情况下,无法准确计算。当前常采用双目摄像机进行定位,对两图像中目标分别进行跟踪,然后对跟踪结果进行特征点坐标提取,对空间点进行三维坐标计算。传统的Mean-Shift算法对人眼图像进行处理,对瞳孔进行跟踪过程中,有跟踪目标丢失现象[3]。对其造成原因进行分析可知,采用均值漂移跟踪算法跟踪目标时,是以前一帧的目标中心作为当前帧初始搜索中心,对其周围局部范围内寻找最佳匹配,若目标静止或移动速度较慢,则可以利用Mean-Shift算法找到跟踪目标[3-5]。但若目标移动速度较快,使用前一帧确定的中点,确定本帧图像开始进行处理的中点,则可能会造成目标搜索失败,最终导致目标跟踪失败。眼球的转动在摄像机近距离拍摄的情况下可看作是快速转动的过程,需要对Mean-Shift算法进行优化,以达到不会丢失瞳孔目标实现人眼瞳孔的精确跟踪目的。
本文眼球跟踪系统的组成原理图如图1所示。红外LED光源在人眼左右对称地放置,交替发射,确保图像中只出现一个光斑,照射人眼会产生亮暗瞳效应,方便瞳孔定位。两个微距摄像头用于立体视觉定位,并且满足在非接触眼压计眼科仪器使用距离内对人眼进行准确定位,使人眼在两个相机同时成像,采集人眼图像。PC端对两端采集到的图像分别处理,得到人眼瞳孔特征点坐标与区域,然后对两图像中特征点进行提取匹配,得到人眼瞳孔三维位置的变化,对人眼目标进行实时追踪。同时将信号传至下位机,驱动三轴电机控制跟踪部分进行移动,调整系统与人眼的位置,最终完成对人眼的追踪对准。
图1 系统组成原理图
此系统先对人眼图像进行处理,对瞳孔的三维信息进行计算,然后通过选取合适的跟踪算法对瞳孔部分进行跟踪,来提高系统检测跟踪定位人眼的效率。
利用简单的帧差法可很方便地得到待追踪物体的位置等信息,据此可以明确候选模型中待跟踪物体的大致初始范围。以此对物体进行进一步追踪,在获得区域的基础上,对物体此时在当前帧上的大致轮廓和所在区域进行搜索,以防物体移动过快时,局部搜索区域搜索不到物体[6-7],对传统Mean-Shift算法可能导致物体追踪失败的情况有所帮助。
为了更好地对候选模型搜索的初始位置进行估计,本文使用前一帧求得的目标轮廓中心,和当前帧运动轮廓的中心,作为候选模型计算初始位置的依据[3]。如图2所示,A为上帧图片采用Mean-Shift算法解出的物体中心,B为对本帧与上帧图像利用帧差法进行差分所得图像的中心,C为要求解的本帧物体的中心。设速度为匀速,则C点坐标进可通过A和B进行估计。
图2 帧差法计算当前帧候选模型初始位置示意图
以式(1)得到的C点估计值可以确定本帧的搜索区域,用Mean-Shift算法可计算出本帧图像中目标物体的真实中心点。
帧差法和Mean-Shift算法相结合的改进算法具体计算步骤如下所示:
(1)首先根据瞳孔定位算法对图像进行处理,得到当前帧图像中人眼瞳孔的位置,由式(2)建立初始中心位置f0及目标模型qu:
(2)在物体移动的过程[8]中,以上帧图像求得的中心点f0,确定本帧图像的搜索的中心点f和区域pu,对两区域间的相似度通过公式(3)进行求解,确定其接近程度:
(3)由公式(4)对区域内像素点的wi进行计算:
(4)重新计算当前帧候选目标中心fk+1;
(5)重新对当前帧的相似度函数ρ(p,q)进行计算;
(6)设定阈值,判断相似度与该值大小,若小于该阈值,则完成搜索,目标在图像上位置即为fk+1;若大于该阈值,则重新进行第(3)步,直到小于设定的阈值;
(7)当视频进入新的一帧的时候,跳到第(2)步,对新的一帧视频进行处理,直到视频结束[4]。
本系统跟踪算法的流程图如图3所示。
图3 改进算法实现流程图
与Mean-Shift算法相比,将帧差法运用到Mean-Shift运算中,极大程度改善了在人眼跟踪过程中可能产生的人眼检测失败的现象,跟踪效果较好。
利用图1所示系统对瞳孔转动的人眼图像进行拍摄,使用到的汇聚式双目摄像相机为可变基线USB2.0双目视觉摄像机,如图4所示。将两摄像机基线即光心距离[9]设置为200 mm。取拍摄视频其中一段200帧的图像测试Mean-Shift改进跟踪算法。首先对人眼即瞳孔进行定位,在图像第一帧上用十字标出瞳孔中心,作为跟踪目标的中心,虹膜区域用方框表示,即为跟踪目标区域[3]。对每两幅图像之间进行差分运算,得到追踪物体的中心,加上前一帧求得的目标轮廓中心,一起对当前帧初始中心进行估计,再对本帧的真实物体中心进行计算,反复迭代下去,实现对人眼轮廓的跟踪。在跟踪过程中,同时对两摄像机进行跟踪处理,且左右摄像机采用完全相同的系统,因此本文仅以左摄像机拍摄图片为例,对样本和数据进行分析。Mean-Shift改算法跟踪目标效果如图5所示。
图4 可变基线USB2.0双目视觉相机
图5 Mean-Shift改进算法瞳孔目标跟踪效果图
使用帧差法、Mean-Shift算法和改进算法三种方法分别进行人眼跟踪实验验证,三种算法运行过程中数据如表1所示,帧差法平均误差与其他两算法相比较大,但由于帧差法是通过对两帧图像进行简单的差分处理,因此每帧计算时间最少。从表1中可知,Mean-Shift算法对跟踪目标的平均误差为0.089 2 mm,与帧差法误差[10]小,其每帧搜索时间和迭代次数较大,取前一帧轮廓中心对本帧进行局部搜索,所需时间较多。采用帧差法和Mean-Shift的结合算法,由于估计的初始中心与实际中心更为接近,所以搜索时间、迭代次数和跟踪误差都有所降低。
表1 采用三种算法跟踪效率比较表
本次实验验证了采用帧差法和Mean-Shift相结合的算法,比原本算法具有更高的追踪精度,且减少了运行时间和计算量。
实验平台搭建如图6所示,三轴电机的位移分辨率为0.01 mm,以满足跟踪系统精度要求。根据电机的转动情况如公式(5)所示,可以对系统总体的运动状态进行求解。
图6 实验装置图
式中,为矢量,代表系统总体的运动状态;Ex,Ey,Ez为标量,代表三个电机的使能状态,分为1和 0;分别表示X、Y、Z三个电机的转动速度。本系统选用的脉冲电机型号及内部参数均相同,且选择相同脉冲信号,因此有,即转动速度相同,因此可以计算出系统的运动状态[11]。
通过模拟眼对系统跟踪情况进行实验,模拟眼与双目相机位于同一三维坐标系里,并在可测量移动范围内,进行小幅度移动,确保其在两成像面中均存在,且对其移动过程中的位置进行实时测量并记录。采集6 s双摄像头拍摄的图像数据并进行保存,对运行过程中数据进行部分展示并对其进行分析,如表2所示。
表2 跟踪数据
其中,误差值为三方向上误差的总值,即与人眼观测点的距离向量。从表2中可知,眼球跟踪系统与目标模拟眼间的空间位置误差不超过0.1 mm,满足了系统跟踪精度,验证了运用本系统对人眼进行追踪时具有可靠性。
实时性测试主要是测试系统对人眼进行定位并跟踪所使用的时间,在距离双目摄像机不同距离和位置处对系统跟踪耗时进行测试,并记录跟踪时间。图7所示为目标距离双目视觉系统的距离与跟踪完成耗时的关系。
图7 跟踪耗时图
图7中横坐标为模拟眼与系统中心(两摄像机基线中点)的距离,纵坐标为系统进行跟踪所用时间。从图中可得知,模拟眼与系统中心间距为3~5cm内时,对其进行追踪的平均耗时皆在1 s范围内,证明本系统实时性较强,满足系统对人眼进行实时跟踪的要求。
基于非接触式眼压计汇聚式双目视觉的人眼瞳孔跟踪系统,分析帧差法、Mean-Shift算法的优缺点,提出了帧差法和Mean-Shift算法相结合的算法。通过算法间的对比,验证了本文提出的跟踪算法的优化性和准确性,并利用应用了改进算法的跟踪系统跟踪模拟眼测试了其可靠性和实时性,进一步验证了改进算法提升了跟踪系统后续进行立体匹配和三维重建工作的准确性,使得非接触眼压计能够实时、准确地对人眼进行跟踪。