APP下载

TensorFlow框架下垃圾分类软件的研究与实现

2020-11-16柳攀丁怀宝

数码世界 2020年10期
关键词:垃圾分类

柳攀 丁怀宝

摘要:垃圾分类是对垃圾收集处置传统方式的改革,是对垃圾进行有效处置的一种科学管理方法。本文以谷歌TensorFlow为框架,设计了一款能够进行垃圾分类正确识别的软件。文中对垃圾分类软件的设计及实现过程进行了简要介绍,重点是对其中的神经网络训练系统的设计、选择等进行了详细说明。该软件在大量测试数据的验证下,证明了其具有较高识别准确率,具有良好的市场应用前景,同时也可为同类研究提供了一定的借鉴和参考。

关键词:垃圾分类;TensorFlow;神经网络训练

1 引言

2019年9月,为深入贯彻落实习近平总书记关于垃圾分类工作的重要指示精神,国家机关事务管理局印发通知,公布了《公共机构生活垃圾分类工作评价参考标准》。由于人们对垃圾分类意识的薄弱以及受到知识的限制,这项工作并没能够很好的完成。基于此,本研究的设计思想是完成一个具有普适性的部署在安卓客户端的能够自动识别垃圾种类的应用程序,以便人们能够更方便的进行日常的垃圾分类。

2 设计概述

2.1 处理流程设计

如图1所示,按照MVC架构,软件大致分为三层:Model层为核心层,主要是通过TensorFlow Lite接口实现软件的模型推理部分;View层是视图显示部分,为软件的UI层,主要呈现分析结果,参数设置等;Controller层为控制层,主要实现对本地相机的调用并得到实时数据流,传回Model层进行模型推理。

软件处理流程设计如下:启动程序后,系统将询问是否开启摄像头权限,若拒绝退出程序,同意则进入程序;进入程序后,调用摄像头进行拍摄,将拍摄的图片经过简单分析计算,得到适合TensorFlow Lite识别的数据格式,转而交给推理模块进行深度计算;在计算之前,用户可以选定一些参数来控制计算的导向,最终将分析结果在显示模块中显示出来;点击关闭则退出程序,否则进入下一个物体的识别,具体见图2所示。

2.2 神经网络训练系统的设计

该系统是软件中最重要的部分,能够为软件提供准确的神经网络模型,以便软件能正确分析出垃圾的类别,其主要包含数据集获取、模型训练和模型迁移三个部分。

2.2.1数据集获取

本研究主要是针对生活垃圾进行分类,但由于生活垃圾的范围过于庞大,因此数据集的获取就通过Python语言从网络上大量爬取样例,预分类后对每一张数据集进行人工标注,见图3所示。虽然人工标注的步骤比较繁琐,但可以为TensorFlow建立神经网络模型提供更精准的识别条件,从而提高软件识别的准确率。

2.2.2模型训练

该部分又分为四个小功能,分别是数据预处理、导入数据集、产生初步模型、模型训练与优化。

(1)数据预处理

数据预处理包含数据增强处理、数据标准化处理和数据归一化处理。

数据增强可防止在数据集较少时出现过拟合,主要使用各种函数对图像进行相关调整,如裁剪、放大、缩小、旋转等。

数据标准化处理通过标准化公式得出,其公式如式1,在该式中,μ为全体图像数据的均值,σ为全体图像数据的方差。

(1);

数据归一化处理由归一化公式得出,其公式如式2,在该式中,Xmin是数据最小值,Xmax是数据最大值。

(2)

(2)导入数据集

图像数据通过TensorFlow.data类载入。将人工标注后的数据集处理转化为相应CSV数据,然后得到一个数据库,应用预处理函数可以从中得到可供训练的数据集。

(3)产生初步模型

该部分设计采用MobileNetV2神经网络模型实现,相较其他版本的神经网络模型,其具有速度快、参数少、方便使用等优点。

