基于深度学习的智能垃圾分拣车系统

2022-04-28 10:36王慧蒋朝根
电子技术应用 2022年1期
关键词:网络结构类别嵌入式

王慧,蒋朝根

(西南交通大学 计算机与人工智能学院,四川 成都 611756)

0 引言

针对生活垃圾的识别分类任务,我国大多采用人工进行垃圾分拣工作,该分拣方式存在分拣效率低、对人体危害大等弊端。随着人工智能的发展,深度学习如今被广泛应用于各个领域。文献[1]介绍了基于openCV 与TensorFlow 框架的垃圾分类设计,但是该项目只是讲解怎样去处理图像,实现垃圾识别分类,并未应用于实际。文献[2]提出以STM32 作为控制器进行垃圾分拣任务,以OpenMV 摄像头进行垃圾分类识别,但是由于以STM32作为控制器运行神经网络,使得检测效率并不高。文献[3]提出了基于并联机器人的分拣系统设计,该系统对废旧塑料瓶的检测率达到98%,效率很高,但是该系统只能检测单一垃圾,并且不能判断检测的垃圾种类。文献[4]提出了以MobileNet SSD 为模型、以Jetson TX2 为控制器的垃圾分拣机器人系统,该系统设计对Jetson 设备进行了部署加速,使得检测速度较快,但是检测准确率并不是很高。有学者设计机械手来进行垃圾分拣任务,具有较高的分拣准确度及稳定性[5],但是该设计基于理论知识,未能应用于实践,真实检测效果还有待考量。机器学习需要在计算能力、储存能力等都有限的平台上表现出优越的性能,才能在更广阔的范围内得到推广和应用[6]。文献[7]在嵌入式FPGA 运行改进的SoC 神经网络模型,使得卷积神经网络的运行速度提升了很多。在该项目中以NVIDIA Jetson Nano 作为控制器,在该移动端部署训练模型,该边缘嵌入式设备含有GPU 算力,网络推理速度更快,有完整的操作系统,界面可视化,操作方便。

本实验硬件部分采用了高清AI 视觉800 万像素摄像头进行图像数据采集,六轴工业机械臂进行垃圾分拣任务。软件部分以Pytorch1.8.1 为深度学习框架,学习率α=0.01,进行300 次迭代,平均精确率便可达到90%以上,收敛速度较快,检测效果较好。由于需要部署到移动设备中,因此该项目进行模型训练时采用的是YOLOv5s预训练模型,训练后的模型体积只有13.6 MB。部署到Jetson Nano 4 GB 设备中[8],将模型生成基于C++的engine部署引擎文件,使得模型运行速度快,能够达到实时检测的效果,可以达到30 f/s。

1 系统设计

智能垃圾分拣车系统由NVIDIA Jetson Nano、六轴机械臂、高清800 万像素摄像头、激光传感器、智能小车及分类垃圾桶等设备组成。本设计的系统总框图如图1所示。

图1 系统总框图

此智能小车使用自带的光电传感器进行导航,由于激光传感器检测距离比较远,因此在本设计中采用激光传感器。小车在激光传感器及超声波模块的作用下在规定区域内搜寻垃圾,当小车检测到垃圾时,小车停止运动,调用高清摄像头,进行拍照;将拍摄照片上传到Jetson Nano 设备中,将该嵌入式AI 设备作为上位机,调用训练好的垃圾分类模型,进行当前垃圾的分类识别;然后上位机控制六轴机械臂夹取垃圾,之后移动到指定堆放地,将垃圾按照类别放入垃圾桶,无论是否放入对应类别的垃圾桶,都进行信息记录,方便后续信息查询;再次进行指定区域垃圾搜寻、识别及夹取任务,如此反复,直至指定区域内没有垃圾则停止搜寻。该智能垃圾分拣车流程图如图2 所示。

图2 智能垃圾分拣车流程图

2 YOLOv5 目标检测算法

YOLOv5 是2020 年6 月发布的目标检测算法。YOLOv5s预训练模型是目前YOLO 系列中体积最小的模型,易于编译成ONNX 与CoreML,因此在移动端部署模型便简单方便,实时性更好。

可以通过Netron 对训练模型进行网络结构可视化,由于结构比较复杂,便整理成图表的形式。设置输入图片大小为640×640 时YOLOv5s 的网络结构如图3 所示。

图3 YOLOv5s 网络结构

主干提取网络相比于YOLOv4[9]的改进点:

(1)Backbone 特征提取网络结构:由CSPDarkNet53 变为CSPDarkNet53+Focus 切片机制;

(2)激活函数:nn.SiLU 代替原来的nn.Hardwish 与nn.LeakyReLU 激活函数,并且nn.SiLU 是在PyTorch1.7.0 才引入的。

Neck 结构改进点:与YOLOv4 一样采用FPN+PAN网络结构[10],但是YOLOv5 使用了CSP 网络结构,这使得网络特征融合能力得到增强。

