当前位置: 首页 > news >正文

基于深度学习的生活垃圾智能分类系统(微信小程序+YOLOv5+训练数据集+开题报告+中期检查+论文)

摘要

 本文基于Python技术,搭建了YOLOv5s深度学习模型,并基于该模型研发了微信小程序的垃圾分类应用系统。本项目的主要工作如下:

        (1)调研了移动端垃圾分类应用软件动态,并分析其优劣势;分析了深度学习在垃圾分类领域的相关应用,着重研究了YOLO系列的工作原理和YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四大模型的优缺点,最终选择了轻量级深度学习模型YOLOv5s。

        (2)本文给出了一种基于深度学习的垃圾图像分类模型YOLOv5s。微信小程序端的垃圾图像分类既要考虑模型的精度,也要保证模型的轻量化,即模型的参数量不能过大,因此在模型设计时需兼顾两者。最后,本项目深度学习模型对垃圾分类的准确率达到了98.5%。

        (3)最后实现了垃圾分类系统整体的设计和测试。系统采用前后端分离的方式进行设计,主要功能是通过手机拍照实现对生活垃圾的分类识别,其他功能包括相册照片识别、文字知识分享和垃圾知识图例展示等。

目录

摘要

研究背景

论文大纲

1. 系统设计

2.效果演示

3.数据集及训练

(一)获取数据

(二)数据标注

4.训练结果分析

5.下载链接


 

研究背景

  当代社会面临着日益严重的环境污染问题,其中垃圾处理是一个亟待解决的重要方面,垃圾围城所带来的土地、水污染、土壤等问题日益突出。因此,确保垃圾得到正确处理和适宜回收具有重要意义。为实现这一目标,需要在政府政策支持下,鼓励公众参与和教育,以及建设垃圾处理和回收设施等综合努力。

        使用Python技术开发垃圾分类深度学习算法,并使用微信小程序做前端界面是一个非常有前途的研究方向,可以帮助人们更好地理解垃圾分类的重要性,并辅助人们进行准确的垃圾分类,以实现正确的垃圾处理,促进环境的可持续发展。

论文大纲

1. 系统设计

        本项目的系统分为服务器端和微信小程序两大部分,采用前后端分离的方式。在微信小程序端,用户可以通过拍摄垃圾的图片,将图片上传到服务器进行处理。微信小程序负责图片的拍摄、上传以及接收和显示来自服务器的处理结果。在服务器端,接收到用户上传的图片后,使用训练好的YOLOv5s算法进行目标检测,识别图片中的垃圾物体,并进行标记和分类。服务器将对标记好的垃圾和其分类信息进行保存,并生成一张新的图片文件,其中标注有垃圾和分类信息。微信小程序再次向服务器发送请求,获取标记好的图片,并将其显示给用户。这样用户就可以在微信小程序中直观地看到图片中的垃圾和分类信息。

 

    服务器端的设计由两个主要的Python源代码文件(server.py和detector.py)和YOLOv5项目源文件组成。这种设计结构的使用使得服务器端能够有效地处理客户端的请求,并利用YOLOv5的强大功能来实现准确的目标检测。通过这种分离的设计方式,代码的可读性和可维护性得到提高,并且使系统的功能模块化,方便后续的扩展和优化。

2.效果演示

      本项目共定义了59种可以识别的垃圾名称类别。59种垃圾类别如图所示。

 

   本项目是一个微信小程序,命名为miniprogram-1。该项目包含一个名为“index”的首页页面,由四个文件组成:布局文件“index.wxml”、执行脚本文件“index.js”、风格文件“index.wxss”和数据配置文件“index.json”。

        Index首页界面包含两个按钮:“相册图片识别”和“拍照智能识别”。其中,“相册图片识别”按钮用于从相册中选择图片进行垃圾分类识别,而“拍照智能识别”按钮则通过调用go_camera函数来启动手机摄像头进行拍照。拍照完成后,系统会对拍摄的图片进行垃圾分类识别,并返回分类结果。垃圾分类小程序目录结构如图所示。

        点击小程序界面的“拍照智能识别”按钮,切换到拍照界面,并对所需要检测的生活垃圾进行拍照。然后,等待系统返回预测结果。如图所示,我们成功地对一瓶啤酒瓶进行了拍摄,并得到了对应的垃圾分类识别结果。在图中,我们用粉色矩形框标注了啤酒瓶,并在上方显示出此物品为“可回收物-玻璃瓶 0.87”,达到了预期的结果。这表明我们的垃圾分类识别系统能够准确地识别出拍摄的垃圾,并返回对应的分类结果。

 

3.数据集及训练

        深度学习算法效果依赖于样本库数据的质量高低,故在采集生活垃圾原始图像后,需对样本库中图像数据进行标准化处理,具体包括数据清洗、尺寸标准化、数据标准以及数据集划分,数据集标准化过程如图所示。

 

