改进的人眼定位算法在DSP上的快速实现

2014-03-26 07:32孙立书
长春工业大学学报 2014年2期
关键词:人眼脸部人脸

孙立书, 余 伟

(浙江东方职业技术学院工程技术系,浙江温州 325011)

0 引 言

目前,有关驾驶员疲劳检测的方法有基于生理的测量方法、基于车辆行为的方法及基于计算机视觉的检测方法。基于生理的测量方法具有测量精度高的特点,因此具有较强的说服力。但是测量时需要在驾驶环境放置医疗设备,会影响驾驶员操作行为,影响驾驶效果,不适合实际应用。基于车辆行为的方法,如车辆偏离中心线的距离、转向、速度和加速度的变化可以反映出司机是否处于异常状态。但是这些测量值中能反映司机处于异常和非异常状态的临界值是多少?测量值在哪个范围内变动表明司机处于正常驾驶状态?确定此范围的依据又是什么?这些都很难确定,因此它具有较高误检率,较低的检测精度。基于计算机视觉的检测方法是使用摄像头实时拍摄驾驶员的头像,通过图像处理与识别技术分析驾驶员的眼部状态,即眼睛是睁开的还是闭合的,或者通过判断睁开和闭合的程度来判断驾驶员疲劳与否。它具有非接触性、信号采集方便快捷、可靠性高、稳定性强等特点,已成为驾驶员疲劳检测的一种重要方法。据统计,驾驶员通过视觉获取外界信息约占90%。因此,通过模式识别技术检测人眼的状态是判断驾驶员是否疲劳的主要依据之一。目前,国际上是以著名的PERCLOS80理论,即眼睛闭合80%的时间占某一特定时间的百分比来作为判断驾驶员是否疲劳的主要依据。采用该种方法进行疲劳检测主要分为3步。首先,对采集的视频图像进行人脸检测;然后,在此基础上进行人眼检测和跟踪;最后,采用PERCLOS80理论进行疲劳判断。对采集到的视频图像能否进行正确、实时的人脸检测是影响疲劳检测精度和检测效率的重要因素。

PC环境下人脸识别系统是一种非在线检测,具有非实时性和滞后性等缺点,且成本高、稳定性差、应用局限性大。DM643是一款功能强大的DSP芯片,在音视频和图像处理方面具有高速性能,被广泛应用于人脸识别系统中,由此产生了嵌入式人脸识别系统。文中提出在DSP上快速实现疲劳检测系统中的人脸检测,利用驾驶室内背景相对固定的特点,采用临界值法和K-means算法检测定位人眼。设计时考虑数据处理的实时性、硬件系统的规模、软件系统调试难度等诸多因素,采用TI公司TMS320DM643芯片为核心处理器,C语言编程。采用罗技快看高手版4000CCD摄影机,每秒摄取30张画面。人眼检测的流程如图1所示。

1 人脸区域提取

目前,检测人脸的方法有很多[1-6],而每个方法不尽相同,根据过去脸部检测的相关研究归纳出两种常见方法。其一是对影像中的肤色区域作形状判别;其二则是在肤色区域中搜寻是否含有脸部特征。在脸部的检测上,经过复杂度和效率的衡量,运用计算快速且检测效率高的Haar脸部检测[7-8]及连续适应性中心移动演算法(Continuously Adaptive Mean Shift,Cam Shift)。Haar脸部检测负责取得影像中人脸的部分,取得脸部区域后,再以Cam Shift用色彩几率分布及统计的方式追踪人脸,能确定滤除脸部区域中非肤色部分,两种检测方法具体如下。

图1 人眼检测的流程图

1.1 Haar脸部检测算法

Viola和Jones[7]提出一个机器学习之视觉上物件检测演算法。不仅大大缩短计算时间,且拥有很高的检测率,做法中有三项贡献:其一是类似Haar特征及将影像转换为能快速应用类似Haar特征的形式;其二是使用Ada Boost分类器,它能排除多数不必要的类似Haar特征,将目标放在关键的类似Haar特征上;其三是以串联的形态结合了许多分类器,提高检测效率并缩短计算时间。R Lienhart[8]等以两个重要的改革更进一步加强了Viola和Jones的物件检测演算法,在基本的类似Haar特征里,加入旋转的类似Haar特征,这些新的特征也和原本的类似Haar特征一样,可以在常数时间内被计算出来,且利用决策树来取代串联的分类器,加强了检测的效能。

1.2 Cam shift运动物体跟踪算法

