# FacialExpressionRecognition **Repository Path**: luanshiyinyang/facial-expression-recognition ## Basic Information - **Project Name**: FacialExpressionRecognition - **Description**: 人脸表情识别系统源码。 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 186 - **Forks**: 58 - **Created**: 2021-07-07 - **Last Updated**: 2025-07-17 ## Categories & Tags **Categories**: cv **Tags**: None ## README # 人脸表情识别 ## 更新日志 ### v0.1 基于TensorFlow1.x的人脸表情识别项目。 ### v0.2 2020.8.22,重构了整个仓库代码,改用Tensorflow2中的keras api实现整个系统。考虑到很多反映jupyter notebook写的train使用起来不太方便,这里改成了py脚本实现。 ### v0.3 2020.12.18,根据反馈,修改了Jaffe的优化器设置。 ### v0.4 增加了人脸检测器blazeface。 ## 简介 使用卷积神经网络构建整个系统,在尝试了Gabor、LBP等传统人脸特征提取方式基础上,深度模型效果显著。在FER2013、JAFFE和CK+三个表情识别数据集上进行模型评估。 ## 环境部署 基于Python3和Keras2(TensorFlow后端),具体依赖安装如下(推荐使用conda虚拟环境)。 ```shell script git clone https://github.com/luanshiyinyang/FacialExpressionRecognition.git cd FacialExpressionRecognition conda create -n FER python=3.6 -y conda activate FER conda install cudatoolkit=10.1 -y conda install cudnn=7.6.5 -y pip install -r requirements.txt ``` 如果你是Linux用户,直接执行根目录下的`env.sh`即可一键配置环境,执行命令为`bash env.sh`。 ## 数据准备 数据集和预训练模型均已经上传到百度网盘,[链接](https://pan.baidu.com/s/1LFu52XTMBdsTSQjMIPYWnw)给出,提取密码为2pmd。下载后将`model.zip`移动到根目录下的`models`文件夹下并解压得到一个`*.h5`的模型参数文件,将`data.zip`移动到根目录下的`dataset`文件夹下并解压得到包含多个数据集压缩文件,均解压即可得到包含图像的数据集(**其中rar后缀的为原始jaffe数据集,这里建议使用我处理好的**)。 ## 项目说明 ### **传统方法** - 数据预处理 - 图片降噪 - 人脸检测(HAAR分类器检测(opencv)) - 特征工程 - 人脸特征提取 - LBP - Gabor - 分类器 - SVM ### **深度方法** - 人脸检测 - HAAR分类器 - MTCNN(效果更好) - 卷积神经网络 - 用于特征提取+分类 ## 网络设计 使用经典的卷积神经网络,模型的构建主要参考2018年CVPR几篇论文以及谷歌的Going Deeper设计如下网络结构,输入层后加入(1,1)卷积层增加非线性表示且模型层次较浅,参数较少(大量参数集中在全连接层)。