基于YOLOv5s的扫地机器人

2023-03-01 08:05吴添凡文奥捷高雨张志寰
电子制作 2023年2期
关键词:扫地原理图物品

吴添凡,文奥捷,高雨,张志寰

(东南大学成贤学院 电子与计算机工程学院,江苏南京, 210000)

0 引言

目前几乎所有的扫地机器人都不具备识别具体物体的功能,在碰到一些小物品时无法进行规避,而一些常见的情况是会将物品推动到墙角。因此引入神经网络和深度学习是扫地机器人在图像识别领域迈出的重要一步,物品的识别与检测应用到扫地机器人的潜力是非常大的。本文使用YOLOv5s神经网络架构,实现了对于U盘、钥匙、戒指、手表的识别。对于散落在地上的小物品进行检测和特殊处理。

1 总体方案设计

基于YOLOv5s的扫地机器人主要由微型计算机、外围电路(如电机驱动电路、舵机驱动电路、各个传感器数据回传电路)、数据接收模块、传输命令模块组成。数据接收模块主要由摄像头和传感器组成,负责机器人外部环境感知及外部信息内传,传输命令模块主要由驱动电机和清扫电机组成,负责完成扫地机器人的移动和清扫工作。

结构框图如图1所示。

图1 基于YOLOv5s的扫地机器人结构框图

2 硬件设计方案

■2.1 主控模块

主控单元为Arduino UNO和MSP430F5529双主控,由Arduino UNO控制机械臂完成抓取功能和清扫功能,MSP430F5529完成避障功能、电机PWM输出功能、红外识别功能以及可以通过蓝牙模块接收从电脑端返回的识别结果再传输给Arduino UNO。

图2和图3是Arduino UNO的原理图和MSP430F5529的原理图。

图2 Arduino UNO原理图

图3 MSP430F5529原理图

■2.2 超声波检测模块

本文采用超声波HC-SR04超声波传感器,其原理是:当持续时间至少为10μs的脉冲施加到触发引脚时,开始执行检测任务传感器以40kHz的频率发射八个脉冲的声音脉冲。八个超声波脉冲通过空气传播,远离发射器,回声引脚变为高电平,开始形成回声信号的开始。如果这些脉冲没有被反射回来,则回波信号将在38ms后超时并返回低电平。因此38ms的脉冲表示在传感器范围内没有阻塞。如果这些脉冲被反射回去,则在收到信号后,Echo引脚就会变低。这会产生一个脉冲,其宽度在150μs至25ms之间变化,具体取决于接收信号所花费时间。这样就可以达到超声波模块自动发出一次检测信号的效果了。超声波检测模块原理图如图4所示。

图4 超声波检测模块原理图

■2.3 扫地机器人驱动模块

本文采用BTN7971驱动芯片,BTN7971B是用于电机驱动应用的集成大电流半桥,有大电流高驱动的特点,超小内阻,并对驱动电路加装了隔离芯片,最大限度地保护单片机。还采用了高质量滤波大电容,使电路更加稳定。驱动模块原理图如图5所示。

图5 驱动模块原理图

■2.4 红外模块

本文采用TCRT5000红外模块,工作时发射管发射出一定频率的红外线,当检测到障碍物的时候,红外线反射回来被接收管接收,经过比较器电路处理之后,得到一个信号,此时输出指示灯会亮起,同时信号输出接口输出一个低电平信号,从而达到检测物品的效果。红外模块原理图如图6所示。

图6 红外模块原理图

■2.5 蓝牙模块

本文采用HC-05蓝牙模块与电脑端进行通讯,将电脑端神经网络识别的结果返回给主控模块,达到检测结果传输的目的。蓝牙模块原理图如图7所示。

图7 蓝牙模块原理图

3 软件设计方案

■3.1 YOLOv5s神经网络算法介绍

近年来随着神经网络和深度学习的应用广泛,越来越多的人加入到了神经网络的开发和更新换代中,YOLO算法是Joseph Redmon于2015年提出的单阶段目标检测算法,YOLO算法跟R. Girshick于2014年创立的RCNN系列两阶段目标计算一起引领基于深度学习的目标测试计算的发展。YOLO系列算法是一种能满足实时检测要求(FPS>30)的高精度算法,他也是更新换代很快的一种神经网络,在2020年2月21日,YOLO算法创始人宣布停止更新YOLO后各路民间高手层出不穷,2020年6月9日,在距离上一个YOLOv4发表不到50天的时间里,Ultralytics公司开放了YOLOv5,并且YOLOv5是全部通过PyTorch完成。YOLOv5m在YOLOv5s基本上,继续深入加宽网络,AP精确度也继续提高,但速度的消耗也在继续加大。YOLOv5l在YOLOv5m技术基础上,进一步深入加宽网络技术,AP精确度也进一步提高,但速度的耗费也在不断地加大。YOLOv5x在YOLOv5l基本上,继续深入加宽网络,AP精确度也继续提高,但速度的耗费也在继续加大。而YOLOv5s网络是YOLOv5系列中特征图的深度最浅、宽度最小的网络。虽然YOLOv5s AP精度最低速、网络最小。但如果在检测中追求部署的容易程度或者硬件要求等,YOLOv5s倒也是个不错的选择。

