基于Densenet密集网络的垃圾分类算法的设计与实现
作者: 周诗禹 王旭 刘霁 钟丽辉
摘要:目前垃圾分类主要依靠人工分类,在大数据平台深度学习图像分类已日益成熟,本文探索深度学习在垃圾分类识别中的应用。本文首先利用Tensorflow搭建深度学习的框架;其次以AI Studio上11000张、26个类别的生活垃圾图像作为数据;再次利用训练数据对Densenet密集型网络进行学习训练;最后测试得到网络的识别率为90%。
关键词:垃圾分类;PyTorch;Resnet50;残差网络
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2022)24-0101-02
目前,垃圾随着生活水平的提高而不断增多,但垃圾分类主要依靠人工分类,工作量大,时间经济成本高,识别效率较低,探索计算机协助手段的垃圾分类方法依然是目前研究的热点和难点[1-2]。近年来,深度学习在图像、视频和音频等方面的应用取得突破性进展,基于大数据平台的深度学习算法是现在人工智能研究的主流。深度学习的卷积神经网络在图像识别方面应用较为成熟、识别率高、效果明显[3]。深度学习处理垃圾分类的主要目的是使垃圾得到精确分类,降低垃圾处理的难度以及垃圾处理成本,提高垃圾的资源利用及其经济价值。
目前,多种新型高准确率深度学习网络出现,能提升数字图像处理技术对垃圾识别的准确性,能在保证准确率的前提下,让数字图像处理与垃圾分类识别相结合,解放垃圾分拣工人,降低回收分拣压力。将卷积神经网络应用于图像处理中,提高市场垃圾分类应用App的识别准确率,有利于人们全面认识垃圾所属种类[5-6]。
本文利用Tensorflow搭建深度学习的框架,以AI Studio上万张垃圾图像作为数据,利用Densenet密集网络对垃圾数据进行学习训练和识别。
1 Densenet密集网络和数据集
Densenet密集网络摆脱加宽网络结构和加深网络层数的思维定式,Densenet密集网络采用密集连接机制,即采用DenseBlock+Transition的结构来保持训练中的特征图像大小尺寸一致,实现特征的重复利用,Densenet基本网络结构如图1所示。Densenet密集网络减缓梯度消失现象的同时,在参数计算更少的情况下,训练出来的网络模型较其他网络如残差网络更好。
Densenet密集网络中DenseBlock层包含很多层模块,其中每一层的特征图像大小都一致,层与层之间使用密集连接。非线性函数组合方式是采用的BN-ReLU-Conv结构,也称为Pre-activation。同时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密集网络训练得到准确率较高的模型,保存训练模型;最后测试验证模型识别准确率。Densenet密集网络的垃圾分类识别实现的流程图如图3所示。
2.1 垃圾图像的预处理
Densenet卷积神经网络的输入层图片尺寸为224*224,不满足尺寸要求的图像直接进行丢弃处理,使图片能正常输入到网络进行训练提取特征;为了防止过拟合,对数据集图像进行翻转和旋转操作,扩大数据集。
2.2 Densenet密集网络的训练
首先,通过Tensorflow深度学习框架加载Densenet密集型卷积神经网络;其次将预处理好的约8000张图像数据分批次送入Densenet密集型卷积神经网络进行训练;再次,每32张图片小批次训练集计算损失值,通过优化器Adam找到最优梯度下降方法;最后,反馈更新权重值,不断提升准确率。当每一个大批次训练数据训练完成后,将验证集数据丢入该次训练得到的训练模型中,计算出该模型的准确率。每次训练准确率与上一次训练得到模型比较准确率,最终得到最高测试准确率的网络。
2.3 Densenet密集网络的测试识别
首先,调整测试集图像大小并加载测试集图像;然后,加载选定损失值适中、验证集准确率最高的训练模型;最后模型识别测试集所属种类。
2.4 Densenet密集网络识别结果
预处理训练集数据加上调用GPU高运算模式训练网络,训练26类约8千多张垃圾图片数据时间约5小时,训练最终保留验证集顶层top-1准确约为0.875的模型,传输测试集处理好的图片进行预测。训练过程如图4所示,预测结果如图5所示。
测试最终准确率达90%,预测错误率为10%,该模型能够能很好地识别各种垃圾类别。
3 总结和讨论
本文以AI Studio上11000张垃圾图像,共26个类别作为本论文的垃圾分类数据集。其中,80%的图像作为Densenet密集网络的训练集,每类剩余20%图片数据为测试集,利用Tensorflow搭建深度学习的框架,利用Densenet密集网络对垃圾数据实现了分类,识别的准确率为90%。本文数据集中在常见的垃圾图像,为提高垃圾分类识别智能化的准确性,需要涉及面更广更全面的垃圾图像,以期通过App增加人们对垃圾分类的相关知识)针对不同网络的特性合理安排App的使用方式,实现基于深度学习的智能垃圾分类。
参考文献:
[1] 洪树亮,巴丽合亚·卡里布汗,程丽娟.基于深度学习的垃圾图像分类模型的研究[J].新型工业化,2021,11(3):45-46.
[2] 武凌,王浩,张晓春,等.基于深度迁移学习的垃圾分类系统设计与实现[J].沈阳大学学报(自然科学版),2020,32(6):496-502.
[3] 莫卓亚,彭创权.基于深度学习的垃圾分类识别技术[J].现代工业经济和信息化,2020,10(10):60-61.
[4] 吕程熙.基于深度学习实现自动垃圾分类[J].电子制作,2019(24):36-38.
[5] 郭昌鑫,陈公兴.基于深度学习的智能垃圾桶识别分类系统[J].科技与创新,2020(12):30-31,35.
[6] 祝朝坤,魏伦胜.基于TensorFlow的智能垃圾分类系统的研究与设计[J].电子产品世界,2020,27(6):71-75.
【通联编辑:唐一东】