基于 YOLOv5 手势识别的无人小车运动交互控制系统设计论文

2023-01-29 09:43:51 来源: 作者:lvyifei
摘要:摘要:手势控制是一种新兴的人机交互控制接口, 通过捕捉手势的变化来执行命令。设计了一套采用手势识别控制无人小车运动 的人机交互控制系统, 使用 YOLOv5 目标检测方法融合相机获取的手势图片, 通过特定的手势信息对应的控制指令传达给无人小 车, 从而达到控制无人小车运动的目的。设计了无人机的软硬件系统, 进行了 YOLOv5 的训练以及无人小车控制测试实验, 实验 结果表明, 该系统能够较为精准地识别指令并达到人机交互的控制效果。
摘要:手势控制是一种新兴的人机交互控制接口,通过捕捉手势的变化来执行命令。设计了一套采用手势识别控制无人小车运动的人机交互控制系统,使用YOLOv5目标检测方法融合相机获取的手势图片,通过特定的手势信息对应的控制指令传达给无人小车,从而达到控制无人小车运动的目的。设计了无人机的软硬件系统,进行了YOLOv5的训练以及无人小车控制测试实验,实验结果表明,该系统能够较为精准地识别指令并达到人机交互的控制效果。
关键词:手势识别;无人小车;目标检测;深度学习;YOLOv5
0引言
无人小车在使用过程中系统的控制部分需要专门人机交互方式实现相关的功能[1-2]。手势控制人机交互方式运用移动端(无人小车)来进行手势识别,并基于识别的结果来执行命令,操作者通过简单的手势完成他们想要完成的控制动作。手势控制作为一种新兴的人机交互控制方式,在无人小车领域得到越来越多的关注[3]。
手势识别的人机交互方式一般有数据手套和视觉传感器两类。数据手套[4]的手势识别方式:使用者需要戴上部署了传感器的手套,手势识别系统通过手套上的传感器获取手的位置、姿态等信息。由于需要配置额外的手套设备,数据手套的手势识别方式在应用过程中存在应用场景受限、成本高等不足[5]。视觉传感器的手势识别基于计算机视觉技术,对视觉传感器采集设备拍摄到的包含手势图像序列,通过计算机视觉技术进行目标检测,识别出手势[6]。目标检测是指从图像中找出所有感兴趣的目标,同时确认目标的种类和位置,是城市安防、自动导航、医疗诊断、增强现实等领域非常重要的应用之一[7-8]。视觉传感器的方式可以分为专用的视觉设备和普通摄像头。微软Kinect是典型的专用的视觉设备代表,基于基Kinect这种特殊功能的摄像头,可以很好地识别手势的信息,领域内相关学者开展了大量的研究并在多方面得到应用[9]。然而基于Kinect的手势识别和数据手套都有一个共同的不足,就是设备昂贵,不利于普及应用。基于普通摄像头的方法不需要采购价格昂贵的数据手套设备或者专有的视觉传感设备,在有普通视觉传感器(摄像头)的场景下都可以使用,具有设备成本低、普及率高等优势[10]。
近年来深度学习目标检测上取得的突破进展[11],目前基于深度学习的目标检测已经成为主流。同时Intel的神经计算棒、NVIDIA Jetson等边缘计算产品的计算能力得到进一步发展,可以为算力不足的移动设备(无人小车等)提供深度学习的目标检测解决方案[12]。
本文采用深度学习技术,设计了一种基于YOLOv5手势识别的无人小车运动交互控制系统,具有结构简单、操作灵活、性能可靠等特点,能够较为精准地识别指令并达到人机交互的控制效果。
1无人小车交互系统的设计
本系统设计思想是采用移动的无人小车+普通的摄像头+深度学习,设计一套手势识别的无人小车交互控制系统。
1.1软件平台的选用无人小车的软件平台选用Ubuntu18.04,运行环境为Jetson nano开发板,CPU基于四核ARM Cortex-A57,GPU为NVIDIA MAXWELL,Arduino Maga 2560,树莓派USB摄像头,软件环境为OpenCV 4.1.0、Pytorch-GPU等。实验平台实物如图1所示。
1.2无人小车的硬件结构设计
无人小车的硬件结构如图2所示。考虑到须在平地上运动,其设计结构采用小车底盘是上下两层亚克力横板,上层亚克力横板安装固定云台,云台上连接六轴机械臂,在机械臂第四轴处安装树莓派摄像头模块,亚克力横板顶部固定Jetson na⁃no开发板模块;下层亚克力横板固定装有Arduino Maga 2560单片机模块,24 V直流电源模块,电机驱动模块,亚克力横板底部左右两侧分别固定有4个直流电机模块,直流电机模块用麦科纳姆轮连接,亚克力横板间由铜柱固定连接。采用轮式控制结构设计,可以使小车在平地上行走平稳。
1.3无人小车的人机交互系统设计
人机交互系统结构如图3所示。系统树莓派摄像头模块获取包括领航者在内的特定手势数据视频流,实时传输给上位机Jetson nano模块,通过部署在上位机Jetson nano模块上的已经训练达到识别精度要求的YOLOv5模型进行识别,根据识别算法来做出判断,处理数据得到相应的控制信息。上位机与下位机通讯根据串口通讯原理,通过有线usb串口通讯方式向Ardu⁃ino Maga 2560单片机传送控制指令,Arduino Maga 2560单片机接受控制指令处理并传达控制信息给电机驱动模块,驱动4个直流电机模块进行正反转,实现无人小车的运动控制本文中的YOLOv[13-14]的核心思想是把物体目标检测(ob⁃ject detection)问题处理成回归问题,用一个卷积神经网络结构从输入图像直接预测检测框和类别概率,是典型的目标检测one stage方法。YOLOv算法将候选区域和检测阶段合二为一,将输入划分成s×s个窗格,每个格子会生成不同长宽比的B个边界框(bounding box)。当目标框中心点落在某个窗格,则此目标的检测由该窗格负责,同时预测出边界框的位置信息、分类概率及置信度(confidence)。
在YOLOv5中,一共出现了5个版本,分别是YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLO5x五个模型。其中,YOLOv5s网络是YOLOv5系列中深度最小,特征图的宽度最小的网络。其他4种都是在此基础上不断加深和加宽。综合考虑下,本文选择用YOLOv5s网络模型。YOLOv5模型的训练利用深度学习框架Pytorch,首先在YOLOv5模型中对手势数据集进行训练,调用YOLOv5针对训练的脚本文件,在基于YOLOv5预训练模型yolov5.xyam的前提下,在权重文件yolov5x.pt的输入下进行手势识别模型训练,生成手势识别和检测的.yaml文件,将模型与测试集数据进行匹配,选择训练识别精度最高的权重文件输入作为视觉模型。
2实验与结果分析
2.1手势数据集的制作
系统根据识别手势图片的不同,实现控制小车不同的运动方式,定义手势数字代表指令如下:手势0控制小车启动,手势1控制小车直行,手势2控制左转,手势3控制右转,手势4控制后退,手势6、7、8共同控制小车上的机械臂运动,手势9控制小车停止运动。
系统通过树莓派摄像头采集空白背景处人体手势图像视频流,分别有数字0、1、2、3、4、5、6、7、8、9下所代表的特定人体手势图像。系统利用Opencv图像处理技术将数据视频流逐帧转化为图片数据,结合立体匹配算法,获取包含控制者目标在内的深度图像,在对图像进行阈值化、归一化等图像预处理方法,融合基于YCrCb颜色空间Cr、Cb范围筛选法色彩空间转换算法来排除周围环境因素的干扰,得到只有控制者特定手势的深度图片,通过图像转化的技术还原初始的图像空间色彩和人物信息,并分类不同的手势图片信息制作数据集进行筛选,最终得到每个数字代表的特定手势图片503张,共有5 030张手势图片数据,在python的LabelImg模块工具中对手势图片进行标注,并生成YOLOv5深度学习模型的手势图片数据集,分为训练集85%,测试集15%。部分数据如图4所示。
2.2实验
实验过程一共分为3个部分。实时手势视频流识别检测,控制指令通讯测试和无人小车运动测试。在YOLOv5模型手势数据训练中,设定每次训100轮,训练批次大小为8,分多次进行试验。预测识别率达到85%~90%以上,基本符合实验要求,预测结果如图5所示。实时手势视频流识别检测,设置置信度在0.5,迅速准确检测出各手势分别代表控制指令信息,控制指令通讯测试,将检测到的手势数据通过usb串口通讯准确转化无人小车的控制指令,无人小车运动方式按照预期手势控制指令运动。在手势数据训练识别率达到一定精度后符合测试要求,将训练后模型文件部署到移动端,实现手势指令控制小车的运动,小车前进,后退,转弯,停止等。系统运行界面效果如图6所示。
2.3实验结果分析
针对YOLOv5模型手势数据集的训练,对0~9的手势图片数据识别进行测试及结果的统计分析,结果如图7所示。图8所示为F1分数与置信度之间的关系,图9所示为召回率跟置信度的关系,都能够反映训练后性能的指标。F1分数(F1-score)是分类问题的一个衡量指标,是精确率precision和召回率recall的调和平均数,最好为1,最差为0。
根据实验训练数据分析,训练后测试的识别率稳定在85%~95%之间,达到本系统允许的控制误差范围内,在保证快速识别手势指令而精确控制小车运动的前提下,本系统手势控制无人小车测试结果达到预期效果。同时需要说明的是,由于手势数据集制作的大小限制以及训练过程中训练迭代次数的限制,识别率精度受限制。
3结束语
本文设计的基于YOLOv5手势识别的无人小车运动交互控制系统,将YOLOv5改进算法融合在无人小车运动控制,实现精确控制指令传达效果,与相比于传统的手势识别控制系统,利用普通摄像头作为单一传感器来实现对周围环境的感知,作为控制的输入端,只需要摄像头传感器识别操作者简单的特定手势便可实现控制,控制操作简便快捷,可降低控制系统对于控制人员专业性的依赖。同时利用YOLOv5模型应用开发的深度学习图像识别技术,对硬件算力要求较小,支持使用最新的图像识别模型,体积小,对训练的手势图像识别率高,系统控制反应速度更快,精度高。
参考文献:
[1]黄恒一,付三丽.简易智能车人机交互应用的研究[J].物联网技术,2020,10(1):95-99.
[2]侯宇杰,鲁世翔,张清源,等.基于STM32的智能车载预警与求助系统设计与实现[J].机电工程技术,2020,49(10):115-117.
[3]黄康.车联网交互的方法探讨[J].时代汽车,2022(4):40-41.
[4]顾伟宏,闵昆龙,张晓娜.新型数据手套及其手势识别研究[J].自动化仪表,2011(2):56-58.
[5]吴常铖,曹青青,费飞,等.基于数据手套和神经网络的数字手势识别方法[J].东南大学学报:自然科学版,2020,50(3):563-569.
[6]宋一凡,张鹏,刘立波.基于视觉手势识别的人机交互系统[J].计算机科学,2019,46(S11):570-574.
[7]Joseph R,Santosh K D,Ross B,et al.You Only Look Once:Uni⁃fied,Real-Time Object Detection[J].Proceedings of the IEEE conference on computer vision and pattern recognition.2016.
[8]Uijlings,Jasper RR.Selective search for object recognition[J].In⁃ternational journal of computer vision,2013(2):154-171.
[9]杨剑,朱培杰,邱少健,等.基于Kinect的人机交互应用的研究与探索[J].机械工程师,2017(3):4-6.
[10]丛玉华,何啸,邢长达,等.基于计算机视觉手势识别的人机交互技术研究[J].兵器装备工程学报,2022,43(1):152-160.
[11]侯永宏,叶秀峰,张亮,等.基于深度学习的无人机人机交互系统[J].天津大学学报(自然科学与工程技术版),2017,50(9):967-974.
[12]Derek Runberg.扩展基于NVIDIA Jetson Nano的JetBot智能车功能[J].单片机与嵌入式系统应用,2021,21(10):4-6.
[13]董丽君,曾志高,易胜秋,等.基于YOLOv5的遥感图像目标检测[J].湖南工业大学学报,2022,36(3):44-50.
[14]郑方梅,魏延.基于YCRCb色彩空间的手语图像分割[J].电脑知识与技术,2019,15(2):194-197.
