人脸表情识别 项目实战

人脸表情识别

文章目录

    • 1 项目说明
    • 2 实验结果
    • 3 可视化

1 项目说明

​ 项目分为FER_train和FER_deploy两个文件夹:

FER_train:

  • **CK+、JAFFE、RAF_DB、FER2013、FER+**对应的原始数据、预处理代码、处理后的数据
  • 五个数据集对应的训练和测试代码
  • checkpoints,训好的模型
  • loss、accuracy、confusion matrix可视化

FER_deploy:

  • 提供了ResidualMaskingNetwork和modified_vgg两个训练好的模型
  • 对于切割好的人脸图片的表情分类识别
  • 对于原始图像人脸的检测与表情识别及其可视化
  • onnx模型转化

2 实验结果

CK+:

模型名称 测试集准确率
resnet50 100%
vgg19_bn 100%
modified_vgg 100%

JAFFE:

注:数据太少,随机性比较大,训练集和测试集的随机划分会影响到结果,运气差的时候只有83%

模型名称 测试集准确率
resnet18 95.3%
resnet34 88.4%
resnet50 81.4%
vgg19_bn 79.1%(有时会很差)
modified_vgg 79.1%(有时会很差)

RAF-DB:

模型名称 测试集准确率
resnet18 76.1%
resnet34 75.2%
resnet50 73.8%
vgg19_bn 81.0%
modified_vgg 80.1%

FER2013:

模型名称 验证集最高准确率 测试集准确率
resnet18 65.5% 66.1%
resnet34 64.7% 65.7%
resnet50 64.4% 65.6%
vgg19_bn 69.3% 69.4%
modified_vgg 69.7% 69.3%

FER+:

模型名称 验证集最高准确率 测试集准确率
resnet18 80.9% 78.6%
resnet34 81.0% 78.5%
resnet50 80.2% 79.2%
vgg19_bn 84.1% 82.5%
modified_vgg 84.2% 83.0%

Mix(RAF-DB与FER+):

模型名称 验证集最高准确率 测试集准确率
resnet18 80.7% 77.5%
resnet34 80.7% 77.5%
resnet50 80.8% 77.6%
vgg19_bn 84.6% 83.0%
modified_vgg 84.0% 82.8%

注:这些都是在epoch=150,initial_lr=0.0001,Adam,FiveCrop的设置下训练的

运行train_CK+_JAFFE_RAF-DB.py和train_FER2013_FER+.py能训出更好的结果(对应设置:epoch=250,initial_lr=0.01,SGD,TenCrop)。

在这些更强更耗时的设置下,RAF-DB最优效果从81.0%提升到83.3%,如下:


训练设置参考:

https://github.com/WuJie1010/Facial-Expression-Recognition.Pytorch

3 可视化

人脸表情识别 项目实战_第1张图片

人脸表情识别 项目实战_第2张图片
人脸表情识别 项目实战_第3张图片

你可能感兴趣的:(深度学习,pytorch,人工智能)