目录

前言

课题背景和意义

实现技术思路

一、LeNet-5 卷积神经网络模型

二、设计思路

三、实验及结果分析

四、总结

实现效果图样例

最后


前言

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

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

选题指导:

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

🎯毕业设计-基于卷积神经网络的花卉图片识别

课题背景和意义

花卉识别是图像识别领域中最热门的研究课题之一,目前已广泛应用在智慧农业等领域。花卉是具有观赏价值的草本植物的统称。目前,我国拥 有世界最大规模的花卉种植产业,截至 2020 年,我国花卉 零售市场规模为 1876.6 亿元,花卉种植面积约 150 万 hm2 , 花卉企业约 49 540 个,行业从业人员 481 万人。随着产业规 模的不断扩大,高效、高准确率的花卉识别技术显得尤为关 键。传统花卉识别方式主要依靠人工观察进行分辨,效率较 低,且对专业知识有着一定的要求,对于一些罕见品种的花 卉,还需要专家进行识别。随着我国农业信息化的不断推进, 传统花卉识别方式显然已经不符合时代发展的需求。因此, 有必要探讨基于现代信息技术手段的花卉识别技术。卷 积神经网络是一类包含卷积计算且具有深度结构的前馈神经 网络,由于其对于图片处理的出色表现,已广泛应用于图像 识别领域。利用谷歌的 TensorFlow 框架,实现了一种基 于卷积神经网络的花卉图片识别方法。经实验验证,该方法 能够识别图片中的花卉品种。

实现技术思路

一、LeNet-5 卷积神经网络模型

LeNet-5 是 LECUN 等人于 1998 年提出的卷积神经网络 模型,它利用卷积、参数共享、池化等操作提取特征,有效 减少了计算量 。

LeNet-5 最初用来识别手写字符,现主要 应用在图像处理领域。 LeNet-5 卷积神经网络模型的结构如图所示。LeNet-5 除去输入层共有 7 层,其中有 3 层卷积层、2 层子采样层、 1 层全连接层和 1 层高斯连接层。该网络有 5 层具有可学习 的参数,因此被命名为 LeNet-5。图中用 C 代表卷积层, 用 S 代表采样层,用 F 代表全连接层,图片的输入尺寸固定 在 32×32 像素。

torch CNN 花分类_课程设计

C1 层是一个卷积层,该层使用 6 个尺寸为 5×5 像素的卷积核对输入图像进行卷积运算,卷积的步长为 1。S2 层是一个下采样层(池化层),这里采用平均池化, 池化的尺寸定为 2×2 像素。C3 层是一个卷积层,选用大小为 5×5 像素的 16 种不同的卷积核。S4 层是一个池化层,尺寸为 2×2,仍采用平均池化。C5 层是一个卷积层,用 5×5 像素的 卷积核对 S4 层的输出进行卷积,卷积核数量增加至 120。F6 层是全连接层,该层与 C5 层全连接,输出 84 张特征图。

二、设计思路

因为 LeNet-5 设计的初衷是对尺寸为 32×32 像素的手写数字图像进行识别,而本方法需要对尺寸为 128×128 像 素的花卉图片进行识别,又由于花卉与手写数字在形态上 的巨大差异,本方法在 LeNet-5 的基础上针对花卉的特点 设计了一种卷积神经网络模型,其结构图如所示。图中 用 C 代表卷积层,用 S 代表采样层,用 F 代表全连接层,图 片的输入尺寸固定在 128×128 像素。

torch CNN 花分类_课程设计_02

三、实验及结果分析

实验环境

硬件环境:中央处理器为 3500X,3.60 GHz,内存为 16 GB,显卡为 Nvidia GTX1660,具体参数如表所示。软 件环境:采用谷歌 TensorFlow 深度学习框架,编程语言为3 实验及结果分析 3.1 实验环境 硬件环境:中央处理器为 3500X,3.60 GHz,内存为 16 GB,显卡为 Nvidia GTX1660,具体参数如表所示。软 件环境:采用谷歌 TensorFlow 深度学习框架,编程语言为Python 3.9.5,科学计算库为 Numpy 1.21.5,数据处理包为 Pandas 1.4.1,数据可视化包为 Matplotlib 3.5.1。

torch CNN 花分类_课程设计_03

数据集

数据集来源于 Kaggle 平台的公开数据集,由 210 张尺 寸为 128×128 像素的采用 RGB 色彩空间的花卉图片和 1 个 包含所有图片标签的 CSV 格式文件,图片中有 10 种不同种 类的花卉。品种包含福禄考、玫瑰、金盏花、鸢尾花、杭白菊、 风铃草、三色堇、金光菊、牡丹及耧斗菜,如图所示。

torch CNN 花分类_课程设计_04

实验步骤

第一步,初始化卷积神经网络模型。第二步,设置训练 参数,学习率使用 ModelCheckpoint 方法设置为自适应降低, 批训练样本数量(Batch)设置为 32,迭代轮次(Epoch)设 置为 100[10]。每次迭代输出一次结果,包括准确率(Accuracy) 和损失(Loss)。100 次迭代完成后,输出总的识别准确率 和损失。第三步,输入样本,使用 Adam 算法更新参数。第 四步,训练结束,使用测试数据对模型进行检测。

实验结果

图为模型迭代过程中训练数据集和测试数据集 的准确率和损失率的变化情况。所有迭代完成后,模型的训 练数据集准确率为 0.89,损失率为 0.30;测试数据集准确率 为 0.76,损失率为 0.60。

从图可以看出,开始迭代训练后,模型的准确 率快速提高,损失快速降低。当迭代次数达到约 55 后,训 练数据集准确率开始振荡,而测试数据集准确率开始稳定 不变。训练数据集损失率开始振荡,而测试数据集损失率 开始稳定不变。当迭代完成后,最终的训练数据集准确率 为 0.89,损失率为 0.30;测试数据集准确率为 0.76,损失率 为 0.60。

模型准确率:

torch CNN 花分类_神经网络_05

模型的损失率:

torch CNN 花分类_torch CNN 花分类_06

图为本方法花卉图片识别的样例,图中有 16 张花卉 图片,每张图片上侧标注有图中花卉的真实品种和模型预测 的品种(括号中)。从图可以看出,该模型能够正确地识 别出绝大多数花卉的品种。

torch CNN 花分类_算法_07

四、总结

基于经典的卷积神经网络 LeNet-5,设计并实现了 一种可以对花卉图片进行识别和分类的方法。在实验中,经 过 100 次迭代训练,其中训练数据集准确率为 0.89,损失率 为 0.30;测试数据集准确率为 0.76,损失为 0.60。实验结果 表明,本方法能够有效识别图片中的花卉品种,并具有较高 的识别率。

实现效果图样例

花卉图片识别:

torch CNN 花分类_神经网络_08

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

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