APP下载

基于谷歌TensorFlow Object Detection的“智慧”分类垃圾桶设计*

2019-12-07吴嘉凯高婕吴昊天顾振宇

科技与创新 2019年22期
关键词:垃圾桶神经网络物体

吴嘉凯,高婕,吴昊天,顾振宇

基于谷歌TensorFlow Object Detection的“智慧”分类垃圾桶设计*

吴嘉凯,高婕,吴昊天,顾振宇

(上海对外经贸大学,上海 200336)

在生态文明建设的政策导向下,对总书记命名为“新时尚的垃圾分类”的建设进行了多方面调研,并针对“智慧”分类垃圾桶设计进行了探究。基于谷歌TensorFlow Object Detection进行虚拟实境的操作,为“智慧”分类垃圾桶设计提供了理论基础和实践经验,提升了用户对于“智慧”分类垃圾桶的感知与体验,并希望能够对今后的相关研究有参考价值。

垃圾智能分类;谷歌TensorFlow;Object Detection;python

1 引言

加强垃圾综合治理,既是贯彻习近平生态文明思想、推进上海生态文明建设的重要举措,也是破解超大城市精细化管理世界级难题的重要环节。然而,市民垃圾分类意识及标准的普及依旧较为落后,未按标准丢弃垃圾的现象时有发生。为降低该类现象所带来的人工分类垃圾时人力资源的消耗及减少对生态可持续发展的破坏,本小组紧随时事热点与政策导向,提出依据谷歌开源算法最终制成可以自行识别并对垃圾进行分类的垃圾桶,以践行“绿色发展”的理念。

同时,当今高校越来越注重学生全方位素质教育。垃圾分类和每个人的生活息息相关,学生在学习垃圾分类的同时,自然而然可以简化方式并推广垃圾分类意识,从而发扬绿色环保理念。因此,通过对智能垃圾桶建设与技术的研究、学习和应用技术实践,总结一些经验,为之后智能垃圾桶建设与技术的研究提供一定的借鉴作用,也为高校垃圾分类建设提供参考。

2 “智慧”垃圾桶设计现状

2.1 “智慧”垃圾桶的设计技术基础

2016-10,谷歌内部的物体识别系统达到了业内最佳水平,在COCO识别挑战中名列第一。自那时起,该系统为大量文献提供了参考,并被一些谷歌的产品所采用。

2017年,谷歌宣布开源其内部使用的TensorFlow Object Detection API 物体识别系统,为机器学习社区作出贡献,帮助打造更好的计算机视觉模型。而利用其目标检测的概念,并利用算法在图片中用框框标记各种各样的目标,让机器可以像人眼一样迅速发现场景中物体的位置和大小,从而做出进一步判断。对于智慧垃圾桶当中极为关键的一个设计环节——物体的精准识别而言,该技术能很好地提高垃圾分类的准确性,有助于提升后续相关生产链的可操作性,增加垃圾桶的使用功能和用户体验。对于垃圾分类来说,结合数字化信息技术而成的智慧垃圾桶设计,以提高识别精确度和增强用户体验的视角探究人机交互技术,可以使垃圾分类更加智能化。

2.2 “智慧”垃圾桶设计中的关键技术

在智能垃圾桶设计开发过程中,主要使用了谷歌TensorFlow Object Detection技术,并以OpenCV相关计算机视觉库和python语言等作为辅助,通过训练神经网络完善模型,实现对物体的查找和判断。

2.2.1 TensorFlow

TensorFlow是一个端到端开源机器学习平台。它拥有一个包含各种工具、库和社区资源的全面灵活生态系统,可以让研究人员推动机器学习领域的先进技术的发展,并让开发者轻松地构建和部署由机器学习提供支持的应用。

TensorFlow提供多个抽象级别,开发者可以根据自己的需求选择合适的级别,同时也可以使用高阶Keras API构建和训练模型。谷歌TensorFlow官方图标如图1所示。

图1 谷歌TensorFlow官方图标

2.2.2 神经网络

神经网络通过梯度下降法进行训练。每层中的权重都以随机值开始,并且这些权重会随着时间的推移以迭代的方式不断改进,使网络更准确。使用损失函数量化网络的不准确程度,并使用一种名为“反向传播算法”的流程确定每个权重应该增加还是降低以减小损失。

