APP下载

基于视觉识别的垃圾分类系统

2021-07-05林颖黄泽豪曾文轩林琼萍

电子技术与软件工程 2021年10期
关键词:舵机垃圾桶垃圾

林颖 黄泽豪 曾文轩 林琼萍

(华南理工大学广州学院 广东省广州市 510000)

随着环保进程的推进,如何将垃圾进行快速准确分类是当下实现环保目标首要考虑的问题。现市面上已推出相关垃圾分类产品,但依旧存在痛点。其一是与环境的协调性,例如无关物体进入摄像头范围引起垃圾桶开关,控制过程存在盲动性,导致系统的工作效率较低,能耗居高不下,并且整体而言智能化较差,不符合未来发展趋势。其二在于辨别能力差,垃圾的分类处理其核心在于对垃圾进行准确分类判别。

1 系统设计

给垃圾分类机器配备视觉传感器能够对垃圾进行捕捉,根据后台系统提前设计好的一套算法和模型,就可以对所投入垃圾进行识别和分类,根据所确定类别开合相关垃圾桶,以此来赋予垃圾桶智能化和机械化的有机统一,达到提升工作效率的目的,并且实时的识别控制垃圾桶开合,能够一改之前机器的盲动性从而减少耗能。系统利用视觉识别技术对垃圾进行图像处理,对于不同类别的垃圾制定不同流向,最终实现整个垃圾智能化分类的过程。系统流程图如图1。

图1:系统流程图

2 系统软件设计

机器学习的流程(如图2)依次为;数据收集、数据清洗、数据标注、数据增强、模型设计、模型训练、模型评估。首先,通过开启摄像头对当前读取的图片进行保存以实现数据收集。在数据的预处理阶段对图片进行掩膜、高斯滤波、重新设置大小、转换颜色空间的处理。去除照片中拍摄不清楚无法识别出来的部分以实现数据清洗。然后对其进行人工标注处理以实现数据标注。完成标记之后就交给卷积神经网络进行学习,可以添加多几个隐藏层来增加学习的准确度。可以通过一张图片,获取出来很多不同角度的图片,实现模型增强以防止学习过拟合。在模型设计阶段,标注和模型设计可以放在一起,这样就只需要保存一个训练好之后的模型。学习好后进行模型的保存,这样就不用每次都去训练,直接加载训练模型文件即可。并对模型进行预测。最后进行模型评估。对于不同类型的数据,判断其正确率的方式都是不一样的。包括以下几种情况:TRUE POSITIVE:预测正确,实际也正;TRUE NEGATIVE:预测正确,实际也正确;FALSE POSITIVE:预测错误,实际错误;FALSE NEGATIVE;预测错误,实际错误。

图2:系统软件流程图

2.1 复杂光照图像检测

垃圾所在环境相对复杂,容易因为一些阴影而造成图像检测异常,通过提取感兴趣ROI 和灰度均值计算并且灰度变换可以将原来弱光环境变亮。为了降低像素值,减少计算量,将获取到的图片读取进来并且进行降采样获得图像金字塔部分,进行传统的检测操作,这样不断的循环直到对比处理到最后一张图像。

2.2 图像数据集

针对垃圾我们需要将颜色、大小、形状、状态等等诸多因素设计进入系统参数,要获取足够多的图像数据来制作训练数据集,该数据集也是设计模型的原始数据。针对垃圾形态和体积大小两种主要因素进行采集,对多种生活当中常见的垃圾在不同生活场景之下的样本图片进行采集,并且利用 python 批量采集方式抓取,自定义搜索词,同一类别的图片名称的前几个是一样的,后面是按顺序递增,全部图片在一个文件夹下,并建立txt 文档记录全部的图片。

仅靠采集数据对于系统模型进行训练是远远不够的,我们要利用 Keras 提供的图像数据增强工具 ImageDataGenerator 对所采集的样本数据及规模进行扩充,如此可以增强对于系统训练的强度,并且有效的将数据集进行扩大,将我们所建立的数据模型的泛化能力提升。最后将所获得的图片按照7:2:1 的比例进行初步的划分,并且以此作为训练集对系统进行验证和测试,在系统完善的情况之下最终可以实现一个类别的垃圾建立一个对应的文件夹。另外通过增强后的图片数据信息需要用 LabelImg 工具进行标注,将真实垃圾物体的矩形区域的坐标进行标注,生成并保存了对应图片中垃圾的坐标信息图片完成分类后,将数据传输给模型以实现图像处理物品标定,模型判别为哪种型的垃圾并定位其所在的位置,打开相应垃圾回收通道,从而完成垃圾分类。

2.3 识别分类的网络模型

针对日常垃圾识别分类选择合适的算法对模型进行训练,主要从识别的速度、精确度两个方面综合考虑来选择合适的网络模型。

系统采用YOLOv3 算法,是一种one‐stage 算法,该算法是应用于回归思想的基础算法,算法过程是对于图片上的不同位置进行均匀且密集的采样,整个采样过程当中的尺度和长宽比是不限制的,可以采用不同的尺度进行采样,采样所获得的样本通过卷积神经网络提取特征,之后便可一步到位的进行分类和回归。整个过程加快了算法速度。YOLO 目标检测原理:

