littlebot
Published on 2025-04-12 / 1 Visits
0

【源码】基于Keras的水果分类系统

项目简介

本项目是基于Keras框架的水果分类系统,借助卷积神经网络(CNN)技术,主要用于对输入的苹果和香蕉图像进行自动分类,区分出图像中的水果是苹果还是香蕉。

项目的主要特性和功能

  1. 图像分类:运用CNN模型实现对苹果和香蕉图像的分类。
  2. 数据预处理:借助Keras的ImageDataGenerator对图像数据进行预处理,涵盖归一化和数据增强操作。
  3. 模型训练:构建并训练CNN模型,采用二分类交叉熵损失函数和RMSprop优化器。
  4. 模型评估:通过训练过程中的验证集和最终的测试集对模型性能进行评估。
  5. 结果可视化:利用matplotlib库绘制训练过程中的损失和准确率曲线,直观呈现模型的学习效果。

安装使用步骤

1. 环境准备

确保已安装以下Python库: - TensorFlow - Keras - Matplotlib - NumPy

可通过pip安装这些库: bash pip install tensorflow keras matplotlib numpy

2. 数据准备

将苹果和香蕉的图像数据集分为训练集、验证集和测试集,保证每个集中的图像存储在相应的文件夹中。

3. 运行项目

  1. 下载本项目的源码文件。
  2. 在项目根目录下运行主程序文件main.pybash python main.py
  3. 程序会自动进行数据预处理、模型构建、训练、评估和结果可视化。

4. 查看结果

  • 训练过程中的准确率和损失曲线将通过matplotlib显示。
  • 训练完成后,模型将保存为apples_and_bananas_1.h5文件。
  • 可通过加载模型并运行测试代码查看模型在测试集上的分类准确率。

5. 测试模型

加载保存的模型并使用测试集进行预测: ```python import numpy as np import os import tensorflow as tf from keras.preprocessing import image

model = tf.keras.models.load_model('apples_and_bananas_1.h5')

apple_test_dir = './测试集/苹果测试集' banana_test_dir = './测试集/香蕉测试集'

def predict_func(data_dir, label): t = 0 for filename in os.listdir(data_dir): image_path = os.path.join(data_dir, filename) img = image.load_img(image_path, target_size=(150, 150)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) preds = model.predict(x) if preds == label: t += 1 return t / len(os.listdir(data_dir))

predict_result_apple = predict_func(apple_test_dir, 0) predict_result_banana = predict_func(banana_test_dir, 1) print('Apple predicting result:', predict_result_apple) print('Banana predicting result:', predict_result_banana) ```

通过以上步骤,即可成功运行并测试本项目的水果分类系统。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】