一种羽毛球识别方法、系统、介质及设备与流程

文档序号:14120953阅读:353来源:国知局
一种羽毛球识别方法、系统、介质及设备与流程

本发明涉及计算机软件领域,特别涉及一种羽毛球识别方法、系统、介质及设备。



背景技术:

随着计算机技术的快速发展,图像处理技术得到了广泛的应用,如工业上的产品缺陷检测、机场的安检以及视频监控等等。图像处理一般可以分为图像处理、图像分析以及图像理解。对于图像的分析主要是对图像中的目标区域进行检测,以获取它们的客观信息,从而建立对图像的描述。在现有技术当中,对羽毛球图像的识别,一般是通过构建图像处理算子来对羽毛球图像进行检测与识别,该方法不仅需要工作人员对图像模型有较为深刻的理解,而且还需要较多的图像处理经验才能够将羽毛球较好的识别出来。尤其是对于空中飞动的羽毛球,图片中羽毛球的特征较为模糊,这无疑更增加了对羽毛球图像处理的难度,所以,通过怎样更好的方法来对羽毛球的图像进行识别,是本领域技术人员亟待解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种羽毛球识别方法、系统、介质及设备,以达到降低识别羽毛球图片时构建图像算子的复杂度,以及降低人工成本的目的。其具体方案如下:

一种羽毛球识别方法,包括:

利用预先训练好的羽毛球模型对待处理的图片进行识别,获取相应的羽毛球或干扰物的分类;其中,所述羽毛球模型的创建过程为:

获取羽毛球的训练样本;其中,所述训练样本包括羽毛球的运动图片和干扰物图片以及相应的分类信息;

将所述训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到所述羽毛球模型。

优选的,所述获取羽毛球的训练样本的过程,包括:

获取所述运动图片与所述干扰物图片;

将所述运动图片与所述干扰物图片进行裁剪,得到目标运动图片与目标干扰物图片;

利用python对所述目标运动图片与所述目标干扰物图片进行处理,得到所述训练样本。

优选的,所述将运动图片与干扰物图片进行裁剪的过程,包括:

将所述运动图片与所述干扰物图片裁剪成大小为64*64pixel的图片。

优选的,所述将所述训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到所述羽毛球模型的过程,包括:

利用所述tensorflow创建所述卷积神经网络,将所述训练样本输入至所述卷积神经网络的第一卷积层,并利用3*3的卷积核对所述训练样本进行第一卷积操作,得到第一训练样本;

将所述第一训练样本输入至第一池化层,并利用3*3的步长对所述第一训练样本进行第一池化操作,得到第二训练样本;

将所述第二训练样本输入至第二卷积层,并利用3*3的卷积核对所述第二训练样本进行第二卷积操作,得到第三训练样本;

将所述第三训练样本输入至第二池化层,并利用3*3的步长对所述第三训练样本进行第二池化操作,得到第四训练样本;

将所述第四训练样本输入至第一全连接层,并对所述第四训练样本进行预分类,得到第五训练样本;

将所述第五训练样本输入至第二全连接层进行训练,得到所述羽毛球模型。

优选的,所述将所述训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到所述羽毛球模型的过程,包括:

利用softmax函数对所述羽毛球模型中的连接权值进行标准化,得到所述羽毛球模型。

优选的,所述将所述训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到所述羽毛球模型的过程,包括:

利用relu函数对所述羽毛球模型中的神经元进行激活,得到所述羽毛球模型。

优选的,所述将所述训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到所述羽毛球模型的过程之后,还包括:

利用交叉熵对所述羽毛球模型进行预判,得到误差估算值;

利用tensorflow的优化器adamoptimizer优化所述误差估算值,得到优化羽毛球识别模型。

相应的,本发明还公开了一种羽毛球识别系统,包括:

羽毛球识别模块,用于利用预先训练好的羽毛球模型对待处理的图片进行识别,获取相应的羽毛球或干扰物的分类;其中,所述羽毛球模型为分类器创建模块创建所得,所述分类器创建模块包括:

样本获取子模块,用于获取羽毛球的训练样本;其中,所述训练样本包括羽毛球运动图片和干扰物图片以及相应的分类信息;

模型训练子模块,用于将所述训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到所述羽毛球模型。

