基于深度学习的智能垃圾分类系统研究
2022-08-26战秋成季龙华赵际云修艳琪戴婷婷
战秋成,季龙华,赵际云,修艳琪,戴婷婷
(哈尔滨理工大学机械动力工程学院,哈尔滨 150080)
0 引言
据不完全统计,截至2019年全国每年仅城市产生的垃圾超4 亿t,每年处理这部分垃圾需花费300 亿元以上,处理带来的环境污染问题日益严重,全国668个城市中超过2/3的城市被垃圾环带包围,其中大部分可回收垃圾并未被回收利用,而将这部分垃圾综合利用(如:相关材料再利用,建造垃圾发电厂等),却能创造2500 亿元的效益。到2020年底,生活垃圾清运量己达到24 206 万t/a[1]。
如何正确处理垃圾分类等问题迫在眉睫。我国垃圾分类智能化程度相比于国外,仍然面临起步相对较晚的现状,并且我国在垃圾的种类识别上的智能化程度仍然不高,尤其是垃圾分类智能化社区部署方面仍有待提高[2],而本文从深度学习算法的角度出发,针对生活垃圾智能分类系统做了一系列研究,为社区化普及智能化垃圾分类提供了解决方案。
1 智能垃圾分类现状
根据国家统计局和部分数据整理网站统计,2010—2020年生活垃圾清运量及增速趋势如图1[3]所示,可以看出,我国垃圾清运量增速虽逐年放缓,但总量是逐年上升的。
图1 生活垃圾清运量及增速趋势
由此可知我国垃圾分类处理回收利用的需求量巨大,而目前我国的垃圾分类回收普及效果不好,大多数分类措施依赖于垃圾分类站进行大规模分类,大都为人工分类[4];智能化分类主要由传感器、传送带、单片机控制大型机械臂进行分类,其准确度较低,普及程度不高,很难进行社区化部署,无法从源头改善垃圾分类效果差的现状[5]。小型社区化智能垃圾分类系统的重要性体现于此,能更好地实现生活垃圾分类智能化、自主化、社区化。
2 设计方案
本文所设计的系统可实现垃圾自动分类、满载故障报警、人机交互、模块化社区部署、集群化管理等。系统使用优化后的YOLOv5模型,通过图像识别实现自主识别4类垃圾(可回收垃圾、厨余垃圾、有害垃圾、其他垃圾),通过多级分类系统实现分类投放,通过物联网云平台实现储存、记录对应信息等功能;满载故障报警可实时检测垃圾桶状态,是否装满,是否有模块损坏,并及时同步到云平台警告处理;人机交互可实现投放垃圾信息显示、宣传片播放、广告投放,对应激励功能等;模块化社区部署可实现应对不同场景可个性化组装相应功能、客制化部署。主要功能逻辑如图2所示。
图2 主要功能逻辑图
3 垃圾桶软件系统设计
3.1 模型比较挑选
在模型的选用上,分别测试了当下较为突出的几种模型,分别测试了Faster RCNN、AlexNet、Google Net、VGG-16、ResNet-50、YOLOv3、YOLOv4、YOLOv5,最后发现YOLO 系列模型整体效果上要优于FasterRCNN AlexNet、Google Net、VGG-16、ResNet-50等模型。在准确率方面,YOLO 系列模型较强于AlexNet、Google Net、VGG-16、ResNet-50等模型。通过对比实验发现YOLOv5模型相较于FasterRCNN模型速度提高了2~3倍,而在对于较小垃圾(如:烟头等)识别方面YOLOv5模型对于物体定位信息也更准确,而且其部署更简易,在整体方面YOLOv5模型有更好的性能。
对于YOLO系列模型,进行了对比实验,数据表明YOLOv3模型远不如其他两款模型,YOLOv4模型在速度上超过了YOLOv5,分析可能是由于YOLOv5模型仍在开发中,尚未完善。但YOLOv5模型较小型化,便于部署到移动端,且更容易优化,于是选择了YOLOv5模型进行后续开发。
在选择了YOLOv5模型之后对于其中权重的选择又进行了对比实验,权重实验对比在精确度方面X权重表现最好,但其识别花费时间过长,相较s权重耗时多1倍而准确度提升较小,由于嵌入式部署算力受限,最后选择了s模型进行后续实验部署。
3.2 模型优化加速
在基本对比实验完成之后,进行代码测试,发现识别效果较稳定,但识别时间在70 ms左右,这个速度还是没有达到的预期,于是进一步重构优化代码,使用TensorRT加速,终于识别时间进一步缩短,最快可达10 ms,稳定识别时间低于30 ms。
在代码优化完成后进行了训练测试,训练可视化图如图3所示,基本达到预期效果。项目初期识别分类基本完成,根据相关要求变化进一步改进优化算法代码。
图3 训练可视化图
3.3 软件交互方面
产品与物联网云平台的对接是本项目的一个重要功能。物联网云平台是5G时代智能设备必不可少的功能。其包括但不限于数据收集、储存、分析处理、可视化和远程管理控制等功能,实现了智能设备的一站式管理。而本项目系统的推广、简易化、模块化部署与管理离不开物联网云平台。
初步选用的云服务器有Apache和Nginx两种,经过整体分析比较,Nginx云服务器和项目选择的后端框架更为契合,所以选用Nginx作为本项目的服务器。
服务器对应的后端框架有多种,主流框架有基于Python的Flask、Django框架,Php后端和Golang后端等,基于性能、产品庞大的市场、复杂度等考量,决定选用适用范围最广的Django作为项目开发的后端框架。
在数据库的选取方面,由于Django框架支持市面上绝大部分主流的数据库,在实验对比了占用空间大小和读写效率后,选择了Sqlite3作为项目的数据库系统,用于存储前后端使用的所有重要数据。
在云平台搭建完成后,为了更方便地实现人机交互,便于管理端与个人用户及时查看相关数据,开发了相关App。当前主流App开发主要有基于Java的Android App、基于C# Xamarin App及HTML5开发App。由于项目系统针对性较强,交互系统更加方便简洁,在进行对比后发现,Java和C#框架过于庞大繁琐,于是选择HTML5作为App的前端实现方案,经校内实验测试效果良好。
3.4 嵌入式部署
面对嵌入式部署的复杂环境及不断新增的垃圾种类,对于已识别垃圾通过桶内摄像头拍照上传云端的方式进行处理,基于现有数据集半自动标注,不断提升识别精度;同时维护人员定期收集未识别垃圾,定期手动更新数据集,提升权重提高精度。定期云端更新部署到各嵌入式垃圾桶,达到持续更新垃圾识别种类的要求,不断提升垃圾识别精度。
4.1 分离机构方面
如何在短时间内准确地分类大量垃圾,如何在较小空间内更高效地运作相关机构,在面对种类繁杂的垃圾怎样保证相关元件不被腐蚀更大限度地延长使用寿命,这些问题都是产品设计时面对的难点。
分别测试了传送带机构、六轴机械臂机构,实验发现以上方案速度、准确度、空间利用率各方面效果均不太理想,机械结构对比实验数据如表1所示。于是项目结合了相关机构的优点,设计了振动分离机构、机械臂、环形传送带等多级分离机构,在相互配合之后,每件垃圾分类时间为1~2 s左右,识别后的垃圾分类准确度在99%左右。
表1 机械结构对比实验数据表
而对不同特征的垃圾有不同的解决方案,如:对于干垃圾,通过传送带的振动及差速分离进行预处理,将垃圾初步分散,经摄像头识别分类再通过机械臂夹取投放至对应垃圾桶;对于湿垃圾,摄像头识别后,会在对应厨余垃圾桶上方进行分轨,通过一定坡度及振动将垃圾投入进垃圾桶。同时垃圾桶传送轨道设有挡板防止垃圾在传送过程中落桶,对夹爪进行模块化设计便于维护更换,可有效避免夹取过程中不慎掉落。
为使结构在小空间内高效运作,解决方案是使环形传送带持续运作,以应对大量垃圾同时投放,同时传送带设计了分轨结构,以处理未识别分类的垃圾(在超过一定时间内无人投放垃圾时,折叠在传送带挡板上的垃圾导板会展开,未识别的垃圾会在导板和传送带共同作用下从未识别垃圾出口处离开传送带掉入专用垃圾桶,并上传数据,后续维护人员会记录相关数据定期优化升级,并处理该部分垃圾),分离机构模型图如图4所示。
图4 多级分离机构
传送带作为关键分离暂存机构,它通过传送带的摩擦力将垃圾初步分离开来。选用的传送带摩擦因数为0.44,滚轮半径为25 mm,电动机最高转矩为95 N·m,传送带速度设定值为0.5 m/s,加速距离为200 mm,根据F·S=1/2mv2,M=f·d 计算解得M=30.4 kg,即每次投放垃圾的质量不可超过30.4 kg,满足日常需求。
机械臂的最大伸展长度为600 mm,电动机的最高转矩为95 N·m,机械臂自重0.5 kg,根据M=F·d ,F=m·g解得M=15 kg 所以机械臂最大载荷为15 kg,满足日常需求,机械臂前端安装有夹爪,将已识别的垃圾从传送带上夹取至已识别垃圾投放口投入下方垃圾桶中。
在防腐材料选用方面,对于不同部件选用了不同的材料,对于承重结构来说,由于垃圾的总体质量不大。所以选用较轻质的铝材作为框架和承重结构,关键结构件选用了ABS材料并经3D打印,结构易加工的同时兼具防腐性,对于传送带材料选用了NR-45LVHS聚氨酯喷涂的橡胶材料,保证了耐磨和防腐性。
4.2 电动机控制方面
本项目以Nvidia Jetson Agx Xavier为上位机进行视觉数据分析及数据云端上传,以stm32f427为下位机对机械臂和传送带进行控制,连接各种外设传感器获取流程状态。上下位机通信采用.json格式数据,数据标准兼容方便。传送带电动机选用大疆的M3508电动机,机械臂舵机采用大转矩总线舵机,传感器选用高精度超声波,红外光电传感器。
传送带的电动机控制采用PID双闭环调速系统,外环为速度环,内环为位置环,通过获取电动机编码器并进行累加来确定电动机转动路程,将路程与期望路程进行内环位置环闭环处理,反馈数值再与电动机转速进行外环电流环闭环处理,从而确定传送带转动距离,配合红外光电传感器实时反馈物体经过特定区域的情况,如果遮挡光电传感器返回低电平,反之则高电平。在产生低电平到高电平的跳变的时候,视为垃圾离开光电传感器位置,记录电动机编码器数据并做校准。校准由于传送带表面摩擦因数关系导致垃圾在传送带上产生的移动误差。
机械臂舵机采用大转矩总线舵机,总线舵机的好处在于有位置和速度及转矩电流反馈,结合算法可以得知当前机械臂整体姿态、当前状态及夹取情况。并且总线舵机采用总线串联的形式接线,整体只有1根线贯穿机械臂。算法采用矩阵分析,通过对机械臂的位姿矩阵进行分析与转换,正逆运动学分析算法及速度雅可比矩阵方法实现路径规划。为了使得机械臂的整体运动平滑,通过对机械臂进行规划,对末端速度、加速度等进行一定约束。
在垃圾桶容量计算方面,采用超声波传感器,由单片机定时器记录时间,计算发射声波与回波所需时间计算垃圾桶内横切面的边距情况。一旦垃圾桶容量超过一定高度,超声波计算的距离值将会缩小,表面垃圾已经堆放到当前高度。通过设置一定的体积高度计算满载情况,实时反馈当前垃圾桶剩余容量。
4.3 产品外观方面
出于对社区化的推广问题考虑,进行了模块化设计便于清洁、维修、部署,大到垃圾处理站配套分类机构,小到街道垃圾桶均可以针对不同市场需求进行特质化定制,同时加装了太阳能板进行应急供电,外观模型效果图如图5所示。
图5 外观效果图
5 结语
我国目前对于垃圾回收,主要集中于价值较高的稀缺资源,对于生活垃圾仅有部分城市进行了分类回收,且回收手段主要靠居民自主分类、统一集中处理,其中对于资源回收利用的效率低、花费高,并且普及推广难度大,大部分城市对于垃圾分处理还处在不分类直接处理阶段。简化垃圾分类,使其不那么繁琐,进一步推广垃圾分类,成为了当下亟待解决的难题。而垃圾分类智能化,作为解决此难题的可行方案仍不成熟。现有市面上不论国内外,并没有一套完善的垃圾自动分类设备和垃圾分类管理系统。但随着计算机软硬件飞速发展,相关从业者的拓展研究,图像检测及卷积神经网络等深度学习在智能化识别中崭露头角,并逐渐赶上甚至超越传统视觉算法,然而针对于移动端社区化部署,以及精确化特征识别提取仍有一定问题待解决,需要优化相关网络模型来解决相关问题。
为了探究深度学习在垃圾分类的应用部署,尤其是针对社区化移动端部署这一具体问题,本文以识别速度较快、模型较小的YOLOv5卷积祌经网络模型为基础,对如何提升网络小型化部署和识别检测速度、进一步提升网络分类准确率,以及社区智能化管理这一方向上展开研究工作。以下是研究内容和取得的成果:
1)在模型的选用上,分别测试了当下较为突出的几种模型,分别测试了Faster RCNN、AlexNet、Google Net、VGG-16、ResNet-50,YOLOv3、YOLOv4、YOLOv5几类卷积神经网络模型在自建数据集上的精度、检测速度、移动端部署难易程度,最终选用了模型最小、识别速度最快、精确度较高的YOLOv5模型作为研究的基础算法模型,在其模型中加入了1×3卷积和3×1卷积来提升模型对待检测目标的细节特征提取能力。通过改进后的YOLOv5网络模型在数据集上进行训练及测试,获得了95.23%的准确率。
2)为了进一步加快识别检测速度以便于小型化部署,采用YOLOv5.s权重,并通过分析修改网络超参数使之在较低版本权重依然能保持不错的识别准确率,将YOLOv5神经网络模型部分进行C++编译重构,同时使用TensorRT进行加速,最终利用此方式改进的模型,并在自制数据集上进行验证,使图像识别处理速度达到120 fps以上,且模型更加小型化便于社区移动端部署使用。
3)针对目前垃圾分类智能化仍未普及,设计社区部署搭建物联网云平台,实现集群化管理,利用数据收集、储存、分析处理,实现可视化和远程管理控制等功能,以求达到智能设备的一站式管理。有助于本项目系统的推广、简易化、模块化部署。解决了日常生活中生活垃圾的自动分类问题,进一步缓解了日益增加的垃圾种类多、分类困难的问题,促进了垃圾分类的普及,积极进行环境保护、资源回收,力求对人与自然和谐相处做出一定贡献。