编译器 python3.8
开发平台 Pycharm
PyQT5 系统界面 (可视化开发工具designer )
模型训练基于深度学习tensorflow框架
opencv haar cascade 级联分类器 识别人脸
数据集为 fer2013和CK+   7种表情划分
CNN架构:Xception和VGG_16
GPU加速

tip:1、配置GPU参考博文https://blog.csdn.net/qilixuening/article/details/77503631 https://blog.csdn.net/sinat_23619409/article/details/84202651等。
CUDA和CuDNN的版本一定要兼容 ,例如CUDA 11.1.1对应的CuDNN版本为 8.1.1
CUDA下载地址:https://developer.nvidia.com/cuda-toolkit-archive
官网下载地址:https://developer.nvidia.com/rdp/cudnn-download

2、PyQt的学习可以网上买些相关书籍学习 。Pycharm中使用PyUIC可将designer.exe设计的.ui文件转为.py
系统运行所需要的库:

Python                          3.8.1
imutils                         0.5.4
keras                           2.7.0
numpy                           1.22.2
pandas                          1.0.5
pip                             22.0.3
PyQt5                           5.15.4
scikit-learn                    1.0.2
tensorboard                     2.7.0
tensorflow-gpu                  2.7.0
opencv-python                   4.5.5.62
matplotlib                      3.5.1

tip:如何使用pip安装特定版本的python第三方包(参考博文
https://blog.csdn.net/colourful_sky/article/details/80182082
数据集
FER2013
FER2013数据集是由Kaggle提供的csv文件,其中每一行包含该图片的表情分类标签,像素信息以及数据及分类用途。整个数据集其中涵盖了28709张进行训练的图像,3589张验证的图像与3589张进行测试的图像。 这些图片划分为7个表情标签,分别是(anger,disgust,fear,happiness,sadness,surprise和neutral)。
CK+
CK+数据集在Cohn-Kanade 数据集基础上进行了扩展,并在2010年发布,该数据集包含123个对象和593个图像序列。CK+数据集来源于123个采集对象,主要来自西方国家,划分了7种表情,包括惊讶,轻蔑,生气,害怕,高兴,厌恶和悲伤。共计327个被标记的人脸表情序列,在每个序列中研究者们记录了受试者从正常表情即中性表情,逐渐转变到某种所要求的表情的过程,并将每个序列的最后一张图像作为所要求表情的数据图片。这个数据集是目前人脸表情识别研究中比较流行的一个数据集。

tip:FER2013数据集存储的是一个个像素点,CK+中存储的是一张张图片,且都是48*48的分辨率。

模型
VGG_16
VGGNet是由Simonyan等人提出的深度卷积神经网络,是由Google Deep Mind团队和牛津大学合作完成的。VGGNet模型证明了通过增加网络深度可以有效地增强模型性能。“VGGNet的卷积核采用小而多的形式,使用了三个3×3的卷积核,而不是一个大的卷积核;这样做的好处是既增大了网络的深度,也没有加大运算量”。下图为VGGNet系列的网络结构示意图。根据卷积层层数和卷积核大小,VGG系列共有6种配置,分别为A、A_LRN、B、C、D和E。其中D和E是最被广泛使用的,也就是VGGNet16和VGGNet19。

Xception
Xception是Google继Inception后提出的对Inception v3的另一种改进,主要是采用深度可分离卷积(Depthwise separable convolution)来替换原来Inception v3中的卷积操作[30]。在GooleLeNet中,采用了全局均值池化(Global Average Pooling)来作为网络的最后一层,其优点在于降低了上一层参数的具体数量。全局平均池化主要是对所有元素取平均值。平均操作迫使网络从输入图像中提取全局特征。Xception的卷积神经网络架构充分利用了残差模块和深度可分离卷积的组合使用。深度可分离卷积通过在一个卷积层内分离特征提取和组合过程进一步减少了参数的数量。
关于该模型可参考论文:Xception: Deep Learning with Depthwise Separable Convolutions,论文Real-time Convolutional Neural Networks for Emotion and Gender Classification等。

基于Fer2013数据集,VGG_16网络模型识别准确率在63%,Xception 网络模型是66%;
基于CK+数据集,VGG_16网络模型识别准确率在94%,Xception网络模型是95%。

模型训练数据可视化(tensorboard。它的主要用途在于在训练过程中以可视化的方法监控模型内部发生的一切。把训练中的损失函数、测试集准确率可视化。如下图所示。)

系统测试
主界面运行Mainwindow.py。
实时摄像也是可以的,大家可以获取源码后自行测试。(源码获取在文末)


下载链接
如果你对本系统感兴趣,获取全部源码。可点以下链接。

人脸表情识别系统(VGG_16和Xception模型)配置GPU加速,Fer2013数据集和CK+数据集,tensorboard相关推荐

  1. 毕业设计-人脸表情识别系统、人工智能

    人脸表情识别系统 1. 前言 在这个人工智能成为超级大热门的时代,人脸表情识别已成为其中的一项研究热点,而卷积神经网络.深度信念网络和多层感知器等相关算法在人脸面部表情识别领域的运用最为广泛.面部的表 ...

  2. Python基于OpenCV的人脸表情识别系统[源码&部署教程]

    1.项目背景 人脸表情识别是模式识别中一个非常重要却十分复杂的课题.首先对计算机人脸表情识别技术的研究背景及发展历程作了简单回顾.然后对近期人脸表情识别的方法进行了分类综述.通过对各种识别方法的分析与 ...

  3. 人脸表情识别系统的设计与实现(含UI界面,有完整代码)

    人脸表情识别系统的设计与实现(含UI界面,有完整代码) 这是之前本科做的毕设,当时使用的是keras搭建了一个简单的神经网络作为入门实现了在fer2013人脸表情数据集上的表情分类,并移植到了树莓派上 ...

  4. 基于MobileNet的人脸表情识别系统(MATLAB GUI版+原理详解)

    摘要:本篇博客介绍了基于MobileNet的人脸表情识别系统,支持图片识别.视频识别.摄像头识别等多种形式,通过GUI界面实现表情识别可视化展示.首先介绍了表情识别任务的背景与意义,总结近年来利用深度 ...

  5. Keras|基于深度学习的人脸表情识别系统

    更新内容(2019-4-12) 已将Keras版本模型权重压缩之后上传至GItHub,可以自取 更新内容(2018-12-9) 正好在学习tensorflow,使用tensorflow重构了一下这个系 ...

  6. android人脸情绪识别器,基于Android平台的人脸表情识别系统的设计与实现

    摘要: 随着目前移动设备硬件技术的不断发展,其性能与PC的差距越来越小,这使得在嵌入式平台上进行图像处理成为了可能.目前使用最广泛的是基于Android系统的嵌入式平台,与之相关的图像类应用需求也渐渐 ...

  7. android 表情识别,基于Android平台的人脸表情识别系统的设计与实现

    摘要: 随着目前移动设备硬件技术的不断发展,其性能与PC的差距越来越小,这使得在嵌入式平台上进行图像处理成为了可能.目前使用最广泛的是基于Android系统的嵌入式平台,与之相关的图像类应用需求也渐渐 ...

  8. 基于CNN的人脸表情识别系统

    基于CNN的人脸表情识别系统 主要功能: 1)图片识别,可以通过上传本地图片,进行表情识别 2)拍照识别,点击拍照识别按钮,可以调用摄像头实现拍照,并进 行表情识别 实现原理: 1.表情库的建立 fe ...

  9. 利用PYTHON编写人脸表情识别系统

    最近闲来无事,和一个学妹完成了一个SRT,主要是关于元宇宙什么的,不过我在其中主要的工作是用python写一个人脸识别系统,发到这里和大家分享一下 注:我利用了几个包,包括opencv,dlib,nu ...

