系统演示视频:

【毕业设计】基于卷积神经网络算法的中草药识别系统演示

本项目采用卷积神经网络算法训练了中草药识别模型。使用到的技术包括:卷积神经网络(CNN)算法,Django框架搭建网站,CNN模型调优。

本作品内容包括:

1.相关数据集

2.网站所有源代码

3.使用中草药数据集训练卷积神经网络模型。

4.从零部署网站的帮助文档。

作品内容截图如下:

数据集展示截图:

帮助文档:

模型训练代码:

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

网站结构(基于python的Django框架实现):

【毕业设计】基于卷积神经网络的中草药识别系统相关推荐

  1. 毕业设计-基于卷积神经网络的指针式仪表识别系统

    目录 前言 课题背景和意义 实现技术思路 一.仪表的识别系统 二.实验及结果分析 实现效果图样例 最后 前言

  2. python人脸识别系统界面设计_基于卷积神经网络的人脸识别系统的设计(Python)

    基于卷积神经网络的人脸识别系统的设计(Python)(论文10000字,外文翻译,参考代码,流程图,人脸图像库) 摘要:随着社会的进步与发展,个人信息的保护变得十分重要.传统的密码保护方式已经不再满足 ...

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

    目录 前言 课题背景和意义 实现技术思路 一.LeNet-5 卷积神经网络模型 二.设计思路 三.实验及结果分析 四.总结 实现效果图样例 最后 前言

  4. 毕业设计-基于BP神经网络的水果识别系统-matlab

    目录 前言 课题背景和意义 实现技术思路 一.图像识别基本理论 二.水果识别器的设计 三.仿真结果及分析 部分源代码 实现效果图样例 最后 前言

  5. 【图像识别】基于卷积神经网络实现手写汉字识别附matlab代码

    1 内容介绍 1.1. 数据集的获取 数据集的获取来自模式识别国家重点实验室共享,这个不解释直接上网址http://www.nlpr.ia.ac.cn/databases/download/featu ...

  6. 基于卷积神经网络的人脸识别算法

    摘要:近年来,随着科学技术的不断发展,人脸识别技术日渐成熟,使得人脸识别技术的使用率不断增大.例如:门禁.ATM机.公安系统以及新兴起的人机交互等领域,都应用到了人脸识别系统.在人脸识别研究领域中,深 ...

  7. PyTorch实现基于卷积神经网络的面部表情识别

    基于卷积神经网络的面部表情识别(Pytorch实现)----台大李宏毅机器学习作业3(HW3) 一.项目说明 给定数据集train.csv,要求使用卷积神经网络CNN,根据每个样本的面部图片判断出其表 ...

  8. 基于卷积神经网络的验证码识别(准确率87.5%+)

    目录 一.任务背景与目标概述 二.卷积神经网络简介 三.方案设计及实现过程 四.实验结果及分析与讨论 五.结论 实现代码 一.任务背景与目标概述 随着现代网络技术的飞速发展和提高,改善了我们的生活质量 ...

  9. 基于卷积神经网络的笑脸识别

    期末大作业 综合实验 实验课程名称:人工智能与机器学习A 学院:信息科学与工程学院 班级:物联网1901 姓名:许俊 学号:631907090127 实验类型:综合性,设计性 指导教师:娄路 开课时间 ...

最新文章

  1. fasttext的基本使用 java 、python为例子
  2. 怎么给域账号映射服务器,如何给每个域用户映射网络驱动器?
  3. 使用Filter,Listener 时无法注入Bean的解决方法
  4. npm设置仓库register
  5. 不会点SQLite,都不好意思说自己是开发的 1
  6. Java中this的作用(简单说明)
  7. word2016中的毕设论文——页眉页脚相关设置及页眉横线的删除
  8. 父子组件传值——静态传值、动态传值
  9. dcos - 安装docker
  10. FPS类游戏的逆向分析通用方法与C++逆向功能开发详解
  11. 如何进行APP抓包 ? - 学习/实践
  12. .COMBO勒索病毒解密恢复 .xx4444 勒索病毒数据库恢复 .ALCO勒索病毒解密恢复
  13. linux命令 du -h --max-depth=0,查看当前目录下文件大小
  14. fflush函数作用浅析
  15. 小飞升值记——(21)
  16. 香港个人银行开户会问什么问题,怎么回答?
  17. 实习日志 - 第二天
  18. 2020-12-03QQ通讯录
  19. 判断两个单链表是否相交--java实现
  20. AIX系统更换本地硬盘

热门文章

  1. Educational Codeforces Round 114 (Rated for Div. 2) 个人题解
  2. 可以不用在应用中实现苹果登录了
  3. Java笔记:泛型、限定通配符与非限定通配符
  4. 解决ceph 100.000% pgs not active
  5. java框架 token_Java安全框架(三):JWT(Json Web Token)
  6. 两相步进电机FOC矢量控制Simulink仿真模型 采用针对两相步进电机的SVPWM控制算法,实现FOC矢量控制,DQ轴解耦控制
  7. 使用xUnit.net 对 .net core 进行单元测试
  8. 【历史上的今天】10 月 25 日:Windows XP 诞生;任正非出生;图灵奖编程语言先驱诞生
  9. 中小企业如何实施知识管理策略?
  10. 创意黑板彩色粉笔PPT模板