一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于姿态识别神经网络的姿态识别方法、设备和介质与流程

2021-11-29 13:27:00 来源:中国专利 TAG:


1.本公开的实施例涉及一种基于姿态识别神经网络的姿态识别方法、设备和介质。


背景技术:

2.利用神经网络来进行图像内容识别是随着深度学习技术的发展而新兴起来的技术,例如,将神经网络应用于人体姿态估计,以识别出图像中的人体姿态。在相关技术中,通常由人体关节点来表征人体动作特征,然后基于识别的人体关节点来判别姿态。但是,为了准确识别人体姿态,需要神经网络处理的人体关节点的数目较多,这使得网络模型复杂计算量大,并且在图像中的部分关节点存在遮挡的情况下,识别结果会产生较大误差。


技术实现要素:

3.本公开提供一种基于姿态识别神经网络的姿态识别方法、设备和介质,用于基于姿态识别神经网络来快速、准确地识别人体姿态。
4.根据本公开的一方面,提供了一种基于姿态识别神经网络的姿态识别方法,其中,姿态识别神经网络包括编码网络和第一全连接层,编码网络包括多个第一卷积层和多个第二卷积层,该方法包括:获取待识别图像;利用多个第一卷积层分别地对待识别图像进行处理,用于得到与多个第一卷积层分别对应的多个第一特征图;将多个第一特征图合并为中间图像,并利用多个第二卷积层依次地对中间图像进行处理,用于得到第二特征图;以及利用第一全连接层对第二特征图进行处理,用于得到姿态特征向量,其中,姿态特征向量的分布表征基于待识别图像得到的识别姿态。
5.根据本公开的一些实施例,该方法还包括:基于姿态特征向量的矩阵特征值来确定识别姿态,其包括以下步骤:将姿态特征向量转化为二维矩阵;提取二维矩阵的多个特征值,将多个特征值作为特征值向量;基于特征值向量来确定识别姿态。
6.根据本公开的一些实施例,将多个第一特征图合并为中间图像包括:以增加特征图的通道数目的方式来将多个第一特征图合并为中间图像。
7.根据本公开的一些实施例,姿态识别神经网络的参数是按照以下方式训练得到的:利用分类层对姿态特征向量进行处理,用于得到分类向量;利用解码网络对姿态特征向量进行处理,用于得到解码输出图像,其中,解码输出图像与待识别图像的图像尺寸相同;按照第一损失函数,基于分类向量、姿态特征向量和待识别图像的真实类别参数计算得到类别损失值;按照第二损失函数,基于解码输出图像与待识别图像计算得到图像损失值;以及根据类别损失值与图像损失值来训练姿态识别神经网络的参数。
8.根据本公开的一些实施例,该分类层为独热编码分类层,第一损失函数包括最小均方值误差函数和类别中心损失函数,其中,
[0009][0010]
[0011]
其中,l1表示所述最小均方值误差函数,其中,n表示姿态类别的数目,y
i
表示真实姿态类别标签,f(x
i
)表示由所述分类层得到的分类向量,l2表示所述类别中心损失函数,c
yi
表示真实类别中心,x
i
表示姿态特征向量,m表示训练样本数目,其中,所述真实姿态类别标签和所述真实类别中心对应于所述真实类别参数,其中,第二损失函数为图像损失函数,图像损失函数表示为如下公式:
[0012]
l3=e(i1(x,y)

i2(x,y))/255
[0013]
其中,l3表示图像损失函数,i1(x,y)表示待识别图像的像素值,i2(x,y)表示解码输出图像的像素值,e表示计算数学期望。
[0014]
根据本公开的一些实施例,根据类别损失值与图像损失值来训练姿态识别神经网络的参数包括:基于类别损失值与图像损失值计算整体损失值;根据整体损失值按照反向传播算法来调整姿态识别神经网络和解码网络的参数。
[0015]
根据本公开的一些实施例,整体损失值表示为如下公式:
[0016]
l

=αl1

βl2

γl3

[0017]
其中,l

表示整体损失值,l1

表示按照l1计算得到的损失值,l2

表示按照l2计算得到的损失值,l3

表示按照l3计算得到的损失值,α、β、γ分别表示与损失值l1

、l2

、l3

