项目简介
本项目是基于Keras框架的水果分类系统,借助卷积神经网络(CNN)技术,主要用于对输入的苹果和香蕉图像进行自动分类,区分出图像中的水果是苹果还是香蕉。
项目的主要特性和功能
- 图像分类:运用CNN模型实现对苹果和香蕉图像的分类。
- 数据预处理:借助Keras的
ImageDataGenerator
对图像数据进行预处理,涵盖归一化和数据增强操作。 - 模型训练:构建并训练CNN模型,采用二分类交叉熵损失函数和RMSprop优化器。
- 模型评估:通过训练过程中的验证集和最终的测试集对模型性能进行评估。
- 结果可视化:利用matplotlib库绘制训练过程中的损失和准确率曲线,直观呈现模型的学习效果。
安装使用步骤
1. 环境准备
确保已安装以下Python库: - TensorFlow - Keras - Matplotlib - NumPy
可通过pip安装这些库:
bash
pip install tensorflow keras matplotlib numpy
2. 数据准备
将苹果和香蕉的图像数据集分为训练集、验证集和测试集,保证每个集中的图像存储在相应的文件夹中。
3. 运行项目
- 下载本项目的源码文件。
- 在项目根目录下运行主程序文件
main.py
:bash python main.py
- 程序会自动进行数据预处理、模型构建、训练、评估和结果可视化。
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】