基于深度学习的智能垃圾分类系统V1.0设计文档_第1页
基于深度学习的智能垃圾分类系统V1.0设计文档_第2页
基于深度学习的智能垃圾分类系统V1.0设计文档_第3页
基于深度学习的智能垃圾分类系统V1.0设计文档_第4页
基于深度学习的智能垃圾分类系统V1.0设计文档_第5页
已阅读5页,还剩15页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实用文档基于深度学习的智能垃圾分类系统V1.0设计文档 TOC\o"1-2"\h\u目录TOC\o"1-3"\h\u13576第一章智能垃圾分类系统深度学习部分概述 1133151深度学习简介 1143181.1深度学习介绍 1143181.2深度可分离卷积技术 2232451.3卷积神经网络结构设计 347981.4训练步骤 4173891.5训练结果 425269第二章智能垃圾分类系统软件概述 6259582系统软件简介 6199932.1垃圾识别模块 6196152.2垃圾分类查询模块 6180182.3在线音乐播放模块 7180182.4系统软件总流程 823431第三章智能垃圾分类系统用户手册 第一章智能垃圾分类系统深度学习部分概述1垃圾分类模型简介本次系统采用深度卷积神经网络模型对垃圾进行分类,数据集获取、数据预处理、卷积神经网络结构设计、超参数选取、训练模型得到训练结果,一整套程序子模块连贯起来,完成深度学习部分垃圾分类程序,实现目标功能。1.1深度学习介绍随着处理大数据的深度网络架构的出现,在不执行其他任何功能的情况下,就准确性,可扩展性,适应性而言,深度学习提供了同类最佳的性能。相比于传统的手工提取特征,深度学习可以从输入图像自主提取特征,共享权值,大大减少了参数,而且能够通过反向传播调整、更新权值不断学习到图像内容。本系统采用深度学习中的卷积神经网络(ConvolutionalNeuralNetwork,CNN)对垃圾进行分类处理。卷积神经网络主要包括以下4个层:卷积层;特征提取,如轮廓、边、角点等。该层接收一些输入量,在这种情况下,图像将具有特定的高度,宽度和深度。它存在一些过滤器,它们基本上是由随机数初始化的矩阵。滤镜在空间上较小,但深度与输入图像的通道相同,对于RGB,滤镜的深度为3,对于灰度,滤镜的深度为1,依此类推,过滤器在输入量上进行卷积。它在图像中进行空间滑动,并在整个图像中计算卷积,过滤器最终为输入图像生成激活图。卷积积的计算方式如下:其中w是滤波器、x是输入图像、b是偏差,在每个卷积层的末端,CNN最终会获取滤波器的激活图。激活函数为ReLu:池化层;图像降维,保持平移旋转不变性,一般常用的池化有平均池化和最大池化。最大池化层:最大池化基本上只是激活映射的下采样层,通常使用2ⅹ2过滤器和步长为2的最大池化层,最终将输入激活图缩小为一半的空间图。池化的另一种方法是平均池化,在这种方法中,子矩阵的最大值保留为下一层的平均值而不是最大值。非线性层;采用ReLu、Sigmoid等非线性激活函数激活,增加网络学习能力。全连接层;在最后将体积作为输入,它像正常的神经网络一样完全连接到整个输入量,该层执行最后一个矩阵乘法器以计算输出。一般作为分类器和softmax损失函数搭配使用。1.2深度可分离卷积技术深度可分离卷积(DepthwiseSeparableConvolution)则是将标准卷积分解为一个深度卷积和一个点卷积,深度卷积过程实际上是将输入的每个通道各自与其对应的卷积核进行卷积,最后将得到的各个通道对应的卷积结果作为最终的深度卷积结果。实际上,深度卷积的过程完成了输入特征图的过滤,深度卷积过程如图1-1(b)所示,其计算量为:这里的点卷积则是将深度卷积的结果作为输入,卷积核大小为1×1,通道数与输入一致。点卷积过程类似标准卷积,实际上是对每个像素点在不同的通道上进行线性组合(信息整合),且保留了图片的原有平面结构、调控深度。相比于深度卷积,点卷积具有改变通道数的能力,可以完成升维或降维的功能。点卷积过程如图1-1(c)所示,其计算量为(a)标准卷积核(b)深度卷积核(c)1×1卷积核图1-1深度可分离卷积过程设M为输入通道数,N为卷积核数量,DK为卷积核大小,DF为输入图片的高和宽。下面给出两种卷积的计算量对比。标准卷积计算量为:深度可分离卷积计算量为:深度可分离卷积相比较于标准卷积计算量减少了由此可见,深度可分离卷积可有效减少计算量,若神经网络使用卷积核大小为3×3,则深度可分离卷积可减少8至9倍计算量。相比传统标准卷积,这种分解在有效提取特征的同时,精度损失也较小。1.3卷积神经网络网络结构设计用于垃圾分类的卷积神经网络输入尺寸为64ⅹ64ⅹ3,如表一所示。表一卷积神经网络网络结构Type/StrideFilterShapeInputSizeConv2D/s13ⅹ3ⅹ3ⅹ6464ⅹ64ⅹ3Separable_conv2d/s25ⅹ5ⅹ64ⅹ12864ⅹ64ⅹ64Conv2D/s13ⅹ3ⅹ128ⅹ12832ⅹ32ⅹ128Separable_conv2d/s25ⅹ5ⅹ128ⅹ25616ⅹ16ⅹ128Conv2D/s13ⅹ3ⅹ256ⅹ2568ⅹ8ⅹ256Separable_conv2d/s25ⅹ5ⅹ256ⅹ5128ⅹ8ⅹ512AvgPool/s1Pool4ⅹ44ⅹ4ⅹ512FC/s1512ⅹ61ⅹ1ⅹ512SoftmaxClassifier1ⅹ1ⅹ6本系统的卷积神经网络中,首先将输入特征图通过一个标准卷积层,然后在通过6个标准卷积层+深度可分离卷积层。使用深度可分离卷积下采样,计算量是标准卷积的K2之一。通过5×5滤波核的深度可分离卷积下采样,弥补下采样带来的特征损失,增加感受野,同时,降低参数。然后依次经过平均池化层、全连接层提取特征。为了更好地提取特征和使网络快速收敛,每经过一个点卷积层处理后的输出都要经过ReLU非线性激活函数处理从而增加非线性表达能力,而在深度卷积层为了尽可能保留信息,不加入非线性激活函数,采用线性输出。在分类器设计方面,采用Softmax分类器。假设分6类,表示Softmax层6个结点的离散概率,显然设h为倒数第二层节点的激活,w为倒数第二层与SoftMax层连接的权重,表示对应结点输出,则有:的计算公式为:1.3训练步骤本系统采用的是环境配置是:操作系统为Window10,集成开发环境为PyCharm,处理器为IntelCorei5-4200M@2.5GHz内存为8G,采用GPU加速,显卡为NVIDIAGT750M,显存为2G。所有编程均以python为基础。采用神经网络框架为Tensorflow1.4.0+Keras2.2.4。完整的训练流程图如图1-4所示。图1-2卷积神经网络训练流程数据集采用的是Kaggle垃圾分类竞赛的数据集,有cardboard、galss、metal、paper、plastic和trash共六类垃圾,每类垃圾对应的数据量为403、501、410、594、482和137,总共2527张图片。按照9:1分为训练集和验证集。验证集用来测试评估神经网络模型的准确率和超参数,如批处理大小batchsize、神经网络深度、学习效率等。经过不断地训练测试调优过程,我们选取最优模型构建垃圾分类系统的识别模块。数据预处理采用Keras的ImageDataGenerator,将图片边训练边处理,大大提高效率。ImageDataGenerator()是keras.preprocessing.image模块中的图片生成器,可以每一次给模型输入一个batch_size大小的样本数据,同时也可以在每一个批次中对这batch_size个样本数据进行增强,扩充数据集大小,增强模型的泛化能力。比如进行旋转,变形,归一化等等。总结起来是两个点:(1)图片生成器,负责生成一个批次一个批次的图片,以生成器的形式给模型训练;(2)对每一个批次的训练图片,适时地进行数据增强处理(dataaugmentation);本系统的卷积神经网络模型采用的数据增强方式,包括:归一化。数据缩放,把像素值点除以255,使之在0到1之间。错切变换。错切变换角度为-36到36度之间。随机缩放。随机缩放范围0.9-1.1之间。水平偏移。图片宽度的十分之一,数据提升时图片随机水平偏移的幅度。竖直偏移。图片高度的十分之一,数据提升时图片随机竖直偏移的幅度。水平翻转。随机对图片进行水平翻转。竖直翻转。随机对图片进行竖直翻转。图片缩放。为了减少计算量,将图片统一调整为64×64大小。1.4训练结果卷积神经网络算法工作在两阶段循环中,即正向传播和反向传播,在前向通过过程中,图像将传递到上述每个层,并计算输出。将预期输出与实际输出进行比较,并计算误差,在计算出误差之后,该算法随后调整权重。滤波器的权重的调整是反向传播阶段,此阶段与优化技术(例如梯度下降)结合使用,以尽可能降低误差。经过1.3小节的测试,本系统Batchsize大小为32,学习率为0.001,优化器为Admn,使用Softmax进行分类。Softmax计算每个类别的概率在0到1之间,然后取最大值所属的类别作为最终分类类别。深度学习相当于一个黑匣子,为了解网络是否学习到相关内容,现将1.3的训练过程训练集和验证集的准确率和训练集损失、验证集损失可视化得到以下结果,如图1-3、图1-4所示。图1-3卷积神经网络训练集跟验证集准确率图1-4卷积神经网络训练集跟验证集损失值训练集在150个epoch后趋于稳定,验证集在100个epoch后趋于稳定,平均准确率在83%以上。验证集损失波动有点大,是因为划分数据集的数据量少。第二章智能垃圾分类系统软件概述2系统软件简介本次系统采用PyQt5编写,PyQt5为编程语言Python和Qt库融合上的API。系统思想:采用模块化、分层次的设计方法,通过对不同过程、不同情况下的处理方法来编写对应的处理子程序,将子程序按照一定的逻辑顺序组合在一起后,完成主程序,最终实现目标功能。2.1CNN垃圾识别模块本系统分类采用卷积神经网络进行垃圾分类。读取图片数据,对数据进行处理,包括调整图片大小、像素点归一化。加载CNN模型,导入权重,识别出是cardboard、galss、metal、paper、plastic和trash共六类垃圾中的哪一类,再判断所属的干垃圾、厨余垃圾(湿垃圾)、可回收物、有害垃圾四大类别之一。最后在PyQt5界面显示相关信息。具体系统设计思路如图2-1所示:图2-1智能垃圾分类流程图2.2垃圾查询模块本系统垃圾查询模块,采用Python爬虫方式获取网页文本信息。Python爬虫的基本流程:(1)发起请求通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应。(2)获取响应内容如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型。(3)解析内容得到的内容可能是HTML,可以用正则表达式,页面解析库进行解析,可能是Json,可以直接转换为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。(4)保存数据保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件。本次爬取的网页是/。将输入要搜索的关键词转化为utf-8格式字符,然后拼接到垃圾分类网页地址后,再用Chrome浏览器打开网页上的Network找到相应的headers的值,否则会导致请求的信息不完整。向网页发起请求,获取HTML响应内容,通过Python库Beautifulsoup解析HTML。使用find_all()搜索当前标签div的所有标签子节点,并判断是否符合过滤器的条件定位输入关键词的文本信息,最后获取输入关键词所属垃圾类别以及该类别垃圾的定义、主要包括垃圾种类、投放要求信息,最后在PyQt5编辑的界面文本框显示出来。思路如图2-2所示。图2-2垃圾分类查询流程图2.3在线音乐模块我们需要下载音乐的平台是网易云音乐网,通过检查网页源代码,查看搜索和下载的网址,我们可以找到网页的信息是在这个url里面/weapi/cloudsearch/get/web?csrf_token=e87cd24a6de0c3c3b28727eaa8f2727b这个url需要通过post请求才能得到数据,其中post请求的加密参数是params,encSecKey,我们需要解密这两个参数才能拿到数据。通过不断的调试,找到相对应的函数代码块,在通过python的方式还原加密方式,设置相应的请求参数,从而搜索列表。总体的密码加密步骤为:首先用nonce对text加密生成密文1然后用随机数seckey加密密文1生成密文2,随后,用公钥加密seckey生成密文3其中,密文2作为请求参数中的params,密文3作为encSeckey字段,这样,接收方可以通过私钥解密密文3获得seckey(随机数),然后用seckey解密密文2获得密文1,最终用统一协商的密钥nonce解密密文1最终获得text。最后根据id获取指定音乐列表。播放时根据歌曲id所在的链接进行播放。相应流程图2-3所示:图2-3在线音乐播放流程图2.4系统软件总流程在PyQt5上编辑上传图片、开始识别、垃圾查询、垃圾科普、在线音乐各自的界面,然后集成到总界面上。具体来说,在程序设计上,采用模块化,编写不同的子程序来逐个实现各个模块的功能,在总程序中整体调度各个子程序,使各个子模块结合起来,协调共同完成实现垃圾分类系统的基本功能。如图2-4所示。图2-4系统软件总流程图第三章智能垃圾分类系统用户手册3用户使用手册简介在完成软件系统设计之后,为了方便用户使用,增加了用户手册说明,包含第四章的部分系统测试结果图。3.1各模块使用3.1.1系统总界面软件启动前需要输入密码,密码较为简单为12345,输入密码正确即可跳转系统软件主界面。系统软件总界面初始化会有语音提示,“欢迎使用智能垃圾分类系统”。系统总界面包括:在线音乐,垃圾查询,垃圾科普,开始识别,上传图片,退出系统。系统还可以显示上传图片的路径、显示区域以及识别结果等功能。3.1.2垃圾科普当用户使用此系统,对垃圾分类知识模糊不清时或想加深对垃圾分类知识的理解,可以点击界面的垃圾科普按钮,这时会弹出垃圾小百科的窗口。窗口显示四类垃圾分别为有害垃圾、可回收物、厨余垃圾和干垃圾,以及四类垃圾的标志图。3.1.3垃圾查询光有垃圾科普还不够,为了方便用户查询垃圾信息,点击主界面的垃圾查询按钮,得到垃圾查询初始化界面。当输入为空的时候,单击查询,会提示“未输入关键字,请重试!!!”当在输入框输入想搜索的关键字,例如输入苹果,单击查询,会得到相应的输出,如下图:点击清空按钮,会将输出的文本框清空,界面如下图:3.1.4垃圾识别本系统需要用户上传垃圾图片,系统通过调用保存的已经训练好的深度卷积神经网络模型来推断上传图片的属于什么垃圾,并且判断并输出归属有害垃圾、可回收物、厨余垃圾和干垃圾的一种。上传图片后,可以在软件界面看到上传图片的路径、垃圾类型以及识别结果。识别过程有一定的延时。让用户更好地进行垃圾分类。3.1.5退出系统点击总界面的退出系统按钮,弹出消息框“确定退出?”,单击Yes退出,单击No取消。3.1.6在线音乐为了丰富本系统的功能和增加用户的便利性、黏性,本系统增加了一个音乐在线播放的功能。音乐播放器是基于网易云API的python和PyQt5实现的简易音乐播放器,主要实现功能包括音乐的搜索、播放、循环播放、下载。点击在线音乐会得到音乐播放器界面。播放器界面音乐播放器的初始界面如下:播放列表是空的,点击播放按钮不起任何作用。想要播放音乐必须点击右上角的一个搜索按钮。下面给出一个示例:歌曲搜索在搜索框输入莫哥窟,选择搜索的类型是歌曲,点击确认。如下图:这时得到莫哥窟歌曲的清单,我们选择第一首进行播放。播发不能拖进度条,只能顺序播放。播放详情如下图:歌词显示点击人物头像可以获取此歌曲的歌词。歌词是静态的。播放列表在播放莫哥窟后,莫哥窟被添加到播放列表。第四章系统测试4.1系统测试目的系统的测试代表着整个系统开发的主要部分,系统做的再好,都得需要对系统进行详细的测试一遍,这样才是整个系统开发的最终完成。不管开发什么程序,用什么语言,只要是系统开发都必须要做系统测试,系统测试主要是帮助开发人员找到系统存在的问题及危险,找到问题及时解决,这样系统才能放心安全的使用。才能更好地服务于科研团队信息管理,对于网上科研团队管理系统的测试,主要是通过开发员进行同时注册多个用户账号,然后进行同时登陆,来测试学习系统在多人同时登陆使用的时候是否会出现登陆不上或者登陆卡顿等现象,然后用户进行信息发送,查看对方是否可以第一时间收到消息推

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论