基于Android的表情识别系统

 2022-01-18 00:06:04

论文总字数:27663字

目 录

1.引言 1

1.1 设计背景 1

1.2 国内外表情识别研究概述 2

1.2.1 人脸检测 2

1.2.2 特征提取 3

1.2.3 分类识别 4

1.3本文内容安排 5

2. 系统方案设计 5

2.1设计的目的及意义 5

2.3人脸表情库 8

2.2.1 CK 数据库 8

2.2.2 PIE数据库 9

2.2.3 Multi-PIE数据库 9

2.2.4 AFFW_4_0_EmotiW_2015数据库 10

2.2.5 CHEAVD数据库 10

2.3系统方案模块 10

3.系统android客户端实现 10

3.1 Android介绍 10

3.2 总体程序流程 11

3.2.1 Android前端 11

3.2.1 Android后端 12

3.3 TCP/IP通信系统设计 13

3.4传输数据格式 15

3.4.1 JPEG介绍 15

3.4.2图像帧头设计 15

3.4.3系统通信格式 16

4.系统服务器的设计 16

4.1 总体程序流程 16

4.2识别系统 16

4.2.1 识别流程 16

4.2.2 人脸定位常见算法 17

4.2.3 决策树与随机森林算法 18

4.2.4 LBF特征提取 19

4.2.5 分类模型的训练 19

3.3 识别结果 21

5. 系统的组装与调试 22

5.1系统的组装 22

5.2系统的调试 22

5.3系统的功能测试与检验 23

6.结论 23

参考文献 23

致谢 26

基于Android的表情识别系统

俞强

, China

Abstract: A facial expression recognition system based on Android is implemented in this research. Android mobile phone is used for collecting pictures, displaying the video in real time and transferring the data to the sever after compressing the data. The sever implements functions like analyzing the data, landmark mapping and facial expression classification etc. The whole system adopts a kind of wireless communication methods that uses C/S model and TCP/IP transport protocol to connect to the local area network. Besides that, a friendly GUI is also provided. With the boom of artificial intelligence and the concept of cloud, there are some kind of references for the future artificial intelligence application design in this research.

Key words: Android system; Facial expression recognition; wireless communication

1.引言

1.1 设计背景

2016年年初,Google旗下Deepmind公司的一篇论文在著名的期刊杂志《Nature》上以封面论文的形式发表,使人工智能这个名词再次进入人们的视野。而最近,这篇论文的来源“Alphago”(一个人工智能围棋程序),更是以3-0的绝对优势打败了世界围棋冠军柯洁,迅速刮起了一阵人工智能学习的热潮。所谓的人工智能通俗来说就是计算机通过大量的样本学习,完成一些原本由人类来完成的工作。而伴随着人工智能再次成为各国科学家研究的热点,许多受限于当时机器计算能力与机器学习算法效率而遭受搁浅的研究也一并再次兴起。

图1 《Nature》封面

情感计算的概念是由MIT的终身教授Rosalind W. Picard于1997年首次提出,是人工智能与计算机科学的一个交叉领域,同时,对于情绪的识别又是人工智能应用的一个高级领域。它的研究内容包括表情,脑电等能够反映人类情绪的信号[1]。而其中,表情信号是人们最为直观的能够获取到的信号,而且对于表情的分析设计心理学,认知学,计算学等,是一个高度交叉的研究方向。

当今,“计算将移至后台,进入我们的日常生活”是一个人们广泛接受的预测。因此,未来“普遍存在的计算环境”将需要以人为中心的设计,而不是以计算机为中心。现有的人机交互通常包括鼠标键盘等设备,传输一些明确的消息,一些有关于用户的不明确的消息便被忽视了,例如情感状态的变化。然而,用户情感状态的变化是人与人之间交流的基本组成部分。传统的人机交互缺少用户的情感状态会给人一种冰冷的感觉。以人为中心的交互必须拥有检测人类情感状态的能力并基于此信息进行交互,而不是简单的响应用户的指令[2]