相应的,本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述公开的羽毛球识别方法的步骤。

相应的,本发明还公开了一种羽毛球识别设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如前述公开的羽毛球识别方法的步骤。

在本发明中,一种羽毛球识别方法,包括:利用预先训练好的羽毛球模型对待处理的图片进行识别,获取相应的羽毛球或干扰物的分类;其中,羽毛球模型的创建过程为:获取羽毛球的训练样本;其中,训练样本包括羽毛球的运动图片和干扰物图片以及相应的分类信息;将训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到羽毛球模型。

可见,在本发明中,在创建羽毛球分类器模型时,首先是获取训练羽毛球模型的训练样本,然后再利用tensorflow来创建深度学习网络模型来对羽毛球的图片进行分类识别,所以相对于传统的图像识别方法,可以有效降低在对羽毛球图像处理过程中构建图像处理算子的复杂过程。而且,通过在tensorflow中搭建基于深度学习网络算法的羽毛球模型,可以通过不断调整模型当中的参数,使得羽毛球模型的识别精度更高。而且,本发明中的方法是在tensorflow的平台上去创建羽毛球的识别模型,所以可以极大的提高本模型应用的可迁移性,同时,也可以有效降低在对图像处理的过程中,编写各种图像处理算子的人工成本。相应的,本发明所公开的一种羽毛球识别系统、介质及设备同样具有上述有益效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例一公开的一种羽毛球识别方法流程图;

图2为本发明实施例二公开的一种羽毛球识别方法流程图;

图3为本发明实施例二中卷积神经网络模型中神经元的结构示意图;

图4为本发明实施例二中sigmoid函数的示意图;

图5为本发明实施例二中relu函数的示意图;

图6为本发明公开的一种羽毛球识别系统结构图;

图7为本发明公开的一种羽毛球识别设备结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例一公开了一种羽毛球识别方法,如图1所示,该方法包括:

步骤s11:获取羽毛球的训练样本;其中,训练样本包括羽毛球的运动图片和干扰物图片以及相应的分类信息。

在本实施例中,创建一个羽毛球的识别模型,首先是获取羽毛球的训练样本,可以理解的是,获取羽毛球训练样本的方法多种多样,可以按照实际情况来对羽毛球的训练样本进行筛选,也可以对训练样本的数量进行相应的调整,具体应以能够达到实际情况为目的,此处不作限定。

步骤s12:将训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到羽毛球模型。

需要说明的是,tensorflow是谷歌研发的第二代人工智能学习系统,tensor是指一个n维的向量组,flow是指数据流图的计算,tensorflow是n维的向量组从数据流图的一端到另一端的计算过程,它不仅支持多种基于深度神经网络结构的算法,而且可以将复杂的数据结构传输至人工智能神经网络中进行分析和处理,从而简化了大量复杂人工编写算法的复杂工作。在本实施例中,是利用tensorflow来创建一个深度学习网络模型来识别羽毛球的图片。

可以理解的是,在利用传统的方法来对羽毛球图像进行识别时,一般都是通过构建图像处理算子来识别羽毛球的图像,在此过程中不仅需要图像处理人员对图像模型有着较为深刻的理解,而且需要较多的图像处理经验。况且,空中飞动的羽毛球,其图片中的特征较为模糊,人为定义的图像处理算子在排除羽毛球场中的类似羽毛球噪点时,效果并不是很理想,所以在对羽毛球的图片进行识别时,其运动中的噪声对图片的识别有着极大的干扰,这无疑加大了对羽毛球图像处理时的难度。

而在本发明中利用tensorflow来创建分类模型时,可以通过不断调节卷积神经网络模型中的参数,来对羽毛球模型进行优化,从而可以获得识别效果更好的分类器模型。需要说明的是,通过本方法创建的羽毛球模型,能够根据环境的变化在原有网络的基础之上快速训练出新的羽毛球模型,同时也可以避免因为不同环境变化而导致的识别误差,而且也避免了需要重新设计识别模型或者是调整算法的麻烦,进而提高了羽毛球模型的可迁移性,同时也极大地降低了人工成本。

