技术领域
[0001] 本说明书实施例涉及计算机技术领域,特别涉及动作识别方法以及基于动作骨骼点数据的动作识别方法。
相关背景技术
[0002] 随着计算机技术的不断发展,基于人体关键点的动作识别在人机交互、运动分析、智能监控等领域有着广泛的应用,例如,在线动作教学、人机交互游戏等等。
[0003] 现有技术实现动作识别的方式,一般是通过动作骨骼点数据进行模型训练,并基于训练后的模型进行动作识别,但是,现有技术在进行模型训练时,仅采用单一的动作骨骼点数据进行模型训练,并未考虑到其他动作数据对模型训练的增益效果,因此导致模型的动作识别效果较差,进一步降低了动作识别的准确率。
具体实施方式
[0051] 在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
[0052] 在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0053] 应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0054] 首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
[0055] GCN:Graph Convolution Network,图卷积网络,常用深度学习模型之一。
[0056] CLIP:Contrastive Language‑Image Pre‑Training,一种图文相关性匹配模型。
[0057] GPT‑3:OpenAI的一种大规模的语言模型。
[0058] Transformer:一个仅利用注意力机制和多层感知器构成的神经网络模型。
[0059] 随着计算机技术的不断发展,基于人体关键点的动作识别在人机交互、运动分析、智能监控等领域有着广泛的应用。而目前基于骨架的动作识别工作通常被构造为简单的分类任务,即利用交叉熵损失函数对关键点特征进行one‑hot(独热)编码的标签类的分类;但是,而没有充分考虑骨架之间的语义关系。例如,'做OK手势'和'竖起大拇指'是两个手势动作,而最有区别的部分是手掌的运动。这一信息在目前的分类任务中是不可知的,因为它与行动的分类编码无关,但可以在动作的语言描述中被揭示出来。因此,在训练中利用动作语言描述,有可能有利于表征学习,参见图1,图1是本说明书提供一种基于单编码器的动作识别方案的示意图,具体的,现有技术采用单关键点编码器方式进行动作识别的过程中,仅采用的单一的骨骼点数据,对骨骼编码器(即动作识别模型)进行训练,从而导致骨骼编码器输出准确性较低的动作类型。
[0060] 基于此,在本说明书提供的一种基于视频的动作识别方案中,会使用语言来监督动作识别或者视频分类;但是,该方案主要聚焦于RGB的视频输入,而不是针对于人体骨骼点或者关键点。并且,该方案对于人体动作语言的使用比较简单,使用的语言描述不提供额外的动作语义信息。
[0061] 基于此,在本说明书中,提供了动作识别方法,本说明书同时涉及动作识别装置,一种基于动作骨骼点数据的动作识别方法,一种基于动作骨骼点数据的动作识别装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
[0062] 参见图2,图2示出了根据本说明书一个实施例提供的一种动作识别方法的应用示意图,具体的,该动作识别方法能够获得用户的动作骨骼点数据,该动作骨骼点数据是基于摄像机对处于站立动作的用户进行骨骼点采集所获得。之后,将用户的动作骨骼点数据输入至动作识别模型中,获得该用户的动作识别结果为站立动作。其中,需要说明的是,该动作识别模型是基于动作骨骼点数据以及该动作骨骼点数据对应的动作描述数据训练获得,其中,该动作描述数据是基于语言模型生成。基于此,本说明书的动作识别方法,提供了一种基于语言监督辅助训练的人体关键点动作识别方法,该方法使用语言模型来辅助基于骨骼关键点动作识别,并且通过设计提示语,使用了大规模的语言模型来自动生成动作描述,相对于直接使用类别名进行模型训练,本方法能够明显的提升模型性能。
[0063] 参见图3,图3示出了根据本说明书一个实施例提供的一种动作识别方法的流程图,该动作识别方法可以应用于服务端或者客户端,具体包括以下步骤。
[0064] 步骤302:确定目标对象的动作关键点数据。
[0065] 其中,该目标对象可以理解为需要进行动作识别的对象,例如,目标用户、目标机器人、目标动物等等。
[0066] 该动作关键点数据可以理解为表征目标对象的动作的数据,例如,在目标对象为目标用户的情况下,该动作关键点数据为动作骨骼点数据;在目标对象为目标机器人的情况下,该动作关键点数据为目标机器人的肢体关键点数据;在目标对象为目标动物的情况下,该动作关键点数据为目标动物的动作骨骼点数据。需要说明的是,上述为本说明书提供的动作识别方法应用于肢体动作识别场景下的举例说明;本说明书提供的动作识别方法,还可以应用于面部动作识别场景;在面部动作识别场景下,该动作识别方法为面部动作识别方法,该面部动作可以为理解为面部表情,因此,该面部动作识别方法可以为面部表情识别方法,该目标对象为需要进行面部动作识别的对象,例如,需要进行面部表情识别的目标用户;该动作关键点数据为目标对象的面部动作关键点数据。其中,该面部动作关键点可以理解为表征目标对象的面部动作的关键点数据,例如,面部动作关键点可以为面部表情关键点。
[0067] 需要说明的是,目标对象的动作关键点数据可以通过关键点采集设备进行采集;例如,实现骨骼点数据采集的摄像头。或者,该目标对象的动作关键点数据可以通过对图像采集设备所采集的、目标对象的动作图像数据进行分析获得。其中,该动作图像数据可以是图像采集设备所采集的图像视频中的图像图像帧。例如,通过摄像头采集目标用户的动作图像数据,并通过骨骼点提取算法对该动作图像数据进行动作骨骼点数据提取,从而获得该目标用户的动作骨骼点数据。或者通过摄像头采集目标用户的动作图像视频数据,并通过骨骼点提取算法对该动作图像视频数据中的视频图像帧进行动作骨骼点数据提取,从而获得该目标用户的动作骨骼点数据;该骨骼点提取算法可以为任意一种实现从动作图像中提取动作骨骼点数据取的算法,本说明书对此不作具体限定;也即是说,该动作关键点数据可以从包含动作关键点数据的图像数据或者视频数据中获得。
[0068] 步骤304:将所述动作关键点数据输入目标动作识别模型,获得所述目标对象的动作识别结果。
[0069] 其中,所述目标动作识别模型基于样本对象的动作关键点数据,以及所述动作关键点数据对应的动作描述数据训练获得,所述目标动作识别模型为机器学习模型,在实际应用中,该动作识别模型可以为一个实现动作识别的编码器,例如,该动作识别模型可以为骨骼编码器,或表情编码器。
[0070] 该动作识别结果可以理解为表征该动作关键点数据对应的动作类型的结果,例如,该动作识别结果可以为站立动作、喝水动作;在动作关键点数据为面部动作关键点数据的情况下,该动作识别结果可以为表征目标对象的面部动作类型,例如,皱眉动作、张嘴动作、微笑动作等等。
[0071] 其中,该动作描述数据可以理解为该描述该动作关键点数据所对应的动作的文本信息;例如,在该动作关键点数据为喝水动作对应的动作骨骼点数据的情况下,动作关键点数据对应的动作描述数据为描述喝水动作的文本信息,比如“手里拿着东西;手向上移动;喝水;手向下移动”。在该动作关键点数据为微笑动作对应的动作骨骼点数据的情况下,动作关键点数据对应的动作描述数据为描述微笑面部动作的文本信息,比如“眯起双眼,嘴角上扬”。
[0072] 其中,样本对象可以理解为提供训练样本的对象,例如,该样本对象可以为样本用户、样本机器人、样本动物。
[0073] 其中,该目标动作识别模型可以理解为训练后的、能够进行动作识别的模型,例如,需要说明的是,该动作识别模型可以为任意一种实现基于动作关键点数据进行动作识别的模型,本说明书对此不作具体限制,例如,该动作识别模型可以为GCN、CNN(卷积神经网络),LSTM(长短期记忆人工神经网络),Transformer等。
[0074] 在本说明书提供的一实施例中,为了避免采用单一数据进行模型训练所导致模型的动作识别效果较差的问题,因此充分考虑到其他动作数据对模型训练的增益效果,采用动作关键点数据以及动作关键点数据对应的动作描述数据对动作识别模型进行训练,该目标动作识别模型的训练步骤包括:
[0075] 将所述样本对象的动作关键点数据输入初始动作识别模型,获得所述动作关键点数据的初始动作识别结果,其中,所述动作关键点数据从包含所述动作关键点数据的图像数据或者视频数据中获得;
[0076] 将所述动作关键点数据对应的动作描述数据输入语言分析模型,获得所述动作关键点数据的关联动作识别结果;
[0077] 基于所述初始动作识别结果以及所述关联动作识别结果,对所述初始动作识别模型进行训练,获得目标动作识别模型。
[0078] 其中,该初始动作识别模型可以理解为需要进行训练的动作识别模型。
[0079] 语言分析模型可以理解为对该动作描述数据所描述的动作进行识别的模型,需要说明的是,该语言分析模型可以为任意一种识别该动作描述数据所对应的动作的语言模型,本说明书对此不作具体限制,例如,该语言分析模型可以为transformer。在实际应用中,该语言分析模型可以为一个实现语言分析的编码器,例如,文字编码器。
[0080] 该关联动作识别结果可以理解为该动作描述数据所描述的动作类型。例如,在动作描述数据为“手里拿着东西;手向上移动;喝水;手向下移动”的情况下,该动作描述数据对应的关联动作识别结果为喝水动作。
[0081] 具体的,在本说明书提供的实施例中,能够确定该样本对象的动作关键点数据以及该动作关键点数据对应的动作描述数据,之后将该动作关键点数据输入至待训练的初始动作识别模型中进行处理,获得该动作关键点数据的初始动作识别结果。并且将该动作描述数据输入至语言分析模型中进行处理,获得该动作关键点数据所描述的、且与该动作关键点数据相关联的关联动作识别结果。
[0082] 在确定该初始动作识别结果以及关联动作识别结果之后,能够基于该初始动作识别结果以及关联动作识别结果对该初始动作识别模型进行训练,从而获得训练后的目标动作识别模型。
[0083] 在本说明书提供的动作识别方法中,基于样本对象的动作关键点数据,以及该动作关键点数据对应的动作描述数据训练获得目标动作识别模型,充分考虑到其他动作数据对模型训练的增益效果,避免了采用单一数据进行模型训练所导致模型的动作识别效果较差的问题,从而获得动作识别效果较优的目标动作识别模型;基于该目标动作识别模型对目标对象的动作关键点数据进行动作识别,提高了动作识别的准确率。
[0084] 参见图4,图4示出了根据本说明书一个实施例提供的一种基于动作骨骼点数据的动作识别方法的流程图,该基于动作骨骼点数据的动作识别方法可以应用于服务端或客户端;具体包括以下步骤。
[0085] 步骤402:确定目标对象的动作骨骼点数据。
[0086] 其中,目标对象可以参考上述动作识别方法中的解释;在此不赘述;该动作骨骼点数据可以理解为表征该目标对象的特定动作的骨骼点数据,例如,喝水动作骨骼点数据。
[0087] 需要说明的是,目标对象的动作骨骼点数据可以通过骨骼点采集设备进行采集;例如,实现骨骼点数据采集的摄像头。或者,该目标对象的动作骨骼点数据可以通过骨骼点提取算法对图像采集设备所采集的、目标对象的动作图像进行分析获得。例如,通过摄像头采集目标用户的动作图像,并通过骨骼点提取算法对该动作图像进行处理,从而获得该目标用户的动作骨骼点数据。也即是说,该动作骨骼点数据从包含动作骨骼点数据的图像数据或者视频数据中获得。
[0088] 步骤404:将所述动作骨骼点数据输入目标动作识别模型,获得所述目标对象的动作识别结果。
[0089] 具体的,本说明书提供的基于骨骼点数据的动作识别方法,在确定目标对象的动作骨骼点数据之后,能够将该动作骨骼点数据输入训练后的目标动作识别模型中,获得该动作骨骼点数据对应的动作类型,并将该动作类型作为该目标对象的动作识别结果。
[0090] 例如,本说明书提供的基于动作骨骼点数据的动作识别方法可以应用于服务端或客户端,该目标动作识别模型为骨骼编码器;基于此,服务端或客户端能够获取用户在喝水过程中身体的动作骨骼点数据,并将该动作骨骼点数据输入预先训练后的骨骼编码器,基于该骨骼编码器对该动作骨骼点数据进行处理,确定该动作骨骼点数据对应的动作类型为喝水动作,然后将该喝水动作作为该用户对应的动作识别结果。
[0091] 进一步的,在本说明书提供一实施例中,为了保证动作识别的准确性,本说明书提供的基于骨骼点数据的动作识别方法,还可以对目标对象的整体动作骨骼点数据进行切分,获得目标对象的至少两个局部动作骨骼点数据,之后将至少两个局部动作骨骼点数据输入目标动作识别模型中进行细粒度的分析,从而提高动作识别结果的准确度。具体的,所述将所述动作骨骼点数据输入目标动作识别模型,获得所述目标对象的动作识别结果,包括:
[0092] 对所述动作骨骼点数据进行切分,获得至少两个局部动作骨骼点数据,其中,所述动作骨骼点数据从包含所述动作骨骼点数据的图像数据或者视频数据中获得;
[0093] 将所述至少两个局部动作骨骼点数据输入目标动作识别模型,获得所述目标对象的动作识别结果。
[0094] 其中,对动作骨骼点数据进行切分可以理解为基于预设切分规则对该动作骨骼点数据进行切分。该预设切分规则可以根据实际应用场景进行设置,例如,在目标对象为目标用户的情况下,该预设切分规则可以为将目标用户身体的动作骨骼点数据切分为上半身骨骼点数据和下半身骨骼点数据。或者,根据人体部分进行切分,将动作骨骼点数据切分为6个部分,该6个部分的骨骼点数据分别为手掌、手臂、腿、头、臀部、脚等部位的骨骼点数据。也即是说,针对动作骨骼点数据,可以按照人体部位进行划分,具体可以有多种方案。例如2划分(按上半身和下半身进行划分)、4划分(按照头、手臂、腿、手掌等部位进行划分)、6划分(按照手掌、手臂、腿、头、臀部、脚等部位进行划分)。
[0095] 该局部动作骨骼点数据可以理解为该动作骨骼点数据中局部区域的动作骨骼点数据,例如,在动作骨骼点数据为人体骨骼点数据的情况下,该局部动作骨骼点数据可以为手臂动作骨骼点数据、手掌动作骨骼点数据等。
[0096] 具体的,在确定目标对象的动作骨骼点数据之后,需要对该动作骨骼点数据进行切分,获得至少两个局部动作骨骼点数据,并将该至少两个局部动作骨骼点数据输入至训练后的目标动作识别模型中,获得该目标对象的动作识别结果。
[0097] 沿用上例,用户在喝水过程中身体的动作骨骼点数据,按照预设划分规则将该用户身体的动作骨骼点数据切分为手掌动作骨骼点数据、手臂动作骨骼点数据、头部动作骨骼点数据、臀部动作骨骼点数据、腿部动作骨骼点数据以及脚部动作骨骼点数据等六个部位的动作骨骼点数据。
[0098] 之后将该六个部位的动作骨骼点数据输入至训练后的动作识别模型中,获得该目标用户的当前动作类型为喝水动作。
[0099] 在本说明书提供的一实施例中,为了避免采用单一数据进行模型训练所导致模型的动作识别效果较差的问题,因此充分考虑到其他动作数据对模型训练的增益效果,采用动作骨骼点数据以及动作骨骼点数据对应的动作描述数据对动作识别模型进行训练,具体所述目标动作识别模型的训练步骤包括下述步骤一至步骤三:
[0100] 步骤一:将所述样本对象的动作骨骼点数据输入初始动作识别模型,获得所述动作骨骼点数据的初始动作识别结果。
[0101] 具体的,该初始动作识别结果可以理解为该样本对象的动作骨骼点数据所对应的识别结果,例如,该在样本对象的动作骨骼点数据为喝水动作骨骼点数据的情况下,该初始动作识别结果可以为喝水动作类型。此外,该初始动作识别结果也可以理解为表征该动作骨骼点数据对应的动作类型的特征编码。例如,在该在样本对象的动作骨骼点数据为喝水动作骨骼点数据的情况下,该初始动作识别结果可以为该喝水动作骨骼点数据对应的骨骼特征编码,也即是说,该初始动作识别结果可以为骨骼特征编码,该骨骼特征编码用于表示喝水动作类型。
[0102] 具体的,在对初始动作识别模型进行训练的过程中,首先要确定该样本对象的动作骨骼点数据,其中,该动作骨骼点数据是表征该样本对象整体动作的骨骼点数据;然后将整个动作骨骼点数据输入至初始动作识别模型,获得该动作骨骼点数据的初始动作识别结果。例如,参见图5,图5是本说明书一个实施例提供的一种基于动作骨骼点数据的动作识别方法中一种模型训练的示意图。骨骼编码器为动作识别模型,该文字编码器可以为语言分析模型,基于此,在确定样本用户的动作骨骼点数据之后,能够将该样本用户的整个身体的动作骨骼点数据输入骨骼点编码器进行分析,获得该动作骨骼点数据的骨骼特征编码。后续能够基于该骨骼特征编码,以及该文字编码器对该动作描述文本进行处理获得文字特征编码进行对比损失学习,确定损失函数,并基于该损失函数对该骨骼编码器进行训练,从而使得该骨骼编码器能够准确的确定该骨骼点数据的动作类型。
[0103] 进一步的,在本说明书提供的实施例中,为了提高模型训练的效率,提高训练后的动作识别模型的性能,在训练过程中可以将动作骨骼点数据进行切分,获得至少两个局部动作骨骼点数据,并基于该局部动作骨骼点数据对该动作识别模型进行训练,从而提高目标动作识别模型的动作识别准确度,具体的,所述将所述样本对象的动作骨骼点数据输入初始动作识别模型,获得所述动作骨骼点数据的初始动作识别结果,包括:
[0104] 确定样本对象的动作骨骼点数据,并对所述动作骨骼点数据进行切分,获得至少两个局部动作骨骼点数据;
[0105] 将所述至少两个局部动作骨骼点数据输入动作识别模型,获得所述至少两个局部动作骨骼点数据中每个局部动作骨骼点数据的初始动作识别结果。
[0106] 沿用上例,参见图6,图6是本说明书一个实施例提供的一种基于动作骨骼点数据的动作识别方法中另一种模型训练的示意图。其中,获取样本用户在喝水过程中身体的动作骨骼点数据,将该动作骨骼点数据作为对骨骼编码器进行训练的样本数据,并按照预设划分规则将该样本用户身体的动作骨骼点数据切分为手掌动作骨骼点数据、手臂动作骨骼点数据、头部动作骨骼点数据、臀部动作骨骼点数据、腿部动作骨骼点数据以及脚部动作骨骼点数据等六个部位的动作骨骼点数据。
[0107] 之后将该六个部位的动作骨骼点数据输入至需要训练的骨骼编码器进行编码处理,获得该六个部位的动作骨骼点数据中每个部位的骨骼点数据对应的特征编码。该特征编码表征每个部位的动作骨骼点数据所对应的动作。
[0108] 后续,能够基于该骨骼特征编码以及该文字编码器对该动作描述文本进行处理获得文字特征编码进行对比损失学习,确定损失函数,并基于该损失函数对该骨骼编码器进行训练,从而使得该骨骼编码器能够准确的确定该骨骼点数据的动作类型。
[0109] 步骤二:将所述动作骨骼点数据对应的动作描述数据输入语言分析模型,获得所述动作骨骼点数据的关联动作识别结果。
[0110] 其中,该关联动作识别结果可以理解为该动作描述数据所描述的动作类型。例如,在动作描述数据为“手里拿着东西;手向上移动;喝水;手向下移动”的情况下,该动作描述数据对应的关联动作识别结果为喝水动作。此外,该关联动作识别结果也可以理解为表征该动作描述数据所描述的动作的特征编码。例如,在该动作描述数据为描述喝水动作的文本信息的情况下,该关联动作识别结果可以为该喝水动作对应的特征编码,也即是说,该关联动作识别结果可以为文字特征编码,该文字特征编码用于表示喝水动作。
[0111] 具体的,确定该动作骨骼点数据对应的动作描述数据,并将该动作描述数据输入至该语言分析模型中,获得表征该动作描述数据所描述的动作的识别结果,并将该识别结果作为该动作骨骼点数据的关联动作识别结果。
[0112] 例如,参见图5,在动作骨骼点数据为喝水动作骨骼点数据的情况下,该动作骨骼点数据对应的动作描述数据可以为“手里拿着东西;手向上移动;喝水;手向下移动”;之后,将该动作描述数据输入至文字编码器中进行分析,获得该动作描述数据所描述的动作对应的文字特征编码,并将该文字特征编码作为该喝水动作骨骼点数据对应的关联动作识别结果。
[0113] 在本说明书提供的一实施例中,所述将所述动作骨骼点数据对应的动作描述数据输入语言分析模型,获得所述动作骨骼点数据的关联动作识别结果,包括:
[0114] 确定所述动作骨骼点数据对应的描述数据生成信息,并将所述描述数据生成信息输入语言生成模型,获得所述动作骨骼点数据对应的动作描述数据;
[0115] 将所述动作描述数据输入语言分析模型,获得所述动作骨骼点数据的关联动作识别结果。
[0116] 其中,该描述数据生成信息可以理解为生成该动作表述数据的信息,例如,该描述数据生成信息可以为该动作骨骼点数据对应的提示语。
[0117] 本说明书提供的基于骨骼点数据的动作识别方法,提出了语言监督训练(Language Supervised Training、LST)用于基于骨架的动作识别。具体地说,通过把一个大规模的语言模型作为一个知识引擎,将该提示语输入至该语言模型中,为身体部位的动作提供文本描述。而使用大规模的语言模型(例如GPT‑3)作为知识引擎,生成语言描述,下面列举几种可行的方式:1.生成一段话2.生成几个近义词。
[0118] 比如,将喝水动作骨骼点数据对应的提示语“详细描述一个人“喝水”的情况”输入至语言模型中,获得针对该喝水动作骨骼点数据的动作描述文本,该动作描述文本为“手里拿着东西;手向上移动;喝水;手向下移动”;后续基于该动作描述文本进行模型训练。
[0119] 此外,还可以将提示语“推荐10个“喝水”的同义词”输入至语言模型中,获得该喝水动作的10个同义词;该同义词可以为“小口喝,抿,狂饮,大口啜饮,痛饮,饮用,酌、啜饮、吮吸,豪饮”。
[0120] 进一步的,在上述实施中,为了提高模型的训练效果,会对动作骨骼点数据进行切分,并基于切分获得的局部动作骨骼点数据进行模型训练,基于此,在确定动作骨骼点数据的关联动作识别结果的过程中,需要为每个局部动作骨骼点数据确定对应的动作描述数据,并将该动作描述数据输入至语言分析模型中,为每个局部动作骨骼点数据确定对应的关联动作识别结果,从而提高模型训练的准确性。具体的,所述将所述动作骨骼点数据对应的动作描述数据输入语言分析模型,获得所述动作骨骼点数据的关联动作识别结果,包括:
[0121] 确定所述至少两个局部动作骨骼点数据对应的描述数据生成信息;
[0122] 将所述描述数据生成信息输入语言生成模型,获得所述至少两个局部动作骨骼点数据中每个局部动作骨骼点数据对应的动作描述数据;
[0123] 将所述动作描述数据输入语言分析模型,获得所述每个局部动作骨骼点数据的关联动作识别结果。
[0124] 沿用上例,在将喝水动作骨骼点数据划分为不同部位的多个动作骨骼点数据之后,能够确定被划分后的喝水动作骨骼点数据的提示语,该提示语可以为“问题:在“喝水”过程中,描述以下身体部位的动作:头,手,手臂,臀部,腿,脚。”。之后,将该提示语输入至语言模型中,获得身体部分的动作描述文本“头部:倾斜、手掌:握杯、手臂:把杯子举到嘴边、腿部:保持静止…”。
[0125] 在获得身体各部位的动作描述文本之后,将该动作描述文本输入至文字编码器中,获得该各部位的动作描述文本对应的文本特征编码,并将该特征编码作为该每个部位的动作骨骼点数据的关联动作识别结果。
[0126] 步骤三:基于所述初始动作识别结果以及所述关联动作识别结果,对所述初始动作识别模型进行训练,获得目标动作识别模型。
[0127] 确定动作骨骼点数据的初始动作识别结果,以及基于动作描述信息确定动作骨骼点数据对应的关联动作识别结果之后,可以利用对象损失函数,基于该初始动作识别结果以及关联动作识别结果进行学习。
[0128] 具体的,在确定喝水动作骨骼点数据的骨骼特征编码,以及该动作描述文本的文本特征编码之后,可使用池化操作进行特征聚合,并且使用对比损失函数来进行学习,从而获得训练完成的目标骨骼编码器。
[0129] 其中,需要说明的是,由于上述实施例中提供了将整个身体的动作骨骼点数据输入骨骼编码器,以及将动作骨骼点数据对应的动作描述数据输入该语言分析模型的技术特征,因此,该骨骼编码器输出的初始动作识别结果,以及该语言分析模型输出的关联动作识别结果,均为一个。同时,由于上述实施例中提供了将整个身体的动作骨骼点数据划分多个部位的动作骨骼点数据,并将多个部位的动作骨骼点数据输入骨骼编码器的特征,以及为每个部分的动作骨骼点数据确定对应的动作描述数据,并将该动作描述数据输入该语言分析模型的技术特征,因此,该骨骼编码器输出的初始动作识别结果,以及该语言分析模型输出的关联动作识别结果,均为多个。也即是说,上述该初始动作识别结果可以为一个,也可以为多个。同理,该关联动作识别结果可以为一个,也可以为多个。
[0130] 进一步的,所述基于所述初始动作识别结果以及所述关联动作识别结果,对所述初始动作识别模型进行训练,获得目标动作识别模型,包括:
[0131] 确定所述样本对象的动作骨骼点数据对应的样本标签;
[0132] 基于所述样本标签、所述初始动作识别结果以及所述关联动作识别结果,对所述初始动作识别模型的模型参数进行训练,获得目标动作识别模型。
[0133] 其中,样本标签可以理解为表征该动作骨骼点数据所对应的动作类型。
[0134] 具体的,本说明书提供的基于骨骼点数据的动作识别方法中,在对初始动作识别模型进行训练的过程中,首先确定更改样本对象的动作骨骼点数据对应的样本标签,并基于样本标签、初始动作识别结果以及关联动作识别结果计算出损失函数,并基于该损失函数对该初始动作识别模型的模型参数进行调整,直至达到模型训练停止条件,从而获得该训练完成的目标动作识别模型。
[0135] 进一步的,所述基于所述样本标签、所述初始动作识别结果以及所述关联动作识别结果,对所述初始动作识别模型的模型参数进行训练,获得目标动作识别模型,包括:
[0136] 将所述初始动作识别结果和所述关联动作识别结果进行对比学习,确定第一对比结果以及第二对比结果;
[0137] 基于所述第一对比结果、所述第二对比结果以及所述样本标签确定第一初始损失函数,并基于所述初始动作识别结果以及所述样本标签,确定第二初始损失函数;
[0138] 基于所述第一初始损失函数以及所述第二初始损失函数,确定目标损失函数,并基于所述目标损失函数对所述初始动作识别模型的模型参数进行调整,获得目标动作识别模型。
[0139] 其中,将所述初始动作识别结果和所述关联动作识别结果进行对比学习的步骤,可以理解为将骨骼编码特征以及该文字编码特征进行对比学习,具体可以参见公式(1)[0140]
[0141]
[0142] 上述公式(1)示出了将骨骼编码特征以及该文字编码特征进行对比学习过程,具体针对该公式(1)的解释,可以参见下述实施例对其的描述,在此不做赘述。
[0143] 该第一初始损失函数可以理解为KL散度,该第一初始损失函数可以参见下述公式(2)。
[0144]
[0145] 针对该公式(2)的解释,可以参见下述实施例对其的描述,在此不做赘述。
[0146] 第二初始损失函数可以理解为基于训练样本以及训练样本对应的样本标识确定的交叉熵损失函数。
[0147] 其中,目标损失函数可以理解为将交叉熵损失函数以及该KL散度进行融合所获得的总体信息函数,可以参见下述公式(3)。
[0148]
[0149] 针对该公式(3)的解释,可以参见下述实施例对其的描述,在此不做赘述。
[0150] 具体的,在基于样本标签、初始动作识别结果以及关联动作识别结果,对初始动作识别模型的模型参数进行训练的过程中,具体包括如下步骤。
[0151] 步骤一,将所述初始动作识别结果和所述关联动作识别结果进行对比学习,确定第一对比结果以及第二对比结果。
[0152] 具体的,样本对象的动作骨骼点数据为至少两个,所述动作骨骼点数据对应的动作描述数据为至少两个;相应地,初始动作识别结果为至少两个,该关联动作识别结果也为至少两个。
[0153] 基于此,将初始动作识别结果和关联动作识别结果进行对比学习,确定第一对比结果的过程包括:
[0154] 首先,确定第一初始动作识别结果与第一关联动作识别结果之间的第一相似度;
[0155] 其中,第一初始动作识别结果为至少两个初始动作识别结果中的任意一个初始动作识别结果;该第一关联动作识别结果为至少两个关联动作识别结果中,与该第一初始动作识别结果对应的关联动作识别结果。需要说明的是,该生成第一初始动作识别结果的动作骨骼点数据与生成第一关联动作识别结果的动作描述数据之间存在对应关系。
[0156] 该相似度可以理解为表征第一初始动作识别结果与第一关联动作识别结果之间相似程度的参数。
[0157] 其次,确定第一初始动作识别结果与其他关联动作识别结果之间的第二相似度。
[0158] 其中,该其他关联动作识别结果可以理解为该至少两个关联动作识别结果中,除第一关联动作识别结果之外的其他关联动作识别结果。
[0159] 然后,基于第一相似度以及第二相似度,确定该第一初始动作识别结果的损失结果,并将该损失结果作为第一对比结果;该损失结果可以为损失值,例如,上述公式(1)中的[0160] 相应地,将初始动作识别结果和关联动作识别结果进行对比学习,确定第二对比结果的过程包括:
[0161] 首先,确定第二关联动作识别结果与第二初始动作识别结果之间的第三相似度;
[0162] 其中,第二关联动作识别结果为至少两个关联动作识别结果中的任意一个关联动作识别结果;第二初始动作识别结果为至少两个初始动作识别结果中,与该第二关联动作识别结果对应的初始动作识别结果;需要说明的是,该生成第二初始动作识别结果的动作骨骼点数据与生成第二关联动作识别结果的动作描述数据之间存在对应关系。
[0163] 其次,确定第二关联动作识别结果与其他初始动作识别结果之间的第四相似度。
[0164] 其中,该其他初始动作识别结果可以理解为该至少两个初始动作识别结果中,除第二初始动作识别结果之外的其他初始动作识别结果。
[0165] 然后,基于第一相似度以及第二相似度,确定该第二关联动作识别结果的损失结果,并将该损失结果作为第二对比结果。该损失结果可以为损失值,例如,上述公式(1)中的[0166] 步骤二:基于所述第一对比结果、所述第二对比结果以及所述样本标签确定第一初始损失函数,并基于所述初始动作识别结果以及所述样本标签,确定第二初始损失函数,包括:
[0167] 将所述第一对比结果、第二对比结果以及样本标签确定KL散度损失函数,并将KL散度损失函数作为第一初始损失函数;并基于该初始动作识别结果以及样本标签,确定交叉熵损失函数,并将该交叉熵损失函数作为第二初始损失函数。
[0168] 步骤三:基于所述第一初始损失函数以及所述第二初始损失函数,确定目标损失函数,并基于所述目标损失函数对所述初始动作识别模型的模型参数进行调整,获得目标动作识别模型。
[0169] 将第一初始损失函数以及第二初始损失函数进行融合,获得目标损失函数;
[0170] 基于该目标损失函数对该初始动作识别模型的模型参数进行调整,获得目标动作识别模型。
[0171] 具体针对上述步骤的举例说明,可参见下述实施例中对应或相应的解释,本说明书对此不作具体限定。
[0172] 需要注意的是,在本说明书提供的实施例中,会将动作骨骼点数据切分为至少两个局部动作骨骼点数据,并通过该局部动作骨骼点数据对初始动作识别模型进行训练;而基于该局部动作骨骼点数据对动作识别模型进行训练的过程,可以参见上述通过动作骨骼点数据对该初始动作识别模型进行训练的过程,本说明书对此不作具体限定。
[0173] 例如,基于该局部动作骨骼点数据对初始动作识别模型进行训练的过程,可以为:
[0174] 确定所述样本对象的动作骨骼点数据对应的样本标签;
[0175] 基于所述样本标签、所述每个局部动作骨骼点数据的初始动作识别结果,以及所述每个局部动作骨骼点数据对应的关联动作识别结果,对所述初始动作识别模型的模型参数进行训练,获得目标动作识别模型。
[0176] 进一步的,所述基于所述样本标签、所述每个局部动作骨骼点数据的初始动作识别结果,以及所述每个局部动作骨骼点数据对应的关联动作识别结果,对所述初始动作识别模型的模型参数进行训练,获得目标动作识别模型,包括:
[0177] 将所述每个局部动作骨骼点数据对应的初始动作识别结果,和所述每个局部动作骨骼点数据对应的关联动作识别结果进行对比学习,确定第一对比结果以及第二对比结果;
[0178] 基于所述第一对比结果、所述第二对比结果以及所述样本标签确定第一初始损失函数,并基于所述每个局部动作骨骼点数据对应的初始动作识别结果以及所述样本标签,确定第二初始损失函数;
[0179] 基于所述第一初始损失函数以及所述第二初始损失函数,确定目标损失函数,并基于所述目标损失函数对所述初始动作识别模型的模型参数进行调整,获得目标动作识别模型。
[0180] 针对上述基于该局部动作骨骼点数据对初始动作识别模型进行训练的过程的解释,可以参考上述实施例中对应或相应的解释,本说明书对此不做具体限定。
[0181] 本说明书提供的基于骨骼点数据的动作识别方法,基于样本对象的动作骨骼点数据,以及该动作骨骼点数据对应的动作描述数据训练获得目标动作识别模型,充分考虑到其他动作数据对模型训练的增益效果,避免了采用单一数据进行模型训练所导致模型的动作识别效果较差的问题,从而获得动作识别效果较优的目标动作识别模型;基于该目标动作识别模型对目标对象的动作骨骼点数据进行动作识别,提高了动作识别的准确率。
[0182] 下述结合附图7,以本说明书提供的基于动作骨骼点数据的动作识别方法在动作识别场景下的应用为例,对所述基于动作骨骼点数据的动作识别方法进行进一步说明。其中,图7示出了本说明书一个实施例提供的一种基于动作骨骼点数据的动作识别方法的第一种处理过程流程图,需要说明的是,本说明书提供的基于动作骨骼点数据的动作识别方法,能够通过动作骨骼点数据以及对应的动作描述文本,训练出能够基于动作骨骼点数据进行动作识别的模型,从而基于该模型实现对用户进行动作识别,具体包括以下步骤。
[0183] 步骤702:确定样本用户的动作骨骼点数据以及该动作骨骼点数据对应的提示语。
[0184] 其中,动作骨骼点数据可以为喝水动作骨骼点数据。提示语可以理解为上述实施例中的描述数据生成信息,例如,该提示语可以包括多种类型,比如,段落类型(paragraph)、同义词类型(Synonyms)等。
[0185] 其中,段落类型的提示语可以生成一段针对动作的描述文本,例如,该段落类型的提示语可以为“详细描述一个人“喝水”的情况”。
[0186] 其中,同义词类型的提示语可以生成针对动作的同义词,例如,该同义词类型的提示语可以为“推荐10个“喝水”的同义词”;不同提示语可以生成的文本效果。
[0187] 步骤704:将该提示语输入至语言模型中,获得该动作骨骼点数据对应的动作描述文本。
[0188] 具体的,将喝水动作骨骼点数据对应的提示语“详细描述一个人“喝水”的情况”输入至语言模型中,获得针对该喝水动作骨骼点数据的动作描述文本,该动作描述文本为“手里拿着东西;手向上移动;喝水;手向下移动”;后续基于该动作描述文本进行模型训练。
[0189] 此外,还可以将提示语“推荐10个“喝水”的同义词”输入至语言模型中,获得该喝水动作的10个同义词;该同义词可以为“小口喝,抿,狂饮,大口啜饮,痛饮,饮用,酌、啜饮、吮吸,豪饮”。
[0190] 需要说明的是,在获得该同义词之后,需要将该动作描述文本中的词语“喝水”,替换“喝水”的同义词,从而获得多个针对该喝水动作骨骼点数据的动作描述文本;后续基于该动作描述文本进行模型训练。
[0191] 步骤706:将该动作骨骼点数据输入至骨骼编码器中,获得该骨骼编码器输出骨骼编码特征。
[0192] 其中,该骨骼编码特征用于表征该喝水动作骨骼点数据对应的喝水动作。
[0193] 步骤708:将针对该喝水动作骨骼点数据的动作描述文本输入至文字编码器,获得该文字编码器输出的文字编码特征。
[0194] 其中,该文字编码特征用于表征该动作描述数据所描述的喝水动作。
[0195] 步骤710:将骨骼编码特征以及该文字编码特征进行对比学习,获得对比学习结果。
[0196] 具体的,参见图5、图6,人体骨骼点数据和动作描述文本分别采用不同的编码器进行特征编码。骨骼关键点的骨骼点编码器可以采用了GCN,需要说明的是,采用其他骨骼编码模型也不影响基于该骨骼点数据的动作识别方法的实现。文字编码器可以采用transformer,是在大规模文字‑图像对(或者纯文字任务)数据集上进行预训练过的模型。编码完之后,采用对比学习的损失和函数进行训练。
[0197] 其中,在采用对比学习的损失和函数进行训练的过程中,首先需要基于该骨骼编码特征以及该文字编码特征进行对比学习,针对每个特征编码都采取对比学习损失函数。对比学习的公式如下:
[0198]
[0199]
[0200] 其中,s是骨骼编码器编码的骨骼特征编码;t是文字编码器编码的文字特征编码;τ是一个参数用来控制尺度;N是样本数量;exp(sim(si,ti)/τ)表示第i个样本(即动作骨骼点数据)的骨骼特征编码s与第i个样本对应的动作描述文本的文字特征编码t之间的相似度。 表示第i个样本的骨骼特征编码s与整个batch内所有的动作描述
文本的文字特征编码t之间的相似度。batch可以理解为进行一次模型训练的训练样本的集合,该batch的样本数量为N。 第i个样本的对比学习的损失值。
[0201] 该exp(sim(ti,si)/τ)表示第i个样本对应的动作描述文本的文字特征编码t与第i个样本的骨骼特征编码s之间的相似度。该 表示第i个样本对应的动作描述文本的文字特征编码t与整个batch内所有的样本的骨骼特征编码s之间的相似度。 第i个样本的动作描述文本的对比学习的损失值。
[0202] 步骤712:确定动作骨骼点数据的第一损失函数。
[0203] 具体的,由于训练的时候,一个batch中可能存在多个一样类别的动作,因此本方案采用了KL divergence(KL散度)作为损失函数,而不是交叉熵。具体损失函数如下:
[0204]
[0205] 其中,该ys2t和yt2s是训练样本在两个方向的标签;其中,该在训练样本为喝水动作骨骼点数据的情况下,该样本标签为喝水动作类型。D为整个数据集、E为期望。
[0206] 此外,需要说明的是,在contrastive loss(对比学习损失)的过程中,经过特征相似度的计算,形成一个相似度矩阵,也即是说, 以及 为矩阵形式。其中,每一行表示一个骨骼点样本特征和对应的文字样本特征的相似度,每一列表示文字样本特征对应的骨骼点样本特征相似度。而该样本标签是一种表示在行和列方向,骨骼和文字样本是否属于同一类别的信息。
[0207] 步骤714:融合第一对比损失函数以及交叉熵损失函数,获得总体的损失函数。
[0208]
[0209] 其中,λ是1个超参数,用来控制loss的比例;K表示人体部位数量,在没有将用户身体的动作骨骼点数据划分为多个部位的动作骨骼点数据的情况下,K=1; 为交叉熵损失函数,该交叉熵损失函数是基于训练样本以及训练样本对应的样本标签确定。
[0210] 步骤716:基于该总体损失函数对该骨骼编码器进行训练,直至达到训练停止条件,获得训练后的骨骼编码器。
[0211] 步骤718:将该骨骼编码器部署至真实生成环境中,并将接收到的用户的动作骨骼点数据输入该骨骼编码器,获得该用户的动作类型。
[0212] 下述结合附图8,以本说明书提供的基于动作骨骼点数据的动作识别方法在动作识别场景下的应用为例,对所述基于动作骨骼点数据的动作识别方法进行进一步说明。其中,图8示出了本说明书一个实施例提供的一种基于动作骨骼点数据的动作识别方法的第二种处理过程流程图,需要说明的是,本说明书提供的基于动作骨骼点数据的动作识别方法,能够通过用户身体中每个部位动作骨骼点数据以及对应的动作描述文本,训练出准确性较高的动作识别模型,从而基于该模型实现跟细粒度的动作识别,具体包括以下步骤。
[0213] 步骤802:确定样本用户各部位的动作骨骼点数据以及该动作骨骼点数据对应的提示语。
[0214] 其中,该提示语还可以部件描述类型(part description),其中,部件描述类型的提示语可以生成针对身体各部位的动作描述,例如:“问题:描述在“喝水”过程中,以下身体部位的动作:头,手,手臂,臀部,腿,脚”。
[0215] 其中,该样本用户各部位的动作骨骼点数据是通过对样本用户的身体动作骨骼点数据进行划分确定的,该人体部位的划分可以有多种方案。例如2划分、4划分、6划分,在划分完之后,后续可使用池化操作进行特征聚合,并且使用对比损失函数来进行学习。
[0216] 步骤804:将该提示语输入至语言模型中,获得该各部位的动作骨骼点数据对应的动作描述文本。
[0217] 具体的,将喝水动作骨骼点数据对应的提示语“详细描述一个人“喝水”的情况”输入至语言模型中,获得针对该喝水动作骨骼点数据的动作描述文本,该动作描述文本为“头部:倾斜、手掌:握杯、手臂:把杯子举到嘴边、腿部:保持静止、脚:静止、臀部:静止”。
[0218] 步骤806:将各部位的动作骨骼点数据输入至骨骼编码器中,获得该骨骼编码器输出各部位的骨骼编码特征。
[0219] 其中,该骨骼编码特征用于表征在喝水过程中,各部位的动作骨骼点数据对应的动作。
[0220] 步骤808:将针对各部位的动作骨骼点数据的动作描述文本输入至文字编码器,获得各部位的文字编码特征。
[0221] 其中,该文字编码特征用于表征在喝水过程中,动作描述数据所描述的各部位的动作。
[0222] 步骤810:将骨骼编码特征以及该文字编码特征进行对比学习,获得对比学习结果。
[0223] 具体的,参见图6,人体骨骼点数据和动作描述文本分别采用不同的编码器进行特征编码。由于本方案采用了多个人体部位的特征来对应不同部位的语言描述,因此使用一个多部位对比学习损失函数。即对每个部位的特征都采取对比学习损失函数;对比学习的公式如下:
[0224]
[0225]
[0226] 其中,s是指一个部位的动作骨骼点数据所对应的骨骼特征编码;t是指一个部位的动作描述文本所对应的文字特征编码;其他参数可参见上述实施例中的解释。
[0227] 步骤812:确定动作骨骼点数据的第一损失函数。
[0228] 具体的,由于训练的时候,一个batch中可能存在多个一样类别的动作,因此本方案采用了KL divergence(KL散度)作为损失函数,而不是交叉熵。具体损失函数如下:
[0229]
[0230] 其中,该ys2t和yt2s是训练样本在两个方向的标签;其中,该在训练样本为喝水动作骨骼点数据的情况下,该样本标签为喝水动作类型。D为整个数据集、E为期望。
[0231] 步骤814:融合多个部位的第一对比损失函数以及交叉熵损失函数,获得总体的损失函数。
[0232] 其中,当融合了多个部位的对比损失时,获得总体的损失函数如下:
[0233]
[0234] 步骤816:基于该总体损失函数对该骨骼编码器进行训练,直至达到训练停止条件,获得训练后的骨骼编码器。
[0235] 步骤818:将该骨骼编码器部署至真实生成环境中,并将接收到的用户各部位的动作骨骼点数据输入该骨骼编码器,获得该用户的动作类型。
[0236] 本说明书提供的基于骨骼点数据的动作识别方法,采用骨骼和文字双编码器的模式,并且,大规模语言模型去产生文字描述,而不是使用一些无意义的前后缀来组成提示语。相较于比直接使用类别名作为提示语的方案在性能上有明显提升。在NTU RGB+D,NTU RGB+D 120,NW_UCLA等公开数据集上均有明显的优势。也即是说,本方法使用语言模型来辅助基于骨骼关键点动作识别,并通过设计提示语,使用了大规模的语言模型来自动生成动作描述。因此,相对于直接使用类别名,对模型性能有明显的提升。
[0237] 参见图9,图9示出了根据本说明书一个实施例提供的第二种动作识别方法的流程图,具体包括以下步骤。
[0238] 步骤902:基于用户的调用请求为所述用户展示数据输入界面。
[0239] 步骤904:接收所述用户基于所述数据输入界面输入的、目标对象的动作骨骼点数据,将所述动作骨骼点数据输入目标动作识别模型,获得所述目标对象的动作识别结果。
[0240] 其中,所述目标动作识别模型基于样本对象的动作骨骼点数据,以及所述动作骨骼点数据对应的动作描述数据训练获得,所述目标动作识别模型为机器学习模型。该目标对象可以为用户自身,也即是说,本说明书提供的动作识别方法,能够接收用户基于所述数据输入界面输入的、该用户的动作骨骼点数据,后续能够获得该用户的动作识别结果。
[0241] 其中,该数据输入界面可以理解为该动作识别方法所提供的用户交互界面,用户能够通过发送调用请求从而将该数据输入界面展示给用户,使得用户能够通过该数据输入界面输入动作骨骼点数据发送至客户端或服务端,客户端或服务端在接收到该接收用户基于数据输入界面输入的目标对象的动作骨骼点数据,将动作骨骼点数据输入目标动作识别模型,获得目标对象的动作识别结果。其中,针对该目标动作识别模型的训练过程等解释,可以参见上述实施例中对应或相应的内容。
[0242] 本说明书提供的第二种动作识别方法,通过基于样本对象的动作骨骼点数据,以及该动作骨骼点数据对应的动作描述数据训练获得目标动作识别模型,充分考虑到其他动作数据对模型训练的增益效果,避免了采用单一数据进行模型训练所导致模型的动作识别效果较差的问题,从而获得动作识别效果较优的目标动作识别模型;基于此,在接到用户通过数据输入界面输入的动作骨骼点数据时,能够基于该目标动作识别模型对目标对象的动作骨骼点数据进行动作识别,提高了动作识别的准确率。
[0243] 参见图10,图10示出了根据本说明书一个实施例提供的一种动作识别方法的流程图,具体包括以下步骤。
[0244] 步骤1002:接收用户发送的调用请求,其中,所述调用请求中携带有目标对象的动作骨骼点数据。
[0245] 步骤1004:将所述动作骨骼点数据输入目标动作识别模型,获得所述目标对象的动作识别结果。
[0246] 其中,所述目标动作识别模型基于样本对象的动作骨骼点数据,以及所述动作骨骼点数据对应的动作描述数据训练获得,所述目标动作识别模型为机器学习模型。
[0247] 其中,调用请求可以理解为用户发送的、调用该动作识别方法所提供的动作识别服务的调用请求,该在动作识别方法应用于不同的场景下,该调用请求也不同。
[0248] 具体的,客户端或服务端接收用户发送的调用请求,其中,所述调用请求中携带有目标对象的动作骨骼点数据;之后客户端或服务端基于该调用请求,将所述动作骨骼点数据输入目标动作识别模型,获得所述目标对象的动作识别结果。其中,针对该目标动作识别模型的训练过程等解释,可以参见上述实施例中对应或相应的内容。
[0249] 本说明书提供的第三种动作识别方法,通过基于样本对象的动作骨骼点数据,以及该动作骨骼点数据对应的动作描述数据训练获得目标动作识别模型,充分考虑到其他动作数据对模型训练的增益效果,避免了采用单一数据进行模型训练所导致模型的动作识别效果较差的问题,从而获得动作识别效果较优的目标动作识别模型;基于此,在接收到用发送的、携带有目标对象的动作骨骼点数据的调用请求的情况下,能够基于该目标动作识别模型对目标对象的动作骨骼点数据进行动作识别,提高了动作识别的准确率。
[0250] 与上述方法实施例相对应,本说明书还提供了动作识别装置实施例,该装置包括:
[0251] 确定模块,被配置为确定目标对象的动作关键点数据;
[0252] 识别模块,被配置为将所述动作关键点数据输入目标动作识别模型,获得所述目标对象的动作识别结果,其中,所述目标动作识别模型基于样本对象的动作关键点数据,以及所述动作关键点数据对应的动作描述数据训练获得,所述目标动作识别模型为机器学习模型。
[0253] 可选地,所述动作识别装置还包括训练模块,被配置为:
[0254] 将所述样本对象的动作关键点数据输入初始动作识别模型,获得所述动作关键点数据的初始动作识别结果,其中,所述动作关键点数据从包含所述动作关键点数据的图像数据或者视频数据中获得;
[0255] 将所述动作关键点数据对应的动作描述数据输入语言分析模型,获得所述动作关键点数据的关联动作识别结果;
[0256] 基于所述初始动作识别结果以及所述关联动作识别结果,对所述初始动作识别模型进行训练,获得目标动作识别模型。
[0257] 可选地,所述训练模块,还被配置为:
[0258] 确定所述样本对象的动作关键点数据对应的样本标签;
[0259] 基于所述样本标签、所述初始动作识别结果以及所述关联动作识别结果,对所述初始动作识别模型的模型参数进行训练,获得目标动作识别模型。
[0260] 本说明书提供的动作识别装置,基于样本对象的动作关键点数据,以及该动作关键点数据对应的动作描述数据训练获得目标动作识别模型,充分考虑到其他动作数据对模型训练的增益效果,避免了采用单一数据进行模型训练所导致模型的动作识别效果较差的问题,从而获得动作识别效果较优的目标动作识别模型;基于该目标动作识别模型对目标对象的动作关键点数据进行动作识别,提高了动作识别的准确率。
[0261] 上述为本实施例的一种动作识别装置的示意性方案。需要说明的是,该动作识别装置的技术方案与上述的动作识别方法的技术方案属于同一构思,动作识别装置的技术方案未详细描述的细节内容,均可以参见上述动作识别方法的技术方案的描述。
[0262] 与上述方法实施例相对应,本说明书还提供了基于动作骨骼点数据的动作识别装置实施例,该装置包括:
[0263] 确定模块,被配置为确定目标对象的动作骨骼点数据;
[0264] 识别模块,被配置为将所述动作骨骼点数据输入目标动作识别模型,获得所述目标对象的动作识别结果,其中,所述目标动作识别模型基于样本对象的动作骨骼点数据,以及所述动作骨骼点数据对应的动作描述数据训练获得,所述目标动作识别模型为机器学习模型。
[0265] 可选地,所述基于动作骨骼点数据的动作识别装置还包括训练模块,被配置为:
[0266] 将所述样本对象的动作骨骼点数据输入初始动作识别模型,获得所述动作骨骼点数据的初始动作识别结果;
[0267] 将所述动作骨骼点数据对应的动作描述数据输入语言分析模型,获得所述动作骨骼点数据的关联动作识别结果;
[0268] 基于所述初始动作识别结果以及所述关联动作识别结果,对所述初始动作识别模型进行训练,获得目标动作识别模型。
[0269] 可选地,所述训练模块,还被配置为:
[0270] 确定所述动作骨骼点数据对应的描述数据生成信息,并将所述描述数据生成信息输入语言生成模型,获得所述动作骨骼点数据对应的动作描述数据;
[0271] 将所述动作描述数据输入语言分析模型,获得所述动作骨骼点数据的关联动作识别结果。
[0272] 可选地,所述训练模块,还被配置为:
[0273] 确定样本对象的动作骨骼点数据,并对所述动作骨骼点数据进行切分,获得至少两个局部动作骨骼点数据;
[0274] 将所述至少两个局部动作骨骼点数据输入动作识别模型,获得所述至少两个局部动作骨骼点数据中每个局部动作骨骼点数据的初始动作识别结果。
[0275] 可选地,所述训练模块,还被配置为:
[0276] 确定所述至少两个局部动作骨骼点数据对应的描述数据生成信息;
[0277] 将所述描述数据生成信息输入语言生成模型,获得所述至少两个局部动作骨骼点数据中每个局部动作骨骼点数据对应的动作描述数据;
[0278] 将所述动作描述数据输入语言分析模型,获得所述每个局部动作骨骼点数据的关联动作识别结果。
[0279] 可选地,所述训练模块,还被配置为:
[0280] 确定所述样本对象的动作骨骼点数据对应的样本标签;
[0281] 基于所述样本标签、所述初始动作识别结果以及所述关联动作识别结果,对所述初始动作识别模型的模型参数进行训练,获得目标动作识别模型。
[0282] 可选地,所述训练模块,还被配置为:
[0283] 将所述初始动作识别结果和所述关联动作识别结果进行对比学习,确定第一对比结果以及第二对比结果;
[0284] 基于所述第一对比结果、所述第二对比结果以及所述样本标签确定第一初始损失函数,并基于所述初始动作识别结果以及所述样本标签,确定第二初始损失函数;
[0285] 基于所述第一初始损失函数以及所述第二初始损失函数,确定目标损失函数,并基于所述目标损失函数对所述初始动作识别模型的模型参数进行调整,获得目标动作识别模型。
[0286] 可选地,所述识别模块,还被配置为:
[0287] 对所述动作骨骼点数据进行切分,获得至少两个局部动作骨骼点数据,其中,所述动作骨骼点数据从包含所述动作骨骼点数据的图像数据或者视频数据中获得;
[0288] 将所述至少两个局部动作骨骼点数据输入目标动作识别模型,获得所述目标对象的动作识别结果。
[0289] 本说明书提供的基于骨骼点数据的动作识别装置,基于样本对象的动作骨骼点数据,以及该动作骨骼点数据对应的动作描述数据训练获得目标动作识别模型,充分考虑到其他动作数据对模型训练的增益效果,避免了采用单一数据进行模型训练所导致模型的动作识别效果较差的问题,从而获得动作识别效果较优的目标动作识别模型;基于该目标动作识别模型对目标对象的动作骨骼点数据进行动作识别,提高了动作识别的准确率。
[0290] 上述为本实施例的一种基于骨骼点数据的动作识别装置的示意性方案。需要说明的是,该基于骨骼点数据的动作识别装置的技术方案与上述的基于骨骼点数据的动作识别方法的技术方案属于同一构思,基于骨骼点数据的动作识别装置的技术方案未详细描述的细节内容,均可以参见上述基于骨骼点数据的动作识别方法的技术方案的描述。
[0291] 与上述方法实施例相对应,本说明书还提供了第二种动作识别装置实施例,该装置包括:
[0292] 展示模块,被配置为基于用户的调用请求为所述用户展示数据输入界面;
[0293] 识别模块,被配置为接收所述用户基于所述数据输入界面输入的、目标对象的动作骨骼点数据,将所述动作骨骼点数据输入目标动作识别模型,获得所述目标对象的动作识别结果,其中,所述目标动作识别模型基于样本对象的动作骨骼点数据,以及所述动作骨骼点数据对应的动作描述数据训练获得,所述目标动作识别模型为机器学习模型。
[0294] 本说明书提供的第二种动作识别装置,通过基于样本对象的动作骨骼点数据,以及该动作骨骼点数据对应的动作描述数据训练获得目标动作识别模型,充分考虑到其他动作数据对模型训练的增益效果,避免了采用单一数据进行模型训练所导致模型的动作识别效果较差的问题,从而获得动作识别效果较优的目标动作识别模型;基于此,在接到用户通过数据输入界面输入的动作骨骼点数据时,能够基于该目标动作识别模型对目标对象的动作骨骼点数据进行动作识别,提高了动作识别的准确率。
[0295] 上述为本实施例的第二种动作识别装置的示意性方案。需要说明的是,该第二种动作识别装置的技术方案与上述的第二种动作识别方法的技术方案属于同一构思,第二种动作识别装置的技术方案未详细描述的细节内容,均可以参见上述第二种动作识别方法的技术方案的描述。
[0296] 与上述方法实施例相对应,本说明书还提供了第三种动作识别装置实施例,该装置包括:
[0297] 接收模块,被配置为接收用户发送的调用请求,其中,所述调用请求中携带有目标对象的动作骨骼点数据;
[0298] 识别模块,被配置为将所述动作骨骼点数据输入目标动作识别模型,获得所述目标对象的动作识别结果,其中,所述目标动作识别模型基于样本对象的动作骨骼点数据,以及所述动作骨骼点数据对应的动作描述数据训练获得,所述目标动作识别模型为机器学习模型。
[0299] 本说明书提供的第三种动作识别装置,通过基于样本对象的动作骨骼点数据,以及该动作骨骼点数据对应的动作描述数据训练获得目标动作识别模型,充分考虑到其他动作数据对模型训练的增益效果,避免了采用单一数据进行模型训练所导致模型的动作识别效果较差的问题,从而获得动作识别效果较优的目标动作识别模型;基于此,在接收到用发送的、携带有目标对象的动作骨骼点数据的调用请求的情况下,能够基于该目标动作识别模型对目标对象的动作骨骼点数据进行动作识别,提高了动作识别的准确率。
[0300] 上述为本实施例的第三种动作识别装置的示意性方案。需要说明的是,该第三种动作识别装置的技术方案与上述的第三种动作识别方法的技术方案属于同一构思,第三种动作识别装置的技术方案未详细描述的细节内容,均可以参见上述第三种动作识别方法的技术方案的描述。
[0301] 图11示出了根据本说明书一个实施例提供的一种计算设备1100的结构框图。该计算设备1100的部件包括但不限于存储器1110和处理器1120。处理器1120与存储器1110通过总线1130相连接,数据库1150用于保存数据。
[0302] 计算设备1100还包括接入设备1140,接入设备1140使得计算设备1100能够经由一个或多个网络1160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi‑MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
[0303] 在本说明书的一个实施例中,计算设备1100的上述部件以及图11中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图11所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0304] 计算设备1100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1100还可以是移动式或静止式的服务器。
[0305] 其中,处理器1120用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述动作识别方法,或者基于骨骼点数据的动作识别方法的步骤。
[0306] 上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的动作识别方法,或者基于骨骼点数据的动作识别方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述动作识别方法,或者基于骨骼点数据的动作识别方法的技术方案的描述。
[0307] 本说明书一实施例还提供一种增强现实AR、虚拟现实VR、混合现实MR或扩展现实XR设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述动作识别方法,或者基于动作骨骼点数据的动作识别方法的步骤;和渲染所述动作识别结果。
[0308] 上述为本实施例的一种增强现实AR、虚拟现实VR、混合现实MR或扩展现实XR设备的示意性方案。需要说明的是,该增强现实AR、虚拟现实VR、混合现实MR或扩展现实XR设备的技术方案与上述的动作识别方法,或者基于骨骼点数据的动作识别方法的技术方案属于同一构思,增强现实AR、虚拟现实VR、混合现实MR或扩展现实XR设备的技术方案未详细描述的细节内容,均可以参见上述动作识别方法,或者基于骨骼点数据的动作识别方法的技术方案的描述。
[0309] 本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述动作识别方法,或者基于骨骼点数据的动作识别方法的步骤。
[0310] 上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的动作识别方法,或者基于骨骼点数据的动作识别方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述动作识别方法,或者基于骨骼点数据的动作识别方法的技术方案的描述。
[0311] 本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述动作识别方法,或者基于骨骼点数据的动作识别方法的步骤。
[0312] 上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的动作识别方法,或者基于骨骼点数据的动作识别方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述动作识别方法,或者基于骨骼点数据的动作识别方法的技术方案的描述。
[0313] 上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0314] 所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0315] 需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
[0316] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0317] 以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。