迭代进入第一层神经网络如图2所示。迭代进入第层神经网络如图3所示。特征点分析错误如图4所示。特征点分析正确如图5所示。

图2 迭代进入第一层神经网络

图3 迭代进入第n层神经网络

图4 特征点分析错误

图5 特征点分析正确

迭代入不同的神经网络层,计算机可以摘取目标特征点,不同的特征点导向不同的结果,经过人为标注,可以引导计算机对不同结果的特征点进行分析,最终使计算机能够成功识别目标。

2.3 “智慧”垃圾桶的建设现状

智能垃圾分类回收系统利用科技手段、物联网技术,实现垃圾回收箱自动开关门、接收识别、监测、称重、满溢预警、太阳能蓄电,微信扫码,用户身份识别等智能化功能。

智能垃圾分类回收系统可根据回收种类,设置多个箱体,分别回收不同的资源,如金属、废弃塑料、纺织物、易拉罐、塑料瓶、纸类、玻璃、有害垃圾等。

设置场地为小区、写字楼、酒店、闹市区。可采用返现、返积分的方式接收市民投放的废纸、塑料、金属、玻璃、纺织物等废弃物,鼓励居民积极配合,并养成垃圾分类及投放的习惯。对接正规环卫公司,合理处理垃圾,整合废品回收生态链,为社会的环保公益事业作出一份贡献。

3 技术发展情况

3.1 环境

使用的操作系统是Windows 10 1903,CPU为Intel i5-8400,内存16 G,显卡为Nvidia GTX1660(显存6 G)。

3.2 数据集收集

针对“智慧”垃圾桶对于垃圾分类方向的需求,收集了“苹果apple”“电池battery”“筷子chopsticks”作为模板样本,分别对应代表湿垃圾、有害垃圾以及可回收垃圾作为试验分类类别。分别从互联网收集了清晰图片各300张,即分辨率大于等于800×600,并且利用相机,拍摄共500张像素为1 920×1 080的图片。从这1 400张照片中,以2∶8的比例,作为测试集和训练集,即测试集280张,训练集 1 120张。训练所用原始图片数据集如图6所示。

图6 训练所用原始图片数据集

3.3 数据集标注

本次标注所使用的软件为labelImg(app version:1.8.1)。对每一张数据集,使用人工标注的方法,对图片内出现的目标物体进行标注。人工标注耗时较长,但可以更为精确地对数据集进行标注,提升后期使用tensorflow建立神经网络模型识别物体的准确性。

对图片中的每一个目标物体进行框选,并且添加物体labels如“apple”“battery”,如图7、图8所示。

图7 进行apple标注

图8 进行battery标注

3.4 数据集转化为csv

分别针对测试数据集和训练数据集的标注结果进行归纳并转化为csv文件,文件中包括以下这些类别:①图片文件名Filename;②图片宽度Width;③图片高度Height; ④标注类别名Class;⑤横坐标起始位置Xmin;⑥纵坐标起始位置Ymin;⑦横坐标终止位置Xmax;⑧纵坐标终止位置Ymax。

其中Class、Xmin、Ymin、Xmax、Ymax需要通过获取2.3步骤内标注得到的数据,经过转化得到test.csv和train.csv两份csv格式文件。csv文件如图9所示。

图9 csv文件

3.5 选用神经网络模型

本次实验所选用的神经网络模型为tensorflow-ssd_ mobilenet_v1_coco,该模型被大量运用与图片物体识别与检测,可以很好地为本项目服务。

3.6 利用tensorflow训练神经网络

本次实验所使用到的tensorflow是基于gpu进行运算的tensorflow-gpu。相对于基于cpu进行运算的tensorflow,tensorflow-gpu可以利用显卡的高运算性能,更快速地完成神经网络的训练。

训练重要参数设置:Batch_size为8,steps为150 000。batch_size可以理解为批处理参数,它的极限值为训练集样本总数。

利用tensorflow自带的可视化tensorboard平台,可以看到训练过程。在训练过程中利用以下几种重要的参数和方法来对训练优良率进行评估。

3.6.1 loss函数

损失函数(loss/cost)用于描述模型预测值与真实值的差距大小。localization_loss函数如图10所示。classification_ loss函数如图11所示。cmd训练中的loss值和step值如图12所示。

