1 绪论
1.1 课题研究背景及意义
垃圾分类作为建设和谐绿色社会环境所要达成的重要指标之一。最早是在 1904 年的德国开始相关政策的实行[1]。那时虽然垃圾分类制度并不完善,但人们渐渐地认识到了保护自然环境和回收可再生资源的重要性。另一方面,垃圾分类回收处置可以帮助垃圾清理人员提高工作效率,降低资源损耗,对自然环境与社会经济都起到了良好的促进作用[2]。因此,在过去这 117 年里,许多国家都开始制定较为完善的法律制度,通过罚款等方式来约束市民强制进行垃圾分类。
在国外,如日本[3]等发达国家由于垃圾分类政策制定较早,市民也基本形成了环保的意识,故这些国家目前对垃圾的类别分的更细,且对每种垃圾的丢弃方法和丢弃时间均有严格的要求,未按规定进行垃圾分类将面临巨额罚款,情节严重者将面临坐牢的惩罚。在国内也是如此,自从 2019 年 7 月份开始,我国开始针对省会城市及各直辖市实行垃圾分类政策,拟定于 2025 年末,国家地级及以上城市将基本建成垃圾分类处理系统[4]。从国内外对垃圾分类的举措可以看出垃圾分类俨然已经成为社会亟需解决的问题之一,这不仅仅关系到国家,更关系到我们每一个人。
...................................
1.2 国内外研究现状
1.2.1 深度学习发展现状
深度学习起源于 2006 年,在神经网络算法经历了十多年的沉寂之后,加拿大 Hinton教授率先提出深度置信网络的概念,在当时的学术界引起了巨大轰动。Hinton 教授提出深度置信网络是由一系列受限波尔兹曼机构成,并采用无监督的逐层贪婪训练提取特征[8]。受到此项研究成果的启发,在 2012 年的 ImageNet 挑战赛上,Hinton 教授团队凭借其提出的 AlexNet[9]以极低的分类错误率拉开了与传统方法之间的差距,一举夺得该比赛的冠军。2014 年在基于 AlexNet 结构下继续增大网络深度的 VGGNet[10]和 GoogleNet[11]、2015 年时为了解决神经网络结构过深时产生梯度消失现象而提出的 ResNet[12],以及之后人工智能落地在嵌入式设备中运行的轻量级网络 ShuffleNet[13]和 MobileNet[14]。纵观深度学习的发展,深度神经网络结构在不断地向更深的层数探索,因为普遍认为更深层更复杂的网络往往能够学习到不同的特征,所以深度学习主要是通过增加网络的层数(深度)来提高预测和识别精度。
传统的分类方法如朴素贝叶斯[15]、Logistic 回归[16]、支持向量机[17]等,在使用这些方法时最关键的一步就是要对不同种类垃圾图像进行手动特征提取,分类结果的好坏很大程度上也是由选取特征的好坏和阈值的设置是否合适来决定。这项工作无疑给人们造成很大的困扰,当要分类的对象更加复杂或不能很容易的找到其特征时,分类效果会大幅下降。而深度学习方法则打破了传统分类算法这一要求,在我们给予神经网络大量训练集时,神经网络就可以自己在众多训练集里提取特征,当待识别对象越复杂时和传统方法的差距也就越明显。
目前,深度学习已经融入到各个领域中,常见的有视频监控、语义分析、灾害预测、实物识别等[18],在这些应用背景中深度学习已经越来越成为其中最为核心的技术,分类与识别的准确率往往也都在 90%以上。但即使深度学习有着看似非常不错的成绩,我们对它的了解也少之甚少,这就是深度学习的“黑箱”问题[19]。我们并不知道深度神经网络究竟提取了些什么特征,就像我们并不知道大脑是如何进行训练才使得我们能够判断出眼睛所看到的东西,要真正的解决掉这个问题,需要计算机科学、脑神经科学、数学、认知科学等多学科知识相互促进、共同发展,所以深度学习在未来还有许多值得我们去进一步探索的地方。
..............................
2 智能自动分类垃圾箱核心技术概况
2.1 图像分类识别技术
2.1.1 K 最近邻分类法(KNN)
K 最近邻(K-Nearest Neighbor)分类法[36]是机器学习领域内一种常见的有监督分类算法,其早在 1968 年就被提出,并很好的诠释了“物以类聚”的思想。算法的原理是通过大量标定数据集样本中的不同特征,而实验证明,相同类别的数据所包含的特征也是相同或者相似的,当碰到未知类别的数据时,通过计算该数据和各类样本集之间的“距离”,从而选取“距离”最近的样本集类别作为该未知数据的类别。
使用前两节所述的 K 最近邻分类法和支持向量机算法做垃圾图像的分类识别。当待分类垃圾类别过多时,识别率会显著降低。还有最重要的一点,对于垃圾图像数据集而言,很难找到一个或多个非常合适的特征将不同类别垃圾分开。而在 1989 年时,LeCun 教授提出的卷积神经网络算法[41]解决了这一问题,实现了图像特征的自动提取,也实现了多类别非线性图像的分类识别,且层数越深效果越好。
卷积神经网络算法极好的诠释了人类脑神经网络的机理。在人类大脑中,有数以亿计的神经元共同构成了神经网络系统,每个神经元之间通过轴突和树突(细胞体)相连接,并且各个神经元间通过电信号和化学信号相互产生“交流”。
据 2.1.3 节所述,当卷积神经网络层数增加时,相应的模型参数数量也会呈现爆炸式增长,对于普通的 CPU 硬件已经不能够承受如此规模的计算量。所以,一般在云服务器上做模型的训练。当图像数据集输入模型后,模型参数从初始设定值到训练完成需要较长的时间,而当输入发生变化时模型又得从头开始训练以适应新的数据集。如此一来,使用卷积神经网络做生活垃圾图像的分类时效率极低。
迁移学习[43]就是为了解决这个问题而引入的,这是由于图像在边缘、纹理和角点等特征具有许多相似之处,这样就为迁移学习提供了理论基础。故在数据集发生改变时,可以继续使用之前已经训练过的模型做进一步训练,对模型参数做微调,而试验结果也证实了迁移学习的有效性。
.............................
2.2 深度卷积神经网络技术
2.2.1 基本构件
卷积神经网络的基本构件可分为卷积层、池化层和全连接层。其中,卷积层主要是用来获取图像特征的,而池化层则是用来降维,最后一步的全连接层是处理分类得到结果的。三种构件按一定顺序组合可将图像完成分类。
通过卷积运算来提取数据集特征。首先,需要设计一个核函数(Kernel Function),再使用设计好的核函数对输入矩阵自左上开始到右下按 strides 逐一进行计算,当希望学习和获取到更多细节时,就要扩充卷积核的数量。
2012 年从 8 层 AlexNet 网络开始,神经网络结构就不断地朝着更深的层数进行发展。目前存在的经典网络结构见表 2-2,而神经网络结构均是由 2.2.1 节所介绍的基本构件组合而成。最终,本文在设计智能自动分类垃圾箱时确定为轻量级神经网络 Inception V3 结构,而理论部分使用的是改进后的 ResNet50 结构。
..............................
3 智能自动分类垃圾箱硬件设计 .................................. 17
3.1 机械结构与传动系统设计 .................................. 17
3.1.1 产品总体设计方案 ............................... 17
3.1.2 传感器的选用 ...................................... 19
4 智能自动分类垃圾箱软件设计 ............................................... 31
4.1 上位机嵌入式软件设计 ................................................ 31
4.1.1 Raspbian 操作系统移植 ........................................... 31
4.1.2 TensorFlow 环境搭建 ............................................. 32
5 废品图像深度神经网络识别算法 ............................................. 45
5.1 基于 ResNet50 的深度残差神经网络模型构建 ............................... 45
5.1.1 深度残差网络结构 ................................................ 45
5.1.2 ResNet50 神经网络结构 ........................................... 46
5 废品图像深度神经网络识别算法
5.1 基于 ResNet50 的深度残差神经网络模型构建
5.1.1 深度残差网络结构
前两章分别从硬件设计和软件设计两个方面对智能自动分类垃圾箱实际开发做了深入讨论,而本章主要针对自动分类垃圾箱的理论部分展开研究。由于受到嵌入式硬件平台计算能力与产品成本等多方面的限制,在实际开发时,主要以识别速度和算法模型包的大小作为首选条件,故在上位机 Raspberry Pi 上移植了轻量级的 Inception V3 神经网络,但是这是一种牺牲准确度而提高产品运算速度的一种“无奈之举”。
今后随着智能硬件技术的持续进步,硬件的运算速度会越来越快,成本会越来越低廉,人工智能相关产品也会呈现井喷式增长。对于智能自动分类垃圾箱产品来讲,其核心的垃圾图像分类识别算法也可用深度更深的神经网络模型去实现,所以本章就是在不考虑硬件计算速度的前提下努力提升垃圾图像分类识别的准确率,提出一种适合于垃圾图像分类的深度神经网络模型。
从 2012 年 Hinton 提出 AlexNet 开始,越来越多的国内外学者就开始关注 CNN 网络并加入到深度学习领域的研究中来。而在残差神经网络提出之前,相关领域专家普遍认为增加卷积神经网路层数对处理多分类、高度非线性问题非常有效。但是,过深的网络结构势必带来梯度消失(爆炸)、网络退化等现象,网络的训练效果也不会很好。为了解决这些问题,ResNet 引入了一种残差网络结构[73],详见图 5-1,这种结构使用恒等映射将 n-1 层输出直接传到后面的层而不是仅仅只可作为第 n 层的输入,这种残差跳跃式的结构,既不会产生额外的参数,也可以使神经网络深度设计的更深,同时为叠加多层网络而使学习准确率在达到饱和后也不会降低。
.........................
6 结论与展望
6.1 全文总结
本文使用 Raspberry Pi 做上位机、STM32 开发板做下位机,结合物联网、机器视觉等技术设计开发了一款智能自动分类垃圾箱样机,并且对垃圾箱的核心技术——基于深度神经网络的垃圾图像识别算法从理论上做了深入研究。
在产品开发上,本文在上位机上实现了垃圾图像分类识别功能,下位机上了实现垃圾箱传动系统控制与传感器检测功能,并使上下位机之间进行通信。全文首先从智能自动分类垃圾箱硬件出发,提出了一种新的垃圾箱产品解决方案,产品设计三维效果图如图 6-1所示;接着,产品软件部分,使用 C/C++语言编写下位机控制舵机与步进电机驱动代码,使用 Python 语言编写上位机调用在 PC 端已训练好的 Inception V3 神经网络 PB 模型文件完成图像识别代码;最后,将产品接入物联网云平台,远程实现对智能自动分类垃圾箱的监测与运维。
全文从理论上,提出了一种新的适用于回收废品分类的改进 ResNet50 神经网络算法模型。经在 GitHub 开源废品分类图像数据集上测试得,改进后模型识别相比于其他网络结构收敛速度更快、识别准确度更高。
本文的主要工作以及研究内容总结如下:
1)介绍了智能自动分类垃圾箱产品相关核心技术(深度学习、图像识别、物联网)的发展情况,阐述了目前全球垃圾资源现状与国内外对于垃圾分类所采取的政策与制度,最后对现有智能化垃圾分类产品做了分析;
2)设计了一种新的智能自动分类垃圾箱产品解决方案并申请了国家发明专利,完成了包括垃圾箱机械结构、传动系统、传感器以及上下位机的嵌入式硬件设计部分,在完成了步进电机选型后又对其 PID 控制做了深入研究;
3)针对所设计的智能自动分类垃圾箱硬件平台,进行了上位机操作系统移植与软件运行环境的搭建工作,并在上位机上编程实现了使用 PC 端训练好的 PB 算法模型文件进行图像识别,在下位机上完成了舵机及步进电机驱动的代码实现,最后将上下位机实现串口通信。当软件部分整体设计完成后,又将垃圾箱接入物联网云平台实现远程监控与运维;
4)针对目前垃圾种类复杂多样、形状各异并且很难手动提取其图像特征的问题,本文在理论部分提出了一种可用于回收废品分类的改进 ResNet50 神经网络模型。在研究了ResNet50 网络正反向传播原理后,在原始神经网络结构的基础上,减小卷积层 1 的卷积核大小,增加网络宽度,在开源废品数据集上经测试得,改进后的模型极大的提升了废品图像分类识别准确率与识别精度。
参考文献(略)