还在被大妈灵魂拷问?使用Python轻松完成垃圾分类!

在这里插入图片描述

目录 0 环境 1 引言 2 思路 3 图像分类 4 总结python

0 环境

Python版本:3.6.8后端

系统版本:macOS Mojave网络

Python Jupyter Notebook机器学习

1 引言

七月了,你们最近必定被一项新的政策给折磨的焦头烂额,那就是垃圾分类。《上海市生活垃圾管理条例》已经正式实施了,相信仍是有不少的小伙伴和我同样,尚未彻底搞清楚哪些应该扔在哪一个类别里。感受天天都在学习一遍垃圾分类,真使人头大。函数

据说一杯没有喝完的珍珠奶茶应该这么扔 一、首先,没喝完的奶茶水要倒在水池里 二、珍珠,水果肉等残渣放进湿垃圾 三、把杯子要丢入干垃圾 四、接下来是盖子,若是是带盖子带热饮(好比大部分的热饮),塑料盖是能够归到可回收垃圾的嗷学习

看到这里,是否是你们忽然都不想喝奶茶了呢,哈哈。不过没关系,垃圾分类虽然要执行,可是奶茶也能够照喝。优化

那么,这里咱们想讨论一下,人工智能和数据科学的方法能不能帮助咱们进行更好的垃圾分类?这样咱们不用为了避免知道要扔哪一个垃圾箱而烦恼。人工智能

2 思路

这问题的解决思路或许不止一条。这里只是抛砖引玉一下,提供一些浅显的看法。blog

第一种方案,能够把垃圾的信息制成表格化数据,而后用传统的机器学习方法。图片

第二种方案,把全部的垃圾分类信息作成知识图谱,每一次的查询就好像是在翻字典同样查阅信息。

第三种方案,能够借助如今的深度学习方法,来对垃圾进行识别和分类。每次咱们给一张垃圾的图片,让模型识别出这是属于哪种类别的:干垃圾,湿垃圾,有害垃圾仍是可回收垃圾。 在这里插入图片描述

3 图像分类

图像分类是深度学习的一个经典应用。它的输入是一张图片, 而后通过一些处理,进入一个深度学习的模型,该模型会返回这个图片里垃圾的类别。这里咱们考虑四个类别:干垃圾,湿垃圾,有害垃圾仍是可回收垃圾。
报纸 :可回收垃圾

<center>(报纸 :可回收垃圾 )</center>

电池 :有害垃圾

<center>(电池 :有害垃圾 )</center>

一次性餐盒 :干垃圾

<center>(一次性餐盒 :干垃圾 )</center>

咱们对图片里的物品进行分类,这是图像处理和识别的领域。人工智能里提出了使用卷积神经网络(Convolutional Neural Network, CNN)来解决这一类问题。

我会用keras包和Tensorflow后端来创建模型。 因为训练集的样本暂时比较缺少,因此这里只能先给一套思路和代码。训练模型的工做以前还得进行一波数据收集。

咱们就先来看看代码大体长什么样吧

先导入一些必要的包。 在这里插入图片描述

再作一下准备工做。 在这里插入图片描述

在上面,咱们初始化了一些变量,batch size是128; num_classes = 4,由于须要分类的数量是4,有干垃圾,湿垃圾,有害垃圾和可回收垃圾这四个种类。epochs 是咱们要训练的次数。接下来,img_rows, img_cols = 28, 28 咱们给了图片的纬度大小。

在 .reshape(60000,28,28,1)中 , 60000 是图片的数量(可变), 28是图片的大小(可调),而且1是channel的意思,channel = 1 是指黑白照片。 .reshape(10000,28,28,1)也是同理,只是图片数量是10000。

到了最后两行,咱们是把咱们目标变量的值转化成一个二分类, 是用一个向量(矩阵)来表示。好比 [1,0,0,0] 是指干垃圾,[0,1,0,0]是指湿垃圾等等。

接下来是建模的部分。 在这里插入图片描述

咱们加了卷积层和池化层进入模型。激活函数是 relu,relu函数几乎被普遍地使用在了卷积神经网络和深度学习。咱们在层与层之间也加了dropout来减小过拟合。Dense layer是用来作类别预测的。

建完模型后,咱们要进行模型的验证,保证准确性在线。 在这里插入图片描述

到这里,咱们的建模预测已经大概完成了。一个好的模型,要不断地去优化它,提升精确度等指标要求,直到达到能够接受的程度。

这优化的过程,咱们在这里就先不深刻讨论了,之后继续。

4 总结

值得一提的是,尽管方法上是有实现的可能,可是实际操做中确定要更复杂的多,尤为是对精度有着很高的要求。

并且当一个图片里面包含着好几种垃圾种类,这也会让咱们的分类模型开发变得很复杂,增长了难度。

好比,咱们想要对一杯奶茶进行垃圾分类,照片里面是包含了多个垃圾的种类,这就比较头大了,由于这并非属于单一的类别。

前路的困难确定是有的,不过就当这里的分享是个抛砖引玉的起点吧。

毕竟李白也说了,“长风破浪会有时,直挂云帆济沧海”。

关注公众号「Python专栏」,后台回复「垃圾分类2」获取本文全套代码。更多有意思的python等着你

相关文章
相关标签/搜索