一种由粗略到精确的瞳孔定位算法

2016-11-22 01:58:04周永修高梓翔陈大孝
电子设计工程 2016年15期
关键词:人眼角点瞳孔

周永修,张 莲,高梓翔,陈大孝

(重庆理工大学 电子学院,重庆 400054)

一种由粗略到精确的瞳孔定位算法

周永修,张 莲,高梓翔,陈大孝

(重庆理工大学 电子学院,重庆 400054)

针对现阶段实现瞳孔精确定位算法过于繁琐的问题,提出一种由粗略到精确的瞳孔精确定位算法。首先用灰度积分算法粗略找出人眼部位在人脸上的大概位置,然后用Hough变换定位出人眼瞳孔中心的精确位置,接着用Harris角点检测算法对眼角点进行定位,最后通过瞳孔与眼角点的相互坐标定位出人眼瞳孔的精确位置。通过matlab对所提算法进行检验,证明了该算法是一种实现简单、定位精确的算法。

瞳孔精确定位;灰度积分投影;Hough变换;Harris角点检测

对眼睛及其运动的研究是了解人类视觉机制、理解人的情感和行为以及基于眼动的人机交互等问题的关键。人眼检测与跟踪是人脸识别、表情识别、眼动分析、虹膜识别等技术的必要步骤,涉及图像处理、计算机视觉、模式识别等多个学科。

近年来眼睛定位算法很多,其中比较典型的有基于人体测量学标准的方法[1],基于肤色模型的检测方法[2],基于训练数据的统计学习方法[3]。其中基于统计学习的算法又是现阶段人眼检测算法的热点,因为这类方法适用性较强,在人工智能及模式识别领域都有较为深入的研究。将基于统计学习的算法应用于人眼检测主要有Adaboost算法[4]和Deep learning算法[5],这两种算法在人眼测量领域都有不错的效果。

但上述算法基本都是对于瞳孔位于人眼正中的人脸图像进行定位,不能精确检测瞳孔转动时的精确位置。为了瞳孔精确定位及跟踪的要求,本文提出了一种由粗略到精确的瞳孔精确定位算法,该算法主要思想是由粗略到精确一步一步地对瞳孔进行精确定位,每一步都选择最合适的算法进行瞳孔精确定位。

文中所做的人眼检测是基于已经提取得到的人脸图像,文中采用Adaboost算法提取人脸图像[6]。

1 人眼粗略提取

现阶段的人眼粗略检测方法大致可以分为基于统计的方法和基于图像处理的方法。基于统计的方法也可称为基于学习的模式识别处理方法,主要算法有Adaboost算法和Deep learning神经网络算法。这类方法的特点是算法智能化,对所处理的图片质量要求较低,对各种姿势的人眼检测都具有较好的效果;但是基于学习的方法都有需要大量的训练样本,以及训练过程和分类器构成复杂的缺点。在人眼粗略检测的过程中,检测精度要求并不高,但是对检测速度具有很高的要求,所以本文采用基于图像的处理方法。

1.1 垂直方向上的人脸灰度梯度积分投影

由于眼睛是人脸垂直方向上灰度积分变化最大的区域,所以用灰度积分投影可以很方便地找出眼睛在人脸垂直方向上的位置。垂直方向上人脸灰度积分投影表达式为:

式I(x,y)中表示图像第x行、第y列的灰度值,W表示图像的宽度,Py(x)表示图像第x行的灰度积分值,其曲线如图1(a)所示。

可以看到,根据普通的灰度积分投影并不能准确找到垂直方向上人眼的位置,因为普通灰度积分只能对每一行的灰度值进行简单累加,并不能反应每一行的灰度值变化情况。于是本文对图像每一行进行梯度值计算,并计算灰度梯度积分投影。图像的梯度值通过用所求像素的后几个像素的平均值减去前几个像素的平均值得到,具体算法用构造尺度不变的梯度算子与图像卷积实现:

1)计算尺度不变梯度算子L的长度l:

式中round算子表示取整函数。

2)构造尺度不变梯度算子L,式中n表示算子的序列号:

3)用梯度算子与原图像I进行卷积后得到图像的梯度图I′:

4)计算垂直方向上的人脸灰度梯度积分投影P′y(x):

最终得到的灰度梯度积分投影曲线如图1(b)所示。可以看出眼睛位置的灰度梯度积分投影明显大于其他位置的梯度积分值,找到曲线的最大值即可定位眼睛在人脸垂直方向上的位置。

图1 垂直方向灰度积分投影与灰度积分投影对比图

1.2 水平方向上的人脸灰度积分投影