(1)边界框:在找到的物体周围画一个框,以可视化的形式展现出定位的物体。绘制边界框有两种形式:以左上和右下的坐标点作为定位,在定位的物体周围画出来框;只以左上的坐标点作为定位,得到能覆盖物体的宽度和高度,画出框。在数据集中会给出物体实际的真实框数据。作用是用预测框与真实框进行比对,查看误差的大小。

(2)交并比:真实框和预测框之间会产生一个比值,而这个比值我们通常称之为“交并比”,而数值上越接近于1 就说明预测框的效果越好,越与真实框重合。

使用 YOLO v3 的识别流程是,首先是加载数据集,并且找到在数据集中所有被标注为的数据,根据迭代关系找到所有为的数据。再创建两个函数,分别来处理为和不为的数据。具体操作如下:

(1)把读取输入图片数据自适应调整大小,然后将图片分网络单元格,之后进入卷积层不断地提取特征;

(2)判断某个网络单元格是否对目标负责,即先预测是否这个网络单元格存在目标的中心,通常该过程需有五个必要的参数,归一化后的 X 坐标值 x,Y 坐标值 y,目标框的宽度 w,高度 h,置信值;

(3)结合置信公式,标出候选框最后采用非极大抑制等算法提炼出高精确度的目标框。

2.4 训练调优

识别模块作为数据处理单元,对看到的信号进行处理后,把结果发给系统,再根据上报的结果做进一步处理。其中,系统部分的代码已经写好,用户不需要做任何更改,因为这部分代码不会因为环境的改变而改变。而识别模块则需要重新学习,因为每个不同的环境,其背景都会有些不同,需要识别的物体也会有所不同。图像分类时考虑像素与它们附近的其他像素之间的关系,对邻域的梯度进行分析以提取整个图像的特征。

3 系统的硬件设计

系统硬件流程图如图3。

图3:系统硬件流程图

3.1 主体硬件总设计

该智能垃圾垃圾箱的硬件设计是利用 STM32 单片机、舵机、以及相应的供电模块和设备实现。该智能分类垃圾箱的供电电源是通过 220V 家用电,分别通过稳压模块分别稳压至 12V、6V,用于给舵机、单片机、等用电硬件供电。制作过程中因过多电源同时供电,导致工作时电压不稳设备不能正常工作,因此该硬件电路采用了多稳压单独供电的方法,保证各个硬件能够在额定电压下稳定工作。系统将摄像头检测模块采集到的图片信息发给STM32F103RCT6 进行分析处理,根据处理结果,通过舵机驱动模块对垃圾桶的开闭进行控,将垃圾桶运行后的处理结果检测送给中央处理单元实现闭环反馈控制,调试模块方便查看部分参数和变量。利用电源模块和电源管理实现不同工作电压的模块正常工作。

3.2 摄像头的选型

分辨率是摄像头设备的重要参数,通常按照一定的分辨率对图像进行采集,一般使用的是隔行扫描的方式,将被采集图像细分为一个个的小点进行采集,当某一小点被摄像头所采集到时,图像传感芯片就会将该点的图像灰度数据进行采集,同时将采集到的数据和图像灰度所对应的电压值进行对比和转化,将光学信号转化为电信号,电信号可以通过视频信号端进行输出。系统的识别率受到不同场景下光线明暗的影响。LED 灯本身是具备发热少、照明均匀的特性的,并且因其响应快可以很好的保持整个拍摄环境及拍摄过程的及时性,所以本系统选择在摄像头上加上LED 补光灯,保证光照相同,让系统更加稳定。为了提高模型的泛化性,在训练过程中加入了多种数据增强方式,分别对数据集中的图像进行随机剪裁、以一定的概率对图像进行随机垂直和水平翻转以及以一定的概率对图像进行随机像素内容变换和对图像进行标准化等操作。

3.3 舵机

综上所述,整个系统在运行过程当中的图像采集、处理、分类识别过程中所涉及到的主要元器件都有详细介绍,当通过上述过程完成对于垃圾的种类识别之后,就是通过与之匹配的机械结构来对垃圾分类投入的机械过程进行操作。本设计研究选取舵机负责垃圾桶桶盖开和关的过程。依据实验研究要求,本项目设计垃圾桶打开的角度为90 度。为了实现舵机输出轴转角为90 度,需要给舵机信号线一个周期为20ms 的脉冲,脉宽为2.5ms。依据实验研究要求,本次选择舵机MG995,其是金属外壳,具有良好的散热能力;另外其具有 13KG 的超大扭力,能实现180 度大角度转动,满足实验所需,控制STM32 产生PWM 就可以实现对该舵机的控制。

4 总结

受限于应用推广的成本和场景,视觉识别在垃圾分类系统中仅作为辅助,只有实现整个系统的优化提升才能发挥更大作用。目前该系统主要用于宣讲,虽暂时无法投入到实际生活中,但是随着长期的数据收集,数据越丰富,识别的精准度就越高,会有更大的实际应用的空间。

猜你喜欢

舵机垃圾桶垃圾
垃圾去哪了
垃圾桶等
投进垃圾桶的信
投进垃圾桶的信
飞进垃圾桶
那一双“分拣垃圾”的手
含齿隙弹载舵机的全局反步模糊自适应控制
倒垃圾
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计