中草药识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型

news2024/11/15 11:46:52

一、介绍

中草药识别系统。本系统基于TensorFlow搭建卷积神经网络算法(ResNet50算法)通过对10中常见的中草药图片数据集(‘丹参’, ‘五味子’, ‘山茱萸’, ‘柴胡’, ‘桔梗’, ‘牡丹皮’, ‘连翘’, ‘金银花’, ‘黄姜’, ‘黄芩’)进行训练,得到一个识别精度较高的H5格式模型文件,然后基于Django开发可视化的Web网页操作界面,实现用户上传一张图片识别其名称。

二、效果图片展示

img_05_20_15_52_04

img_05_20_15_52_17

img_05_20_15_52_34

三、演示视频 and 代码 and 安装

地址:https://www.yuque.com/ziwu/yygu3z/fqkwp6aa2ely3tpx

四、TensorFlow介绍

TensorFlow是一个由Google开发的开源机器学习库,广泛应用于各种人工智能领域,特别是在图像识别技术方面表现出色。它支持多种语言接口,其中Python是最常用的一种。TensorFlow提供了灵活且强大的工具集,可以用来开发复杂的图像识别模型,如卷积神经网络(CNN)。
在图像识别方面,TensorFlow的几个主要特点包括:

  1. 高性能计算支持:TensorFlow可以利用GPU和TPU进行高效的数值计算,极大地加速了模型的训练和推断过程。
  2. 灵活的模型构建:TensorFlow提供了多种构建模型的方式,包括顺序模型、函数式API以及低级API,使得开发者能够根据需要灵活选择。
  3. 丰富的预训练模型和资源:通过TensorFlow Hub,用户可以访问大量的预训练模型,这些模型可以被用来进行迁移学习,显著降低开发新模型的时间和资源消耗。
  4. 强大的社区和生态系统:作为一个由Google支持的项目,TensorFlow拥有广泛的开发者社区和生态系统,提供丰富的教程、工具和库来支持开发者。

下面是使用TensorFlow构建一个简单的CNN模型来分类CIFAR-10数据库中的图像。CIFAR-10是一个常用的图像分类数据集,包含60000张32x32的彩色图像,分为10个类别。

import tensorflow as tf
from tensorflow.keras import layers, models
import numpy as not

# 加载CIFAR-10数据集
(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.cifar10.load_data()

# 数据预处理,归一化
train_images, test_images = train_images / 255.0, test_images / 255.0

# 构建模型
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10))

# 编译模型
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

# 训练模型
history = model.fit(train_images, train_labels, epochs=10, 
                    validation_data=(test. images, test_labels))

# 评估模型
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print(f"Test accuracy: {test_acc}")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1717570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我给线程池管理框架hippo4j找bug

1 虚拟机参数不生效 hippo4j的docker启动脚本位于 docker/docker-startup.sh 。从下图可以看到 JAVA_OPT放在了jar包名 hippo4j-server.jar之后,而只有项目参数才放在jar包名之后。 实际上这里JAVA_OPT中包含虚拟机参数,而虚拟机参数要放在jar包名之前…

windows配置dns访问git , 加快访问速度保姆级教程

设置 DNS 访问 Git 需要修改电脑的 DNS 配置。下面是具体的操作流程: 第一步:打开命令提示符或终端窗口 在 Windows 系统中,可以按下 Win R 组合键,然后输入 “cmd”,按下 Enter 键打开命令提示符窗口。在 macOS 或 …

【tomcat 源码分析总结】

文章目录 tomcat官网路径目录结构介绍:Tomcat 系统架构 和 原理剖析http 的请求的处理过程 Tomcat 请求处理大致过程 tomcat官网路径 目录结构介绍: confserver.xml 端口的指定tomcat-users.xml 角色web.xml : tomcat 全局的xmllogging.properties 日志…

深入剖析 Kubernetes 原生 Sidecar 容器

1 Sidecar 容器的概念 sidecar 容器的概念在 Kubernetes 早期就已经存在。一个明显的例子就是 2015 年的这篇 Kubernetes 博客文章,其中提到了 sidecar 模式。多年来,sidecar 模式在应用程序中变得越来越普遍,使用场景也变得更加多样化。 其…

华为官网的自助申诉

代码&#xff1a;如下 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document</title> …

乐观锁 or 悲观锁 你怎么选?

你有没有听过这样一句话&#xff1a;悲观者正确&#xff0c;乐观者成功​。那么今天我来分享下什么是乐观锁​和悲观锁。 乐观锁和悲观锁有什么区别&#xff0c;它们什么场景会用 乐观锁 乐观锁基于这样的假设&#xff1a;多个事务在同一时间对同一数据对象进行操作的可能性很…

Qt图像处理技术九:得到QImage图像的灰度直方图

效果 原理 得到灰度化值&#xff0c;将灰度化的值带入0-255内&#xff0c;增加&#xff0c;得到可视化图形 源码 // 绘制直方图 QImage drawHistogram(const QImage &image) {QVector<int> histogram(256, 0);// 计算图像的灰度直方图for (int y 0; y < image…

【linux】在linux操作系统下快速熟悉开发环境并上手开发工具——体验不一样的开发之旅