计算水平方向上的人脸灰度积分投影时,先对图像作提取边缘值处理。提取边缘值的算法很多,现阶段大致有Sobel算法、Prewitt算法、Laplacian of Gaussian Roberts算法、Zero-Cross算法和Canny算法。各类算法的基本思想都是采用构成的算子与图像作卷积,然后重新计算图像的灰度值,最后选取合适的阀值判断图像的边缘点;不同之处在于不同的算法选取了不同的卷积算子。论文采用Sobel算法实现边缘提取的功能。Sobel算子为:

首先用Sx和Sy分别与原图像作卷积得到原图像每一像素的横向及纵向梯度值Gx和Gy:

然后计算每一像素的新的灰度值:

最后选取合适的阈值判断该点是否为边缘点。所得的二值化图像如图2所示。由于图像人脸边界处存在灰度值的像素点远高于其他地方,所以可以得到图2所示的积分投影曲线,通过曲线的左右两个峰值位置确定人脸的两个左右边界。

图2 人脸水平方向边缘点积分投影图

分别通过垂直方向和水平方向的积分投影确定眼睛在人脸中的位置后,得到人眼粗略位置如图3所示,以便下一步瞳孔精确定位。

图3 人眼粗略位置效果图

2 瞳孔精确定位

检测瞳孔前先将检测到的人眼粗略图像分成左右两个图像分别进行检测,然后对得到的图像作Sobel算子提取边缘值处理。得到如图4所示的结果。

图4 左右眼边缘值提取图

从图4可以看到,人眼瞳孔边缘呈一个很规则的圆形,求得瞳孔边缘的圆心即可得到瞳孔中心所在的位置。本文采用Hough变换求取瞳孔中心位置。Hough变换求圆心的基本原理:根据圆的数学表达式:

可以知道,确定圆心坐标(a,b)及圆的半径r后,可以求得圆周上所有点(x,y)的坐标。反过来,知道了圆周上一点(x,y),可以求出过这点的所有圆的方程,并用(a,b,r)表示。找到对应图片上点(x,y)最多的圆的方程(a,b,r),即可求出图片上瞳孔所在圆形的圆心坐标。具体实现方式如下:

1)建立一个三维数组(A,B,R)用以统计每个圆方程所对应的图片上的点(x,y)的个数。其中A,B分别取图片的高度和宽度,R取A/2和B/2的较小值。

2)遍历图像(x,y),将每个点(x,y),可能所在圆的方程(a,b,r)存入数组(A,B,R)中。

3)找出数组(A,B,R)中的最大值(a,b,r)即为瞳孔所对应的圆方程,(a,b)坐标即为瞳孔中心所对应的坐标。

最终求得的瞳孔中心如图5所示。

图5 瞳孔中心位置定位图

3 瞳孔坐标计算

求得瞳孔中心位置的坐标后需要找到合适的坐标轴,将瞳孔所在位置以坐标的形式表示出来。由于坐标轴的建立标准需要与瞳孔的位置相对不变,文中选择以左右两个内眼角点连线中点作为坐标原点,以眼角点连线作为x轴建立坐标系,以瞳孔半径为单位1,将瞳孔位置映射到新的坐标系中。

现有的角点检测方法有Harris角点检测算法[7-8]、Susan算法和CSS算法,本文采用Harris算法检测眼角点的位置。根据Harris算法的基本原理,可以将图像上的点分为3类:位于平坦区域的点,这类点的灰度值在水平方向和垂直方向上的变化率都不大;位于边缘区域的点,这类点的灰度值仅在水平方向或垂直方向上的变化率较大;位于角点位置的点,这类点的灰度值在水平方向上和垂直方向上的变化率都很大。根据这种方法,可以区别出图片上的角点。具体实现方法如下:

1)选择合适的区域I作为眼角点的待检测区域。

2)分别构造水平方向的梯度算子Hx和垂直方向上的梯度算子Hy。其中梯度算子的构成可以选择普通Harris角点提取算子(式9)和改进的Harris角点提取算子(式10):

3)用构造的水平方向的梯度算子Hx和垂直方向上的梯度算子Hy分别对图像I进行卷积得到图像的水平梯度矩阵Ix和垂直梯度矩阵Iy:

4)用高斯平滑算子对图像再次进行卷积得到M矩 阵:

5)根据矩阵M计算角点函数R:

其中k为经验值,通常取0.04~0.06,det(M)表示对矩阵M求行列式,ktr2(M)表示求矩阵M的迹。

6)找到满足条件的点作为角点:R值大于某一设定的阀值;R值是某一区域的极大值。

