王 鹏, 苑 硕, 董 鑫, 陶文杰
(1. 常州工学院电气信息工程学院, 江苏 常州 213032; 2. 哈尔滨工程大学青岛创新发展基地, 山东 青岛 266000;3. 哈尔滨理工大学电气与电子工程学院, 哈尔滨 150080)
视线追踪技术是一种通过测量眼睛注视点位置或眼球相对头部的运动实现对眼球运动追踪的技术, 被广泛应用于人机交互、智能家居、医疗诊断、心理学和军事等领域[1-2].视线追踪系统按使用方式可分为穿戴式[2]和非穿戴式[3]两类, 其中穿戴式视线追踪系统要求使用者佩戴头盔等设备, 对使用者影响较大; 而非穿戴式视线追踪系统无需用户穿戴任何设备, 操作简单且用户体验好,逐渐成为视线追踪技术的研究热点[4].非穿戴式视线追踪系统主要分为无光源单摄像机系统、单光源单摄像机系统、多光源单摄像机系统以及多光源多摄像机系统等四类[5].在关于多摄像机视线追踪系统的研究中, 鲁亚楠[6]提出了一种由多个摄像机组成的小型视线跟踪系统, 在近红外光源下通过两个小型双目立体视觉相机得到人眼三维空间参数, 将场景相机和双目相机关联确定视线落点,该系统具有较高的检测精度,但设备复杂度相对较高,价格较昂贵.在关于单摄像机视线追踪系统的研究中, Morimoto等[7]利用由1个摄像头及4个在屏幕四角的光源组成的视线追踪系统,使用从图像到角膜和从角膜到屏幕的双重投影方法, 假设瞳孔中心和角膜反射的平面共面, 通过二项式拟合方程将眼部参数与注视点之间形成函数映射关系,该方法具有较好的鲁棒性, 但光源质量对视线追踪的影响较大; Saragih等[8]应用均值偏移算法对人眼进行检测与定位, 但其鲁棒性较差, 提取脸部特征时易受眼镜和眉毛等因素的影响; Cheng等[9]通过神经网络将眼部图像输入系统进行训练, 所得结果能有效降低光照条件和头部姿态对视线追踪的影响, 但出现眼镜等干扰时的视线追踪准确率明显下降; Liu等[10]提出了一种使用空间圆形目标3D重建来表示虹膜中心及其法向量的方法, 在左右眼Kappa角近似相等的约束下校准虹膜半径,但该方法依赖于准确的虹膜检测, 需要多点校准.上述研究表明, 无光源单摄像机系统的硬件要求较低且无需其他辅助设备的配合, 具有较好的发展前景, 但仍存在视线追踪精度较低和速度较慢等问题[11].本文综合考虑算法的实时性、复杂度、检测精度和遮挡等因素, 基于单摄像机系统, 拟提出一种结合图像梯度算法和改进的椭圆拟合算法的视线追踪方法确定瞳孔中心, 并基于坐标标定方法判定视线方向.
图1为视线追踪算法中的图像预处理过程.首先,利用摄像机采集原始图像信息,将采集到的视频流数据进行图像灰度化处理,减少数据量的同时降低光照对图像的影响;其次,采用直方图均衡化处理,增强图像的纹理,从而提高图像的对比度; 再次, 选用双线性插值法进行图像缩放, 解决最近邻插值法灰度不具有连续性的问题;最后,采用高斯滤波进行消噪处理,使图像更为平滑.
图1 图像预处理Fig.1 Image preprocessing
选用基于Haar-like特征的改进型AdaBoost算法[12]进行人脸检测与定位.Haar-like特征主要包括边缘特征、线性特征和中心环绕特征, 三者组合形成特征模板, 如图2所示.特征模板内有白色和黑色两种矩形, 表示白色矩阵像素和减去黑色矩阵像素和所得模板的特征值, 反映检测对象特征局部灰度变化.传统的AdaBoost算法训练出的单阈值弱分类器效果一般, 故本文采用双阈值弱分类器, 同时控制阈值范围和训练参数, 以降低误分率, 减少训练时间.
图2 Haar-like特征的3种形式Fig.2 Three forms of Haar-like features
本文所采用的训练样本图像集合为{(xi,yi)}(i=1,2,…,n), 其中n为样本总数,xi为图像样本,yi为图像样本类别.当xi为人脸时,yi取值为1;xi为非人脸时,yi取值为0.人脸检测与定位的具体步骤如下:
1) 寻找T个弱分类器ht(t=1,2,…,T), 人脸图像的初始权重w1,i=1/2m, 非人脸图像的初始权重w1,i=1/2l, 其中m为人脸图像的样本个数,l为非人脸图像的样本个数.
采用三庭五眼分割法[13]进行人眼检测与定位.考虑个体差异及照片拍摄角度等因素的影响, 对大量样本进行统计分析, 确定并设计眼眶尺寸及位置, 具体如图3所示.设定人脸矩形框宽为W, 高为H, 为确保所有样本都能剪裁到完整的人眼局部图像, 设计眼眶尺寸大于实际眼睛在人脸中所占比例,则人眼矩形框宽为0.35W,高为0.30H, 人脸矩形框左右边缘到人眼矩形框及人眼左右矩形框之间的距离均为0.10W, 人脸矩形框上边缘到人眼矩形框上边缘的距离为0.25H.
图3 眼眶位置Fig.3 The position of the eye socket
为减少计算负荷, 将输入图像处理为眼睛图像后进行瞳孔中心定位, 具体流程如图4所示.
图4 瞳孔中心判定流程Fig.4 Estimation process of pupil center
其次, 采用星射线法[13]提取虹膜边缘位置.利用图像梯度算法确定的瞳孔中心周围像素为20×20的眼部图像进行瞳孔提取, 以拟合的瞳孔中心为原点, 每隔0.5°从原点发出射线, 将每条射线上梯度值最大的像素点视为瞳孔边界点.为降低上眼睑和下眼睑对虹膜边缘点提取的影响, 提高虹膜边缘检测速度, 设置射线角度范围为-70°~60°和-110°~120°(射线角度为射线与x轴正方向的夹角,射线范围在第一、四象限和第二、三象限).
最后, 通过中心坐标评判完成瞳孔中心定位.依据瞳孔和虹膜圆心的同一性, 对比图像梯度算法和椭圆拟合算法得到的中心坐标, 若两种算法所得的瞳孔中心和虹膜中心坐标位置相差的像素点数量小于等于3个, 则确定最小二乘椭圆拟合法得出的虹膜中心坐标为瞳孔中心; 反之, 则椭圆拟合程度较低, 须重新判断瞳孔中心.
图5 视线标定定位图Fig.5 Line of sight calibration map
实验环境为Intel Core i7-8750 CPU, 主频2.2 GHz, 6核12线程, 内存16 GB, 操作系统为Windows 10, 摄像机分辨率为1 280×960, 采用C++和OpenCV在Microsoft Visual Studio 2017软件中进行实验.
本文分别采用MIT和BioID人脸数据库中的人脸样本图像进行人脸检测与定位及人眼检测与瞳孔中心定位实验.MIT人脸数据库共包含2 415幅分辨率为20×20像素的人脸样本图像, 随机抽取2 185幅样本图像作为训练集,其余图像作为测试集.BioID人脸数据库为23位测试者正面角度的人脸图像, 共计1 521幅分辨率为100×100像素的灰度图像,所有图像均已手工标注人眼位置信息, 随机抽取1 291幅样本图像作为训练集, 其余图像作为测试集.此外,本文还收集了50名志愿者的人脸图像进行补充测试.
图6为测试者人脸与人眼检测实验结果.由图6可知, 本文方法能够准确定位人脸与眼眶位置, 并且实现瞳孔中心点的精准定位.
为了进一步验证本文所提算法的检测定位效果, 分别采用基于传统AdaBoost算法的人脸检测方法、 基于级联分类器算法的人眼定位检测方法、 基于霍夫变换算法和虹膜检测算法[15]的瞳孔中心定位方法与本文所提检测定位方法进行对比实验, 结果如表1所示.由表1可知, 改进后AdaBoost算法的人脸识别准确率提高了3.17%, 检测时间仅为传统AdaBoost算法的66.40%, 误检率下降到1.29%, 人脸检测效果优于传统AdaBoost算法; 三庭五眼法与级联分类器算法的人眼定位的准确率和误检率相同, 而三庭五眼法的人眼定位时间仅为级联分类器算法的3.03%, 大大缩短了检测时间, 提高了系统运行速度; 基于图像梯度和改进椭圆拟合的视线追踪算法与霍夫变换算法和虹膜检测算法的瞳孔中心检测速度相近, 而检测准确度较霍夫变换算法提高了6.67%, 较虹膜检测法提高了2.90%.
表1 改进定位算法对比结果
为了检验本文所提算法的视线追踪效果, 对50名测试者进行视线追踪测试, 其中佩戴眼镜与未佩戴眼镜的测试者各25人, 每位测试者先在正常光照条件下进行10次视线方向判定, 再改变光照条件, 在不同光照环境下分别进行10次视线方向判定, 实验结果如表2所示.由表2可知, 本文提出的算法可有效降低眼镜遮挡和光照环境等因素造成的视线方向检测误差, 在佩戴眼镜情况下视线方向判定准确率仅下降0.80%, 暗光条件下视线方向判定准确率较亮光条件下仅下降1.60%.因此, 本文算法具有良好的抗干扰能力和鲁棒性, 满足实际应用需求.
表2 视线方向判定结果