将深度可分离卷积分解为Depthwise Convolution与Pointwise Convolution两部分,可有效减少参数量。在传统卷积运算中,总运算量为一个卷积核与一张特征图的按位相乘再相加,即DF*DF*DK*DK*M*N,其中DF是特征图的尺寸,DK是卷积核的尺寸,M是输入通道数,N是输出通道数。而在深度可分离卷积中,一个卷积核的总运算量是DK*DK*M*DF*DF+M*N*DF*DF。

对比传统卷积计算量和深度可分离卷积计算量可得公式见式3,在该式中,由于输入通道数较大,常可忽略不计。若使用3*3的卷积核,则传统卷积的运

(3)

(4)模型训练与优化

设计把数据集导入并且分成多个批次,以便内存读取图像数据。优化器采用Nadam,损失函数选择交叉熵损失函数,二者均由Keras接口来实现。为防止训练停在局部最优点,将采取余弦退火学习率。这种模式能和学习率相互配合,以一种十分有效的计算方式来产生很好的训练效果。;;;

2.3模型迁移

该部分用于将上述训练得到的最优模型进行格式转换,提供给适用该软件的格式进行分析与显示。使用TensorFlow Lite converter转换器将最优模型转换为TensorFlow Lite能够识别的tflite格式,该格式的模型文件可直接应用于软件。

3 软件的实现

视图模块主要为软件的UI设计,由于要显示的内容只有所拍摄物体和识别结果以及一些参数的设置,因此布局结构并不需要特别复杂。

摄像头模块通过Camera2 API调用系统摄像头权限,同时将拍摄的图像数据流传到推理模块进行推理。系统通过管道连接到摄像头,并与之建立会话连接,之后通过CaputerRequest和CameraMetadata进行会话。

推理模块是软件的重点,对摄像头拍摄的图片使用经过训练后的神经网络模型进行处理,然后显示推理结论。模型是已经训练好的,数据的输入则是摄像头拍摄的图像流。而对模型进行预测还需要用到TensorFlow Lite提供的interpreter库,它可以实现用训练模型对拍摄物体的类别进行推理并显示到视图模块。

4 总结

本文介绍的软件是基于TensorFlow框架实现对模型的训练以及推理识别过程,能够比较有效的识别垃圾的种类,降低了垃圾分类工作的难度,具有良好的市场应用前景。

参考文獻

[1]赵方圆,刘洪浩.基于垃圾分类的APP设计研究[J].计算机产品与流通,2020(07):18+55.

[2]葛程,孙国强.基于卷积神经网络的图像分类研究[J].软件导刊,2018,17(10):27-31.

[3]李江昀,赵义凯,薛卓尔,蔡铮,李擎.深度神经网络模型压缩综述[J].工程科学学报,2019,41(10):1229-1239.

[4]林景栋,吴欣怡,柴毅,尹宏鹏.卷积神经网络结构优化综述[J].自动化学报,2020,46(01):24-37.

[5]陈丽丽,韩润萍.基于卷积神经网络的服饰图像分类[J].北京服装学院学报(自然科学版),2018,38(04):31-36+58.

基金项目

安徽文达信息工程学院校级科研项目(项目编号:XZR2020A08);安徽文达信息工程学院校级教研项目(No.2019xjy06)。

作者简介

柳攀(1997年),男,安徽宿州人,安徽文达信息工程学院计算机工程学院软件工程专业,本科在读;丁怀宝(1985年),女,安徽怀宁人,安徽文达信息工程学院计算机工程学院,讲师,硕士,主要研究方向为软件工程。

猜你喜欢

垃圾分类
关于垃圾分类回收的道德思考和建议
专业运营垃圾分类回收模式推动呼和浩特市居民分类行为转变研究报告
不是后G20时代杭州市垃圾分类管理对策研究
成都市生活垃圾分类现状及建议
基于互联网思维的再生资源智能回收系统设计(宝特瓶类)
小学校本课程《垃圾分类》智慧教育案例研究
浅析我国农村垃圾处理难题
日本城市垃圾分类的做法
高校环境教育非课堂教学模式的探索
刍议校园垃圾分类与高校学生管理