对应的权重值,其中,权重值是基于与权重值对应的损失函数所作用的网络的参数量确定的,其中,第一损失函数所作用的网络包括姿态识别神经网络,第二损失函数所作用的网络包括姿态识别神经网络和解码网络。
[0018]
根据本公开的一些实施例,多个第一卷积层包括3个第一卷积层,3个第一卷积层的卷积核尺寸分别为3
×1×
3、3
×3×
1、3
×3×
3,多个第二卷积层包括4个第二卷积层,4个第二卷积层的卷积核尺寸分别为9
×3×
3、18
×3×
3、36
×3×
3、72
×3×
3,并且其中,4个第二卷积层的步长被设置为等于2。
[0019]
根据本公开的一些实施例,在训练姿态识别神经网络的参数的过程中包括利用解码网络对姿态特征向量进行处理,用于得到解码输出图像,解码输出图像与待识别图像的图像尺寸相同,其中,解码网络包括依次连接的第二全连接层、重构层以及多个反卷积层,其中,重构层的参数为1
×
16
×
16,多个反卷积层包括3个反卷积层,3个反卷积层中的每个反卷积层的卷积核尺寸为3
×3×
3,并且其中,每个反卷积层的步长被设置为等于2,第一全连接层的参数为1
×
128,第二全连接层的参数为1
×
256。
[0020]
根据本公开的一些实施例,获取待识别图像包括:获取初始图像;在初始图像中识别人体轮廓,并确定人体的最大外接矩形框;以及基于最大外接矩形框在初始图像中截取图像作为待识别图像。
[0021]
根据本公开的另一方面,提供了一种姿态识别设备,包括:处理器和存储器,其中,存储器中存储有计算机可读代码,该计算机可读代码当由处理器运行时,执行如上所述的基于姿态识别神经网络的姿态识别方法。
[0022]
根据本公开的又一方面,提供了一种计算机可读存储介质,其上存储有指令,该指令在被处理器执行时,使得处理器执行如上所述的基于姿态识别神经网络的姿态识别方法。
[0023]
在根据本公开实施例的基于姿态识别神经网络的姿态识别方法中,姿态识别神经网络的结构简单,有利于实现快速地姿态识别应用,并且由该姿态识别神经网络输出的姿
态特征向量的分布能够直接地表征待识别图像的姿态,利用根据本公开实施例的姿态识别方法能够实现快速、直接地人体姿态识别。
附图说明
[0024]
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]
图1示出了根据本公开实施例的基于姿态识别神经网络的姿态识别方法的示意性流程图;
[0026]
图2a示出了根据本公开实施例的初始图像的示意图;
[0027]
图2b示出了在图2a所示的初始图像中截取待识别图像的示意图;
[0028]
图3中示出了根据本公开实施例的姿态识别神经网络的结构示意图;
[0029]
图4示出了根据本公开实施例的姿态特征向量的分布的示意图;
[0030]
图5示出了根据本公开实施例的姿态识别神经网络的训练流程图;
[0031]
图6示出了根据本公开实施例的姿态识别神经网络在训练过程中的网络结构示意图;
[0032]
图7示出了根据本公开实施例的姿态识别设备的示意性框图;
[0033]
图8示出了根据本公开实施例的示例性计算设备的架构的示意图;
[0034]
图9示出了根据本公开实施例的计算机可读存储介质的示意图。
具体实施方式
[0035]
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0036]
本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
[0037]
应当理解的是,本公开中使用的流程图是用来说明根据本公开的实施例的方法的步骤,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。此外,还可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步。
[0038]
人工智能(artificial intelligence,ai)技术是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,其企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
[0039]
ai技术主要涉及计算机视觉技术、语音处理技术、自然语言处理技术以及深度学
习技术等方向。基于神经网络的深度学习技术在对于数据的理解、图像特征识别等方面具有非常大的潜力,例如,利用神经网络进行人体姿态识别。
[0040]
在相关技术中,基于深度学习的开放姿势(openpose)人体姿态识别项目是基于神经网络和监督学习开发的开源库,可以实现人体动作、面部表情、手指运动等姿态估计。具体的,openpose可以实现多关键点实时识别,通过对待识别图像提取关键点(诸如人体关节点)来识别姿态。但是,基于openpose的神经网络结构非常复杂,算法复杂度高,并且需要对庞大的数据量进行处理,这将耗费计算资源和计算时间。此外,诸如openpose等传统姿态识别方法均是识别图像中的人体关节点来进行姿态识别,但是识别得到的人体关节点不能直接地用于确定姿态类别,还需要利用诸如分类器来针对人体关节点判别姿态。在图像中的部分关节点存在遮挡的情况下,识别结果会产生较大误差。鉴于以上缺陷,相关技术中的人体姿态识别方案很难实现实时快速的人体姿态识别,不利于应用发展。
[0041]
基于此,本公开的一些实施例提供了一种基于姿态识别神经网络的姿态识别方法,其中的姿态识别神经网络结构简单,有利于实现快速地姿态识别应用,并且由该姿态识别神经网络输出的姿态特征向量的分布能够直接地表征待识别图像的姿态,而不依赖于人体关节点,利用根据本公开的一些实施例提供的姿态识别方法,能够实现快速、直接地人体姿态识别。
[0042]
图1示出了根据本公开实施例的基于姿态识别神经网络的姿态识别方法的示意性流程图1000。首先,如图1所示,在步骤s1010,获取待识别图像。该待识别图像可以是其中包括人体特征的图像,利用姿态识别神经网络对该待识别图像进行处理以提取人体的姿态信息,从而识别人体姿态类别。
[0043]
根据本公开的一些实施例,获取待识别图像可以包括:获取初始图像,在初始图像中识别人体轮廓,并确定人体的最大外接矩形框,以及基于最大外接矩形框在初始图像中截取图像作为该待识别图像。
[0044]
示意性地,图2a示出了根据本公开实施例的初始图像的示意图,该初始图像中示意性地包括有两个人物,图2b示出了在图2a的初始图像中截取待识别图像的过程示意图。首先,对于要确定其人体姿态的人物,在初始图像中识别人体轮廓,图2b中以左侧人物为例,截取出如黑色方框所示的最大外接矩形框,然后在初始图像中截取最大外接矩形框所对应的图像部分,作为待识别图像,即,作为姿态识别神经网络的输入图像。其中,在初始图像中识别人体轮廓的步骤可以采用相关目标检测算法来实现,例如基于候选区域的卷积神经网络(region proposal

convolutional neural network,r

cnn)、yolo(you only look once)目标检测器等,在此不作限制。
[0045]
此外,对于截取得到的对应于最大外接矩形框的图像,还可以改变其图像尺寸,其中,由图像像素数目表示图像尺寸。通常,得到的最大外接矩形框的长和宽并不相等,并且从不同初始图像中截取的外接矩形的图像尺寸也不相同,为便于姿态识别神经网络的处理,可以将截取得到的对应于最大外接矩形框的图像统一调整为相同的图像尺寸,例如128*128,将调整尺寸后的图像作为待识别图像。
[0046]
根据本公开的一些实施例的姿态识别神经网络是基于自编码技术,其中包括编码网络和第一全连接层,该编码网络由多个第一卷积层和多个第二卷积层组成。
[0047]
示意性地,图3中示出了根据本公开实施例的姿态识别神经网络的结构图,以下将
结合图1和图3对根据本公开一些实施例的姿态识别神经网络的网络结构和参数以及基于该网络的姿态识别方法的过程进行详细描述。
[0048]
如图1所示,在步骤s1020,利用多个第一卷积层分别地对待识别图像进行处理,用于得到与多个第一卷积层分别对应的多个第一特征图。作为示例,待识别图像的图像尺寸可以是128*128,首先,由姿态识别神经网络中的多个第一卷积层分别地对该待识别图像进行处理,以得到多个第一特征图。
[0049]
根据本公开的一些实施例,用于分别对待识别图像进行处理的多个第一卷积层例如可以具有不同的参数,以从提取不同层级的图像特征。例如,如图3所示出的,编码网络中首先布置有3个第一卷积层,3个第一卷积层的卷积核尺寸分别为3
×1×
3、3
×3×
1、3
×3×
3。
[0050]
在卷积层中,一个神经元只与部分相邻层的神经元连接,卷积层可以对输入的图像应用若干个卷积核,以提取多种类型的特征。每个卷积核可以提取一种类型的特征,在训练生成神经网络的过程中,卷积核通过学习达到合理的权值。对输入的图像应用卷积核之后得到的结果可以称为特征图。经过一层卷积层输出的特征图经由下一层卷积层处理后可以得到新的特征图。例如,输入的图像经过一层卷积层处理后可以得到其中一种特征,该特征经由下一层的卷积层处理后可以得到另一特征。
[0051]
在经过如图3所示的3个第一卷积层分别处理之后,将得到与该3个第一卷积层分别对应的3个第一特征图。接着,如图1所示,在步骤s1030,将多个第一特征图合并为中间图像,并利用多个第二卷积层依次地对中间图像进行处理,用于得到第二特征图。
[0052]
根据本公开的一些实施例,将多个第一特征图合并为中间图像包括:以增加特征图的通道数目的方式来将多个第一特征图合并为中间图像。作为示例,合并多个第一特征图的过程可以采用例如concat函数来实现,该concat函数用于将两个或多个数组结合起来。例如,可以将3个第一特征图分别表示为p1、p2和p3,由concat函数来对p1

