基于深度学习的计算机视觉 - 垃圾分类(附源码)
1. 实验介绍
1.1 实验背景
自今年 7 月 1 日起,上海市将正式实施 《上海市生活垃圾管理条例》。
垃圾分类,看似是微不足道的“小事”,实则关系到13亿多人生活环境的改善,理应大力提倡。
垃圾识别分类数据集中包括玻璃 (glass) 、硬纸板 (cardboard) 、金属 (metal) 、纸 (paper) 、塑料 (plastic) 、一般垃圾 (trash) ,共6个类别。
生活垃圾由于种类繁多,具体分类缺乏统一标准,大多人在实际操作时会“选择困难”,基于深度学习技术建立准确的分类模型,利用技术手段改善人居环境。
1.2 实验要求
a)建立深度神经网络模型,并尽可能将其调到最佳状态。
b)绘制深度神经网络模型图、绘制并分析学习曲线。
c)用准确率等指标对模型进行评估。
1.3 实验环境
可以使用基于 Python 的 OpenCV 库进行图像相关处理,使用 Numpy 库进行相关数值运算,使用 Keras 等框架建立深度学习模型等。
1.4 参考资料
OpenCV:https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html
Numpy:https://www.numpy.org/
Keras: https://keras.io/
2.实验内容
2.1 介绍数据集
该数据集包含了 2507 个生活垃圾图片。数据集的创建者将垃圾分为了 6 个类别,分别是:
序号 | 中文名 | 英文名 | 数据集大小 |
---|---|---|---|
1 | 玻璃 | glass | 共 497 个图片 |
2 | 纸 | paper | 共 590 个图片 |
3 | 硬纸板 | cardboard | 共 400 个图片 |
4 | 塑料 | plastic | 共 479 个图片 |
5 | 金属 | metal | 共 407 个图片 |
6 | 一般垃圾 | trash | 共 134 个图片 |
-
物品都是放在白板上在日光/室内光源下拍摄的,压缩后的尺寸为 512 * 384
图片预览
3.实验源码
实验源码如下图所示
from keras.layers import Input, Dense, Flatten, Dropout, Activation
from keras.layers.normalization import BatchNormalization
from keras.preprocessing.image import ImageDataGenerator
from keras.callbacks import TensorBoard
from keras.preprocessing import image
from keras.models import load_model
from keras.models import Model
import matplotlib.pyplot as plt
import glob, os, cv2, random,time
import numpy as np
from keras.models import Sequential
from keras.layers import Conv2D,Flatten,MaxPooling2D,Dense
from keras.optimizers import SGD
from keras.applications.vgg16 import VGG16
def processing_data(data_path):
"""
数据处理
:param data_path: 数据集路径
:return: train, test:处理后的训练集数