APP下载

实时人脸表情识别方法的研究与实现

2016-01-29梅珍妮胡步发

机械制造与自动化 2015年4期

梅珍妮,胡步发

(福州大学 机械工程及自动化学院,福建 福州 350116)

实时人脸表情识别方法的研究与实现

梅珍妮,胡步发

(福州大学 机械工程及自动化学院,福建 福州 350116)

摘要:进行人脸表情识别系统相关的算法研究,并基于网络摄像机平台搭建实时人脸表情识别系统。针对经典Retinex算法亮度图像估计运算复杂问题,提出一种Gamma校正的单尺度Retinex图像增强算法;对增强图像进行HOG表情特征提取,并通过最近邻分类器进行表情分类。搭建人脸表情识别系统,进行实时人脸检测与表情识别。测试结果表明该方法具有较高的识别率和鲁棒性。

关键词:网络摄像机;Gamma校正;最近邻分类器;表情识别

Research on Real-time Facial Expression Recognition Method and Its Implementation

MEI Zhenni, HU Bufa

(College of Mechanical Engineering and Automation,Fuzhou University,Fuzhou 350116,China)

Abstract:This paper researches on the related algorithm and builds a real-time facial expression recognition system based on network camera platform, aiming at the brightness image estimation complexly operated by the use of classic Retinex algorithm, presents a .Gamma correction single scale Retinex image enhancement algorithm, and the enhanced image HOG expression characteristics are extracted and the expression is classified by the nearest neighbor classifier. And then it builds a facial expression recognition system, and completes real-time face detection and face recognition. Test results show that the method is of high recognition rate and robustness.

Keywords:network camera; gamma correction; nearest neighbor classifier; facial expression recognition

0引言

人脸表情不仅在人与人交流中起到重要作用,也是使计算机更准确理解人类思想,实现人机交互的一个重要研究内容[1-2]。为更好地进行人脸表情识别算法的测试开发,文中基于网络摄像机搭建实时人脸表情识别系统,可以实现实时人脸检测及表情识别功能。表情识别系统的搭建为表情识别算法提供分析依据,也为人脸表情的实用化开发和应用提供硬件基础。

表情识别系统主要由一台网络摄像机和软件功能模块构成。由摄像机在现实环境中实时采集视频图像信息,对视频的每一帧单独进行计算。系统工作流程如图1所示。软件部分,使用人脸样本训练分类器,进行人脸检测,利用自建的表情库进行表情分类器训练,实时识别人脸表情。

图1 系统工作流程图

人脸表情识别是系统的中心环节,其特征提取过程为先采用Gamma校正的Retinex方法[3]进行图像增强,再使用HOG算子[4]对增强后的图像进行梯度直方图特征提取。并对提取的人脸表情特征使用最近邻分类器进行分类。该系统能够克服光照的影响,在一定范围内跟踪检测人脸,同时能快速识别表情并实时输出结果。

1基于Retinex理论和HOG算子的特征提取

1.1Retinex理论

Retinex是Edwin Land提出的一种颜色恒常色彩理论。传统图像增强算法只能增强图像的某一类特征,如线性变换、图像锐化等。Retinex可以在灰度动态范围压缩、边缘增强和颜色恒定三方面达到平衡,因而可以对不同类型的图像进行自适应的增强[3]。

图像的形成主要由两部分构成:入射光L(x,y)和反射物体R(x,y),最后形成的图像用公式表示为:

I(x,y)=L(x,y)·R(x,y)

(1)

Retinex理论的目的就是为了从图像I(x,y)中抛开入射光的影响来获得物体的反射性质。为了将复杂的乘积形式转化为简单的加减运算,采用了接近人眼亮度感知能力的对数形式表示:

i(x,y)=l(x,y)+r(x,y)

(2)

其中,i(x,y)=log[I(x,y)],l(x,y)=log[L(x,y)],r(x,y)=log[R(x,y)]。

