# FERNet **Repository Path**: zhou-zhou123c/FERNet ## Basic Information - **Project Name**: FERNet - **Description**: 基于深度学习的面部表情识别 (Facial-expression Recognition) - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: https://gitee.com/zhou-zhou123c - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 3 - **Created**: 2021-09-14 - **Last Updated**: 2025-08-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: DeepLearning, PyTorch, AI, FaceRecognition ## README # FERNet 基于深度学习的面部表情识别 (Facial-expression Recognition) ## 一、项目背景 数据集[cnn_train.csv](https://download.csdn.net/download/qq_45588019/21981932)包含人类面部表情的图片的label和feature。在这里,面部表情识别相当于一个分类问题,共有7个类别。
其中label包括7种类型表情:
![7-classes](https://gitee.com/zhou-zhou123c/FERNet/raw/master/result/images/7-classes.png)
一共有28709个label,说明包含了28709张表情包。
每一行就是一张表情包4848=2304个像素,相当于4848个灰度值(intensity)(0为黑, 255为白) ## 二、数据预处理 ### 1.标签与特征分离 [cnn_feature_label.py](https://github.com/HaoliangZhou/FERNet/blob/master/dataloader/cnn_feature_label.py)
对[原数据](https://download.csdn.net/download/qq_45588019/21981932)进行处理,分离后分别保存为cnn_label.csv和cnn_data.csv.() ### 2.数据可视化 [face_view.py](https://github.com/HaoliangZhou/FERNet/blob/master/dataloader/face_view.py)
对特征进一步处理,也就是将每个数据行的2304个像素值合成每张48*48的表情图,最后做成24000张表情包。 ### 3.分割训练集和测试集 [cnn_picture_label.py](https://github.com/HaoliangZhou/FERNet/blob/master/dataloader/cnn_picture_label.py)
__Step1__:划分一下训练集和验证集。一共有28709张图片,我取前24000张图片作为训练集,其他图片作为验证集。新建文件夹cnn_train和cnn_val,将0.jpg到23999.jpg放进文件夹cnn_train,将其他图片放进文件夹cnn_val.
__Step2__:对每张图片标记属于哪一个类别,存放在dataset.csv中,分别在刚刚训练集和测试集执行标记任务。
__Step3__:重写Dataset类,它是Pytorch中图像数据集加载的一个基类,需要重写类来实现加载上面的图像数据集 ([rewrite_dataset.py](https://github.com/HaoliangZhou/FERNet/blob/master/dataloader/rewrite_dataset.py)) ## 三、搭建模型 [CNN_face.py](https://github.com/HaoliangZhou/FERNet/blob/master/models/CNN_face.py)
neural_network
## 四、训练模型 [train.py](https://github.com/HaoliangZhou/FERNet/blob/master/train.py)
损失函数使用交叉熵,优化器是随机梯度下降SGD,其中weight_decay为正则项系数,每轮训练打印损失值,每5轮训练打印准确率。

源数据放在[CSDN](https://download.csdn.net/download/qq_45588019/21981932)