人脸识别系统的成长从1970年左右开始兴起,是计算机视觉范围内至今为止的研究热点课题之一。随着计算机信息技术的发展和大量数据的积累,基于人的脸部特征信息进行身份识别已经不是什么太大的技术性问题,最新的人脸识别算法甚至首次超过了人眼的识别正确率。一直以来,作为人类的我们都以拥有情感而自豪,这是我们和机器的一种本质上的区别,而人脸识别与表情识别在技术层面有着很多的相似之处。伴随着计算机的成长,我们更盼望人类与机器之间的沟通交流,尤其是一种带有情感的沟通交互。计算机在感情方面的发展经历也近似于我们人类的成长过程——以观察和分辨情感作为最终天然,亲切,活泼的交互的开始。

国际著名心理学家Paul Ekman和研究伙伴W.V.Friesen通过深入的研究,根据人脸的解剖学特点,在1976年首次提出了“面部表情编码系统”(Facial Action Coding System, FACS),并提出了运动单元(Action Unit, AU)的概念[3]。这些运动单元相互独立又相互联系,同时各自控制着不同的区域,通过分析其不同的状态,可以得到它不同状态下的表情。该套系统包含了日常生活中常见的表情,也是计算机表情识别的基础。

表情识别是一种结合了高级目标检测,模式识别,分类任务的应用。面部表情识别的目的是利用人们面部的表情来检测情感。在技术领域已经有了很多的应用,例如人机交互(Human Computer Interaction, HCI)与安全监控。在不断的发展中,它逐渐开始对实时性与准确性产生了要求。虽然人类可以毫不费力并且没有迟疑的说出一个人的表情状态,但对于计算机来说,可靠的表情识别仍然是一个非常大的挑战。近些年围绕着特征提取,动态跟踪,分类算法等问题,得到了很大的突破,许多的计算机视觉库也随之而来。但就目前开源的代码来看,质量参差不齐,算法的实现都拥有各种各样的问题,而其中运行较为稳定的版本例如微软2015年发行的表情识别API,拥有较高的识别准确率,但其需要付费使用,并未完全开源。

另外,在移动端,由于智能手机的便携性与出色的性能,普及率逐年呈现上升的趋势。而智能手机拥有很多的操作系统,阵营中前两位分别是Android与IOS。其中Android的普及率在2016年上半年达到了86.2%,远超同类的其他系统,不断地影响着人们的生活。而且其完全开放和共享的特性深得开发者的青睐,再加上其拥有手机操作系统市场最大的份额,因此开发安卓系统与人工智能相结合的产品具有很宽广的市场,可以广泛应用于中兴、小米、华为等各种Android智能手机中。在最近的2017谷歌I/O开发者大会上,谷歌再次强调了其“从移动为先向人工智能为先”的战略,将人工智能技术推广到移动应用层面。目前语音识别与图像识别领域已有许多在手机端实现的成功应用案例,且深受用户的喜爱。可以预见,在不久的将来表情识别也必将是其中的一员。

1.2 国内外表情识别研究概述

表情识别作为当前人工智能领域的研究热点之一,一般大致可以分为三个阶段:人脸检测,特征提取和分类识别。

1.2.1 人脸检测

人脸检测的目的是将复杂的背景去除。在识别任务中,除人脸目标外,其余的像素点均可以视作是噪声,因此此步骤可以看成是一种降噪手段,为了提高之后特征提取与识别的准确性。人脸检测的挑战主要是在光照,头部姿态和表情等变化的条件下,正确地定位人脸区域。在过去十几年中,尽管有着这些困难,但我们仍然克服了它们并取得了很多的成果。通常,人脸检测可以被归类成四种,包括基于特征的方法,基于表观的方法,基于先验知识的方法以及基于模板的方法。

  1. 基于特征的方法

人脸有着许多和其他不同物体相区别的特征。这个方法正是依靠检测图像中那些不受时间光照姿态等变化影响的特征,从而完成人脸定位。

有很多的特征可以被用来检测人脸,例如皮肤颜色,鼻子,耳朵,眼睛,嘴巴等。另外,有研究表明皮肤颜色在检测人脸方面有着比其他特征更好的效果,因为不同的人有着不同颜色的皮肤,而且当人种也列入度量标准时,这种区分性更加好[5]

