一种基于YOLOv5的智能机器人冰壶检测方法与流程

文档序号:31623281发布日期:2022-09-23 23:54阅读:234来源:国知局
一种基于YOLOv5的智能机器人冰壶检测方法与流程
一种基于yolov5的智能机器人冰壶检测方法
技术领域
1.本发明涉及计算机视觉技术领域,具体而言,尤其涉及一种基于yolov5的智能机器人冰壶检测方法。


背景技术:

2.冰壶运动最早起源于苏格兰,人们普遍认为它是历史最为悠久的团队竞技运动之一。在冰壶比赛中,每场的参赛队伍有两只,每只队伍有四名比赛队员,每场比赛总共进行十小局的比赛。场上的每名队员可以投掷两次冰壶,两支队伍四名队员交替投掷冰壶。当队员投掷冰壶后,队内的两名队员会拿着冰擦跟随冰壶运动,并在适当的时间在冰壶运动前方进行擦冰,让冰壶尽可能到达想要的位置。在所有队员都投掷完成后,根据场上的冰壶与大本营中心的距离来决定比赛的胜负。计算机技术和数字技术在现代体育场馆和体育比赛中发挥着越来越重要的作用。例如,乒乓球和网球比赛中的鹰眼系统具有记录和回放比赛过程、模拟运动过程和仲裁纠纷结果等功能。飞人刘翔称赞了计算机辅助体育技术在其训练中发挥的关键作用。所以说计算机计算机技术在冰壶运动训练过程中就有了用武之地,使用相机、传感器等设备对图像、温度、力学等数据进行记录,基于计算机视觉方法对图像进行处理对感兴趣的目标进行识别、跟踪,然后综合处理所获得的所有数据,将结果反馈给运动员和教练以此来辅助训练过程,使机器人辅助训练技术达到国际先进水平。因此,机器人冰壶比赛进入了人们的视野。
3.机器人冰壶比赛要求机器人在精确获得赛况如冰壶数量,冰壶坐标,冰壶类别(以橘色和蓝色区分)后,依此判断下一轮发球的角度和速度。所以比赛对机器人算法的精度和速度都提出了很高的要求,同时由于机器人的硬件限制,模型部署对模型的参数大小也提出了很高的要求。
4.现有的冰壶机器人检测算法往往由于训练数据集较小和算法不够先进的原因,并不能提供很好的检测精度,进而使机器人产生误判,模型计算量过大使检测速度也不能满足比赛高实时性的要求,模型参数量过大的问题在硬件部署时也会产生困难。


技术实现要素:

