卷积神经网络在垃圾分类识别中的应用

2021-06-03 06:12南航金城学院机电工程与自动化学院李朝宇刘伟康闫文龙吴家润
电子世界 2021年9期
关键词:池化层树莓卷积

南航金城学院机电工程与自动化学院 李朝宇 田 莉 刘伟康 闫文龙 吴家润

随着人们的生活水平越来越高,生活垃圾的处理变成了社会的一大难题,为解决居民日常生活中的垃圾分类问题,提出了基于图像识别的垃圾分类系统。将卷积神经网络部署在服务器里,并通过API接口移植到树莓派主控板中,实现前后端分离的设计,设计了垃圾分类器的机械结构,最终实现了垃圾自动分类功能,系统具有较高识别率,维护成本低,方便实用的特点,为实现智慧城市,提高居民宜居感,提高资源利用率提供一种解决方案。

目前城市里每天会产生2.55万t左右的生活垃圾,人均每天产生1.1kg,而且数量还在上涨,如此多的垃圾,如果不对其进行垃圾分类,将会造成资源的大量浪费以及对环境的巨大破坏。目前多个城市已经强制推行垃圾分类,但是由于配套设施的不完善和人们的垃圾分类意识不足,垃圾分类的成效不太理想。本文通过搭建云服务器,设计并不断优化卷积神经网络、对生活垃圾中的可回收垃圾、有害垃圾、厨余垃圾、其他垃圾进行了高效智能识别,设计出可自动进行垃圾分类的智能垃圾桶,为构建生态文明城市提供一种智能化解决方案。

1 系统的整体设计

本系统的硬件设计采用树莓派作为控制器,垃圾桶的桶体为圆柱形,等分为4个分类桶,分类桶的桶盖向内凹陷成锥形槽,在垃圾桶左方架设一个支撑架用于支撑人工操作显示屏,并且在锥形槽正上方安装摄像头及灯泡,调整角度使其能够最大范围内识别垃圾,架设四个舵机拨片操作云台,通过树莓派发出指令,使对应的舵机箱盖打开,对各种垃圾进行精确的分类处理。机械装置的3D示意图如图1所示。

图1 垃圾桶硬件平台3D模型

整体的系统设计如图2所示,是摄像头对停驻层上的垃圾进行数据采集,并将图像信息传入OpenCV计算机视觉库,经由图像处理后交由云端的Tensorflow中进行整合训练,最终结果返回给树莓派,树莓派主控应用Electron控制flask进行页面交互和舵机控制,服务器端负责管理数据并利用卷积神经网络训练模型,提供应用API接口,由flask进行调用,形成了前后端分离的设计。

图2 垃圾分类系统总体设计图

2 卷积神经网络设计

2.1 卷积神经网络垃圾识别算法

卷积神经网络(CNN)有较好的非线性形变稳定性,即当我们将垃圾位置进行平移后,仍能得到同样的检测结果。卷积神经网络结构可分为卷积层、最大池化层和全连接层,其结构如图3所示。

图3 卷积网络结构图

卷积层:卷积层的作用是对输入数据进行卷积运算。卷积神经网络中每个卷积层需要使用激活函数。激活函数是对卷积层的数据结果运用激活函数进行非线性映射,本文使用ReLU作为激活函数,其函数定义为:

即输入<0,输出=0。输入>0,输出=输入。

与其他函数相比,ReLU激活函数的优点是收敛快,梯度运算简单。ReLU激活函数的函数图像如图4所示:

图4 ReLU激活函数

池化层:池化层的主要作用是通过对上一层输出做降维处理,即取特征图的最大值使其降低维度,如图5所示。

图5 最大池化层示意图

全连接层:将二维特征图转换为一维的向量,该层执行最后一个矩阵乘法器以计算输出。

图6 全连接网络图

图6所示是一个简单的全连接网络图,表示全连接层上的每个节点都与上层的节点连接,其中x1、x2、x3为全连接层的输入数据,a1、a2、a3为输出数据,全连接层的计算公式如下:

2.2 ResNet50网络模型

本文采用神经网络ResNet50预训练模型,该模型利用残差学习来解决退化问题。

Resnet的拟合方程是,如下的公式:

