七月了,大家最近一定被一项新的政策给折磨的焦头烂额,那就是垃圾分类。《上海市生活垃圾管理条例》已经正式实施了,相信还是有很多的小伙伴和我一样,还没有完全搞清楚哪些应该扔在哪个类别里。感觉每天都在学习一遍垃圾分类,真令人头大。

听说一杯没有喝完的珍珠奶茶应该这么扔

1、首先,没喝完的奶茶水要倒在水池里

2、珍珠,水果肉等残渣放进湿垃圾

3、把杯子要丢入干垃圾

4、接下来是盖子,如果是带盖子带热饮(比如大部分的热饮),塑料盖是可以归到可回收垃圾的嗷

看到这里,是不是大家突然都不想喝奶茶了呢,哈哈。不过不要紧,垃圾分类虽然要执行,但是奶茶也可以照喝。

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

思路

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

第一种方案,可以把垃圾的信息制成表格化数据,然后用传统的机器学习方法。

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

第三种方案,可以借助现在的深度学习方法,来对垃圾进行识别和分类。每次我们给一张垃圾的图片,让模型识别出这是属于哪一种类别的:干垃圾,湿垃圾,有害垃圾还是可回收垃圾。

图像分类

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

我们对图片里的物品进行分类,这是图像处理和识别的领域。人工智能里提出了使用卷积神经网络(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是用来做类别预测的。

建完模型后,我们要进行模型的验证,保证准确性在线。

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

这优化的过程,我们在这里就先不深入讨论了,以后继续。

总结

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

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

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

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

python垃圾分类源代码_Python学习:怕乱丢垃圾罚款?使用 Python 轻松完成垃圾分类...相关推荐

  1. python eval 入门_Python学习笔记整理3之输入输出、python eval函数

    Python学习笔记整理3之输入输出.python eval函数 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python学习笔记整理3之输入输出.python eval函数 ...

  2. 学python处理数据结构_Python学习【第2篇】:Python数据结构

    dict Python内置了字典:dict的支持在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度 列表也是序列,字符串也是序列 字典 字典类型与序列类型的区别: 1. ...

  3. python增强运算符_Python学习【第3篇】:Python之运算符

    一.运算符 计算机可以进行的运算有很多种,不只是加减乘除,它和我们人脑一样,也可以做很多运算. 种类:算术运算,比较运算,逻辑运算,赋值运算,成员运算,身份运算,位运算,今天我们先了解前四个. 算术运 ...

  4. 我学python前一句_Python学习教程:人生苦短,我用Python?入门前你要知道这些

    有多少伙伴是因为一句'人生苦短,我用Python'就要去学Python的?之前也大家更新过Python学习教程普及过多次的Python相关知识,不过大家还是还得计划一下Python学习路线!Pytho ...

  5. 自学python困难吗_Python学习难不难?零基础好学吗?

    Python学习难不难?零基础好学吗?我想对于很多人来说,这都是非常关键的问题,也是很多人都在疑惑的问题.现在市场发展,行业的竞争压力是非常大的,转型的人也是非常多,对于不少人转型人才来说,Pytho ...

  6. python elseif用法_python学习笔记(一)

    0.前言 本文是根据廖雪峰python教程学习总结而来. 参考<python学习手册>,<流畅的python>以及python官方手册等网络资料 略过了与C和C++ 语言相同的 ...

  7. python控制结构(二)_Python学习手册之控制结构(二)

    在上一篇文章中,我们介绍了Python的一些控制结构,现在我们继续介绍剩下的 Python 控制结构.查看上一篇文章请点击:https://www.cnblogs.com/dustman/p/9972 ...

  8. python print 换行_Python学习 | Python的基础语法

    Python 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异,编写Paython程序之前需要对语法有所了解,才能编写规范的Python程序. 一.行和缩进 Python ...

  9. python龟图_python学习turtle(龟图标状态)

    2019独角兽企业重金招聘Python工程师标准>>> 记录学习 turtle.hideturtle() turtle.ht(),隐藏龟图标. turtle.showturtle() ...

最新文章

  1. cocoahttpserver 载入本地html,利用CocoaHttpServer搭建手机本地服务器
  2. centos 6.5 配置LDAP服务器+客户端!
  3. ML:从0到1 机器学习算法思路实现全部过程最强攻略
  4. java 具有绘图能力的类,《Java程序设计》复习题_绘图
  5. Redis的配置文件
  6. BugKuCTF 加密 这不是摩斯密码
  7. Jacob Java程序把Word文档直接转换成Html文件
  8. 09-mysql-分组函数-最大最小总和平均值
  9. SAP License:成本要素的拉入拉出
  10. 推荐系统系列教程之十五:一网打尽协同过滤、矩阵分解和线性模型
  11. Bailian4030 统计单词数【文本处理】
  12. pandas之Series()菜鸟教程
  13. 根据后台日志文件查找错误_linux中find命令根据文件类型来查找
  14. 多线程有几种实现方法_Java多线程实现有哪几种方法?
  15. 微信小程序记账报表小程序
  16. prd文档 范例_PRD文档范例,产品经理值得收藏的写作手册
  17. 思科模拟器路由表怎么看_实战思科 Cisco 模拟器 Packet tracer 使用教程详解.pdf
  18. Xmodem Ymodem Zmodem 协议
  19. 苹果的Apple Pay学习
  20. 一步一步教你做微博用户画像分析:Python微博爬虫+词云生成

热门文章

  1. oracle 2018 版本,Oracle 最新版本变化 转帖
  2. numpy可视化教程
  3. 01 C语言程序设计--01 C语言基础--第3章 基本数据类型01
  4. 初步学习TypeScript
  5. 当心花招,关注全闪存性能
  6. windows查看端口占用 windows端口占用 查找端口占用程序 强制结束端口占用 查看某个端口被占用的解决方法 如何查看Windows下端口占用情况...
  7. 标准模板库(STL)学习指南之map映射
  8. 推荐一些网站给大家[转]
  9. SilverLight.3-Validation:二、银光验证。TheLabel、TheDescriptionViewer和TheValidationSummary...
  10. 重装MAC系统 “安装器有效负载签名检查失败” 解决方法