基于安卓平台的人脸表情分析系统的研究与实现毕业论文
2020-02-19 18:16:12
摘 要
Abstract 6
第1章 绪论 7
1.1研究背景及意义 7
1.2 国内外研究现状 7
1.2.1 国外发展现状 7
1.2.2 国内发展现状 8
1.3研究内容及目标 9
1.4 论文组织结构 9
第二章 需求分析和技术方案 10
2.1 需求分析 10
2.1.1 功能性需求 10
2.1.2 非功能性需求 11
2.2 技术方案 12
2.2.1 人脸检测技术 12
2.2.2 表情数据集 12
2.2.3 人脸表情识别 13
2.3 本章小结 13
第三章 系统详细设计 15
3.1 功能模块设计 15
3.1.1 图像采集 15
3.1.2 人脸检测 16
3.1.3 表情识别 17
3.1.4 神经网络训练 18
3.2 数据结构设计 19
3.3 本章小结 20
第四章 系统实现与测试 21
4.1 系统安卓端的实现 21
4.1.1 图像采集模块 22
4.1.2 人脸检测模块 23
4.1.3 表情识别模块 24
4.2 基于Tensorflow的卷积神经网络训练的实现 24
4.3 系统测试 25
4.3.1 测试环境 25
4.3.2 测试用例 26
4.3.3 结果分析 27
4.4 本章小结 28
第五章 总结与展望 29
5.1 论文工作总结 29
5.2 对进一步工作的展望 29
参考文献 30
致谢 32
摘要
如今,随着硬件技术的飞速发展,移动终端设备的相机分辨率已基本达到普通单反相机的水平,运行内存和处理器等设备也取得了很大的进步,这使得在移动终端设备上的人脸表情识别研究成为了当前计算机视觉研究的一个重要方向。
本文设计和实现了一个基于安卓平台的人脸表情分析系统。该系统主要包含两个功能,一个是有效识别面部,即人脸检测功能,另一个是对检测到的人脸进行准确地分类和识别其面部表情,即表情识别功能。首先在安卓端实现图像的采集和人脸检测功能,在界面上框出检测到的人脸。然后通过标记好的样本库训练神经网络模型,并将该模型移植到安卓上。最后将检测到的人脸导入模型中即可获得表情识别结果。本文还阐述了系统的需求分析,各个模块的设计与算法实现,系统的测试验证。
本系统可以用作人机交互、智能控制、安全、医疗、通信等领域实际项目中的接口来得到用户的情绪信息进而做下一步处理。
关键词:表情识别 卷积神经网络 人脸检测 图像处理 安卓开发
Abstract
Nowadays, with the rapid development of hardware technology, the camera resolution of mobile terminal devices has basically reached the level of ordinary SLR cameras, and devices such as memory and processors have also made great progress, which makes people on mobile terminal devices. Face expression recognition research has become an important direction of current computer vision research.
This paper will design and implement a facial expression analysis system based on Android platform. The system mainly includes two functions, one is to effectively recognize the face, that is, the face detection function, and the other is to accurately classify the detected face and recognize the facial expression, that is, the expression recognition function. First, the image acquisition and face detection functions are implemented on the Android side, and the detected face is framed on the interface. The neural network model is then trained through the labeled sample library and ported to Android. Finally, the detected face is imported into the model to obtain the expression recognition result. This paper also describes the requirements analysis of the system, the design and algorithm implementation of each module, and the system test verification.
The system can be used as an interface in actual projects in the fields of human-computer interaction, intelligent control, security, medical treatment, communication, etc. to obtain the user's emotional information and then proceed to the next step.
Key words: expression recognition, convolutional neural network, face detection, image processing, Android development
第1章 绪论
1.1研究背景及意义
面部表情是人们面对面交流过程中非常重要的一种信息,它是人类情感、心理状态等多种因素复合而成的一种表达形式,是人类进行情感交流的重要方式。面部表情识别(Facial expression recognition,FER),即由计算机提取人类的面部表情信息,并根据人类的认知和理解进行分类,继而分析得到人类的情感。它是计算机视觉领域中最重要的任务之一,在心理学,医学,安全,娱乐和交通等领域也有着重要的作用。例如,在汽车、飞机等交通工具的监控系统中,用传感设备对驾驶员或飞行员进行面部监控,持续检测其面部表情是否痛苦或不适,分析得到其可能存在疲劳或身体不适等情况,及时报警提示或接通应急电话,甚至直接接管驾驶控制权,避免事故发生。实现计算机对人脸表情的分析与识别将从根本上改变人与计算机之间的关系,对于实现自然和谐的人机交互具有重要的意义。
过去,由于移动终端设备的相机分辨率、运行内存和处理器等硬件设备等原因,人脸表情识别在移动端并未能得到良好的表现。如今,随着技术的飞速发展,移动终端设备的拍照像素基本上已经达到了普通单反相机的水平,再加上内存和处理器等设备也取得了巨大的进步,在移动终端设备上的人脸表情识别研究成为了当前计算机视觉研究的一个重点方向。
本文旨在提出一种有效、自动的人脸表情识别方法,重点完成人脸表情特征的提取与分类,实现一个基于安卓平台的人脸表情分析系统。本课题使用多种表情数据集进行表情分类训练,来提高人脸表情识别在安卓平台上的识别率。
1.2 国内外研究现状
1.2.1 国外发展现状
国际上对人脸表情的研究可分为心理学和计算机两方面。
在心理学方面,早在1872年,生物学家查尔斯·达尔文就进行了心理学实验来说明人类面部表情和动物面部表情之间的联系和区别。1971年,美国心理学家埃克曼(Ekman)和弗里森(Friesen)创造性地提出面部表情可以分为六个基本类别:喜悦、悲伤、恐惧、厌恶、愤怒和惊讶[1],并于1978 年开发了用于检测面部表情细微变化的面部动作编码系统(Facial Action coding system ,FACS)[2]。结果表明这六个表情的面部特征与无表情的面部特征相比具有相对独特的肌肉运动模式。后来,大多数学者的研究都是基于FACS系统。
在计算机方面,1978 年,Suwa等人最初对表情识别做出了尝试[3]。他们在选定的连续图像序列中跟踪人脸的20个定点,并通过与原型图案对比来实现识别。同年,Terzopoulous和Waters使用简化的Ekman-Friesen模型对视频序列进行了面部表情分析[4]。1981年,一些学者利用仿生学方法从肌肉的角度创建模型来模拟面部表情。1991年,A.Pentland 和 K.Mase[5]提出了一种新理论,即使用光流法识别面部表情,开启了面部表情自动识别的新篇章。
在实际应用方面,美国麻省理工学院在2001年创造了第一个具有人类情感的机器人Kismet,他能够识别微笑等表情并作出回应。2010年,在上海世博会上,日本佳能公司提出了可以识别笑脸的概念相机。2015年,微软研究院发表了一个人脸表情识别系统,用户可以上传照片,然后得到系统反馈的“高兴”、“惊讶”等识别结果。
1.2.2 国内发展现状
20世纪90年代,人脸表情识别开始引入国内。2003年,中国科学院自动化研究所举办了首届中国情感计算与智能交互学术会议,人脸表情识别是本次会议的研究热点之一。2006年,哈尔滨工业大学的鹿麟等人开发的仿人头像机器人Hamp;F ROBOT-2可以对六种基本表情进行识别与再现,识别率超过80%[6]。2008年,中南大学的周书仁提出了基于独立分析法和隐马尔可夫模型的表情识别方法[7],使得人脸表情识别的整体准确率得以提高。2013年,合肥工业大学的胡敏等人提出了一种基于梯度的Gabor直方图特征的表情识别方法[8],改进了人脸表情识别的实时性。2015年,施徐敢等人提出结合深度信念网络和多层感知器的人脸表情识别方法[9],验证了深度信念网络在人脸表情识别领域的可行性。
目前,国内外的人脸表情识别的方法大致可以分为五类:基于统计特征提取的方法、基于频率域特征提取的方法、基于几何特征提取的方法、基于运动和形变特征提取的方法以及基于模型的方法。
有些表情识别方法[10-14]对愤怒(anger)、高兴(happy)、悲伤 (sadness)、惊讶(surprise)、厌恶(disgust)、中立(neutral)和恐惧(fear)这七种表情的识别率达到了95%及以上, 但对于实际场景的表情识别, 受光照和姿势的影响,识别率还不是很稳定,大部分算法识别率在80%左右。而在移动终端设备上,由于相机分辨率、运行内存和处理器等硬件设备等原因,人脸表情识别在移动端发展较为缓慢。近几年,随着硬件技术和计算机图像处理的飞速发展,一些手机上已经具备了笑脸抓拍、人脸美化功能等应用,但表情识别仍处于起步阶段,有着广阔的发展空间。
1.3研究内容及目标
本文主要设计和实现了一个基于安卓平台的人脸表情分析系统,该系统主要分为两个平台实现。在PC端主要实现用卷积神经网络对表情数据集进行分类训练,并将训练好的模型移植到安卓平台;在安卓端则是实现图像采集、人脸检测和表情识别功能。本文具体的研究内容为以下几点:
- 对系统进行需求分析,确定人脸表情识别系统的基本框架和技术方案。
- 人脸表情分析系统的功能模块设计。对系统的总体架构进行设计,划分出图像获取、人脸检测和表情识别等功能模块,并对其进行设计实现。
- 人脸表情分析系统的实现与测试。根据上面的模块设计,对系统的各个模块进行实现,最后集成在一起,并设计一个用户友好的界面。对系统在不同环境下的运行情况进行测试,进而发现系统所存在的不足之处并进行分析总结。
1.4 论文组织结构
本文一共分为六章,各章的主要内容如下:
第一章:绪论。详细描述了本文的研究背景和意义,分析了该系统国内外的研究现状,介绍了本文的主要研究内容和目标,阐述了论文的组织结构。
第二章:需求分析和技术方案。主要对系统进行需求分析与建模,同时介绍了系统采取的技术方案。
第三章:系统详细设计。对应需求分析的结果,进行功能模块划分与设计。设计过程使用了流程图和状态图进行描述,并对系统数据结构进行了设计。
第四章:系统实现与测试。通过各功能模块的流程图来阐述系统的实现过程,并在所有模块开发后进行系统集成。最后对人脸表情识别系统在不同环境下的运行情况进行测试与分析。
第五章:总结与展望。对本论文研究成果进行总结与思考,给出工作中的不足与改进方向。
第二章 需求分析和技术方案
2.1 需求分析
本文所设计的基于安卓平台人脸表情分析系统使用安卓手机的摄像头硬件设备采集图像,并将其转化为计算机内存存储的图像数据,然后通过人脸检测和表情识别,得到最终表情识别结果显示给用户。
2.1.1 功能性需求
该系统主要的功能模块包括支持图像采集,人脸检测,表情识别和卷积神经网络训练等四个功能模块。其中在 PC 平台上实现卷积神经网络训练功能模块,参与者是技术人员,用卷积神经网络对表情数据集进行分类训练,然后将训练好的模型移植到 安卓平台作为其表情图像识别的根据。在安卓平台主要实现的功能模块是图像采集,人脸检测和表情识别三个功能模块,其参与者是安卓手机用户。人脸表情分析系统的用例图,如图2-1 所示:
图 2-1 人脸表情分析系统用例图
如上图所示,人脸表情分析系统中的表情分析功能实际上包括了图像采集、人脸检测、表情识别三个功能模块,这三个功能模块之间共享图像数据信息,并通过各模块之间的数据传递来保证系统各项功能的正确性。例如,人脸检测模块是对图像中的人脸部分进行检测,以确保传递给表情识别模块的图像中包含人脸。若没有检测到人脸,则不会进行以上步骤。
对系统的业务流程进行分析。首先在安卓终端设备上采集用户的原始图像数据,由于在后续的图像处理过程中,可能会将原始图像数据破坏,因此需要对其进行复制备份。接着将该图像数据输入到人脸检测模块进行是否包含人脸的判断,如果包含就将图像中人脸区域的坐标信息传递给表情识别模块。最后表情识别模块会将检测到的人脸区域输入到训练好的模型中进行分类识别,得到最终表情识别结果。
对系统的数据流进行分析。系统中的数据类型主要分为图像和文本。本文采取数据流图来描述数据在系统中流动和处理的过程,本系统的数据流图如图 2-2所示:
图 2-2 数据流图
2.1.2 非功能性需求
性能需求:
- 系统应能够支持 500 个用户并发访问。
- 系统的响应速度应该控制在 1 秒以内。
- 系统的识别率应在80%以上。
- 系统CPU占有率小于50%,内存占有率小于50%。
环境需求:
- Android手机系统版本号为5.0及以上。
- Windows电脑操作系统win7及以上。
2.2 技术方案
人脸表情识别一般包括面部图像采集、人脸检测、图像预处理、表情特征提取和表情分类与识别五个部分。表情识别的流程如图 2-3所示。
图 2-3 表情识别流程图
本系统设计的技术方案如下:首先在安卓端实现图像的采集和人脸检测功能,并在界面上框出检测到的人脸。然后在PC端通过标记好的表情数据集训练神经网络模型,并将该模型移植到安卓平台上。最后将检测到的人脸导入模型中获得表情识别结果。
2.2.1 人脸检测技术
人脸检测(Face Detection)是指对任意给定的图像,通过一定的策略进行搜索,确定其是否包含人脸,如果包含,则返回人脸的位置、大小和姿态[15]。人脸检测算法一般分为基于统计的方法和基于知识的方法[16]。由于本系统旨在安卓平台上实现,因此考虑到检测结果的准确性和性能,本系统采用基于知识的人脸检测算法,该算法利用先验知识将人脸视为器官特征的组合,并根据眉毛,眼睛,鼻子,嘴巴等器官的特征及“三庭五眼”的位置关系检测人脸。
2.2.2 表情数据集
常用的表情数据集有The Japanese Female Facial Expression (JAFFE),The Extended Cohn-Kanade Dataset(CK ),fer2013等,本文采取了fer2013和CK 两个表情数据集作为神经网络训练的数据。
Fer2013数据集共收录了35887个人脸图像,其中包括28709个训练集,3589个验证组,和3589个测试集。每个图片是具有48 * 48像素的灰度图像。样本表情被分为七类:愤怒,厌恶,恐惧,快乐,中立,悲伤和惊奇。每种类型基本均匀分布。数据库集中的样本在年龄,姿势等方面存在较大差异,其具有一定的实际意义,使表情识别更具挑战性。该数据库是2013年Kaggle比赛的数据,由于这个数据库主要是从网络爬虫下载的,存在一定的误差性。这个数据库的人工精度为65% 士5%。
CK 数据库于2010年发布,是基于Cohn-Kanade数据集扩展而来的。该数据库由593 个图像序列组成,每个图像序列的开始和结束都是中性表情,即是表情从平静到强烈的过程,最后一帧都有着动作单元的标签。在593个图像序列中,只有327个有表情标签。这个数据库是由年龄在18到30岁之间的100名大学生在实验室条件下获取的,其中女性志愿者为65%,人种为非洲裔美国人、亚洲人和南美人,数据较为严谨可靠。
2.2.3 人脸表情识别
人脸表情识别一般分为两类,即传统表情识别方法和基于深度学习的表情识别方法。传统表情识别方法主要是根据不同的使用场景人为的设计特定的特征提取算法并结合不同的分类算法,如活动外观模型(AAM)[17]、Gabor小波变换[18]、局部二值模式(LBP)[19]等, 这些方法的相同点是使用了一组手动设定的特征, 这与实际图像的特征有一定的差异, 所以会使得部分表情特征在某种程度上丢失。基于深度学习的表情识别方法则是设计搭建和训练不同的网络模型,如卷积神经网络(CNN)[20],深度置信网络(DBN)[21]等, 这些方法可以对特征提取和模式分类进行自动同步处理,不依赖于人为的选择。因为DBN忽略了面部图像的局部结构特征,且收敛速度慢,不恰当的参数的选择将导致学习收敛到局部最优解;而CNN可以直接使用图像数据作为输入,其特征检测层通过训练数据进行学习,避免了显示的特征抽取,适用于识别具有缩放、位移和其他形式扭曲不变性的二维图形,故本文选择使用卷积神经网络来实现人脸表情识别。
CNN由输入层、输出层和多个隐藏层组成,隐藏层又可以分为卷积层、池化层、RELU层和全连通层。在图像处理方面,CNN的输入一般为三维输入数据,即图像的二维像素点和RGB通道。卷积层是CNN的核心,层的参数由一组可学习的滤波器(filter)或内核(kernels)组成,用来对输入层进行卷积操作进行特征提取。在卷积层提取特征后,输出的特征图会被传递到池化层进行特征选择和降低数据量。RELU全称为修正线性单元(Rectified Linear Units),对每个像素进行非线性操作,用于解决前面卷积线性运算所不能解决的非线性问题。全连通层通常位于隐含层的结尾部分,是对经过多个卷积层和多个池化层所得到的高级特征进行全连接,算出最后的预测值。输出层一般会加一个softmax层用于输出分类结果。
2.3 本章小结
本章主要是对本文所设计的基于安卓平台的人脸表情分析系统进行需求分析和技术方案的确定。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: