基于卷积神经网络实现的水果分类系统

本文讲述从0到1搭建一个完整的水果分类系统,模型使用的是CNN,从模型的训练开始,到模型的预测再到模型丰封装,前后端集成。

  • 1、搭建神经网络模型,模型选择为卷积神经网络,模型结构如下所示:
def model_config():
    model = Sequential()
    model.add(Conv2D(32, (3, 3), activation='relu',
                     kernel_initializer='he_uniform', input_shape=(100, 100, 3)))

    model.add(MaxPooling2D(2, 2))
    model.add(Conv2D(32, (3, 3), activation='relu',
                     kernel_initializer='he_uniform'))

    model.add(MaxPooling2D(2, 2))
    model.add(Conv2D(32, (3, 3), activation='relu',
                     kernel_initializer='he_uniform'))
    model.add(MaxPooling2D(2, 2))
    model.add(Conv2D(32, (3, 3), activation='relu',
                     kernel_initializer='he_uniform'))
    model.add(MaxPooling2D(2, 2))
    model.add(Flatten())
    model.add(Dense(200, activation='relu', kernel_initializer='he_uniform'))
    model.add(Dense(131, activation='softmax'))
    # compile the model
    opt = SGD(lr=0.01, momentum=0.9)
    model.compile(optimizer=opt, loss='categorical_crossentropy',
                  metrics=['accuracy', keras.metrics.TopKCategoricalAccuracy()])
    return model
  • 2、开始模型的训练
    在这里插入图片描述
    3、模型训练结束之后,生成权重后,使用预测脚本去预测图片类别

#加载图片和类别
def start_example():
    # load the image
    img = load_image('./0_100.jpg')
    # load model
    model = tf.keras.models.load_model('./fruits_model20230301.h5')
    # load label_names
    data_loading = load_files(test_dir)
    target_labels = np.array(data_loading['target_names'])
    print(target_labels)
    # print("target labels size: ", len(target_labels)) #131
    # predict the class
    fruit = model.predict_classes(img)
    print(fruit)
    print('predicted fruit: {0}, {1} '.format(
        fruit[0], target_labels[fruit[0]]))


start_example()
  • 3、具体的预测结果如下:
  • 在这里插入图片描述
  • 4、开始搭建前后端页面,使用技术为flask,搭建的框架如下图所示:
    在这里插入图片描述
  • 5开始启动本地Server后,进入Web页面,可进行图片检测
    在这里插入图片描述
  • 6、模型训练过程中的epoch的TensorBoard结果展示图如下所示:

在这里插入图片描述

本篇是基于深度学习水果分类搭建的系统,对图像分类以及前后端学习较大指导意义。如果本篇对您有帮助,关注下博主。需要具体源码或者系统以及技术交流可以邮箱联系:sessioncookies@163.com。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值