YOLOv5 是有多个预训练模型的,分别是YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x等模型。随着YOLOv5 版本的更新,训练模型不断增加,随着训练模型体积的增大,其网络结构的深度及宽度也在不断增大,准确率也不断增加。在本项目中的YOLOv5s 模型深度为0.33,宽度为0.5。

YOLOv5 损失函数等于分类损失、定位损失以及置信度损失之和。YOLOv5 使用二元交叉熵损失函数计算类别概率和目标置信度得分的损失,bounding box 回归损失经过了IOU损失、GIOU损失[11]、DIOU损失[12]以及到现在的CIOU 损失[12],在此项目中采用将CIOU 损失作为bounding box 的回归损失。

3 相关工作

3.1 垃圾数据集

从网上搜集到了5 048 张图片,包括了5 类垃圾,其垃圾类别及数量如表1 所示。

表1 垃圾类别及数量

对搜集到的图像数据通过LabelImg 工具进行标注,生成.xml 文件保存到Annotations 文件夹下。由于YOLOv5数据集需要.txt 格式的数据集,因此编写脚本进行格式转化。YOLOv5 数据集结构构成需要将图片与标签一一对应。其中训练集4 088 张图片,验证集911 张图片,测试集505 张图片。

YOLOv5 采用Mosaic 图像增强方法对现有数据进行数据增强,Mosaic 图像增强方法是默认将4 张图片拼接在一起,等效于并行输入4 张原始图片,以此增加数据集。并且会采用Cutout 方法进行数据扩增,即随机选取正方形区域,对数据进行归一化处理后,用0 填充[13]。除此之外,还对图像数据进行随机翻转、平移、裁剪、随机缩放比例等操作进行数据增强。经过数据增强后的图片类别数量分布图如图4 所示。

图4 图片类别数量分布图

3.2 六轴机械臂

利用Solidworks 绘制的六轴工业机械臂如图5 所示。

图5 六轴机械臂结构图

考虑到实际项目需求,将机械臂设计为6 个自由度,抓取机构设置为夹取,张合的角度为0~180°,可以抓取塑料瓶、橘子皮等垃圾。为方便在智能小车安装机械臂,将底盘大小设置为15.9 cm。有学者对6 轴机械臂进行算法改进,以便以最短路径进行目标定位[14],在本设计中也尝试复现,但是效果不佳,便未采用该方式,而是采用基于遗传算法的路径规划设计[15]。

3.3 实验平台

本实验使用GTX 1080Ti 11 GB 的GPU、E5-2678v3 的CPU,CPU 主频为2.5 GHz,12 核24 线程。控制器为NVIDIA Jetson Nano 4 GB,采用800 万像素的英伟达Jetson Nano高清AI 摄像头,还有光电智能小车、六轴机械臂等硬件。以PyTorch 1.8.1 为深度学习框架,TensorFlow 版本为2.4.1,搭配CUDA11.2,cuDNN8 的开发环境。

4 实验结果

设置学习率lr=0.01,动量因子momentum=0.937,输入图像大小img_size=(256,256),迭代次数epochs=300,批处理大小batch_size=16,交并比(IoU)训练的阈值设为0.2,优化器的权值衰减值weight_decay=0.000 5,GIoU 损失值设为0.05。迭代300 次后,训练模型的准确率、召回率、平均精确率、mAP@0.5∶0.95 以及各个类别的精确率如图6 所示,其中图6(a)~图6(d)中的横坐标均代表迭代次数,纵坐标分别代表精确率、召回率、IOU<0.5 时的平均精确率以及IOU<0.95 时的平均精确率。

图6 训练结果图

利用YOLOv5 进行模型训练,保存最好的训练模型及最后的训练模型,由生成的训练图可以得出,经过300次迭代,最好的训练模型精确率可以达到94.5%,召回率为89.03%,平均精确率为91.8%,模型大小为13.6 MB。将模型移植到嵌入式系统Jetson Nano 4 GB 系统中,其检测效果如图7 所示。

图7 测试结果图

5 结论

该智能垃圾分拣车系统可以通过自带的光电传感器,利用边缘嵌入式Jetson Nano 设备作为上位机,协调好高清摄像头与六轴机械臂的配合控制,在指定区域内进行垃圾搜寻及搬运任务,提高分拣效率,降低生活成本。

利用YOLOv5s 作为预训练模型,迭代300 次平均准确率便达到90%,节省训练时间,模型准确率高,并且模型体积小,可以在嵌入式系统完美实现实时目标检测的功能。该系统现在能够识别的垃圾种类较少,下一步研究将扩大数据集。

猜你喜欢
网络结构类别嵌入式
论陶瓷刻划花艺术类别与特征
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
快递网络结构研究进展
一起去图书馆吧
基于AutoML的保护区物种识别①
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式PLC的设计与研究
嵌入式单片机在电机控制系统中的应用探讨
基于时效网络的空间信息网络结构脆弱性分析方法研究
基于互信息的贝叶斯网络结构学习