垃圾分类算法
基于TensorFlow和VGG-16卷积神经网络训练垃圾分类模型,通过服务器实现分类模型移植到移动端,并在微信小程序中进行应用。
系统整体结构
Python环境
安装Anconda 34.2.0版本,Windows版本下的TensorFlow暂时不支持Python 2.7,需要安装Python 3.7。
TensorFlow环境
由于Keras默认TensorFlow为后端,本项目采用TensorFlow作为Keras后端。打开Anaconda Prompt。
(1)在C:\Users\Lenovo\Anaconda3\envs新建环境目录,例如,DeepLearning。
(2)在命令行窗口输入以下命令激活DeepLearning:
C:\Users\Lenovo\Anaconda3>activate DeepLearning
(3)输入以下命令安装tensorflowgpu:
conda install tensorflow-gpu
Anaconda会自动显示匹配所需的安装包,输入y,安装完成。
(4)安装tensorflow-gpu后,在新建的DeepLearning环境中安装基础库。
(5)在CMD命令行或者Powershell中安装Keras,输入以下命令:
pip install keras
验证Keras是否安装成功,在命令行中输入Python命令变成命令行环境后输入:
import keras
未报错,则Keras成功安装。
微信小程序及后台服务器环境
(1)下载微信开发者工具v1.02.2003112,扫描二维码登录后进行程序编写。
(2)服务器配置为2核CPU、4GB内存、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源文件:
wgethttp://nginx.org/download/nginx-1.6.2.tar.gz
解压并编译安装。
(5)安装PHP,相关代码如下:
数据预处理
据下载地址为:https://pan.baidu.com/s/1VhJnSRKlpUOHRp1P4MZ0pQ,提取码:8dsd。该数据集包含10种垃圾:纸箱、玻璃、金属、纸、塑料、其他废品、LED灯泡、瓜子、白菜、纽扣电池,每种垃圾数据集大约包含300~400张图片,压缩后的尺寸为512×384。筛选出具有明显特征的(主要是单一物体、单一背景)垃圾图片
首先,对图片进行缩放和翻转,并压缩为(150,150);其次,把10%的数据作为测试集,训练数据进行分批,每批16张图片。
相关代码如下: