基于MobileNet v2的智能垃圾分类系统

2022-09-20 02:57张兆屹李和福王明红
现代计算机 2022年14期
关键词:舵机分类模块

张兆屹,李和福,王明红

(聊城大学物理科学与信息工程学院,聊城 252000)

0 引言

2020年我国全面建成小康社会,人们对美好生活的向往及物质的需求愈发强烈,导致目前我国生活垃圾产量逐年上涨,使得我国成为世界上垃圾围城形势最为严峻的国家之一。伴随着生活垃圾数量剧增、垃圾分类困难、肆意丢弃污染环境等一系列问题的出现,促使当前全面启动垃圾分类工作迫在眉睫。

近年来,我国正加速推进垃圾分类工作,在“十四五”规划中,生活垃圾分类和处理设施建设进入关键时期,垃圾分类工作已经成为国家级的战略目标。规划明确到2025年底,46个重点城市基本建成生活垃圾分类处理系统。但目前的解决方案还是以居民主动分类和监督员检查的形式进行,无形之中也给居民及监督员增加负担。同时,相关法规的不健全,居民的垃圾分类意识不强,垃圾种类过多难以精确分类等问题,依旧限制着我国现阶段垃圾分类的发展。

随着计算机硬件水平的不断提升,大量学者在视觉领域投身相关研究工作,且在图像识别方向上获得丰硕的成果,为垃圾分类工作、图像识别及嵌入式相结合提供了可行性,同时基于物联网技术的智能垃圾分类系统也会应运而生。

综上所述,需要寻求一种低成本、高灵敏度、智能化的垃圾分类技术以改善目前垃圾分类的现状。

1 智能垃圾分类系统整体方案设计

1.1 系统整体方案设计

智能垃圾分类系统整体结构采用“分布式”拓扑结构,相比于“主从式”与“集中式”的拓扑结构,其优势在于各部分相对独立,可以避免干扰,减轻核心控制器的工作负担。此外,为满足日常调试、检测方便以及便于硬件与软件升级迭代等要求,本系统采用“分布式”拓扑结构的智能垃圾分类系统具有开发简易、应用灵活、使用方便等优势。系统由舵机、显示屏搭建的终端设备、主控板及机器视觉识别等三部分组成。终端设备与主控部分通过串口(USART)或IO口进行数据交换并执行相应操作;主控板与机器视觉识别模块之间通过串口进行识别分类信息传达。系统整体设计框图如图1所示。

图1 系统设计框图

主控板硬件由供电电路、WiFi传输单元、显示模块、控制模块和微控制器(MCU)组成。主控板采用STM32F103ZET6主控芯片,负责对识别到的垃圾分类标签进行处理,通过USART通讯协议将信息发送至显示屏并由WiFi模块上传至云服务器。机器视觉识别模块由OpenMV模块与摄像头组成,采用MobileNet v2的CNN分类模型进行识别分类。系统整体硬件框图如图2所示。

图2 系统整体硬件框图

1.2 系统硬件设计

1.2.1 终端设备模块

终端设备模块采用淘晶驰串口屏,该屏配有上位机开发套件,可拖动相应控件进行自定义界面及显示内容。MCU仅需通过USART发送相应指令便可完成组件属性变更,极大地简化了开发难度。使用MG90S舵机接入主控板的定时器(TIM)复用引脚,实现垃圾分类精准投递的目的。为提高识别准确率,采用TCRT5000寻迹模块与主控板IO口相连检测投递情况,避免在无垃圾情况下出现误识别现象。终端设备模块电路图如图3所示。

图3 终端设备模块电路

1.2.2 主控模块

本系统采用STM32F103ZET6作为MCU主控核心。其具有足够多的通用I/O口、丰富的复用接口功能、良好的数据处理能力以及成熟的开发环境和开发资料,满足本系统对硬件资源的需求。该芯片内含3个USART接口,可满足本系统所需接口的需求。主控板硬件实物如图4所示。

图4 主控板硬件实物图

1.2.3 机器视觉识别模块

相比于其他处理器架构,Cortex M7处理器体系较为成熟且便于开发者应用,因此选择将图像算法部署到搭载此处理器的嵌入式机器视觉平台OpenMV上。图像采集装置使用带有OV5640摄像头模组的OpenMV模块,搭载STM32H743II主控核心。该模块主要功能是通过摄像头采集图像信息,并送入模块主控核心内搭建的神经网络模型进行识别。此外,模块与单片机PA2和PA3相连,通过USART协议将识别结果传送至STM32主控芯片中。OpenMV硬件电路图如图5所示。

图5 OpenMV硬件电路

1.2.4 WiFi模块

采用带有AT指令的ESP8266-01S模块,MCU通过USART发送AT指令即可实现联网上传等操作。WiFi模块与STM32主控板PB10和PB11相连,主控板通过发送AT指令联网,通过MQTT协议报文内容连接、订阅服务器并上传相关内容。WiFi模块硬件电路图如图6所示。

图6 WiFi模块硬件电路

2 系统软件设计

2.1 分类算法设计

垃圾分类的核心是图像的处理和识别,本系统采用的深度学习人工智能模型使用Keras深度学习框架,并基于TensorFlow后端运行。由于本文所采用的机器视觉模块其有限的RAM(1 MB)及flash(2 MB)致使无法运行较大的深度学习模型,为此轻量化模型的选择至关重要。

MobileNet v2是谷歌团队于2018年提出的轻量级神经网络,其相较于MobileNet v1版本,准确率更高,模型更小。表1所示为在ImageNet数据集中不同分类网络的性能比较。

