基于机器学习的垃圾分类

news2025/1/22 9:10:57

1绪论

1.1问题背景

垃圾分类有减少环境污染、节省土地资源、再生资源的利用、提高民众价值观念等的好处,在倡导绿色生活,注重环境保护的今天,正确的垃圾分类和处理对我们的生态环境显得尤为重要。

在国外很多国家,经过了几十年的不断改进发展,已经有了一套很严格规范的垃圾分类政策,民众也形成了很强的垃圾分类意识,并且在人工智能广泛应用的今天,也有很多公司将人工智能与自动垃圾分类相结合。前几年波兰创业公司Bin-e公司开发了一种全新的人工智能垃圾桶,用户只需要在垃圾桶前扫描一下垃圾,舱门便会打开。这个人工智能垃圾桶是通过传感器、摄像头、AI图像识别算法来自动进行垃圾分类,而且回收公司也可以通过APP来随时检查垃圾桶的剩余空间等。印度尼西亚一家创业公司Gringgo也曾使用谷歌的机器学习平台TensorFlow研发图像识别工具,目标是让环卫工人更好地对垃圾进行分析和分类,并量化它们的价值。[1]

对于国内的垃圾分类政策,在近几年才开始逐步严格实施:2019年6月,中华人民共和国住房和城乡建设部在内的9部门印发《关于在全国地级及以上城市全面开展生活垃圾分类工作的通知》。其中要求:到2020年,46个重点城市基本建成生活垃圾分类处理系统;其他地级城市实现公共机构生活垃圾分类全覆盖,至少有1个街道基本建成生活垃圾分类示范片区。目前,中国已在北京和上海已经开始严格实施生活垃圾管理条例,并计划在定点城市先行的基础上,在全国全面推广实施垃圾分类,由此可见垃圾分类将会逐渐变成中国的常态。[2][3][4][5]

我们的项目以我们更为熟悉的北京的垃圾分类标准来研究,其中的一大类则是厨余垃圾,其处理与利用更是备受关注。根据英国机械工程学院(IME)的研究,2013年全球有一半的食物被浪费掉,浪费与损耗发生在食品供应链的所有阶段。[6]在低所得国家,大部分的耗损是在生产阶段发生的;而在发达国家,最多的浪费发生在消费食物的阶段——平均每年每人会浪费100公斤左右的食物。[7]厨余垃圾为一种生物降解垃圾,属生物质,可作为堆肥、发电、生物气体或合成气原料等,有很多利用价值。可见,如果正确处理厨余垃圾不仅可以很好地保护生态环境,而且还能带来不错的经济效益。但是如果厨余垃圾处理不当,比如混入其他塑料垃圾,有害垃圾,效果会适得其反。因此需要格外注意厨余垃圾的分类正确率。但是如今国内刚实行垃圾分类政策不久,大多数民众的垃圾分类意识不强,导致厨余垃圾的纯度不够,因此在北京很多小区中都有专门的监管人员在回收站点旁对居民是否正确投放厨余垃圾的情况进行监督。但在监督过程中若一直采用纯人工的方式则会出现工作量大、效率不高、成本较高的问题,同时也避免不了监控人员有时也分类出错的情况。

1.2研究的目的和意义

如今越来越多的地方开始实行垃圾分类政策。而有些小区每天对于厨余垃圾的投放时间有限制,只能在一个固定的时间段投放厨余垃圾垃圾,为了避免一些人不按规定投放垃圾,提高厨余垃圾的纯度,一般在垃圾投放点都有专人监督。而我们想的是能不能实现机器自动监督,为此我们可以运用人工智能,机器学习的方法,依托Python平台开发一个自动监控系统,具有垃圾分类提示,识别厨余垃圾中是否掺杂非厨余垃圾,错误投放垃圾(错误时间段投放,垃圾分类错误)警示等的功能。

