使用Vue+Python基于卷积神经网络前后端分离实现蔬菜种类预测系统

news2025/1/18 8:44:40

使用Vue+Python基于卷积神经网络前后端分离实现蔬菜种类预测系统

一、实现效果

1、种类预测界面

在这里插入图片描述

2、数据处理分析界面

在这里插入图片描述

3、网络模型界面

在这里插入图片描述

4、结果分析界面

在这里插入图片描述

二、需求分析

用户通过上传待预测图片到系统,系统预测出该图片对应的蔬菜种类,并且提示用户预测信息。系统需要对预测模型、数据处理过程以及结果预测分析,并将分析的结果反馈用户,方便用户查看。

三、主要设计

1、基本要求

该系统以卷积神经网络为模型,前端界面使用Vue实现,FastApi为后端服务器,实现水果品种分类预测。前端通过上传待预测图片到服务器后,利用已经训练好的模型,预测该图片对应蔬菜品种,准确率能达到90%。系统还实现模型架构分析、数据处理分析以及结果分析功能。

2、数据预处理分析

该模型数据集为生活中常见12类蔬菜图片,对应种类模型预测界面均有简介。图片通过上网爬取,每类图片大约有400多张,每张图片均为JPG格式图片。
在这里插入图片描述

数据集处理包含以下特点:

  • 从数据集中随机挑选一部分做测试集,训练集测试集比例为9:1
  • 数据集文件夹子文件夹名称作为键,以递增数字为值,建立类别字典
  • 将训练集、测试集中图片位置与对应类别分别存入文本中,便于图片读取
  • 网络输入为128*128,对每张图片做归一化处理

3、网络模型

卷积层与池化层

  • 网络模型中,图像输入大小为128x128,维度为三维
  • 第1个卷积层卷积核大小为5x5,维度为32维,经过第1个卷积块卷积后,输出图像为124x124x32;在卷积层后经过最大池化,输出图像为62x62x32
  • 第2个卷积层卷积核大小为3x3,维度为64维, 经过第2个卷积块卷积后,输出图像为60x60x64;在卷积层后经过最大池化,输出图像为30x30x64
  • 第3个卷积层卷积核大小为3x3,维度为64维,经过第1个卷积块卷积后,输出图像为28x28x64;在卷积层后经过最大池化,输出图像为14x14x64

全连接层

  • 第一个全连接层为2048
  • 第二个全连接层为512
  • 最后输出结果经过softMax函数回归,得到12个种类可能概率

激活函数

Relu函数表达式为f(x)=max(0,x)。作为激活函数,relu计算简单,更加高效,速度快;在优化时,不像Sigmoid型函数的两端饱和(两端的梯度都接近0), ReLU函数为左饱和函数,且在x> 0 时导数为1,而且导数也好求,在一定程度上能解决梯度消失的问题,加速梯度下降的收敛速度。
在这里插入图片描述

损失函数-交叉熵损失函数

  • 交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异
  • 交叉熵的值越小,模型预测效果就越好
  • 熵经常搭配softmax使用,将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失

四、详细设计

CNN 在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力。

卷积网络执行的是监督训练,所以其样本集是由形如:(输入向量,理想输出向量)的向量对构成的。所有这些向量对,都应该是来源于网络即将模拟系统的实际“运行”结构,它们可以是从实际运行系统中采集来。

1)参数初始化:
在开始训练前,所有的权都应该用一些不同的随机数进行初始化。
“小随机数”用来保证网络不会因权值过大而进入饱和状态,从而导致训练失败;
“不同”用来保证网络可以正常地学习。实际上,如果用相同的数去初始化权矩阵,则网络无学习能力。

2)训练过程包括四步

① 第一阶段:前向传播阶段
从样本集中取一个样本,输入网络

计算相应的实际输出;在此阶段信息从输入层经过逐级的变换,传送到输出层,这个过程也是网络在完成训练之后正常执行时执行的过程

② 第二阶段:后向传播阶段

计算实际输出与相应的理想输出的差

按照极小化误差的方法调整权值矩阵

网络的训练过程如下:

选定训练组,从样本集中分别随机地寻求 N 个样本作为训练组;

将各权值、阈值,置成小的接近于 0 的随机值,并初始化精度控制参数和学习率;

从训练组中取一个输入模式加到网络,并给出它的目标输出向量;

计算出中间层输出向量,计算出网络的实际输出向量;

