模式识别设计:基于Matlab PCA的BP神经网络人脸表情分类识别

Posted 索炜达.猿创

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模式识别设计:基于Matlab PCA的BP神经网络人脸表情分类识别相关的知识,希望对你有一定的参考价值。

文件大小:9M

代码行数:876行(主函数)

开发环境:Matlab2018、2020

点击下载:点击下载

简要概述:

基于误差反向传播算法的BP神经网络的人脸表情分类识别系统,利用PCA(主成分分析法)对人脸图像进行降维并提取主成分特征,利用K-交叉检验法训练BP神经网络。

表情分类识别系统的组成

本次课程设计中,基于BP神经网络的人脸表情识别系统由3部分组成,分别是:数据预处理,PCA特征提取和BP神经网络分类器。

基于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次平均识别率,同时记录最高识别率和最低识别率,作为人脸表情识别系统的性能指标。

参数调节后结果比较

运行结果如图所示


以上是关于模式识别设计:基于Matlab PCA的BP神经网络人脸表情分类识别的主要内容,如果未能解决你的问题,请参考以下文章

毕业设计/Matlab系列基于PCA和BP神经网络的人脸识别系统(附matlab代码)

毕业设计/Matlab系列基于PCA和BP神经网络的人脸识别系统(基于AR人脸库)

毕业设计/Matlab系列基于PCA和BP神经网络的人脸识别系统(基于AR人脸库)

毕业设计/Matlab系列基于PCA和BP神经网络相结合的图像压缩技术

字母识别基于matlab BP神经网络英文字母识别含Matlab源码 2226期

人脸识别基于matlab GUI BP神经网络人脸识别(含识别率)含Matlab源码 891期