为了减轻人工工作成本和提高厨余垃圾分类的准确度,国内近几年也有很多关于自动监控垃圾分类的研究。有研究人员通过提取监控视频中垃圾投放人员和垃圾箱的图像信息,将其传送给监控人员判断来进行监控[8];或者在投放垃圾时,通过刷卡、刷脸、扫二维码等获取垃圾投放人员的信息,并对垃圾进行拍照和监控[9]。在软件核心上,利用MATLAB或OpenCV等进行图像的采集和处理,再利用卷积神经网络实现最终判断分类。但这些算法对同一类垃圾处于不同外在形式或物理形态时是否能有高正确率的判断的研究较少,并且它们所基于的垃圾分类标准彼此都有一些差别,与各个城市实际的垃圾分类标准也不同,有的数据集还比较单一。[10][11][12][13]因此,根据北京地区垃圾分类的标准,设计出符合北京政策要求的垃圾分类自动监控系统,提高厨余垃圾的正确分类率是具有实际意义的。

2.项目方案

2.1科学性

如今AI,机器学习、图像处理变得越来越热门,这些技术在越来越多的部门和领域得到了广泛且深刻的应用,并取得了十分不错的成果。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。何谓 “机器学习”,学界尚未有统一的定义。Tom Mitchell 教授是这样解释机器学习的:对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E中学习。让没有生命的机器自己学习本就是一件有趣事情,而且计算机很擅长做重复且大量的计算。目前的机器学习主要分为两大类:监督学习和无监督学习,无监督学习(Unsupervised learning)就是聚类,事先不知道样本的类别,通过某种办法,把相似的样本放在一起归位一类;而监督型学习(Supervised learning)就是有训练样本,带有属性标签,也可以理解成样本有输入有输出。而本项目要实现的功能主要使用监督学习,监督学习算法主要有:决策树,朴素贝叶斯分类,逻辑回归,支持向量机(Support Vector Machines),神经网络等。

2.2 创新性

如今人们保护环境的意识愈发强烈,在国家的号召下垃圾分类在越来越多的城市开始实行,人们每天要花大量的时间对垃圾进行分类,而对厨余垃圾的管理更加严格,人们只能在每天的某段时间内投放厨余垃圾,时间久了垃圾会发臭,影响人们的生活环境。而且厨余垃圾之后一般是要送到专门的处理机构处理成肥料或家禽饲料,如果分类疏忽使厨余垃圾里含有塑料、电池、重金属等的垃圾后果不堪设想,受到伤害的永远是食物链顶端的人类,所以一般都有专门人员在垃圾投放点进行管理。为此,本项目将创新性地将AI机器学习这项技术应用到如今的垃圾分类领域中,对在错误时间段投放垃圾的行为进行警示和判断投放厨余垃圾里是否含有其他垃圾,以达到提升垃圾分类准确度,减轻垃圾管理人员劳动强度的目的。

2.3 技术可行性

如流程图所示,本项目对错误投放厨余垃圾的行为可以是先判断站在厨余垃圾桶前的人是否有倾倒垃圾的行为,若有,则接着判断是否在规定时间内投放垃圾以及垃圾投放是否正确。而这些可以用相关图像处理算法来完成,OpenCV和MATLAB等的平台都是不错的选择。对判断厨余垃圾里是否有其他垃圾的研究其本质是一个分类问题,通过向已经训练好的模型输入垃圾的特征参数,输出的就是本模型对该垃圾的类型的判断,而垃圾的特征参数可以是垃圾的颜色,大小,形状等,也可以是一张垃圾的图片,抽象点来说就是一多维数组。而现在的各种机器学习包和库发展得也比较好,如TensorFlow、PyTorch、Scikit-learn等都是基于Python的开源机器学习库,这些机器学习库大多可以使用电脑的GPU进行加速,比传统的CPU计算快了好几倍,而且可以比较方便地调用各种机器学习算法框架来构建自己的模型。为此我们要先制作各种垃圾的数据集,并标上标签,这可以通过爬取百度图片等的图片网站的各种垃圾图片然后加上标签。之后这些图片将会被分为训练集和测试集,训练集用以训练模型,优化相关参数,测试集用以检验模型的准确度;之后我们将使用Python及其相关机器学习包来搭建模型并对其进行训练以及优化一些参数;如果项目进展顺利的话我们可以将模型移植到相关硬件上,比如K210。K210这款芯片是基于RISC-V架构进行研发设计的,该芯片基于自主研发的神经网络加速器KPU,可完成基于神经网络的图像分类任务,进行人脸识别与检测,以及实时获取被检测目标的分类。芯片搭载FPIOA现场可编程IO阵列,支持TensorFlow、Keras、Darknet、Paddle和Caffe等主流AI编程框架。

img

图2-1系统监控流程图

3. 基于机器学习的垃圾监控系统

