没有合适的资源?快使用搜索试试~ 我知道了~
基于 tensorflow2.3 开发的水果蔬菜识别系统.pdf
5星 · 超过95%的资源 需积分: 5 4 下载量 123 浏览量
2022-10-19
10:18:10
上传
评论 1
收藏 302KB PDF 举报
温馨提示
试读
15页
基于 tensorflow2.3 开发的水果蔬菜识别系统.pdf基于 tensorflow2.3 开发的水果蔬菜识别系统.pdf基于 tensorflow2.3 开发的水果蔬菜识别系统.pdf
资源推荐
资源详情
资源评论
基于
tensorflow2.3
开发的水果蔬菜识别系统
1
.
1
水果识别系统的主要研究内容
(1)tensorflow 是由 google 出品的深度学习框架,2.x 版本的 tensorflow 对
代码进行了重构,使用起来更加简洁方便。本系统使用 tensorflow 训练了一个两
层卷积两层池化的卷积神经网络和一个基于迁移学习的 mobilnet 网络,其中
mobilenet 网络模型准确率高达 97%,可识别[‘土豆’, ‘圣女果’, ‘大白菜’,
‘大葱’, ‘梨’, ‘胡萝卜’, ‘芒果’, ‘苹果’, ‘西红柿’, ‘韭菜’, ‘香
蕉’, ‘黄瓜’]12 种水果蔬菜,并借助 pyqt5 构建了图形化界面,用户可选择
图片上传进行果蔬的识别。
(2)系统流程图如下:
1
.
2
题目研究的工作基础或实验条件
(1)一台 WINDOWS 电脑,配置如下:
处理器 Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz 2.59 GHz
机带 RAM 16.0 GB (15.9 GB 可用)
系统类型 64 位操作系统, 基于 x64 的处理器
(2)PyCharm Community Edition 2021.3.3、python 语言。
1
.
3
数据集描述
模型的训练包含两部分代码,train_mobilnet.py 用来训练 mobilnet 模型,
train_cnn.py 用于训练 cnn 模型,模型训练分为 3 个步骤:数据加载 - 模型加载 -
模型训练和保存。
在程序中包含 getdata.py 来获取数据集,运行后输入对应类别名称可以获
取 60 张或者 120 张同类的图片,下载好的图片会归类在 data 文件夹中。以此来
手动分类数据集。
该程序的数据集分为训练集和测试集。打开对应名称文件夹之后会发现存放
相应的图片,比如香蕉目录下存放的全是香蕉的图片。
其中使用 tf.keras.preprocessing.image_dataset_from_directory 直接从指定的目
录中加载数据集并统一处理为指定的大小。
1
.
4
特征提取过程描述
在 train_cnn.py 文件中创建 cnn 模型,来进行特征提取,其中卷积层负责提
取特征,采样层负责特征选择。卷积核是可以用来提取特征的,图像和卷积核进
行卷积,就可以得到特征值,就是 destination value。卷积核放在神经网络里,就
代表对应的权重(weight),每一个 filter 都是一个 Matrix,每个 Matrix 中的数值
都是网络的参数,需要进行学习后得到。
1
.
5
分类过程描述
在 data_split.py23 文件中,将数据集划分为训练集、验证集和测试集。首先
在目标目录下创建文件夹,然后在 split_path 的目录下创建类别文件夹。最后按
照比例划分数据集,并进行数据图片的复制。
1
.
6
主要程序代码
(
要求必须有注释
)
# -*- coding: utf-8 -*-
# @Time : 2022/5/20 20:29
# @Author : 202120684 赵航
# @Email : 1575048060@qq.com
# @File : test_model.py
# @Software: PyCharm
# @Brief : 模型测试代码,测试会生成热力图,热力图会保存在 results 目录下
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
# 数据加载,分别从训练的数据集的文件夹和测试的文件夹中加载训练集和验证集
def data_load(data_dir, test_data_dir, img_height, img_width, batch_size):
# 加载训练集
train_ds = tf.keras.preprocessing.image_dataset_from_directory(
data_dir,
label_mode='categorical',
seed=123,
image_size=(img_height, img_width),
batch_size=batch_size)
# 加载测试集
val_ds = tf.keras.preprocessing.image_dataset_from_directory(
test_data_dir,
label_mode='categorical',
seed=123,
image_size=(img_height, img_width),
batch_size=batch_size)
class_names = train_ds.class_names
# 返回处理之后的训练集、验证集和类名
return train_ds, val_ds, class_names
# 测试 mobilenet 准确率
def test_mobilenet():
# todo 加载数据, 修改为你自己的数据集的路径
train_ds, test_ds, class_names = data_load("../data/vegetable_fruit/image_data",
"../data/vegetable_fruit/test_image_data",
224, 224, 16)
# todo 加载模型,修改为你的模型名称
model = tf.keras.models.load_model("models/mobilenet_fv.h5")
# model.summary()
# 测试
loss, accuracy = model.evaluate(test_ds)
# 输出结果
print('Mobilenet test accuracy :', accuracy)
test_real_labels = []
test_pre_labels = []
for test_batch_images, test_batch_labels in test_ds:
test_batch_labels = test_batch_labels.numpy()
test_batch_pres = model.predict(test_batch_images)
# print(test_batch_pres)
test_batch_labels_max = np.argmax(test_batch_labels, axis=1)
test_batch_pres_max = np.argmax(test_batch_pres, axis=1)
剩余14页未读,继续阅读
资源评论
- 被要求改名字2023-07-25这份基于tensorflow2.3开发的水果蔬菜识别系统,提供了便捷准确的识别功能,让人们轻松辨识各类水果蔬菜。
- 正版胡一星2023-07-25总体而言,这份文件不仅介绍了水果蔬菜识别系统的实现,还强调了其在实际应用中的重要性,对于学习相关领域的研究人员有很高的参考价值。
- 葡萄的眼泪2023-07-25文件中还提供了开发所需的数据集处理方法和模型训练流程,具有很强的实用性。
- 琉璃纱2023-07-25文件详细介绍了该系统的开发背景和工作原理,对于初学者来说,非常适合了解深度学习在图像识别中的应用。
- 南小鹏2023-07-25使用简洁明了的图文结合方式,使得理解起来更加直观,对于不熟悉技术的读者也能够轻松阅读。
李逍遥敲代码
- 粉丝: 2999
- 资源: 277
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功