这种方法有着不受旋转,尺度影响的优点,并且与其他方法相比,计算时间相对更快[6]

  1. 基于表观的方法

基于表观的方法是另外一种人脸检测方法,它可以看成是一种二类模式识别问题。它使用的是分类器以及从像素值中计算的特征,例如修正统计变换(Modified Census Transform)特征以及类哈尔(Haar-like)特征是经常在这种方法中使用的一些特征。除此之外,因为这种方法是基于学习的方法,所以分类器的创建需要使用很多的样本进行统计训练。例如自适应提升(Adaptive Boosting)算法将许多弱分类器结合,构造一个拥有多层并且高效的级联分类器[4]。换句话说,单窗口图像先通过弱分类器,如果通过了规定的阈值就向下传递到强分类器,再接着到下一个窗口,如此循环,直到最后的像素值。这个方法的优点是它会尽快的将没有人脸的图像进行剔除并减少执行时间同时提高精确性[7]

  1. 基于先验知识的方法

在这种方法中,一些用于检测人脸的规则被预先定义,同时这种规则也可以进行扩展,使之能够从复杂的背景中检测人脸。这些规则可以是人脸的一些特征,例如我们有两个耳朵,一个鼻子,一个嘴巴等等。进行检测时,输入图像的脸部特征首先会被提取出来,之后会根据这些规则,判别这些候选图像[8]。值得注意的是,这个方法最后通常是通过使用提取特征的位置与距离来检测人脸。同时,对于此类方法最大的挑战是人类的先验知识能否转化成被计算机理解的规则,以使在不同情况下人脸能够被正确的检测到。

  1. 基于模板的方法

基于模板的方法通常用来提取图像中最有可能为人脸的区域。模板则是一个目标或人脸的一个特征。基于模板的方法使用的是输入图像模式与人脸模式或人脸特征模式之间的关系进行检测。事实上,这种方法本质上比较的是图像子区域与预先定义的模板之间的像素强度。这种方法在实现方面最为简单,但一些假设必须被提前做出。例如,人脸无论任何情况下必须是正面的,同时人脸也必须拥有和模板相同比例的大小,也就是说,这种方法依赖于大小,尺度以及旋转度。同时它的计算量也较其他方法大。

1.2.2 特征提取

特征提取对任何一个模式识别系统来说,都是一个至关重要的组成部分。特征提取包含了检测和分离各种各样目标模式的特征。在表情识别中,这是模式识别预处理关键性的一步。该阶段可以分为两类,一类是对于静态图像进行特征提取,还有一类则是对于动态图像,及视频序列。

对于静态图像,有两类特征提取方法,一类是基于几何的特征提取,另外是基于表观的提取方法。

  1. 基于几何的特征提取:人脸包括有眉毛,眼睛,眼睑,鼻子,嘴巴等等。各个器官的大小,形状,方向和位置都影响着面部表情的生成。几何特征可以描绘出例如嘴巴,鼻子,眼睛和眼睑的形状和位置。因此,基于几何特征方法的主要目标就是通过使用人脸特征点之间的几何关系来提取面部特征。但是,提取几何特征通常要求一个很精确的特征点检测技术。这在现实世界中很难实现,因为通常人脸图像包含了复杂的背景,因此需要前面提到的人脸检测来对图像进行预处理。同时,例如皱纹等皮肤纹理的变化对于表情建模也很重要,但基于几何特征的方法非常容易忽略这种特征变化。基于几何的方法包括三种:主动形状模型(Active Shape Model, ASM),主动外观模型(Active Appearance Model, AAM)以及尺度不变特征变换(Scale Invariant feature transform, SIFT)。

主动形状模型与主动外观模型都是由Cootes[9]提出的。主动形状模型是一种基于概率统计模型的特征匹配方式。它包括一个点分布模型来学习有效形状的变化以及许多的柔性模型来捕捉特征点周围的灰度值。主要包括两个步骤:训练和搜索。首先通过学习一些有标注特征点的训练样本构建一个形状模型,再构建一些局部纹理模型,其次是根据构建好的模型,通过一个迭代搜索,找到所有的特征点。

剩余内容已隐藏,请支付后下载全文,论文总字数:27663字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;