版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于深度学习的垃圾分类系统设计摘要目前,随着我国生产力水平的日益增强,人们的消费水平也在不断提高,高质量的生活同时也带来了大量的生活垃圾。生活垃圾的堆放不仅挤占人们的生存空间,同时对环境造成了极大的污染。近年来我国出台了许多有关垃圾分类管理的政策,但由于人们普遍缺乏垃圾分类相关知识,对于常见垃圾的分类标准比较模糊,往往会造成错误投放,造成大量可回收资源的浪费。受限于传统图像分类算法,垃圾处理流水线仍在使用人工分拣方式,工作强度大、效率低。因此,将目前发展迅速的深度学习技术应用于垃圾分类领域,对于降低人工成本、提高分类效率具有重要意义。本文通过深度学习的方法设计了一个垃圾分类系统,采用卷积神经网络的网络架构,以Iception-ResNet网络模型为基础,使用自己搜集到的含有8926张厨余垃圾图片的数据集进行训练,并对模型进行参数优化,不断提升识别准确率。最终模型识别准确率达到92.2%,实现了对生活中常见厨余垃圾的分类。关键词:卷积神经网络;深度学习;垃圾分类目录引言 [5],可以在更深的网络中取得很好的学习效果。ResNet网络在VGG网络的基础上通过短路机制加入了残差单元,使输入可通过跨层的数据线路更快地向前传播,进而使神经网络所需要的参数更容易被拟合优化。通过残差学习机制,ResNet网络拥有了更深的网络层次,但速度得到了提升,准确率得到了增长。ResNet34层网络结构示意图如图2-10所示:图2-10ResNet网络结构图残差学习单元示意图如图2-11所示:图2-11残差学习单元2.2.4Iception-ResNet模型Iception-ResNet模型结合了Iception的局部稀疏结构与ResNet模型中的残差网络,融合了Iception特征提取精度高与ResNet收敛速度快的优点,使得网络的运行速度更快、识别准确度更高。其在结构上沿用了Iception系列模型的结构,并在此基础上加入了残差连接,其与Iception模型的区别为:仅在Inception里面加入BN层,而在相加层不加BN层。Iception-ResNet模块结构示意图如图2-12所示:图2-12Iception-ResNet模块结构3搭建深度学习开发环境深度学习在图像识别、语音输入及目标检测等领域均有卓越的性能,但其开发环境复杂且缺乏完整全面的安装教程,现有教程众说纷纭甚至相互矛盾,配置过程中往往会出现各种各样的错误,且很难找到解决方法,是初学者入门的一大难题。本章节结合了网络上现有的教程,总结大量的失败经验,详细阐述了在Windows10系统中搭建深度学习开发环境的过程。3.1Anaconda目前人工智能领域的框架基本都是用Python来开发的,在开发的过程中需要用到大量的资源包及其依赖项,每次下载新的资源包时都需要手动查询新资源包与已安装的软件之间的版本依赖关系,为管理带来了极大的不便。Anaconda可以完美的解决Python库的管理问题,只需输入指令搜索需要的资源包,就能自动匹配安装,不需要考虑版本之间的依赖问题,且能够在不同的运行环境中自由切换。3.1.1安装Anaconda通过查询资料,了解到从官网下载Anaconda速度慢且容易出错,因此选择从清华大学镜像网站上下载安装Anaconda3。注意安装时不能勾选“将Anaconda的安装路径加入系统环境变量”的选项,否则运行时容易出现“无法定位到动态链接库”的错误。由于安装时会默认下载Python3.x作为脚本和程序使用的默认运行环境,不需要再单独安装Python。在Windows开始菜单启动AnacondaNavigator,打开默认虚拟环境的命令行窗口进行测试,出现“Hello,Anaconda!”即为安装成功,如图3-1所示:图3-1Anaconda安装验证图3.1.2配置环境变量Anaconda安装完成后需要进行系统环境变量的配置,用于寻找可执行文件的位置。其操作步骤为:打开电脑的属性,找到高级系统设置中的环境变量,选择系统变量,双击PATH添加新路径。配置好的环境变量如图3-2所示,其中:“D:\Anaconda”为Anaconda的安装路径,也是Python解释器的所在位置,添加此条路径使Python能够正常运行。“D:\Anaconda\Scripts”为conda自带的脚本及Python资源包的所在位置,添加此条路径使Anaconda能够正常运行。“D:\Anaconda\Library\bin“为conda安装的二进制包的所在位置,添加此条路径才能正常使用工具包“D:\Anaconda\Library\mingw-w64\bin”是使用C语言和Python混合编程时工具包的安装路径。图3-2配置Anaconda环境变量配置好环境变量后,在系统命令提示符中进行验证,输入指令“condainfo”,出现conda和python的版本号即说明配置成功,如图3-3所示:图3-3环境变量配置成功示意图3.1.3配置软件包下载服务器Anaconda软件包下载服务器的默认地址在国外,下载软件包的速度较慢,经常因为超时导致安装失败,因此使用清华大学开源软件镜像站来代替原有下载地址。在AnacondaPrompt中输入图3-4所示的三条命令即可完成换源:图3-4清华镜像站换源命令3.2TensorflowTensorflow是一个功能强大的学习框架,也是当前深度学习领域较为流行的框架,可用于语音识别或图像识别等多项深度学习领域。本设计中使用Tensorflow来处理图片数据,搭建卷积神经网络模型,进行迭代训练与优化。3.2.1选择安装版本Tensorflow分为GPU版本与CPU版本,主要区别在于训练速度不同。在训练小数据集时,两个版本之间的差距不明显;但训练大型数据集时,使用GPU版本的Tensorflow耗时将远小于CPU版本,更适合图片类卷积神经网络的学习,因此首选安装GPU版本。(1)根据Tensorflow官网的要求,安装GPU版本需要CUDA计算能力为3.5或更高的NVIDIA显卡,显卡内存最好大于4G。经查看后发现,本机的显卡驱动版本为GeForce940MX,其对应的CUDA计算能力为5.0,显卡内存为2G。由于显卡内存较小,安装GPU版本后未能正常运行,最终选择安装CPU版本。(2)Tensorflow1.x版本与2.x版本,2.x版本在1.x的基础上删除了很多旧库,并对其中的一些库做了合并,因此两大版本代码不互通。若要在2.x版本上运行1.x的代码,需要对代码进行修改,使用代码升级语句可以解决大部分版本问题,但仍可能存在一些无法解决的报错。考虑到目前的开源框架几乎都由1.x版本编写,为避免因版本问题导致的运行错误,选择安装1.x版本。最终版本选择:安装Tensorflowcpu1.15.0版本3.2.2配置虚拟环境由于Anaconda的默认虚拟环境中已安装的软件包很多,所以需要新建一个专门用于深度学习的虚拟环境。能够安装的Tensorflowgpu版本受限于显卡、对Python、CUDA和cuDNN的版本均有要求,CPU版本仅对Python做出要求,表3-1中列出了几种常用的版本对应关系表3-1版本对应关系Tensorflow版本Python版本cuDNNCUDAtensorflow-gpu1.13.02.7、3.3-3.67.410tensorflow-gpu2.1.02.7、3.5-3.77.610.1tensorflow-cpu1.15.02.7、3.3-3.7无tensorflow-cpu2.3.03.5-3.8在Anaconda中创建一个新的虚拟环境,根据Tensorflow和Python版本对应关系,选择3.7版本的Python,完成虚拟环境的配置,如图3-5所示:图3-5配置虚拟环境3.2.3安装Tensorflow打开Tensorflow虚拟环境下的命令行终端,通过命令:condainstalltensorflow-cpu=1.15进行安装。Anaconda会自动收集此版本Tesorflow的信息,列出需要安装的软件包,自动安装好常用包及依赖库,不需要考虑库与软件之间的版本对应关系。安装完成后通过如图3-6所示的指令进行验证,出现'hello,tensorf'代表安装成功。图3-6验证Tensorflow是否安装成功3.2.4出现的错误(1)首次安装时安装了tensorflow-gpu1.13版本,出现如下错误,经检查后发现显卡版本较老,与CUDA版本不匹配,只能安装1.3版本。由于1.3版本已经不再更新,未能找到下载资源。错误描述:RuntimeError:cudaruntimeerror(35):CUDAdriverversionisinsufficientforCUDAruntimeversionat…原因:CUDA驱动版本不满足CUDA运行版本。(2)将显卡更新至最新版本后,重新下载了tensorflow-gpu2.3版本,安装成功,但代码无法正常运行。运行代码时,所有文件都已经加载成功后,出现如下错误:Non-OK-status:Gpulaunch(FillPhiloxRandomKernelLaunch,num_blocks,block_size,0,d.stream(),gen,data,size,dist)nokernelimageisavailableforexecutiononthedevice原因:此时返回值是一串地址,说明程序非正常退出。经查询资料后发现,此错误是显卡内存不够导致的内存泄漏,需要重新安装CPU版本的Tensorflow。3.3Pycharm安装PyCharm2020.3.5版本并激活插件,由于软件安装简单,此处不再赘述。新建一个项目文件,将在Anaconda中配置好的python环境嵌入到编辑器中,如图3-7所示,即完成了环境导入。图3-7将Anaconda环境导入Pycharm4数据集的收集及扩充4.1数据集获取根据垃圾分类标准,厨余垃圾分为菜叶、剩菜剩饭、果皮、蛋壳、茶渣、骨头等几个大类别。经过搜索,共在网络上找到有关垃圾分类的开源数据集4个,分别包含垃圾图片14802张、29604张、80282张与12566张,图片基数巨大。但经过筛选后发现,其中两个数据集均未对图片种类进行具体分类,几万张图片只存放于一个文件夹内,需要手动分类,工作量巨大。而图片最多的数据集对厨余垃圾的分类过于详细,将每种食物单独分为一个类别,如八宝粥、糖葫芦、蛋挞等,没有按照大类进行区分。因此最终选择使用CIFAR10数据集,其中包含厨余垃圾图片3389张,分为骨头、茶叶、蛋壳、剩饭剩菜、水果、蔬菜、鱼骨头七个类别,基本符合厨余垃圾分类标准。由于此数据集基数较小,还需要增加图片数量并细化分类,从而减少因缺乏数据而使模型过拟合的可能性,并提高测试结果的准确性。4.2数据集扩充由于手动收集数据集是一项高重复低效率的任务,工作量较大且耗时较长,因此为了避免在收集数据时浪费时间下载和保存,选择使用网络爬虫来收集数据集。其原理是通过百度等搜索引擎发出搜索请求,然后解析和存储获得的内容。流程图如下图4-1所示:图4-1网络爬虫流程图本设计采用Python语言编程的现有爬虫程序,输入所需图片的关键词和需要爬取的张数,程序就能够自主通过浏览器检索关键词,从百度图库上下载需要的垃圾图片,并将其储存至相应文件夹。爬虫过程如图4-2所示:图4-2实际爬虫过程爬虫完成后需要手动对爬取下来的图片进行筛选。受限于网络上现有的厨余垃圾图片数量,往往下载的1000张图片中,仅有200至300张图片可用于垃圾分类,且手动筛选图片工作量比较大。在增加图片数量的同时,对分类标准也进行了细化,将一些特征鲜明的蔬菜、水果单独分类,以防止模型不能从同类图片中提取出足够的特征,影响模型的分类准确性。经筛选后,数据集扩充至8926张,共包含19个分类,其中图片的背景较为复杂,像素、尺寸、光线也各不相同,比较符合现实生活中的实际场景,如下图4-3所示:图4-3部分垃圾图片展示各类厨余垃圾的图片数量如表4-1所示,其中绿叶菜的图片最多共有1328张,梨的图片最少共有108张,其他类别大多分布在300-600之间。表4-1垃圾图片分类及数量标签序号垃圾类别图片数量1骨头3872茶叶渣7053蛋壳5294剩饭8165绿叶菜13286腐烂水果12527鱼骨头4118番茄4069坚果78610萝卜26811辣椒31812菠萝11913草莓21514橙子33415火龙果26216梨10817苹果24518西瓜28619蒜1514.3数据预处理本设计中按照8:1:1的比例将数据集划分为训练集、验证集与测试集。其中训练集是用于模型提取特征,验证集用于调整参数、降低模型过拟合的可能性,而测试集则用于测试模型最终识别效果。模型通过训练集来进行训练,通过多次调用验证集来提高泛化能力,最终将训练好的模型在测试集上进行一次测试,评估得到模型最终的泛化能力。数据集划分情况如图4-4所示:图4-4数据集划分示意图4.3.1数据集标注数据集收集完毕后,需要对图片进行标注,每个分类下的图片名称不能重复、不能出现汉字,否则程序不能正常运行。因此,选择利用ACDsee图像处理软件为扩充好的数据集进行批量重命名,保证每个分类下图片从1开始排序,便于训练和统计。批量标注过程如下图4-5所示:图4-5数据集批量标注4.3.2数据增强深度学习模型的训练需要大量数据集的支撑,如果数据集的样本数量过少,将发生过拟合问题,影响模型的训练效果。本设计中绝大多数图片来源于网络爬虫,由于能力和时间的限制,未能获取到大量图片,因此需要通过数据增强技术,对图片数据进行裁剪、翻转、缩放等操作,达到扩充数据集的目的。本设计中采用代码来实现图片增强技术,主要包括以下几个方面:随机向左/向右翻转一半的训练图像随机裁剪图片的边距,需手动给定裁剪图像的距离百分比随机确定图片缩放的百分比随机改变图像的亮度及饱和度
参考文献张楷伟.基于深度学习的Mosaic图像复原和识别方法研究[D].西安电子科技大学,2019.赖敏.基于深度学习的室内日常行为识别算法研究[D].中国地质大学(北京),2018.郭思琦.基于神经网络和3D视觉的果园苹果识别与定位的研究[D].北京交通大学,2019.李华清.基于SSD的航拍图像小目标快速检测算法研究[D].西安电子科技大学,2018.叶继华,祝锦泰,江爱文,等.人脸表情识别综述[J].数据采集与处理,2020,35(1):21-34.董子源,韩卫光.基于卷积神经网络的垃圾图像分类算法[J].计算机系统应用,2020,29(08):199-204.刘恩乾.基于深度学习的生活垃圾分类和检测[D].山西大学,2020.武凌,王浩,张晓春,周健,段爱华.基于深度迁移学习的垃圾分类系统设计与实现[J].沈阳大学学报(自然科学版),2020,32(06):496-502.吕程熙.基于深度学习实现自动垃圾分类[J].电子制作,2019(24):36-38.S.Li,M.YanandJ.Xu,"Garbageobjectrecognitionandclassificationbasedo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026重庆大学城树人小学人才储备备考题库及参考答案详解1套
- 成都市新都区毗河中学校关于2025年12月面向社会公开招聘校聘教师的备考题库及答案详解(考点梳理)
- 中-小-学-生-守-则
- 2025-2030中国保健冰糖市场产销规模与未来销售渠道分析研究报告
- 典当安全责任制度
- 2025-2030中国冷库门市场投融资规模与应用领域研究研究报告
- 供应商服务评价制度
- 手绘扁平可爱幼儿园家长会主题汇报
- 2025-2030细胞治疗产品注册审批路径及临床试验设计优化分析
- 2025-2030细胞治疗产业发展趋势及商业化前景分析报告
- 特种工安全岗前培训课件
- 新疆维吾尔自治区普通高中2026届高二上数学期末监测试题含解析
- 2026届福建省三明市第一中学高三上学期12月月考历史试题(含答案)
- 2026年辽宁金融职业学院单招职业技能测试题库附答案解析
- (正式版)DB51∕T 3342-2025 《炉灶用合成液体燃料经营管理规范》
- 2026北京海淀初三上学期期末语文试卷和答案
- 2024-2025学年北京市东城区五年级(上)期末语文试题(含答案)
- 人工智能在医疗领域的应用
- 2025学年度人教PEP五年级英语上册期末模拟考试试卷(含答案含听力原文)
- 【10篇】新部编五年级上册语文课内外阅读理解专项练习题及答案
- 南京市雨花台区医疗保险管理中心等单位2025年公开招聘编外工作人员备考题库有完整答案详解
评论
0/150
提交评论