3.1 问题描述

(1).大量垃圾图片数据集的搜集与整理;

(2). 对一些城市的小区垃圾分类具体政策和垃圾分类标准的了解

(3).监控市民是否在规定时间投放厨余垃圾,防止厨余垃圾长时间无人处理而影响环境。采集投放点的视频图像,利用自然场景理解与识别算法,判断是否有人进行投放。若有市民未在规定时间投放厨余垃圾则自动警报。

(4).根据垃圾图像识别分出垃圾类型,基于机器学习的理念,收集大量不同状态的垃圾图像数据集,对数据集的图片进行图像处理,在此基础上利用深度学习卷积神经网络(ConvolutionalNeuralNetwork,CNN)提供的模型进行不断地训练优化,学习图像分类识别所需的大量特征,用于垃圾的分类识别。

(5).在厨余垃圾中检测其他垃圾,防止其他垃圾对厨余垃圾后续处理过程造成影响。采集投放进厨余垃圾点的垃圾图像,智能识别出图像中的其他垃圾并标记,当有其他垃圾误投进厨余垃圾点时,系统自动警报。

提出解决方案:对国内各大城市的垃圾分类政策流程进行分析与研究,找到最优化的厨余垃圾处理方案。

基于机器学习的智能分类:收集大量不同种类、不同形态的垃圾图片,通过网络爬虫等方法创建数据集并标注数据集,基于现有的机器学习方法,用keras包和Tensorflow等后端来建立模型,并对该模型进行优化调参,对已有的算法模型进行优化调参,以得到厨余垃圾的图像特征,实现从厨余垃圾中识别出非厨余垃圾。

图像处理:对于收集来的数据集图像和摄像头捕捉到的自然场景图像,利用OpenCV和其他计算机软件对其进行处理。基于自然场景的理解与分析算法,判别出是否有人投放垃圾,实现对垃圾投放人员进行监控。

3.2 基本算法模型

对收集垃圾图片进行test和train数据集划分,并利用OpenCV进行模板匹配并找出阈值,将该阈值用于test数据集进行测试

img

图3-1系统流程图

img

图3-2算法流程图

3.3 实验及分析

1、收集的用于train和test的数据集,命名1为不含非厨余垃圾,即合格;0为含非厨余垃圾即不合格,以方便后期程序设计。

img

图3-3数据集

2、Train的代码:对train数据集进行训练,寻找阈值。train数据集中含50张合格厨余垃圾图片,50张不合格垃圾图片。

image-20240306100959372

图3-4train代码

3、使用matplotlib库画图以便阈值寻找,如下图,阈值为0.39比较好。

img

图3-5阈值寻找

4、Test的代码:对test数据集进行判断,判断是否含非厨余垃圾以及判断是否正确。test数据集中含15张合格厨余垃圾图片,15张不合格垃圾图片。

img

图3-6 test代码

对于二分类来说,一般平衡点即查准率等于查全率时模型的性能比较高,此时漏检率等于误检率,而且误检率和漏检率越低越好以塑料模板为例,我们利用模板匹配算法,得出三种匹配方式下的匹配度散点图。可以看出,标准相关性系数匹配方法要优于标准相关性匹配和标准平方差匹配,因此我们在后面的测试集中将选用标准相关系数匹配方法。

用训练集得出的阈值对测试集进行测试的结果,测试样本总共有60张,其中正确分类有50张,错误分类的有10张,正确率83%,查准率和查全率均为83%。说明我们训练得出的阈值能在测试集中有比较好的表现,能够兼顾查准率和查全率对

4. 结论

对收集合格和不合格的垃圾图片进行训练集和测试集的划分并开始进行编程实验,取得一个较好的泛化阈值对测试集进行测试,得到的垃圾识别判断正确率为83.3%。在实验过程中出现了以下问题:各种情况的厨余垃圾图片数据的收集量不足;对不同模板的阈值寻找混在一起了,导致因为图片标记的问题而无法找到合适的阈值(合格与不合格的分界线不明显);训练集的算法较简单,测试集正确率已达到瓶颈,模型泛化能力不太能达到很好的预期要求。

参考文献

参考文献:

[1] AI垃圾分类市场风口爆发,究竟是“市场”还是“大坑”.电子工程世界.2019-08-16 [2020-07-03]. http://news.eeworld.com.cn/qrs/ic471393.html.

