上海居民被垃圾分类逼疯!这款垃圾自动分类器也许能帮上忙
作者 | 视说君
来源 | 授权转载自视说AI(ID:techtalkai)
让垃圾自动分类
近期垃圾分类成为了一个热门话题,原来直接一次性扔掉的垃圾,现在都需要分门别类进行投放。从今年7月1日起,新的《上海市生活垃圾管理条例》正式开始施行,号称史上最严的垃圾分类就要来了。我们以后在扔垃圾前都要先将垃圾仔细分成可回收物、有害垃圾、湿垃圾和干垃圾四个类别,如果分错还会被罚款。
垃圾分类可以更好地保护我们的环境卫生,为了让大家能够正确对垃圾进行分类,官方发布了垃圾分类指南,列举了每种类别对应的常见垃圾,大家可以对照着进行分类投放。此外,脑洞大开的网友们也另辟蹊径,提供了各种有意思的分类思路。
在日常生活中,每个类别的垃圾往往包含了各式各样的内容,人们在分类投放的时候难免会出现偏差,这个时候如果有一个分类神器对垃圾拍个照就能告诉我们是什么类别就好了。
当前人工智能飞速发展,我们能否利用AI技术来对垃圾自动分类,实现上面提到的设想呢?为了回答这个问题,在今天的文章中,我们将从人工智能的角度出发,尝试利用深度学习技术来构建一个垃圾自动分类器,同时也会进一步介绍AI垃圾分类遇到的挑战和一些思考。
“垃圾”图像数据准备
为了实现一个理想的垃圾自动分类器,需要有一个已经分好类别的“垃圾”图像数据集作为训练的基础。然而当前并没有这样一个可以直接使用的数据集,所以我们首先自己动手收集海量的“垃圾”图像并为每张图像标注上相应的类别。
数据集的收集一直是一件耗时耗力的工作,为了快速便捷地完成“垃圾”图像数据集的收集,我们依据官方发布的垃圾分类指南上每一类所包含的垃圾名称,通过在百度图片上爬取名称对应的图像来实现。官方发布的垃圾分类指南如下图所示。
在实际的应用场景中,待分类的样本往往是不可控的,所以一般会增加“其他”这个类别用来收留各种异常样本。在垃圾分类中,除可回收物、有害垃圾和湿垃圾外都属于干垃圾,所以干垃圾已经扮演了“其他”的角色。我们的“垃圾”图像数据集最终分为可回收垃圾、有害垃圾、湿垃圾和干垃圾四个类别。数据集的部分图像如下图所示。
垃圾自动分类器
垃圾自动分类本质上是一个图像分类问题,当前基于深度卷积神经网络的图像分类算法发展很快,各种方法层出不穷。下面我们先回顾这些分类网络的演进思路,再进一步将分类算法应用于垃圾分类,介绍构建一个垃圾自动分类器的流程和细节。
卷积神经网络的开山之作LeNet于1998年被提出,并成功应用于手写体识别。LeNet和现在的网络结构相比虽然简单(如上图所示),但是卷积层、池化层和全连接层这些基本模块都已经具备。
随着ReLU和dropout的提出,以及GPU和大规模数据集的出现,卷积神经网络在2012年迎来了历史突破,AlexNet的出现让卷积神经网络开始逐渐成为计算机视觉任务的标配。在AlexNet的基础上,以增加网络深度为思路,出现了VGGNet;以增强卷积模块为思路,出现了基于Inception的一系列网络。
随着后来居上的ResNet的提出,层数极深的网络成为了可能。通过引入残差模块,缓解了深度网络训练过程中的梯度消失问题,让网络的深度不断加大,网络性能也得到了大幅提升。之后的DenseNet更是通过对特征图的稠密连接,加强了特征的传递,继续提升分类效果。当前ResNet及其变种形式已经被广泛地应用于图像分类任务,同时也成为了在解决目标检测和图像分割等其他计算机视觉问题时常用的主干网络结构。
在本文中,我们使用50层的ResNet来构建垃圾自动分类器。具体我们采用在ImageNet数据集上预训练的ResNet50模型参数作为初始化,利用上一节中收集的“垃圾”图像数据集对其进行微调。
其中我们将上述ResNet50的最后一层输出从1000(ImageNet数据集的分类数量)修改为4(垃圾分类数量),同时在训练过程中冻结了部分卷积层参数的更新。此外还进一步利用水平翻转、随机裁剪和色彩抖动等方式对训练的“垃圾”图像进行数据增强。在完成垃圾自动分类器的训练后,我们对一些垃圾进行了自动分类的测试,准确率达到近90%。虽然对复杂的情况还是存在一定的误判,但大部分常见的垃圾都得到了正确的区分,具有较强的实用性。
从单个垃圾分类到一群垃圾分类
上一节中我们介绍了垃圾自动分类器的构建,但是这样的垃圾分类器的输入都是单个垃圾图像。在实际的垃圾分类投放过程中,对单个的垃圾进行一一拍照分类显得过于繁琐和缓慢。那能不能对一群垃圾直接拍照后进行批量分类呢?要实现对一群垃圾的批量分类,其实就是要构建一个垃圾的目标检测器。输入一张含有多个垃圾的图像,让模型输出图像上每种垃圾对应的类别。
在深度学习出现之前,可变形部件模型(DPM)一直是流行的目标检测方法。深度学习出现后,以R-CNN、Fast R-CNN、Faster R-CNN为代表的两阶段算法和以YOLOv1-3、SSD、RetinaNet为代表的单阶段算法成为主流。前者是先由算法生成一系列待检测目标的候选框,再通过卷积神经网络进行候选框的分类;后者则不用产生候选框,直接将目标边框定位的问题转化为回归问题处理。
和垃圾分类器一样,一个理想的垃圾检测器,需要大量的“垃圾”标注数据来支撑。但是与分类数据集相比,检测数据集除了标注类别外还要标注图位置坐标,这样的标注工作更为艰巨。在完成垃圾检测的图像数据集后,就可以利用当前主流的深度学习检测算法来实现批量垃圾的分类。
写在最后
垃圾分类最近成为了大家生活中经常讨论的话题,这篇文章分享了如何利用深度学习技术来构建一个垃圾自动分类器,也进一步介绍了从单个垃圾分类到批量垃圾分类的思路和挑战。
在实际的垃圾分类中,由于垃圾多种多样,同一类别的垃圾可能差异很大,而不同类别的垃圾可能差异很小,在复杂情况下分类器效果可能会不尽如人意,后续可以考虑加入垃圾之间的高层次语义关系信息,进一步提升分类器的性能。最后希望大家都能做到正确的垃圾分类投放,毕竟生活不易,还是不要被罚款。
一些资料
[1] Deep Residual Learning for Image Recognition
[2] ImageNet Classification with Deep Convolutional Neural Networks
[3] Very Deep Convolutional Networks for Large-Scale Image Recognition
(*本文为 AI科技大本营转载文章,转载请联系原作者)
◆
精彩推荐
◆
参与投稿加入作者群,成为全宇宙最优秀的技术人~
推荐阅读
吴恩达Drive.ai因经营困难“卖身”苹果
上海交大张拳石:神经网络的可解释性,从经验主义到数学建模
我发现一个新的软件,用自然语言编程!非常酷!
香港的房价真的那么贵吗?用数据挖掘真相!
我花了 10 年,从工厂妹逆袭为纽约高薪程序员
面试官问你MyBatis中有哪些设计模式,把这篇文章发给他
中本聪的一失之虑让比特币趋于中心化, 那这些问题的严重性, 你了解吗?
想换行做 5G 的开发者到底该咋办?
如何向妹子解释:为啥 5G 来了需要换 SIM卡!
你点的每个“在看”,我都认真当成了喜欢
上海居民被垃圾分类逼疯!这款垃圾自动分类器也许能帮上忙相关推荐
- 被垃圾分类逼疯?试试这款垃圾自动分类器
让垃圾自动分类 近期垃圾分类成为了一个热门话题,原来直接一次性扔掉的垃圾,现在都需要分门别类进行投放.从今年7月1日起,新的<上海市生活垃圾管理条例>正式开始施行,号称史上最严的垃圾分类就 ...
- 上海居民快被垃圾分类逼疯!这个深度学习技术帮你做到垃圾自动分类
让垃圾自动分类 近期垃圾分类成为了一个热门话题,原来直接一次性扔掉的垃圾,现在都需要分门别类进行投放.从今年7月1日起,新的<上海市生活垃圾管理条例>正式开始施行,号称史上最严的垃圾分类就 ...
- 被垃圾分类逼疯?这个深度学习技术帮你做到垃圾自动分类
上海迈出中国垃圾分类第一步 7月1日起,被称为"史上最严"垃圾分类措施的<上海市生活垃圾管理条例>正式实施,根据规定,个人或单位未按规定分类投放垃圾都将面临处罚.与此同 ...
- 快被垃圾分类逼疯的上海人民,有望被区块链解救吗?
文 | 比萨 "你是什么垃圾?"上海的垃圾分类政策,在近日成为了全民热议的焦点. 日前,住建部表示,将继续在北京.杭州等46个城市推行垃圾分类政策. 这是一片蓝海.有业内人士称,国 ...
- 垃圾分类逼疯上海人 微信官方终于出手!
近日,上海垃圾分类一事成为了许多上海人与网友茶余饭后的热门聊资,许多网友调侃道,上海人每次倒垃圾都要经受老阿姨的灵魂拷问:"侬zi撒喇希(你是什么垃圾)?" 根据上海市发布的< ...
- 垃圾分类逼我去创业,商业模式都想好了 | 小酒馆
作者 | 闫丽娇 魏佳 唐亚华 孔明明 陈琪 苏琦 编辑 | 苏琦 "眼前的湿不是湿,你说的干是什么干."自从上海开始推进垃圾分类回收后,在上海工作的林小姐每天都要对自己进行灵魂拷 ...
- “停课不停学”,线上填报如何逼疯老师
正月一出,2020年的春节就算过去了 然而出于对疫情防护的需求 大部分企业延迟了复工日期 并纷纷开启了远程办公模式 各种远程办公软件也着实火了一把 但是在家办公并非我们想的那样 零食与床的诱惑 宠物与 ...
- 微信、凤凰、头条……逼疯你的除了老板,还有后台
微信.凤凰.头条--逼疯你的除了老板,还有后台(转) 文/翁章 10月26日至今,"头凤"之争似乎已经告一段落,虽然凤凰拿SEM作为取证略显不专业,但从道义的角度看,头条劫持用户流 ...
- 为什么我们会被这种 “提前退休” 的节奏逼疯?
春节 "特别长假" 的街头-- 今天,是2020年春节 "特别" 假期的第九天. 今天,也是不少人宅在家里,提前享受退休生活的第二个周末. 这场突如其来的疫情, ...
最新文章
- ZooKeeper和Diamond有什么不同
- Stanford 研究领域
- 打开高效文本编辑之门_Linux Awk之条件判断与循环
- D. Steps to One(概率DP,莫比乌斯反演)
- 转: Linux Grep 命令说明
- 第一章--电商设计表电商项目--数据库设计
- tomcat ajp协议安全限制绕过漏洞_Apache tomcat 文件包含漏洞复现(CVE20201938)
- 电信中兴B860AV2.1-T_线刷固件包
- Hibernate拦截器字段加密解密
- Jenkins集成GitHub
- Docker创建私有仓库
- Flask模板中可以直接访问的特殊变量和方法
- 采集同花顺android数据,同花顺对比app排行榜数据_SZ300033_乌龟量化
- windows10小技巧: 将手机投影到windows10上
- 偷偷赚钱的副业(真实有效)
- 使用Vmware虚拟机装载Linux系统如何联网
- Cadence PSpice 教程 基础篇(转载)
- 笔记︱联邦学习与隐私计算的案例集锦(一)
- 2019 年博客总结
- Elasticsearch常用配置及性能参数