基于卷积神经网络的垃圾图像分类系统研究与实现

1.摘要

        垃圾分类作为资源回收利用的重要环节之一, 可以有效地提高资源回收利用效率, 进一步减轻环境污染带来的危害. 随着现代工业逐步智能化, 传统的图像分类算法已经不能满足垃圾分拣设备的要求. 本文提出一种基于卷积神经网络的垃圾图像分类模型 (Garbage Classification Network, GCN). 实验结果证明, GCN 在垃圾分类数据集上取得了优异的结果, 能够有效地提高垃圾识别精度。最后,本文基于训练好的GCN模型实现一个垃圾分类系统,该系统旨在向用户提供垃圾分类的知识,介绍不同类型的垃圾,并提供一个实用的界面,使用深度学习模型对垃圾图片进行分类。

2.基于卷积神经网络的垃圾分类模型实现与训练

垃圾数据集统计如下:(大家可以自己基于该数据集添加更多的类别)

************************************************************
                  Total Images per class
************************************************************
* cardboard => 403 images
* glass => 501 images
* metal => 410 images
* paper => 594 images
* plastic => 482 images

具体数据展示为:

  1. 加载和预处理数据

    # Load and preprocess the data
    train_datagen = ImageDataGenerator(horizontal_flip=True, rescale=1./255, zoom_range=0.2, validation_split=0.2)train_generator = train_datagen.flow_from_directory("./dataset/",target_size=(128, 128),batch_size=100,class_mode='categorical',subset='training'
    )validation_generator = train_datagen.flow_from_directory("./dataset/",target_size=(128, 128),batch_size=100,class_mode='categorical',subset='validation'
    )
    

    使用ImageDataGenerator加载和预处理训练数据和验证数据。在这里,数据进行了水平翻转、像素值缩放和缩放范围设置,并划分了验证集。

  2. 模型架构:创建了一个卷积神经网络(Convolutional Neural Network, CNN)模型,并依次添加了两个卷积层、池化层、Flatten层以及三个全连接层。卷积层用于提取图像特征,池化层用于降维,全连接层用于分类。

