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

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

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

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

**代码获取方式:**私信博主或 企鹅号: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.GRNN神经网络创建:利用函数newgrnn和径向基的传递值创建神经网络

4.GRNN网络训练:GRNN没有网络训练步骤,直接创建后进行预测

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

GRNN神经网络调用格式:

% net=newgrnn(P,T,SPREAD),其中, P为Q 组输入向量组成的R*Q维矩阵; T为Q组目标分类向量组成的S*Q维矩阵;SPREAD为径向基函数的扩展速度,默认值为1

**改进方向:**无

待改进方向:

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

特殊说明:

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

  2. GRNN神经网络不同于BP神经网络需要训练,GRNN神经网络直接用训练数据构建网络,其预测精度取决于训练数据的质量和径向基函数的拓展速度,默认值为1

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

Matlab仿真结果:

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

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

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

相关推荐
CV学术叫叫兽3 小时前
快速图像识别:落叶植物叶片分类
人工智能·分类·数据挖掘
xrgs_shz3 小时前
MATLAB读入不同类型图像并显示图像和相关信息
图像处理·计算机视觉·matlab
CV学术叫叫兽5 小时前
一站式学习:害虫识别与分类图像分割
学习·分类·数据挖掘
Sxiaocai6 小时前
使用TensorFlow实现简化版 GoogLeNet 模型进行 MNIST 图像分类
分类·tensorflow·neo4j
zhangfeng11336 小时前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类
火山口车神丶7 小时前
某车企ASW面试笔试题
c++·matlab
YRr YRr7 小时前
如何使用 PyTorch 实现图像分类数据集的加载和处理
pytorch·深度学习·分类
今天吃饺子7 小时前
2024年SCI一区最新改进优化算法——四参数自适应生长优化器,MATLAB代码免费获取...
开发语言·算法·matlab
Evand J19 小时前
集合卡尔曼滤波(Ensemble Kalman Filter),用于二维滤波(模拟平面上的目标跟踪),MATLAB代码
matlab·平面·目标跟踪
爱喝白开水a1 天前
Sentence-BERT实现文本匹配【分类目标函数】
人工智能·深度学习·机器学习·自然语言处理·分类·bert·大模型微调