基于gpu加速的人脸表情识别及互动方法
【技术领域】
[0001]本发明涉及计算机数字多媒体、增强现实及体感交互技术领域,特别涉及一种基于普通摄像头的人脸表情检测及互动方法,尤指一种基于GPU加速的人脸表情识别及互动方法。
【背景技术】
[0002]人脸是非语言交流中最具有表现力的通道之一,人脸表情为研宄情绪、意图、性格提供了线索。准确高效识别人脸表情的能力可以为很多应用提供支撑,想象空间巨大。
[0003]在过去几十年中,很多计算机系统被构建出来,用来理解人类表情或与之互动。大多数系统都将表情识别为一些原型表情(高兴、惊讶、愤怒、悲伤、恐惧、恶心)。在日常生活中,这些原型表情很少出现,而在人脸特征上通过一两个小变化来交流却有很多,比如说紧闭嘴唇表示愤怒,嘴唇倾斜往下表示悲伤。一些单独特征的改变,特别是在眉毛和眼皮区域的变化,更是一种副语言,如抬起眉毛表示着开心。为了获得这些精细的人类情绪和副语言的交流,对人类表情细微变化的自动检测是非常必要的。
[0004]面部编码系统(FACS)是使用最广泛的、基于解剖学原理的编码系统,它通过观察面部外观的瞬间轻微变化,将其编码成不同肌肉的运动。使用FACS,研宄者可以将任何在解剖学上可行的面部表情,解码成Act1n Unit。对愉快、悲伤、惊讶、恐惧、愤怒、恶心这六种基本表情,则可以使用AU的组合表示,例如愉快是AU6与AU12的组合。
[0005]对人脸表情的识别主要分为对原型表情的识别和对人脸Act1n Unit的识别,shan使用LBP对表情原型进行了识别分类。Zhao提出了一种基于LBP的动态纹理识别算法,并通过这个算法对原型表情进行了识别分类。Cohn使用Gabor滤波识别笑脸。Sebe使用了 PBVD模型通过用户指定的方式获得脸部特征点,然后通过模型形变获得表情特征,使用SVM支持向量机对特征进行分类从而获得原型表情。
[0006]对人脸Act1n Unit进行识别的算法有很多,Lucey使用AAM活动外形模型对人脸的63个特征点进行匹配,通过SVM支持向量机、NN最近邻及LDA对AU进行识别分类。Jiang提出的LPQ-TOP方法是一种基于LBP-TOP和LBQ的改进方法,实现了对9个AU的识别分类,准确率达到了 84.6%。Bartlett和Littlewort使用Gabor滤波对表情原型和AU都进行了识别。Littlewort也使用Gabor滤波对人脸图像进行特征提取,并使用SVM进行AU识别分类。
[0007]在人脸表情识别的研宄中,很多研宄者关注识别的准确率,而对效率并不是特别在意,因此,开发一种能够实时进行表情交互的系统是十分必要的,一方面这能够更好地让使用者对交互系统进行评判,另一方面,也能够基于此开展更多的互动研宄。
[0008]实时表情交互系统是一个可以用于实时识别人脸表情AU的软件工具。系统可以通过摄像头处理实时视频,也可以处理视频文件或者单张图片。通过对16个面部AU的识另IJ,系统既可以响应单个AU,也可以通过组合,对愉快、悲伤、惊讶、愤怒、恶心和恐惧这六种原型表情进行识别,或对交互动作进行定制。所有该系统的输出都在图形界面进行显示,直接输出为文件。通过基于socket的进程间通信手段,实时表情交互系统可以为其他应用提供AU识别功能,有助于基于AU的应用开发。
【发明内容】
[0009]本发明的目的在于提供一种基于GPU加速的人脸表情识别及互动方法,解决了现有技术存在的人脸识别效率低下等问题。基于GPU加速的Gabor滤波识别人脸表情,该方法能够让用户在普通摄像机前,通过表情的变化来与计算机进行交互,在数字家庭、游戏及医学上有着广阔的应用前景。
[0010]本发明的上述目的通过以下技术方案实现:
基于GPU加速的人脸表情识别及互动方法,包括以下步骤:
步骤(I )、通过普通摄像头或者视频获得动态人脸表情:
将普通摄像头连接到计算机,并将普通摄像头放置于演奏者脸部正前方,距离人脸50-60厘米,通过摄像头获得包含正面人脸的图像;
步骤(2)、使用基于Haar特征和AdaBoost级联分类器的识别方法对人脸进行检测,提取出离摄像头最近,即占据画面最大的人脸图像:
步骤(3)、通过提取出的人脸图像,使用基于Haar特征及AdaBoost的识别方法,识别出瞳孔、鼻尖等位置坐标。
[0011]步骤(4)、将人脸分为若干个关键区域:
通过对人脸微表情的分析,我们将人脸分为若干个区域,其中,以瞳孔位置为中心,向左15像素,向右15像素,向上35像素,向下15像素的区域为眉毛表情区域,用来检测眉毛的细微变化,另外分别还有覆盖眼睛微表情、面颊微表情以及嘴唇微表情的区域;
步骤(5)、对整张人脸实现基于GPU加速的Gabor滤波:
Gabor滤波需要大量分别对Gabor核实部和虚部的卷积操作,Gabor核越大,卷积图像越大,耗时越长,我们选用21*21像素大小的Gabor核,卷积图像为150*150。针对卷积算法耗时长的特性,使用了基于FFT的方法,将空间域的卷积操作转化为频率域的相乘操作,每次卷积只需要I次FFT变换,I次相乘和I次逆FFT变换,时间复杂度为nlog(n),可以达到较快的速度,同时使用GPU加速并行处理技术,对FFT变换进行加速,同时将Gabor核的FFT变换结果保存在显存中,减少运算的时间。Gabor滤波之后,每个像素点都拥有40个幅值作为特征。
[0012]步骤(6)、对人脸特征点附近的关键区域进行特征提取:
通过将步骤(4)中获得的眉毛表情区域ROI以及其他ROI,将每一个ROI中的像素点根据从左到右、从上到下的顺序进行排列,再将40个幅值代入,得到这个ROI的特征;
步骤(7)、如果此时为训练模式,则将提取出的特征根据微表情出现与否打上标签,并通过增量SVM训练的方式生成识别模型:CK、CK+、丽I等人脸表情数据库中,包含表情的图片以及制作者手工标记的微表情信息,通过将对应的图像通过步骤(I)至步骤(6),获得对应的特征,通过根据制作者手工标记的微表情信息,以具体微表情作为分类集合微表情区域特征,通过带惩罚的SVM支持向量机进行训练,其中惩罚参数为10,获得微表情识别模型;共对16个表情进行识别,所以生成了 16个微表情识别模型;
步骤(8)、如果此时为识别模式,则将提取出的特征投入对应的识别模型中,获得微表情的具体信息:通过步骤(7),可以生成16个微表情识别模型,通过将步骤(6)中生成的特征,投入到相应的C-SVM中,可以准确的获得微表情是否出现的信息。
[0013]所述的步骤(2)中使用基于Haar特征和AdaBoost级联分类器的识别方法对人脸进行检测,提取出离摄像头最近,即占据画面最大的人脸图像,其步骤是:
(2.1)、在步骤(I)获得的图像基础上,使用OpenCV自带的基于Haar特征和AdaBoost级联分类器方法进行人脸检测,其中scale参数为1.1,minNeighbors参数为3 ;
(2.2)、将所有检测出来的人脸以人脸大小从大到小进行排序,计算出人脸大小的中位数,并删除比中位数大30%和比中位数小30%的人脸,在剩余的人脸中,选择最大的一个并记录其坐标;
(2.3)、图像预处理:在表情识别中,源图片在大小、光照、位置方面有很多差异,而理想输入是纯表情区域,所以需要经过如下步骤的预处理:
(2.3.1 )、光照归一化,即直方均衡;
(2.3.2)、几何归一化,即转换至150*150分辨率;
(2.4)、把一个椭圆形的掩膜以人脸的中心覆盖在图像上,长轴长度为图像高度的47%,短轴长度为图像宽度的41.6%,划出纯表情区域,以有效排除掉人脸之外的噪声。
[0014]本发明的有益效果在于:本发明解决了人脸识别效率低下的问题,并且通过Socket连接让用户能够与其他程序进行交互,用户无需使用鼠标键盘等交互设备,只需要使用自己的表情就可以与电脑进行交互,在数字家庭、游戏以及医疗领域具有广阔的前景,并且具有较高的可用性以及现实意义。
【附图说明】
[0015]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实例及其说明用于解释本发明,并不构成对本发明的不当限定。
[0016]图1为本发明的流程图;
图2为本发明的软件界面图。
【具体实施方式】
[0017]下面结合附图进一步说明本发明的详细内容及其【具体实施方式】。
[0018]参见图1及图2所示,本发明的基于GPU加速的人脸表情识别及互动方法,包括以下步骤:
步骤1.通过普通摄像头或者视频获得动态人脸表情:将普通摄像头连接到计算机,并将普通摄像头放置于演奏者脸部正前方,
距离人脸50-60厘米,通过摄像头获得包含正面人脸的图像。
[0019]步骤2.使用基于Haar特征和AdaBoost级联分类器的识别方法对人脸进行检测,提取出离摄像头最近(占据画面最大)的人脸图像:
2.1在步骤I获得的图像基础上,使用OpenCV自带的基于Haar特征和AdaBoost级联分类器方法进行人脸检测,其中scale参数为1.1,minNeighbors参数为3 ;
2.2将所有检测出来的人脸以人脸大小从大到小进行排序,计算出人脸大小的中位数,并删除过大(比中位数大30%)和过小(比中位数小30%)的人脸,在剩余的人脸中,选择最大的一个并记录其坐标;
2.3图像预处理:在表情识别中,源图片在大小、光照、位置方面有很多差异,而我们的理想输入是纯表情区域,所以需要经过如下步骤的预处理:
2.3.1光照归一化(直方均衡);
2.3.2几何归一化(转换至150*150分辨率);
2.4把一个椭圆形的掩膜以人脸的中心覆盖在图像上(长轴长度为图像高度的47%,短轴长度为图像宽度的41.6%),划出纯表情区域,可以有效排除掉人脸之外的噪声。
[0020]步骤3.通过提取出的人脸图像,使用基于Haar特征及AdaBoost的识别方法,识别出瞳孔、鼻尖等位置坐标。
[0021]步骤4.将人脸分为若干个关键区域:
通过对人脸微表情的分析,将人脸分为若干个区域,其中,以瞳孔位置为中心,向左15像素,向右15像素,向上35像素,向下15像素的区域用来检测眉毛的细微变化,另外分别还有覆盖眼睛微表情、面颊微表情以及嘴唇微表情的区域。
[0022]步骤5.对整张人脸实现基于GPU加速的Gabor滤波:
Gabor滤波需要大量分别对Gabor核实部和虚部的卷积操作,Gabor核越大,卷积图像越大,耗时越长,我们选用21*21像素大小的Gabor核,卷积图像为150*150。针对卷积算法耗时长的特性,使用了基于FFT的方法,将空间域的卷积操作转化为频率域的相乘操作,每次卷积只需要I次FFT变换,I次相乘和I次逆FFT变换,时间复杂度为nlog(n),可以达到较快的速度,同时使用GPU加速并行处理技术,对FFT变换进行加速,同时将Gabor核的FFT变换结果保存在显存中,减少运算的时间。Gabor滤波之后,每个像素点都拥有40个幅值作为特征。
[0023]步骤6.对人脸特征点附近的关键区域进行特征提取:
通过将步骤4中获得的眉毛表情区域ROI以及其他ROI,将每一个ROI中的像素点根据从左到右、从上到下的顺序进行排列,再将40个幅值代入,得到这个ROI的特征。
[0024]步骤7.如果此时为训练模式,则将提取出的特征根据微表情出现与否打上标签,并通过增量SVM训练的方式生成识别模型:CK、CK+、丽I等人脸表情数据库中,包含表情的图片以及制作者手工标记的微表情信息,通过将对应的图像通过步骤I至步骤6,获得对应的特征,通过根据制作者手工标记的微表情信息,以具体微表情作为分类集合微表情区域特征,通过带惩罚的SVM支持向量机进行训练,其中惩罚参数为10,获得微表情识别模型。共对16个表情进行识别,所以生成了 16个微表情识别模型。
[0025]步骤8.如果此时为识别模式,则将提取出的特征投入对应的识别模型中,获得微表情的具体信息:通过步骤7,可以生成16个微表情识别模型,通过将步骤6中生成的特征,投入到相应的C-SVM中,可以准确的获得微表情是否出现的信息。
[0026]以上所述仅为本发明的优选实例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于GPU加速的人脸表情识别及互动方法,其特征在于:包括以下步骤: 步骤(I )、通过普通摄像头或者视频获得动态人脸表情: 将普通摄像头连接到计算机,并将普通摄像头放置于演奏者脸部正前方,距离人脸50-60厘米,通过摄像头获得包含正面人脸的图像; 步骤(2)、使用基于Haar特征和AdaBoost级联分类器的识别方法对人脸进行检测,提取出离摄像头最近,即占据画面最大的人脸图像: 步骤(3 )、通过提取出的人脸图像,使用基于Haar特征及AdaBoost的识别方法,识别出瞳孔、鼻尖位置坐标; 步骤(4)、将人脸分为若干个关键区域: 通过对人脸微表情的分析,我们将人脸分为若干个区域,其中,以瞳孔位置为中心,向左15像素,向右15像素,向上35像素,向下15像素的区域为眉毛表情区域,用来检测眉毛的细微变化,另外分别还有覆盖眼睛微表情、面颊微表情以及嘴唇微表情的区域; 步骤(5)、对整张人脸实现基于GPU加速的Gabor滤波: Gabor滤波需要大量分别对Gabor核实部和虚部的卷积操作,Gabor核越大,卷积图像越大,耗时越长,我们选用21*21像素大小的Gabor核,卷积图像为150*150 ;针对卷积算法耗时长的特性,使用了基于FFT的方法,将空间域的卷积操作转化为频率域的相乘操作,每次卷积只需要I次FFT变换,I次相乘和I次逆FFT变换,时间复杂度为nlog (η),可以达到较快的速度,同时使用GPU加速并行处理技术,对FFT变换进行加速,同时将Gabor核的FFT变换结果保存在显存中,减少运算的时间;Gabor滤波之后,每个像素点都拥有40个幅值作为特征; 步骤(6)、对人脸特征点附近的关键区域进行特征提取: 通过将步骤(4)中获得的眉毛表情区域ROI以及其他ROI,将每一个ROI中的像素点根据从左到右、从上到下的顺序进行排列,再将40个幅值代入,得到这个ROI的特征; 步骤(7)、如果此时为训练模式,则将提取出的特征根据微表情出现与否打上标签,并通过增量SVM训练的方式生成识别模型:CK、CK+、丽I人脸表情数据库中,包含表情的图片以及制作者手工标记的微表情信息,通过将对应的图像通过步骤(I)至步骤(6),获得对应的特征,通过根据制作者手工标记的微表情信息,以具体微表情作为分类集合微表情区域特征,通过带惩罚的SVM支持向量机进行训练,其中惩罚参数为10,获得微表情识别模型;共对16个表情进行识别,所以生成了 16个微表情识别模型; 步骤(8)、如果此时为识别模式,则将提取出的特征投入对应的识别模型中,获得微表情的具体信息:通过步骤(7),可以生成16个微表情识别模型,通过将步骤(6)中生成的特征,投入到相应的C-SVM中,可以准确的获得微表情是否出现的信息。2.根据权利要求1所述的基于GPU加速的人脸表情识别及互动方法,其特征在于:所述的步骤(2)中使用基于Haar特征和AdaBoost级联分类器的识别方法对人脸进行检测,提取出离摄像头最近,即占据画面最大的人脸图像,其步骤是: (2.1)、在步骤(I)获得的图像基础上,使用OpenCV自带的基于Haar特征和AdaBoost级联分类器方法进行人脸检测,其中scale参数为1.1,minNeighbors参数为3 ; (2.2)、将所有检测出来的人脸以人脸大小从大到小进行排序,计算出人脸大小的中位数,并删除比中位数大30%和比中位数小30%的人脸,在剩余的人脸中,选择最大的一个并记录其坐标; (2.3)、图像预处理:在表情识别中,源图片在大小、光照、位置方面有很多差异,而理想输入是纯表情区域,所以需要经过如下步骤的预处理: (2.3.1 )、光照归一化,即直方均衡; (2.3.2)、几何归一化,即转换至150*150分辨率; (2.4)、把一个椭圆形的掩膜以人脸的中心覆盖在图像上,长轴长度为图像高度的47%,短轴长度为图像宽度的41.6%,划出纯表情区域,以有效排除掉人脸之外的噪声。
【专利摘要】本发明涉及一种基于GPU加速的人脸表情识别及互动方法,属于模式识别领域。构造了一个基于GPU加速的快速识别微表情的方法框架,首先通过普通摄像头或者视频采集用户人脸图像,使用基于Haar特征及AdaBoost的识别方法进行人脸检测以及人脸特征点识别,识别出用户的瞳孔、鼻尖等位置坐标,并将人脸分为若干个关键区域,使用基于GPU加速的Gabor滤波方法,对整张人脸进行5个尺度8个方向的Gabor滤波,并对人脸特征点附近的关键区域进行特征提取。本发明将CK、CK+、MMI等数据库中提取的特征根据微表情出现与否对标签进行标记,通过将带标签的特征投入SVM支持向量机,获得识别模型。用户通过将提取出的特征投入识别模型,获得微表情的具体信息。
【IPC分类】G06K9/62, G06K9/00
【公开号】CN104881660
【申请号】CN201510335907
【发明人】潘志庚, 严政, 张明敏
【申请人】吉林纪元时空动漫游戏科技股份有限公司
【公开日】2015年9月2日
【申请日】2015年6月17日
转载请注明原文地址:https://www.famiwei.com/read-8138416.html