p3进行合并,并输出合并后的中间图像p4。假设,p1、p2和p3的图像特征均为m*n*t,其中,m*n表示图像尺寸,t表示图像通道数,则合并后的p4可以表示m*n*3t,即,以增加特征图的通道数目的方式来将多个第一特征图合并为中间图像。
[0053]
接着,对于合并得到的中间图像p4,将经由多个第二卷积层依次地进行处理,并最终得到第二特征图。
[0054]
如图3所示,根据本公开一些实施例的多个第二卷积层包括4个第二卷积层,该4个第二卷积层的卷积核尺寸分别为9
×3×
3、18
×3×
3、36
×3×
3、72
×3×
3,并且其中,4个第二卷积层的步长被设置为等于2。利用多个第二卷积层依次进行处理可以表示为如图3所示出的过程,即,依次得到特征图p5

p8,并最终得到特征图p8,该特征图p8对应于第二特征图。
[0055]
在卷积层中,卷积步长也叫卷积步幅(stride),其代表滤波器每移动一次移动的步幅,s=2则表示滤波器每次移动2个位置,在卷积的过程中,通过设置大于1的步长可以用于压缩图像信息,或者使输出的图像尺寸小于输入的图像尺寸。
[0056]
接着,如图1所示,在步骤s1040,利用第一全连接层对第二特征图进行处理,用于得到姿态特征向量,其中,姿态特征向量的分布表征基于待识别图像得到的识别姿态。其中,识别姿态可以表示为基于姿态识别神经网络所识别出来的姿态。根据本公开的一些实
施例,第一全连接层的参数可以为1
×
128。在神经网络中,全连接层就是把卷积层提取的分布式特征映射到样本空间,也就是说,全连接层用于把特征图整合到一起,生成一维的特征向量,例如,在第一全连接层的参数为1
×
128的情况下,将得到1
×
128的特征向量。由第一全连接层输出的1
×
128特征向量表示为姿态特征向量。
[0057]
在根据本公开实施例的姿态识别方法中,姿态识别网络是对待识别图像中的图像特征进行分析,其输出的姿态特征向量的分布表征基于所述待识别图像识别得到的姿态。相比于诸如openpose的相关技术中基于人体关节点识别姿态的方案,本公开中提出的姿态识别网络并不依赖于识别人体关节点,而是直接地通过姿态特征向量的分布来表征人体姿态。
[0058]
具体的,图4示出了根据本公开实施例的姿态特征向量的分布的示意图,其中示出了基于姿态识别神经网络分别得到3个姿态特征向量的情形,输出的姿态特征向量为1
×
128的特征向量,示意性地图4中示出了不同姿态类别的姿态特征向量的分布形式。可以理解的是,在神经网络的训练过程中,通过使得神经网络输出的姿态特征向量的不同分布形式来表示不同的姿态类别,即,通过训练使得姿态识别神经网络具有针对不同的姿态类别输出具有不同分布的特征向量以及针对相同的姿态类别输出具有相同分布的特征向量的能力,从而实现仅依据特征向量的分布就能够确定姿态类别。
[0059]
可以理解的是,图3中示出的姿态识别神经网络的参数以及网络结构仅是对应于根据本公开的一种实施方式,在实际应用中可以设置不同于图3示出的网络参数,例如,可以根据计算设备的计算能力、对于姿态识别的准确性要求来设置网络参数。此外,图4中示出的姿态特征向量的分布仅对应于3种姿态类别,在实际应用中,能够识别的姿态类别并不限于此,这取决于神经网络训练过程中的训练样本以及损失函数等的设置,这将在下文的训练步骤中进行描述。
[0060]
根据本公开实施例的基于姿态识别神经网络的姿态识别方法中,该姿态识别神经网络(如图3所示)的网络结构简单,数据计算量小,这有利于实现快速地姿态识别应用。并且,由该姿态识别神经网络输出的姿态特征向量的分布能够直接地表征待识别图像的姿态(如图4所示),而不依赖于人体关节点,这使得能够在人体存在部分遮挡的情况下仍能保证准确识别姿态,利用根据本公开的一些实施例提供的姿态识别方法,能够实现快速、直接地人体姿态识别。
[0061]
对于识别得到的人体姿态,其中的一种应用方向是人体的动作行为估计,为了理解人的行为,人体的姿态估计是非常重要的中间层信息。人体姿态识别还可以应用于娱乐产品,例如人体交互等,其中通过三维姿态估计来构建虚拟人物,用于使用真实人体来控制虚拟人物,以实现智能交互。人体姿态识别还可以作为其他算法的辅助信息,例如用来辅助进行行人检测。此外,姿态估计还可以应用在体育动作教学、绘画辅助、游戏人物动作采集等领域,具有广阔的应用前景。根据本公开实施例的姿态识别方法能够为这些应用提供快速、准确的姿态识别结果。
[0062]
在构建了神经网络的网络结构之后,例如,如图3所示的姿态识别神经网络,需要对神经网络设置初始参数值,并通过构建的训练图像数据库来完成对于神经网络的训练过程,使得其能输出预期结果,例如输出表征姿态类别的姿态特征向量。训练图像数据库包括大量的训练样本,并且训练样本还可以具有真实标签,以用于进行有监督学习的训练过程。
神经网络的训练过程可以理解为不断调整神经网络的参数的过程,利用损失函数基于大量的具有真实标签的训练样本来不断优化神经网络的参数,即,使得神经网络的输出结果越来越接近真实标签。换句话说,经过训练的神经网络学习到了输出预期结果的能力。
[0063]
根据本公开实施例,姿态识别神经网络的可训练的参数包括网络中各个卷积核的权重以及偏置。在神经网络中,卷积核权重和偏置可以决定生成输出结果的特征图的使能情况,例如,通过卷积核的权重和偏置可以决定从输入图像中提取的特征图中的每个元素对于生成的输出特征图的贡献大小。基于损失函数计算得到的损失值,可以按照反向传播算法来调整神经网络中的参数,调整的方向是使得网络的输出结果更接近于真实标签。
[0064]
图5示出了根据本公开实施例的姿态识别神经网络的训练流程图,图6示出了根据本公开实施例的姿态识别神经网络在训练过程中的网络结构示意图。以下将结合图5和图6对根据本公开实施例的姿态识别神经网络的训练过程进行详细描述。
[0065]
如图5所示,在训练过程中,在步骤s1050,利用分类层对姿态特征向量进行处理,用于得到分类向量。接着,在步骤s1060,按照第一损失函数,基于分类向量、姿态特征向量和待识别图像的真实类别参数计算得到类别损失值。
[0066]
参考图6,对于由第一全连接层输出的姿态特征向量首先经过分类层的处理以得到经过分类处理的分类向量。例如,分类层起到分类器的作用,用于对姿态识别网络输出的姿态特征向量进行分类,以得到识别的类别标签,基于该输出的类别标签与真实类别标签的比较结果来计算损失值,并由此来调整网络参数,即,实现对于网络的训练。
[0067]
根据本公开的一些实施例,该分类层可以实施为独热(one

hot)编码分类层。独热编码也可以称为一位有效编码,例如,用n个比特来对n个类别进行编码。举例来说,假设要识别的姿态分为4个类别(即,n=4),对应于该类别的编码状态值为1,而对应于其他类别的编码状态值为0。作为示例,假设要识别的4个姿态类别分别是平躺、站立、坐和跑步,则该分类层的独热编码输出结果可以分别对应于[1,0,0,0]、[0,1,0,0]、[0,0,1,0]、[0,0,0,1],也就是说,如果独热编码分类层输出的分类向量为[0,1,0,0],则表示经由该姿态识别网络的处理得到的识别结果是该待识别图像中的姿态为站立。通常情况下,类别的数目可以很多,即,n的数值可以根据实际需要来进行设置,在此不作限制。
[0068]
根据本公开的一些实施例,第一损失函数可以包括最小均方值误差函数和类别中心损失函数。可以理解的是,在根据本公开的其他实施例中,第一损失函数可以仅包括最小均方值误差函数和类别中心损失函数中的其中一种。
[0069]
最小均方值误差函数表示为以下公式(1):
[0070][0071]
其中,l1表示最小均方值误差函数,n表示姿态类别的数目,例如可以是如上所述的4个类别,y
i
表示真实姿态类别标签,也就是待识别图像的真实类别,f(x
i
)表示由分类层得到的分类向量。对于最小均方值误差函数,是把真实姿态类别标签与网络输出值f(x
i
)做差然后取平方值以得到输出结果与真实值之间的误差值。
[0072]
类别中心损失函数表示为以下公式(2):
[0073]
[0074]
其中,l2表示类别中心损失函数,表示真实类别中心,x
i
表示由姿态识别网络得到的姿态特征向量,m表示训练样本数目,其中,m对应于用于训练网络的训练样本的数目,即,在训练过程中使用的待识别图像的数目。在训练过程中,待识别图像也可以称为训练样本,其具有真实类别参数,以用于将真实类别参数与基于训练样本的输出结果进行比较。
[0075]
类别中心损失函数l2用于计算输出结果与对应类别中心的距离,以达到聚类的目的,即使得属于相同类别的训练数据的输出结果靠近真实类别的中心,这有助于使得经过训练之后,针对相同姿态类别得到的姿态特征向量的分布彼此相近,而针对不同姿态类别得到的姿态特征向量的分布彼此区分明显,从而实现由姿态特征向量的分布来直接表征姿态类别,例如图4所示出的。
[0076]
基于以上公式(1)和(2),能够计算得到针对姿态识别神经网络的类别损失值,根据计算得到的类别损失值能够训练该姿态识别神经网络的参数,即,按照使得类别损失值减小的方向来调整网络参数,从而使得输出结果越来越接近真实类别参数,由此提高输出结果的准确性。
[0077]
接着参考图5,训练过程还可以包括步骤s1070和s1080,在步骤s1070,利用解码网络对姿态特征向量进行处理,用于得到解码输出图像,其中,解码输出图像与待识别图像的图像尺寸相同,接着,在步骤s1080,按照第二损失函数,基于解码输出图像与待识别图像计算得到图像损失值。
[0078]
根据本公开实施例的姿态识别网络采用了自编码学习技术,这属于无监督学习的一种。相比较地,以上基于第一损失函数计算类别损失值的训练过程属于有监督学习,即训练的过程中需要提供真实类别参数作为训练目标。
[0079]
针对姿态识别网络中的编码网络,构造有与之对应的解码网络,编码网络与解码网络两者共同组成自编码器,例如,编码网络用于对输入数据进行编码以提取特征,解码网络再对编码网络的输出结果进行解码,以恢复原始的输入数据,也就是说,自编码器的目的是从输入数据学习出一种编码表示,并且希望得到的编码表示能够尽可能的重构出原来的输入数据。
[0080]
根据本公开的一些实施例,关于解码网络的具体结构可以参考图6,其包括依次连接的第二全连接层、重构层以及多个反卷积层,其中,第二全连接层的参数为1
×
256,重构层(reshape)的参数为1
×
16
×
16,多个反卷积层包括3个反卷积层,该3个反卷积层中的每个反卷积层的卷积核尺寸为3
×3×
3,并且其中,每个反卷积层的步长被设置为等于2。可以理解的是,解码网络的参数是与编码网络的参数对应设置的,以使得解码输出图像与待识别图像的图像尺寸相同。例如,在待识别图像的图像尺寸为128*128的情况下,由解码网络输出的解码输出图像的尺寸也为128*128。
[0081]
根据本公开的一些实施例,第二损失函数为图像损失函数,表示为以下公式(3):
[0082]
l3=e(i1(x,y)

i2(x,y))/255(3)
[0083]
其中,l3表示该图像损失函数,i1(x,y)表示待识别图像的像素值,i2(x,y)表示解码输出图像的像素值,e表示计算数学期望。图像损失函数l3用于表示输入与输出之间的差异,计算得到的l3的值越小越好,即,希望由编码网络得到的姿态特征向量能够尽可能的重构出原来的待识别图像。
[0084]
根据本公开的一些实施例,可以采用以上有监督学习和无监督学习方式来共同训
练姿态识别神经网络的参数,以提高姿态识别准确性,这对应于图5中的步骤s1090,根据类别损失值与图像损失值来训练姿态识别神经网络的参数。
[0085]
根据本公开的一些实施例,根据类别损失值与图像损失值来训练姿态识别神经网络的参数包括:基于类别损失值与图像损失值计算整体损失值,以及根据整体损失值按照反向传播算法来调整姿态识别神经网络和解码网络的参数。
[0086]
可以理解的是,在根据本公开的其他实施方式中,也可以仅基于无监督学习方式来训练姿态识别神经网络的参数,或者,进一步引入其他的训练函数来进行训练,在此不作限制。
[0087]
根据本公开的一些实施例,在根据类别损失值与图像损失值两者来训练姿态识别神经网络的参数的情况下,计算整体损失值表示为如下公式(4):
[0088]
l