最新文章

  1. 2017年深度学习优化算法最新进展:改进SGD和Adam方法
  2. 图着色问题贪心算法c语言,区间图着色问题(贪心算法)C++实现
  3. 这样用Docker 搭建 Jenkins 实现自动部署,你知道吗?
  4. 公开资料整理网是什么_50份精选+阿咪整理的灵性/修行资料公开免费分享
  5. HandyJSON:Swift语言JSON转Model工具库
  6. 友达以上恋人未满 体验博越G-Netlink系统
  7. ioMemory: fusion IO
  8. 无法解析的外部符号 __imp_RegCloseKey
  9. zabbix 自动发现 自动添加主机
  10. 解决笔记本拔掉电源线和插上电源线鸣笛问题
  11. mflac格式解密_mflac格式是什么意思
  12. 画业务逻辑流程图后的感想
  13. h5新语义化标签(重要)
  14. [PHP]PHP爬虫 - URP教务
  15. centos7 安装obs studio
  16. Flutter开发:给image设置圆角的方法
  17. 有钱人和你想的不一样
  18. eclipse安装PyDev-使用eclipse开发python
  19. 大学生计算机装机配置作业,不愧是计算机专业的大学生,自己写配置来装机,万元电脑真霸气...
  20. 3.16下午 王希伟网课+笔记

热门文章

  1. pca图解读_PCA 图像识别 详解(一)
  2. ospf在NBMA网络中的配置
  3. 第十四周学习周报20181210-20181216
  4. 全球首位AI评委亮相“83行代码挑战赛”,评分“快准狠”
  5. [异常检测]Learning Regularity in Skeleton Trajectories for Anomaly Detection in Videos
  6. 犹他大学计算机科学毕业,2020年犹他大学排名TFE Times美国最佳计算机科学硕士专业排名第47...
  7. 解决google扩展程序已损坏的问题
  8. 怎么将图片kb压缩变小?
  9. 如何将高效设计应用于 DAO?
  10. 为什么有的人赚钱很简单,有的人却不行?