杨婷婷
(安徽文达信息工程学院 计算机工程学院,安徽 合肥 231201)
随着人们生活科技水平的提高,人们利用各类身份识别方式来保证个人信息的安全,如设定密码、安装各类杀毒软件等。这些传统的信息安全管理方式虽然可以在一定程度上维护个人的信息安全,但是存在数据泄密、密码盗用等弊端。[1]为避免这些弊端,人们采用生物信息识别技术进行信息安全的维护,如指纹、人脸识别等。这些方法具有速度快、稳定性好、单一性等特点,有效避免了密码盗用等风险。[2]其中人脸面部表情识别是最有发展前景的一项生物信息识别技术。
人脸面部表情的识别是基于计算机视觉、人机交互、心理学、人类学等学科的综合性学科。[3-5]通过采集视频图像,获取面部的特征点、五官距离特征等大量信息,从而实现人脸面部表情的识别。这种识别方式具有安全性高、鲁棒性强及识别速度快等优点。但是,在实际的表情识别时,由于人脸面部表情的复杂性,很多表情仍然无法有效识别,准确率仍然无法满足要求。
BP神经网络算法是一种前馈型的神经网络,通过模拟人脑的组织结构和认知过程进行信息的处理,具有可解决非线性映射问题、容错性好以及泛化能力强的优点,在图像的识别、语音识别等领域有较为广泛的应用。该算法尤其适用于对复杂问题的处理以及高精度的预测,可以将其应用于视频图像中的人脸面部表情识别。因此本文将基于视频图像对人脸面部表情的快速识别进行研究。
从实用性和易实现的角度对人脸面部表情识别系统进行设计。该系统主要由四个模块组成,分别是图像检测模块、人脸自动检测模块、特征提取模块和表情识别模块。人脸面部表情识别系统的结构如图1所示。
图1 人脸面部表情识别系统的结构简图
为保证系统的顺畅运行,系统同时需要配备Windows平台、Pentium 1.0G的处理器,同时还需要安装Matlab和ACDSee软件。
图像检测模块主要是利用成像设备获取包括人脸和环境在内的三维动态图像,为后续的人脸面部表情识别做准备。该模块的硬件成像设备主要包括摄像机、图像采集卡、存储器等。
摄像机用于获取三维视频图像,其拍摄效果决定了后续人脸面部表情的识别效果。为保证图像的清晰度,采用Cannon Power Shot A75摄像机进行拍摄。在进行图像采集时,还可根据环境的明暗配置照明装置,一方面保证图像的拍摄环境光照度要求,另一方面获取人脸图像深度,以保证图像的三维效果。人脸表情视频图像的获取有多种方法,如雷达和变焦测距等,但是成本较高。本文采用结构光照射彩色光带的方法,其原理示意图如图2所示。
图2 结构光照射彩色光带的原理示意图
在拍摄过程中,摄像机与结构光排布具有一定的距离,结构光照射在平面上,摄像机拍摄物体表面和光平面,通过摄像机和光平面的交点即可确定每个点的三维坐标。为保证分辨人脸表面深度以及适应动态图像的拍摄,结构光使用彩色光带的方式照射。图像采集卡是将采集到的三维图像通过A/D转换,以数字信号的形式传入计算机,进行分析和后续的存储。存储器用于对采集的图像、分析过程数据和分析结果进行存储。考虑到三维图像占用存储空间较大,因此可以选择较大容量的存储器进行数据的存储。
人脸自动检测模块是对已获取的图像进行检测,识别视频图像中人脸的位置和大小。同时跟踪图像中的人脸,为后续的人脸面部表情识别做准备。该模块主要包括人脸的识别定位和人脸目标的跟踪识别两部分。
在进行人脸的识别定位时,主要进行视频图像的预处理、人脸初识别和验证人脸定位的准确性,人脸的识别定位过程如图3所示。
图3 人脸的识别定位过程图
首先,对获取的图像进行预处理,主要包括YCbCr颜色空间的转换和肤色二维高斯分布。在进行人脸图像的采集时,根据采集背景,可分为有复杂背景和无复杂背景两种情况。对具有纯色简单背景的图像,如证件照等直接进行识别即可。对具有复杂背景的图像,通过分析可知,人脸所具有的肤色特点是人脸与背景最大的差别,因此采用颜色空间分布模型进行人脸的识别。摄像机获取的图像为RGB颜色空间,为便于颜色的处理,将其转换为YCbCr颜色空间,[6-7]转换方式如下:
(1)
式(1)中的Y为亮度,最低的黑色值为16,最高的白色值为235,偏移值为16;Cb为蓝色,Cr为红色,蓝色和红色的值范围均为16~240,偏移值为128。其后,为便于人脸识别,在二维空间采用高斯分布的方式描述图像中的颜色分布。在二维空间中,采集图像的肤色高斯分布G(x)可以用下式表示:
(2)
式(2)中的μ和σ分别为肤色的均值分布和协方差。图像的肤色分布中心可视作为肤色的均值分布值,则图像各部分与肤色分布中心的相似度Si可以按照下式计算:
(3)
设定相似度范围,即可确定图像中肤色的区域。其次,进行人脸初识别,主要是采用边界的方法进行区域分割、分割目标的合并,确定初始人脸区域。在进行区域的分割时,快速扫描预处理后的图像,将超过相似度范围区域点中的相邻肤色点作为边界,从而得到人脸的边界。对每一个边界点,从其附近按照从上到下、从左到右的方向寻找未扫描点并连接成为一个矩形,由此可以确定多个不同的肤色矩形区域。但是这些区域可能不连接,且无法形成一个完整的人脸,因此还需要对矩形区域进行处理合并。在进行合并时,通过将相邻区域的矩形以最小矩形区域连接并替代的方式进行合并。在合并时,需要相邻区域的矩形满足颜色差值小于设定阀值,同时尺寸和位置满足一定要求才可进行合并。以图4(a)和图4(b)两个不同相对位置的M和N区域为例。
图4 两个不同相对位置的区域示意图 注:(a)左右位置;(b)上下位置。
图4中M和N区域的高度和长度分别为h1、h2、l1和l2,两个矩形区域需要满足以下要求:
式(4)中S合并为合并后矩形面积,d1和d2分别为M和N区域的中心在长度和高度方向的距离。由此完成初始人脸区域的识别。
最后,是验证人脸定位的正确性,采用眼睛和嘴巴与五官特征的匹配性进行验证。在人脸中,眼睛和嘴的部分颜色不是肤色,按照颜色对图像处理后可以得到眼睛Meye和嘴Mmouth的图像位置分别为:
(5)
Mmouth=(Cr2)·(Cr·Cb)
(6)
计算两只眼睛和嘴巴的夹角,小于25°则可认为人脸识别定位正确,否则重新对采集的图像进行处理识别。
由于获取的图像为动态的,在完成人脸的识别后,还需要随着图像的动态变化进行人脸跟踪。为保证追踪频率和准确性,系统采用Gabor Jets相似性方法进行人脸追踪。对于人脸部的任意点,如眉毛、眼睛等部分,提取该点当前帧的Jets值为Ji,对于下一帧的Jets值Ji+1,两帧之间的Jets距离D(Ji,Ji+1)[8]为:
式(7)中的θ为图像中该点在当前帧的Gabor方向,λ为Gabor频率。在该点附近搜寻点,使其Jets距离达到最大,即为下一帧该点的位置。通过对多点进行计算,从而实现对人脸的追踪。
特征提取模块主要用于提取人脸的特征。人脸特征的选取直接决定了人脸表情面部表情识别的准确性和识别速率。根据需要,可以设定人脸模型,从中提取有效特征进行分析。有效特征可以选择人脸的纹理特征、局部运动模型以及整体特征。
表情识别模块是最终实现对人脸面部表情识别的模块,该模块的优劣决定了人脸面部表情识别系统的优劣程度。本模块通过采用相关表情识别算法,如BP神经网络算法等设计进行表情的识别,以确定最终的识别结果。
在进行人脸面部表情识别时,需要通过人脸特征提取算法提取相关特征。其后对特征进行分类、识别,将特征参数作为输入特征向量,采用BP神经网络进行表情的自动识别。
在进行人脸的特征提取时,需要能够充分反映人脸的表情特点、符合表情动作的运动性以及易于提取。而人脸在做出表情时,相应的五官需要做出一定的动作。结合以上的要求和表情特点,本系统选择人脸的纹理特征、局部运动模型以及整体特征作为人脸表情识别的输入特征向量。[9]
在人脸做出表情时,纹理主要体现在额头和下巴位置,因此在进行纹理的提取时也主要针对人脸的这两个部位进行特征提取。脸部纹理按照竖向、横向和斜向的方向,通过设定不同方向的检测器进行纹理方向的提取。图像的梯度▽T(x,y,i)以及其在三个不同方向的梯度▽Tx(x,y,t)、▽Ty(x,y,i)和▽Txy(x,y,i)分别如下所示:
(8)
式(8)中的T(x,y,i)为当前i帧的图像,Wx、Wy和Wxy分别为三个不同方向的纹理检测器的结果。通过以上公式可以计算并确定脸部纹理的梯度、强度变化。人脸做出表情时,对于纹理的检测就是对纹理在一定时间的微分,此时纹理的变化量Γi(x,y)为:
(9)
为后续表情的识别,可以设定纹理变化量的阀值,以避免纹理变化量过高或者过低造成关键信息的丢失,或者噪声过多影响后续表情的识别。
人脸的局部运动模型是针对人脸做出表情时,提取各采样点变换时的运动模型,并根据这些模型参数值确定人脸表情。[10-11]对人脸图像中的某区域,其中心位置坐标为(x,y)。识别人脸表情最主要的部位为眼睛、嘴巴和眉毛等位置,而这些部位的运动模型不尽相同。若该区域为眼睛部位,则其运动模型在水平和竖直方向的分量S(x,y)和T(x,y)分别采用下式计算:
(10)
式(10)中的m0、n0为水平和竖直分量的平移分量参数;m1、n1为水平和竖直方向压缩或伸展分量;m2和n2为旋转分量;m3和n3为形变偏角分量;m4和n4为斜度分量。若该区域为嘴巴和眉毛等位置,则其运动模型在水平和垂直方向的分量P(x,y)和Q(x,y)分别采用下式计算:
(11)
式(11)中的n5为水平和数值分量的曲率分量,公式中的其他各参数与眼睛部位运动模型各参数意义相同,可根据模型进行参数具体数值的调整。通过以上方法即可确定各局部区域的运动模型。
整体特征是指整个人脸图像处理后提取的主要特征,可以采用人脸识别后的结果作为人脸图像的整体特征。
在进行人脸的面部表情识别时,采用三层的BP神经网络进行识别,即BP神经网络作为表情分类器。该BP神经网络主要包括输入层、隐含层和输出层。其中输入层的输入特征向量主要包括纹理特征,眼睛、嘴巴和眉毛的局部特征以及图像识别的颜色整体特征;输出层的输出向量主要包括人脸识别的7种表情,分别为开心、伤心、恐惧、中性、厌恶、惊奇和生气;隐含层的节点个数目前还没有明确的数量要求,可以根据经验公式进行选择。隐含层节点nyin个数计算的经验公式如下:
nyin=int[sqrt(0.43xy+0.12y2+0.54x+
0.77y+0.86)]
(12)
式(12)中int()为数值取整,x和y分别为神经网络输入层和输出层的向量个数。对于本系统来说,x和y分别取13和7,计算得出隐含层的节点个数为7。同时,还需要确定BP算法的学习速率,为保证系统可以稳定运行,还要保证运行速率,一般学习速率设定为0.01~0.8,本系统选择为0.1。
为验证该人脸面部表情识别系统的性能,需要对其进行相关试验。本文主要针对图像中人脸识别、追踪和人脸表情的快速识别进行了设计,因此在进行试验设计时,主要进行人脸定位试验和人脸表情快速识别试验。
在进行人脸定位试验时,采用随机拍摄的图像测试集。测试集中共包括500张包含人脸的三维图像,将图像随机分为5组,每组包含100张图像,分别采用该系统对每组图像进行处理和人脸的定位。识别后移动图像,验证系统是否可以实现对人脸的追踪。系统对图像处理完成后,人脸的定位和追踪结果如表1所示。
表1 人脸定位结果
由表1可知,该系统对人脸定位的准确率均在90%以上。且对于识别出的人脸均可以成功追踪,可以达到系统对图像中人脸定位的要求。
系统采用BP神经网络作为分类器进行人脸表情的识别,在进行试验时,采用人脸识别中的500张人脸识别后的图像进行后续的人脸表情试验。将第1组和第2组图像作为训练集,将第3组至第5组共300张图像作为测试集。
首先,采用训练集的图像对系统进行训练。设定BP神经网络的误差门限为e-3,采用BP神经网络训练的误差曲线如图5所示。
图5 BP神经网络训练的误差曲线图
由图5可知,随着训练次数的增加,误差逐渐降低,并逐渐趋于稳定。其后,采用该BP神经网络对3组测试集图像进行表情识别,识别结果如表2所示。
表2 人脸表情识别结果
由表2可知,采用该人脸面部表情识别系统进行人脸表情识别的准确率均在84%以上,且识别时间均在1s以内,基本可以实现对人脸表情的快速、准确识别,符合人们对人脸面部表情识别系统的要求。
传统的信息安全管理方式虽然可以在一定程度上维护个人的信息安全,但是存在数据泄密、密码盗用等弊端。为提高信息安全性,可以采用人脸面部表情识别进行信息安全的维护。为实现对人脸面部表情的快速、准确识别,本文主要进行了以下工作:
(1)建立人脸面部表情识别系统,该系统主要由四个模块组成,分别是图像检测模块、人脸自动检测模块、特征提取模块和表情识别模块。
(2)对系统的各模块进行了设计。通过对获取的图像进行预处理、人脸初识别和人脸验证,确定人脸位置并可以追踪。
(3)充分考虑人脸面部表情特征,确定人脸提取特征以及提取算法,并对特征进行分类、识别。采用BP神经网络作为分类器进行表情的自动识别,并对相关算法进行了设计。
(4)为验证该人脸面部表情识别系统的性能,对其进行人脸识别试验和人脸表情快速识别试验。试验结果表明该系统可以实现对人脸表情的快速、准确识别,符合人们对人脸面部表情识别系统的要求。