大数据毕设项目 python+深度学习+opencv实现植物识别算法系统

本文介绍了如何使用VGG-Net和InceptionV3深度学习模型进行植物识别,包括VGG-Net的优势、网络搭建、TornadoWeb服务器的应用、数据预处理和模型训练过程。作者还提供了项目源码链接,供读者参考和实践。
摘要由CSDN通过智能技术生成


0 前言

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 基于深度学习的植物识别算法研究与实现

在这里插入图片描述

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

🧿 选题指导, 项目分享:

https://gitee.com/yaa-dc/warehouse-1/blob/master/python/README.md

2 相关技术

2.1 VGG-Net模型

Google DeepMind公司研究员与牛津大学计算机视觉组在2014年共同研发出了一种全新的卷积神经网络–VGG-Net。在同年举办的ILSVRC比赛中,该网络结构模型在分类项目中取得了十分出色的成绩,由于其简洁性和实用性,使得其在当时迅速,飞快地成为了最受欢迎的卷积神经网络模型。VGG-Net卷积神经网络在近年来衍生出了A-E七种不同的层次结构,本次研究使用其中的D结构,也就是VGG-16Net结构,该结构中包含了13个卷积层,5个池化层和3个全连接层。针对所有的卷积层,使用相同的5x5大小的卷积核,针对所有的池化层,使用相同的3x3大小的池化核。VGG-Net结构如图所示。

在这里插入图片描述

2.2 VGG-Net在植物识别的优势

在针对植物识别问题上,VGG-Net有着一些相较于其他神经网络的优势,主要包括以下几点:

(1) 卷积核,池化核大小固定

网络中所有的卷积核大小固定为3x3,所有的池化核大小固定为5x5。这样在进行卷积和池化操作的时候,从数据中提取到的特征更加明显,同时在层与层的连接时,信息的丢失会更少,更加方便后续对于重要特征的提取和处理。

(2) 特征提取更全面

VGG-Net网络模型中包含了13个卷积层。卷积层数目越多,对于特征的提取更加的全面。由于需要对于植物的姿态、颜色等进行判定,植物的特征较多,需要在提取时更加的全面,细致,才有可能得到一个更加准确的判定。VGG-Net符合条件。

在这里插入图片描述

(3) 网络训练误差收敛速度较快

VGG-Net网络在训练时收敛速度相对较快,能够较快地得到预期的结果。具有这一特点的原因有两个,一个是网络中每一个卷积层和池化层中的卷积核大小与池化核大小固定,另一个就是对于各个隐藏层的参数初始化方法使用专门针对ReLU激活函数的Kaiming正态初始化方法。


3 VGG-Net的搭建

本次研究基于Pytorch深度学习框架进行网络的搭建,利用模块化的设计思想,构建一个类,来对于整个的网络进行结构上的封装。这样搭建的好处是可以隐藏实现的内部细节,提高代码的安全性,增强代码的复用效率,并且对于一些方法,通过在内部集成,可以方便之后对于其中方法的调用,提升代码的简洁性。 在网络搭建完成后,将数据集传入网络中进行训练,经过一段时间后即可得到植物识别的分类识别结果。

3.1 Tornado简介

Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架,由FriendFeed公司在自己的网站FriendFeed中使用,被Facebook收购以后框架在2009年9月以开源软件形式开放给大众。

(1) 优势

  • 轻量级web框架
  • 异步非阻塞IO处理方式
  • 出色的抗负载能力
  • 优异的处理性能,不依赖多进程/多线程,一定程度上解决C10K问题
  • WSGI全栈替代产品,推荐同时使用其web框架和HTTP服务器

(2) 关键代码

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render("index.html")

    def post(self):
        keras.backend.clear_session()
        img = Image.open(BytesIO(self.request.files['image'][0]['body']))
        img = img
        b_img = Image.new('RGB', (224, 224), (255, 255, 255))
        size = img.size
        if size[0] >= size[1]:
            rate = 224 / size[0]
            new_size = (224, int(size[1] * rate))
            img = img.resize(new_size, Image.ANTIALIAS
                             ).convert("RGB")
            b_img.paste(img, 
【资源说明】 人工智能课程大作业-python基于深度学习的英文文本分类源码+项目说明+详细注释(含数据集).zip 数据集以及路径介绍: ``` en_text //下载后的数据集放在这里 ├── unsup //未分类的英文本文,将是本次任务的预测数据 ├── test //测试集数据集,其中包含pos和neg两类数据 ├── pos └── neg └── train //训练集数据集,其中包含pos和neg两类数据 ├── pos └── neg ├── train.py //训练脚本 ├── infer.py //预测脚本 ├── model_path //模型保存路径,执行train.py生成 ├── 500 //默认每500步和最后一步保存一次,名称后缀不用管 └── 1000 ├── net.py //网络结构 ├── save_pre.txt //执行infer.py生成的预测结果 ├── word2id_dict //执行train.py生成的单词对照表 ``` 训练环境关键包依赖 * paddlepaddle-gpu == 1.8.4.post97 执行方式(注意,以下脚本有生成文件指令,请附带sudo权限): ``` 1.开始训练 python train.py 说明:此处会调用readdata.py中的函数,生成字典文件‘word2id_dict’ 训练的默认超参数均在train.py中可以查看 模型会保存至model_path路径中 因GPU设备环境限制可以将代码中的use_gpu = True改为False,采用cpu训练 2.评估网络模型 python infer.py 说明:infer.py中的model_path是指定的模型文件路径,例如默认的为:model_path = 'model_path/500' 预测的文件会生成至save_path文件中,生成为txt文件 因GPU设备环境限制可以将代码中的use_gpu = True改为False,采用cpu训练 ``` 训练部分迭代过程展示: ``` step 950, loss 0.002 step 960, loss 0.001 step 970, loss 0.000 the acc in the test set is 0.783 ``` 预测过程展示: ``` 预测结果保存路径: save_pre.txt 过程较慢,耐心等待,有空点赞以及留言等,谢谢各位啦~ 保存进度: 1 % 保存进度: 2 % 保存进度: 3 % 保存进度: 4 % ``` 预测结果部分展示: ``` en_text/unsup/42446_0.txt------->0 en_text/unsup/3356_0.txt------->0 en_text/unsup/5675_0.txt------->0 en_text/unsup/44521_0.txt------->1 en_text/unsup/12931_0.txt------->1 en_text/unsup/719_0.txt------->0 en_text/unsup/37765_0.txt------->0 ``` 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值