基于视觉识别的垃圾自动分类系统设计
作者: 李丹 钟昆 曹荀 黄露茜 肖彤 王宝江
摘要:为解决垃圾分类困难和实现垃圾自动化分类,文章提出了基于视觉识别的垃圾自动分类系统。使用MobileNet v2模型对百度飞浆AI Studio 开源数据Garbage进行训练,建立分类模型,对可回收垃圾、有害垃圾、干垃圾和湿垃圾进行分类。实验结果表明,训练集和验证集的准确率分别为0.99和0.95,训练集损失值接近于0,验证集损失函数值0.3左右,测试集的准确率为0.95,损失函数值为0.35。可见该模型能较好地对四类垃圾进行分类,并有较高的准确率和较低的损失函数值。由App测试结果可知,可以实时地监测垃圾桶内环境数据以及垃圾桶的地理位置信息和容量信息,更好地完成垃圾分类的回收。
关键词:垃圾分类;MobileNet v2;视觉识别;交叉熵;实时监测
中图分类号:TP399 文献标识码:A
文章编号:1009-3044(2022)26-0007-04
1 概述
随着人口的不断增长和经济的快速发展,生活垃圾的数量随之激增。垃圾分类处理是城市可持续发展战略的重要组成部分,垃圾是一种错位的资源,对不同特性的垃圾进行回收利用是有益的[1-3]。垃圾分类不仅可以提高垃圾回收效率,还可以美化城市面貌,保护环境,实现资源最大化,实现社会、环境、经济的共赢[4]。近年来,垃圾分类得到了政府的广泛关注。例如,上海于2019年正式实施了《上海市生活垃圾管理条例》[5],旨在强制实施垃圾分类管理条例。
目前垃圾分类主要存在以下几个问题:
(1) 我国正式提出垃圾分类的时间较短,且实施地点有限。
(2) 垃圾分类本身具有一定的难度,再加上人们分类意识薄弱,长期养成的垃圾混装习惯难以改变。
(3) 对特殊群体来讲,人工进行分类投放难度过高,例如:老人、小孩以及偏远地区的居民,他们大多无法像其他人一样在分类时使用网络进行查询分类,分类更为困难。
基于以上问题,实现垃圾智能化分类是解决问题的关键。国内外学者对垃圾分类做了大量的研究,并取得了一定的成果。郭昌鑫等[6]提出了基于深度学习的智能垃圾桶识别分类系统,采用OpenCV进行图像处理,并用CNN垃圾识别算法进行垃圾分类,经测试,系统功能稳定、误差较低;宋轶[7]提出了基于机器视觉的家庭智能分类垃圾桶设计研究,利用VGG16模型对垃圾进行识别,其识别正确率达到87.2%,分类精度达到88.1%;康庄等[8]提出基于机器视觉的垃圾自动分类系统设计,使用Inception v3模型和迁移学习对14种垃圾进行识别,其精度高达99%;Yue Yu[9]提出一种基于计算机视觉的垃圾分类垃圾箱识别检测系统,设计了一种基于图像的检测系统来识别不同的垃圾桶从而对垃圾进行分类,而不是直接对垃圾进行分类;Patipol Tiyajamorn等[10]利用卷积神经网络进行垃圾自动分类,通过使用一个大型的垃圾图像数据库,结合机器学习,分类准确率达94%;彭昕昀等[11]提出基于SSD算法的垃圾识别分类研究,通过构建垃圾图片数据集,利用SSD算法使数据增强,可以快速和准确地识别不同种类的垃圾。
鉴于视觉识别技术对垃圾分类的效果最好,本文提出基于视觉识别的垃圾自动分类系统,该系统选用一种轻量级深层神经网络MobileNet v2[12]对垃圾进行识别。该系统能够实现可回收垃圾、有害垃圾、干垃圾和湿垃圾四类垃圾的分类要求,使用视觉识别技术对垃圾类别进行判断,从而实现了准确高效的垃圾自动化分类。该系统还搭配了物联网管理,实现了区域内的网络结构,同时开发了App,用户可以快速地找到最近的投放点,且方便管理员进行管理,极大减轻了人们的工作。
2 系统整体方案设计
本系统主要以视觉识别模块为主要的垃圾识别部件,采用树莓派、ESP8266作为微控制器,并外加网页实时显示桶内环境数据,系统整体设计如图1所示。
其中自动化垃圾分类模块由摄像头模块、视觉识别模块和电机模块实现。通过摄像头获取丢入垃圾桶的垃圾图像,并上传至视觉识别模块,利用视觉识别技术对垃圾进行识别,并将识别的结果通过树莓派使电机模块带动隔板进行角度转动,将垃圾自动掉入桶内相应的地方;桶内环境监测模块由超声波模块、火焰监测模块和MQ系列环境监测模块实现。通过超声波模块对桶内的垃圾容量进行监测,火焰监测模块进行垃圾桶火焰预警、MQ系列环境监测模块进行垃圾桶有害气体预警。
2.1 硬件结构设计
采用CAD软件对垃圾桶进行绘制,三维模型图如图2所示,系统高90cm,内径为50cm,该系统结构从上到下依次为顶盖1、密封支撑圆柱2、分离器3、分类箱4、限制挡板5、四分之一圆托6、十字支撑架7、摄像头8、步进电机9。具体装置介绍如下:
四分之一圆托:与限制挡板5共同置于垃圾投放口下方,隔绝上下,防止垃圾桶内气味扩散。
摄像头:检测垃圾投放情况。当投放第一个垃圾时,摄像头8将对其进行拍照,并将拍摄的图片传入树莓派进行比对,确认垃圾类型,反馈数据给下方步进电机9。
步进电机:带动四分之一圆托6顺时针旋转,通过卡扣结构推动限制挡板5,使垃圾运动到对应的回收箱体上方,然后,下方的四分之一圆托6在步进电机9的作用下向逆时针方向旋转九十度,通过限制挡板5与密封支撑圆柱2的摩擦力,使得垃圾始终停留在对应的回收箱上方,四分之一圆托6撤离后,垃圾准确落入对应回收箱内。
分类箱:位于十字支撑架7的下方,分为可回收垃圾、有害垃圾、干垃圾和湿垃圾四个箱体。
2.2 开发板选取
根据系统的设计,本开发板需包含图像接收单元、图像处理单元、步进电机控制单元三个部分,分别用来采集图片并对采集的图片进行处理、识别其种类,再利用步进电机控制单元驱动步进电机旋转,使得限制挡板5和四分之一圆托6进行旋转,将垃圾落入正确箱体。本系统选取树莓派4B作为系统的开发板,是因为树莓派是一种小型计算机,其设计目的是将计算成本降至最低,从而使计算机编程更普遍,更广泛地面向广大用户[13-14],并且树莓派 4B具有 64 位、1.5 GHz 四核 CPU,拥有摄像头串行接口,以及丰富的GPIO串口,故选为本系统的开发板。
2.3 App
为了能够实时监测垃圾桶内环境数据以及垃圾桶的地理位置信息和容量信息,开发了一个App,利用火焰监测模块进行垃圾桶火焰预警、MQ系列环境监测模块进行垃圾桶有害气体预警、地理位置信息的检测用SIM7600CE通信模组LBS定位、垃圾桶容量信息的检测用 HC-SR04 超声波模块。将采集的环境数据、地理位置信息与容量信息数据通过无线网络上传,然后再通过开发的App调用查看,方便管理员进行相应的管理与处理。具体的开发流程如图 3 所示。
3 算法设计
3.1 模型结构
本文采用的模型为MobileNet v2一种轻量级深层神经网络,它是在MobileNet的基础上提出了反向残差结构[12],以增强特征的表达能力,同时使用深度可分离卷积[15]这种新的卷积运算方式代替普通卷积,以降低模型的计算量。而深度可分离卷积是由Depthwise Convolution和Pointwise Convolution组成,其中,深度卷积的卷积核为[DK×DK×1],逐点卷积的卷积核为[1×1×M]。深度可分离卷积的原理图如下图4所示,首先用标准卷积和深度可分离卷积对输入的特征图分别进行卷积运算,最后得到输出的特征图。图中,[DF, M, DK, DG, N]分别代表输入特征图的边长、输入特征图的通道数及逐点卷积核的通道数、深度卷积核的边长、输出特征图的边长、输出特征图的通道数。由此可得到深度可分离卷积和标准卷积的计算量的比值为:
通常,深度可分离卷积核的大小选择3×3,则由上式(1) 可得到计算的结果为1:9,因此选择该卷积结构可有效地减少模型运算量,提高分类准确率。MobileNet v2的网络结构如表1所示,其中t为瓶颈层内部升维的倍数,c为特征的维数,n为该瓶颈层重复的次数。
3.2 实验数据及实验环境
由于目前没有专用的垃圾数据集,因此本文采用的数据集来自百度飞浆AI Studio 开源数据,该数据集包含4类:可回收垃圾、有害垃圾、干垃圾和湿垃圾。具体数量如表2所示,数据集按照7:2:1划分为训练集、验证集和测试集。
4 模型评估及实验分析
4.1 模型评估指标
为全面评估模型性能,本文选择准确率(Accuracy) 和交叉熵损失函数(Cross Entropy Loss Function) 来评估模型的性能。其中,准确率的值越大说明模型的准确性越高,交叉熵损失值越接近于0,说明分类结果越准确。各项指标计算公式如下:
式中,[TP, FP, FN, TN]是混淆矩阵中的四个值,[TP]表示实际是正例,分类也为正例的样本数;[FP]表示实际是负例,分类为正例的样本数;[FN]表示实际是正例,分类为负例的样本数;[TN]表示实际是负例,分类也为负例的样本数。[M]为类别的数量;[yic]表示符号函数,如果样本[i]的真实类别等于[c]取1,否则取0;[pic]表示样本[i]属于类别[c]的预测概率。
4.2 实验结果分析
本文在MobileNet v2模型上对数据集按照7:2:1进行训练、验证和测试,图5所示结果为训练集和验证集的准确率,图6所示的结果为训练集和验证集的交叉熵损失值,图7所示为测试集的准确率和交叉熵损失值,图8所示为分类热力图。
由图5和图6可知,训练集准确率达到了0.99、验证集的准确率达到了0.95,训练集的损失值随着迭代次数的增加,逐渐减小接近于0,验证集的损失值随着迭代次数的增加先是减小然后有上升的趋势,最后的结果在0.3左右,可见训练集的准确率和损失值达到了本文的要求,验证集的损失值略微偏高;由图7可知,测试集的准确率为0.95,损失值为0.35。验证集和测试集的损失值偏高原因如下:
(1) 由表2可知,数据集存在类型不平衡,尤其是可回收垃圾的数量远远多于其他三种,由图8可知,影响分类权重最大的也是可回收垃圾,其次是湿垃圾,所以,在分类时用于训练、验证和测试的数据集可能大部分都是可回收类,导致其他类的分类结果很低,那么总体分类准确率也就会偏低,损失值会增大。
(2) 训练集过拟合,也会导致验证集和测试集的损失值偏高。
(3) 学习率过小,使结果陷入局部最优。
(4) model.predict在预测时会对数据进行shuffle 导致输出的预测值与原始数据的顺序不匹配,从而导致验证集和测试集的损失值偏高。
4.3 本系统App功能测试
如图9(a) 所示,以可回收垃圾桶为例检测数据的实时传递性,图9(b) 所示可以查看垃圾桶当前的位置,点击垃圾桶图标,可以查看垃圾桶容量等信息。
5 结束语
本文提出了基于MobileNet v2模型的垃圾分类算法,实验结果表明,该分类方法有效,对四类垃圾进行分类准确率达到了95%,本文开发的App能够有效、实时地监测垃圾桶内环境数据以及垃圾桶的地理位置信息和容量信息,说明本文提出的方法在垃圾分类和保护环境上的广阔应用前景。后续工作还可以通过以下的改进提升垃圾分类的准确率,首先,通过对多类数据下采样或者对少类数据集进行数据增强的方法来改善类不平衡问题;其次,增加每一类的准确率结果,可以更好地对模型进行改进,以提高分类的准确率。
参考文献:
[1] Chen Y C.Trash to treasure:using recyclables in physical activity settings[J]. Phys. Edu.,2016(87):45-51.
[2] Wang A, Zhang L,Shi Y, et al. Rural solid waste managementin China: status, problems and challenges[J]. Sustainability, 2017(9):1-18.