【人脸朝向识别与分类预测】基于PNN神经网络

**课题名称:**基于PNN神经网络的人脸朝向识别分类

**版本日期:**2024-02-20

**运行方式:**直接运行PNN0503.m文件

代码获取方式: 私信博主或 QQ:491052175

模型描述:

采集到一组人脸朝向不同角度时的图像,图像来自不同的10个人,每个人5幅图像,人脸的朝向分别是左方,左前方,前方,右前方,右方。通过观察不难法线,当人脸面朝不同方向时,眼睛在图像中的位置差别比较大.因此可以考虑将图片中描述眼睛位置的特征喜喜提取出来作为LVQ神经网络的输入,5个朝向分别用1,2,3,4,5表示,作为LVQ神经网络的输出。通过对训练集的图像进行训练,得到具有预测功能的网络,便可以对任意给出的人脸图像进行朝向判断和识别分类

算法流程:

1.人脸特征向量提取:如设计思路中所述,当人脸朝向不同时,眼睛在图像中的位置会有明显的差别。因此,只需要将描述人眼位置信息的特征向量提取出来即可。方法是将整幅图像划分成6行8列, 人眼的位置信息可以用第2行的8个子矩阵来描述(注意:针对不同大小的图像,划分的网格需稍作修改)边缘检测后8个子短阵中的值为"1"的像萦点个数与人脸朝向有直接关系, 只要分别统计出第2行的8个子短阵中的值为"1"的像素点个数即可。

2.训练集和测试集的产生:为了保证训练集数据的随机性,随机选取图像库中的30隔入脸图像提取出的特征向量作为训练集数据,剩余的20幅人脸图像提取出来的特征向盘作为测试集数据。

3.PNN神经网络创建:利用newpnn函数和spread值用于创建PNN神经网络

4.PNN网络训练:PNN神经网络不需要特别训练,影响网络的预测精度主要由spread值决定。

5.人脸识别测试:网络训练收敛后,便可以对测试集数据进行预测,即对测试集的图像进行人脸朝向识别.对于任意给出的图像,只需要将其特征向量提取出来,便可对其进行识别。

PNN神经网络调用格式:

net=newpnn(P,T,SPREAD)

P:为输入数据的矩阵

T:为输出数据的矩阵

SPREAD:径向基函数的拓展速度,默认值为1

**改进方向:**无

待改进方向:

因为训练数据比较少,为了提高预测精度,通过交叉验证并不断迭代寻找最佳的SPREAD值,最后应用于PNN神经网络里。相比于固定的SPREAD值而言,自适应求解SPREAD值的方式可以更好地提高预测精度

特殊说明:

1.根据测试,当spread值在3.5~4范围的时候,PNN神经网络在当前模型下的预测

2.经过测试,对训练和测试数据进行归一化,反而降低了预测精度

3.神经网络每一次的预测结果都不相同,为了得到更好的结果,建议多次运行取最佳值

Matlab仿真结果

基于PNN神经网络的人脸朝向识别精确率:

基于PNN神经网络的人脸朝向识别分类结果:

基于PNN神经网络的人脸朝向识别分类预测误差:

相关推荐
星夜离尘566 小时前
MATLAB 多传感器时间对齐 用 interp1 建立公共时间网格并限制外推
matlab·插值·传感器·时间序列·interp1
北纬的小熊15 小时前
Matlab Simulink电力电子仿真-全桥 LLC 谐振变换器调频控制(PFM)仿真研究
嵌入式硬件·matlab
星夜离尘562 天前
MATLAB 清洗 CSV 采样日志:重复时间戳、无效行、分组统计与自动出图
开发语言·matlab·数据分析·数据清洗·csv
星夜离尘562 天前
MATLAB FFT 单边幅度谱:归一化、奇偶长度与频谱泄漏的完整实验
开发语言·matlab·信号处理·频谱分析·fft
星夜离尘562 天前
MATLAB 5 点滑动平均:filter 与 conv 的输出对齐,以及 2 样本延时的含义
开发语言·算法·matlab·滤波·fir
道道_Love2 天前
AI 调 MATLAB 用 MCP 太难用?单元设计规范和测试用例,用原生 AI 一次生成
人工智能·matlab·设计规范
菜鸟~noob2332 天前
【电子战】第31篇:3D AOA 定位——方位+俯仰联合
开发语言·matlab·3d
iCxhust3 天前
Matlab求解发电机的极限切除角
开发语言·算法·matlab·电力系统
LMT_Lanmantech4 天前
MATLAB合规管理:如何避免侵权赔偿和审计风险
开发语言·matlab·信息可视化
Evand J4 天前
【PMSM例程6】永磁同步电机(PMSM)基于增广EKF的d-q轴电感分阶段辨识算法|电机参数估计与误差分析
算法·matlab·电机·ekf