目录

前言

课题背景和意义

实现技术思路

一、深度学习相关理论

二、卷积神经网络算法

三、年龄预测实验及结果分析

四、总结

实现效果图样例

最后


前言


    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

选题指导: https://blog.csdn/qq_37340229/article/details/128243277

大家好,这里是海浪学长毕设专题,本次分享的课题是

🎯毕业设计-基于深度学习的年龄预测模型

课题背景和意义

随着人工智能的飞速发展以及机器视觉的出现,通过处 理生活中出现的各种图像,就能够完成对生物的识别以及对 各类数据的采集 ;结合机器视觉和机器学习,通过处理人脸 图片信息可以实现年龄的识别和预测。 由于机器学习存在误差问题,无法细致地学习数据深层 次的具体特征。在 1976 年由马顿和萨尔乔首次提出深度学 习一词,他们指出深度学习就是学者对于学习资料要更加偏 向于意向性的领悟,是通过模仿人类的视觉神经网络系统, 分层次地逐步对数据信息进行理解和学习 ;通过学习数据各 个层次的特征加深对数据本身内容的理解,以便对于新的数 据进行更为深入和全面的预测。 1987 年由 Alexander Waibel 等提出了第一个卷积神经网 络(TDNN),在之后的时间里卷积神经网络不断地发展成为 深度学习的代表性模型之一,它在提取和识别图片特征方面 有着显著的优势,因此基于深度学习中的卷积神经网络模型 来实现年龄的识别与预测是现在的主流研究方向。人类年 龄预测的实现带来了很多的便利,它可以被应用于各类的人 机交互系统,使得对个人身份的识别更加有效快捷,随之而 来的年龄预测 APP 软件也会受到很多女性群体的喜爱。

实现技术思路

一、深度学习相关理论

深度学习及其应用语言

深度学习作为机器学习的分支,是解决复杂问题的一个 有效方法,它是通过人工神经网络的概念去完成给定的任务, 而不是通过特定的规则去完成任务,所以不需要明确的编程, 而正是这种模糊的控制却可以准确地完成任务,相较于传统 的机器学习优势更加突出。

深度学习领域主要使用的是 Python 语言,它具有三大特 点 :具有高效的高级数据结构,是面向对象的编程,是一种 解释性语言。因此,Python 语言有着很大的应用范围,它也 因为有庞大的标准库,适用于各种源码,故也是深度学习所 使用的最佳语言。

构建深度学习基本模型的方法

构建深度学习的基本模型一般分为以下五大步骤 :

(1)对于将要解决的问题进行抽象化的理解 ;

(2)要着重 挑选数据集,这里采用的数据集是开放数据集—飞浆 AIstudio 中的名为 archive(3)和 train 的两个数据集,这两个人 脸年龄数据集较为小众,但多数人口为亚洲人,并且不同年 龄阶段的人脸区分较为仔细和严格;

(3)对数据集的预处 理和特征值的提取 ;

(4)对于模型的训练 ;

(5)对于模型的 评估。

二、卷积神经网络算法

卷积神经网络结构

卷积神经网络(CNN)通常包含以下四层 :卷积层、线 性整流层、池化层和全连接层。其中卷积层是卷积神经网络 最为核心的部分,它主要完成对图像的特征提取 ;之后卷积 层输出结果,通过线性整流层进行非线性映射 ;池化层负责 降采样 ;最后全连接层将局部特征结合起来变成全局特征, 用来计算每一类的得分,给出预测准确率。

本次实验主要使用的卷积神经网络模型是由卷积层、最 大池化层以及激活层相互协调配合实现的,具体结构如图所示。

 首先输入将要卷积的图片对象,紧接着就进入输入层, 然后开始尺度变换和比例缩放。在完成这些准备工作后就会 进入卷积层,并加入激活函数 ;卷积结束后开始第一次池化, 这里采用最大池化法,紧接着再进行一次卷积池化操作。通 过反复的卷积、激活以及最大池化操作,能够完成对图片特 征的真实、细致提取。之后通过 Flatten 层将多维输入一维化 并进入全连接层,再通过 Softmax 函数完成对提取特征信息 的 0-1 概率生成,就会出现最终的年龄预测准确率结果。