用Retinex理论进行图像增强,关键是从原图像中有效的计算出亮度图像,除去亮度图像的影响,得到反射物理的性质。但是,从原图像中计算亮度图像在数学上是一个奇异问题,只能通过近似估计的方式估算。经典Retinex算法亮度图像运算估计复杂,文中提出一种基于单尺度Retinex的Gamma校正图像增强算法。先对亮度图像进行粗估计,再通过Gamma校正对图像粗估计的结果进行补偿[5]。算法流程如图2所示。

图2 图像增强算法流程图

a) 单尺度Retinex算法

Jobson根据中心/环绕Retinex算法理论,提出单尺度Retinex算法[3]。设亮度图像为L(x,y)是平滑的,原图像为I(x,y),反射图像为R(x,y)。则有:

I(x,y)=L(x,y)·R(x,y)=(I(x,y)*G(x,y))·R(x,y)

(3)

在对数域中,单尺度Retinex可以表示为:

log[R(x,y)]=log[I(x,y)]-log[I(x,y)*G(x,y)]

(4)

其中,*表示卷积,G(x,y)为环绕函数,一般采用高斯函数表示。

(5)

式中,G(x,y)满足∫∫G(x,y)dxdy=1,λ为常数。c为尺度常量,c越大,灰度动态范围压缩的越多,c越小,图像锐化的越明显。

b) Gamma校正

Gamma校正能对反射图像进行动态范围压缩,也能调节反射图像在增强后图像中的比例[5]。可表示为:

r'(x,y)=[r(x,y)]1/γ

(6)

式中,γ为正数,把校正后的反射图像和亮度图像在对数域相加,再进行反对数运算,可以得到增强后的图像。

R(x,y)=exp[R'(x,y)]=exp[r'(x,y)+l(x,y)]

(7)

实验结果表明,所提出的算法同经典的Retinex算法相比,可以提供更好的动态压缩范围、增强对比度和图像锐化,有更好的视觉增强效果。

1.2HOG算法

梯度方向直方图(HOG)用于模式识别是最近出现的一种方法。HOG特征描述算子属于差分模式的信息提取方法,出自Lowe的尺度不变特征变换SIFT算法的最后一步,由于其有效的表达能力,受到了普遍的关注[4]。

HOG算法的步骤如下:

以关键点为中心取8×8的像素邻域作为采样窗口,然后将采样窗口平均分为4个相等大小的块,每个块大小为4×4,分别计算每个小块上每个像素的梯度方向和梯度幅值。

θ(x,y)=

tan-1(R(x,y+1)-R(x,y-1))/(R(x+1,y)-R(x-1,y))

(8)

m(x,y)=

(9)

其中,R(x,y)是图像上(x,y)坐标上的像素值,θ(x,y)是该点的梯度方向,m(x,y)是该点的幅度值。这里梯度方向分为有符号的8个方向。如图3所示,圆圈的高斯加权范围,将同一小块上所有点相同梯度方向的幅度值按照权重累加,组成该小块的一个8维梯度直方图,其他小块以此类推。将4个块的8维梯度直方图求出后,将它们连成一个4×8=32维的关键点特征描述。

图3 HOG特征提取过程

2人脸表情分类识别

人脸表情分类识别就是对人脸表情信息进行特征提取并分类的过程。通过人脸表情HOG特征模型的训练,为每一种人脸表情训练一组优化的HOG模型。采用同一种表情的多幅人脸图像训练一种表情的HOG模型[6]。对于7种表情,共需要训练7组HOG模型。

对于每一个HOG模型训练步骤如下:

Step1:选择表情人脸图像,通过人脸检测定位,尺寸归一化,得到高度96mm、宽度80mm的脸部图像。

Step2:将表情图像作为输入图像I(x,y),利用高斯函数与原图像的卷积操作进行亮度图像估计,得到图像L(x,y),对原图像I(x,y)进行对数运算,除去其中的亮度因子得到粗估计反射图像r(x,y)。

Step3:对粗估计反射图像r(x,y)进行Gamma校正,并在对数域和亮度图像相加,进行反对数运算得到增强后的图像R(x,y)。