其中H(x)为当前网络中拟合的残差映射,F(x)和x分别是一个block层的输出和输入,本文采用三层block结构,如图7所示,可以有效提高模型运算速度。

图7 ResNet50网络结构

2.3 数据集

数据集是神经网络训练的基础,系统目标是将可回收材料从居民的日常垃圾中区别出来,所以根据居民垃圾的可回收分类标准,本项目从网上收集了17350张开源照片,对图片进行人工标注并将图片分为可回收垃圾、有害垃圾、厨余垃圾和其他垃圾。可把数据集分为训练集和测试集用于神经训练,分别得到各自的损失值和精度值,将训练集上的损失值和精度值用于更新参数,而测试集用于评估模型。

2.4 Tensorflow模型训练

2.4.1 训练环境

训练环境搭建在服务器中,选择Tensorflow1.6作为深度学习的框架,代码的实现环境是Python3.6,Keras2.3.1作为代码的深度学习库,Keras是基于Python编写的高级神经网络,它能够以Tensoflow作为后端运行。

2.4.2 模型训练

首先导入需要的包和库,并定义神经网络参数,如学习效率λ=0.0001,防过拟合参数dropout=0.5,加载数据集,并对其进行预处理,将图片统一设置成(224,224,3)的三通道RGB图片,对图片随机剪切、翻转和旋转等操作,最后引入Resnet50预训练模型。定义卷积层,设置卷积核大小,步幅strides=1,对图像进行低级特征提取,边界填充=0,激活函数选用Relu,加入卷积核权重weight decay=0.0001和偏置送入激活函数中。定义最大池化层,对输入特征降维缩小最后全连接节点个数,定义全连接层,dropout层与Relu激活函数能有效降低过拟合概率,提高数据训练时间,使用SVM支持向量机对输出进行分类,将垃圾分为可回收垃圾、有害垃圾、厨余垃圾和其他垃圾。

2.4.3 模型优化

Tensorflow的模型在运行时,需要优化参数,使损失函数达到最小,故需引入Adam优化器,优化器的任务是在每一个Epoch中计算损失函数的梯度,并更新参数。本系统设置学习率,矩估计指数衰减率,步长。

2.5 神经网络移植

将Tensorflow训练中的数据保存,并可视化之后,发现损失函数值最低为0.78,识别精度最高为95.52%。如图8所示。

图8 损失函数变化图

用测试集中的图片,对其在PC端的识别精度进行测试,如表1所示,模型在PC端运行良好,能基本区分测试图片,测试准确率最高可达到95%。如图9所示。

图9 识别精度变化图

表1 神经网络模型在PC端的识别率数据表

将神经网络模型部署在服务器端上后,使用测试图片进行识别测试,获得识别准确率,如表2所示,部署后的卷积神经网络识别准确率与在PC端上运行时准确率一致,移植效果较好。

表2 神经网络模型在服务器端的识别率数据表

3 人机交互界面外观设计

树莓派是基于Linux开发的,我们需要开发一个能在Linux环境下稳定运行的桌面应用。ELECTRON-VUE相当于一个浏览器的外壳,可以把网页程序嵌入到硬件程序里面,可以运行在桌面上的一个程序,可以把网页打包成一个在桌面运行的程序,通俗来说就是软件,一个可以构建跨平台桌面程序。

图10 人机交互界面设计图

在人机交互软件上,除自动运行方式外,还可让用户在软件上手动选择垃圾种类,启动分类装置动作。如图10所示。

本系统针对垃圾分类问题,提出了通过搭建云服务器,设计并不断优化卷积神经网络,可对生活垃圾中的可回收垃圾、有害垃圾、厨余垃圾、其他垃圾进行智能识别。垃圾识别精度达到了95.52%,满足设计的应用需求,具有良好的应用前景。

猜你喜欢
池化层树莓卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络模型研究分析*
基于卷积神经网络的纸币分类与点钞
基于深度学习卷积神经网络的人体行为识别研究
从滤波器理解卷积
基于树莓派的骑行智能头盔设计
基于全卷积神经网络的SAR图像目标分类*
基于傅里叶域卷积表示的目标跟踪算法
基于树莓派的远程家居控制系统的设计
响应面法优化红树莓酒发酵工艺