【01】花卉识别-基于tensorflow2.3实现

------------------------------------------------2021年6月18日重大更新--------------------------------------------------------------

目前已经退出bug修复之后的tensorflow2.3物体分类代码,大家可以训练自己的数据集,快来试试吧

csdn教程链接:手把手教你用tensorflow2.3训练自己的分类数据集_CSDN博客

b站视频链接:手把手教你用tensorflow2训练自己的数据集

数据集链接:计算机视觉数据集清单-附赠tensorflow模型训练和使用教程_CSDN博客

代码链接:vegetables_tf2.3: 基于tensorflow2.3开发的水果蔬菜识别系统 (gitee.com)

------------------------------------------------------------------dejahu---------------------------------------------------------------------
花卉识别是卷积神经网络的入门案例,这里我将模型的训练、测试、保存以及使用整合在了一起,至于原理部分,大家可以参考知乎或者B站上的回答,在这里我就不赘述了

【大作业怎么搞01】基于tensorflow2.3的花卉识别程序_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

数据集和模型下载地址

https://download.csdn.net/download/ECHOSON/19687660?spm=1001.2014.3001.5503

一起来玩

qq群:821429104

b站:宋老狗97

git地址:https://gitee.com/song-laogou/Flower_tf2.3

博客地址:https://blog.csdn.net/ECHOSON/article/details/111083808

文件目录

# 数据下载地址 https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz
# 参考代码 https://tensorflow.google.cn/tutorials/images/classification
flower_tensorflow2.0
├─ data_read.py # 数据读取
├─ data_split.py # 数据切分
├─ images  # 图片文件
│    ├─ 123.jpg
│    ├─ init.png
│    ├─ logo.png
│    ├─ target.png
│    ├─ 主页面.png
│    └─ 关于.png
├─ window.py # ui界面
├─ models # 模型
│    ├─ cnn_flower.h5
│    └─ mobilenet_flower.h5
├─ readme.md 
├─ requirements.txt # 安装需求
├─ test_model.py # 模型测试
└─ train_model.py # 模型训练

如何使用

首先你需要git项目到你的本地

确定你的电脑已经安装好了PyQt5、tensorflow2.0以及opencv-python等相关软件,你可以执行下列命令进行安装

cd flower_tensorflow2.3
conda create -n flower_demo 
pip install -r requirements.txt

如果你想要重新训练你的模型,请执行

python train_model.py

如果你想要测试模型的准确率,请执行

python test_model.py

如果你想看看图形化的界面,请执行

python window.py

执行效果

图形化界面
image-20201212161743464

捐助

如果您觉得我的项目帮助了您,您可以给我一点小小的鼓励,您的鼓励将会是我进一步创作的动力!😁😁😁

alipayx

wxpayx

  • 18
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
花卉识别是计算机视觉中的一个重要应用,可以通过图像识别技术自动识别图像中的花卉种类。下面是一个基于TensorFlow 2.3实现花卉识别程序示例。 首先,我们需要准备好训练数据和测试数据。可以使用公开的花卉数据集,例如Oxford 102花卉数据集。这个数据集包含了102种不同的花卉,每种花卉有大约80张图片。可以通过以下链接下载数据集: http://www.robots.ox.ac.uk/~vgg/data/flowers/102/index.html 下载完成后,我们需要将数据集进行处理,将其转换为模型可以处理的形式。可以使用Python中的PIL库进行图片处理,并使用TensorFlow中的ImageDataGenerator类来进行数据增强和批量处理。 ```python import tensorflow as tf from tensorflow.keras.preprocessing.image import ImageDataGenerator # 定义数据增强和预处理函数 train_datagen = ImageDataGenerator( rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) test_datagen = ImageDataGenerator(rescale=1./255) # 加载训练数据和测试数据 train_data = train_datagen.flow_from_directory( 'flower_dataset/train', target_size=(224, 224), batch_size=32, class_mode='categorical') test_data = test_datagen.flow_from_directory( 'flower_dataset/test', target_size=(224, 224), batch_size=32, class_mode='categorical') ``` 接下来,我们可以定义一个卷积神经网络模型来训练我们的数据。可以使用TensorFlow中的Keras API来定义模型。 ```python from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout # 定义一个卷积神经网络模型 model = Sequential() model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(224, 224, 3))) model.add(MaxPooling2D((2, 2))) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(MaxPooling2D((2, 2))) model.add(Conv2D(128, (3, 3), activation='relu')) model.add(MaxPooling2D((2, 2))) model.add(Conv2D(128, (3, 3), activation='relu')) model.add(MaxPooling2D((2, 2))) model.add(Flatten()) model.add(Dense(512, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(102, activation='softmax')) # 编译模型 model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy']) ``` 定义好模型后,我们可以使用fit()方法来训练模型。可以指定训练数据和测试数据,以及一些训练参数,例如批量大小、迭代次数等。 ```python # 训练模型 history = model.fit( train_data, steps_per_epoch=100, epochs=30, validation_data=test_data, validation_steps=50) ``` 训练完成后,我们可以使用模型来进行预测。可以使用predict()方法来对单个图片进行识别,或者使用evaluate()方法来对测试集进行整体评估。 ```python # 对单个图片进行预测 import numpy as np from tensorflow.keras.preprocessing import image img_path = 'flower_dataset/test/daisy/5547758_eea9edfd54_n.jpg' img = image.load_img(img_path, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x /= 255. preds = model.predict(x) print(preds) # 对测试集进行评估 test_loss, test_acc = model.evaluate(test_data, steps=50) print('Test accuracy:', test_acc) ``` 以上就是一个基于TensorFlow 2.3花卉识别程序示例。需要注意的是,这个程序只是一个简单的示例,实际应用中可能需要进行更多的调参和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肆十二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值