Step4:将增强后的图像R(x,y)以8×8的像素邻域网格作为采样窗口,以无重叠的方式遍历整个人脸图像,可以得到12×10=120个小块网格形式,分别计算每个像素点的梯度方向和幅值。

Step5:在每个小格内按照4×4像素大小的块统计HOG特征。取梯度方向为8,高斯权值均为1,将块内相同梯度方向的幅值乘以权值后相加,然后将网格内各块的直方图连成一个向量。最后将每个小块的32维梯度直方图串联,得到整个图像的表情特征,为12×32=3840维梯度直方图。

通过训练,得到7种表情的7组HOG特征值,将其分别存入分类器中。采用最近邻域方法实现表情的分类过程,对于测试样本重复上述步骤,完成HOG特征值提取,依据最短欧几里得距离作为判定准则,在各个分类器中寻找与测试样本距离最近的训练样本,该训练样本所对应的表情类别,即是测试样本的表情类别。

3实验结果及分析

实验所用的摄像机是智能变速球形网络摄像机TC-D6系列,摄像机内置编码器,采用RS-485总线控制。利用该网络摄像机完成的软件功能模块设计包括三个主要的部分:图像采集模块、人脸检测及预处理模块、人脸表情识别模块。

3.1图像数据采集

图像数据采集[7-8]是利用厂商提供的SDK开发包,从底层接收视频图像信息,在程序入口中添加代码。而入口函数在程序初始化时已经被调用,并用于对摄像机发送到程序的各类消息作出响应。其数据采集过程如图4所示。

图4 摄像机图像数据采集过程

函数中定义静态变量用以保存图像的帧号,当接收到消息时,判断其成员变量若为所需要的图像数据emCBMsgType_RGB32,则将所需数据指针存入队列中。队列成员变量具有先进先出(FIFO)的特点,便于对图像数据的读取及进行后续处理工作。

3.2人脸检测及图像预处理

对采集到的图像数据,利用Adaboost算法基于OpenCV平台进行人脸检测。基于opencv的人脸检测包括两方面内容:训练分类器和利用训练好的分类器进行人脸检测。目前人脸检测分类器大都是基于haar特征,利用Adaboost学习算法训练的。

人脸检测过程,首先生成样本描述文件。采用MIT CBLCL图库训练人脸,其中正样本放在trainfaces文件夹下,有2429个样本。负样本放train onfaces文件夹下,有4548个样本,这些样本都是20×20的。通过命令提示符cmd指令分别进入正负样本目标目录,分别生成正负样本.dat文件。通过OpenCV程序生成的HaarTraining.exe可执行文件,生成训练分类器所需要的正样本.vec文件。然后训练分类器,此文件由OpenCV程序生成的可执行文件HaarTraining.exe完成,通过此过程生成的.xml文档,即是所需要的分类器文件,可用于目标区域的检测。

训练后所得到的级联分类器共20级,每级包含的弱分类器个数如图5所示。

图5 分类器训练结果

利用已经训练好的人脸分类器,在不同背景条件、不同光照强度的试验环境下进行人脸检测测试。表1为不同背景下分别测试的结果对比,其中测试图片为简单背景和复杂背景下的各50张包含人脸的图片。

表1 不同背景条件下人脸检测结果

图6为复杂背景下人脸检测效果图,通过试验得出,系统能够准确地将人脸从背景中检测出来,并对人脸目标进行稳定的实时跟踪。

图6 复杂背景下人脸检测效果图

将检测到的人脸区域进行高斯平滑、颜色空间转换,得到灰度图像,并对其进行亮度调节,再进行图像增强,最后根据双线性插值法进行人脸图片大小归一化处理。如图7所示为图像预处理过程图,依次分别对应原图像、高斯平滑图像、灰度图像、亮度调节图像、增强图像。

图7 图像预处理过程图

3.3实时人脸表情识别系统

将融合Renitex图像增强理论的HOG算法应用于网络摄像机的实时人脸表情识别系统。在人脸表情识别前,先进行表情分类器训练。人脸表情训练分类器的样本是用摄像头采集的表情图库,取每种表情各5张,共35张图片。表情图库是由人脸检测模块提取的有效人脸区域,再由表情分类器进行训练。成功训练表情分类器后,利用网络摄像机进行表情识别实验。当摄像机采集视频图像成功检测提取人脸区域并预处理后,对表情进行实时识别并输出识别结果。如图8所示为建立表情库举例。

