信息系统设计
垃圾分类微信小程序设计报告
姓
名:
学
号:
班
级:
专
业:
指导教师:
1
目录
一、引言................................................................................................................................3
二、项目背景........................................................................................................................3
三、系统概述........................................................................................................................3
2.1 总体框架图.................................................................................................................................. 3
2.2 系统流程图................................................................................................................................. 4
2.3 算法描述.......................................................................................................................................6
2.4 硬件环境.......................................................................................................................................7
2.5 软件环境......................................................................................................................................8
三、系统模块实现................................................................................................................9
3.1 准备数据及数据集划分........................................................................................................... 9
3.2 创建模型并编译.......................................................................................................................11
3.3 模型训练及保存.......................................................................................................................12
3.4 模型应用—微信小程序实现...............................................................................................13
四、系统测试......................................................................................................................22
4.1 图像识别算法测试.................................................................................................................22
4.2 垃圾分类微信小程序测试................................................................................................... 23
五、问题分析......................................................................................错误!未定义书签。
六、总结体会......................................................................................错误!未定义书签。
参考书目及链接:..............................................................................错误!未定义书签。
2
一、引言
垃圾分类,指按一定规定或标准将垃圾分类储存、分类投放和分类搬运,从而转变成公
共资源的一系列活动的总称。分类的目的是提高垃圾的资源价值和经济价值,力争物尽其用;
然而在日常生活中大部分人对垃圾分类还是有些不知所措的,对干垃圾、湿垃圾分的不是很
清楚,由此本文就提出了使用深度学习的方法对垃圾进行分类,并将学习模型转移到微信小
程序上,真正的方便居民的生活。此项目主要由两大部分组成,首先基于 python 利用深度
神经网络算法搭建图像识别算法,进而通过训练得到理想的模型,然后利用微信开发工具搭
建垃圾分类微信小程序并利用训练出的模型实现垃圾分类整个系统的设计开发。
二、项目背景
国务院办公厅转发国家发展改革委、住房城乡建设部《生活垃圾分类制度实施方案》,
部署推动生活垃圾分类工作,认为实施生活垃圾分类可以有效改善城乡环境,加快资源节约
型、环境友好型社会建设,提高新型城镇化质量和生态文明建设水平。在这一政策的推动下,
上海、北京、广州、成都等相继推行强制垃圾分类举措。
然而,分类知晓率低、分类投放准确率低、资源利用率低等“三低”问题,成为了垃圾
分类的“拦路虎”。面对生活垃圾,有的居民表示不知道怎么分,比如困惑:嗑瓜子吐的瓜
子壳是餐厨垃圾还是其他垃圾?用过的湿纸巾是可回收垃圾还是其他垃圾?所以如果出现
一个简单的微信小程序,能够随时随地通过手机拍照即可解决居民的垃圾分类困扰,方便居
民进行垃圾分类,因此,本项目就是为了解决这一问题。
三、系统概述
对于图像分类任务,当前最先进的架构是卷积神经网络(CNN)。无论是面部识别、自动
驾驶还是目标检测,CNN 均得到了广泛应用。在本项目中,针对垃圾图片识别任务,设计了
一个基于 TensorFlow 的 VGG16 卷积神经网络(CNN)模型,并将模型移植到移动端微信小程序
中进行应用。
2.1 总体框架图
3
图 1-1 总体框架图
2.2 系统流程图
结合数据集的特点和任务需求,系统流程包括:准备数据、创建模型并编译、训练模型
并评估、模型存储、模型移植、微信小程序的调用。
python 训练模型系统流程如图 1-2:
4
图 1-2 训练模型系统流程
微信前端及后台系统流程如图 1-3:
5
图 1-3 小程序后台系统框架
2.3 算法描述
本次垃圾图片分类任务采用的是经典的深度学习模型 VGG16。VGG 是 Simonyan 和
Zisserman 在文献《Very Deep Convolutional Networks for Large Scale Image Recognition》
中提出卷积神经网络模型,其名称来源于作者所在的牛津大学视觉几何组(Visual Geometry
Group)的缩写。该模型参加 2014 年的 ImageNet 图像分类与定位挑战赛,取得了优异成绩:
在分类任务上排名第二,在定位任务上排名第一。
针对 VGG16 进行具体分析发现,VGG16 共包含:13 个卷积层(Convolutional Layer),
分别用 conv3-XXX 表示,3 个全连接层(Fully connected Layer),分别用 FC-XXXX 表示,
5 个池化层(Pool layer),分别用 maxpool 表示。其中,卷积层和全连接层具有权重系数,
因此也被称为权重层,总数目为 13+3=16,这即是 VGG16 中 16 的来源。(池化层不涉及权重,
因此不属于权重层,不被计数)。
VGG16 的突出特点是简单,具有很高的拟合能力,但同时缺点也很明显,即训练时间过
6
长,调参难度大,需要的存储容量大,不利于部署。例如存储 VGG16 权重值文件的大小为
500 多 MB,不利于安装到嵌入式系统中。
图 1-4 Vgg16 模型图
2.4 硬件环境
描述系统的硬件环境,以及对系统有影响的关键硬件信息。
硬件名称
CPU
硬盘
内存
显卡
主板
电源
手机
推荐配置
i7-6950X 或 i7-7700K 及其以上高级型号
品牌固态硬盘,容量 256G 以上
总容量 32G 以上,根据主板组成 4 通道或 8 通
道
NVIDIA GTX TITAN(XP) NVIDIA GTX 1080ti、
NVIDIA GTX TITAN 、 NVIDIA GTX 1080 、
NVIDIA GTX 1070、NVIDIA GTX 1060 等
X299 型号或 Z270 型号
由主机机容量的确定,一般有显卡总容量后再
加 200W 即可
iOS 6.5.8 / 安卓 6.5.7 及以上版本
7
2.5 软件环境
1.Python 环境
python 环境建设推荐使用科学计算集成 python 发行版 Anaconda,Anaconda 是 Python
众多发行版中非常适用于科学计算的版本,里面已经集成了很多优秀的科学计算 Python 库。
建议安装 Anconda3 4.2.0 版本,目前新出的 python3.6 存在部分不兼容问题,所以建议安
装 python3.7 注意:windows 版本下的 tensorflow 暂时不支持 python2.7。
2.TensorFlow 环境及 Keras 框架
由于 Keras 默认以 Tensorflow 为后端,本文默认采用 Tensorflow 作为 Keras 后端。
打开 Anaconda Prompt
1)在 C:\Users\Lenovo\Anaconda3\envs (环境目录)里面新建一个环境目录,如:
DeepLearning,
2)在命令行窗口输入 C:\Users\Lenovo\Anaconda3> activate DeepLearning,激活
DeepLearning。
3)在该环境中输入:conda install tensorflow-gpu,安装 tensorflow-gpu,
Anaconda 会自动显示匹配所需安装的包,你只需要输入 y,同意后,等待数分钟,安装
完成。
4)安装完 tensorflow-gpu 后,记得在新建的 DeepLearning 环境中安装基础的库
5)在 CMD 命令行或者 Powershell 中输入:pip install keras 安装。之后可以验证 keras
是否安装成功,在命令行中输入 Python 命令进入 Python 变成命令行环境:import keras 没
有报错,那么 Keras 就已经成功安装了
3. 微信小程序及后台服务器环境
1)下载微信开发者工具 v1.02.2003112,利用开发者微信扫描二维码登录后进行编写。
2)服务器配置为 2 核 CPU,4GiB 内存,CentOS 7.6 64 位操作系统,1Mbps 带宽。
3)配置安全组,开放端口 22, 80, 443, 3306, 5000。
4)后台需要安装 Nginx 及其编译工具和库文件,首先运行 yum -y install make zlib
zlib-devel gcc-c++ libtool
openssl openssl-devel,下载 nginx 源文件:wget
http://nginx.org/download/nginx-1.6.2.tar.gz 后解压并编译安装。
5)安装 php。代码如下:
rpm -Uvh
8