=αl1

βl2

γl3

(4)
[0089]
其中,l

表示整体损失值,l1

表示按照l1计算得到的损失值,l2

表示按照l2计算得到的损失值,l3

表示按照l3计算得到的损失值,α、β、γ分别表示与损失值l1

、l2

、l3

对应的权重值。
[0090]
在相关技术中,以上权重值通常设置为超参数,即设置为固定的数值,例如通过经验设置或者针对不同的权重值进行遍历验证,以确定最终的权重值。
[0091]
根据本公开的一些实施例中,权重值α、β、γ是基于与该权重值分别对应的损失函数所作用的网络的参数量来确定的。其中,第一损失函数所作用的网络包括姿态识别神经网络,第二损失函数所作用的网络包括姿态识别神经网络和解码网络。
[0092]
具体的,以计算由最小均方值误差函数的计算得到的损失值l1

的权重值作为示例进行说明。其中,权重值α是基于以下公式(5)计算得到的:
[0093][0094]
其中,a
α
表示与权重值α对应的损失函数l1所作用的网络的参数量,a
β
表示与权重值β对应的损失函数l2所作用的网络的参数量,a
γ
表示与权重值γ对应的损失函数l3所作用的网络的参数量。其中,由于l1所作用的网络与l2所作用的网络均对应于姿态识别网络,则a
α
=a
β