图8 表情库举例

实验是在Visual Studio 10操作环境下运行,软件在Inter Core i3-2100,3.09GHz,4G内存PC机上完成。图9为表情识别系统运行界面。摄像机显示得到的视频大小为1080P,视频编码标准为H.264。当设置好界面右侧各选项后,点击LoginDevice按钮,程序便会和摄像机建立通讯,然后按下OpenChannel按钮,摄像机采集到的视频便会显示在界面左侧窗口。

图9 表情识别系统运行界面

实验选取志愿者分别做出高兴、惊讶等不同表情,进行实时表情识别系统测试。图10为部分志愿者表情识别结果展示。表2列出了包括中性表情在内的7种表情的具体识别结果。

图10 表情识别结果举例

由表2可以看出,惊讶、高兴等夸张的表情识别效果很好,对于害怕、中性等容易混淆的表情,系统误识别率相对较低。这种现象主要原因有两个:1) 测试表情是实时采集的,参与实验的人员未经过专业训练,不能到位的模拟各种表情;2) 表情是在实际环境中测试,环境和光线强度的变化对实验影响较大。由实验结果可以看出,文中所设计的表情识别系统稳定,识别速度快,能达到实时表情识别的要求。

表2 人脸表情识别结果

4结论

基于网络摄像机进行实时人脸表情的方法研究及实现,针对经典Retinex算法亮度图像复杂的运算,基于单尺度Retinex算法进行Gamma校正。将增强后的人脸图像进行HOG表情特征提取,通过最近邻分类器进行表情分类,提高了表情识别率和鲁棒性。

算法选择方面,采用Retinex算法克服光照影响获取质量稳定的面部表情动态序列。针对经典Retinex算法亮度图像估计运算复杂问题,提出Gamma校正的单尺度Retinex增强图像。为建立快速高效的人机交互系统,采用计算简单并能有效描述图像纹理特征的HOG方法。可以在复杂背景中快速寻找人脸,同时能够快速识别表情并实时输出结果。

参考文献:

[1] 王文成. 基于局部特征分析的人脸表情识别问题研究[D]. 济南: 山东大学博士学位论文, 2011.

[2] 徐杜功, 丁召, 刘桥. 基于稀疏表达和改进的 LBP 算子的人脸表情识别[J]. 计算机应用与软件, 2013, 30(4): 246-248.

[3] 宋书林, 张彦, 王宪, 等. 基于曲波变换和 Retinex 人脸光照处理算法[J]. 计算机工程与应用, 2013, 49(3): 171-173.

[4] 曲永宇, 刘清, 郭建明, 等. 基于 HOG 和颜色特征的行人检测[J]. 武汉理工大学学报, 2011, 33(4): 134-138.

[5] 彭国福, 林正浩. 图像处理中 Gamma 校正的研究和实现[J]. 电子工程师, 2006, 32(2): 30-32.

[6] Yan-ping C, Shao-zi L, Xian-ming L. Fast hog feature computation based on CUDA[C]//Computer Science and Automation Engineering (CSAE), 2011 IEEE International Conference on. IEEE, 2011, 4: 748-751.

[7] 刘步中, 张曦煌, 王庆磊. 基于嵌入式 Linux 的视频监控系统的设计[J]. 计算机工程与设计, 2009, 30(8):28-30.

[8] 高文伟, 顾明剑, 王模昌. 基于 USB2. 0 的高速实时图像数据采集系统[J]. 科学技术与工程, 2007, 7(9): 1671-1819.

收稿日期:2014-01-14

中图分类号:TP391.41

文献标志码:B

文章编号:1671-5276(2015)04-0145-04

作者简介:梅珍妮(1988-),女,山东烟台人,硕士研究生,研究方向为机电系统辨识与故障监测。

基金项目:福建省自然科学基金项目(2012J01260)