如何利用Python进行垃圾分类

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-02

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 总结

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

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

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

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

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



  • 如何利用Python进行垃圾分类
    答:第一种方案,可以把垃圾的信息制成表格化数据,然后用传统的机器学习方法。第二种方案,把所有的垃圾分类信息做成知识图谱,每一次的查询就好像是在翻字典一样查阅信息。第三种方案,可以借助现在的深度学习方法,来对垃圾进行识别和分类。每次我们给一张垃圾的图片,让模型识别出这是属于哪一种 类别的:...
  • 小学生学编程真的有必要吗?
    答:而学编程的孩子却能够利用电脑、iPAD创造出自己的游戏,还会发明创造! 昂立STEM编程小游戏 《跳一跳》 编程还可以将孩子的想法结合游戏、动画、音乐、图形等生动地表达出来。创新意识会在孩子不断将内心想法实现和表达的过程中得到很好的锻炼。 小学生用编程搞定“垃圾分类” 早在2016年“垃圾分类”就被7名读三年级...
  • 高考结束后做些什么比较合适?
    答:可以去学一门自己喜欢的乐器,之前由于时间紧张,忙着学习,有人可能就耽搁了自己的兴趣特长学习进程,或者有人还没有开始学习兴趣,高考完的假期,绝对是一个适合是时间让大家去发展自己的兴趣爱好。锻炼身体,三个月的时间,足以够大家健身塑形了,只要每天坚持,三个月的时间,男生绝对能强身健体,女生...
  • 有哪些有意思的,很cool的开源项目 ?
    答:3. Zones iOS 上的时区转换工具。可以在 iPhone、iPad 和 Mac 上跟踪不同的时区。售价 $2.99 ,这类工具之前也有推荐过类似的,很简单的小工具,很适合买断制,主要是 Menu Bar App,Reminders,同步 iCloud,Widgets 这些功能。从这个产品的官网就可以看得出来非常简洁,产品做的很完整,适配了苹果...
  • 大学生假期如何自我提升?
    答:首先建议就是希望大家去提升一下自己的硬件技能,挑一些自己喜欢的事情或是相关软件去学习,好比如说喜欢拍照,如何又喜欢把自己p的美美的,就很建议可以去学习ps、ai、lr、ae等,像以前的就对已经外出工作的朋友说到美工很感兴趣,就单纯觉得这个很厉害,又可以赚钱,像这个去了解才知道就是去学习某某...
  • 红领巾奖章个人评选事迹500字
    答:校外,他积极参加劳动实践和社区志愿服务,利用假期主动在社区做好“手卫生”“垃圾分类”宣传,主动参与社区“向贫困山区 儿童 募集学费义卖”活动,作为志愿者参加西安交通大学医学院第一附属医院“小小向日葵” 社会实践 活动;珍惜劳动成果,在家积极帮助家长做好力所能及的家务劳动,具有自觉劳动的意识。 红领巾奖章是少先...
  • 2022红领巾奖章二星章事迹400字
    答:校外,他积极参加劳动实践和社区志愿服务,利用假期主动在社区做好“手卫生”“垃圾分类”宣传,主动参与社区“向贫困山区儿童募集学费义卖”活动,作为志愿者参加西安交通大学医学院第一附属医院“小小向日葵” 社会实践 活动;珍惜劳动成果,在家积极帮助家长做好力所能及的家务劳动,具有自觉劳动的意识。 红领巾奖章是少先队员...
  • 红领巾奖章评选事迹500字10篇
    答:校外,他积极参加劳动实践和社区志愿服务,利用假期主动在社区做好“手卫生”“垃圾分类”宣传,主动参与社区“向贫困山区 儿童 募集学费义卖”活动,作为志愿者参加西安交通大学医学院第一附属医院“小小向日葵” 社会实践 活动;珍惜劳动成果,在家积极帮助家长做好力所能及的家务劳动,具有自觉劳动的意识。 红领巾奖章是少先...