在本实施例中,步骤s11和步骤s12均为创建羽毛球分类器模型的过程,需要说明的是,在实际应用当中,可以是按照步骤s11和步骤s12来创建一个羽毛球分类器模型,也可以是预先获取一个已经训练好的羽毛球分类器模型,来直接对待判别的羽毛球图片进行分类识别,一切以达到实际应用为目的,此处不作限定。

在本发明中,一种羽毛球识别方法,包括:利用预先训练好的羽毛球模型对待处理的图片进行识别,获取相应的羽毛球或干扰物的分类;其中,羽毛球模型的创建过程为:获取羽毛球的训练样本;其中,训练样本包括羽毛球的运动图片和干扰物图片以及相应的分类信息;将训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到羽毛球模型。

可见,在本发明中,在创建羽毛球分类器模型时,首先是获取训练羽毛球模型的训练样本,然后再利用tensorflow来创建深度学习网络模型来对羽毛球的图片进行分类识别,所以相对于传统的图像识别方法,可以有效降低在对羽毛球图像处理过程中构建图像处理算子的复杂过程。而且,通过在tensorflow中搭建基于深度学习网络算法的羽毛球模型,可以通过不断调整模型当中的参数,使得羽毛球模型的识别精度更高。而且,本发明中的方法是在tensorflow的平台上去创建羽毛球的识别模型,所以可以极大的提高本模型应用的可迁移性,同时,也可以有效降低在对图像处理的过程中,编写各种图像处理算子的人工成本。

本发明实施例二公开了一种具体的羽毛球识别方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。如图2所示,具体的:

步骤s21:获取运动图片与干扰物图片。

步骤s22:将运动图片与干扰物图片进行裁剪,得到目标运动图片与目标干扰物图片。

在本实施例中,步骤s21和步骤s22是对实施例一中获取羽毛球的训练样本的具体限定,相关内容可参见实施例一公开的内容,在此不再赘述。可以理解的是,在创建羽毛球模型时,为了减少系统的计算量以及提高系统的运行效率,在本实施例中,是对羽毛球的运动图片以及干扰物图片进行裁剪,进而来获取尺寸较小的图片,从而来提高系统的运行速度。当然,对图片进行裁剪的方式多种多样,包括但不限于利用photoshop来对图片进行裁剪。

进一步的,将运动图片与干扰物图片裁剪成大小为64*64pixel的图片。

需要说明的是,通过大量的实验数据显示,将羽毛球的运动图片与干扰物图片裁剪成为64*64pixel的图片,不仅可以更好的减少系统的运行速度,而且还可以获取到图片当中大部分的图像特征。所以在本实施例中,是将羽毛球的运动图片以及干扰物图片裁剪成为64*64pixel大小的图片。当然,此处给出的只是一个较优的图片尺寸,在实施操作当中,图片大小的格式应以能够达到实际操作为目的,此处不作限定。

步骤s23:利用python对目标运动图片与目标干扰物图片进行处理,得到训练样本。

在本实施例中,是利用编写的python脚本语言对裁剪以后的运动图片以及干扰物图片进行批量处理,从而来形成一个含有羽毛球图像与干扰物图像的训练样本库。具体的,在本实施例中,是将羽毛球图像命名为ball.*.jpg,最大像素为64*64的羽毛球样本库,即正样本库。同理,拍摄无羽毛球的图片或者是干扰物的图片,作相同的处理,将其命名为bg.*.jpg,最大像素为64*64的环境样本库,也即负样本库,并且在负样本库中加入可能成为羽毛球检测中的干扰物,通过此方法来提高羽毛球模型的鲁棒性。可以理解的是,加入负样本库中的干扰物可以是人的照片、衣服,也可以是其他的干扰物图片,此处不作限定。

需要说明的是,在本实施例中,为了得到更好的羽毛球识别模型,是对羽毛球样本和干扰物样本混合为一个训练样本序列,并随机将排序的训练样本序列打乱,之后再对数据序列进行标准化处理,并将小于64*64的图像扩展补充黑色边界,使其成为标准化的64*64的图像,并设置图像数据的色彩通道为3,可以理解的是,通过乱序的混合序列,使得训练得到的羽毛球模型识别准确率更高。

步骤s24:将训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到羽毛球模型。

需要说明的是,将训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到羽毛球模型的过程,包括步骤s241、步骤s242、步骤s243、步骤s244、步骤s245、步骤s246、步骤s247和步骤s248。

