周诗禹,王旭,刘霁,钟丽辉
(西南林业大学计算机与信息学院,云南昆明 650224)
目前,垃圾随着生活水平的提高而不断增多,但垃圾分类主要依靠人工分类,工作量大,时间经济成本高,识别效率较低,探索计算机协助手段的垃圾分类方法依然是目前研究的热点和难点[1-2]。近年来,深度学习在图像、视频和音频等方面的应用取得突破性进展,基于大数据平台的深度学习算法是现在人工智能研究的主流。深度学习的卷积神经网络在图像识别方面应用较为成熟、识别率高、效果明显[3]。深度学习处理垃圾分类的主要目的是使垃圾得到精确分类,降低垃圾处理的难度以及垃圾处理成本,提高垃圾的资源利用及其经济价值。
目前,多种新型高准确率深度学习网络出现,能提升数字图像处理技术对垃圾识别的准确性,能在保证准确率的前提下,让数字图像处理与垃圾分类识别相结合,解放垃圾分拣工人,降低回收分拣压力。将卷积神经网络应用于图像处理中,提高市场垃圾分类应用App的识别准确率,有利于人们全面认识垃圾所属种类[5-6]。
本文利用Tensorflow 搭建深度学习的框架,以AI Studio 上万张垃圾图像作为数据,利用Densenet密集网络对垃圾数据进行学习训练和识别。
Densenet 密集网络摆脱加宽网络结构和加深网络层数的思维定式,Densenet密集网络采用密集连接机制,即采用Dense-Block+Transition 的结构来保持训练中的特征图像大小尺寸一致,实现特征的重复利用,Densenet 基本网络结构如图1 所示。Densenet密集网络减缓梯度消失现象的同时,在参数计算更少的情况下,训练出来的网络模型较其他网络如残差网络更好。
图1 Densenet各层网络结构
Densenet 密集网络中DenseBlock 层包含很多层模块,其中每一层的特征图像大小都一致,层与层之间使用密集连接。非线性函数组合方式是采用的BN-ReLU-Conv结构,也称为Preactivation。同时DenseBlock 的内部采用Bottleneck 层来减少训练过程的计算量,该结构就是在Pre-activation原结构中增加1*1卷积层,即为:BN-ReLU-1*1 Conv-BN-ReLU-3*3 Conv,这类结构被Densenet称为DenseNet-B结构,结构单独添加1*1卷积层能起到降低特征数量、提升计算效率的作用。Densenet密集网络中Transition 层,主要用于两个DenseBlock 层之间,降低特征图像大小,保持特征图大小一致;由1个卷积层和1个平均池化层构建组成:BN-ReLU-1*1 Conv-2*2AvgPooling,起到压缩模型的作用。
在AI Studio上选取了26个类别,11000张垃圾分类图像作为本文垃圾分类的数据集,数据集如图2 所示。其中,26 类中每类80%的图像作为Densenet 密集网络的训练集,每类剩余20%图片数据为测试集。
图2 数据集图像
本文利用Densenet密集网络实现垃圾分类。首先,对初始垃圾图像数据进行归类标签及图像预处理;然后利用训练数据集数据对Densenet密集网络训练得到准确率较高的模型,保存训练模型;最后测试验证模型识别准确率。Densenet密集网络的垃圾分类识别实现的流程图如图3所示。
图3 Densenet网络的垃圾分类识别的流程图
Densenet 卷积神经网络的输入层图片尺寸为224*224,不满足尺寸要求的图像直接进行丢弃处理,使图片能正常输入到网络进行训练提取特征;为了防止过拟合,对数据集图像进行翻转和旋转操作,扩大数据集。
首先,通过Tensorflow深度学习框架加载Densenet密集型卷积神经网络;其次将预处理好的约8000张图像数据分批次送入Densenet密集型卷积神经网络进行训练;再次,每32张图片小批次训练集计算损失值,通过优化器Adam 找到最优梯度下降方法;最后,反馈更新权重值,不断提升准确率。当每一个大批次训练数据训练完成后,将验证集数据丢入该次训练得到的训练模型中,计算出该模型的准确率。每次训练准确率与上一次训练得到模型比较准确率,最终得到最高测试准确率的网络。
首先,调整测试集图像大小并加载测试集图像;然后,加载选定损失值适中、验证集准确率最高的训练模型;最后模型识别测试集所属种类。
预处理训练集数据加上调用GPU高运算模式训练网络,训练26类约8千多张垃圾图片数据时间约5小时,训练最终保留验证集顶层top-1准确约为0.875的模型,传输测试集处理好的图片进行预测。训练过程如图4所示,预测结果如图5所示。
图4 Densenet网络训练结果
图5 预测结果
测试最终准确率达90%,预测错误率为10%,该模型能够能很好地识别各种垃圾类别。
本文以AI Studio上11000张垃圾图像,共26个类别作为本论文的垃圾分类数据集。其中,80%的图像作为Densenet密集网络的训练集,每类剩余20%图片数据为测试集,利用Tensorflow 搭建深度学习的框架,利用Densenet 密集网络对垃圾数据实现了分类,识别的准确率为90%。本文数据集中在常见的垃圾图像,为提高垃圾分类识别智能化的准确性,需要涉及面更广更全面的垃圾图像,以期通过App增加人们对垃圾分类的相关知识)针对不同网络的特性合理安排App 的使用方式,实现基于深度学习的智能垃圾分类。