[2] 我国自2019年起在全国地级及以上城市全面启动生活垃圾分类. 新华社. 2019-06-06 [2020-07-03].

[3] 吴娇颖.9部门:今年起全国地级及以上城市全面启动生活垃圾分类. 新京报. 2019-06-06 [2020-07-03].

[4] 住房和城乡建设部等部门关于在全国地级及以上城市全面开展生活垃圾分类工作的通知.中国政府网.2019-06-11 [2019-07-02].

[5] 逯海涛.做好垃圾分类,贵有恒心.浙江日报.2019-07-01 [2020-07-03].

[6] Food Waste: Half Of All Food Ends Up Thrown Away. Huffington Post.10 January 2013 [2020-07-03].

[7] Gustavsson, J, Cederberg, C & Sonesson, U, 2011, Global Food Losses and Food Waste, Food And Agriculture Organization Of The United Nations, Gothenburg Sweden.

[8] 深兰科技(上海)有限公司.一种监控垃圾分类投放的方法、装置以及系统:中国, CN201910796973.3[P]. 2019-12-03.

[9] 夏策联.一种垃圾分类投放的监控方法及系统:中国, CN201910642657.0[P].2019-09-06.

[10] 谢堂,吴居豪,温泉河.基于机器学习的智能垃圾分类箱[J].现代计算机,2020,(12).

[11] 吴健,陈豪,方武.基于计算机视觉的废物垃圾分析与识别研究[J].信息技术与信息化,2016,(10).

[12] 张方超,董振,张栋,武涛,李卫国.基于图像视觉的垃圾分类机器人识别控制系统算法设计[J].电子测量技术,2019,42(20).

[13] 祝朝坤,魏伦胜.基于TensorFlow的智能垃圾分类系统的研究与设计[J].电子产品世界,2020,(6).

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

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

相关文章

解决WordPress更新插件或者更新版本报WordPress 需要访问您网页服务器的权限的问题

文章目录 前言一、原因二、解决步骤总结 前言 当对WordPress的插件或者版本进行更新时报错:要执行请求的操作,WordPress 需要访问您网页服务器的权限。 请输入您的 FTP 登录凭据以继续。 如果您忘记了您的登录凭据(如用户名、密码&#xff09…

JAVA 用二分法查找数组中是否存在某个值

二分法查找的概念 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。首先,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成…

每日一题——LeetCode1588.所有奇数长度子数组的和

方法一 暴力循环 遍历数组的每一个元素,找寻该元素所有连续长度为奇数的可能,累加奇数长度区间内的所有元素。 比如对于[1,4,2,5,3] ,对于第一个元素1,有[1]、[1,4,2]、[1,4,2,5,3]这三种可能,对于第二个元素4&#x…

STP---生成树协议

STP的作用 a)Stp通过阻塞端口来消除环路,并能够实现链路备份目的 b)消除了广播风暴 c)物理链路冗余,网络变成了层次化结构的网络 STP操作 选举一个根桥每个非根交换机选举一个根端口每个网段选举一个指定端口阻塞非根,非指定端口 STP--生成树…

Java 数据结构之链表

public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA null || headB null) return null;ListNode pA headA, pB headB;while (pA ! pB) {pA pA null ? headB : pA.next;pB pB null ? headA : pB.next;}return pA;} public ListNode rev…

Linux cgrpup技术解析和验证测试

Linux cgrpup技术解析和验证测试 1. cgroup技术解析和分类1.1. 相关概念介绍1.2 cgroup子系统 2. cgroup子系统详解2.1 cpu子系统2.2 cpuacct子系统2.3 cpuset子系统2.4 memory子系统2.5 blkio子系统2.6 ns子系统 3. cgroup使用3.1 通用使用流程3.1.1 限制进程的cpu资源3.1.2 绑…

【开源项目】ollama:本地部署大模型

文章目录 1. 安装2. 使用体验2.1. 运行llama22.2. 运行llama2-chinese 项目地址:Github - ollama/ollama 注意:项目对硬盘容量、内存要求比较高。 1. 安装 从Github项目的最新release下载安装包,点击运行即可。 2. 使用体验 2.1. 运行ll…

中小企业如何降低网络攻击和数据泄露的风险?