图10、图11、图12为当训练到50 600 steps时的loss函数,loss函数越接近0则代表越收敛,即可支持识别率越高。Loss函数一般会随着训练步数的增加逐渐趋向收敛。此外,数据集的精确度以及数据集的数量都会影响到loss函数的走向。一共训练了150 000 steps,最终loss值约为0.23。

图10 localization_loss函数

图11 classification_loss函数

图12 cmd训练中的loss值和step值

3.6.2 可视化test集测试结果

chopsticks的实际与预期检测如图13所示。

图13 chopsticks的实际与预期检测

在tensorboard中为研究提供了可视化训练结果的参考,通过对测试集进行同步验证,可以看到神经网络的精确度在逐步提升。如图13中右侧为通过labelImg标注的chopsticks选框,而左侧为通过神经网络工作识别出的chopsticks区域。随着steps的不断增加,test集的验证结果逐步与给出的结果相统一。

3.7 测试

经过150 000 steps,训练的神经网络模型便可用于检测图片物体。经过测试,本套神经网络识别苹果、电池、筷子地准确率约为60%,同时对测试环境有着较为严苛的要求,在用于识别的图片清晰度较高且背景单一时,识别率较高;在图片模糊而又背景杂乱时,识别率较低,总识别率并不尽如人意。这一识别率无法保证“智慧”垃圾桶进行垃圾物体识别。同时,由于用于训练的数据集较少,仅局限于三种物体所对应的三种分类垃圾,识别物体种类较少,无法满足智慧垃圾桶的更高需求。

3.8 改进

由于识别准确率较低、可识别物体种类较少,后期对神经网络训练过程进行了改进。通过拍摄更多更清晰的物体照片,增加了可识别物体的种类,同时提升了物体识别的准确率。为了调整神经网络训练参数,通过增加训练steps到 300 000 steps甚至600 000 steps可以使loss函数更加趋向于收敛,同时更改batch_size也可以帮助模型的loss函数趋向收敛,使得模型的识别准确率提高。在硬件选择上,选用了更为高清的摄像头进行垃圾图像捕捉,图像识别背景使用单一绿色幕布。同时增加用于辅助识别的传感器,在物理性质上对垃圾种类进行判别,如温度传感器、红外传感器等。

4 总结与结束

通过这次对智慧垃圾桶设计的建设情况与技术的调研与探究,本文总结了智慧垃圾桶设计的现状、优势,并以谷歌TensorFlow Object Detection作为基础,辅助OpenCV相关计算机视觉库及机械相关理论,从识别精确度和用户体验的视角探究人机交互技术、机械操纵优化设计,注重更自然的交互、规范性、合理性和安全性,使其具有较好的整体效果和推广价值。在实现了智慧垃圾桶设计技术的部分构想的同时,也存在很大的改进空间,如垃圾识别准确率还不够精准、能够识别的物体种类有限等。能与超高清扫描系统或者照片缝合技术相结合,展示的效果应该会更好。所以,想要把“智慧”垃圾桶设计的各种应用技术发挥到极致,需要从技术的角度出发综合巧妙地运用各种方法,更好地挖掘智慧垃圾桶潜在的功能,使之能为垃圾分类提供更好的帮助。

[1]王晓华.TensorFlow深度学习应用实践[M].北京:清华大学出版社,2018.

[2]何之源.21个项目玩转深度学习:基于TensorFlow的实践详解[M].北京:电子工业出版社,2018.

[3]李金洪.深度学习之TensorFlow入门、原理与进阶实战[M].北京:机械工业出版社,2010.

[4]章敏敏,徐和平,王晓洁,等.谷歌TensorFlow机器学习框架及应用[J].微型机与应用,2017,36(10):58-60.

[5]程嘉晖.基于深度卷积神经网络的飞行器图像识别算法研究[D].北京:航空航天学院,2017.

X705

A

10.15913/j.cnki.kjycx.2019.22.008

2095-6835(2019)22-0031-04

“2019年度上海大学生创新创业训练计划示范校”建设经费资助

〔编辑:严丽琴〕

猜你喜欢

垃圾桶神经网络物体
基于神经网络的船舶电力系统故障诊断方法
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
垃圾桶等
飞进垃圾桶
垃圾桶的华丽“变身”
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
揭开物体沉浮的秘密
为什么同一物体在世界各地重量不一样?
可拆分的分类垃圾桶