# 【Pytorch】基于卷积神经网络实现的人脸面部表情识别
> 作者:何翔
>
> 学院:计算机学院
>
> 学号:04191315
>
> 班级:软件1903
>
> 答辩视频地址:https://www.bilibili.com/video/BV1JR4y1W7Vw
>
> 转载或引用请标注本文链接:https://blog.csdn.net/HXBest/article/details/121981276
>
> 本项目的数据集文件下载地址:https://download.csdn.net/download/HXBest/64847238
>
> 本项目的训练模型文件下载地址:https://download.csdn.net/download/HXBest/64955910
>
>如有问题,欢迎在 [issues](https://github.com/hexiang10/facial-expression-recognition/issues) 中反馈,其他问题联系方式:
[![Bilibili](https://img.shields.io/badge/-Bilibili-blue?style=flat&logo=Bilibili&logoColor=pink)](https://space.bilibili.com/495642569)
[![QQ](https://img.shields.io/badge/-172837855-white?style=flat&logo=tencentqq&logoColor=black)](javascript;)
# 一、绪论
## 1.1 研究背景
**面部表情识别 (Facial Expression Recognition )**
在日常工作和生活中,人们情感的表达方式主要有:语言、声音、肢体行为(如手势)、以及面部表情等。在这些行为方式中,面部表情所携带的表达人类内心情感活动的信息最为丰富,据研究表明,人类的面部表情所携带的内心活动的信息在所有的上述的形式中比例最高,大约占比55%。
人类的面部表情变化可以传达出其内心的情绪变化,表情是人类内心世界的真实写照。上世纪70年代,美国著名心理学家保罗•艾克曼经过大量实验之后,将人类的基本表情定义为**悲伤、害怕、厌恶、快乐、气愤和惊讶**六种。同时,他们根据不同的面部表情类别建立了相应的表情图像数据库。随着研究的深入,**中性**表情也被研究学者加入基本面部表情中,组成了现今的人脸表情识别研究中的七种基础面部表情。
![image](https://img-blog.csdnimg.cn/img_convert/3c2ba045cb62dbb946d42d361f5605a6.png)
由于不同的面部表情,可以反映出在不同情景下人们的情绪变化以及心理变化,因此面部表情的识别对于研究人类行为和心理活动,具有十分重要的研究意义和实际应用价值。现如今,面部表情识别主要使用计算机对人类面部表情进行分析识别,从而分析认得情绪变化,这在人机交互、社交网络分析、远程医疗以及刑侦监测等方面都具有重要意义。
## 1.2 研究意义
在计算机视觉中,因为表情识别作为人机交互的一种桥梁,可以更好的帮助机器了解、识别人类的内心活动,从而更好的服务人类,因此对人脸表情识别进行深入研究具有十分重要的意义。而在研究人脸表情的过程中,如何有效地提取人脸表情特征,是人脸表情识别中最为关键的步骤。人脸表情识别从出现到现在已历经数十载,在过去的面部表情识别方法里还是主要依靠于人工设计的特征(比如边和纹理描述量)和机器学习技术(如主成分分析、线性判别分析或支持向量机)的结合。但是在无约束的环境中,人工设计对不同情况的特征提取是很困难的,同时容易受外来因素的干扰(光照、角度、复杂背景等),进而导致识别率下降。
随着科学技术的发展,传统的一些基于手工提取人脸表情图像特征的方法,因为需要研究人员具有比较丰富的经验,具有比较强的局限性,从而给人脸表情识别的研究造成了比较大的困难。随着深度学习的兴起,作为深度学习的经典代表的卷积神经网络,由于其具有自动提取人脸表情图像特征的优势,使得基于深度学习的人脸表情特征提取方法逐渐兴起,并逐步替代一些传统的人脸表情特征提取的方法。深度学习方法的主要优点在于它们可通过使用非常大的数据集进行训练学习从而获得表征这些数据的最佳功能。在深度学习中,使用卷积神经网络作为人脸表情特征提取的工具,可以更加完整的提取人脸表情特征,解决了一些传统手工方法存在的提取人脸表情特征不充足的问题。
将人脸表情识别算法按照特征提取方式进行分类,其主要分为两种:一是基于传统的计算机视觉的提取算法。该类方法主要依赖于研究人员手工设计来提取人脸表情特征;二是基于深度学习的算法。该方法使用卷积神经网络,自动地提取人脸表情特征。卷积神经网络对原始图像进行简单的预处理之后,可以直接输入到网络中,使用端到端的学习方法,即不经过传统的机器学习复杂的中间建模过程,如在识别中对数据进行标注、翻转处理等,直接一次性将数据标注好,同时学习特征与进行分类,这是深度学习方法与传统方法的重要区别。相比人工的选取与设计图像特征,卷积神经网络通过自动学习的方式,获得的样本数据的深度特征信息拥有更好的抗噪声能力、投影不变性、推广与泛化能力、抽象语义表示能力。
# 二、理论分析与研究
## 2.1 面部表情识别框架
面部表情识别通常可以划分为四个进程。包括**图像获取,面部检测,图像预处理和表情分类**。其中,面部检测,脸部特征提取和面部表情分类是面部表情识别的三个关键环节面部表情识别的基本框架如下图所示。
![image](https://img-blog.csdnimg.cn/img_convert/f76ddec38ae0f423ead5ac15d422432f.png)
首先是获取图像并执行面部检测,然后提取仅具有面部的图像部分。所提取的面部表情在比例和灰度上不均匀,因此有必要对面部特征区域进行分割和归一化,其中执行归一化主要是对面部光照和位置进行统一处理,将图像统一重塑为标准大小,如 48×48 像素的图片,即图像预处理。然后对脸部图像提取面部表情特征值,并进行分类。采用卷积神经网络(CNN)来完成特征提取和分类的任务,因为 CNN 是模仿人脑工作并建立卷积神经网络结构模型的著名模型,所以选择卷积神经网络作为构建模型体系结构的基础,最后不断训练,优化,最后达到较准确识别出面部表情的结果。
**图像预处理**
采用多普勒扩展法的几何归一化分为两个主要步骤:面部校正和面部修剪。
主要目的是将图像转化为统一大小。
具体步骤如下:
(1)找到特征点并对其进行标记,首先选取两眼和鼻子作为三个特征点并采用一个函数对其进行标记,这里选择的函数是[x,y]=ginput(3)。这里重要的一点是获得特征点的坐标值,可以用鼠标进行调整。
(2)两眼的坐标值可以看作参考点,将两眼之间的距离设置为 d,找到两眼间的中点并标记为 O,然后根据参考点对图像进行旋转,这步操作是为了保证将人脸图像调到一致。
(3)接下来以选定的 O 为基准,分别向左右两个方向各剪切距离为 d 的区域,在垂直方向剪切 0.5d 和 1.5d 的区域,这样就可以根据面部特征点和几何模型对特征区域进行确定,如下图所示:
![image](https://img-blog.csdnimg.cn/img_convert/e78a2b37265bf6d9629058fa64d077a2.png)
(4)为了更好的对表情进行提取,可将表情的子区域图像裁剪成统一的 48×48 尺寸。
## 2.2 基于 CNN 的人脸面部表情识别算法
卷积神经网络(CNN)是一种前馈神经网络,它包括卷积计算并具有较深的结构,因此是深度学习的代表性算法之一。随着科技的不断进步,人们在研究人脑组织时受启发创立了神经网络。神经网络由很多相互联系的神经元组成,并且可以在不同的神经元之间通过调整传递彼此之�
没有合适的资源?快使用搜索试试~ 我知道了~
基于Pytorch卷积神经网络实现的面部表情识别项目源码+部署教程文档+全部数据+训练好的模型(高分项目).zip
共38个文件
py:14个
ipynb:5个
md:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 62 浏览量
2024-04-22
09:35:23
上传
评论
收藏 128.48MB ZIP 举报
温馨提示
【资源说明】 基于Pytorch卷积神经网络实现的面部表情识别项目源码+部署教程文档+全部数据+训练好的模型(高分项目).zip基于Pytorch卷积神经网络实现的面部表情识别项目源码+部署教程文档+全部数据+训练好的模型(高分项目).zip基于Pytorch卷积神经网络实现的面部表情识别项目源码+部署教程文档+全部数据+训练好的模型(高分项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过mac/window10/11测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于Pytorch卷积神经网络实现的面部表情识别项目源码+部署教程文档+全部数据+训练好的模型(高分项目).zip (38个子文件)
facial-expression-recognition-main
model_CNN.py 9KB
model_VGG_test.py 5KB
face_images
README.md 732B
model_ResNet.py 5KB
小组论文
13190129李珀俊深度学习论文.docx 1.1MB
04191210陈凯亮深度学习与计算机视觉.docx 4.11MB
04191231刘淑茵-人脸面部表情识别.doc 42KB
04191315何翔-人脸面部表情识别项目-期末考试论文.pdf 8.38MB
人脸面部表情识别答辩PPT.pptx 15.37MB
04191315何翔-人脸面部表情识别项目-期末考试论文.docx 14.58MB
README.md 153B
data_view.py 324B
参考文献
Face-Annotation-Tool-master.zip 116KB
Fer2013-pytorch-CNN-VGG-Resnet--master.zip 4KB
FERNet-master.zip 48.13MB
Facial-expression-recognition-main.zip 142KB
model_ResNet_test.py 5KB
model_CNN_test.py 5KB
model_VGG.py 5KB
dataset
README.md 624B
image_emotion_mapping.py 1KB
templates
CNN_03.ipynb 780KB
ResNet_model_template.py 10KB
Facial-expressions.ipynb 873KB
ResNet.py 3KB
CNN_01.ipynb 1.13MB
VGG_model_template.py 21KB
ResNet.ipynb 3.27MB
CNN_02.ipynb 986KB
model_All_Compare.py 9KB
model
model_resnet.pkl 42.71MB
haarcascade_frontalface_default.xml 908KB
README.md 720B
data_separation.py 471B
video
example_dsh.mp4 7.65MB
README.md 100KB
data_process.py 1KB
171265889347208773632.zip 416B
共 38 条
- 1
资源评论
不走小道
- 粉丝: 3178
- 资源: 3971
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功