步骤s241:利用tensorflow创建卷积神经网络,将训练样本输入至卷积神经网络的第一卷积层,并利用3*3的卷积核对训练样本进行第一卷积操作,得到第一训练样本。

步骤s242:将第一训练样本输入至第一池化层,并利用3*3的步长对第一训练样本进行第一池化操作,得到第二训练样本。

步骤s243:将第二训练样本输入至第二卷积层,并利用3*3的卷积核对第二训练样本进行第二卷积操作,得到第三训练样本。

步骤s244:将第三训练样本输入至第二池化层,并利用3*3的步长对第三训练样本进行第二池化操作,得到第四训练样本。

步骤s245:将第四训练样本输入至第一全连接层,并对第四训练样本进行预分类,得到第五训练样本。

步骤s246:将第五训练样本输入至第二全连接层进行训练,得到羽毛球模型。

可以理解的是,在本实施例中,首先是利用一个3*3的卷积核来提取训练样本的图片特征,其次是用一个3*3的步长来对图像进行池化操作,来进一步提取图片特征中的关键信息,以减少训练样本的计算量,然后使用一个3*3的卷积核来对提取到的图片特征作第二次的卷积操作,之后,用一个3*3的池化层来减少数据的过拟合概率,其次,再用一个全连接层来对训练样本作初步的分类,最后再利用一层全连接层来对图像进行分类,以分类器的识别精度。需要说明的是,在本实施例中,是利用了一个6层的卷积神经网络模型来创建羽毛球的分类器模型,当然,在实际操作当中,应该根据实际情况对创建的卷积神经网络的层数进行调整,此处不作限定。

步骤s247:利用softmax函数对羽毛球模型中的连接权值进行标准化,得到羽毛球模型。

步骤s248:利用relu函数对羽毛球模型中的神经元进行激活,得到羽毛球模型。

可以理解的是,一个神经网络模型是由大量的神经元相互连接而成,每个神经元在接受线性组合的输入后,会进行非线性变换,也即,给每一个神经元加上非线性的激活函数后,可以进行非线性的转换,在模型当中,每个神经元都会与其余的神经元相互连接,每一个神经元都会接收上一层的n个神经元传递来的输入信号,进行权值加和,用得到的结果与阈值θ作比较得到经过神经网络输入层处理的输出再用激活函数来处理z,产生输出信号y,神经元结构如图3所示。需要说明的是,每个神经元之间使用不同的连接权值和激活函数,会导致创建出来的神经网络模型有不同的输出。具体的,在本实施例中,是利用softmax函数对羽毛球模型中的连接权值进行标准化,使其创建得到的卷积神经网络模型的所有概率总和为1。

需要说明的是,在一般的神经网络模型当中,都是使用sigmoid函数来作为激活函数,sigmoid函数如图4所示,sigmoid函数的表达式为:

其中,z为经过神经网络输入层处理的输出,z的表达式为

所以在代入相应的数值以后,g(z)的会结果趋近于0或者是1,所以,在实际梯度下降过程中,因为使用传统的sigmoid函数时,会将变量映射到[0,1]之间,其缺点是,会使一半的神经元被激活,不符合人脑的工作特征,而且,sigmoid函数容易造成饱和、终止梯度传递等问题。具体的,在本实施例中,是采用relu函数来作为激活函数,因为relu函数具有单侧抑制、相对宽阔的兴奋边界以及稀疏激活性等优点,所以,relu函数能够很好地解决上述问题。因此,在本实施例中,使用relu函数作为激活函数,其示意图如图5所示。具体的,relu函数的表达式为:

f(z)=max(0,z);

其中:z为经过神经网络输入层处理的输出,z的表达式为

步骤s25:利用交叉熵对羽毛球模型进行预判,得到误差估算值;

步骤s26:利用tensorflow的优化器adamoptimizer优化误差估算值,得到优化羽毛球识别模型。

可以理解的是,损失函数(lossfunction)是一个非负实值函数,用于估量创建出来的模型对标签的预测值f(x)和真实值y的误差率,此函数可以明确地显示误差的大小,从而使得学习的标准更清晰,在本实施例中,采用交叉熵作为损失函数,来对羽毛球模型中的权值和偏移值作梯度下降处理,进而提高羽毛球模型判定的准确率,以此来得到更接近图像特征的分类模型。具体的,在tensorflow框架中,使用tf.nn.