将输出向量中的元素与目标向量中的元素进行比较,计算出输出误差;对于中间层的隐单元也需要计算出误差;

依次计算出各权值的调整量和阈值的调整量;

调整权值和调整阈值;

当经历 M 后,判断指标是否满足精度要求,如果不满足,则返回 (3),继续迭代;如果满足就进入下一步;
训练结束,将权值和阈值保存在文件中。这时可以认为各个权值已经达到稳定,分类器已经形成。再一次进行训练,直接从文件导出权值和阈值进行训练,不需要进行初始化。
在这里插入图片描述

五、结果分析

在这里插入图片描述

从精度与损失图像中可以看出,该模型在前面的Epoch的训练中,精度小损失大,预测效果并不理想。但是在后期精度能够稳定在90%以上,损失降了下来,模型的预测效果比较理想。在前期的训练中,由于数据间同种类别的差异性、不同类别的相似性以及数据特征提取不完善,导致预测效果不理想。但是通过损失函数处理,误差反传一直更新参数,以及多次遍历训练,将误差降到了一定的范围,预测效果得到一定的优化,最终精度能够稳定在90%以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Web的智慧储能电站3D可视化管理平台

电能作为现代社会的运转和发展的基础,是民生最基本的保障,其稳定性对国家经济发展至关重要。 建设背景 电力系统是一个稳态平衡系统,发电站的总发电功率需要等于用户端的总发电功率。如果两者不一致,就会导致整个电力系统的不稳…

[PyTorch][chapter 34][池化层与采样]

前言: 这里主要讲解一下卷积神经网络中的池化层与采样 目录 DownSampleMax poolingavg poolingupsampleReLu 1: DownSample 下采样,间隔一定行或者列进行采样,达到降维效果 早期LeNet-5 就采样该采样方式。 LeNet-5 2 Max pooling 最大值采样…

【28岁了,没有职业规划,没有目标,朋友推荐学云计算技术,能成吗?】

一般来说,当然可以的。云计算是一个不断发展的行业,不考虑年龄的因素,任何人都可以学习和掌握云计算的技能。28岁的年龄入行云计算是可行的,年龄方面还是符合企业的要求,而且云计算领域的发展趋势也显示出越来越多的企…

RIDGID里奇金属管线检测仪故障定位仪维修SR-20KIT

里奇RIDGID管线定位仪/检测仪/探测仪维修SR-20 SR-24 SR-60 美国里奇SeekTech SR-20管线定位仪对于初次使用定位仪的用户或经验丰富的用户,都同样可以轻易上手使用SR-20。SR-20提供许多设置和参数,使得大多数复杂的定位工作变得很容易。此外&#xff0c…

国内ChatGPT使用教程

猿说AI助手系统基于中国开源项目进行开发,由神诺网络科技工作室提供技术支持,后面我们会跟随官方持续更新。对话默认运行的是3.5-turbo模型,绘画采用Midjourney接口,待更新百度文心、通义千问、微信WeLM等。本系统仅用于技术研究&…

【k8s】【ELK】基于节点DaemonSet运行日志Agent实践【待写】

1.日志收集场景分析与说明 部署架构说明 对于那些将日志输出到&#xff0c;stdout与stderr的Pod&#xff0c; 可以直接使用DaemonSet控制器在每个Node节点上运行一个 <font colorred>filebeat、logstash、fluentd </font>容器进行统一的收集&#xff0c;而后写入…

论文阅读-DGM4-Detecting and Grounding Multi-Modal Media Manipulation

一、论文信息 论文名称&#xff1a;Detecting and Grounding Multi-Modal Media Manipulation 作者团队&#xff1a;南洋理工哈工大 Github:https://github.com/rshaojimmy/MultiModal-DeepFake 项目主页&#xff1a;https://rshaojimmy.github.io/Projects/MultiModal-DeepF…

在EasyCVR平台中添加设备提示成功但不显示是什么原因?

EasyCVR视频融合平台基于云边端智能协同架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;平台支持海量视频汇聚管理&#xff0c;可支持多协议接入&#xff0c;包括市场主流标准协议与厂家私有协议及SDK&#xff0c;如&#xff1a;国标GB28181、RTMP、RTSP/Onvi…

JECloud 运行前端模块所遇到的问题 汇总

