登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 计算机科学与技术 > 正文

基于Python的花卉识别系统设计与实现毕业论文

 2021-11-14 08:11  

论文总字数:22606字

摘 要

近年来,机器学习与大数据技术发展突飞猛进,正在潜移默化地影响大众的生活。其中图片识别、人脸识别、文字识别等技术的发展迅速,运用在人们生活的方方面面。本文基于Python语言和TensorFlow框架对几个经典的卷积神经网络进行迁移学习,并选择效果较好的模型作为识别模块,使用Django Python Web框架实现了一个花卉识别网站,在oxford flower 102数据集上最高达到了92.28%的准确率。

论文首先讨论了开发该系统的现实意义,简要介绍了国内外花卉识别系统的研究现状。其次介绍了花卉识别的原理,包括卷积神经网络的结构、工作过程还有BP算法的计算过程、ResNet的组成结构、迁移学习原理,并介绍了TensorFlow、CUDA环境以及其安装流程。本文重点介绍了在TensorFlow2.0使用迁移学习搭建卷积神经网络,数据预处理的方法,讲述了训练卷积神经网络的过程。介绍了使用Django框架以及使用该框架开发Python Web应用的过程,将训练好的卷积神经网络展示了网站的实际工作流程,并分析了识别结果。最后对本次设计进行了总结。

关键词:花卉识别、卷积神经网络、迁移学习、TensorFlow2.0、Keras、Django

Abstract

In recent years, machine learning and big data technologies have advanced by leaps and bounds and are implicitly impacting the lives of people. Among them, the rapid development of picture recognition, face recognition, text recognition and other technologies, used in all aspects of people's lives. In this thesis, we perform migration learning on several classical convolutional neural networks based on the Python language and the TensorFlow framework, and select the model with better results as the recognition module to implement a flower recognition website using the Django Python Web framework, achieving a maximum accuracy of 92.28% on the oxford flower 102 dataset.

This thesis begins by discussing the practical implications of developing the system and briefly describes the current state of research on floral identification systems at home and abroad. Next, the principles of flower recognition are introduced, including the structure of convolutional neural networks, the working process and the computational process of the BP algorithm, the composition of ResNet, the principles of migration learning, and the TensorFlow, CUDA environment and its installation process. This thesis focuses on the use of migration learning to build convolutional neural networks in TensorFlow 2.0, data preprocessing methods, and describes the process of training convolutional neural networks. The use of Django framework and the process of developing a Python Web application using it is described, the trained convolutional neural network is presented to demonstrate the actual workflow of the site, and the identification results are analyzed. Finally, this design is concluded with a summary.

Keywords: flower recognition, convolutional neural network, transfer learning, TensorFlow2.0, Keras, Django

目 录

第1章 绪论 1

1.1研究目的及意义 1

1.2国内外研究现状 1

1.3 研究内容 2

1.4 研究难点 2

1.5 本文架构 3

第2章 花卉识别理论 4

2.1 卷积神经网络 4

2.1.1卷积神经网络的结构 4

2.2 BP算法 7

2.2.1损失函数 7

2.2.2 BP算法 7

2.3 ResNet残差网络 10

2.3.1深度网络的退化问题 10

2.3.2 ResNet解决深度网络退化问题 10

2.4 迁移学习原理 11

2.4.1 深度卷积网络具有可迁移性 11

2.4.2 迁移学习的使用方法 12

第3章TensorFlow深度学习框架 13

3.1 TensorFlow深度学习框架的介绍 13

3.2 TensorFlow及其相关环境的安装 13

3.2.1安装显卡驱动 13

3.2.2 安装CUDA 14

3.2.3 安装CuDNN 14

3.2.4 安装Anaconda 15

3.2.5 使用Anaconda安装TensorFlow2.1 15

第4章 使用TensorFlow搭建并训练模型 17

4.1数据集 17

4.2 图像预处理 17

4.2.1 图片尺寸归一化 17

4.2.2 数据增强 18

4.3模型搭建和训练 18

4.3.1使用ResNet152作为特征提取器进行迁移学习 19

第五章 系统设计实现 23

5.1 工具介绍 23

5.1.1 Python编程语言 23

5.1.2 Django Python Web框架 23

5.2.2 SQLite3数据库 23