Gary等人提出Cam Shift算法[9],即“Continuously Adaptive Mean Shift”算法,是一种运动跟踪算法。它主要通过视频图像中运动物体的颜色信息来达到跟踪物体的目的。连续适应性中心移动演算法Cam Shift是利用直方图来计算二维图像中色彩的概率分布,它可以处理动态的色彩分布变化,其中包含处理静态色彩分布的中心移动演算法(Mean Shift)。Mean Shift是利用色彩概率分布的上升梯度去搜寻物体,算法过程如下:

步骤1:在颜色概率分布图中选取搜索窗的大小。

步骤2:设定搜索窗的起始位置。

步骤3:计算搜索窗的重心(用xc表示)。

其中

步骤5:移动搜索窗的中心至重心,如果移动距离大于预设的阈值,则重复步骤3、步骤4和步骤5。直到搜索窗的中心与质心间的移动距离小于预设的阈值,或者循环运算的次数达到某一最大值,停止计算。

将Mean Shift算法扩展到连续图像序列,就是Cam Shift算法。它将视频的所有帧做Mean Shift运算,并将上一帧的结果,即搜索窗的大小和中心,作为下一帧Mean Shift算法搜索窗的初始值。如此迭代下去,就可以实现对目标的跟踪。算法过程如下:

步骤1:设定搜索窗的起始位置及大小。

步骤2:计算搜索窗的颜色概率分布(反向投影)。

步骤3:运行Mean Shift算法,获得搜索窗新的大小和位置。

步骤4:在下一帧图像中用步骤3中的值重新初始化搜索窗的大小和位置,重复步骤2继续运行。

在彩色图像中,计算整张图像色彩概率分布的计算量是很庞大的,Cam Shift在执行上其实不需要计算整张影像的色彩概率分布,所以Gary等人改进了Cam Shift,这项改进是将色彩概率分布的计算局限在搜索窗周围,如此一来,不仅减少计算量也提升了执行速度,算法具体过程如下:

步骤1:将整个图像设为搜寻区域。

步骤2:设定Mean Shift搜索窗的起始位置。

步骤3:在搜索窗的起始位置上,在较搜索窗大一点的范围内计算色彩概率分布。

步骤4:运行Mean Shift一次或多次,获得搜索窗新的位置和大小。

步骤5:在下一帧视频图像中,用步骤3获得的值初始化搜索窗的位置和大小。跳转到步骤2继续运行。

采用Open CV中Haar脸部辨识和Cam Shift函数进行脸部检测,检测结果如图2所示。

图2 人脸检测

2 人眼检测和定位

人脸区域找到以后,在此区域进行人眼检测,人眼检测的方法有很多[10-13],每个方法都有自己的限制条件。对于人眼检测采用较简单的方法,即临界值法,它是依据灰度直方图决定一个临界值,将灰度图像转换为黑白图像,即二值化图像。检测人脸时,提取脸部区域以后,采用灰度图像转换函数将它转换为灰度图像,如图3所示。

图3 人脸原图及灰度图像

先将脸部区域分为上下两个部分,预设眼睛一定在脸部的上半部,并利用临界值法留下较黑的像素点。在临界值的选取上,以灰度直方图利用统计的方式自动化选取,其做法是累计脸部区域上半部的像素数目,以占其总数目5%的值,对直方图5进行统计去选取二值化的临界值T=40。图3的脸部区域灰度直方图(灰度值的范围为0~235)如图4所示。人脸图像如图5所示,其二值化的结果如图6所示。

图4 脸部区域灰度直方图

图5 人脸图像

图6 临界值法二值化的人脸图像

二值化后留下的像素点是眼睛区域,以K-means聚类演算法对眼睛区域做分群的动作,K-means算法如下:

步骤2:将训练资料依据它们与各个聚类中心的距离(欧几里德距离或其它距离测量)远近,分配到最近的聚类中心。

步骤3:依据下列公式更新聚类中心位置,

式中:cj——所有被归类于第j个聚类的资料集合;

Nj——属于cj的资料的个数。

考虑到鼻孔偶尔会出现在脸部区域的上半部,所以将眼睛区域以K-means分为三群:一群为左眼,其初始在大致左眼的位置;一群为右眼,其初始在大致右眼的位置;另一群则为鼻孔,其初始在左右眼中心下方一点的位置。K-means的迭代次数设为一次,实验结果如图7所示[14-17]。

3 算法优化

3.1 使用CCS优化选项

CCS集成开发环境中提供了优化选项,在不同场合选择使用不同优化选项,可以改进程序性能。如在Generate Debug Info选项中,选择No Debug选项,即不输出调试信息,大大加快程序运行速度。

3.2 二级缓存L2的使用

在文中系统中,将常用到的两个数据(检测分类器和识别转换矩阵)和两个程序(检测和识别代码)尽可能多地放到L2中,如程序1所示。

