【毕业设计】基于卷积神经网络的植物花卉识别系统
系统演示视频:
【毕业设计】基于卷积神经网络的植物花卉分类系统
本项目使用到的技术包括:卷积神经网络(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)工作的主要描述 通过卷积网络实现猫狗图像的识别.首先,在数据集中抽取训练集和测试集:其次,对图像进行预处理和特征提取,对图像数据进行图像增强,将图像从.jpg格式转化 ...
- 基于卷积神经网络的小麦病害识别方法
基于卷积神经网络的小麦病害识别方法 1.研究思路 首先以小麦病害图片资料为基础,利用中值滤波法.直方图阈值法等对图像进行去背景.去噪.病斑分割等预处理形成样本库,然后利用卷积神经网络构建一个具有五层结 ...
- 2022-05-08 基于卷积神经网络ResNet的车型识别(实验)
人工智能应用--基于卷积神经网络ResNet的车型识别 一.实验目的 熟悉ResNet卷积神经网络 熟悉物体检测+识别的整体流程 二.实验内容与记录 在给定的6类车型图片数据库上,使用ResNet18 ...
- 基于卷积神经网络的人脸表情识别应用--AR川剧变脸(二)
本项目将在Android上实现一种通过识别表情类别,从而给人脸戴上不同样式脸谱的AR软件,效果如下: 基于表情识别的脸谱换脸AR安卓APP效果演示 想要实现这样一个软件,核心就是两部分: 1)使用卷积 ...
- 基于卷积神经网络的人脸表情识别应用--AR川剧变脸(一)
1.摘要 本项目将在Android上实现一种通过识别表情类别,从而给人脸戴上不同样式脸谱的AR软件,效果如下: 基于表情识别的脸谱换脸AR安卓APP效果演示 通过深度学习和Keras训练一个人脸表情识 ...
- 基于卷积神经网络的不良地质体识别与分类
在泛函分析中,卷积.旋积或摺积(英语:Convolution)是通过两个函数f 和g 生成第三个函数的一种数学算子,表征函数f 与g经过翻转和平移的重叠部分的面积. 如果将参加卷积的一个函数看作区间的 ...
- 【新技术发布】基于深度神经网络的激光雷达物体识别系统及其嵌入式平台部署
[新技术发布]基于深度神经网络的激光雷达物体识别系统及其嵌入式平台部署 激光雷达可以完成三维空间的测量,具有抗干扰能力强.信息丰富等优点,但受限于数据量大.不规则等难点,基于深度神经网络的激光雷达物体 ...
- 基于tensorflow2.0+opencv的花卉识别系统源码(含数据集)
花卉识别-基于tensorflow2.3实现 完整代码下载地址:基于tensorflow2.0+opencv的花卉识别系统源码( 文件目录 # 数据下载地址 https://storage.googl ...
- 基于卷积神经网络的大豆病害识别
1.研究内容 植物已经成为一种重要的能源,是解决全球变暖问题的基础.然而,植物病害正威胁着这一重要来源的生计.卷积神经网络(CNN)在物体识别和图像分类问题上表现出了卓越的性能(超过了人类).本文介绍 ...
最新文章
- PL/SQL Developer 导出表结构和表数据
- 李永乐线性代数手写笔记-行列式与矩阵
- hihocoder 第113周 Fibonacci(动态规划)
- #pragma once与#ifndef的区别?
- python关联分析引擎_PowerBI x Python 之关联分析(上)
- 机器学习——决策树学习
- 3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息
- 明日亮相!刘作虎曝一加9RT三大绝活:快、稳、省
- matlab中结构体使用方法
- ai google 风格化图像_谷歌 AI 新方法:可提升 10 倍图像识别效率,关键还简单易用...
- TapTap 发布游戏
- npm的“--force“和“--legacy-peer-deps“参数
- 局域网搭建Linux镜像源
- 消费品图像识别|无人新零售背后的商品识别技术
- python解椭圆方程的例题_如何求椭圆方程
- 腾讯重新定义了区块链,这下整个链圈都沸腾了!
- 自动弹窗加QQ群代码
- java value是什么意思_“预期 Value ,发现特质”是什么意思?
- 在线工作坊 | 人工智能之 AI on Azure
- SQLserver 修复数据库