Keras-深度学习-神经网络-人脸识别模型

这篇具有很好参考价值的文章主要介绍了Keras-深度学习-神经网络-人脸识别模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

模型搭建

模型训练


模型搭建

①导入所需的库,导入了 Keras 和其他必要的库,用于构建和处理图像数据。

from keras.models import Sequential
from keras.layers import Dense, Flatten, Conv2D, MaxPooling2D
import os
from PIL import Image
import numpy

②加载人脸数据并进行处理,并将其划分为训练集和测试集。每个人的图像按顺序排列,训练集包含每个人前6张图像,测试集包含剩余的图像。每个图像都被转换为像素值列表,并与相应的标签一起存储。

picture_path = r"C:\Users\Yezi\Desktop\机器学习\数据集\Yale_face10080"
suffix = ".bmp"
num_people = 15
num_train = 6
num_picture_single = 11
dimension = [80, 100]
x_train = []
y_train = []
x_test = []
y_test = []
picture_file = [file for file in os.listdir(picture_path) if file.endswith(suffix)]
num_picture = len(picture_file)
for i in range(num_picture):
    picture = list(Image.open(picture_path + '\\' + picture_file[i]).getdata())
    y = [0] * num_people
    y[i // num_picture_single] = 1
    if i % num_picture_single < num_train:
        x_train.append(picture)
        y_train.append(y)
    else:
        x_test.append(picture)
        y_test.append(y)
x_train, x_test, y_train, y_test = numpy.array(x_train), numpy.array(x_test), numpy.array(y_train), numpy.array(y_test)

③将数据变为四维张量并归一化,图像数据需要转换为四维张量,维度是(样本数,图像高度,图像宽度,通道数)。此处将图像数据的通道数设置为1,表示灰度图像。然后对图像数据进行归一化处理,将像素值缩放到0到1之间。

x_train = x_train.reshape(x_train.shape[0], dimension[0], dimension[1], 1).astype('float32') / 255
x_test = x_test.reshape(x_test.shape[0], dimension[0], dimension[1], 1).astype('float32') / 255

④建了模型,采用了序贯模型(Sequential)。模型由一个卷积层、一个最大池化层、一个扁平层(用于将多维数据展平为一维)、一个全连接层(用于输出分类概率)组成。激活函数使用了 ReLU,并且最后的全连接层使用了 softmax 激活函数以获得分类概率。

model = Sequential()
model.add(Conv2D(filters=4, kernel_size=(3, 3), activation='relu', input_shape=(dimension[0], dimension[1], 1)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(num_people, activation='softmax'))

⑤使用交叉熵作为损失函数,Adam 作为优化器进行训练,并且监测模型的准确率。

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

⑥使用训练集对模型进行训练,指定了批次大小和训练轮数,并在训练过程中显示进度和验证集的表现。

history = model.fit(x_train, y_train, batch_size=128, epochs=20, verbose=1, validation_data=(x_test, y_test))

⑦对训练好的模型使用测试集进行验证,并打印出测试准确率。

score = model.evaluate(x_test, y_test, verbose=0)
print('Test accuracy:', score[1])

模型训练

以下是python构建的卷积神经网络在ORL、FERET和YaleFace三个人脸数据集的训练和表现情况。

  • ORL人脸数据集

ORL人脸数据集有40个人的人脸数据,每个人10张照片,一共400张照片,照片的维数是46×56。我们将每个人的前5张照片作为训练集,共200张,剩下的5张作为测试集,最后的全连接层采用40个神经元作为模型的输出,使用了64个卷积核,训练了20轮,训练过程如图1所示。

Keras-深度学习-神经网络-人脸识别模型,机器学习,深度学习,神经网络,keras

图1 ORL训练过程

训练出的人脸识别模型在测试集上的识别率随训练的轮次的变化如图2所示。

Keras-深度学习-神经网络-人脸识别模型,机器学习,深度学习,神经网络,keras

图2 ORL识别率

具体数据如表1所示。

Keras-深度学习-神经网络-人脸识别模型,机器学习,深度学习,神经网络,keras

表1 ORL

由结果可以看出,ORL数据集训练出来的模型,其拟合效果和泛化效果都比较好。

  • FERET人脸数据集

FERET人脸数据集有200个人的人脸数据,每个人7张照片,一共1400张照片,照片的维数是80×80。我们将每个人的前4张照片作为训练集,共800张,剩下的3张作为测试集,最后的全连接层采用200个神经元作为模型的输出,使用了4个卷积核,训练了20轮,训练过程如图3所示。

Keras-深度学习-神经网络-人脸识别模型,机器学习,深度学习,神经网络,keras

图3 FERET训练过程

训练出的人脸识别模型在测试集上的识别率随训练的轮次的变化如图4所示。

Keras-深度学习-神经网络-人脸识别模型,机器学习,深度学习,神经网络,keras

图4 FERET识别率

具体数据如表2所示。

Keras-深度学习-神经网络-人脸识别模型,机器学习,深度学习,神经网络,keras

表2 FERET

由结果可以知道,FERET数据集训练出来的模型,其拟合效果很好,但泛化效果并不理想,分析原因可能是因为训练的数据过少,加上FERET的噪声影响比较大,最后一张照片光线很暗,导致了测试集的识别率不高。

  • Yale Face人脸数据集

Yale Face人脸数据集有15个人的人脸数据,每个人11张照片,一共165张照片,照片的维数是80×100。我们将每个人的前6张照片作为训练集,共90张,剩下的5张作为测试集,最后的全连接层采用15个神经元作为模型的输出,使用了16个卷积核,训练了20轮,训练过程如图5所示。

Keras-深度学习-神经网络-人脸识别模型,机器学习,深度学习,神经网络,keras

图5 Yale Face训练过程

训练出的人脸识别模型在测试集上的识别率随训练的轮次的变化如图6所示。

Keras-深度学习-神经网络-人脸识别模型,机器学习,深度学习,神经网络,keras

图6 Yale Face识别率

具体数据如表3所示。

Keras-深度学习-神经网络-人脸识别模型,机器学习,深度学习,神经网络,keras

表3 Yale Face

由结果可以看出,Yale Face数据集训练出来的模型,其拟合效果和泛化效果都比较好。文章来源地址https://www.toymoban.com/news/detail-517058.html

到了这里,关于Keras-深度学习-神经网络-人脸识别模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 90 | Python人工智能篇 —— 深度学习算法 Keras基于卷积神经网络的情感分类

    情感分类是自然语言处理(NLP)领域的一个重要任务,它旨在将文本划分为积极、消极或中性等不同情感类别。深度学习技术,尤其是卷积神经网络(CNN),在情感分类任务中取得了显著的成果。Keras作为一个高级的深度学习框架,提供了便捷易用的工具来构建和训练情感分

    2024年02月13日
    浏览(37)
  • Keras-4-深度学习用于计算机视觉-卷积神经网络对 MNIST 数字进行分类:

    本篇学习记录主要包括:《Python深度学习》的第5章(深度学习用于计算机视觉)的第1节(卷积神经网络简介)内容。 相关知识点: 密集层 (Dense层、全连接层) 和 卷积层的区别在于: Dense层从输入特征空间中学到的是全局模式;而卷积层学到的是局部模式 (学到的是卷积核大

    2024年02月11日
    浏览(37)
  • 竞赛 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

    🔥 优质竞赛项目系列,今天要分享的是 深度学习卷积神经网络垃圾分类系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 近年来,随着我国经济的快速发展,国家各项建设都蒸蒸日上,成绩显著。

    2024年02月08日
    浏览(30)
  • 竞赛选题 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

    🔥 优质竞赛项目系列,今天要分享的是 深度学习卷积神经网络垃圾分类系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 近年来,随着我国经济的快速发展,国家各项建设都蒸蒸日上,成绩显著。

    2024年02月07日
    浏览(34)
  • 卷积神经网络 —— 图像识别与深度学习

    视频教程学习链接: https://www.icourse163.org/learn/XUST-1206363802?tid=1467124640#/learn/content?type=detailid=1248319353cid=1275090253 原始数据的形式是多种多样的,除了数字之外,还可能是文字、图像、视频、音频等,下面,就以图像识别为例,来了解深度学习在计算机视觉领域中的应用。 图像

    2024年02月05日
    浏览(32)
  • 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 深度学习卷积神经网络垃圾分类系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 近年来,随着我国经济的快速发展,国家各项建设都蒸蒸日上,成绩显著。

    2024年02月04日
    浏览(41)
  • 计算机竞赛 深度学习卷积神经网络垃圾分类系统 - 深度学习 神经网络 图像识别 垃圾分类 算法 小程序

    🔥 优质竞赛项目系列,今天要分享的是 深度学习卷积神经网络垃圾分类系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 近年来,随着我国经济的快速发展,国家各项建设都蒸蒸日上,成绩显著。

    2024年02月07日
    浏览(39)
  • 【深度学习】2-4 神经网络-手写数字识别

    在实现对手写数字图像的分类,可以先假设学习已经全部结束,我们使用学习到的参数,先实现神经网络的“推理处理”。该处理也称为神经网络的 前向传播 。 和求解机器学习问题的步骤(分成学习和推理两个阶段进行)一样 使用神经网络解决问题时,也需要 首先使用训练数

    2024年02月09日
    浏览(48)
  • 竞赛选题 深度学习动物识别 - 卷积神经网络 机器视觉 图像识别

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习动物识别 - 卷积神经网络 机器视觉 图像识别 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享:

    2024年02月08日
    浏览(33)
  • 计算机竞赛 卷积神经网络手写字符识别 - 深度学习

    🔥 优质竞赛项目系列,今天要分享的是 🚩 卷积神经网络手写字符识别 - 深度学习 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/d

    2024年02月12日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包