(一)获取数据

        本项目共收集1500张带各种垃圾的图片,包含玻璃瓶、餐盒、纸箱、透明塑料瓶等59种垃圾,原始垃圾图像数据如图所示。

   首先,进行数据清洗工作,将采集的照片逐一清洗,去除画面模糊、质量差的图像数据,确保数据的高质量要求。然后,将清洗过后的图像统一裁剪为608×608大小,确保数据集中的图像尺寸大小一致,以便作为YOIOv5s深度学习算法的输入。

(二)数据标注

         然后进行标注工作,标注工具用LabelImg进行标注。

        本文将标注后的生活垃圾数据按照训练集占70%,测试集占30%划分,通过分配确保了数据集用于算法模型训练及测试的合理性。

4.训练结果分析

        本系统通过综合考虑最终采用YOLOv5网络模型,YOLOv5模型运算速度最快,虽AP精度略低于其他三种YOLOv5模型,但其精准度可满足本项目的要求。同时,YOLOv5网络模型因其计算量较小,可在CPU上流畅运行,对电脑硬件和成本要求较低。所以最终采用了YOLOv5网络模型,其网络结构如图所示。

 

垃圾分类模型YOLOv5s训练结果如图所示。在经过200轮训练后,准确率达到了98.5%,可满足本项目的分类精度需求。 

 

5.下载链接

        若您想获得博文中涉及的实现完整全部程序文件(包完整程序、数据集、开题报告、中期报告和论文等,如下图),已将所有涉及的文件同时打包到里面,点击即可运行。

 完整代码下载,请关注下方公众号!!!

相关文章:

基于深度学习的生活垃圾智能分类系统(微信小程序+YOLOv5+训练数据集+开题报告+中期检查+论文)

摘要 本文基于Python技术,搭建了YOLOv5s深度学习模型,并基于该模型研发了微信小程序的垃圾分类应用系统。本项目的主要工作如下: (1)调研了移动端垃圾分类应用软件动态,并分析其优劣势;分析了深…...

软件包名生成参考

服务名称-分支名称-最后提交时间(精确到秒)-最后提交-编译时间(unix时间戳) 示例:crm_5.2_221024-221020160306-b846f829-1665655859 包名生成脚本参考: 分支名称 export GIT_BRANCH$(git branch|grep "\*"|head -n1|awk {print $NF})git最…...

八大排序算法(面试被问到)

1.八大排序算法都是什么? 八大排序算法有:插入排序、冒泡排序、归并排序、选择排序、快速排序、希尔排序、堆排序、基数排序(通常不提)。此外,还可以直接调用Arrays.sort()进行排序。 2.八大排序算法时间复杂度和稳定…...

SCP指令详细使用介绍

SCP(Secure Copy Protocol)是一种用于在计算机之间安全地传输文件的协议。它通过加密的方式在网络上安全地复制文件。SCP基于SSH(Secure Shell)协议,因此它提供了加密的连接和身份验证,确保数据在传输过程中…...

《前端面试题》- JS基础 - 防抖和节流

在界面触发点击,滚动,输入校验等事件时,如果对事件的触发频率不加以限制,会给浏览器增加负担,且对用户不友好。防抖和节流就是针对类似情况的解决方案。 防抖 防抖(debounce):当连续触发事件时&#xff0…...

RAGFlow:基于OCR和文档解析的下一代 RAG 引擎

一、引言 在人工智能的浪潮中,检索增强生成(Retrieval-Augmented Generation,简称RAG)技术以其独特的优势成为了研究和应用的热点。RAG技术通过结合大型语言模型(LLMs)的强大生成能力和高效的信息检索系统…...

正则表达式|*+?

在理解编程语言和编译技术的上下文中,了解正则表达式(regular expressions)和正则集(regular sets)的概念是非常重要的。这些概念主要用于描述一组字符串的模式,广泛应用于词法分析中识别各类标记&#xff…...

前端开发攻略---根据音频节奏实时绘制不断变化的波形图。深入剖析如何通过代码实现音频数据的可视化。

1、演示 2、代码分析 逐行解析 JavaScript 代码块&#xff1a; const audioEle document.querySelector(audio) const cvs document.querySelector(canvas) const ctx cvs.getContext(2d)这几行代码首先获取了 <audio> 和 <canvas> 元素的引用&#xff0c;并使用…...