7)通常情况下求得的角点不止一个,由于眼角位置的灰度值是区域中较小的地方,因此选择所求得角点位置灰度值最小的坐标作为眼角点的坐标。

最终得到的眼角点位置如图6所示。

图6 眼角点定位图

将检测到的眼角点坐标与瞳孔坐标进行坐标变换,最终得到瞳孔精确坐标的位置如图7所示。对比原图片可以看到,虽然照相机位置相对于人脸不是水平放置,但是通过坐标变换,可以将瞳孔中心位置变换到同一水平方向。

图7 瞳孔精确位置坐标图

4 实验结果

本实验将所用算法在matlab上进行编程验证,图片采用普通摄像头获取的图像,并选择不同瞳孔姿势的人脸进行测试,最终实验结果如图8所示。

图8 不同瞳孔位置及眼角点定位图

5 结论

本文提出了一种由粗略到精确的人眼瞳孔定位算法。依次利用灰度积分算法,Hough变换,Harris角点检测算法对瞳孔进行精确定位。通过在matlab上的算法验证,证明了该算法是一种实现简单、定位精确的算法。本文的后续研究将研究瞳孔精确跟踪算法,利用本文得到的瞳孔精确位置也将作为瞳孔精确跟踪的基础。

但在实验过程中同时发现,由于眼睑部位对瞳孔的遮挡,可能存在Hough变换检测瞳孔中心时定位不准的情况,这是在以后的研究中需要优化解决的问题。

[1]Wu J,Zhou Z H.Efficient face candidates selector for face detection[J].Pattern Recognition,2003,36(5):1175-1186.

[2]Yuseok Ban,Sang-Ki Kim,Sooyeon Kim,et al.Face detection based on skin color likelihood[J].Pattern Recognition,2014,47(4):1573-1585.

[3]MahirFaikKaraaba,Lambert Schomaker,Marco Wiering.Machine learning for multi-view eye-pair detection[J].EngineeringApplicationsofArtificialIntelligence,2014,33:69-79.

[4]龙伶敏.基于Adaboost的人脸检测方法及眼睛定位算法研究[D].成都:电子科技大学,2008.

[5]林妙真.基于深度学习的人脸识别研究[D].大连:大连理工大学,2013.

[6]DU Cui-huan,ZHU Hong,LUO Li-ming,et al.Face detection in video based on AdaBoost algorithm and skin model [J].The Journal of China Universities of Posts and Telecommunications,2013,20(1):6-9.

[7]郭姝言,刘桥,卢进.一种改进的医学图像深度信息恢复算法[J].电子科技,2016(1):48-50.

[8]王小平,静大海.基于二维局域波和角点匹配的多模态图像配准[J].电子设计工程,2013(4):142-145.

A pupil precise localization algorithm from rough to precise

ZHOU Yong-xiu,ZHANG Lian,GAO Zi-xiang,CHEN Da-xiao
(School of Electronic Information and Automation,Chongqing University of Technology,Chongqing 400054,China)

Aiming at pupil precise localization algorithm is too complicated in present stage,put forward a pupil precise localization algorithm from rough to precise.First,according to grayscale integral projection of the face,the general location of the eyes can be determined quickly.Then use the Hough transform to locate the exact position of eye pupil center.Next,use Harris corner detection algorithm find the corner of the eye.Finally,determine the exact position of the pupil through the coordinate location of the pupil and eye corner.The proposed algorithm tested with the MATLAB,it is proved to be a simple,accurate positioning algorithm.

pupil location;grayscale integral projection;Hough transform;Harris corner detection

TN06

A

1674-6236(2016)15-0181-03

2015-09-02 稿件编号:201509019

重庆高校优秀成果转化资助项目(KJZH14213);重庆市科技人才培养计划(新产品研发团队)(CSJC2013KJRC-TDJS40012)

周永修(1990—),男,重庆人,硕士研究生。研究方向:模式识别,图像处理,计算机视觉。

猜你喜欢
人眼角点瞳孔
“天眼”的“瞳孔保健师”
军事文摘(2023年20期)2023-10-31 08:42:40
人眼X光
快乐语文(2019年9期)2019-06-22 10:00:38
人眼为什么能看到虚像
瞳孔里的太阳
青年歌声(2018年2期)2018-10-20 02:02:50
基于FAST角点检测算法上对Y型与X型角点的检测
瞳孔
闪瞎人眼的,还有唇
优雅(2016年12期)2017-02-28 21:32:58
基于边缘的角点分类和描述算法
电子科技(2016年12期)2016-12-26 02:25:49
基于圆环模板的改进Harris角点检测算法
看人,星光璀璨缭人眼
电影故事(2016年5期)2016-06-15 20:27:30