基于TensorFlow的简单的垃圾分类系统的实现

**计算机系统的介绍

一 概要

  垃圾分类是近段时间来,全国范围内的热点问题,它是需要落实到我们每一个人身上来。但是由于范围太广且是最近才开展的工作,所以还是有“混合垃圾”出现。人工智能机器学习也是今年来快速发展的技术,那么利用TensorFlow去简单进行垃圾分类其实也是非常不错的选择。本文就使用TensorFlow中比较常见且使用非常广泛的卷积神经网络来实现智能垃圾分类的目标,卷积神经网络是现今图像分类的比较好的解决方案。TensorFlow扎根于Python中,并且还是跨平台的,兼容性方面自然不必多讲,主要是其整个的生态是十分健全的,在Python当中的不少库如keras,pytorch,random,OpenCV等,都能够对TensorFlow有着不小的助力。本文主要通过卷积神经网络去训练处能够识别分为四大类垃圾:“可回收的垃圾,有害的垃圾,厨余的垃圾,其他的垃圾”的模型,然后通过该模型来完成对垃圾图像的识别和分类,帮助我们去完成垃圾分类这个主要的任务。

关键词: TensorFlow 垃圾分类 图像识别 ResNet模型 机器学习
卷积神经网络 Python

二、需求分析与系统功能分析

2.1 系统需求分析

2.1.1功能需求

(1)输入图片:
①摄像头拍照
②通过文件载入图片
(2)识别垃圾:
①当识别为蓝色的垃圾时即可回收物
②当识别为绿色的垃圾时即餐厨垃圾
③当识别为红色的垃圾即有害垃圾
④当识别为灰色的垃圾时即其他垃圾
(3)输出结果

2.1.2性能需求

(1)识别时间:
在95%的情况下,一般的识别时间不超过2秒。
(2)识别广度:
需要对大部分物品识别出是那一类垃圾。
(3)识别精度:
对大部分物品识别的准确率要超过90%。
(4)输入图片:
对jpg,与png格式图片需要都支持。

2.1.3兼容性需求

系统支持Windows10操作系统;
系统支持Python3.6

2.1.4易用性需求

  简易式操作方式,仅仅需要导入图片即可进行识别,不需要
  登录,注册等即可。

2.1.5硬件约束

推荐配置:
Cpu: intel core i7-7700k 4.4G
内存:至少1x8G
GPU显存:4G以上
硬盘:HDD一个,SSD一个

2.2系统主要功能

  系统的主要功能总结十分简单明确,通过拍照或者文件载入
  图片输入到已经使用训练好的模型当中去识别,将其识别的结果
输出。
  详细由见以下流程图3-1:
在这里插入图片描述

图3-1 基本流程图
  开始,进入输入图片,输入图片有格式的要求,如果符合需求则进行下一步识别,如果不符合需求则输出不符合需求,并且回到输入图片这一步。进行识别,识别有正确错误之分,但是都会输出结果,但是有可能会出现无法识别,如果无法识别则回到输入图片,可以识别即输出结果。

2.3系统的功能模块划分

系统的功能模块分为以下:
(1)输入图片功能
(2)识别分类功能
(3)输出识别结果功能

三、简单的垃圾分类系统的实现

3.1系统架构

  整个系统的架构有以下组成,输入设备,输入到电脑终端,电脑终端对图像进行图像分类,图像处理,图像识别,识别后的图像再分类的工作,然后输出结果如图4-1所示:
在这里插入图片描述

图4-1 架构图
  此系统基于TensorFlow设计的分类大脑,对图像的处理大致分为这两步:
(1)使用OpenCV对输入的图片进行预处理
(2)使用基于TensorFlow的卷积神经网络模型的实现图像的分类[6]

3.2 TensorFlow进行模型训练

3.2.1收集获取数据集

  通过网络和自己拍的方式,去收集各类的数据集,验证集总共收集13000多张。如下图4-1是一部分的收据集,其中txt是标签。