5.根据上述提出对机器人算法的精度、速度和部署的要求等技术问题,而提供一种基于yolov5的智能机器人冰壶检测方法。本发明主要利用数据增强和改进损失函数等方法来提高模型的检测精度,利用tensorrt模型加速包提高模型的参数量,降低模型的检测速度和硬件部署难度。
6.本发明采用的技术手段如下:
7.一种基于yolov5的智能机器人冰壶检测方法,所述检测方法包括如下步骤:
8.获取冰壶比赛现场图像;
9.使用标注软件对所述冰壶比赛现场图像进行标注,得到标注后的图像;
10.使用图像增广方法对标注后的图像进行图像增广,得到增广后的图像;
11.使用自适应初始锚框计算方法对增广后的图像做图像锚框预处理,得到预处理后图像;
12.提取所述预处理后图像的rgb值,将所述rgb值输入至yolov5的骨架网络进行图像特征提取,输出图像特征图;
13.将所述图像特征图输入至yolov5预测网络进行前背景预测,输出不同采样倍数对应的分类预测分数和回归定位系数;
14.将回归定位系数、定位锚点坐标、原图长宽尺寸进行计算得到原始图像的边框回归值;
15.将所述预测分数及边框回归值反向映射至原始图像,并在原始图像上打印,得到检测结果图。
16.进一步地,所述yolov5的骨架网络的图像特征包括:所述yolov5的骨架网络使用步长为2的卷积核和残差模块不断提取深度特征,得到不同采样倍数的下采样特征图,所述yolov5的骨架网络利用不同倍数的下采样特征图构建可感知不同目标尺寸的特征金字塔。
17.进一步地,所述前背景预测包括:所述yolov5的预测网络对不同下采样倍数的特征图进行上采样并和对应下采样特征图拼接,再经过残差模块、卷积操作、预测头部,输出不同采样倍数对应的分类预测分数和回归定位系数。
18.进一步地,所述图像增广方法包括水平/垂直翻转增广方法、颜色变换增广方法和随机裁剪增广方法和马赛克增广方法。
19.进一步地,对所述冰壶比赛现场图像进行标注时,使每张冰壶比赛现场图像的角度一致,每个冰壶相对棋盘的相对位置一致,标注文件的格式一致。
20.进一步地,使用tensorrt模型加速包将yolov5的高细粒度的算子整合为粗粒度的大算子,使用c++语言实现算法的底层推理,满足在硬件部署的模型轻量化及检测速度的要求。
21.较现有技术相比,本发明具有以下优点:
22.本发明针对冰壶机器人比赛的数据特点,设计轻量化的目标检测网络,并克服数据分布单一、拍摄光线较暗等困难,设计了不同的数据增强方式,重新设计损失函数。在满足高识别和定位精度的同时实现了高帧率的检测速度。
23.本发明针对冰壶机器人比赛的硬件特点,使用tensorrt深度学习推理加速包对算法模型实现硬件加速,并使用c++语言替代python实现模型推理。满足在nvidiajetson平台硬件部署的模型轻量化和推理性能要求。
24.基于上述理由本发明可在计算机视觉等领域广泛推广。
附图说明
25.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
26.图1为本发明方法流程图。
27.图2为本发明yolov5检测器结构示意图。
28.图3为本发明冰壶机器人比赛数据集标注示意图。
29.图4为本发明yolov5系列算法性能测试比较图。
30.图5为本发明检测结果图。
具体实施方式
31.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
32.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
33.如图1所示,本发明提供了一种基于yolov5的智能机器人冰壶检测方法,其特征在于,所述检测方法包括如下步骤:
34.获取冰壶比赛现场图像;
35.使用标注软件对所述冰壶比赛现场图像进行标注,得到标注后的图像;对所述冰壶比赛现场图像进行标注时,使每张冰壶比赛现场图像的角度一致,每个冰壶相对棋盘的相对位置一致,标注文件的格式一致。
36.使用图像增广方法对标注后的图像进行图像增广,得到增广后的图像;使用多种图像增广方法,增加图像分布的多样性,可有效提高数据不足的问题。根据冰壶比赛的数据集特点,采用水平/垂直翻转增广方法、颜色变换增广方法和随机裁剪增广方法和马赛克增广方法。
37.由于冰壶及比赛场地的尺寸较为单一,使用自适应初始锚框计算方法对增广后的图像做图像锚框预处理,得到预处理后图像;
38.提取所述预处理后图像的rgb值,将所述rgb值输入至yolov5的骨架网络进行图像特征提取,输出图像特征图;所述yolov5的骨架网络如图2所示,其按如下步骤对原图像提取特征:所述yolov5的骨架网络使用步长为2的卷积核和残差模块不断下采样图片,得到4、8、16、32倍数的下采样特征图,所述yolov5的neck网络利用8、16、32倍数的下采样特征图构建可感知不同目标尺寸的特征金字塔。
39.将所述图像特征图输入至yolov5预测网络进行前背景预测,输出不同采样倍数对应的分类预测分数和回归定位系数;所述前背景预测包括:所述yolov5的预测网络对不同下采样倍数的特征图进行上采样并和对应下采样特征图拼接,再经过残差模块、卷积操作、预测头部,输出不同采样倍数对应的分类预测分数和回归定位系数。
40.将所述预测分数及边框回归值反向映射至原始图像,并在原始图像上打印,得到
检测结果图,如图5所示,以供冰壶参赛队员们判断该回合机器人行为。
41.使用tensorrt模型加速包将训练好的算法模型高细粒度的算子整合为粗粒度的大算子,加快模型训练推理速度,轻量化模型参数。使用c++语言实现算法的底层推理,满足在硬件部署的模型轻量化及检测速度的要求。
42.一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时,执行上述任一项所述的基于yolov5的智能机器人冰壶检测方法。
43.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序运行执行上述任一项权利要求所述的基于yolov5的智能机器人冰壶检测方法。
44.数据采集与标注
45.优质的数据往往能为算法提供方向,甚至直接驱动需求,因此冰壶运动数据集的构建是进行各种检测测量方法的基础,对于实现冰壶运动的智能辅助训练有着重要的意义。但目前学术界并没有公开且权威的冰壶相关数据集,于是制作了上百张实物数据,见图3。尽可能接近比赛场景,同时手动进行标注。
46.考虑到冰壶数据集并没有统一的标注准则,本发明制定了一套统一的标准,以此来保证数据标签的规整,并根据该标准完成了所有样本的标注工作。使用labelme软件对图片数据进行了标注。标签格式默认为pascalvoc格式(imagenet官方使用),该软件同时支持yolo网络的标注格式要求。
47.数据预处理
48.在计算机视觉领域,数据增强利用卷积网络具有普适性和鲁棒性的特点,即使裁剪部分区域或是引入部分噪声,模型仍然不受影响,可以鲁棒地识别图片。
49.该技术在实践过程中能够有效克服数据不足的问题,在深度学习的各个领域中都被广泛应用。深度神经网络在许多任务中能够表现良好,离不开大量非重复数据的支持,这样才能避免过度拟合。目前虽然在目标检测、图像分类领域有权威的大型公共数据集可使用,从一定程度上解决了数据欠缺的问题,但对于某些特定场景来说,仍然无法有效获得大量样本,例如医学图像分析、本课题涉及的运动场景等等。在计算机视觉领域,数据增强利用卷积网络具有普适性和鲁棒性的特点,即使裁剪部分区域或是引入部分噪声,模型仍然不受影响,可以鲁棒地识别图片。经分析后,最终采用以下几种变换方式扩充样本,包括水平/垂直翻转、颜色变换和随机裁剪等。
50.冰壶检测算法
51.根据冰壶运动特点可知,冰壶检测需要在连续空间内实时精确的识别多个目标并给出坐标信息,因此该任务对算法的实时性和精确性都有较高的要求。但是,目标检测领域两大类方法最显著的不同体现在效率和精确度的取舍上。two-stage检测算法主张充分利用feature map的信息从而得到更准确的结果,因此two-stage各种算法的网络结构都十分复杂,导致效率较低,其设计思想是以效率换取精确度;one-stage检测算法则恰好相反,虽然在公共数据集上的测试性能和效果并不如two-stage,但高实时性以及简单的网络结构使得one-stage算法往往有着更好的适用性。近些年由于硬件设备能力的快速提升,大型深度网络越来越多地被开发出来,在一些大型任务上的表现也出乎预料,特别是智能显卡的发展越来越成熟,其运算任务能够被很好的承担起来。但是当算法移植到cpu或者计算能力
有限的嵌入式设备上时效率就开始回落,甚至相差20-50倍之多,根本无法达到实时的要求。
52.不同于多类别检测任务或存在相互遮挡的场景,本次比赛涉及的冰壶运动场景保持在同一水平冰面且类别单一,因此考虑可以适当简化网络结构复杂性,在保证检测精度的同时,提高前向速度、减少运算量。简化后的网络体积更小、运算量要求更低,更易于适配计算能力有限的嵌入式设备。在系统中,考虑使用多嵌入式开发板,并行计算冰壶的识别和位置测量任务,体积较小的模型在设备中可以满足高实时性要求。因此,最终选择yolov5网络同时不断进行优化。
53.yolo系列算法基于整个图片进行预测,一次性给出所有的检测结果。经过不断更新迭代,现已推出了yolov5,按照模型大小递增可分为s、m、l、x,各模型仅在网络的深度和宽度上有所不同,均由输入端、backbone、neck、head四部分构成。输入端使用mosaic数据增强、自适应初始锚框计算、图片缩放等对图像进行预处理;backbone采用了focus下采样、改进csp结构、spp池化金字塔结构提取图片的特征信息;neck主要采用fpn+pan的特征金字塔结构,实现了不同尺寸目标特征信息的传递,解决了多尺度问题;head采用三种损失函数分别计算分类、定位和置信度损失,并通过nms提高网络预测的准确度。
54.其中yolov5s是其中网络深度最小、特征图宽度最小的网络,其在teslap100上检测速度达到140fps,十分优秀。其他的三种都在此基础上不断加深、加宽,且深度与宽度都可用代码控制,十分方便,从降低部署成本以及使网络更加轻量级的角度,本次选择了网络深度和宽度均最小的yolov5s进行训练。yolov5算法系列性能测试比较如图4所示。
55.本算法在训练过程中初始学习率为0.01、动量参数为0.92,最终学习率为0.2,batchsize为64,并采用epoch为20、动量参数为0.8的warm-up方法预热学习率。在warm-up阶段,采用一维线性插值更新学习率,预热结束后采用余弦退火对学习率进行更新。
56.测试过程中使用map@0.5、map@0.5:0.95、模型大小作为算法模型的衡量标准。其中,ma p@0.5代表在iou阈值为0.5时的平均ap,ma p@0.5:0.95代表在iou阈值为从0.5到0.95,步长为0.05时各个map的平均值。map@0.5主要用于体现模型的识别能力,map@0.5:0.95由于要求的iou阈值更高,主要用于体现定位效果以及边界回归能力。
57.由于需要对预测框与真值框进行对比计算损失。传统的算法采用回归损失回归预测边框,但回归损失只关注对应“距离”,而真正的任务需求是得到iou比较大的预测框,所以,直接使用iou作为损失函数更接近理想的优化目标。giou loss是以iou loss为基础增加了一个惩罚项,计算公式如下
[0058][0059]
其中惩罚项c为包围预测框b和真值框b
gt
的最小区域的大小,当bbox距离变大时,惩罚项越大。giou的特点是对目标scale不敏感,且能关注到两个检测框的非重合区域。
[0060]
diouloss相比giou loss考虑内容更多,其将目标真值框与anchor之间的距离,重叠率以及尺度代入到loss计算,使得目标框回归变得更稳定。计算公式如下:
[0061][0062]
其中b,b
gt
代表预测框和真实框的中心点,c代表能同时包含预测框和真实框的最
小闭包区域的对角线距离。diou loss可以直接最小化两个目标框的距离,因此相比giouloss收敛更快。
[0063]
在diou loss的基础上进一步考虑bbox回归的长宽比,提出了ciou loss,计算公式如下:
[0064][0065]
其中v用来度量长宽比的相似性,定义为
[0066][0067]
tensorrt模型训练加速及c++语言推理加速
[0068]
tensorrt将训练好的模型进行优化。第一其通过层间融合或张量融合的方式,使模型的层数大大减少,对硬件的gpu核心的占用随之减小。
[0069]
大部分神经网络在训练过程的参数都使用float32位精度保存。但在模型训练完成后,部署推理的过程中并不需要如此高的精度,如降为fp16或int8。更低的数据精度将显著降低模型的计算量和内存占用,这对模型在冰壶机器人上的部署尤为有利。
[0070]
主流的神经网络往往使用python语言作为模型在训练好后的推理框架语言。
[0071]
但python脚本语言的特点虽易于书写,却不利于直接在硬件部署,控制底层硬件的计算。其与系统底层的交互也在一定程度上减弱了推理速度。本发明重新设计了由c++语言编写的推理代码,进一步为模型在机器人硬件平台推理加速。
[0072]
在本技术所提供的实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0073]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0074]
另外,在本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0075]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccess memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0076]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1