Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
利用Pytorch设计完成的基于卷积神经网络实现的面部表情识别项目 —— A facial expression recognition project based on convolution neural network designed by Pytorch 【Plus版本】:https://github.com/hexiang10/face-recognition-plus
| Date | Stars |
|---|---|
| 2026-07-31 | 332 |
| 2026-08-03 | 332 |
| 2026-08-04 | 332 |
| 2026-08-06 | 332 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# 【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) 中反馈,其他问题联系方式: [](https://space.bilibili.com/495642569) [](javascript;) # 一、绪论 ## 1.1 研究背景 **面部表情识别 (Facial Expression Recognition )** 在日常工作和生活中,人们情感的表达方式主要有:语言、声音、肢体行为(如手势)、以及面部表情等。在这些行为方式中,面部表情所携带的表达人类内心情感活动的信息最为丰富,据研究表明,人类的面部表情所携带的内心活动的信息在所有的上述的形式中比例最高,大约占比55%。 人类的面部表情变化可以传达出其内心的情绪变化,表情是人类内心世界的真实写照。上世纪70年代,美国著名心理学家保罗•艾克曼经过大量实验之后,将人类的基本表情定义为**悲伤、害怕、厌恶、快乐、气愤和惊讶**六种。同时,他们根据不同的面部表情类别建立了相应的表情图像数据库。随着研究的深入,**中性**表情也被研究学者加入基本面部表情中,组成了现今的人脸表情识别研究中的七种基础面部表情。  由于不同的面部表情,可以反映出在不同情景下人们的情绪变化以及心理变化,因此面部表情的识别对于研究人类行为和心理活动,具有十分重要的研究意义和实际应用价值。现如今,面部表情识别主要使用计算机对人类面部表情进行分析识别,从而分析认得情绪变化,这在人机交互、社交网络分析、远程医疗以及刑侦监测等方面都具有重要意义。 ## 1.2 研究意义 在计算机视觉中,因为表情识别作为人机交互的一种桥梁,可以更好的帮助机器了解、识别人类的内心活动,从而更好的服务人类,因此对人脸表情识别进行深入研究具有十分重要的意义。而在研究人脸表情的过程中,如何有效地提取人脸表情特征,是人脸表情识别中最为关键的步骤。人脸表情识别从出现到现在已历经数十载,在过去的面部表情识别方法里还是主要依靠于人工设计的特征(比如边和纹理描述量)和机器学习技术(如主成分分析、线性判别分析或支持向量机)的结合。但是在无约束的环境中,人工设计对不同情况的特征提取是很困难的,同时容易受外来因素的干扰(光照、角度、复杂背景等),进而导致识别率下降。 随着科学技术的发展,传统的一些基于手工提取人脸表情图像特征的方法,因为需要研究人员具有比较丰富的经验,具有比较强的局限性,从而给人脸表情识别的研究造成了比较大的困难。随着深度学习的兴起,作为深度学习的经典代表的卷积神经网络,由于其具有自动提取人脸表情图像特征的优势,使得基于深度学习的人脸表情特征提取方法逐渐兴起,并逐步替代一些传统的人脸表情特征提取的方法。深度学习方法的主要优点在于它们可通过使用非常大的数据集进行训练学习从而获得表征这些数据的最佳功能。在深度学习中,使用卷积神经网络作为人脸表情特征提取的工具,可以更加完整的提取人脸表情特征,解决了一些传统手工方法存在的提取人脸表情特征不充足的问题。 将人脸表情识别算法按照特征提取方式进行分类,其主要分为两种:一是基于传统的计算机视觉的提取算法。该类方法主要依赖于研究人员手工设计来提取人脸表情特征;二是基于深度学习的算法。该方法使用卷积神经网络,自动地提取人脸表情特征。卷积神经网络对原始图像进行简单的预处理之后,可以直接输入到网络中,使用端到端的学习方法,即不经过传统的机器学习复杂的中间建模过程,如在识别中对数据进行标注、翻转处理等,直接一次性将数据标注好,同时学习特征与进行分类,这是深度学习方法与传统方法的重要区别。相比人工的选取与设计图像特征,卷积神经网络通过自动学习的方式,获得的样本数据的深度特征信息拥有更好的抗噪声能力、投影不变性、推广与泛化能力、抽象语义表示能力。 # 二、理论分析与研究 ## 2.1 面部表情识别框架 面部表情识别通常可以划分为四个进程。包括**图像获取,面部检测,图像预处理和表情分类**。其中,面部检测,脸部特征提取和面部表情分类是面部表情识别的三个关键环节面部表情识别的基本框架如下图所示。  首先是获取图像并执行面部检测,然后提取仅具有面部的图像部分。所提取的面部表情在比例和灰度上不均匀,因此有必要对面部特征区域进行分割和归一化,其中执行归一化主要是对面部光照和位置进行统一处理,将图像统一重塑为标准大小,如 48×48 像素的图片,即图像预处理。然后对脸部图像提取面部表情特征值,并进行分类。采用卷积神经网络(CNN)来完成特征提取和分类的任务,因为 CNN 是模仿人脑工作并建立卷积神经网络结构模型的著名模型,所以选择卷积神经网络作为构建模型体系结构的基础,最后不断训练,优化,最后达到较准确识别出面部表情的结果。 **图像预处理** 采用多普勒扩展法的几何归一化分为两个主要步骤:面部校正和面部修剪。 主要目的是将图像转化为统一大小。 具体步骤如下: (1)找到特征点并对其进行标记,首先选取两眼和鼻子作为三个特征点并采用一个函数对其进行标记,这里选择的函数是[x,y]=ginput(3)。这里重要的一点是获得特征点的坐标值,可以用鼠标进行调整。 (2)两眼的坐标值可以看作参考点,将两眼之间的距离设置为 d,找到两眼间的中点并标记为 O,然后根据参考点对图像进行旋转,这步操作是为了保证将人脸图像调到一致。 (3)接下来以选定的 O 为基准,分别向左右两个方向各剪切距离为 d 的区域,在垂直方向剪切 0.5d 和 1.5d 的区域,这样就可以根据面部特征点和几何模型对特征区域进行确定,如下图所示:  (4)为了更好的对表情进行提取,可将表情的子区域图像裁剪成统一的 48×48 尺寸。 ## 2.2 基于 CNN 的人脸面部表情识别算法 卷积神经网络(CNN)是一种前馈神经网络,它包括卷积计算并具有较深的结构,因此是深度学习的代表性算法之一。随着科技的不断进步,人们在研究人脑组织时受启发创立了神经网络。神经网络由很多相互联系的神经元组成,并且可以在不同的神经元之间通过调整传递彼此之间联系的权重系数 x 来增强或抑制信号。标准卷积神经网络通常由输入层、卷积层、池化层、全连接层和输出层组成,如下图所示:  上图中第一层为输入层,大小为 28×28,然后通过 20×24×24 的卷积层,得到的结果再输入池化层中,最后再通过图中第四层既全连接层,直到最后输出。 下图为CNN常见的网络模型。其中包括 4 个卷积层,3 个池化层,池化层的大小为 3×3,最终再通过两个全连接层到达输出层。网络模型中的输入层一般是一个矩阵,卷积层,池化层和全连接层可以当作隐藏层,这些层通常具有不同的计算方法,需要学习权重以找到最佳值。  从上述中可知,标准卷积神经网络除了输入和输出外,还主要具有三种类型:池化层,全连接层和卷积层。这三个层次是卷积神经网络的核心部分。 ### 2.2.1 卷积层 卷积层是卷积神经网络的第一层,由几个卷积单元组成。每个卷积单元的参数可以通过反向传播算法进行优化,其目的是提取输入的各种特征,但是卷积层的第一层只能提取低级特征,例如边、线和角。更多层
Excerpt of 73,366 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:b9b3709221b9d18f, topic:pytorch