model = Sequential()
model.add(Conv2D(32, (3,3), input_shape=(128, 128, 3), activation='relu', padding='same'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(32, (3,3), activation='relu', padding='same'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten())
model.add(Dense(300, activation='relu'))
model.add(Dense(150, activation='relu'))
model.add(Dense(5, activation='softmax'))

        使用Conv2D函数添加一个卷积层,参数包括:32个滤波器(filters):表示该层输出的特征图数量。卷积核大小为(3, 3)。输入形状为(128, 128, 3),表示输入图像的尺寸为128x128,通道数为3(RGB)。激活函数为ReLU。padding设置为'same',表示对输入图像进行边界填充,保持输出与输入尺寸相同。使用MaxPooling2D函数添加一个最大池化层,参数为池化核大小为(2, 2),用于降低特征图的空间维度。再次添加一个相同参数的卷积层和池化层,用于进一步提取图像特征并降维。使用Flatten函数添加一个Flatten层,用于将多维数据压扁成一维数据,以便连接到全连接层。添加两个全连接层,分别包含300个和150个神经元,使用ReLU激活函数。添加一个输出层,包含5个神经元,对应5个类别(假设是5类问题),使用softmax激活函数进行多类别分类。

3. 训练模型:

最终,准确率可以训练达到90%左右。并使用save方法保存训练好的模型到文件中。

3.基于深度学习的垃圾分类系统实现

        将训练好的模型集成到 Flask 应用程序中:在 Flask 应用程序的代码中,添加模型的加载和预测函数。确保模型可以正确加载并对上传的图片进行预测。在服务器上部署 Flask 应用程序:将整个 Flask 应用程序上传到服务器,并确保服务器上已经安装了 Flask 和其他必要的依赖项。然后通过命令行运行 Flask 应用程序,使其在服务器上监听指定的端口。确保可以通过浏览器访问:在浏览器中输入服务器的 IP 地址或域名,加上相应的端口号(默认为 5000),即可访问部署好的 Flask 应用程序。本文将要实现的垃圾分类系统包含以下功能:
1.上传图片进行预测:用户可以通过网页界面上传垃圾图片。上传的图片会经过预处理,并使用预先训练好的深度学习模型进行分类预测。
2.预测结果展示:系统会将分类预测结果显示在网页上,告知用户该垃圾属于哪一类别。结果展示以图文结合的方式呈现,包括图片和分类标签。
3.多类别分类:模型可以对多种类别的垃圾进行分类,例如纸张、玻璃、金属、塑料等。
每个类别都有对应的图片和说明,用户可以通过预测结果了解垃圾的分类情况。
4.响应式界面设计:界面设计采用了响应式布局,适配不同大小的屏幕,提供良好的用户体验。
5.关于本项目页面:提供了关于本项目的介绍,说明了垃圾分类的重要性以及项目的解决方案。
6.展示了几种常见垃圾的图片和说明,增加了用户对垃圾分类的认识。
7.轮播图片展示:在页面顶部设置了轮播图片,通过动态展示图片和配文吸引用户关注。

        在项目文件夹中创建一个名为 templates 的文件夹,然后在其中创建 HTML 文件,设计上传图片的界面(例如 index.html)和显示预测结果的界面(例如 result.html)。最后设计实现的界面如下:

开始进行垃圾图像预测:

 上传图像:

预测:

4.总结 

        本文主要研究了基于深度学习和 Flask 的垃圾分类系统的设计与实现过程。首先,提出一种基于卷积神经网络的垃圾图像分类模型 (Garbage Classification Network, GCN),实验结果证明, GCN在垃圾分类数据集上取得了优异的结果, 能够有效地提高垃圾识别精度。其次,是Flask 应用程序开发部分,将深度学习模型应用于垃圾分类系统中。这个系统可以让用户上传垃圾图片,然后通过深度学习模型进行分类预测,最终展示预测结果给用户。

本文代码基于python3.7.0配置numpy==1.19.5、Flask==1.0.2、Keras==2.2.4、tensorflow等

完整代码下载链接:

https://download.csdn.net/download/weixin_40651515/89183885

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

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

相关文章

索引的最左匹配原则

索引的最左匹配原则 我们先创建一张测试表,表的两个字段用来创建联合索引 CREATE TABLE test(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,col1 INT,col2 INT,col3 INT );CREATE INDEX idx_c1c2 ON test(col1, col2);现在我们就可以分析查询sql脚本了 1.使用联合索…

【SpringBoot整合系列】SpringBoot配置多数据源

目录 背景技术选型配置多数据源思路(以两个为例)代码实现1.导入依赖2.各自的配置 3.各自的dataSourcenews数据库的smbms数据库的注意:Primary注解 4.各自的SqlSessionFactory等news数据库的smbms数据库的 5.去掉启动类头上的MapperScan6.各自的mapper接口7.各自的ma…

分布移位下用于泛化的泛化的自监督测试时训练

Test-Time Training with Self-Supervision for Generalization under Distribution Shifts 论文链接 https://arxiv.org/abs/1909.13231 代码链接 Test-Time Training Project Website 发表于ICML2020 机构: UC Berkeley, UC San Diego 这张文章里的…

SpaceX的核心Fact Sheet

首先给大家分享一组SpaceX的关键数据,让大家对这个神秘公司有个定量认知: 2024年SpaceX预计收入可达130亿美金,同比增长54%,预计2035年可达1000亿美金 SpaceX目前已经处于盈利状态,具体利润规模未知 SpaceX的发射成本…

深入解析 Odoo 在线客服模块 (im_livechat)

深入解析 Odoo 在线客服模块 (im_livechat) Odoo Livechat 是一款集成于 Odoo 平台的实时在线客服系统,它赋予用户在网页界面上直接与客服人员进行即时沟通的能力。本文将逐步剖析 Livechat 的实现细节,从入口模板文件的加载机制,到后端初始…

Sectigo证书申请流程及价格介绍

Sectigo 是一家全球知名的数字证书颁发机构(Certificate Authority, CA),自1998年起就开始提供 SSL 证书服务,是全球最早的 CA 机构之一。 一 Sectigo证书申请流程 1 确定证书类型 根据自身的需求确定证书的类型,一…

安全计算环境中,入侵防范的测评指标对应的测评对象包含哪些?

安全计算环境中,入侵防范的测评指标包括恶意代码防范、可信验证、数据完整性、数据保密性、数据备份恢复、剩余信息保护、个人信息保护等。 在安全计算环境中,入侵防范是确保系统不受未授权访问和破坏的关键措施。这涉及到多个方面的测评指标&#xff0…

IBM MQ 问题记录与解决

问题1: 报错: JMSWMQ2013:为队列管理器“QMXXX”提供的安全性认证无效,连接方式为“client”,主机名为“127.0.0.1(1417)”。 解决: (1)登录服务器 进入 IBM mq 所在目录 (linux一般在/opt/mqm下 windo…

【001_音频开发-基础篇-专业术语】

001_音频开发-基础篇-专业术语 文章目录 001_音频开发-基础篇-专业术语创作背景术语表常见音源HDMI相关声音系统立体声2.1 声音系统5.1 环绕声系统5.1.2 环绕声系统7.1 环绕声系统7.1.4 环绕声系统9.1.4 环绕声系统 音质等级定义QQ音乐网易云音乐 创作背景 学历代表过去、能力…

如何启用启用WordPress调试模式

最近我们的WordPress网站在访问时,经常出现打不开的现象,我们向主机提供商Hostease咨询后,他们提到这是由于WordPress的某个插件导致的问题,我们在将插件版本升级至最新后,这个问题就消失了。为了方便后续的检查&#…

OceanBase 开发者大会 - 见闻与洞察

文章目录 前言主论坛见闻技术专场见闻产品技术专场技术生态专场 同行论道启发互动展区写在最后 前言 4 月 20 日,我有幸受邀参加了第二届 OceanBase 开发者大会。 50 余位业界知名数据库大咖和数据库爱好者,与来自全国近 600 名开发者相聚。共同探讨一体…

3DE DELMIA Role: EWD - Ergonomic Workplace Designer

Discipline: Ergonomics Role: EWD - Ergonomic Workplace Designer 设计安全高效的工作场所 Ergonomic Workplace Designer采用 Smart Posturing EngineTM技术(用于自动和可重复的逼真人体模型定位)和 Ergo4alITM技术(用于应用程序内人体工…

2024年阿里云服务器最新活动价格表(含可选实例、配置、带宽)

2024年阿里云对云服务器活动中的价格和可选实例、配置、带宽和折扣等优惠政策又做升级调整,调整之后的云服务器最低价格只要99元起了,企业级2核4G5M带宽云服务器也只要199元/1年了,而且阿里云还额外推出了新购和续费同价的优惠政策。下面是小…

五一出游必备神器!华为nova 12 Ultra助你秒变旅行达人

五一假期终于要到了!小伙伴们是不是都跃跃欲试,想要出去浪一浪呢?别急,别急,先让我给你安利一款出游神器——华为nova 12 Ultra,它可是集多种技艺于一身,让你在旅途中秒变旅行达人哦&#xff01…

CV每日论文--2024.4.23

1、InstantMesh: Efficient 3D Mesh Generation from a Single Image with Sparse-view Large Reconstruction Models 中文标题:InstantMesh:使用稀疏视图大型重建模型从单个图像高效生成 3D 网格 简介:本文介绍了InstantMesh,这…

Mysql用语句创建表/插入列【示例】

一、 创建表 COMMENT表示字段或列的注释 -- 新建student表 CREATE TABLE student (id BIGINT NOT NULL COMMENT 学生id, enroll_date DATE NOT NULL COMMENT 注册时间, NAME VARCHAR(18) DEFAULT NOT NULL COMMENT 学生姓名, deal_flag TINYINT(1) DEFAULT 0 NOT NULL COMM…

2024第十三届深圳国际营养与健康产业博览会

医疗展、健康展、养生展、医药展、中医展、艾灸展、营养展、保健展、康复展、医美展、养老展、婴童展、医美展、护理展、理疗展、智能中医、医疗器械、氢氧、营养保健、大健康、医药制药、养老康复、食药同源 2024第十三届深圳国际营养与健康产业博览会 THE 13TH SHENZHEN IN…

全新Storm Core API管理系统源码 免授权版

全新Storm Core API管理系统源码 免授权版 本系统为API系统,实现了api集成等基础功能,以后可能会更新key调用api,或者实现付费功能,敬请期待,前端模板均无加密,用户可自行二开,具体请看图 测试环境:PHP7.2+MySQL5.6 访问:http://你的域名/install 进行安装 伪静态…

树 —— 树和森林的遍历

一、树的遍历 (1)先根遍历 若树非空,则遍历方法为 (1)访问根结点。 (2)从左到右,依次先根遍历根结点的每一棵子树。 先根遍历序列为:ABECFHGD。 (2&#…

齐护K210系列教程(二)_点亮板载灯

文章目录 1,程序的上传2,点亮板载R-G-B三色灯2-1 齐护编程块方式 2,红色呼吸灯(渐亮渐灭)4,RGB幻彩呼吸灯联系我们 1,程序的上传 接上节课,我们选择板卡【MicroPython[QDPK210_AIst…