个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 祝福语&#xff1a;愿你拥抱自由的风 目录 vim编辑器 Linux编译器&#xff1a;gcc/g使用 gcc和g的选项 编译过程 动静态库的链接 Linux项目的自动化构建 生成可执行程序 清理可执行程序 Linux调试器-gdb使用 git和git…

【嵌入式硬件】DRV8874电机驱动

目录 1 芯片介绍 1.1 特性简介 1.2 引脚配置 1.3 最佳运行条件 2 详细说明 2.1 PMODE配置控制模式 2.1.1 PH/EN 控制模式 2.1.2 PWM 控制模式 2.1.3 独立半桥控制模式 2.2 电流感测和调节 2.2.1 IPROPI电流感测 2.2.2 IMODE电流调节 3.应用 3.1设计要求 3.2 设计…

C# FTP/SFTP 详解及连接 FTP/SFTP 方式示例汇总

文章目录 1、FTP/SFTP基础知识FTPSFTP 2、FTP连接示例3、SFTP连接示例4、总结 在软件开发中&#xff0c;文件传输是一个常见的需求。尤其是在不同的服务器之间传输文件时&#xff0c;FTP&#xff08;文件传输协议&#xff09;和SFTP&#xff08;安全文件传输协议&#xff09;成…

Scheduling Game Event

在游戏中管理事件&#xff1a;动画更新、对象碰撞等&#xff0c;如果没有清晰的理解事件是如何被组织和执行的&#xff0c;那么这将是一项艰巨的任务。这篇精华将解释调度器如何为你的游戏框架提供组织性和灵活性。 随着电脑游戏的日益复杂&#xff0c;实时事件和模拟几乎在今…

接口测试之XML响应断言

目录 XPath 基本语法XML 响应结果解析XML 响应结果断言 XML 响应数据 如何提取 AddResult 中的值&#xff1f; <soap:Body><AddResponse xmlns"http://tempuri.org/"><AddResult>4</AddResult></AddResponse> </soap:Body> …

VB6 MQTT为什么在物联网应用中使用 MQTT 而不是 HTTP?

有需要VBA,VB6,VB.NET等方面的MQTT的可以找我 一、MQTT简介 MQTT被广泛用于物联网(IoT:Internet of Things)领域&#xff0c;其中大量的设备需要进行实时通信和数据交换。它采用了一种发布/订阅(publish/subscribe)模型&#xff0c;其中消息的发送者&#xff08;发布者&#…

CobaltStrike基本渗透

目录 CobaltStrike简介 主要功能&#xff1a; 使用注意&#xff1a; 在使用CobaltStrike进行渗透测试时&#xff0c;务必遵守法律法规&#xff0c;并获得合法授权。 CobaltStrike安装 前提 安装 服务端安装 windows安装 CS基本使用 监听器配置 一些基本的攻击…

C++/C 线性插值

插值 插值&#xff0c;是根据已知的数据序列&#xff08;可以理解为你坐标中一系列离散的点&#xff09;&#xff0c;找到其中的规律&#xff0c;然后根据找到的这个规律&#xff0c;来对其中尚未有数据记录的点 应用 对缺失的数据进行补偿对图像进行放大缩小 通用公式 如上…

小白跟做江科大32单片机之按键控制LED

原理部分 1.LED部分使用的是这样的连接方式 2.传感器模块的电路图 滤波电容如果接地&#xff0c;一般用于滤波&#xff0c;在分析电路时就不用考虑。下面这个电路就是看A端和B端哪端的拉力大&#xff0c;就能把电压值对应到相应的电压值 比较器部分 如果A端电压>B端电压&am…

【MySQL】表的连接和复合查询

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;MySQL 目录 &#x1f449;&#x1f3fb;连接JOIN&#x1f449;&#x1f3fb;子查询&#x1f449;&#x1f3fb;合并查询 &#x1f449;&#x1f3fb;连接JOI…

【算法】位运算算法——消失的两个数字(困难)

题解&#xff1a;消失的两个数字(位运算算法) 目录 1.题目2.题解3.示例代码如下4.总结 1.题目 题目链接&#xff1a;LINK 2.题解 本题要求时间复杂度O(N),空间复杂度O(1),分别否了我们 排序遍历 和 哈希数组 的想法。想要在规定时间/空间复杂度内完成本题&#xff0c;需要借…

辅导男朋友转算法岗第1天|tokenizer

文章目录 LLM训练流程LLM中的tokenizersBPEWordPieceUnigramSentencePiece&#xff08;使用BBPE或Unigram&#xff09; LLM训练流程 【大语言模型LLM基础之Tokenizer完全介绍-哔哩哔哩】 https://b23.tv/2kdTKxf LLM中的tokenizers 三种不同分词粒度的Tokenizers word-based…

python 获取网页乱码怎么解决

在使用python爬取网页时&#xff0c;经常会遇到乱码问题&#xff0c;一旦遇到乱码问题&#xff0c;就很难得到有用的信息。本人遇到乱码问题&#xff0c;一般有以下几个方式&#xff1a; 1、查看网页源码中的head标签&#xff0c;找到编码方式&#xff0c;例如&#xff1a; 可…