1. 引言
如今,智能垃圾桶制造行业不断发展与成熟,在国内的一些垃圾治理略好的省市,垃圾分类已进入智能回收时代,多数垃圾将被无害化处理。而现有智能垃圾分类系统一般只具备感应开盖、溢满报警等功能,仍存在识别效率低甚至不能识别、设备联动性低、无法针对烟雾自动报警等不足 [1]。本文针对这些问题研究设计了一种基于深度学习的智能垃圾分类系统,该系统具有智能识别、控制分类、GPS定位、太阳能充电以及智能烟雾报警等功能,通过利用服务器部署的深度学习模型对垃圾图片识别并处理,实现了对垃圾的自动识别和智能分类,并开发微信小程序进行远程监测,有效提高了垃圾分类效率。
2. 系统整体结构框架
系统的总体结构框架如图1所示。由硬件端和软件端组成系统整体架构,其中硬件部分包括树莓派(Raspberry Pi)微型电脑处理器、红外线测距模块、烟雾报警模块、舵机控制模组、高清拍摄模组等。软件端由服务器部署的深度学习模型和手机微信小程序端组成。

Figure 1. Overall system design block diagram
图1. 系统整体设计框图
智能垃圾分类系统通过搭载的高清摄像模组捕捉垃圾图像后将获取到的图像上传到云服务器端的深度学习模型中进行识别,将识别结果返回到树莓派硬件端。树莓派微处理器根据收到的结果控制舵机运作并将垃圾自动分类投放。
微信小程序端添加GPS定位功能和监测垃圾桶余量功能,可以实现远程查看垃圾桶在城市中的分布区域以及各个垃圾桶的装载情况,进而提高管理效率。
相较于传统垃圾桶,智能识别垃圾桶上装载有太阳能供电电路及烟雾报警电路,可为智能识别垃圾桶提供所需的电源,并在出现火情时对烟雾进行及时报警,避免火势的扩大。智能垃圾桶户外实物图如图2所示。

Figure 2. Outdoor physical drawing of intelligent trash can
图2. 智能垃圾桶户外实物图
3. 系统软硬件设计
3.1. 软件开发
系统的软件部分利用MQTT服务器搭建物联网平台,通过云服务器端的深度学习识别模型对图片进行识别并返回硬件端处理,完成对垃圾的自主识别、分类投放,并通过微信小程序实时监测数据。
3.1.1. 物联网云平台
构建物联网云平台用以展示当前模型内的实时数据。通过流程编辑器Node-Red,以可视化的编程方式连接硬件设备和服务器构建平台 [2]。
3.1.2. 微信小程序
微信小程序功能实现页面如图3所示,具体功能描述如下:
1) 发生火情时,烟雾传感器将报警信息实时发送到小程序端自动报警,通知相关人员及时处理;
2) 通过高德地图API接入小程序,实现垃圾桶的定位功能;
3) 实时监测垃圾桶的装载余量,在垃圾桶满载时发出提醒信息,清理垃圾的相关人员实时查看数据信息,提高其工作效率 [3]。
3.1.3. 数据集的获取
系统的研究数据来源于华为云人工智能大赛垃圾分类挑战杯所提供的生活垃圾数据集,其中共有20,000张垃圾图片。图片中垃圾的类别格式为“一级类别/二级类别”,其中,厨余垃圾、有害垃圾、可回收垃圾和其他垃圾等废弃物作为一级类别 [4]。二级类别是具体的垃圾物体类别,也就是训练数据中标注的类别,比如一次性快餐盒、果皮果肉、旧衣服等 [5]。

Figure 3. WeChat applet management end
图3. 微信小程序管理端
3.1.4. 卷积神经网络图像识别
本文采用卷积神经网络对垃圾图片进行识别。卷积神经网络(CNN)结构图如图4所示,能够保持图片的原始维度和保留图片原有信息。

Figure 4. Structure diagram of convolutional neural network
图4. 卷积神经网络结构图
首先,将原始图像作为底层图像level 0 (高斯金字塔的第0层),再用高斯核(5 * 5)对图像进行卷积,然后对得到的图像做下采样(去除偶数行和列)得到上一层图像G1,再用该图像作为输入,通过反复卷积和下采样得到更上层图像,反复迭代多次,形成金字塔形图像数据结构,涉及到的算法公式如(1):
(1)
其次,调用TensorFlow的封装Keras的API:Conv2D,对图像卷积操作,涉及到的算法公式如(2):
(2)
其中f为输入图像,g为卷积核,h为输出结果。
卷积之后进行池化处理 [6]。通过调用TensorFlow的高级封装Keras的API:MaxPooling2D,对空间数据的最大池化。池化计算公式为(3):
(3)
此公式包括了池化,加偏置与激活过程,其中
表示第i层神经元中第j个特征图,down(*)表示池化操作,f(*)为激活函数,
为偏置 [7]。
为提高神经网络稳定性,对其批量标准化操作,调用TensorFlow的封装Keras的API:BatchNormalization,涉及到的算法公式如(4):
(4)
3.1.5. OpenCV处理
图片的输入采用OpenCV,先对摄像头拍到的图片做预处理操作,再将处理得到的图片输入到神经网络模型的输入层转化为数组进行处理。图5为图片预处理过程图,图片的预处理过程描述如图5:
1) 将图片的大小放缩为256 * 256;
2) 进行灰度化处理;
3) 进行高斯滤波处理;
4) 对图片进行边缘检测及二值化处理。

