编号:B239
大小:19.6M
环境:Matlab2020
简介:基于误差反向传播算法的BP神经网络的人脸表情分类识别系统,利用PCA(主成分分析法)对人脸图像进行降维并提取主成分特征,利用K-交叉检验法训练BP神经网络。
表情分类识别系统的组成
本次课程设计中,基于BP神经网络的人脸表情识别系统由3部分组成,分别是:数据预处理,PCA特征提取和BP神经网络分类器。
1.数据预处理
本次课程设计中所涉及到的数据是近4000幅维度为128×128的人脸灰度图像,在进行PCA特征提取之前,我们需要对这些数据进行标准化,数据标准化是指将数据按比例缩放,使之落于一个小的特定区间,从而去除数据的单位限制,将其转换为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。此外,数据标准化还可以提升模型的收敛速度和精度。针对PCA特征提取降维,本次课程设计采用零均值标准化(z-score标准化)。
2.PCA特征提取
本文中,待识别样本是维度为128×128的人脸灰度图像,即每个样本有多达16384个特征,要在如此高维的空间中研究样本的分布规律显然是十分麻烦且困难的,同时这些特征之间存在着一定的相关性,从而使得这些特征在一定程度上有信息的重叠。PCA通过采取降维的方式,找出主成分特征来代表原来数以万计的特征,以降低特征空间的维度,使后续的神经网络设计在计算上更容易实现,同时消除原有特征之间的相关度,减少数据信息的冗余,更有利于分类。
3.BP神经网络拓扑结构
BP神经网络是一种具有三层或三层以上的多层神经网络,每一层都由若干个神经元组成,如图2所示,它的左右各层之间各个神经元实现全连接,即左层的每一个神经元与右层的每个神经元都由连接,而上下各神经元之间无连接,如图3所示。BP神经网络按有导师学习方式进行训练,当一对学习模式提供给网络后,其神经元的激活值将从输入层经由各隐含层向输出层传播,在输出层的各神经元输出对应输入模式的网络响应。之后,按照减少期望输出与实际输出误差的原则,从输出层经由各隐含层,最后回到输入层逐层修正各连接权值。由于这种修正过程是从输出层到输入层逐层进行的,所以称之为“误差逆传播算法”,随着这种误差逆传播训练的不断进行,网络对输入模式响应的正确率也将不断提高。
运行展示
识别结果分析与分析比较
Newff函数构建神经网络
利用Matlab自带的newff函数生成三层BP神经网络,通过n×K次循环,训练集用于训练神经网络,测试集用于测试,计算K个训练形成的神经网络的识别率进而计算n×K次平均识别率,同时记录最高识别率和最低识别率,作为人脸表情识别系统的性能指标。
参数调节后结果比较
运行结果如图所示
方差结果如图所示
交叉验证准确率如图所示
激活函数与训练函数的初步比较
在激活函数和训练函数的初步比较我们可以看出,任何一种参数组合都会导致较低的最低识别率出现,而最高识别率则都维持在75~85%,因此这两个指标都不能作为后续激活函数和训练函数选取的标准。从平均识别率上看,traingda-log/tansig-softmax的组合具有较好的表现,这和比较预期和一般经验是相符合的:softmax适用于多分类,做为输出层激活函数是较为合适的,而隐含层激活函数从经验上看常选用log/tansig,训练函数traingda也即自适应lr的梯度下降法,属于变学习速率,既能加快学习过程,同时又不引起振荡。
配套文件
我们提供完整项目文件清单如下:
文件目录
├ 1.项目源码
├ 2.运行截图
└ 3.演示视频
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者文档,可以与我们交换,分享有积分奖励和额外收入!
4. 本站提供的源码、文档等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"www.2zcode.com",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:网站内的所有源码都经过我们亲自测试,均可以正常使用.
索炜达.猿创 » 基于Matlab PCA的BP神经网络人脸表情分类识别
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 你们有qq群吗怎么加入?