卷积层与池化层功能

卷积神经网络(CNN)的核心在于卷积,卷积以不同的 参数来描述不同的抽象程度,使之更接近于原始图像的特征 抽象,它的具体公式如公式所示。

三、年龄预测实验及结果分析

实验所需环境及库

Pycharm 作为一款优秀的集成开发环境(IDE),它具 有代码的自动补全功能,适宜新手学习和编写 Python 语 言。而提起 Pycharm 就必须提起它所配套使用的 Anaconda, Anaconda 是开源的 Python 发行版本,它包含了 Python180 多个科学包。因此,Pycharm 与 Anaconda 的结合给 Python 语言创造了一个良好的编译环境。

本次实验共需五大软件包,分别为 tensorflow、pyqt5、 pillow、opencv-python 以 及 matplotlib, 其 中 pyqt5、pillow 和 opencv-python 主要用于图像处理以及图形化界面的设计,matplotlib 则是为了绘制图表做准备。

实验过程及效果

本次实验过程主要分为四个步骤,首先是对人脸数据 集进行划分,将人脸数据集“1-3”“4-6”“7-9”“10-12”“13- 15”“16-18”“19-25”“26-35”“36-45”“46-55”“56-70”“71-” 共 12 个年龄阶段,按照 8 :1 :1 比例分为训练集(train)、 验证集(validate)、测试集(test)三部分。其次是对年龄预 测模型进行训练,其中主要是对 CNN 模型进行训练,使其验 证集成功率达到 90% 以上。对测试模型进行训练的同时生成 热力图。最后是搭建年龄预测窗口,并产生效果图,具体如 图所示。

实验结果分析

对于实验结果,主要是看训练模型的准确率以及其是否 能宽泛地应用于一切人脸图像的识别。训练模型的准确率 主要经历了三个阶段,分别为 CNN 验证集准确率从 20% 到 55% 再到 73% 以及最后到 93%。最终的实验结果热力图如 图所示。

 图热力图的每一个小格都代表了一个准确率,横坐标 代表预测的标签,纵坐标代表真实标签 ;颜色越深则代 表它的准确率越高,因此通过大体的颜色分布可以看出,除 19 ~ 25 岁和 26 ~ 35 岁两个年龄阶段准确率较低外,其他 年龄段都达到了 90% 及以上的准确率。这表明 CNN 模型对 于图像特征差异性的依赖,若图像特征过于相似则无法准确 识别,这也是对于人脸图像年龄进行分阶段划分的原因。

对于 CNN 模型泛化能力的检测,通过使用不参 与 CNN 模型训练的测试集(test)图片进行窗口预测,采 用验证测试集的 12 个年龄阶段且每个阶段随机抽出五六张 图片的方法,发现准确率仍然为 90% 左右,这就可以证实 CNN 模型有很好的泛化能力,不会出现过拟合现象。

四、总结

主要论述了基于深度学习的年龄预测系统的设计, 首先对年龄预测背景及现状进行研究,之后对深度学习模型 进行构建和分析,对年龄识别问题进行抽象化的分析,这里 主要是将其要识别的特征确定为人脸图像。接着就是对于人 脸信息进行数据集的收集,再对其特征进行提取,这就要依 靠对图片处理与识别有着优良性能的卷积神经网络(CNN), 最后对模型进行训练和评估。

对于 CNN 模型的训练经历了三个阶段,在不断优化数 据集以及调试模型程序的情况下最终实现了准确率从 20% 到 55% 再到 73% 以及最终到 93% 的效果。

实现效果图样例

年龄预测系统:

我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

最后

更多推荐

毕业设计-基于深度学习的年龄预测模型