基于卷积神经网络的垃圾分类系统的实现
2020-11-19王育新朴林华
王育新,朴林华,朴 然,李 备,丁 霞
(1.北京信息科技大学 北京市传感器重点实验室,北京 100101;2.北京工业大学 信息学部,北京 100124;3.青岛科技大学 数理学院,青岛 266061)
0 引言
我国目前每年新增约10亿吨生活垃圾[1],这些垃圾如果不能得到有效处理,不仅会造成资源的巨大浪费,还会严重影响环境卫生,阻碍我国生态文明建设进程。2019年上海市全面推行生活垃圾强制分类,标志着我国垃圾分类已经进入制度化推广的新阶段[2]。然而传统的生活垃圾人工分类方式工作量大、效果欠佳。近年来人工智能技术的发展为垃圾分类的智能化提供了技术路径,尤以卷积神经网络最受关注[3]。吕文杰[4]等利用Google 的InceptionV3模型对生活垃圾进行训练建模,最终通过手机应用对生活垃圾进行分类。吴碧程[5]等搭建了基于卷积神经网络的垃圾分类模型,设计了硬件分类器。但上述研究或忽略了具体的垃圾分类标准,或在提高模型识别率等方面有待提升。
本文参照常用垃圾分类标准,将生活垃圾分为可回收垃圾、有害垃圾、厨余垃圾、其他垃圾4类,通过设计并不断优化卷积神经网络、设计智能垃圾桶、搭建云服务器、编写小程序,实现了高效的垃圾分类系统。通过生活垃圾实物测试硬件、软件、通信模块的协同工作能力,表明本系统可以稳定工作,对生活垃圾的准确识别率达93%以上。并且通过小程序反馈结果,系统开发者可以对网络模型进行及时优化更新以提高垃圾识别率;区域垃圾管理者可以实时掌握本区域各智能垃圾桶的满溢情况。
1 系统整体结构
本文通过对硬件模块、通信模块、软件模块的设计和集成,实现系统的垃圾识别、垃圾分类、分类结果可视化反馈等核心功能。
整个系统的功能结构如图1所示。
硬件模块的核心任务是:首先高效地检测到用户投放生活垃圾的行为;其次对用户投放的生活垃圾进行图像抓拍并将图像信息上传至云服务器;最后根据云服务器返回的结果对垃圾进行准确的分类处理。
通信模块的核心任务是:使用socket通讯协议实现硬件平台各智能传感器、电子元器件的协同工作;使用HTTP通讯协议实现硬件平台与云服务器端神经网络模型、小程序的协同工作。
软件模块的核心任务是:设计舵机转动算法实现对垃圾桶旋转的精准控制;设计系统最核心的卷积神经网络垃圾识别算法,提升系统识别率和人性化。
2 硬件模块设计
首先对硬件平台进行3D建模,如图2所示。
智能垃圾桶通过添加红外传感器、超声测距传感器、舵机、LED灯等电子元器件,并通过中央控制单元协同工作,从而达到自动控制的目的。如图3所示,将圆形垃圾桶垂直分为4个区域,这4个区域分别与可回收、厨余、有害、其他垃圾4种分类标准相对应,通过图2中的舵机1和舵机2协同旋转达到不同垃圾类型正确投放入指定区域的目的。
当用户向垃圾桶投放单个垃圾物品后,红外传感器会检测到用户的投放行为,系统控制摄像头抓拍投放的垃圾并将垃圾图片上传到云服务器中。云服务器对垃圾图片进行识别并将分类结果通知硬件模块,垃圾桶下方的舵机2会根据分类结果使垃圾桶依据舵机旋转算法设定的旋转角度进行转动,此时控制垃圾载物台的舵机1转动一定角度将垃圾倒入垃圾桶中完成一次垃圾投放任务。系统会记录每次投放行为,方便后续分析用户垃圾投放行为以及更新优化系统功能。平台中的超声测距传感器通过检测垃圾桶中垃圾平面离传感器位置的垂直距离判断垃圾桶的满溢状况,并通过小程序通知管理者。图4为智能垃圾桶实物。
对垃圾装载满溢状况进行实时监测,是智能垃圾桶硬件平台设计的一个创新点,本文选择超声波距离传感器来实现这一功能。如图5所示,用户每投放一次垃圾,垃圾桶上方的超声波距离传感器即启动一次,计算垃圾平面和传感器位置的垂直距离并发送到微信小程序。当垃圾装载量超过一定阈值后,管理员可以及时对垃圾进行处理。用户每次投放的垃圾将被拍照上传至云服务器,系统维护者可以根据这些照片判断分类准确性并继续优化神经网络模型,提高垃圾分类的准确率。
3 通信模块设计
3.1 socket通信接口
当红外传感器检测到垃圾投放行为时,摄像头抓拍垃圾图像后由socket客户端通知其服务端拍照成功,之后服务端将垃圾图像发送到运行神经网络模型的云服务器上。云服务器返回分类结果后,服务端再将分类结果发送给客户端,完成一次socket通信。此后硬件平台可以根据得到的分类结果进行相应的操作。
3.2 HTTP通信接口
图像识别阶段:由于神经网络模型运行在云服务器上,服务器端提供了基于restful风格的API访问接口,摄像头拍下垃圾图像后必须通过HTTP协议将图像上传到服务器中进行识别,识别后的结果按照规定的格式返回到硬件平台。
小程序可视化统计阶段:第二次HTTP通信发生在完成一次垃圾分类后,系统将垃圾图像以及此时垃圾桶是否装满等信息通过HTTP协议发送到小程序服务器端,以方便管理者及时掌握垃圾桶状况和系统维护者对产品的迭代更新。
系统通信模块结构如图6所示。
4 软件模块设计
4.1 卷积神经网络垃圾识别算法
系统的核心是设计高效的卷积神经网络识别算法,准确地识别垃圾类型进而实现垃圾分类,卷积神经网络识别算法可以比作整个系统的大脑[6]。卷积神经网络经历了如图7所示的演变过程。
Google公司开发的Inception系列网络模型除了像之前网络模型一样增加网络的深度外,在保持计算量基本不变的条件下另辟蹊径考虑了网络的宽度,即对输入图像并行地执行多个卷积运算或池化操作,并将所有输出结果拼接为一个非常深的特征图[7]。通过综合考虑各网络模型的优缺点、模型搭建运行成本等因素,本文最终选择使用InceptionV3网络模型作为系统的分类器。InceptionV3网络模型结构如图8所示。
它包括了输入层、卷积层、池化层、全连接层以及softmax输出层。InceptionV3网络共有47层,前面的卷积层设计了3×3和1×1,步长均为1的2种不同卷积核,卷积核通过与上一层图像的局部感受野进行卷积运算后加上预先设置的偏置值完成一次卷积操作,其变换过程为
(1)
InceptionV3网络通过设计多个Inception Module模块组增加了网络的宽度。模块组通过使用多个1×N和N×1的卷积核极大地减少了网络的参数,缩小了深度,降低了卷积神经网络的运算量。通过全连接层变换公式,即
(2)
转化为一维向量,最后选用softmax函数作为最终的分类器。
(3)
式中i为某一垃圾物品类型。由此输出概率分布,实现多分类目标。
选择神经网络模型后对模型进行训练。本文通过两种途径收集模型训练集和测试集所需图像数据:首先通过网络爬虫收集10 000张不同类型的生活垃圾图片,如香蕉皮、玻璃、电池等;其次通过垃圾桶上的摄像头实拍500张不同角度、不同类型的生活垃圾图片。之后对收集到的图片进行数据清洗、整理,将它们分成50种生活垃圾,分别属于有害垃圾、可回收垃圾、厨余垃圾、其他垃圾4大类。最后将垃圾图片放在不同标签的文件夹下,完成数据的预处理,在云服务器中搭建好训练模型所需的环境后训练神经网络。
对系统神经网络识别算法的准确率用测试集进行验证,结果如表1所示。
为了验证该模型在实际使用中的识别准确率与稳定性,将组装好的智能垃圾桶放在阳光下、黑暗环境下等不同的条件下进行测试。将不同的垃圾连续放入垃圾桶中,各传感器正常工作,垃圾准确掉入到相应的桶中,同时系统将垃圾图片、垃圾桶的实时装载情况反馈给微信小程序,实际环境测试结果如表2所示。
由表可见,本文搭建的神经网络模型对测试集的平均识别率超过了93%,结果可以接受。
4.2 小程序设计
除了基本的垃圾识别和分类功能之外,为了帮助环卫管理者实时掌握垃圾桶满溢状况及系统设计者提高系统识别率,系统增加了轻应用微信小程序。
图9所示为小程序首页,其中语音识别和拍照识别按钮可以帮助用户快速判断生活垃圾所属类型。区域管理功能则可以实时记录某一区域各个智能垃圾桶的装载情况。如图10所示,当某个垃圾桶装载超过90%时,小程序会通过发出警告通知管理者及时对垃圾桶进行处理。
当点击图10中某一个具体的垃圾桶图标时,会出现如图11所示的该垃圾桶装载垃圾的详细数量情况。当点击图11(a)中一个具体类别按钮后出现图11(b)所示具体垃圾图像及其对应的神经网络预测结果。系统不可避免地会出现垃圾分类出错的情况,这时就需要系统开发者根据可视化小程序得到错误情况,及时对神经网络的参数进行再训练,以提高垃圾识别率、优化系统功能。
5 结束语
本文将训练好的InceptionV3卷积神经网络模型与硬件控制平台融合,实现了对日常生活垃圾平均93%的准确识别率,并通过云服务器交换数据和小程序可视化展示实现了系统神经网络模型识别率的可持续优化,区域垃圾管理者可以通过小程序实时掌握本区域各智能垃圾桶的满溢状况。本文提出的智能分类垃圾系统具有成本低、易实施、易于迭代等优点,为垃圾分类提供了一个新的思路。