1.本发明涉及人工智能领域,更具体地,涉及一种基于改进yolov5的手势识别模型训练方法及手势识别方法。
背景技术:2.随着人工智能的发展,计算机视觉技术已逐步进入到大家的日常生活中,丰富着人们的精神文化生活,给人们带来愉悦的体验。而手势识别的人工智能交互方式发展,允许用户使用手势来控制或者与设备进行交互,让计算机理解人类的行为,从而推动人机交互的发展。
3.目前,已经实现的手势识别技术有基于模板匹配的方式、基于隐马尔科夫模型的等方式,但是这些算法存在建模流程复杂、模型的泛化能力较差,较难有效的识别出手势的类型状态。同时,也有基于手部关键点的方式来进行手势识别,此种方法需要手部近距离靠近摄像头,这样才能有效的定位到手部的关键点,从而根据手部21个关键点的坐标位置来判断手势的状态,但是,在监控场景下,手部距离摄像头较远,手部的目标较小,各个关节的会存在模糊不清的情况,这样,采用手部关键点的方式来进行手势识别就会存在关键点定位不准的情况,无法有效的进行手势识别。
技术实现要素:4.本发明旨在克服上述现有技术的至少一种缺陷(不足),提供一种基于改进yolov5的手势识别模型训练方法及手势识别方法,用于解决现有手势识别技术建模流程复杂、泛化能力差,以及手部距离摄像头较远,手部目标较小,导致的手部关键点定位不准,从而无法有效进行手势识别的问题。
5.本发明采取的技术方案是,一种基于改进yolov5的手势识别模型训练方法,包括以下步骤:
6.构建样本数据集;
7.引入原始yolov5模型,并对原始yolov5模型进行改进,构建基于改进yolov5的手势识别模型;
8.将所述样本数据集输入到所述手势识别模型中进行训练,得到训练完成后的手势识别模型;
9.其中,所述原始yolov5模型包括主干网络、颈部网络以及检测网络,所述主干网络、颈部网络以及检测网络依次连接;
10.对所述原始yolov5模型进行改进,具体包括:在所述颈部网络中增加若干特征增强模块,所述特征增强模块用于在接收到输入特征后,通过以不同扩张率扩张同一卷积核为所述输入特征提供不同的感受野。
11.进一步的,所述特征增强模块包括若干平行分支以及平均池化层,各所述平行分
支分别用于对同一卷积核的输入特征进行不同扩张率的扩张,所述平均池化层用于融合各平行分支进行扩张后得到的特征。
12.作为改进,本发明在原始yolov5模型的颈部网络中增加特征提取模块,通过对输入特征进行不同程度的扩张卷积,为输入特征提供不同大小的感受野,有助于更好的融合yolov5模型的颈部网络所提取到的特征,进而提高模型的目标检测精度,实现有效的手势识别。具体的,本发明中增加的特征提取模块,由多个扩张率不同的平行分支以及一个平均池化层组成,同一卷积核的输入特征首先通过各平行分支实现不同程度的扩张卷积,为输入特征提供不同大小的感受野,再继续通过平均池化层融合各平行分支进行扩张卷积后提取到的特征,从而提高模型目标检测精度,实现有效的手势识别。
13.进一步的,对所述原始yolov5模型进行改进,还包括:在所述原始yolov5模型中增加轻量级特征提取网络,以及增加若干个特征融合模块;
14.所述主干网络包括若干输出,所述轻量级特征提取网络包括若干输出,所述轻量级特征提取网络的各个输出以及主干网络的各个输出分别输入至所述特征融合模块进行特征融合,所述特征融合模块将特征融合后的特征输出至所述颈部网络;
15.所述轻量级特征提取网络的输出、主干网络的输出以及特征融合模块为一对一对一的关系。
16.为了更好的实现手势识别效果,本发明还在原始yolov5模型中增加了轻量级特征提取网络以及特征融合模块,输入的样本数据集首先分别通过主干网络以及轻量级特征提取网络进行特征提取,再通过特征融合模块,将轻量级特征提取网络提取的特征和主干网络提取的特征进行对应的特征融合,使得改进后的模型能够从多个维度进行不同层次的特征提取,以及将多个维度提取的多个层次的特征进行对应融合,从而丰富模型提取的特征,有助于模型提取更加有效更加全面的特征。
17.进一步的,对所述原始yolov5模型进行改进,还包括:在所述检测网络中增加若干检测头,以使所述检测头数量与所述特征融合模块数量相匹配。
18.在原始yolov5模型中,由于其主干网络和颈部网络所提取的特征数量较少,故对于用来进行最终检测目标的检测头的设置也相对较少,但是在监控场景下,手部距离摄像头较远,手部目标较小,原始yolov5模型无法很好全面的对检测目标进行特征提取,故并不能很好的识别较小的手势目标。而本发明中,对于yolov5模型的改进,还包括在检测网络中增加了若干检测头,使得检测头的数量与特征融合模块数量相匹配,同时又因为本发明中特征融合模块与轻量级特征提取网络和主干网络提取的特征为一对一对一的关系,故最终检测头的数量与轻量级特征提取网络和主干网络提取的特征的数量也是相互匹配的,即本发明中增加后的检测头能够完全匹配轻量级特征提取网络和主干网络提取的不同层次的特征,实现对于更加全面的不同层次的特征的检测,从而提升模型对于较小的手势目标的识别检测效果。
19.进一步的,所述轻量级特征提取网络包括若干卷积模块以及池化模块,在所述卷积模块与池化模块之间使用crelu作为激活函数。
20.本发明中,在轻量级特征提取网络的卷积模块与池化模块之间使用crelu作为激活函数,可以有效减少卷积模块的输出通道数,使得所需的卷积核数量也相对减少,从而在保证精度的同时减少网络的计算量,显著提升网络计算速率,使得轻量级特征提取网络真
正达到轻量化要求。
21.进一步的,构建样本数据集,具体包括:
22.采集手势识别样本数据,并对所述手势识别样本数据进行手势类型标注,得到原始样本数据集;
23.对所述原始样本数据集进行预处理,构建样本数据集;
24.所述预处理包括平移、左右镜像以及变化色域;
25.所述手势类型包括点赞手势以及非点赞手势。
26.本发明的手势识别模型主要针对点赞以及非点赞两种手势进行识别,首先,因为本发明的具体应用场景主要为,利用手势表达对节目的喜好程度,因此只需要使用点赞以及非点赞两种手势即可完成人机互动,达到利用手势表达对节目喜好程度的效果;其次,若采用多种手势进行表达,例如使用手指变化代表不同手势,在手部距离摄像头较近、手部较为清晰的情况下,才有可能被摄像头拍摄到明显的手势变化,而在远距离如监控情况下,由于手部图像本身占比就较小,当手指变化代表不同手势时,摄像头拍摄的手部图像变化不够明显,因此无法识别不同手势,而仅使用点赞以及非点赞两种手势,由于手部姿势变化区别明显,摄像头还是能够识别拍摄到明显的手势变化,从而准确进行手势识别。其中,点赞手势的具体定义为四指紧握手掌、拇指伸出、且拇指伸出角度在0-180
°
的手势。此外,本发明中,在构建样本数据集时,会对原始样本数据集进行平移、左右镜像以及变化色域等预处理操作,这一操作可以有效扩充样本数据,从而丰富训练样本数据集。
27.另一方面,本发明采取的另一种技术方案是,一种基于改进yolov5的手势识别方法,包括以下步骤:
28.采集待识别手势数据;
29.将所述待识别手势数据输入到由上述训练方法训练完成后的手势识别模型,输出手势识别结果。
30.进一步的,将所述待识别手势数据输入到由上述训练方法训练完成后的手势识别模型,输出手势识别结果,具体包括:
31.将所述待识别手势数据输入到由上述训练方法训练完成后的手势识别模型,得到初步手势识别结果;
32.对所述初步手势识别结果进行非极大值抑制后处理,得到最终手势识别结果,输出所述最终手势识别结果。
33.在具体识别过程中,手势识别模型会先根据多个检测头对手势数据生成多个检测框,以及各个检测框对应的置信度,从而进行具体手势识别。而为了提升模型识别效果,去除识别干扰,获得更精准的识别结果,本发明在获取初步手势识别结果后,还会进行非极大值抑制的后处理操作,主要是用于去掉重复的检测框,一个待识别手势数据只保留一个置信度最大的检测框,进而获得最准确的手势识别结果。
34.另一方面,本发明采取的另一种技术方案是,一种基于改进yolov5的手势识别模型训练系统,包括:
35.样本数据集构建模块,用于构建样本数据集;
36.模型构建模块,用于引入原始yolov5模型,并对所述原始yolov5模型进行改进,构建基于改进yolov5的手势识别模型;
37.模型训练模块,用于将所述样本数据集输入到所述手势识别模型中进行训练,得到训练完成后的手势识别模型。
38.另一方面,本发明采取的另一种技术方案是,一种基于改进yolov5的手势识别系统,包括:
39.待识别手势数据采集模块,用于采集待识别手势数据;
40.识别模块,用于将所述待识别手势数据输入到由上述训练方法训练完成后的手势识别模型,输出手势识别结果。
41.与现有技术相比,本发明的有益效果为:
42.1、本发明中,在原始yolov5模型的颈部网络中增加特征提取模块,通过对输入特征进行不同程度的扩张卷积,为输入特征提供不同大小的感受野,有助于更好的融合yolov5模型的颈部网络所提取到的特征,进而提高模型的目标检测精度,实现有效的手势识别;
43.2、本发明中,还在原始yolov5模型中增加了轻量级特征提取网络以及特征融合模块,使得改进后的模型能够从多个维度进行不同层次的特征提取,以及将多个维度提取的多个层次的特征进行对应融合,从而丰富模型提取的特征,有助于模型提取更加有效更加全面的特征;
44.3、本发明中,还在原始yolov5模型的检测网络中增加了若干检测头,使得检测头的数量与特征融合模块数量相匹配,实现对于更加全面的不同层次的特征的检测,从而提升模型对于较小的手势目标的识别检测效果;
45.4、本发明中,在轻量级特征提取网络的卷积模块与池化模块之间使用crelu作为激活函数,在保证精度的同时减少网络的计算量,显著提升网络计算速率,使得轻量级特征提取网络真正达到轻量化要求。
附图说明
46.图1为本发明实施例1中训练方法流程图。
47.图2为本发明实施例1中训练方法步骤s1的具体流程图。
48.图3为本发明实施例1中手势识别模型结构图。
49.图4为本发明实施例1中手势识别模型的c3模块结构图。
50.图5为本发明实施例1中手势识别模型的bottleneck模块结构图。
51.图6为本发明实施例1中手势识别模型的sppf模块结构图。
52.图7为本发明实施例1中手势识别模型的特征增强模块结构图。
53.图8为本发明实施例1中手势识别模型的特征融合模块结构图。
54.图9为本发明实施例1中手势识别模型的crelu结构图。
55.图10为本发明实施例2中识别方法流程图。
56.图11为本发明实施例2中识别方法步骤s200的具体流程图。
57.图12为本发明实施例3中手势识别模型训练系统结构图。
58.图13为本发明实施例4中手势识别系统结构图。
59.附图标记说明:样本数据集构建模块100,模型构建模块200,模型训练模块300,待识别手势数据采集模块400,识别模块500。
具体实施方式
60.本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
61.实施例1
62.如图1所示,本实施例提供一种基于改进yolov5的手势识别模型训练方法,包括以下步骤:
63.s1、构建样本数据集;
64.s2、引入原始yolov5模型,并对原始yolov5模型进行改进,构建基于改进yolov5的手势识别模型;
65.s3、将样本数据集输入到手势识别模型中进行训练,得到训练完成后的手势识别模型。
66.下面对上述各步骤进行详细说明。
67.如图2所示,步骤s1具体包括:
68.s10、采集手势识别样本数据,并对手势识别样本数据进行手势类型标注,得到原始样本数据集;
69.s20、对原始样本数据集进行预处理,构建样本数据集;
70.预处理包括平移、左右镜像以及变化色域;
71.手势类型包括点赞手势以及非点赞手势。
72.具体的,由于点赞手势识别样本数据的稀缺,导致互联网上暂时还没有符合项目要求的公开点赞手势识别样本数据集,只有部分多边形标注的手部数据,为了充分利用这部分数据,本实施例中,将标注的多边形框转换为矩形框,便于后续在目标检测中使用,同时,为了采集点赞手势识别样本数据,本实施例组织人员在多个会议室模拟现场观看节目时候的点赞动作行为,进行摄像头的视频数据采集,为了丰富数据样本,采用手机在多个角度移动拍摄。并对于采集到的视频数据每隔5帧进行抽帧保存图像,在处理之前,还可以先对图像进行减均值、除以方差的等操作,最后采用labelimg软件进行手势类型的标注。手势类型分为点赞和非点赞两种,点赞手势的定义具体为四指紧握手掌、拇指伸出、且拇指伸出角度在0-180
°
的手势。
73.具体的,步骤s2中,基于改进yolov5的手势识别模型结构如图3所示。
74.其中,原始yolov5模型包括主干网络(图3中的backbone模块)、颈部网络(图3中的neck模块)以及检测网络(图3中的head模块),主干网络、颈部网络以及检测网络依次连接;具体的,主干网络包括多个卷积模块、c3模块和sppf模块连接,以及颈部结构中也包括有多个c3模块,其中,c3模块的具体结构如图4所示,c3中包括多个bottleneck模块,bottleneck模块具体结构如图5所示,sppf模块的具体结构如图6所示。
75.步骤s2中,对原始yolov5模型进行改进,具体包括:在颈部网络中增加特征增强模块(图3中的fa模块),特征增强模块用于在接收到输入特征后,通过以不同扩张率扩张同一卷积核为所述输入特征提供不同的感受野,具体的,本实施例中,在颈部网络中的upsample上采样模块和与之连接的卷积模块之间增加对应数量的特征增强模块。
76.进一步的,本实施例中,特征增强模块具体结构如图7所示,包括一个卷积核为3
×
3的卷积模块、四个扩张率分别为1、3、5、7的平行分支以及一个平均池化层(图4中的mean模块),各平行分支分别用于对同一卷积核的输入特征进行不同扩张率的扩张,平均池化层用于融合各平行分支进行扩张后得到的特征。各平行分支分别包括一个扩张模块和一个卷积核为1
×
1的卷积模块,各扩张模块的扩张率分别为1、3、5、7,具体的,输入特征首先通过一个卷积核为3
×
3的卷积模块进行卷积操作,接着分别通过扩张率为1、3、5、7的四个平行分支的扩张模块进行扩张,再分别通过一个卷积核为1
×
1的卷积模块进行卷积操作,最后通过一个平均池化层融合各平行分支进行扩张后得到的特征,从而为输入特征提供不同大小的感受野,提高模型目标检测精度,实现有效的手势识别。
77.进一步的,步骤s2中,对原始yolov5模型进行改进,还包括:在原始yolov5模型中增加轻量级特征提取网络(图3中minornetwork),以及在主干网络和特征提取网络之间增加特征融合模块(图3中ff模块);
78.具体的,本实施例中,主干网络包括四个输出,轻量级特征提取网络包括四个输出,轻量级特征提取网络的各个输出以及主干网络的各个输出分别输入至特征融合模块进行特征融合,特征融合模块将特征融合后的特征输出至颈部网络;
79.轻量级特征提取网络的输出、主干网络的输出以及特征融合模块为一对一对一的关系。
80.本实施例中,特征融合模块具体结构如图8所示,具体的,主干网络的输出和轻量级特征提取网络的输出(图5中input1和input2)首先通过一个张量积模块进行张量积计算,再依次通过卷积核分别为3
×
3和1
×
1的两个卷积模块进行卷积操作,得到特征融合后的特征(图5中output)。
81.进一步的,步骤s2中,对原始yolov5模型进行改进,还包括:在检测网络中增加检测头,以使检测头数量与特征融合模块数量相匹配。
82.具体的,本实施例中,主干网络的输出和轻量级特征提取网络的输出数量均为四个,且轻量级特征提取网络的输出、主干网络的输出以及特征融合模块为一对一对一的关系,因此特征融合模块数量也为四个,故检测头数量也为四个,较原始yolov5模型而言,在浅层特征层增加了一个检测头,用于检测较小的手势目标。
83.具体的,本实施例中,轻量级特征提取网络包括依次连接的两组卷积模块和池化模块的组合以及三个单独的卷积核为3
×
3的卷积模块,还包括四个卷积核为1
×
1的卷积模块,其中,输入特征通过两组卷积模块和池化模块的组合后,再通过一个卷积核为1
×
1的卷积模块,得到轻量级特征提取网络的第一个输出,输入特征通过两组卷积模块和池化模块的组合后,接着通过第一个卷积核为3
×
3的卷积模块,再通过一个卷积核为1
×
1的卷积模块,得到轻量级特征提取网络的第二个输出,输入特征通过两组卷积模块和池化模块的组合后,接着依次通过两个卷积核为3
×
3的卷积模块,再通过一个卷积核为1
×
1的卷积模块,得到轻量级特征提取网络的第三个输出,输入特征通过两组卷积模块和池化模块的组合后,接着依次通过三个卷积核为3
×
3的卷积模块,再通过一个卷积核为1
×
1的卷积模块,得到轻量级特征提取网络的第四个输出。其中,在两组卷积模块和池化模块的组合中,卷积模块与池化模块之间使用crelu作为激活函数。具体的,crelu具体结构如图9所示。
84.实施例2
85.如图10所示,本实施例提供一种基于改进yolov5的手势识别方法,包括以下步骤:
86.s100、采集待识别手势数据;
87.s200、将待识别手势数据输入到由实施例1所述方法训练完成后的手势识别模型,输出手势识别结果。
88.进一步的,如图11所示,步骤s200,具体包括:
89.s210、将待识别手势数据输入到由实施例1所述方法训练完成后的手势识别模型,得到初步手势识别结果;
90.s220、对初步手势识别结果进行非极大值抑制后处理,得到最终手势识别结果,输出最终手势识别结果。
91.具体的,本实施例中,在得到最终手势识别结果后,还可以进一步的进行具体点赞手势的数量统计,从而不仅实现点赞手势的识别应用,还可以实现点赞手势数量统计应用。
92.实施例3
93.如图12所示,本实施例提供一种基于改进yolov5的手势识别模型训练系统,包括:
94.样本数据集构建模块100,用于构建样本数据集;
95.模型构建模块200,用于引入原始yolov5模型,并对原始yolov5模型进行改进,构建基于改进yolov5的手势识别模型;
96.模型训练模块300,用于将样本数据集输入到手势识别模型中进行训练,得到训练完成后的手势识别模型。
97.实施例4
98.如图13所示,本实施例提供一种基于改进yolov5的手势识别系统,包括:
99.待识别手势数据采集模块400,用于采集待识别手势数据;
100.识别模块500,用于将待识别手势数据输入到由实施例1所述方法训练完成后的手势识别模型,输出手势识别结果。
101.显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。