在这里插入图片描述

图4-1 收集的数据集

  将其划分为四大类:可回收物、有害垃圾、厨余垃圾、其他垃圾。数据具体划分情况即数据集的分布是图4-2这样的
在这里插入图片描述

图4-2 数据分布图

3.2.2对数据集进行预处理

  在Keras中会用到一个被称为数据生成器(data-generator)的东西,对神经网络输入数据,这样可以使得它会在整个数据上进行不断的循环。
  这时候会创建一个小型训练集通过对图像进行处理,图像会经过人为的各种变换来增加它的数量,它是使用了内置的数据生成器,来进行一些数据的随机转换,也被成为数据增强,之后为了增加数据样本各方面的丰富度。通过旋转(Flips)、移位(TransLations)、CoarseDropout等方法进行数据加强部分代码如图4-3,详情请见附录。

在这里插入图片描述

图4-3 预处理代码
增强之后的效果是图4-4这样的,这样可以方便CNN的模型去对它进行学习和分类。
在这里插入图片描述

图4-4 预处理增强之后

3.2.3搭建CNN网络

  接下来就是网络的搭建了,我这里使用的ResNet18是ResNet(又称为深度残差网络)结构的变种。与传统的网络结构不同,在残差网络结构中,通过“shortcut connecttions(捷径连接)”的方式,因此传统网络中层次越深越容易出现错误的弊端得到解决,这是ResNet34有34层的结构。其基本结构如图4-5
在这里插入图片描述

图4-5 基础的深度残差网络结构图

五、 结论

  垃圾分类的解决方案当中,以TensorFlow做的垃圾分类系统算是耗人力物力时间较少的一类,以卷积神经网络的方式训练出可以识别与分类垃圾的模型,对其进行识别分类。系统设计方案实现的比较简单,而且也是有实际的作用的。
  目前垃圾分类的各个地区来讲,以我所在的广州市来说,很多居民社区当中的分类垃圾桶,只是起到了多了两个垃圾桶的作用,居民大多还是不会将其分类好,当然可以肯定的是,这是垃圾分类的意识与知识的不足,有人想分,但不会,还要学习。忙碌的都市生活人群大多不愿意发上这点时间去学习分类知识,只能通过潜移默化的方式去培养人们的分类意识,将垃圾分类创新的用人工智能的技术去结合,低成本,对提高分类意识也是很有帮助的。

六、 文章目录

目录

第一章 绪论 1
1.1 选题背景、目的及意义 1
1.1.1 选题背景 1
1.1.2 选题目的与意义 1
1.2 国内外相关研究及概况 2
1.3 本文主要工作内容 3
第二章 关键技术与工具介绍 1
2.1 TensorFlow 1
2.1.1 TensorFlow基本介绍 1
2.1.2 TensorFlow的应用 1
2.2 CNN(卷积神经网络) 1
2.3 CNN卷积神经网络模型 2
2.4 Python 3
2.5 如何应用于垃圾分类 3
第三章 需求分析与系统功能分析 1
3.1 系统需求分析 1
3.1.1功能需求 1
3.1.2性能需求 1
3.1.3兼容性需求 2
3.1.4易用性需求 2
3.1.5硬件约束 2
3.2系统主要功能 2
3.3系统的功能模块划分 3
3.4本章小结 3
第四章 基于TensorFlow的简单的垃圾分类系统的实现 4
4.1系统架构 4
4.2 TensorFlow进行模型训练 4
4.2.1收集获取数据集 5
4.2.2对数据集进行预处理 5
4.2.3搭建CNN网络 7
4.2.4迁移学习 11
4.2.5 ResNet参数 15
4.2.6识别测试 17
4.3运行效果 18
4.4本章总结 20
第五章 系统测试 21
5.1系统功能测试 21
5.2系统准确率测试 22
第六章 结论 24
参 考 文 献 25
致谢 27
附录 28

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值