基于轮廓检测的眼睛定位算法

时间:2022-10-12 11:53:14

基于轮廓检测的眼睛定位算法

摘要:人脸识别是模式识别学科的一大研究热点,可以广泛地应用于保密系统、可视电话系统以及人机交互系统等领域;眼睛定位是人脸识别中必须首要解决的问题,如何快速,准确的定位眼睛,决定了后续的人脸识别能否取得好的效果;基于人脸中眼睛的灰度及轮廓特点,提出了一种基于轮廓检测的眼睛定位算法;实验结果表明此算法复杂度小,定位准确。

关键词:人脸识别;眼睛定位;灰度;轮廓检测;图像形态学

中图分类号:TP391文献标识码:A文章编号:1009-3044(2010)20-5572-02

Contour Detection Based on Eye Location Algorithm

TIE Jun-bo, ZHU Jun-xing, HUANG Jin, TANG Lan-jun

(School of Electrical Engineering, Southwest Jiaotong University, Chengdu 610000, China)

Abstract: The face recognition is the subject of a major pattern recognition research focus, can be widely used in security systems, video telephone system and the areas of human-computer interaction system; eye location is the face recognition problem must be solved first, how fast and accurate positioning eyes, decided to follow-up of face recognition ability to obtain good results; in the eye on the gray face and profile features, a contour detection based on eye location algorithm; Experimental results show that the complexity of the algorithm is small and accurate positioning.

Key words: face recognition; eye location; gray; profile; image morphology

1 概述

人脸检测识别是今年来计算机图像处理的一大热点,人脸检测与识别的研究始于20世纪60年代中后期,主要包含人脸检测与跟踪、面部特征检测与提取、人脸属性分类及识别几个功能[1]。该技术已被广泛应用于公安刑侦、司法鉴定、访问控制、金融支付、医学应用、视觉监控、视频会议等众多领域。眼睛是脸部特征的重要组成部分,眼睛的检测对于人脸信息的处理具有重要的意义,不仅可以提高识别和检测的速度,而且能够降低识别算法的复杂度。在脸部器官定位方面,只要人眼被精确定位,眉毛、鼻子、嘴巴等其他特征就可以通过潜在的分布关系比较准确地进行定位。眼睛的定位还可以使人脸较好地归一化,预处理的效果也更加明显[2]。另外,眼睛在感情以及辅助语言交流中也发挥着巨大的作用[3]。

本算法根据眼睛的灰度及轮廓结构特征:1)在人脸中具有对称性;2)其灰度值集中在某个区域,提出了一种结合人脸中眼睛的灰度及面积信息的人眼定位新算法。

2 眼睛定位思想与算法

2.1 算法思想

眼睛在人脸中有两个主要的特点,首先眼睛是对称的结构,并且双眼的眼珠大小几乎是相同的,这是面部其他器官所不具有的一个突出特点,其次眼睛部分的颜色比起周围皮肤深很多,并且十分集中,本文正是基于眼睛的这两个特点,进行眼睛定位。首先利用眼睛在灰度上的特性,利用二值化将眼睛与其周围大部分皮肤及面部其它器官分离开,而后利用眼睛的对称性,在处理过后的图像中寻找对称的轮廓,以此实现眼睛定位。

2.2 算法流程图

算法流程图如图1所示。

3 算法实现及结果

3.1 滤除噪声

一般通过摄像头获得的图像中,一般含有一定的噪声,为了在后面的眼睛定位中得到更好的效果,在一开始,对读入的图像使用了中值滤波,滤除了一定的噪声。

3.2 基于整个图像的灰度值对图像进行二值化

图像二值化的目的是使眼部区域凸显出来,而图像二值化处理的关键是阈值的选择,阈值选择的原则是选择和眼睛较为接近的灰度值,本文选择一种可变的阈值。

