李长江,余海涛,李官星,李玥洋,谭雯文
(1.重庆科技学院 机械与动力工程学院,重庆 401331;2.凤鸣山中学,重庆 400030;3.重庆工程职业技术学院,重庆 402260)
随着机器视觉、人工智能技术的快速发展,利用机器来代替人工作业必将是可回收垃圾分类回收的发展趋势。因可回收垃圾种类繁多、形状各异,尚未有成熟的能够在环境复杂下满足分拣准确性要求的视觉处理产品,特别是与工业机械臂实时配合的视觉辨识技术。近年来,深度学习技术迎来了一个快速发展的时机,在图像识别领域成果显著。许多学者将深度学习技术应用于垃圾分类领域,但都或多或少存在着一些问题。Stephenn L.Rabano等人(2018)应用轻量级网络MobileNet 于TrashNet Dataset 数据集,取得了87.2%的测试正确率。Victoria Ruiz等人使用ResNet 网络在这一数据集上取得了88.66%的平均正确率。Rahmi Arda Aral等使用DenseNet121 和DenseNet169 网络,将准确率提升至95%的平均准确率。Umut Ozkaya等使用GoogleNet 搭配SVM分类器,准确率达到了97.86%。在模型精度增长的同时,所使用的模型的复杂度和运行时间也在增加。因此行业内急需一种分类准确率高、速度快的深度学习算法,以便于快速分拣垃圾,提高效率,嵌入至硬件设备,满足工业化应用需求。
本文研究基于SqueezeNet的改进模型,提出SqueezeNet-Tiny,解决模型较大造成的工业应用困难、可回收垃圾图像特征太复杂造成的模型泛化能力不足等问题。在自制的可回收垃圾数据集(Recyclable Waste Dataset)上实验,验证了其在参数量较少的情况下也具有良好的泛化能力。
在图像识别的过程中,传统的卷积神经网络往往通过简单的堆叠网络层数来获取较高的模型正确率,例如AlexNet、VGG16Net、GoogleNet 等,但这样做会带来复杂的网络模型与庞大的网络参数量,在小型数据集上易出现过拟合现象,导致模型正确率不增反降,同时消耗大量训练时间,不利于对网络进行优化和后续的硬件部署工作。为了保证模型性能的同时减小模型的参数量与运算量,轻量级网络模型的提出与设计显得尤为重要。
SqueezeNet 是Iandola 借鉴Inception 模型的提出的一种轻量级网络模型,其参数量只有0.72 M,相当于AlexNet 参数量的1/50,但其在ImageNet 的top-1 准确率与top-5 的准确率与AlexNet 相当。相比于传统的卷积方式最重要的改变是提出了FireModule,并且整个网络所采用的核心结构是FireModule 的组合形式。FireModule 的结构如图1所示,其包含两个部分,squeeze layer 和expand layer 层,如图所示,squeeze layer 采用个1×1 的卷积核对输入维度为通道的图像进行降维,expand layer 采用并行的个1×1 和个3×3 的卷积核对压缩层的图像进行升维,其中<,4=+,并将升维后的结果进行拼接(concatenate)后得到输出图像。
图1 FireModule 基本结构
对SqueezeNet 模型进行微改和删减等改进方式后提出SqueezeNet-Tiny,由于SqueezeNet 模型会导致输入图像的丢失信息过多,增加模型的错误率,为减少图像的损失信息,增加模型的泛化性能。本文对SqueezeNet 改进策略如下。本文将SqueezeNet 网络的第3 个池化层删除,并且将第1 个卷积层的卷积核大小改为3×3 提出新轻量化网络模型SqueezeNet-Tiny,具体的模型结构图如图2所示。
图2 SqueezeNet-Tiny 结构图
从经济性、及实用性等角度,本文设计了可回收垃圾智能分类系统,制作工程化样机,完成了智能分类垃圾桶的运行实验。图3为智能垃圾分类桶的三维模型图。智能垃圾分类桶包括显示模块、图像采集模块、垃圾接收模块、分类执行模块。垃圾接收模块设置有接收平台和放料机构,图像采集模块安装有摄像头和光源系统,用于采集放置在接收平台的垃圾。分类执行模块包括与玻璃类、金属类、塑料类等对应可回收垃圾收集桶。垃圾进入接收模块及分类区域,传感器感应到目标进入并驱动摄像头获取垃圾图像,SqueezeNet-Tiny 网络模型执行分类算法。根据分类结构,执行模块的电机转动一定的角度,将对应类别的分类垃圾桶旋转至垃圾接收模块正下方,放料机构打开,目标收集到对应的分类桶。
图3 智能分类垃圾桶模型图
可回收垃圾数据集部份来自Gary Thung 和Mindy Yang 创建的垃圾分类数据集TrashNet Dataset。因TrashNet Dataset 中数据量少,且背景单一,无法满足工业实际应用需要。因此在其基础上加入有复杂背景的华为公开垃圾分类数据集。根据分类标准,将两个数据集中的织物、金属、玻璃、纸张、塑料5 大类别的图像筛选出来构成可回收垃圾数据集。对数据集中图像进行数据扩充处理,形成Recyclable Waste Dataset。其共有图片20 596 张,其中织物图像数据3 700 张,玻璃图像数据4 800 张,金属图像数据4 168 张,纸张图像数据4 552 张,塑料图像数据3 376 张,在输入模型训练前将数据集里面的图像统一至32×32 像素。数据集划分为训练集验证集与测试集,其中训练集、验证集和测试集分别占数据集的60%、20%、20%。
本次实验以Juypter Notebook 为实验平台,利用Keras 和Tensorflow 等深度学习开源框架,CPU(Central Processing Unit)为Inter(R) Core(TM) i7-7700,主频为3.60 GHz,内存为16.0 GB,GPU(Graphics Processing Unit)为NVIDLA GeForce GTX 1050Ti(4 GB)。
为了避免超参数对实验造成影响,本文设置实验时均采用相同的参数设置,迭代次数设置为225 次,实验设置初始学习率为0.1,并在第75 次迭代次数的时候学习率衰减为0.01、第150 个迭代次数的时候学习率衰减为0.001。优化函数使用随机梯度下降法。
各网络模型的精确度、参数量与FLOPs 分布情况如表1所示。
表1 各模型精确度变化情况
本文提出的模型SqueezeNet-Tiny 在第75 和150 迭代次数时,模型有一个较大的精确度提升,是由于本文所设置的随机梯度下降法优化函数时在这两个迭代次数的学习率从0.1 下降至0.01 和0.001,小学习率更有利于模型泛化能力的提高,更有利于模型对于可回收垃圾的分类识别。
表1为SqueezeNet-Tiny、SqueezeNet、AlexNet 三个网络模型参数量、BFLOPs 以及在Recyclable Waste Dataset 数据集的识别精度。SqueezeNet-Tiny 在参数量与模型复杂度与初始SqueezeNet 相同,仅为0.73 M,远低于传统的大型神经网路模型 AlexNet。在 Recyclable Waste Dataset 数据集的识别精度均得到了一定程度的提升,达到了94.68%。实验表明,本文所提出的删除第三池化层和修改卷积核大小的改进策略是有效性的,基于改进策略提出的SqueezeNet-Tiny 网络既能满足可回收垃圾分类领域对网络泛化能力的需求,也能满足工业化应用是对于精度要求和模型轻量化的需要。
人机交互系统采用Python 中的TKinter 库编写完成,树莓派执行智能垃圾分类桶的运行控制。树莓派调用摄像头获得接收平台的垃圾的图像,预处理后的垃圾图像输入至训练好的SqueezeNet-Tiny 网络中进行分类,并在终端中显示出分类的结果。具体的实现结果如图4所示。
图4 智能分类功能具体实现图
本文以轻量级模型SqueezeNet 为基础网络,对其进行改进后提出轻量级网络模型SqueezeNet-Tiny。在自制的可回收垃圾数据集Recyclable Waste Dataset 上进行实验,实验证明,SqueezeNet-Tiny 在参数量与模型复杂度不变的前提下,能够取得比SqueezeNet 更好的实验效果。其次,本文还将SqueezeNet-Tiny 与AlexNet 模型进行实验,在参数量与模型复杂度都远小于AlexNet 网络的前提下,其精确度提高了1.5%。仅需要0.73M的参数量就可以实现94.68%的精确度。实验证明其具有良好的识别能力与泛化能力。本文还将SqueezeNet-Tiny 嵌入至树莓派上,最终实现了可回收垃圾的智能分类。