ExpressionRecognition-master.rar
# 表情识别
> 2019.12更新了仓库依赖。
## 简介
使用卷积神经网络构建整个系统,在尝试了Gabor、LBP等传统人脸特征提取方式基础上,深度模型效果显著。在FER2013、JAFFE和CK+三个表情识别数据集上进行模型评估。
## 环境部署
基于Python3和Keras2(TensorFlow后端),具体依赖安装如下(推荐使用conda或者venv虚拟环境)
- `git clone https://github.com/luanshiyinyang/ExpressionRecognition.git`
- `cd ExpressionRecognition`
- `pip install -r requirements.txt`
## 数据准备
数据集和预训练模型均已经上传到百度网盘,[链接](https://pan.baidu.com/s/1LFu52XTMBdsTSQjMIPYWnw)给出,提取密码为2pmd。
## 项目说明
1. 传统方法
- 数据预处理
- 图片降噪
- 人脸检测
- HAAR分类器检测(opencv)
- 特征工程
- 人脸特征提取
- LBP
- Gabor
- 分类器
- SVM
2. 深度方法
- 数据预处理
- 人脸检测
- HAAR分类器
- MTCNN(效果更好)
- 卷积神经网络
- 用于特征提取+分类
## 网络设计
使用经典的卷积神经网络,模型的构建主要参考2018年CVPR几篇论文以及谷歌的Going Deeper设计如下网络结构,输入层后加入(1,1)卷积层增加非线性表示且模型层次较浅,参数较少(大量参数集中在全连接层)。
![](./asset/CNN.png)
![](./asset/model.png)
## 模型训练
主要在FER2013、JAFFE、CK+上进行训练,JAFFE给出的是半身图因此做了人脸检测。最后在FER2013上Pub Test和Pri Test均达到67%左右准确率(该数据集爬虫采集存在标签错误、水印、动画图片等问题),JAFFE和CK+5折交叉验证均达到99%左右准确率(这两个数据集为实验室采集,较为准确标准)。
训练过程见train.ipynb文件
![](/asset/loss.png)
## 模型应用
与传统方法相比,卷积神经网络表现更好,使用该模型构建识别系统,提供GUI界面和摄像头实时检测(摄像必须保证补光足够)。预测时对一张图片进行水平翻转、偏转15度、平移等增广得到多个概率分布,将这些概率分布加权求和得到最后的概率分布,此时概率最大的作为标签。
注意,**GUI预测只显示最可能是人脸的那个表情,但是对所有检测到的人脸都会框定预测结果并在图片上标记,标记后的图片在results目录下**。
- GUI界面
- 运行scripts下的gui.py即可(图片来自百度,侵删。)
- 效果图
- ![](./asset/rst_gui.png)
- ![](./asset/rst_gui2.png)
- 实时检测
- 运行scripts下的recognition_camera.py即可
- 效果图(图片来自百度,侵删。)
- 演示不便
## 补充说明
具体项目代码、数据集、模型已经开源于我的Github,欢迎Star或者Fork。
博客中案例资源SVM.tar
博客中案例源代码+源数据。部分可能缺失。但是基本都在,请使用Anaconda应用打开里面代码运行。
博客中案例源代码+源数据。部分可能缺失。但是基本都在,请使用Anaconda应用打开里面代码运行。
博客中案例源代码+源数据。部分可能缺失。但是基本都在,请使用Anaconda应用打开里面代码运行。
Android_Day06_AirPlayer.zip
本代码主要是一个Android版本的飞机大战,用到了游戏引擎Cocos2D以及数据库相关知识
Android_day02_pintu.zip
本代码主要是一个Android的拼图功能实现的源代码。有兴趣可以下载执行运行
Android_Day03_ShakeOneShake.zip
本项目主要是Android动画相关知识、传感器知识实现类似微信摇一摇效果
Weather.zip
本资源代码用来配合本人播客 https://blog.csdn.net/weixin_40903057/article/details/93843963 天气预报项目源代码。
KungFuPanda.zip
主要配合本人播客Android整蛊熊猫--------帧动画项目 的具体代码。有兴趣可以下载运行看下,Android帧动画相关知识。一个小项目。可用于课程设计,毕业设计等
storm组件安装部署.doc
本文档主要是storm组件部署。欢迎大家关注数据科学,本人不断为大家提供数据科学相关知识,如有疑问请随时沟通不断优化
sqoop组件部署.doc
本文档主要是sqoop组件部署。欢迎大家关注数据科学,本人不断为大家提供数据科学相关知识,如有疑问请随时沟通不断优化
spark组件部署.doc
本文档主要是spark组件部署。欢迎大家关注数据科学,本人不断为大家提供数据科学相关知识,如有疑问请随时沟通不断优化
kafka组件部署.doc
本文档主要是kafka组件部署。欢迎大家关注数据科学,本人不断为大家提供数据科学相关知识,如有疑问请随时沟通不断优化
hbase组件部署.doc
本文档主要是hbase组件部署。欢迎大家关注数据科学,本人不断为大家提供数据科学相关知识,如有疑问请随时沟通不断优化
flume组件部署.doc
本文档主要是flume组件部署。欢迎大家关注数据科学,本人不断为大家提供数据科学相关知识,如有疑问请随时沟通不断优化
MapReduce基于物品的协同过滤算法实现电影推荐系统
本文档主要是协同过滤算法实现的电影推荐系统源码,对应本人博客MapReduce基于物品的协同过滤算法实现电影推荐系统。欢迎大家关注数据科学,关注我。谢谢
redis从入门到精通
本文档主要是redis详解笔记,对应本人博客redis详解。欢迎大家关注数据科学,关注我。谢谢
elasticsearch-2.4.4.tar
本工具主要是elasticsearch2.4版本。
curl-7.21.0-win64-ssl-sspi
欢迎下载curl-7.21.0-win64-ssl-sspi 工具,有其他工具需要随时沟通,
全国职业院校技能大赛移动互联网应用软件开发赛项 Android部分实现源码
全国职业院校技能大赛移动互联网应用软件开发赛项 Android部分实现源码
用户在基站停留信息日志文件
本日志主要用在本人所写案例Spark实现在一定时间范围内 求用户在所有基站(lac)停留的时长 再取top2中使用,也可使用在自己模拟分析用户在基站停留时间分析使用。欢迎大家关注数据科学,关注我。谢谢
移动运营商日志文件
主要应用在本人博客中的spark程序编写的IPSearch案例中的日志文件以及数据文件等。也可以下载用作自己的日志文件分析系统的日志来源。欢迎广大数据科学爱好者下载。
汽车销售可视化.rar
关于汽车销售大数据项目的完整开发流程,以及完整代码块。主要用到hadoop,hive,javaweb进行可视化
jdbc详细使用过程
jdbc教案jdbc教案jdbc教案jdbc教案jdbc教案jdbc教案jdbc教案jdbc教案jdbc教案,JDBC详细使用过程
Java天气预报项目
一个整合了Struts跟Hibernate的天气预报项目。
hadoop-2.6.4.tar.gz
hadoop-2.6.4.tar.gzhadoop-2.6.4.tar.gzhadoop-2.6.4.tar.gzhadoop-2.6.4.tar.gzhadoop-2.6.4.tar.gz
hadoop-2.8.2-src.tar.gz
hadoop-2.8.2-src.tar.gzhadoop-2.8.2-src.tar.gzhadoop-2.8.2-src.tar.gzhadoop-2.8.2-src.tar.gz
apache-hive-2.3.2-src.tar.gz
apache-hive-2.3.2-src.tar.gzapache-hive-2.3.2-src.tar.gzapache-hive-2.3.2-src.tar.gzapache-hive-2.3.2-src.tar.gzapache-hive-2.3.2-src.tar.gz
hbase-1.3.1-bin.tar.gz
hbase-1.3.1-bin.tar.gzhbase-1.3.1-bin.tar.gzhbase-1.3.1-bin.tar.gzhbase-1.3.1-bin.tar.gz
大数据环境配置过程文档
大数据环境配置过程文档大数据环境配置过程文档大数据环境配置过程文档大数据环境配置过程文档
千锋大数据程序开发周末班教学大纲(20170823更新)
千锋大数据程序开发周末班教学大纲(20170823更新)千锋大数据程序开发周末班教学大纲(20170823更新)千锋大数据程序开发周末班教学大纲(20170823更新)千锋大数据程序开发周末班教学大纲(20170823更新)