如何利用Python进行垃圾分类

1 引言
七月,我们最近一定被一项新政策折磨了,那就是垃圾分类。《上海市生活垃圾管理条例》已正式实施。我相信
和我一样,很多朋友还没有完全知道该扔哪个类别。感觉每天都在学垃圾分类,真的很大。
听说一杯没喝完的珍珠奶茶应该这样扔掉
1、首先,未完成的奶茶水应该倒入池中
2、将珍珠、果肉等残渣放入湿垃圾中
3、把杯子扔进干垃圾里
4、接下来是盖子。如果是带盖子的热饮(比如大部分热饮),塑料盖可以归类为可回收垃圾。
看到这里,大家是不是突然都不想喝奶茶了,哈哈。但没关系。虽然垃圾分类需要实施,但奶茶也可以喝。
所以,在这里,我们想讨论人工智能和数据科学的方法是否能帮助我们更好地分类垃圾?这样,我们就不必为了不知道该扔哪个垃圾了
担心垃圾箱。
2 思路
解决这个问题的想法可能不止一个。这里只是抛砖引玉,提供一些简单的见解。
第一种方案可以将垃圾信息制成表格化数据,然后使用传统的机器学习方法。
第二种方案是将所有垃圾分类信息制作成知识图谱,每次查询都像在翻字典中查阅信息。
第三种方案可以通过当前的深度学习方法来识别和分类垃圾。每次我们给一张垃圾图片,让模型识别它属于哪一个
类别:干垃圾、湿垃圾、有害垃圾或可回收垃圾。

3 图像分类
图像分类是深度学习的经典应用。它的输入是一张图片, 然后经过一些处理,进入一个深度学习模型,模型将返回此图像
垃圾的种类。这里我们考虑四类:干垃圾、湿垃圾、有害垃圾或可回收垃圾。

(报纸 :可回收垃圾 )

(电池 :有害垃圾 )

(一次性餐盒 :干垃圾 )
我们对图片中的物品进行分类,这是图像处理和识别的领域。人工智能提出了卷积神经网络的使用(Convolutional Neural Network, CNN)解决这类问题。
本人将使用Keras包和Tensorflow后端来构建模型。 由于训练集的样本暂时不足,这里只能先给出一套思路和代码。培训模型的工人
一波数据收集必须在工作之前进行。
相关推荐:Python视频教程
让我们来看看代码是什么样子的
先导入一些必要的包。

再做一次准备。

以上,我们已经初始化了一些变量,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 总结
值得一提的是,虽然方法有可能实现,但实际操作必须更加复杂,特别是对精度要求较高。
而且,当一张图片包含几种垃圾类型时,也会使我们的分类模型开发变得非常复杂,增加难度。
例如,我们想对一杯奶茶进行垃圾分类。照片中有多种垃圾,这相对较大,因为它不是一个单一的类别。
前面一定有困难,但就当这里的分享是抛砖引玉的起点吧。
毕竟,李白也说过,“长风破浪有时会直挂云帆济沧海”。
