系统演示视频:

【毕业设计】基于卷积神经网络的植物花卉分类系统

本项目使用到的技术包括:卷积神经网络(CNN)算法,Django框架搭建网站,CNN模型调优。

项目包括四部分:

1.数据集

2.模型训练代码

3.web网站部署代码

4.帮助文档等其他文档说明等

数据集:包括20种植物花卉图像的数据。

用数字图像处理的方法对图像做过扩充,每类图片大概在1000-2000张左右。

模型训练代码:

卷积神经网络模型训练代码,用于训练植物花卉识别模型,以实现多个经典的卷积神经网络。

模型训练部分代码:

from tensorflow.keras.applications.resnet50 import ResNet50
from keras.models import Model, load_model
from keras.layers import Dense, GlobalAveragePooling2D, Dropout
from keras.preprocessing.image import ImageDataGenerator
import os# verbose:日志显示
# verbose = 0 为不在标准输出流输出日志信息
# verbose = 1 为输出进度条记录
# verbose = 2 为每个epoch输出一行记录
# 注意: 默认为 1
verbose = 1
# NB_CLASS: 分类的类别数量
NB_CLASS = 40
IM_WIDTH = 224
IM_HEIGHT = 224
batch_size = 32
EPOCH = 30
# 数据集路径
train_root = '..\\dataset\\data\\final\\train'
validation_root = '..\\dataset\\data\\final\\test'
test_root = '..\\dataset\\data\\final\\test'# train data
train_datagen = ImageDataGenerator(width_shift_range=0.1,height_shift_range=0.1,shear_range=0.1,zoom_range=0.1,horizontal_flip=True,rescale=1. / 255
)
train_generator = train_datagen.flow_from_directory(train_root,target_size=(IM_WIDTH, IM_HEIGHT),batch_size=batch_size,shuffle=True
)# vaild data
vaild_datagen = ImageDataGenerator(width_shift_range=0.1,height_shift_range=0.1,shear_range=0.1,zoom_range=0.1,horizontal_flip=True,rescale=1. / 255
)
vaild_generator = train_datagen.flow_from_directory(validation_root,target_size=(IM_WIDTH, IM_HEIGHT),batch_size=batch_size,
)# test data
test_datagen = ImageDataGenerator(rescale=1. / 255
)
test_generator = train_datagen.flow_from_directory(test_root,target_size=(IM_WIDTH, IM_HEIGHT),batch_size=batch_size,
)# 构建不带分类器的预训练模型
if os.path.exists("ResNet50-0.h5"):model = load_model('ResNet50-0.h5')# 开放所有的卷积层# for layer in base_model.layers:#     layer.trainable = True# 迁移学习,只训练最后10层for layer in model.layers:layer.trainable = Falsefor i in range(-8, 0):model.layers[i].trainable = True
else:base_model = ResNet50(weights='imagenet', include_top=False)# 添加全局平均池化层x = base_model.outputx = GlobalAveragePooling2D()(x)# 添加一个全连接层x = Dense(1024, activation='relu')(x)x = Dropout(0.5)(x)# 添加一个分类器,假设我们有NB_CLASS个类predictions = Dense(NB_CLASS, activation='softmax')(x)# 构建我们需要训练的完整模型model = Model(inputs=base_model.input, outputs=predictions)# 开放所有的卷积层# for layer in base_model.layers:#     layer.trainable = True# 迁移学习,只训练最后8层for layer in model.layers:layer.trainable = Falsefor i in range(-8, 0):model.layers[i].trainable = True# 编译模型
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['acc'])
print('Model Compiled')
model.summary()# 在数据集上训练
model.fit_generator(train_generator, validation_data=vaild_generator, epochs=EPOCH,steps_per_epoch=train_generator.n / batch_size, validation_steps=vaild_generator.n / batch_size, verbose=verbose)save_path = "ResNet50-"
for i in range(100):if not os.path.exists(save_path + str(i) + '.h5'):model.save(save_path + str(i) + '.h5')break

web部署代码:

采用python的django框架对CNN模型进行部署,用网站实现对植物花卉的识别。

最终效果:

4.帮助文档