sparse_softmax_cross_entropy_with_logits(logits,labels,name=none)来对交叉熵进行运算,其具体过程包括步骤h11和步骤h12。

步骤h11,使用softmax函数来处理卷积神经网络模型的输出信息,softmax函数的表达式为:

其中,xi为第i类的预判概率,i为输入类型数,xj为第j类该函数使总概率和标准化,并求取该输出项的概率,j为从1到i的值。

步骤h12,对softmax处理结果和实际标签作交叉熵处理,交叉熵的表达式为:

hy′(y)=-∑iy′ilog(yi);

其中,y′为真实的概率分布,y为预判的概率分布,y′i为第i类的真实的概率分布,yi为第i类的预判的概率分布。

其结果越小,证明其结果越精准。最后将所有的概率作平均处理,则可以得到羽毛球模型整体预测的准确度。最后,使用tf.train.adamoptimizer来进行梯度下降处理,优化模型的参数,最后生成羽毛球模型,最后再复用羽毛球模型来对羽毛球的图片进行识别,以使得羽毛球分类器模型拥有更好的识别精度。

相应的,本发明还公开了一种羽毛球识别系统,如图6所示,该系统包括:

羽毛球识别模块,用于利用预先训练好的羽毛球模型对待处理的图片进行识别,获取相应的羽毛球或干扰物的分类;其中,羽毛球模型为分类器创建模块创建所得,分类器创建模块包括:

样本获取子模块31,用于获取羽毛球的训练样本;其中,训练样本包括羽毛球运动图片和干扰物图片以及相应的分类信息;

模型训练子模块32,用于将训练样本输入至利用tensorflow创建的卷积神经网络模型中进行训练,得到羽毛球模型。

优选的,样本获取子模块31包括:

样本获取单元,用于获取运动图片与干扰物图片;

样本裁剪单元,用于将运动图片与干扰物图片进行裁剪,得到目标运动图片与目标干扰物图片;

样本处理单元,用于利用python对目标运动图片与目标干扰物图片进行处理,得到训练样本。

优选的,样本裁剪单元包括:

样本裁剪子单元,用于将运动图片与干扰物图片裁剪成大小为64*64pixel的图片。

优选的,模型训练子模块32包括:

第一训练单元,用于利用tensorflow创建卷积神经网络,将训练样本输入至卷积神经网络的第一卷积层,并利用3*3的卷积核对训练样本进行第一卷积操作,得到第一训练样本;

第二训练单元,用于将第一训练样本输入至第一池化层,并利用3*3的步长对第一训练样本进行第一池化操作,得到第二训练样本;

第三训练单元,用于将第二训练样本输入至第二卷积层,并利用3*3的卷积核对第二训练样本进行第二卷积操作,得到第三训练样本;

第四训练单元,用于将第三训练样本输入至第二池化层,并利用3*3的步长对第三训练样本进行第二池化操作,得到第四训练样本;

第五训练单元,将第四训练样本输入至第一全连接层,并对第四训练样本进行预分类,得到第五训练样本;

第六训练单元,将第五训练样本输入至第二全连接层进行训练,得到羽毛球模型。

优选的,模型训练子模块32包括:

权值选取单元,用于利用softmax函数对羽毛球模型中的连接权值进行标准化,得到羽毛球模型。

优选的,模型训练子模块32包括:

神经元激活单元,用于利用relu函数对羽毛球模型中的神经元进行激活,得到羽毛球模型。

优选的,分类器创建模块还包括:

模型预判子模块,用于利用交叉熵对羽毛球模型进行预判,得到误差估算值;

模型校正子模块,用于利用tensorflow的优化器adamoptimizer优化误差估算值,得到优化羽毛球识别模型。

相应的,本发明还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述公开的羽毛球识别方法的步骤。

相应的,本发明还公开了一种羽毛球识别设备,如图7所示,该设备包括:

存储器41,用于存储计算机程序;

处理器42,用于执行计算机程序时实现如前述公开的羽毛球识别方法的步骤。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种羽毛球识别方法、系统、介质及设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1