5.2系统设计 24

5.2.1 数据流图 24

5.2.2 程序流程 24

5.3数据库设计 25

5.4 识别系统的实现 26

5.4.1数据库实现 26

5.4.2系统实现 27

5.5 程序展示 27

5.5.1图片上传页面 27

5.5.2上传预览 28

5.5.3 识别结果 29

5.5.4 结果分析 32

第六章 总结与展望 34

6.1工作总结 34

6.2 未来展望 34

参考文献 35

致谢 37

第1章 绪论

1.1研究目的及意义

世界上分布在各地的花卉约有45万种,仅在我国就有3万多种,其中月季花、梅花、桃花、牡丹等都是大众熟知的花卉。同时也有大部分的花卉品种是不为大多数人所知的,甚至有一些花卉只有专业的植物学家通过一系列鉴定程序才能鉴别出来[1-3]。花卉识别系统可以让没有相关知识背景的人能够快速识别和了解某种花卉的详细信息。识别系统不仅可以提高植物学工作者的工作效率,还可以提高了大众对花卉的认识水平,在如桑菊、水仙花、郁金香等含有有毒物质的花卉上能起到了警示大众的作用。同时,该系统还可以帮助大众识别和保护珍稀的、不知名的花卉品种,对环境和生物多样性保护有积极的作用。

近年来,机器学习和大数据技术发展迅速,利用卷积神经网络技术实现的图像识别成为研究热点。而在图像识别领域,花卉识别也是一个经典的课题。基于机器学习的花卉识别系统将通过当今广泛使用的互联网技术,准确地识别出花卉的类型,并使其在第一时间被大众识别出来。

1.2国内外研究现状

花卉识别主要通过深度学习来进行识别分类,从2006年至今,深度学习模型在不断发展,从传统的目标检测算法如支持向量机(SVM)、聚类算法等到如今在深度学习中具有代表性的循环神经网络(RNN)、生成对抗网络(GAN)、卷积神经网络(CNN)。

2012年,Hinton及其学生通过AlexNet在ImageNet分类竞赛中将错误率下降到16%[4]。受其鼓舞,近年来,用于图像识别的深度学习模型快速发展,用于花卉分类的方法也越来越多。Liu使用显著性检测算法提取花卉图像中的花卉区域,之后使用卷积神经网络来学习提取的花卉区域的特征,通过在Oxford flower 102数据集上的达到准确率84.02%[5]。Angelova等人首先收集了大量的花卉图片并委托植物学家鉴别,再在4个不同级别提取HOG特征。然后使用局部线性编码的方法将特征编码为8196维全局特征字典。之后完成编码特征的池化,得到80,000维的特征向量,最后通过SVM完成分类[6]。刘园园使用显著图花卉区域选择算法找到到花卉的位置,再以AlexNet为基础,使用支持向量机SVM来训练特征[7]。在众多方法当中,吴迪等人提出了使用迁移学习进行花卉识别分类使用前人训练过的模型进行微调或将其当作一个特征提取器构成卷积神经网络,在Oxford flower 102上达到93.38%的准确率[5]

1.3 研究内容

本文主要的研究工作是基于Python编程语言开发一个花卉识别系统,论文的主要工作如下:

  1. 查阅相关资料,学习卷积神经网络原理、学习迁移学习原理、学习用于图像识别的经典卷积神经网络。
  2. 深入了解TensorFlow2.0深度学习框架,安装配置使用GPU进行深度学习的必需环境。
  3. 使用迁移学习的方法实现多个花卉识别卷积神经网络,比较各个网络的效果,取效果最佳的几个网络作为系统的识别模型。
  4. 使用Django框架和选中的搭建web后端,使用HTML5、CSS3、JavaScript、Booststrap框架等开发前端,使用SQLite3数据库存储花卉数据。
  5. 展示设计成果,并分析出现结果的原因。

1.4 研究难点

在实际环境中,植物的花卉存在着同种花卉不同个体之间的差异性以及不同种花卉之间的相似性。同一种花卉如风铃草有着白色、紫色、粉色等颜色的个体,如图1.1所示,不同种的花卉之间如茶梅和山茶比较相似,如图1.2所示。

请支付后下载全文,论文总字数:22606字

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图