表1 ImageNet数据集中不同分类网络性能比较

由表1可知,MobileNet v2网络在准确率极小幅度降低的情况下,可大量减少参数与计算量,并在移动端部署发挥更优秀的综合性能,因此更适合本文的应用场景。MobileNet v2延续了MobileNet v1的深度可分离卷积的思想代替普通卷积,有效地减少模型的计算量与参数量。另外,MobileNet v2还提出了倒残差结构以提高精度等。在进行深度可分离卷积之前,先经过1×1的逐点卷积操作将特征图的通道进行扩张,丰富特征维度,最后再通过1x1卷积进行降维操作,将经典的残差块顺序颠倒,形成倒残差结构。倒残差结构如图7所示。

图7 MobileNet v2倒残差结构

本文以三分类为例,将数据集分为纸制品、塑料制品及铝制品,共计3354张图片,其中65%数据作为训练集,用于训练神经网络;15%数据作为验证集,用于验证模型性能和调整神经网络参数;20%数据作为测试集,用来测试已训练完成的神经网络性能。将数据集上传至Edge Impulse平台,调整训练集和验证集图像大小为160×160 RGB格式。使用图像平移、翻转及拉伸等操作完成数据集的增强扩充。训练时,模型参数设置如下:epoch为50,学习率为0.001,α为0.75,final layer为16 neurons,dropout为0.1。训练结果表明本模型的准确率可以达到93%,如图8所示,可准确实现可回收垃圾的智能分类。

图8 训练结果

训练完成后生成网络模型,并将其加载到OpenMV机器视觉模块中。当接收到STM32主控板通过USART通讯协议发送的识别信号时,OpenMV将调用摄像头进行拍照,并将拍摄图片载入训练模型并进行识别,最后将输出分类结果标签值返回给主控板。分类流程如图9所示。

图9 分类软件流程图

2.2 显示模块软件设计

使用显示屏配备的上位机软件对界面UI进行设计,界面如图10所示。

图10 界面UI设计

系统初始化后,当STM32主控板接收到机器视觉发送的标签值时,通过USART通讯协议发送垃圾显示控件文本属性值至显示屏,显示屏接收并进行显示,舵机完成投递后清空显示控件文本。软件流程如图11所示。

图11 显示模块软件流程图

2.3 舵机控制软件设计

舵机在本平台负责对垃圾进行精确投递,对不同种类的垃圾投递采用不同的PWM波形(即旋转角度),通过控制定时器输出不同占空比的PWM信号完成。STM32主控板编写定时器函数调节占空比输出不同波形的PWM信号,对OpenMV返回不同种类参数进行对应处理。由主控板TIM接口产生PWM信号,与舵机相连,带动舵机左右旋转实现分类投放功能。控制流程如图12所示。

图12 控制软件流程图

2.4 WiFi模块软件设计

本设计使用ESP8266-01S模块与云端服务器进行数据交互,采用MQTT协议与服务器进行连接、订阅与上传。STM32主控板与ESP8266-01S经过USART通讯协议,发送AT指令完成模块操作,部分MQTT协议AT指令如表2所示。

表2 部分MQTT协议AT指令

系统配置IO口,发送AT指令设置STA模式并连接到路由器,根据所建立EMQ服务器设置MQTT服务器用户属性并进行连接,连接完成后订阅所需主题,本文订阅主题为test。系统完成一次投递操作后,STM32主控板通过MQTT协议及AT指令将相关信息上传至服务器。软件流程图如图13所示。

图13 WiFi模块软件流程图

3 系统测试

3.1 分类准确性测试

选取694张图片(含261张塑料制品、227张纸制品、206张铝制品)作为测试集检验分类准确性。导入模型权重参数,加载测试集检验模型训练效果。在实际测试中,对纸制品和塑料制品的误检率最低,分别为8.8%,10.8%;对铝制品误检率最高,为13.2%。平均误检率为10.9%,系统设计符合要求。模型测试结果如图14所示。

图14 模型测试结果

将模型文件导入OpenMV内存中,使用OpenMV IDE上位机软件编写识别程序,采用上位机软件进行仿真实验,分别对三类垃圾进行识别,均可正确分类。仿真如图15所示。

图15 模型仿真测试

3.2 系统整体测试

将各模块组装完成后进行系统性能测试,分别选取纸制品、铝制品及塑料制品样品放至回收板,检测到有物体时发送识别信号至OpenMV模块进行识别,返回识别结果并进行显示及上传云端。使用MQTTBox软件连接EMQ服务器,订阅同一主题,用以测试云端数据接收,系统测试如图16所示。

图16 系统测试

4 结语

本文提出利用STM32主控板协同OpenMV机器视觉模块进行智能垃圾分类的设计方案。选用MobileNet v2深度学习模型,在模型文件仅占697KB的情况下,模型准确率高达93%,符合本系统的设计需求。此外,该系统可实时地将识别结果展示在显示屏中,并在云端对数据进行存储为后续分析提供数据基础。受训练参数、数据集等影响,本模型仍存在部分判断误差,后续工作将对目标识别算法继续优化,进一步提高分类识别准确性、实时性、高效性。

猜你喜欢
舵机分类模块
Module 2 Highlights of My Senior Year
Module 4 Music Born in America
按需分类
教你一招:数的分类
说说分类那些事
海太克HS—1100WP数字舵机
超音速舵机保护器
必修模块相关知识过关训练
菜鸟看模型
给塑料分分类吧