如果将整幅灰度图像的灰度值从大到小排成数列:T={T-N,T-N+1,T-N+2,…,T0,T1,T2,…,TN}。其中,“T-N”代表最小的灰度值,“TN”代表最大的灰度值,我们定义T0为整幅图的平均灰度值,则为:。假设图像中白像素点的灰度值为255,黑像素点的灰度值为0,则眼睛的灰度值应该是低于整幅图像的平均灰度值的,所以我们在计算出图像平均值的基础上,乘上一个系数a(0

如图3所示,经过自适应的二值化后,我们发现,在面部区域,眼睛部分已经十分突出,为后续的眼睛定位做好了准备,但与此同时眉毛,鼻子,嘴巴等部位还有部分残留图像,这部分图像是对眼睛检测的噪声,必须消除。

3.3 对图像进行形态学操作

由于二值化并不能够完全的凸显出眼睛,因为眉毛,鼻子和嘴巴的某些部分灰度值与眼睛有些接近,在二值化之后,得到的脸部图像中,除了得到眼睛之外,还可能存在一部分的眉毛,鼻子和嘴巴的残余图像,为了消除这部分噪声对后续眼睛检测的影响,我们使用了膨胀和腐蚀两种形态学操作。在对图像使用膨胀操作之后,先前存在的眉毛等的残余图像明显消失,但是眼睛区域也变得十分小,接着我们再使用腐蚀操作,扩大眼睛的区域,使得在后续检测中,方便的检测出眼睛。

比较图3和图4,我们可以看到,在使用膨胀操作后眉毛,鼻子,眼睛等部分的噪声基本上完全消除,但此时眼睛部分的区域也几乎被消除掉了,所以在膨胀操作之后我们使用腐蚀操作,一方面可以扩大眼睛部分的轮廓面积,另一方面又可以减小图4中一些小的轮廓,减小轮廓检测时的程序运行时间。

3.4 寻找眼睛位置并定位

由于图像中的不仅仅有眼睛的轮廓,所以检测出的结果应该是一个轮廓的序列。

假设该序列为:P={P0,P1,P2,…,PN}由于本文使用opencv实现算法,在得到的轮廓序列结构中,包含着检测出的每一个轮廓的面积。利用冒泡排序法,将得到的N个轮廓的面积进行排序,可以得到关于轮廓面积大小的一个数列: area[]={area0,area1,…,areaN}.我们利用眼睛的结构特征,即两只眼睛的轮廓的面积是相近的,从最大的轮廓面积开始逐次比较两个面积数组元素,当它们的相似度超过相似度阀值时,可以认为找到了两只眼睛。

找到眼睛的判别依据:λ>areaai/areaaj>1(i>j,λ为阀值)

经过试验发现,λ取值在1.1~1.3时,可以得到较好的检测效果。

我们可以看到,对图5进行轮廓检测后,可以得到图6,在图7中我们可以看到,在图6中一共存在6个轮廓,面积依次是:198,2236,0,468,497,41514,由眼睛的对称性,我们不难知道面积为497和468的两个轮廓正是对应的双眼,通过轮廓定位,我们可以得到最后眼睛定位出的结果,如图8所示。

通过实验验证了本算法定位的准确性和可行性, 证明了本算法在人脸识别的眼睛定位上有一定的识别准确度,本算法还具有容易实现、运算量少、对不同光照条件下的人脸图像有较好的检测效果。

4 结束语

经过实验,这种算法占内存小,能简单、快速地应用到嵌入式系统中,并能对多幅图像进行眼睛定位,基本上每幅图像都能正确定位,取得了满意的效果,由此说明此算法具有较好的准确性和可行性。但本算法是基于面积的大小,对于戴眼镜的人脸图像,需要调节二值化的阀值;当图像中有多个人脸时,应事先对图像进行切割,使其成为单个人脸。通过这些处理,本算法能实现对不同人脸的眼睛定位。

参考文献:

[1] 杨强,黄地龙.基于帧间差分与静态特征相结合的人脸跟踪方法[J].苏州科技学院学报:工程技术版,2006,19(2):74-78.

[2] 张敏,陶亮.人脸图像中人眼的检测与定位[J].光电工程,2006,33(8):33-36.

[3] TIAN Ying-l,i KANADE T, JEFFREY FC. Eye-state action unite-rection by Gabor wavelets[C]//Proc of the 3rd International Conference on Advances in Multimodal Interfaces. London: Springer-Verlag, 2000: 143-150.

[4] 刘瑞安,靳世久,张希坤,等.眨眼检测与眼睛跟踪[J].计算机应用,2006,26(12):2835-2837.

[5] 唐Q,许海柱,王力.图像中人眼检测技术综述[J].计算机应用研究,2008,25(4):961-965.

上一篇:基于属性论的核事故应急决策支持系统 下一篇:大乙烯生产调度应用系统的设计与实现