德迅云安全收集了Bleeping Computer 网站消息, Arctic Wolf 表示 Akira 勒索软件组织的攻击目标瞄准了中小型企业,自 2023 年 3 月以来,该团伙成功入侵了多家组织,索要的赎金从 20 万美元到 400 多万美元不等,如果受害…

基于OpenCV的图形分析辨认05(补充)

目录 一、前言 二、实验内容 三、实验过程 一、前言 编程语言:Python,编程软件:vscode或pycharm,必备的第三方库:OpenCV,numpy,matplotlib,os等等。 关于OpenCV,num…

常见排序算法解析

芝兰生于深林,不以无人而不芳;君子修道立德,不为穷困而改节 文章目录 插入排序直接插入排序希尔排序 选择排序直接选择排序堆排序 交换排序冒泡排序快速排序优化挖坑法前后指针法非递归版 归并排序递归非递归 总结 插入排序 插入排序&#…

论文阅读笔记 | MetaIQA: Deep Meta-learning for No-Reference Image Quality Assessment

文章目录 文章题目发表年限期刊/会议名称论文简要动机主要思想或方法架构实验结果 文章链接:https://doi.org/10.48550/arXiv.2004.05508 文章题目 MetaIQA: Deep Meta-learning for No-Reference Image Quality Assessment 发表年限 2020 期刊/会议名称 Publi…

Unity性能优化篇(八) 导入的模型网格优化设置

模型导入Unity后,可以选中这个模型,在Inspector窗口设置它的属性。下面说的都是可自定义选择优化的地方 Model选择卡: 1.在Model选项卡,启用Mesh Compression可以压缩模型,压缩程度越高,模型精度越低,但是…

Docker前后端项目部署

目录 一、搭建项目部署的局域网 二、redis安装 三、MySQL安装 四、若依后端项目搭建 4.1 使用Dockerfile自定义镜像 五、若依前端项目搭建 一、搭建项目部署的局域网 搭建net-ry局域网,用于部署若依项目 docker network create net-ry --subnet172.68.0.0/1…

网络安全审计是什么意思?与等保测评有什么区别?

网络安全审计和等保测评在信息安全领域中都是非常重要的环节。但不少人对于这两者是傻傻分不清楚,今天我们就来简单聊聊网络安全审计是什么意思?与等保测评有什么区别? 网络安全审计是什么意思? 网络安全审计是通过对网络系统和网…

python 蓝桥杯填空题

文章目录 字母数判断列名(进制问题)特殊日期大乘积星期几 字母数 由于是填空题,那么寻找的话,就直接让每一个位置都是A,通过计算看看是不是结果大于2022即可 判断列名(进制问题) 这道题目,我们可…

Linux篇:基础IO

一 预备知识 1. 文件内容属性,内容与属性都是数据,都要在磁盘中保存。 2. 文件分为打开的文件和没打开的文件。 3. 进程在访问一个文件的时候,都是要先打开这个文件。打开文件之前,文件在磁盘,打开文件之后&#xff0…

RocketMQ架构详解

文章目录 概述RocketMQ架构Broker 高可用集群刷盘策略 概述 RocketMQ一个纯java、分布式、队列模型的开源消息中间件,前身是MetaQ,是阿里研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具有高…

Mybatis-Spring | Mybatis与Spring的“整合“

目录 : 一、配置环境1. 整合环境需导入的JAR :Spring框架所需JARMybatis框架所需JARMyBatis与Spring整合的中间JAR数据库驱动JAR包数据源所需JAR包 (下面的例子中 : 用的不是这个数据源) 2. 编写“配置文件” 和 “.properties文件” ( 只是概述&#xf…

mysql从旧表 取出部分列并保存到新表几种方式介绍

在MySQL中,从旧表取出部分列并保存到新表有多种方式,主要包括以下几种: 1. 使用INSERT INTO ... SELECT语句: 这是最常用的方法。通过SELECT语句从旧表中选择需要的数据,然后使用INSERT INTO语句将数据…

【PHP】PHP通过串口与硬件通讯,向硬件设备发送数据并接收硬件返回的数据

一、前言 之前写过两篇PHP实现与硬件串口交互的文章,一篇是【PHP】PHP实现与硬件串口交互,接收硬件发送的实时数据(上)_php串口通信-CSDN博客,另一篇是【PHP】PHP实现与硬件串口交互,向硬件设备发送指令数…