亢红波,蔡学瑞,杨 亮,周倩倩
(1.西安邮电大学 自动化学院,陕西 西安 710121;2.中国石油测井有限公司 测井技术研究院,陕西 西安 710054)
垃圾分类[1]是指按一定规定或标准将垃圾分类储存、投放和搬运,实现资源回收利用。垃圾回收利用是发展循环经济的首要环节,更是解决环境污染问题、改善人居环境的关键所在。中国现行的垃圾分类以住房和城乡建设部于2019年发布的《生活垃圾分类标志》为准,即将生活垃圾分为可回收物、厨余垃圾、其他垃圾和有害垃圾等4个大类。目前,国内大多数垃圾处理厂对垃圾进行分类时,仍是依靠人工分拣的方式,不仅不利于相关从业者的身心健康,而且分拣效率低,无法及时处理现代社会生活中产生的大量垃圾。未及时清理的垃圾不仅会影响环境的整洁美观,也容易滋生细菌、产生有害气体,危害人的身体健康。
在生活垃圾分类领域,适用于小型垃圾分类装置的垃圾分类方法大致分为基于传感技术、基于光谱技术、基于介电常数和基于机器视觉等4类。在基于传感技术的分类方法中,单个传感器可检测的材料单一,需要多个传感器合作检测,检测系统复杂[2]。基于光谱技术的分类方法仅能分类塑料材质的物品,且价格昂贵,无法普及[3]。基于介电常数的分类方法对物品材质有要求,无法推广普及[4]。基于机器视觉的分类方法(即图像分类)相比于其他方法具有成本低、效率高、稳定性强和应用领域广泛等优点[5]。早期的图像分类方法[6]需要人工提取图像的特征,不仅鲁棒性差、复杂度高,而且耗时长、实时性差。随着神经网络技术的发展,卷积神经网络因其拟合能力强大、可以自主学习并提取数据特征以及运行速度快等特性,在图像分类领域得到了广泛的应用[7]。深度卷积神经网络为推动图像分类领域飞速发展所做出的贡献,也同样对垃圾分类领域的发展起到了促进作用。斯坦福大学为推动垃圾分类的发展所建立的TrashNet数据集[8]包含了约2 500张图像。2019年,华为建立了包含了上万垃圾图像样本数据的数据集。这些垃圾图像数据集的建立,使垃圾智能分类的可操作性进一步增强。
目前,基于图像分类的垃圾分类大多停留在理论阶段,虽然随着神经网络技术的发展,垃圾图像分类的准确率早已满足日常生活所需,但考虑到网络模型结构复杂,对于硬件设备的性能要求过高,无法在小型嵌入式设备中使用。国内设计的适用于生活垃圾分类的小型智能垃圾分类装置也大多侧重于机械结构的设计与控制,在垃圾分类方面存在准确率低、可分类物品种类较少等问题。因此,拟基于图像分类的方法设计一种低成本、可用于生活垃圾处理领域的小型智能垃圾分类装置。该装置使用双控制器,将专用于神经网络相关领域的小型嵌入式设备——Jetson nano作为主控制器完成垃圾图像的采集、识别与分类。使用传统的小型嵌入式设备STM32F103作为副控制器完成对装置的控制、相关信息的采集与上报,从而实现垃圾分类、人机交互和实时监测等功能。
目前公开的垃圾数据集中具有较好反响且得到广泛使用的仅有TrashNet数据集和华为垃圾数据集,因此,自建垃圾分类数据集的样本图像主要来自华为垃圾数据集中的图像数据、搜索并筛选的符合要求的垃圾图像以及实景采集各类垃圾图像等3个方面,共14 100张垃圾图像,其中可回收物5 700张,厨余垃圾2 400张,其他垃圾2 700张,有害垃圾3 300张。
图像预处理[9]是将样本图像的大小处理为模型接受的标准图像,并在样本图像中增加干扰以达到提高模型的抗干扰能力和泛化能力。对自建垃圾分类数据集中的图像进行预处理,通过调整图像大小,使用图像增强技术,模拟实际应用过程中图像受到的干扰并将图像进行标准化处理,保证在符合设计模型输入要求的同时最大程度保留图像中物体的原貌。
1.2.1 垃圾图像大小调整
考虑到卷积神经网络模型的输入图像固定大小为224×224,因此在将自建垃圾图像数据集中的图像输入模型前,先利用双线性插值算法[10]调整图像大小,其核心思想是根据最邻近的4个像素点的值计算出新的像素点的值。
使用双线性插值算法直接将图像大小缩放为224×224,会改变图像的长宽比例,造成图像失真,如图1(b)所示。因此,先利用等比缩放处理图像后再进行中心裁剪。假设原图大小为m×n且满足(m>n),将图像缩放为(224·m/n)×244,再利用中心裁剪的方法将图像裁剪为224×224的图像,如图1(c)所示。
图1 图像大小调整效果对比
由图1可以看出,直接将图像缩放为224×224,图像的长宽比例变化会导致图像中的物体产生形变,而调整后的缩放图像,在保持图像中物体原有比例的前提下最大程度地保留物体的主体部分。
1.2.2 垃圾图像增强
在实际进行图像识别过程中,会受各种因素影响,如复杂的物理环境、光照强度的变化、物体被遮挡以及成像后的颜色失真,因此难以获得高质量的图像。为了保证图像识别模型的抗干扰能力和泛化能力足够强,在训练模型的时候使用图像增强技术,模拟实际拍摄过程中图像在形态、亮度和颜色等各方面的变化,如:调整亮度、对比度与饱和度模拟光照强度的变化;利用随机翻转、旋转与透视和仿射变换模拟放置位置的变化;利用随机裁剪与随机擦除模拟污渍的影响。训练模型前在样本图像中加入随机干扰和变化,可以增强神经网络模型的抗干扰能力。
1.2.3 垃圾图像标准化
图像标准化[11]是通过去均值的方式实现图像中像素值的中心化,数据中心化符合数据分布规律,从而增强模型的泛化能力。
假设第n个图像通道的输入值为In、方差为Sn、均值为Mn,则对通道n的图像标准化后输出为On(In-Mn)/Sn
自建垃圾分类数据集的图像通道为三通道,根据自建垃圾分类数据集的图像统计结果可得各通道的方差分别为S1=0.225、S2=0.224、S3=0.229,均值分别为M1=0.406、M2=0.456、M3=0.485。
考虑到AlexNet[12-13]、VGGNet[14]、ResNet[15-16]、GoogLeNet[17]、EfficientNet[18]和MobileNet[19]等模型是针对ImageNet数据集进行设计的,ImageNet数据集将图像分为了1 000类,而自建垃圾分类数据集将图像分为4类,因此修改网络模型的输出层,使其可以将图像分为4类。又考虑到模型参数是在ImageNet中训练得出,不能直接用于垃圾图像分类,需通过自建垃圾图像数据集对模型进行训练以调整参数。模型的修改与训练过程如图2所示。
图2 模型的修改与训练过程
对AlexNet、VGGNet、ResNet、GoogLeNet、EfficientNet和MobileNet模型分别进行迁移学习[20]对比实验,第一组实验将各模型的参数随机初始化,使得原有参数对训练结果不产生影响;第二组实验使用迁移学习的方法,初始化时加载在ImageNet数据集中训练得到的参数,再使用自建垃圾分类图像数据集对模型进行训练,仅对模型参数进行微调。
每组实验都从自建垃圾分类图像数据集中选取2 000张图像(每类垃圾各选500张)作为测试集,其余部分作为训练集。实验中所有模型都训练30代,训练完成后使用测试集对模型进行测试。实验结果分别如表1和表2所示。
表1 随机初始化模型参数的结果
表2 迁移学习的方法初始化模型参数的结果
由表1的结果可知,将模型参数进行随机初始化后,准确率最高的GoogLeNet模型仅达到了74.1%的准确率,各模型在未加载预训练参数时准确率普遍不高。从较为简单的AlexNet模型到复杂的EfficientNet-B0模型,准确率随着模型的深度增加而增加,但是EfficientNet-B0模型由于训练数据集样本数量不充足,模型的准确率并不高。
由表2的结果可知,使用迁移学习的方法对模型参数进行初始化,可以有效提升模型的训练效果,各个模型的准确率明显提升,准确率最低的AlexNet模型也达到了88.9%的准确率,这说明使用迁移学习的方法对模型参数进行初始化可以提高模型的准确率。同时,Efficientnet-B0模型也因为使用了迁移学习的方法,改善了数据集样本数量不足的问题,准确率有了明显提升。
通过上述两组实验可以看出,MobileNet-v2模型在使用迁移学习方法前后都有较高的准确率,使用迁移学习方法之后准确率高达93.4%,在6种模型中准确率最高,且MobileNet-v2模型使用了深度可分离卷积技术,减少了网络模型的参数,提高了计算速度,很好地平衡了算法的实时性与准确率,也降低了对硬件的要求。
MobileNet-v2模型的准确率较高,并且其复杂度低、计算量小的特性使其非常适合应用于嵌入式设备中。因此,利用TensorFlow将训练好的MobileNet-v2模型移植到Jetson nano中,设计一种智能垃圾分类装置,实现垃圾分类的实际应用。智能垃圾分类装置主要有以下5种功能。
1)装置状态检测。智能垃圾桶通过温湿度传感器与超声波模块实时检测垃圾桶的温湿度与满溢度。
2)智能语音播报。检测到的温度超过设定阈值时,发出警报。垃圾桶内的垃圾堆满时,提示用户及时清理垃圾。
3)状态信息上传。智能垃圾桶连接WiFi后可以将垃圾桶的温湿度、满溢度和位置等信息通过互联网传输到远程服务器,用户可以通过电脑、手机等设备远程查看垃圾桶状态,方便管理。
4)智能显示。实时显示垃圾桶当前状态,方便用户对装置进行设置与测试,还可投放广告。
5)垃圾自动分类及分拣。智能垃圾桶可以智能识别出放置于分类板上的垃圾,并将其投入对应的垃圾桶。
为了提高识别和控制的准确性和实时性,装置采用双核结构,实现稳定而高效的运行。装置硬件组成如图3所示。
图3 装置的硬件组成与连接
选用Jetson nano作为主控单元,主要负责对摄像头传回的图像数据进行处理和分类。主控单元通过相机串行接口(Camera Serial Interface,CSI)连接摄像头进行图像采集,通过高清晰度多媒体接口(High Definition Multimedia Interface,HDMI)连接触摸屏用于人机交互,通过通用串行总线(Universal Serial Bus,USB)连接副控制器STM32F103。
副控制器STM32F103可以根据主控单元的分类结果控制舵机完成相应的动作以达到自动分类的目的。副控制器还分别通过通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)串口连接全球定位系统(Global Positioning System,GPS)定位模块、语音模块和WiFi模块,通过通用输入输出(General Purpose Input/Output,GPIO)接口连接超声波测距模块和温湿度传感器。
温湿度传感器实现对垃圾桶的安全监测、防范火灾等安全隐患。超声波测距模块实时监测垃圾桶是否堆满。GPS定位模块确定垃圾桶的位置。语音模块使用人声发出警报和提示,使得该装置更加人性化、智能化。WiFi模块将装置的状态通过互联网传送到远程服务器中,方便统一管理。
装置的软件设计包括垃圾图像识别模型的移植、舵机控制以及环境信息的采集与上传。首先,在Jetson nano中安装TensorFlow,程序运行时先利用TensorFlow加载训练好的MobileNet-v2模型。作为主控制器的Jetson nano在系统启动时需要进行初始化操作并加载模型,然后通过摄像头获取分类板上的图像。当检测到分类板上有垃圾时,需要先将图像进行处理以便可以在输入模型中进行分类。最后,利用训练好的模型进行分类预测,并将分类结果发送给副控制器。主控制器软件设计流程如图4所示。当STM32F103副控制器接收到主控制器传输来的分类结果时,根据分类结果利用PCA9685舵机驱动板控制舵机转动,完成分类。副控制器除了实现舵机控制的功能外,还监测垃圾桶的温湿度和满溢度并发出警报或者提示,最后将垃圾桶的温湿度、满溢度和位置信息通过WiFi模块上传至网络服务器。副控制器的软件流程如图5所示。
图4 主控制器软件设计流程
图5 副控制器软件设计流程
为了验证智能垃圾分类装置的可行性及其在实际应用中的表现,实际测试中在4类垃圾中各选出25个物品作为测试样品,每个样品投放4次,统计其识别准确率,结果如表3所示。
表3 垃圾投放测试结果
从表3可以看出,智能垃圾分类装置对于可回收物和有害垃圾的识别准确率非常高,分别达到了95%和96%,对于厨余垃圾和其他垃圾的识别准确率较低,但准确率最低的其他垃圾也达到了86%。该装置的平均准确率达到了92%,满足日常生活需求。
经测试,该装置可以正常获取垃圾桶的温湿度、满溢度与位置信息,并即时显示与上传,在垃圾桶已满或温度异常时会及时发出提示与警报,实现了垃圾分类、人机交互和实时监测等功能。
将图像分类方法应用于垃圾分类,通过迁移学习的方法提高了垃圾分类的准确率,并基于此设计了一种低成本、可用于生活垃圾分类领域的小型智能垃圾分类装置,利用TensorFlow将训练好的MobileNet-v2模型移植到Jetson nano中,完成装置的硬件和软件的设计。实测结果表明,该智能垃圾分类装置的平均准确率达到92%,满足日常生活需求。该装置不仅实现了垃圾的自动分类与分拣,更是通过视听与互联网等多种渠道将装置的状态信息告知用户,使该装置的使用更加安全、更加方便。