基于TensorFlow的智能垃圾分类系统的研究与设计
2020-07-24祝朝坤魏伦胜
祝朝坤 魏伦胜
摘 要:本研究旨在开发一种基于TensorFlow的深度学习应用程序,该应用程序通过OpenCV图像处理检测垃圾中的垃圾类型。为了提供最有效的方法,本研究对众所周知的深度卷积神经网络体系结构进行了实验。经测试Inception-v4的准确率要优于其他同类模型。本研究的模型是经过精心优化的深度卷积神经网络体系结构,用于对选定的可回收对象类别进行分类,其数据将通过STM32硬件端进行分析进而控制整个垃圾分类系统。
关键词:TensorFlow;Inception -v4;垃圾分类;STM32;OpenCV
0引言
使用传统的工艺对垃圾进行分类,需要增加人力和物力以及时间。在当前人工智能越来越普及的大时代背景之下,利用图像处理对垃圾进行分类是一种非常有效的方法。本研究的主要目的是设计一种基于深度学习算法的全自动垃圾分类系统来对常见垃圾进行分类。深度学习的方法已经成功应用到了各个领域,例如自动驾驶、医学成像和多种工业环境,在对象检测问题上取得了显著成果。
1 系统结构流程图
由框图可以知道本系统主要是由软件和硬件的组合,其中算法处理部分在PC端进行,将垃圾置于挡板上,由PC端进行OpenCV图像处理分割以及数据集的训练和识别,继而通过蓝牙将数据发送到MCU核心端控制垃圾桶旋转,与此同时,挡板打开,垃圾落入指定的格子内,从而完成垃圾自动分类。舵机用于控制挡板的开启以及关闭,步进电机控制垃圾桶精确角度的旋转,TTS串口语音播报模块实时播报当前的垃圾种类,进而由OLED显示出来,以方便使用者查看信息。
2 硬件设计
硬件端以STM32FI为核心,控制OLED模块、蓝牙模块、TTS语音模块以及步进电机,通过各种硬件实现了各种功能,硬件系统总体结构如图2。
3 TensorFlow算法设计
本研究的核心是TensorFlow,其用于数据集模型的训练,从而提升图像识别的准确率以及实现精准分类。
3.1 数据集的训练
本研究的重点是对可回收材料进行分类,该研究目的是识别一些最常见的可回收材料,例如玻璃,纸张,纸板,塑料,金属和垃圾。由于没有公开的垃圾数据集,故在该研究中需要手工收集自己的图像数据集,由于每一类的规模较小,所以对每一幅垃圾图像都进行了图像处理。包括图像的随机旋转、图像的随机亮度控制、图像的随机平移、图像的随机缩放和图像的随机剪切,此外还执行了均值减法和归一化。数据集包含六类可回收对象,数据集的图像具有白色背景,每张照片都会选择不同的方向和曝光度。图3显示了来自数据集的部分样本图像。
3.2 CNN卷积神经网络
CNN旨在明确用于图像分类,该算法首先从数据集中输入圖像,它将输入作为激活量,也将输出作为激活量。因此,在CNN中,中间层不像普通的人工神经网络那样是法向量,而是具有高度,宽度和深度的空间维度。该算法主要分为三层:卷积层、最大池化层和全连接层。
卷积层:该层接收一些输入量,在这种情况下,图像将具有特定的高度,宽度和深度。它存在一些过滤器,它们基本上是由随机数初始化的矩阵。滤镜在空间上较小,但深度与输入图像的通道相同,对于RGB,滤镜的深度为3,对于灰度,滤镜的深度为1,依此类推,过滤器在输入量上进行卷积。它在图像中进行空间滑动,并在整个图像中计算点积,过滤器最终为输入图像生成激活图。点积的计算方式如下:
f(X)= WTX+b
其中W=滤波器、x=输入图像b=偏差,在每个卷积层的末端,CNN最终会获取滤波器的激活图。激活函数为ReLu:
F(x) =max(0,x)
此激活函数最终会舍弃零以下的值,即将最小值阈值设为零。
最大池化层:最大池化基本上只是激活映射的下采样层,通常使用2x2过滤器和步长为2的最大池化层,最终将输入激活图缩小为一半的空间图。池化的另一种方法是平均池化,在这种方法中,子矩阵的最大值保留为下一层的平均值而不是最大值。
完全连接层:完全连接层在最后将体积作为输入,它像正常的神经网络一样完全连接到整个输入量,该层执行最后一个矩阵乘法器以计算输出。
在传统的多层神经网络中,神经元第一层与下一层中的所有神经元相连;卷积层在上一层的输出上建立本地连接,全连接层执行矩阵乘法,卷积层使用卷积过程,如等式(1)所示的线性数学过程:
在进行卷积过程中,w是卷积层的滤波器,x是这一层的输入,f(.)是激活函数sigmoid,是将输入向量与卷积层上神经元的权重向量(w)执行点积的一个数学过程。步幅(ζ)是一个参数,可以定义为卷积过程中过滤器窗口输入窗口上的偏移量,也可在等式4中被计算出来:
采用正整数ζ参数的原因是在卷积过程中加入样本稀疏函数来减小卷积过程中输入的大小。
该研究对CNN的多种模型进行了实验,最终发现inception-v4提供了更稳定的训练和更高的准确性。
3.3 试验结果以及数据
CNN算法工作在两阶段循环中,即正向传播和反向传播,在前向通过过程中,图像将传递到上述每个层,并计算输出。将预期输出与实际输出进行比较,并计算误差,在计算出误差之后,该算法随后调整权重。滤波器的权重的调整是反向传播阶段,此阶段与优化技术(例如梯度下降)结合使用,以尽可能降低误差,随后将数据集中的所有图像调整为256x256,然后再作为输入( input)输入到网络。
损失是使用二进制交叉输入法计算的,优化器使用的是RMSprop。CNN在GTX 750Ti上接受了大约3- 3.5小时的训练。由于使用扩展样本进行输入,所以即使增加了数据集的大小,它们也具有高度相关性,但这可能导致数据过拟合,通过调节网络的熵容量(模型中存储的信息量)解决了过拟合问题。本研究使用了非常小的CNN,几乎没有图层,每层只有很少的过滤器,同时数据增加和丢失(loss)为0.5,从而有助于减少过度拟合的情况。而为了判断模型是否过拟合,是否需要停止训练,则需要依靠验证集,即一边训练一边验证,从图4的实验结果可知,训练值一直低于验证值,未处于过拟合状态,最终实验数据如表1。
4 0penCV图像处理
本研究中,OpenCV用于对图像的采集以及预处理,此外,OpenCV也用于对输出结果进行处理。
4.1 形态学处理以及图像不变矩
图像处理包括将RGB图像转换为灰度图像,然后将其二值化。此阶段从图像中删除了不必要的特征。图像由Microsoft Webcam VX-6000采集并转换为灰度,获得灰度图像后,为了使灰度图像仅具有两种颜色(分别为0和255),应用了二值化处理,图5为相关算法流程图。
本研究用力矩描述图像而不是使用其他更常用的图像特征(例如宽度和高度),这意味着使用图像的全局属性而不是局部属性。该方法对于选择从目标垃圾中提取的一组数字属性很有用,以便于进行分类。
4.2 图像分割
处理步骤(分割)涉及将对象与背景和其他对象区分开,在此步骤中,使用了非常通用的图像处理方法,即:
a)边界检测(Canny算法)。
b)阈值以与背景隔离并消除噪声。
c)高斯模糊以柔化细节并过滤噪声。
d)从彩色到黑白和二值图像的转换,使用饱和通道来帮助寻找边界。
e)二值图像中的轮廓检测以单独分析对象。
阈值化采用Otsu算法,使用一个阈值将像素划分为两个类,其定义为每个群集的方差的加权和:
5 结论
随着处理大数据的深度网络架构的出现,在不执行其他任何功能的情况下,就准确性,可扩展性,适应性而言,深度学习提供了同类最佳的性能。本文提出了使用深度学习实现全自动垃圾分类的想法,而无需进行人工操作。要实现它,系统将使用庞大的数据集,用于对象检测的模式预测和训练算法。后期进一步的工作包括实时优化各种离散输入的结果和预测精度。这种方法有助于降低污染水平,从长远来看,其重点是发展通用垃圾分类框架,可以将输入图像的数据集更改为更多的特定场景,用于应用程序的执行。例如,该系统可用于对快餐店以及其他各个公共场合的垃圾进行分类。
参考文献:
[1] Mohammadi M,Al-Fuqaha A,Sorour S,et al.Deeplearning for IoT big data and streaming analytics:Asurvey[J]. IEEE Communications Surveys&Tutorials, 201 8,20(4): 2923-2960.
[2] Chu Y,Huang C,Xie X,et al.Multilayer hybrid deep-learning method for waste classification and recycling[J].Computational Intelligence and Neu roscience, 2018, 2018.
[3] Liu Y,Ge Z,Lv G,et al. Research on AutomaticGarbage Detection System Based on Deep Learning andNarrowband Internet of Things[C]//Journal of Physics:Conference Series. IOP Publishing, 2018, 1069(1): 012032.
[4]Y.Taigman, M. Yang, M. Ranzato, and LnWolf, "DeepFace: closing the gap to human-level performancein face verification," in Proceedings of Computer Visionand Pattern Recognition (CVPR), 2014 IEEE Conference,Columbus, OH, USA, 2014.
[5] Chen G, Wang H, Zheng J. Application of ImageRecognition Technology in Garbage ClassificationEducation Platform[C]//2019 5th International Conferenceon Control, Automation and Robotics (ICCAR). IEEE, 2019:290-294.
[6] Sudha S, Vidhyalakshmi M, Pavithra K, et al. Anautomatic classification method for environment: Friendlywaste segregation using deep learning[C]//2016 IEEETechnological Innovations in ICT for Agriculture and RuralDevelopment (TIAR). IEEE, 2016: 65-70.
[7] Lee S H, Yeh C H, Hou T W, et al. A LightweightNeural Network Based on AlexNet-SSD Model forGarbage Detection[C]//Proceedings of the 2019 3rdHigh Performance Computing and Cluster TechnologiesConference. 2019: 274-278.
作者簡介:
祝朝坤,男,硕士,主要研究方向:嵌入式系统、模式识别与图像处理。
魏伦胜,男,本科,主要研究方向:嵌入式系统、图像处理。