【毕业设计】基于卷积神经网络的植物花卉识别系统相关推荐

  1. 基于卷积神经网络的猫狗识别系统的设计与实现

    1.1 题目的主要研究内容 (1)工作的主要描述 通过卷积网络实现猫狗图像的识别.首先,在数据集中抽取训练集和测试集:其次,对图像进行预处理和特征提取,对图像数据进行图像增强,将图像从.jpg格式转化 ...

  2. 基于卷积神经网络的小麦病害识别方法

    基于卷积神经网络的小麦病害识别方法 1.研究思路 首先以小麦病害图片资料为基础,利用中值滤波法.直方图阈值法等对图像进行去背景.去噪.病斑分割等预处理形成样本库,然后利用卷积神经网络构建一个具有五层结 ...

  3. 2022-05-08 基于卷积神经网络ResNet的车型识别(实验)

    人工智能应用--基于卷积神经网络ResNet的车型识别 一.实验目的 熟悉ResNet卷积神经网络 熟悉物体检测+识别的整体流程 二.实验内容与记录 在给定的6类车型图片数据库上,使用ResNet18 ...

  4. 基于卷积神经网络的人脸表情识别应用--AR川剧变脸(二)

    本项目将在Android上实现一种通过识别表情类别,从而给人脸戴上不同样式脸谱的AR软件,效果如下: 基于表情识别的脸谱换脸AR安卓APP效果演示 想要实现这样一个软件,核心就是两部分: 1)使用卷积 ...

  5. 基于卷积神经网络的人脸表情识别应用--AR川剧变脸(一)

    1.摘要 本项目将在Android上实现一种通过识别表情类别,从而给人脸戴上不同样式脸谱的AR软件,效果如下: 基于表情识别的脸谱换脸AR安卓APP效果演示 通过深度学习和Keras训练一个人脸表情识 ...

  6. 基于卷积神经网络的不良地质体识别与分类

    在泛函分析中,卷积.旋积或摺积(英语:Convolution)是通过两个函数f 和g 生成第三个函数的一种数学算子,表征函数f 与g经过翻转和平移的重叠部分的面积. 如果将参加卷积的一个函数看作区间的 ...

  7. 【新技术发布】基于深度神经网络的激光雷达物体识别系统及其嵌入式平台部署

    [新技术发布]基于深度神经网络的激光雷达物体识别系统及其嵌入式平台部署 激光雷达可以完成三维空间的测量,具有抗干扰能力强.信息丰富等优点,但受限于数据量大.不规则等难点,基于深度神经网络的激光雷达物体 ...

  8. 基于tensorflow2.0+opencv的花卉识别系统源码(含数据集)

    花卉识别-基于tensorflow2.3实现 完整代码下载地址:基于tensorflow2.0+opencv的花卉识别系统源码( 文件目录 # 数据下载地址 https://storage.googl ...

  9. 基于卷积神经网络的大豆病害识别

    1.研究内容 植物已经成为一种重要的能源,是解决全球变暖问题的基础.然而,植物病害正威胁着这一重要来源的生计.卷积神经网络(CNN)在物体识别和图像分类问题上表现出了卓越的性能(超过了人类).本文介绍 ...

最新文章

  1. PL/SQL Developer 导出表结构和表数据
  2. 李永乐线性代数手写笔记-行列式与矩阵
  3. hihocoder 第113周 Fibonacci(动态规划)
  4. #pragma once与#ifndef的区别?
  5. python关联分析引擎_PowerBI x Python 之关联分析(上)
  6. 机器学习——决策树学习
  7. 3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息
  8. 明日亮相!刘作虎曝一加9RT三大绝活:快、稳、省
  9. matlab中结构体使用方法
  10. ai google 风格化图像_谷歌 AI 新方法:可提升 10 倍图像识别效率,关键还简单易用...
  11. TapTap 发布游戏
  12. npm的“--force“和“--legacy-peer-deps“参数
  13. 局域网搭建Linux镜像源
  14. 消费品图像识别|无人新零售背后的商品识别技术
  15. python解椭圆方程的例题_如何求椭圆方程
  16. 腾讯重新定义了区块链,这下整个链圈都沸腾了!
  17. 自动弹窗加QQ群代码
  18. java value是什么意思_“预期 Value ,发现特质”是什么意思?
  19. 在线工作坊 | 人工智能之 AI on Azure
  20. SQLserver 修复数据库

热门文章

  1. mysql通过配置文件进行优化
  2. 快递查询单号查询追踪,一键查询全部物流
  3. 猿人学第一题超详细-JS逆向过程
  4. Redis上踩过的一些坑-美团
  5. 风口解析 | 现代食品 | 005 | 高质量食品供应链
  6. LED通信的ID识别报告
  7. BIM技术在家装中有5大应用,您知道吗?
  8. 微信小程序(6)说说微信小程序的支付流程?
  9. 【数据分享】我国地级市绿地利用现状数据(9个指标\Shp格式)
  10. 期股和原始股的区别?