程序1:sra m段指向DM643片内L2存储空间:

3.3 采用EDMA技术搬移数据

由于DM643片内RAM是有限的,经常把数据存储在片外。采用EDMA技术把用到的数据从片外搬入片内,大大提高程序的运行速度。测试结果见表1。

图7 人眼定位

表1 人脸识别算法优化结果

将人脸识别算法移植到硬件系统后,对于大小为640×480的灰度图像,优化前完成一次操作需要67.36 s,无法满足嵌入式人脸识别系统的要求,优化以后完成一次操作只需要0.48 s,为优化前的0.7%,基本满足实时人脸识别要求。

4 结 语

在疲劳驾驶状态检测过程中,人眼检测和定位是非常重要也是很关键的一个环节。首先采用Cam Shift算法提取人脸区域;然后采用K-means算法实现人眼检测和定位;对传统的在PC机上实现人脸检测的缺点和不足进行分析。以高速图像处理芯片TM S320D M 643为核心,Windows XP操作系统,采用i7-3612QM型号第三代智能英特尔酷睿i7处理器,内存4 GHz,搭建硬件平台。采用Matlab7.0仿真软件,在该硬件平台上对人脸识别算法进行优化。实验结果表明,人脸识别速度提高93%,实现实时、快速的人脸检测,从而实现快速的人眼检测与定位。

[1] 丁吉,李大伟.DSP Builder在图像边缘提取中的应用[J].长春工业大学学报:自然科学版,2010,31(1):52-57.

[2] C Garcia,G Zikos,G Tziritas.Face detection in color images using wavelet packet analysis[C]//Proceedings of the 6th IEEE International Conference on Multimedia Computing and Systems.Florence:[s.n.],1999:703-708.

[3] R L Hsu,M A Nottaleb,A K Jain.Face detection in color images[J].IEEE Trans.on Pattern Analysis and Machine Intelligence,2002,24(5):696-706.

[4] C Lin,K C Fan.Human face detection using geomeric triangle relationship[C]//Proceedings of the IEEE 15th International Conference on Pattern Recognition.2000:941-944.

[5] Li Tian,Y T Kanade,J F Cohn.Evaluation of gabor-wavelet-based facial action unit recognition in image sequences of increasing complexity[C]//Proceedings of 5th IEEE International Conference on Automatic Face and Gesture Recognition.2002:218-223.

[6] C A Perez,A Palma,C A Holzmann,et al.Face and eye tracking algorithm based on digital image processing[C]//IEEE International Conference on Systems,Man and Cybernetics.2001:1178-1183.

[7] P Viola,M Jones.Robust real-time object detection[C]//Proceedings of IEEE Workshop on Statistical and Theories of Computer Vision.2001.

[8] R Lienhart,A Kuranov,V Pisarevsky.Empirical analysis of detection cascades of boosted classifiers for rapid object detection[C]//Technical Report. MRL:Intel Labs.2002.

[9] G R Bradski.Computer vision face tracking for use in a perceptual user interface[C]//Proceedings of IEEE Workshop on Applications of Computer Vision.1998:214-129.

[10] R S Feris,T E Campos,R M Cesar.Detection and tracking of facial features in video sequences[C]//Mexican International Conference on Artifi-cal Intelligence.2001:129-137.

[11] Anon.Open source computer vision library(OpenCV).[EB/OL][2014-01-10].http://sourceforge.net/projects/opencvlibrary/.

[12] M Rizon,J L Wu.Automatic eye detection using intensity and edge information[J].Proceedings of TENCON,2000(2):24-27.

[13] R Senaratne,S Halgamuge.Optimised landmark model matching for face recognition[C]//Proceedings of the Seventh International Conference on Automatic Face and Gesture Recognition.2006:120-125.

[14] 张宁,李娜.基于Adaboost算法的人脸检测技术的研究与实现[J].现代电子技术,2011,14:56-58.

[15] 刘瑞祯,于仕琪.OpenCV教程[M].北京:北京航空航天大学出版社,2007:5-20.

[16] 陈盛勇,刘盛.基于OpenCV的计算机视觉技术实现[M].北京:科学出版社,2008:197-203.

[17] 杨枝灵,王开巧.Visual C++数字图像获取处理及实践应用[M].北京:人民邮电出版社,2003.

猜你喜欢
人眼脸部人脸
脸部美容须知
有特点的人脸
一起学画人脸
人眼X光
人眼为什么能看到虚像
三国漫——人脸解锁
做脸部运动让你显得更年轻
闪瞎人眼的,还有唇
The Lovely Face
看人,星光璀璨缭人眼