【计算机毕业设计】基于Java+SSM的实战开发项目150套(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f9e1;今天给大家分享150的Java毕业设计&#xff0c;基于ssm框架&#xff0c;这些项目都经过精心挑选&#xff0c;涵盖了不同的实战主题和用例&#xff0c;可做毕业设计和课程…...

STM32H7的MPU学习和应用示例

STM32H7的MPU学习记录 什么是MPU&#xff1f;MPU的三种内存类型内存映射MPU保护区域以及优先级 MPU的寄存器XN位AP位TEX、C、B、S位SRD 位SIZE 位CTRL 寄存器的各个位 示例总结 什么是MPU&#xff1f; MPU&#xff08;Memory Protection Unit&#xff0c;内存保护单元&#xf…...

964: 数细胞

样例&#xff1a; 解法&#xff1a; 1.遍历矩阵 2.判断矩阵[i][j]&#xff0c;若是未标记细胞则遍历相邻所有未标记细胞并标记&#xff0c;且计数 实现&#xff1a;遍历相邻所有未标记细胞 以DFS实现&#xff1a; function dfs(当前状态) {if (终止条件) {}vis[标记当前状…...

流程图步骤条

1.结构 <ul class"stepUl"> <li class"stepLi" v-for"(item, index) in stepList" :key"index"> <div class"top"> <p :class"{active: currentState > item.key}">{{ item.value }}…...

GPT知识库浅析

一、引言 上篇文章《GPT简介及应用》介绍了GPT的应用场景&#xff0c;里面提到GPT bot的基本使用&#xff1a;基于GPT训练好的数据&#xff0c;回答用户的问题。 但在使用过程中&#xff0c;如果用户的问题里面出现最新的术语&#xff0c;就会出现这种提示&#xff1a; 截至我…...

SpringMVC--SpringMVC的视图

目录 1. 总述 2. ThymeleafView视图 3. 转发视图 4. 重定向视图 5. 视图控制器view-controller 1. 总述 在SpringMVC框架中&#xff0c;视图&#xff08;View&#xff09;是一个非常重要的概念&#xff0c;它负责将模型数据&#xff08;Model&#xff09;展示给用户。简单…...

Datax,hbase与mysql数据相互同步

参考文章&#xff1a;datax mysql 和hbase的 相互导入 目录 0、软件版本说明 1、hbase数据同步至mysql 1.1、hbase数据 1.2、mysql数据 1.3、json脚本&#xff08;hbase2mysql.json&#xff09; 1.4、同步成功日志 2、mysql数据同步至hbase 1.1、hbase数据 1.2、mysql…...

ubuntu spdlog 封装成c++类使用

安装及编译方法&#xff1a;ubuntu spdlog 日志安装及使用_spdlog_logger_info-CSDN博客 h文件&#xff1a; #ifndef LOGGING_H #define LOGGING_H#include <iostream> #include <cstring> #include <sstream> #include <string> #include <memor…...

【C语言】——字符串函数的使用与模拟实现(上)

【C语言】——字符串函数 前言一、 s t r l e n strlen strlen 函数1.1、函数功能1.2、函数的使用1.3、函数的模拟实现&#xff08;1&#xff09;计数法&#xff08;2&#xff09;递归法&#xff08;3&#xff09;指针 - 指针 二、 s t r c p y strcpy strcpy 函数2.1、函数功能…...

数据库(1)

目录 1.什么是事务&#xff1f;事务的基本特性ACID&#xff1f; 2.数据库中并发一致性问题&#xff1f; 3.数据的隔离等级&#xff1f; 4.ACID靠什么保证的呢&#xff1f; 5.SQL优化的实践经验&#xff1f; 1.什么是事务&#xff1f;事务的基本特性ACID&#xff1f; 事务指…...

VirtualBox - 与 Win10 虚拟机 与 宿主机 共享文件

原文链接 https://www.cnblogs.com/xy14/p/10427353.html 1. 概述 需要在 宿主机 和 虚拟机 之间交换文件复制粘贴 貌似不太好使 2. 问题 设置了共享文件夹之后, 找不到目录 3. 环境 宿主机 OS Win10开启了 网络发现 略虚拟机 OS Win10开启了 网络发现 略Virtualbox 6 4…...

深入浅出 useEffect:React 函数组件中的副作用处理详解

useEffect 是 React 中的一个钩子函数&#xff0c;用于处理函数组件中的副作用操作&#xff0c;如发送网络请求、订阅消息、手动修改 DOM 等。下面是 useEffect 的用法总结&#xff1a; 基本用法 import React, { useState, useEffect } from react;function Example() {cons…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代&#xff0c;数据已成为企业和社会发展的核心资产&#xff0c;而数据库作为存储、管理和处理数据的关键工具&#xff0c;在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理&#xff0c;到社交网络的用户数据存储&#xff0c;再到金融行业的交易记录处理&a…...

Java后端检查空条件查询

通过抛出运行异常&#xff1a;throw new RuntimeException("请输入查询条件&#xff01;");BranchWarehouseServiceImpl.java // 查询试剂交易&#xff08;入库/出库&#xff09;记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...

41道Django高频题整理(附答案背诵版)

解释一下 Django 和 Tornado 的关系&#xff1f; Django和Tornado都是Python的web框架&#xff0c;但它们的设计哲学和应用场景有所不同。 Django是一个高级的Python Web框架&#xff0c;鼓励快速开发和干净、实用的设计。它遵循MVC设计&#xff0c;并强调代码复用。Django有…...

【threejs】每天一个小案例讲解:创建基本的3D场景

代码仓 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone&#xff0c;无需安装依赖&#xff0c;直接liver-server运行/直接打开chapter01中的html文件 运行效果图 知识要点 核心三要素 场景&#xff08;Scene&#xff09; 使用 THREE.Scene(…...

React与原生事件:核心差异与性能对比解析

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...