考虑到硬件本身和需要快速地检测物品以及成本等,本文采用轻量级的YOLOv5s神经网络进行训练,实现了对于U盘、钥匙、戒指的识别。

YOLO神经网络结构首先输入一个480*480的图片,通过一定数量的卷积层和池化层,最后再经过两个全连接层,生成7*7*30的输出。

具体分析:YOLO将一幅480*480的原图划分成了7×7=49个网格,各个网格要估计2个预选框(bounding box)的位置(x,y,w,h),其中x和y代表box中心线与该格子界线的距离值,w和h代表预估框的长宽和高程相应于整幅图片的长宽和高程的比值。所以,这四个值的大小都会被限制在0-1之间。各个网格还会预计框内是否含有物品的置信度(confidence),各个预选框都有一种置信度,包括物品归属于每一种类型的概率(YOLO的训练数据为VOC2012,是一种20类型的统计集合),也就意味着各个网格预计20个类型的概率。所以我们可以得出,4×2+2+20=30,也即是一个网格有30个值,对应一个30维的向量。

整个YOLOv5s模型包含了如下几个模块:CBS模 块:conv+bn+silu,这 里 的silu就 是swish无参数的实现版本,下采样都是来自CBS的2的stride实现CSP1模块:两路,一路CBS+残差堆叠,一路只有一个CBS来调整通道,concat做聚合,这里的不同在于残差会有N个,主要用于backbone阶段,Backbone网络是检测网络的主干,网络提取出图像的高中低层的特征。CSP2模块:相比于CSP1,去掉了残差,用的原始的CBS,主要用于neck阶段。SPPF:SPP的快速实现版本,这里maxpooling的kernel都是5,stride为1,padding补齐。head: 普通conv卷积,输出为(class+obj+x+y+w+h)* len(anchors), 因 为coco是80个类别,anchors数量是3,所以就是(80+1+4)*3 =255。

■3.2 YOLOv5s检测小物品的架构图

本文的检测小物品的框架图如图8所示。从图中可以看出,实现小物品检测的步骤是先输入图像,建立数据集标注小物品预处理,对模型进行训练,最后将正常的图片输入模型进行判断,输出检测结果。

图8 小物品检测方案图

■3.3 实现小物品检测流程

3.3.1 训练前的准备工作

为了保证数据集的质量,采集的数据采用真实自然的场景和真实的物品,利用代码将二者随机结合随机生成,得到可以采用的数据集,最后再经过筛选得到16347张数据集准备标注。

数据集的标注,采用labelimg工具对小物品(戒指、手表、U盘、钥匙)进行标注,并将图片的标注的图片格式由xml转换为YOLOv5s的格式,再对图片进行编号排序。

3.3.2 网络训练中

首先搭建目标检测环境对模型进行训练,文中采用的实验平台选择的是Windows 10操作系统,利用Pycharm软件进行模拟仿真,具体配置情况如表1所示。

表1 硬件参数

在训练的过程中,具体的训练参数设置情况如下:分组大小batch_size设置为4,训练次数epoch设置为200。

4 性能测试

通过YOLOv5s算法检测,结果如图9所示。

图9 小物品检测结果图

F1值:兼顾模型的准确性和召回率。精确率是根据我们预测结果来说的,它代表的是预期为正的样品中有几个是真实的正样品。召回率是指针对我们最初的样品来说的,它代表的是样品中的正例有哪些被预期正确了。

PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率)。

AP是Precision-Recall Curve(PRC)下面的面积。

map_0.5:0.95:表示在不同IoU阈值(从0.5到0.95,步长0.05)。

Train loss是训练统计上的损失,反映模型在训练集上的拟合能力。Val loss是在检验集上的损失,反映的是在未见过统计上的拟合才能,也可以说是泛化能力。模型的真实有效性可以用val loss来度量。

训练结果的F1曲线和PR曲线分别如图10和图11所示。

图10 F1曲线图

图11 PR曲线图

其中F1曲线靠近右上方,P-R曲线非常靠近右上角,由于在F1曲线中F1的值为两倍的Precision值和Recall值相乘再除以Precision值和Recall值的和得到的值,所以F1的值越大越好;在PR曲线中Precision值和Recall值越大越好,所以PR曲线越往右上角凸越好,在此均表示为模型性能非常好。

从实验结果看出了YOLOv5s算法对于这些小物品的检测精度和速度都是非常高的,但是在实验中,如果对数据集进行更有效的处理,或者将注意力模块CBAM与YOLOv5s网络的Neck部分融合,提高网络的特征提取能力。

5 结束语

本文提出了采用YOLOv5s网络结果进行小物品检测算法,在很大程度上降低了硬件的门槛,也使扫地机器人的检测速度提升,最终返回的结果良好,将YOLOv5s运用在扫地机器人上有很大的可行性。

猜你喜欢
扫地原理图物品
扫地机器人
称物品
“双十一”,你抢到了想要的物品吗?
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
谁动了凡·高的物品
妈妈洗衣我扫地
扫地扫到树上面
维修电工线路板的接线技巧分析