Figure 5. Picture preprocessing process
图5. 图片预处理过程
3.1.6. 模型的训练
首先将40种二级类别的垃圾进行标记处理,每种垃圾都带有对应的数据标签。再将其打包成json文件,导入项目工程中,准备使用。
然后将模型初始化,引入卷积神经网络ResNet50初始化模块,在基于网络结构的模型下,对其进行二次训练。再对模型进行多次调试,经过两次迭代后,开始对模型进行训练 [8],训练图如图6所示。将训练好的模型保留,提供给预测模型应用。
3.2. 硬件程序设计
基于深度学习的智能垃圾分类系统主要以树莓派、STM32F10RCT6为硬件控制核心,采用USB高清摄像头、舵机云台、MQ2烟雾传感器等模块,实现了对垃圾的拍照、自动分类及烟雾报警等功能。硬件数据信息处理流程图如图7所示。

Figure 7. Data information processing flow chart
图7. 数据信息处理流程图
3.2.1. 舵机控制程序设计
舵机控制采用STM32F10RCT6为控制核心,32核心根据接收到的指令发出PWM波控制舵机运行,舵机将置于平台上的垃圾投入所分类的垃圾桶中,完成垃圾识别后的分拣操作。
3.2.2. 太阳能充电电路设计
太阳能充电电路如图8所示,其中主要包括XL6009稳压器,TPS5430芯片,以及电源电压转换电路等来实现太阳能充电的功能,充电电路可将18 v电压转换为12伏的电压给蓄电池进行充电。充电电路PCB如图9所示。

Figure 8. Partial display of charging circuit diagram
图8. 充电电路图部分展示

Figure 9. PCB diagram of charging circuit
图9. 充电电路PCB图
3.2.3. 红外测距模块
利用红外线传播时的不扩散原理,两者间的距离可以根据红外发射到接收的时间和红外的传播速度来计算。通过采用红外测距模块来实现垃圾溢满监测 [9]。当垃圾桶溢满时,配备在垃圾桶顶端的红外测距模块及时监测当前垃圾桶容量并将数据处理传送至微信小程序提醒工作人员。
3.2.4. 烟雾报警模块
烟雾报警探测装置由探测烟雾的感应传感器和声音很大的电子扬声器两部分组成。烟雾浓度被烟雾传感器实时监测实现火情预警。配备扬声器在火灾发生时来提醒人们及时扑救。
3.2.5. 树莓派摄像头拍照模块
树莓派可以连接键盘、鼠标和网络电缆。仅比信用卡稍大,具备PC的所有基本功能,使用者可以通过连接电视和键盘来执行许多功能 [10]。通过利用树莓派的强大功能,将它所拍的照片传送给云服务器,通过云服务器的深度识别功能从而达到对垃圾进行精准分类。
3.3. 系统工作模式
系统启动后自动运行,将卷积神经网络算法训练的模型部署到云服务器端。将要投放的垃圾置于系统识别盘上,系统通过树莓派摄像头对垃圾进行拍照,将垃圾图片上传到识别模型中进行识别分类,树莓派根据收到的结果控制舵机运作,舵机投放垃圾自动进行分类。微信小程序管理端可为进行垃圾清洁的相关人员提供服务,通过小程序GPS定位可查看垃圾桶在城市中的分布情况以及垃圾装载量。同时硬件端配备有红外测距模块与烟雾报警电路,用户可在微信小程序实时查看垃圾桶负载状态,及时清理。在垃圾桶附近发生火情时,系统及时通过小程序上报用户,避免火情蔓延。
4. MQTT通信协议
本系统通过EMQ搭建服务器,负责接收来自硬件端的无线连接,并处理硬件端的订阅/取消订阅(Subscribe/Unsubscribe)、消息发布(Publish)的请求,同时也将硬件端发布的消息转发给其余订阅者,实现硬件与云端的通信连接。
5. 系统功能验证
5.1. 实验环境
在服务器端进行深度学习预测模型的部署,采用阿里云Linux服务器,然后在该Linux系统上安装python环境以及深度学习模型所需要的库包。
5.2. 实验结果
所需要的环境搭建好后将模型部署上去,并设计自启动文件让模型一直在服务器端运行。硬件端则可以通过拍照将图片实时发送到服务器端进行垃圾的预测,并将预测结果返回到硬件端对四大类垃圾进行分类处理。实验拍照测试图如图10所示,具体数据情况如表1所示。
5.3. 结果分析
将硬件及模型准备好后对大量不同种类的垃圾图片进行测试及本地拍照实验测试,经过测试得出该识别模型的平均识别准确率可达93%,表明智能垃圾分类系统对于生活常见垃圾识别反应灵敏且识别率高,基本实现智能识别、控制分类等功能。

Table 1. Garbage image recognition rate test
表1. 垃圾图片识别率测试
6. 总结
本文设计了一种可识别垃圾种类并自动分类投放的智能垃圾分类系统。该系统采用软、硬件相结合的工作模式,智能垃圾桶通过高清摄像头拍摄垃圾图片,并将图片上传到服务器端的深度学习识别模型中进行识别,树莓派根据收到的结果控制舵机自动将垃圾进行分类。系统配备微信小程序管理端,实时显示垃圾桶在城市中的分布情况以及垃圾装载量。通过实验测试,垃圾分类系统可以实现对日常生活垃圾的识别,精度可达93%并实现了智能识别、控制分类、太阳能充电、智能烟雾报警、GPS定位等功能。结果表明,此系统可以可靠地工作,相较于传统垃圾桶,可以减轻普通居民生活压力和清洁工的工作压力,提高垃圾分类效率,高效地对垃圾进行分类、处理 [11]。
基金项目
山西省“1331工程”提质增效计划电子科学与技术国家级一流专业建设项目;山西省高等学校教学改革研究项目(J2020296;J2021594);全国大学生创新创业训练项目(202110123002);运城学院教学改革创新项目(JG202016);运城学院学科研究项目(XK-2020030)。
NOTES
*第一作者。
#通讯作者。