1.依赖安装问题 官网 JECLoud 前端打包部署 1.1 部署前 注意 可以先下载 jecloud-libs 项目 尝试 部署安装 node版本不能过高&#xff01;选择node v14.17.5 版本 在部署前 如果当前node版本过高可以使用 nvm工具 切换到低版本&#xff0c; 但是需要注意的是 切换版本时 …

内网渗透(七十五)之域权限维持之DCShadow

DCShadow 2018年1月24日,在BlueHat安全会议上,安全研究员Benjamin Delpy 和 Vincent Le Toux 公布了针对微软活动目录域的一种新型攻击技术------DCShaow。利用该攻击技术,具有域管理员权限或企业管理员权限的恶意攻击者可以创建恶意域控,然后利用域控间正常同步数据的功能…

接口自动化测试-Requests之Session鉴权关联接口实战

目录 前言&#xff1a; 一、 简介 二、 实战操作 1. 登录接口 2. 查询订单接口 3. 新增订单接口 4. 修改订单接口 5. 删除订单接口 三、 结束语 前言&#xff1a; 接口自动化测试是软件测试过程中的重要一环&#xff0c;现在越来越多的公司开始使用自动化测试来提高测…

某社交平台 x-s所有可用

本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。 最新版 x-s 没露任何版权请审核员认真对待谢谢。 【2023.05.16】 更新全站接口通用 …

webpack食用指北

目录 何为webpackwebpack前置知识webpack项目初始化webpack配置文件运行webpack loadercss引入对loader的配置的几种写法 图片引入url的options自动清除上次打包遗留的资源 资源模块类型图片的webpack5引入方式字体的webpack5引入方式 webpack插件html-webpack-plugincopy-webp…

CSS 常用属性

padding (内边距):钻戒到盒子内边框的距离 margin (外边距):钻戒盒子距离桌子边缘的距离 border:钻戒盒子边框宽度 1) 内边距和外边距 内边距 外边距 使用方式: .a {padding: 10px 5px 15px 20px; /*上右下左*/padding: 10px 5px 15px; /*上右下*/padding: 10px 5px; /*上右…

EMC常见术语-dB、dBm、dBw以及如何计算

1. 手把手教&#xff1a;如何计算dB、dBm、dBw…… dB应该是无线通信中最基本、最习以为常的一个概念了。我们常说“传播损耗是xx dB”、“发射功率是xx dBm”、“天线增益是xx dBi”…… 有时&#xff0c;这些长得很像的dBx们可能被弄混&#xff0c;甚至造成计算失误。它们究…

docker Connection refused

环境介绍、服务版本、测试服务是否正常&#xff0c;可参考&#xff1a; docker could not find driver_龙枫995的博客-CSDN博客docker容器中&#xff0c;php和mysql互动时&#xff0c;解决出现could not find driverhttps://blog.csdn.net/longfeng995/article/details/130704…

Ngrok免费实现内网穿透

Ngrok免费实现内网穿透 前言 平时我们做项目&#xff0c;有时候需要用到内网穿透&#xff0c;让外网可以正常访问我们的资源。网上虽然有内网穿透工具&#xff0c;但是很多都是收费的&#xff0c;比如像我曾经用过的花生壳&#xff0c;好用是好用&#xff0c;但是要收费。我的…

微服务注册中心之Zookeeper,Eureka,Nacos,Consul,Kubernetes区别

文章目录 1 微服务注册中心1.1 注册中心概念1.1.1 为什么需要注册中心1.1.2 如何实现一个注册中心1.1.3 如何解决负载均衡的问题 1.2 注册中心如何选型1.2.1 Zookeeper1.2.2 Eureka1.2.3 Nacos1.2.4 Consul1.2.5 Kubernetes 1 微服务注册中心 微服务的注册中心目前主流的有以下…

spring注册bean方式总结

从前天开始气温飞升&#xff0c;三十七八度&#xff0c;这谁受得了&#xff0c;看看代码降降温~ 文章目录 什么是注册beanAutowired、Resource及Inject等Component及Service等Configuration及Beanspring.factories文件Import和ImportSelector使用Import及ImportBeanDefinition…

vue3项目国际化,你还不了解吗?

vue3使用的国际化库为&#xff1a;i18n 安装方式&#xff1a; npm install vue-i18nnext安装完成后在src文件夹下新建lang文件夹 在lang文件夹下新建需要语言转换的文件夹&#xff0c;这里以中文zh和英文en举例&#xff0c;在这两个文件夹下新建需要转换的语言 在zh的index.…