python垃圾分类小程序代码(如何利用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 总结
值得一提的是 ,尽管方法上是有实现的可能 ,但是实际操作中肯定要更复杂的多 ,尤其是对精度有着很高的要求 。
而且当一个图片里面包含着好几种垃圾种类 ,这也会让我们的分类模型开发变得很复杂 ,增加了难度 。
比如 ,我们想要对一杯奶茶进行垃圾分类 ,照片里面是包含了多个垃圾的种类,这就比较头大了 ,因为这并不是属于单一的类别 。
前路的困难肯定是有的 ,不过就当这里的分享是个抛砖引玉的起点吧 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!