[0095]
神经网络的参数量表征该网络的空间复杂度,其由两部分组成,即,总参数量(也可以称为模型体积)和各层输出的特征图,即,参数量只与卷积核的尺寸、通道数、网络层数相关,而与输入数据的大小无关。在根据本公开的实施例中,损失函数的作用域越大,即其所作用的网络的参数量越大,则其对网络参数造成的影响越大,这一点可以理解为训练数据不平衡的时候,尤其某一个标签数据过多或者过少的时候,对整体的模型训练影响较大,因此为了降低由于不同训练函数的作用域不同而产生的差异,提出针对作用域大的损失函数分配较低的权重值,反之亦然,由此可以平衡多个损失函数之间由于所作用的网络参数量不同而带来的训练影响。
[0096]
关于计算网络的参数量的过程,可以采用以下参数量计算公式(6):
[0097][0098]
其中,a表示参数量,第一个求和表达式表示网络中所有带参数的卷积层的权重参数总量,可以理解为网络模型体积,其中,l表示网络层数,例如,图6中示出的卷积层、反卷
积层等,k为卷积核的尺寸,c为通道数,第二个求和表达式表示模型在运行过程中每层所计算出的输出特征图尺寸,r2表示特征图的空间尺寸,输出特征图的空间占用表示为其空间尺寸r2与通道数c的连乘。
[0099]
参考以上公式(6),可以分别计算姿态识别网络(图3)与训练过程中的整体网络(图6)的参数量,即,得到a
α
、a
β
、a
γ
,然后代入到公式(5)以确定损失函数的权重值。
[0100]
在根据本公开的一些实施例中,基于以上计算得到的类别损失值和图像损失值来计算整体损失值,然后,根据整体损失值按照反向传播算法来调整姿态识别神经网络和解码网络的参数,即,使得整体损失值减小的方向来调整网络参数,从而使得网络的输出结果越来越接近真实类别参数,由此提高输出结果的准确性。
[0101]
根据本公开的一些实施例,姿态识别网络的训练过程采用了类别中心损失函数,其用于计算输出结果与对应类别中心的距离,以达到聚类的目的,即使得属于相同类别的训练数据的输出结果靠近真实类别的中心,这有助于使得经过训练之后,针对相同姿态类别得到的姿态特征向量的分布彼此相近,而针对不同姿态类别得到的姿态特征向量的分布彼此区分明显,从而实现由姿态特征向量的分布来直接表征姿态类别,例如图4所示出的。
[0102]
此外,在计算整体损失值的过程中,考虑到不同损失函数所作用的网络参数量不同,通过计算参数量来确定权重值,由此平衡多个损失函数之间由于所作用的网络参数量不同而带来的训练影响。
[0103]
根据本公开的一些实施例,基于姿态识别神经网络的姿态识别方法还可以包括:基于姿态特征向量的矩阵特征值来确定识别姿态,其包括以下步骤:将姿态特征向量转化为二维矩阵;提取二维矩阵的多个特征值,将多个特征值作为特征值向量;以及基于特征值向量来确定识别姿态。
[0104]
例如,在第一全连接层输出的姿态识别向量为1
×
128特征向量的情况下,可以首先将其转换为v1=16
×
8的中间矩阵,即,将一维的特征向量转换成二维的矩阵v1,为了更好的提取特征值,进一步地将中间矩阵v1转换成二维矩阵v2,例如,v2=v1
×
v1
t
,即,得到的矩阵v2为v2=16
×
16的方阵。接着,针对得到的二维矩阵v2计算其16个特征值,并将得到的16个特征值作为特征值向量,如果矩阵的秩小于16则补零。由此,可以将1
×
128的特征向量转换为1
×
16的特征值向量,并基于计算得到的特征值向量来确定姿态类别,例如可以在姿态神经网络的第一全连接层之后增加相应的分类器,并由该分类器来基于特征值向量判断识别姿态。由于特征值向量相比于特征向量减少了参数量,这使得可以降低分类计算量,提高计算速度。此外,在以上结合图5和图6描述的训练过程中,其中的分类层处理的对象也可以是以上经过转换的特征值向量,以提高训练过程中关于分类层的计算速度。
[0105]
根据本公开的又一方面,还提供了一种姿态识别设备。图7示出了根据本公开实施例的姿态识别设备的示意性框图。
[0106]
如图7所示,姿态识别设备2000可以包括处理器2010以及存储器2020。根据本公开实施例,存储器2020中存储有计算机可读代码,该计算机可读代码当由处理器2010运行时,执行以上结合图1描述的基于姿态识别网络的姿态识别方法。
[0107]
处理器2010可以根据存储在存储器2020中的程序执行各种动作和处理。具体地,处理器2010可以是一种集成电路,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑
器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是x86架构或者是arm架构等。
[0108]
存储器2020存储有计算机可执行指令代码,该指令代码在被处理器2010执行时用于实现根据本公开实施例的基于姿态识别神经网络的姿态识别方法。存储器2020可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、双倍数据速率同步动态随机存取存储器(ddrsdram)、增强型同步动态随机存取存储器(esdram)、同步连接动态随机存取存储器(sldram)和直接内存总线随机存取存储器(dr ram)。应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0109]
根据本公开实施例的基于姿态识别神经网络的姿态识别方法也可以借助于图8所示的计算设备3000的示例性架构来实现。如图8所示,计算设备3000可以包括总线3010、一个或多个cpu 3020、只读存储器(rom)3030、随机存取存储器(ram)3040、连接到网络的通信端口3050、输入/输出组件3060、硬盘3070等。计算设备3000中的存储设备,例如rom 3030或硬盘3070可以存储本公开实施例提供的基于姿态识别神经网络的姿态识别方法的处理和/或通信使用的各种数据或文件以及cpu所执行的程序指令。计算设备3000还可以包括用户界面3080。
[0110]
当然,图8所示的架构只是示例性的,在实现不同的设备时,根据实际需要,可以省略图8示出的计算设备中的一个或多个组件,或者向其中增加所需的组件。
[0111]
根据本公开的又一方面,还提供了一种非暂时性计算机可读存储介质。图9示出了根据本公开实施例的非暂时性计算机可读存储介质的示意图。
[0112]
如图9所示,计算机可读存储介质4020上存储有指令,指令例如是计算机可读指令4010。当计算机可读指令4010由处理器运行时,可以执行参照以上附图描述的基于姿态识别神经网络的姿态识别方法。计算机可读存储介质包括但不限于例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。例如,计算机可读存储介质4020可以连接于诸如计算机等的计算设备,接着,在计算设备运行计算机可读存储介质4020上存储的计算机可读指令4010的情况下,可以进行如上所描述的基于姿态识别神经网络的姿态识别方法。
[0113]
根据本公开的又一方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序包括计算机可读指令,该计算机可读指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机可读指令,处理器执行该计算机可读指令,使得该计算机设备执行上述各个实施例中描述的基于姿态识别神经网络的姿态识别方法。
[0114]
根据本公开的一些实施例的计算机程序产品或计算机程序实现为软件包的形式并应用于诸如人机交互等的应用产品中,以用于在应用过程中快速提供关于人体姿态的识
别信息。
[0115]
在根据本公开实施例提供的基于姿态识别神经网络的姿态识别方法、设备和介质中,其中设计的姿态识别神经网络结构简单,有利于实现快速地姿态识别应用,并且由该姿态识别神经网络输出的姿态特征向量的分布能够直接地表征待识别图像的姿态,以便能够实现快速、直接地人体姿态识别。
[0116]
本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
[0117]
本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过计算机程序来指令相关硬件完成,程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。
[0118]
以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献