基于卷积神经网络的智能垃圾分类系统
2019-12-02吴碧程邓祥恩张子憧唐小煜
吴碧程,邓祥恩,张子憧,唐小煜
(华南师范大学 物理与电信工程学院,广东 广州 510006)
垃圾分类是垃圾处理流程中的基础环节,一直以来是各级政府倡导与推行的重要工作. 但是由于配套设施的不完善与人们的垃圾分类意识与能力不足,该项工作进展成效并不理想,收集到的“分类垃圾”往往仍是混合垃圾,严重制约了垃圾处理后级流程的运行效率. 倘若能设计出可自动完成垃圾分类的智能垃圾桶,降低人们进行垃圾分类的成本,无疑有效降低后期分类压力,提高垃圾处理效率. 传统思路下的智能分类垃圾桶往往依赖各类传感器进行复杂的操作完成识别分类,准确率一般且识别种类较为单一. 于是研究项目组创新性地将当前热门的卷积神经网络与垃圾分类问题结合,探究卷积神经网络能否在当前以性能有限的嵌入式设备上实现对垃圾多种类的准确识别,并设计出小体积的机械结构,进而结合两者获得智能垃圾分类系统,为将普通垃圾桶通过低成本改造为自动分类智能垃圾桶提供可行的解决方案.
1 总体设计
智能垃圾分类系统主要由可识别垃圾种类的嵌入式主控与实现自动分类控制的机械结构构成. 基于对成本与体积的考虑,系统选用了常用的嵌入式设备树莓派作为实验设备,具体型号为树莓派3B+;而基于对常用垃圾桶的改造,设计了垂直结构的分类机械结构,便于充分利用普通垃圾桶空间. 具体的垃圾识别分类流程如图1所示.
当垃圾投入本系统后,树莓派启动摄像头获取垃圾图像,接着运行卷积神经网络获取垃圾类别信息,最后根据垃圾的种类所属的分类,控制机械结构使得垃圾掉落至对应的分桶之中.
图1 系统总体设计图
2 卷积神经网络在嵌入式设备的实现
从上述总体设计框图不难看出,智能分类的前提是对垃圾的准确识别,因此本系统的核心是卷积神经网络算法. 为实现在低性能的嵌入式设备中稳定高效地运行卷积神经网络,设计了如下的实现方案:由于嵌入式设备性能受限,且卷积神经网络的训练将需要消耗运行机大量的内存和资源,因此将卷积神经网络搭建与训练通过PC实现,并在PC上测试所得神经网络模型;在达到一定识别准确率后,将神经网络移植到嵌入式设备即树莓派上;最后在树莓派上进行调参优化与测试.
2.1 卷积神经网络的搭建
卷积神经网络是一种前馈型神经网络,如图2所示,包括了输入层、卷积层、池化层、全连接层以及Softmax输出层,各层的神经元都只与上一层相连. 系统使用Inception V3网络作为特征提取器,在保持其原有权值的基础上,搭建神经网络和进行重新训练.
图2 卷积神经网络结构图
Inception V3网络共有47层,卷积层设计了33和11,步长均为1的2种不同卷积核. 通过对上一层图像上每一小块像素区域进行加权,提取出像素区的特征信息,其中的小块像素区域叫做局部感受野,区域的权值就是卷积核. 图像经卷积运算后加偏置值,组成特征图,其变换过程为
(1)
池化层主要设计了33和88尺寸,采用最大池化的方法,每次只保留最大的像素值,达到特征降维和压缩数据的效果,其过程为
(2)
此网络的巧妙之处还在于设计了多个Inception Module模块组,模块组通过使用多个1×1卷积核和多分支的卷积聚合,极大减少了网络的参数和层数,降低了卷积神经网络的运算量. 系统采用自定义的数据集作为网络的输入层,沿用Inception V3网络的共享权值,对其输出进行fine-tuning,并重新定义全连接层. 通过全连接层变换公式,即
(3)
成功整合为一维向量. 选用tf.nn.softmax函数作为输出的分类器,
(4)
式中i即某一物品类别,从而输出概率分布,实现多分类.
2.2 卷积神经网络的验证
系统实验识别对象选取了生活中常见的6种垃圾:易拉罐、塑料瓶、牛奶盒、纸杯、纸团以及电池. 为得到用于训练与验证测试卷积神经网络的数据集,项目组通过2个途径获取:一方面,使用树莓派广角摄像头对垃圾物品进行拍摄,从不同背景和角度拍摄了1 535张图片;另一方面,从网络上收集到符合要求的图像1 479张. 所以,原始数据集共3 014张图像,其中包括:电池497张、塑料瓶579张、 纸杯496张、易拉罐554张、牛奶盒411张、纸团477张. 之后通过人工方式对数据集标签进行相应分类,并将不同种类的图像存放在不同的标签文件夹中. 最后再把该数据集按4∶1的比例分为训练集和测试集用于神经网络进行训练.
2.2.1 卷积神经网络的训练
训练次数根据训练集规模进行设计,以每训练500次为1个阶段,每一训练阶段输出1次结果,即通过上述测试集测试输出1次识别平均准确率,绘制平均准确率随训练次数变化如图3所示. 由图3可以发现随着训练次数的增多,识别准确率会逐渐递增并最后收敛于某数值,再增加训练次数对准确率也无明显影响,此时神经网络已训练完成.
图3 训练次数与准确率收敛的关系
2.2.2 卷积神经网络的准确率测试
对训练好的神经网络进行验证测试,本轮实验通过网络再次收集数据集,收集到的图片信息为易拉罐103张、塑料瓶102张、牛奶盒104张、纸杯100张、纸团101张以及电池100张,此处获得的数据集也将作为下文各轮实验的测试集重复使用,以达到控制变量的目的. 卷积神经网络在PC上识别结果如图4所示,准确率如表1所示.
(a)易拉罐识别图
(b)牛奶盒识别图 图4 卷积神经网络的识别结果
测试类型测试图片数量/张平均识别准确率易拉罐10387.38%塑料瓶10298.04%牛奶盒10492.31%纸杯10087.00%纸团10195.05%电池10094.00%总体61092.30%
从实验结果可知,所搭建的卷积神经网络对此测试集的平均识别准确率超过90%,而各类别的识别概率也均达到85%以上,识别垃圾类别基本准确. 此神经网络具有初步的可靠性,可以进行移植.
2.3 卷积神经网络的移植
通过上述步骤,获得了在PC上具有良好识别性能的卷积神经网络以及合适的图像分辨率. 之后需要将该神经网络模型移植到嵌入式设备树莓派上,为了获得良好移植效果,需要保证树莓派内软件环境与PC一致,才能保证无差错地运行神经网络,并获得较好的移植效果. 因此项目组在树莓派上搭建了Linux系统环境与TensorFlow软件环境.
在将训练好的卷积神经网络模型移植入树莓派后,项目组对移植效果进行了测试. 使用上文测试集进行识别测试,获得识别准确率如表2所示 . 由表2可以看出,移植后的卷积神经网络识别准确率与在PC上运行时准确率一致,移植效果较好.
表2 卷积神经网络在树莓派运行的识别准确率数据表
2.4 卷积神经网络的参数调优
相较于PC端,嵌入式设备树莓派的内存资源稀缺,运算能力较弱,因此需要对树莓派上运行的神经网络进行参数调整及优化,从而提升垃圾种类识别的准确率和处理速度.
2.4.1 图像分辨率的选择
以上训练集与测试集由不同分辨率的图像构成,而在卷积神经网络移植入树莓派后,树莓派在实际应用场景下的图像均通过摄像头获取,具有固定的图像分辨率. 而对于不同的神经网络规模,最佳的分辨率大小又有所差异. 因此为选择合适于所用网络的图像分辨率,特选取识别准确率与识别时间作为因变量,探究不同图像分辨率对所用网络的影响. 本轮实验所用的多个测试集均由上文所用测试集修改为统一分辨率获得,具体实验结果如表3所示.
表3 图像分辨率与处理时间和准确率数据表
由实验结果可知,图像分辨率大于640×480之后,处理时间明显变长,而识别准确率却上升变缓,故选用640×480作为图像预处理的分辨率,此时处理时间和准确率都较为理想.
2.4.2 参数调优
分类器输出的是输入层类别的概率分布,即每个类别都会有一定的识别概率值,所以当遇到在形状、颜色很相近、很难区分的输入时,概率分布会相对接近. 所以为了严格区分出识别的种类,减少识别的错误率,需要设置判别阈值,即当输入物品的识别概率超过阈值时,才可判断为相应物品,从而提高准确率. 不难看出,当神经网络训练程度不够时,阈值过低容易导致误判;而阈值过高,神经网络的识别概率较难达到阈值,将无法得出识别结果. 因此合适的阈值对神经网络显得尤为重要. 故通过多次改变阈值,使用上述测试集进行测试,获得6类垃圾的平均识别准确率随阈值变化曲线如图5所示.
图5 判别阈值与识别准确率关系
由实验结果可知,当判别阈值设置为0.830时,分类准确率最高,此时分类精度最大.
3 机械分类结构设计
为适应对普通垃圾桶的改造,在不改变垃圾桶大小的情况下充分利用垃圾桶空间,本文设计便于移入垃圾桶的垂直机械结构.
3.1 停驻层
停驻层结构如图6所示,垃圾投放后掉入停驻管道,树莓派控制舵机使停驻挡板阻挡垃圾下落,进而可以通过摄像头获取图像,运行卷积神经网络识别垃圾类别. 识别结束后,树莓派控制舵机旋转停驻挡板,使垃圾下落进入下一层结构.
图6 停驻层设计图
3.2 分拨管道
分拨管道如图7所示,树莓派完成对垃圾种类识别后,在旋转上层结构的停驻挡板前会先根据垃圾类别,控制此层舵机旋转分拨管道,分拨管道的下落口在不同的旋转角度时会对应不同分桶,因此垃圾下落后会在分拨管道的引导下掉入对应分桶.
图7 分拨管道设计图
3.3 分类桶
分类桶即是通过在原垃圾桶中加入分隔板,将垃圾桶空间分割成若干分桶(图8),达到接收由分拨管道引导掉落的不同类别垃圾的目的.
图8 分类桶设计图
4 人机交互与智能控制
本系统为垃圾自动分类系统,除了赋予普通垃圾桶智能属性外,还根据实际应用场景加入了人机交互和智能控制功能,使得改造后智能垃圾桶能更好地投入使用.
4.1 人机交互
通过加装LCD屏,树莓派可将垃圾分类识别结果以图片的形式在液晶屏上显示. 一方面使垃圾桶更富科技感,更好融入实际应用环境;另一方面也普及垃圾正确分类的知识,起到科普的作用.
4.2 桶满检测与处理
为便于垃圾桶的日常清洁与管理,本系统设计桶满检测与处理功能. 通过在每个分类桶正上方加装超声波模块,定时检测桶内垃圾与模块的距离L1,并与模块到分类桶底距离L2做差即可得到当前分类桶内垃圾高度H,即
H=L2-L1.
(5)
设H超过分类桶高度的90%时,标志为该分类桶桶满,进入桶满处理. 一方面通过液晶屏显示桶满图片符号,提示相关人员尽快清理桶内垃圾;另一方面,为避免增加负担,树莓派应禁用识别功能,即在桶满状态未解除前搁置处理,对丢入的垃圾不再运行神经网络进行识别,直到桶满状态解除.
5 系统验证
为了验证本系统在实际使用中的识别准确率与控制稳定性,对普通垃圾桶进行改造,移入此智能垃圾分类系统,完成了简单的智能分类垃圾桶实验模型,实验模型结构如图9所示.
图9 实验模型实物图
本次验证实验通过对上述常用6种垃圾,每种垃圾选用10个存在明显外观差异的代表,以不同角度、不同大小及不同损坏程度各进行了100次投掷,通过液晶显示屏获取系统识别数据,以及通过打开分类桶,记录机械结构分类结果数据,具体数据记录如表4所示.
表4 系统识别与分类功能测试数据表
从表4可以看出本系统在实际使用中对常见6种垃圾具有90%以上的识别准确率与分类成功率,且从本实验模型外观可以看出由本系统改造后的垃圾桶体积较小,达到预期设计要求,后期更可以通过拓展训练集可以增加垃圾识别种类.
6 结束语
将卷积神经网络应用于垃圾分类,设计方案实现简单,探究结果达到切实可行的效果. 目前,市场上在垃圾集中收集过程中完成分类的垃圾桶数量极少,该实现方案的创新之处在于结合卷积神经网络新技术,能通过低成本嵌入式设备将普通的垃圾桶改造为智能垃圾桶,以实现识别和自动分类垃圾的功能.