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编程框架。
图2-1系统监控流程图
3. 基于机器学习的垃圾监控系统
3.1 问题描述
(1).大量垃圾图片数据集的搜集与整理;
(2). 对一些城市的小区垃圾分类具体政策和垃圾分类标准的了解
(3).监控市民是否在规定时间投放厨余垃圾,防止厨余垃圾长时间无人处理而影响环境。采集投放点的视频图像,利用自然场景理解与识别算法,判断是否有人进行投放。若有市民未在规定时间投放厨余垃圾则自动警报。
(4).根据垃圾图像识别分出垃圾类型,基于机器学习的理念,收集大量不同状态的垃圾图像数据集,对数据集的图片进行图像处理,在此基础上利用深度学习卷积神经网络(ConvolutionalNeuralNetwork,CNN)提供的模型进行不断地训练优化,学习图像分类识别所需的大量特征,用于垃圾的分类识别。
(5).在厨余垃圾中检测其他垃圾,防止其他垃圾对厨余垃圾后续处理过程造成影响。采集投放进厨余垃圾点的垃圾图像,智能识别出图像中的其他垃圾并标记,当有其他垃圾误投进厨余垃圾点时,系统自动警报。
提出解决方案:对国内各大城市的垃圾分类政策流程进行分析与研究,找到最优化的厨余垃圾处理方案。
基于机器学习的智能分类:收集大量不同种类、不同形态的垃圾图片,通过网络爬虫等方法创建数据集并标注数据集,基于现有的机器学习方法,用keras包和Tensorflow等后端来建立模型,并对该模型进行优化调参,对已有的算法模型进行优化调参,以得到厨余垃圾的图像特征,实现从厨余垃圾中识别出非厨余垃圾。
图像处理:对于收集来的数据集图像和摄像头捕捉到的自然场景图像,利用OpenCV和其他计算机软件对其进行处理。基于自然场景的理解与分析算法,判别出是否有人投放垃圾,实现对垃圾投放人员进行监控。
3.2 基本算法模型
对收集垃圾图片进行test和train数据集划分,并利用OpenCV进行模板匹配并找出阈值,将该阈值用于test数据集进行测试
图3-1系统流程图
图3-2算法流程图
3.3 实验及分析
1、收集的用于train和test的数据集,命名1为不含非厨余垃圾,即合格;0为含非厨余垃圾即不合格,以方便后期程序设计。
图3-3数据集
2、Train的代码:对train数据集进行训练,寻找阈值。train数据集中含50张合格厨余垃圾图片,50张不合格垃圾图片。
图3-4train代码
3、使用matplotlib库画图以便阈值寻找,如下图,阈值为0.39比较好。
图3-5阈值寻找
4、Test的代码:对test数据集进行判断,判断是否含非厨余垃圾以及判断是否正确。test数据集中含15张合格厨余垃圾图片,15张不合格垃圾图片。
图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).