一种图像三维动作信息的捕捉方法和系统与流程

文档序号:30953354发布日期:2022-07-30 08:43阅读:169来源:国知局
一种图像三维动作信息的捕捉方法和系统与流程

1.本说明书涉及计算机视觉、图像处理、深度学习领域,特别涉及一种图像三维动作信息的捕捉方法和系统。


背景技术:

2.传统动作捕捉技术主要是把动作传感器绑定在表演者身体某些部位上,在表演者表演动作时,通过动捕设备捕捉该部位的位置、速度等物理指标,得到该动作三维信息。传统动捕方式主要有光学动捕和惯性动捕等。光学动捕受光照和场地影响较大,且表演时需要注意不能遮挡传感器,适用范围较窄。惯性动捕有时不能满足使用精度要求。此外,传统硬件动捕方式,都需要相关硬件设备表演者配合才能完成动作捕捉,人力和时间成本较高。
3.因此,有必要提出一种不依靠动捕设备和表演者就能低成本、高效率地获取动作三维信息的方法。


技术实现要素:

4.本说明书提供了一种图像三维动作信息的捕捉方法和系统,可以利用机器学习模型提取图像三维动作信息,节约人力成本和时间成本。
5.本说明书实施例的一个方面提供一种图像三维动作信息的捕捉方法。所述图像三维动作信息的捕捉方法包括:获取待处理图像;所述待处理图像为包括目标对象的三维动作的图像;通过位置检测模型,基于所述待处理图像,获取所述目标对象的预设关节的三维位置;通过扭角预测模型,基于所述待处理图像,获取所述目标对象的所述预设关节的扭角信息;基于所述预设关节的三维位置和所述预设关节的扭角信息,确定所述预设关节的三维旋转信息;基于所述预设关节的三维旋转信息及所述预设关节的三维位置得到图像三维动作信息。
6.本说明书实施例另外一个方面提供一种图像三维动作信息的捕捉方系统,所述系统包括:第一获取模块,用于获取待处理图像,所述待处理图像为包括目标对象的三维动作的图像;第二获取模块,用于通过位置检测模型,基于所述待处理图像,获取所述目标对象的预设关节的三维位置;第三获取模块,用于通过扭角预测模型,基于所述待处理图像,获取所述目标对象的所述预设关节的扭角信息;第一确定模块,用于基于所述预设关节的三维位置和所述预设关节的扭角信息,确定所述预设关节的三维旋转信息;第二确定模块,用于基于所述预设关节的三维旋转信息及所述预设关节的三维位置得到图像三维动作信息。
7.本说明书实施例另外一个方面提供一种图像三维动作信息的捕捉装置,所述装置包括:至少一个处理器以及至少一个存储器;所述至少一个存储器用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令中的至少部分指令以实现图像三维动作信息捕捉的方法。
8.本说明书实施例另外一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当所述计算机指令被处理器执行时实现图像三维动作信息捕捉的方法。
附图说明
9.本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
10.图1是根据本说明书一些实施例所示的图像三维动作信息的捕捉系统的应用场景示意图;
11.图2是根据本说明书一些实施例所示的图像三维动作信息的捕捉的方法的示例性流程图;
12.图3是根据本说明书一些实施例所示的图像三维动作信息的捕捉系统的示例性模块图;
13.图4是根据本说明书一些实施例所示的位置检测模型的示意图;
14.图5是根据本说明书一些实施例所示的三维位置检测模型的示意图;
15.图6是根据本说明书一些实施例所示的修正三维位置的示例性示意图。
具体实施方式
16.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
17.应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
18.如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
19.本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
20.图1是根据本说明书一些实施例所示的图像三维动作信息捕捉系统的应用场景示意图。
21.如图1所示,在一些实施例中,所述图像三维动作信息捕捉系统的应用场景100可以包括处理设备110、网络120、存储设备130、用户终端140和图像获取设备150。图像三维动作信息的捕捉系统100可以用于捕捉图片或视频中的动作信息。
22.图像三维动作信息的捕捉系统可以用于捕捉人的动作信息,并将捕捉的动作信息用于后续处理。例如,图像三维动作信息的捕捉系统100可以捕捉舞蹈演员的舞蹈动作,然后将捕捉的舞蹈动作应用于虚拟人,使得虚拟人可以呈现该舞蹈演员的舞蹈,其中,虚拟人
可以为机器人、2d和/或3d人体等。又例如,图像三维动作信息的捕捉系统100可以捕捉用户的姿势,然后对捕捉的用户的姿势进行检测,根据检测结果确定用户发出的指令。
23.处理设备110可以处理来自本系统至少一个组件或外部数据源的数据和/或信息。例如,处理设备110可以获取图像获取设备150获取的图像,并对获取的图像进行处理,提取图像中的动作信息。在一些实施例中,处理设备110可以是本地或远程的。例如,处理设备110可以通过有线或无线的方式从存储设备130、用户终端140和图像获取设备150获取信息和/或数据。在一些实施例中,处理设备110可以在云平台上实现。
24.网络120可以连接系统的各个组成部分和/或连接系统与外部资源部分。网络120使得各组成部分之间,以及与系统之外其他部分可以进行通信。例如,处理设备110通过网络120从存储设备130、用户终端140和图像获取设备150获取信息和/或指令。
25.存储设备130可以用于存储数据和/或指令。例如,存储设备130可以存储用户通过用户终端140发出的指令。又例如,存储设备130可以存储图像获取设备150获取的图像。存储设备130可以包括一个或多个存储组件,每个存储组件可以是一个独立的设备,也可以是其他设备的一部分。在一些实施例中,所述存储设备130可在云平台上实现。
26.用户终端140可以为用户使用的电子设备,可以包括各类移动设备、智能设备、可穿戴设备等。例如,包括但不限于手机140-1、平板电脑140-2、笔记本140-3等。在一些实施例中,用户可以通过用户终端140向处理设备110发送与捕捉动作信息相关的指令。在另一些实施例中,用户可以通过用户终端140接收处理设备110的处理结果。图像获取设备150可以为用于获取图像的设备。图像获取设备150可以为各种获取图像的设备,包括但不限于照相机150-1、摄像机150-2等。在一些实施例中,图像获取设备150可以获取包含有目标对象动作信息的图像。例如,获取舞蹈演员舞蹈动作的摄像机等。在一些实施例中,图像获取设备150可以通过各种可行的方式获取图像,包括但不限于连续获取、定时获取等。在一些实施例中,图像获取设备150可以有多个,多个图像获取设备150可以放置在同一目标对象周围的不同位置,以同时获取该目标对象不同角度的动作信息。关于目标对象的更多内容,参见图2及其相关描述,此处不再赘述。
27.图2是根据本说明书一些实施例所示的图像三维动作信息的捕捉的方法的示例性流程图。在一些实施例中,流程200可以由处理设备110执行。如图2所示,流程200包括下述步骤:
28.步骤210,获取待处理图像。在一些实施例中,步骤210可以由第一获取模块310执行。
29.待处理图像可以是需要进行捕捉图像三维动作信息的图像。在一些实施例中,待处理图像为包括目标对象的三维动作的图像。例如,目标对象跳舞时采集的图像、目标对象完成某个健身动作时采集的图像等。在一些实施例中,待处理图像可以是采集的单帧图像或由若干单帧图像构成的多帧图像。
30.目标对象是指待处理图像中执行三维动作的对象。在一些实施例中,目标对象可以是人物、动物、植物等,目标对象也可以是虚拟角色,如卡通人物等。
31.三维动作是指待处理图像中目标对象所摆出的肢体或身体动作。若待处理图像为多帧图像时,目标对象在各帧图像中的三维动作可以相同或不相同。在一些实施例中,目标对象的三维动作可以基于目标对象的骨骼动作来体现。
32.骨骼动作是指目标对象的骨骼模型做出的骨骼姿态。骨骼模型可以指至少一个身体骨骼和/或至少一个关节构成的模型。
33.在一些实施例中,可以基于关节的位置以及扭转的角度确定其连接的骨骼的位置及朝向等,进而确定整个骨骼模型的骨骼姿态。
34.关节是指骨骼模型中连接骨骼的结构,不同种类的目标对象可以有不同的关节,例如,以人类为目标对象的骨骼模型可以包括颈关节(head)、腰椎关节(spine)、髋关节(hips)、左腕关节(left hand)、左肘关节(left forearm)、左肩关节(left arm)、右腕关节(right hand)、右肘关节(right forearm)、右肩关节(right arm)、左胯关节(left upleg)、左膝关节(left leg)、左踝关节(left foot)、右胯关节(right upleg)、右膝关节(right leg)、右踝关节(right foot)15个关节。
35.在一些实施例中,骨骼动作可以通过关节位置、关节旋转参数等表征,关于确定关节的三维位置、确定关节的扭角信息的说明参见步骤220、步骤230。
36.待处理图像可以通过多种方式获得,例如,可以基于从采集的视频中截取图像帧获取,又如,可以通过拍摄照片等方式获取。
37.步骤220,通过位置检测模型,基于待处理图像,获取目标对象的预设关节的三维位置。在一些实施例中,步骤220可以由图3中的第二获取模块320执行。
38.位置检测模型可以是用于获取目标对象的预设关节的三维位置的模型。例如,位置检测模型可以是卷积神经网络(convolutional neural networks,cnn)或深度神经网络(deep neural networks,dnn)或其组合得到的模型等。
39.在一些实施例中,位置检测模型的输入可以是待处理图像,其输出可以是目标对象的预设关节的三维位置。关于预设关节的三维位置的说明参见后文。
40.在一些实施例中,输入位置检测模型的待处理图像的可以是维度为b*3*h*w的图片,其中,b是同时输入位置检测模型进行处理的图片的个数(b可以是大于或等于1的整数)、h和w是图片的尺寸(如h表示长或宽,w表示宽或长),3表示rgb三通道的通道值。
41.在一些实施例中,位置检测模型输出的三维位置是维度为k*n*3的坐标,其中,k表示位置检测模型处理的图片的批次数(k可以是大于或等于1的整数),例如,位置检测模型共处理了k个批次的图片,每个批次有b张图片;n表示预设关节的数量,3表示三维位置坐标(如x、y、z坐标)。
42.在一些实施例中,位置检测模型可以基于训练获取。位置检测模型的训练可以由处理设备执行。位置检测模型的训练可以基于以下方法实现。
43.第一步,获取至少一个训练样本以及初始位置检测模型,其中,训练样本包括带关节的三维位置标注的图像样本。初始位置检测模型可以是未经调整模型参数或还未达到训练要求的位置检测模型。训练样本的数量可以根据位置检测模型的精度需求、实际应用场景等因素确定。
44.在一些实施例中,可以截取各种动作视频的图像帧作为图像样本,例如,可以截取跳舞视频、射击视频、滑雪视频的图像帧作为图像样本。
45.在一些实施例中,可以获取多种不同类型的目标对象的动作图像作为图像样本,例如,可以分别获取若干小孩、青年、老人的动作图像作为图像样本。
46.在一些实施例中,图像样本中关节的三维位置标注可以通过人工标注获取,也可
以通过获取已有关节的三维位置标注的图像作为图像样本,以省去人工标注环节。
47.以人工标注图像样本中颈关节的三维位置为例,若以髋关节作为三维坐标系原点,可以确定颈关节相对于髋关节的位置坐标为(x、y、z),其中,x、y、z的值可以基于获取到的图像样本中人体骨骼模型的骨骼参数确定,例如,若以图像水平向右方向为x轴正方向,以图像竖直向上方向为y轴正方向,以图像所在水平面指向相机的方向为z轴正方向,同时,基于获取到的骨骼参数确定脊柱的长度为70cm、颈关节与髋关节在同一垂直于x轴的平面上,颈关节相对于髋关节在z轴方向相聚2cm,则可以得到颈关节的三维位置坐标为(0,70,2)。在一些实施例中,若要基于位置检测模型直接获取将骨骼模型缩放后的关节的三维位置坐标,则可以在人工标注样本坐标时即将标注的坐标标签进行对应比例的缩放处理,例如,上述颈关节的三维位置坐标在进行0.5倍缩放处理后得到的颈关节的三维位置坐标为(0,35,1),关于缩放的进一步说明参见图4。
48.第二步,基于所述至少一个训练样本迭代更新初始位置检测模型的参数以得到位置检测模型。
49.在一些实施例中,可以将训练样本输入初始位置检测模型,通过训练迭代更新初始位置检测模型的参数,直到训练的位置检测模型满足预设条件,获取训练好的位置检测模型,其中,预设条件可以是损失函数小于阈值、收敛,或训练周期达到阈值。在一些实施例中,迭代更新模型参数的方法可以包括随机梯度下降等常规的模型训练方法。
50.关于位置检测模型的更多内容,参见图4、图5及其相关描述,此处不再赘述。
51.预设关节是指预先指定的骨骼模型中的部分或全部的关节,在一些实施例中,预设关节可以基于要捕捉的三维动作确定,例如,要捕捉的三维动作是手部动作时,则可以将以下关节作为预设关节:左腕关节(left hand)、左肘关节(left forearm)、左肩关节(left arm)、右腕关节(right hand)、右肘关节(right forearm)、右肩关节(right arm)。又如,要捕捉的三维动作是整个身体的动作时,则可以将骨骼模型中15个关键节点对应的关节及骨骼都作为预设关节。
52.预设关节的三维位置是指预设关节在图像中的三维坐标。例如,可以建立图像相对相机的三维坐标系,其中,沿图像所在平面的水平方向为三维坐标系的x轴,沿图像所在平面的竖直方向为三维坐标系的y轴,沿图像所在平面指向相机的方向为三维坐标系的z轴(即目标对象相对于相机的深度方向),则基于建立的三维坐标系,图像中目标对象的预设关节均有其对应的三维位置,可以通过三维位置坐标表示。
53.在一些实施例中,预设关节的三维位置坐标与选定的坐标原点相关,坐标原点可以是指定的任意一点。在一些实施例中,可以指定某一关节的位置为坐标原点。在一些实施例中,可以将骨骼模型的根关节指定为坐标系原点,关于根关节的更多说明参见图6。
54.在一些实施例中,基于目标对象的预设关节的三维位置可以确定目标对象的三维位置,例如,基于目标对象的15个预设关节的三维位置即可确定整个目标对象在图像中的三维位置。
55.在一些实施例中,可以进一步对对待处理图像中目标对象的三维位置进行修正。修正可以是指对基于模型得到的预设关节的三维位置存在的误差进行修正,或基于想要呈现的图像效果对预设关节的三维位置进行修正。例如,基于位置检测模型得到的预设关节的三维位置可能存在一定的误差,可以基于人工或精度更高的模型对预设关节的三维位置
进行修正进而实现对目标对象的三维位置的修正。又如,可以基于想要图像中目标对象整体位于图像中心进而对目标对象的预设关节的三维位置进行某方向的整体移动等。
56.在一些实施例中,在已知骨骼模型中其他预设关节与根关节的相对位置关系后,对目标对象的三维位置进行修正时,可以先对根关节的三维位置进行修正,则其他预设关节基于与根关节的相对位置关系,即可直接得出修正后的三维位置。
57.在一些实施例中,对待处理图像中目标对象的三维位置进行修正还可以指基于预设相机参数、标准身高及目标身高,对目标图像中目标对象的三维位置进行修正,关于对待处理图像中目标对象的三维位置进行修正的更多内容,参见图6及其相关描述,此处不再赘述。
58.通过对待处理图像中目标对象的三维位置进行修正,可以实现确保目标对象的三维动作的呈现效果符合预想的要求,同时,还可以进一步提升获取到的三维位置信息的准确性,进而有利于提升后续基于三维位置信息确定的图像三维动作信息的准确性。
59.步骤230,通过扭角预测模型,基于待处理图像,获取目标对象的预设关节的扭角信息。在一些实施例中,步骤230可以由第三获取模块330执行。
60.扭角预测模型可以是用于获取目标对象的预设关节的旋转信息(如扭角信息)的模型。例如,位置检测模型可以是卷积神经网络(convolutional neural networks,cnn)或深度神经网络(deep neural networks,dnn)或其组合得到的模型等。
61.在一些实施例中,扭角预测模型的输入可以是待处理图像,其输出可以是目标对象的预设关节的扭角信息。关节扭角是指关节绕骨骼纵轴的旋转角度;比如手腕关节进行旋转时,手腕关节的扭角就是手腕关节从初始位置绕小臂纵轴方向的旋转角度,例如,若手的初始位置为手臂水平打开时手掌水平朝下,当手腕关节在相同位置的情况下,手掌变为朝向正前方时,若以顺时针旋转为正方向,则手腕关节的扭角对应的旋转角度可以认为是90
°
。在一些实施例中,预设关节的扭角信息可以用关节扭角的余弦值和/或正弦值表征。
62.在一些实施例中,输入扭角预测模型的待处理图像的可以是维度为b*3*h*w的图片,其中,b是同时输入扭角预测模型进行处理的图片的个数(b可以是大于或等于1的整数)、h和w是图片的尺寸(如h表示长或宽,w表示宽或长),3表示rgb三通道的通道值。
63.在一些实施例中,扭角预测模型输出的三维位置是维度为b*n*2的扭角信息,其中,b是同时输入扭角预测模型进行处理的图片的个数;n表示预设关节的数量,2表示各个关节扭角的余弦值和正弦值。
64.在一些实施例中,扭角预测模型可以基于训练获取。扭角预测模型的训练可以由处理设备执行。扭角预测模型的训练可以基于以下方法实现。
65.第一步,获取至少一个训练样本以及初始扭角预测模型,其中,训练样本包括带关节的扭角信息标注的图像样本。初始扭角预测模型可以是未经调整模型参数或还未达到训练要求的扭角预测模型。训练样本的数量可以根据扭角预测模型的精度需求、实际应用场景等因素确定。
66.在一些实施例中,图像样本中关节的扭角信息标注可以通过人工标注获取,也可以通过获取已有关节的扭角信息标注的图像(如基于历史数据获取)作为图像样本,以省去人工标注环节。例如,以标注手腕关节的扭角信息为例,若手的初始位置为手臂水平打开时手掌水平朝下,当手腕关节在相同位置的情况下,手掌变为朝向正前方时,若以顺时针旋转
为正方向,则手腕关节的扭角对应的旋转角度可以认为是90
°

67.第二步,基于至少一个训练样本迭代更新初始扭角预测模型的参数以得到扭角预测模型。
68.在一些实施例中,可以将训练样本输入初始扭角预测模型,通过训练迭代更新初始扭角预测模型的参数,直到训练的扭角预测模型满足预设条件,获取训练好的扭角预测模型,其中,预设条件可以是损失函数小于阈值、收敛,或训练周期达到阈值。在一些实施例中,迭代更新模型参数的方法可以包括随机梯度下降等常规的模型训练方法。
69.步骤240,基于预设关节的三维位置和预设关节的扭角信息,确定预设关节的三维旋转信息。在一些实施例中,步骤240可以由第一确定模块340执行。
70.三维旋转信息是可以表征单个预设关节的三维旋转角度信息的数据信息,每个预设关节可以有其对应的三维旋转信息。
71.每个预设关节的三维旋转信息可以有多种表示方式,例如,可以由旋转矩阵或三个欧拉角表示。在一些实施例中,第一确定模块可以通过多种方法确定三维旋转信息,例如,可以基于预设关节的三维位置和预设关节的扭角信息求取预设关节的欧拉角参数,又如,可以采用多维向量的形式表示,其中,单个预设关节的向量可以包括多个坐标轴(例如x轴、y轴、z轴)对应的多个位置参数,以及多个表征关节旋转状态的参数(例如关节的扭角信息中包括的2个扭角参数),如单个预设关节的三维旋转信息可以表示为(3+2)维的向量,3表示三维位置坐标,2表示关节扭角的余弦值和正弦值。
72.三维旋转信息可以通过第一确定模块基于预设关节的三维位置和预设关节的扭角信息确定。
73.在一些实施例中,第一确定模块可以基于获取到的预设关节的三维位置坐标以及扭角信息构建对应的多维向量,并将该多维向量作为预设关节的三维旋转信息。例如,第一确定模块可以包括编码网络,表示预设关节的三维旋转信息的多维向量可以通过编码网络生成。在一些实施例中,编码网络可以包括一个或多个编码器(例如包括多个编码器的transformer编码网络)。
74.在一些实施例中,第一确定模块还可以通过其他方法,基于预设关节的三维位置和预设关节的扭角信息确定预设关节的三维旋转信息,例如,通过求旋转矩阵的方式,具体如下:
75.首先,第一确定模块可以基于预设关节的初始姿态及预设关节的三维位置,确定预设关节的直接旋转信息。
76.预设关节的初始姿态是指骨骼模型处于初始姿态时,预设关节的初始状态,预设关节的初始姿态可以基于预设关节的初始三维位置以及初始旋转信息来表征。
77.在一些实施例中,第一确定模块可以指定某图像中骨骼模型的姿态作为骨骼模型的初始姿态,相应的,该图像中预设关节的姿态即为预设关节的初始姿态,例如,可以指定基于某视频截取的若干帧图像中,第一帧图像中的骨骼模型的姿态为骨骼模型的初始姿态,则此时各预设关节的姿态即为预设关节的初始姿态。
78.在一些实施例中,第一确定模块还可以通过其他方式确定预设关节的初始姿态,例如,第一确定模块可以预先设置预设关节的初始姿态,或指定骨骼模型做某动作时各个预设关节的姿态作为其初始姿态。
79.直接旋转信息是指预设关节从初始姿态移动到指定的三维位置时,预设关节的移动信息,可以基于位置坐标差来表示,其中,在整个移动过程中,仅是进行预设关节的移动,预设关节不会产生旋转。基于预设关节的直接旋转信息可以确定预设关节从初始姿态到目标姿态时,预设关节的移动方向及距离。
80.在得到预设关节的直接旋转信息后,第一确定模块可以进一步合成直接旋转信息及扭角信息,以确定预设关节的三维旋转信息。
81.在一些实施例中,第一确定模块可以基于多种方式合成直接旋转信息及扭角信息,例如,第一确定模块可以通过如罗德里格旋转公式等方式将图像中的预设关节的直接旋转信息及扭角信息分别转换成旋转矩阵,然后再将两个旋转矩阵相乘即可得到用于表示预设关节的三维旋转信息的旋转矩阵。第一确定模块基于旋转矩阵的矩阵值即可获取预设关节的三维旋转信息。
82.基于直接旋转信息以及扭角信息来确定预设关节的三维旋转信息,使得基于三维旋转信息生成的骨骼姿态,更符合骨骼模型的构造特点。
83.步骤250,基于所述预设关节的三维旋转信息及所述预设关节的三维位置得到图像三维动作信息。在一些实施例中,步骤250可以由第二确定模块350执行。
84.图像三维动作信息是待处理图像中,目标对象的所有预设关节的姿态信息的一种整体呈现。图像三维动作信息可以是各个预设关节的三维旋转信息的集合,例如,举手的动作可以视作是一种三维动作,在这个动作中,骨骼模型的各个预设关节具有对应的三维旋转信息,所有预设关节的三维旋转信息以及预设关节的三维位置即构成了举手这个动作的三维动作信息。
85.图像三维动作信息可以由多种表示形式,例如,可以基于矩阵、序列等方式表示,其中,矩阵、序列中的每一个元素对应一个预设关节的三维旋转信息及位置信息。
86.图3是根据本说明书一些实施例所示的图像三维动作信息的捕捉系统的示例性模块图。
87.如图3所示,所述图像三维动作信息的捕捉系统300可以包括第一获取模块310、第二获取模块320、第三获取模块330、第一确定模块340和第二确定模块350。
88.第一获取模块310用于获取待处理图像;待处理图像为包括目标对象的三维动作的图像。关于待处理图像和获取待处理图像的更多内容,参见图2及其相关描述,此处不再赘述。
89.第二获取模块320用于通过位置检测模型,基于待处理图像,获取目标对象的预设关节的三维位置。关于位置检测模型、目标对象、预设关节的三维位置及其获取的方法,参见图2及其相关描述,此处不再赘述。
90.第三获取模块330用于通过扭角预测模型,基于待处理图像,获取目标对象的预设关节的扭角信息。关于扭角预测模型、预设关节的扭角信息及其获取方式,参见图2及其相关描述,此处不再赘述。
91.第一确定模块340用于基于预设关节的三维位置和预设关节的扭角信息,确定预设关节的三维旋转信息。关于预设关节的三维旋转信息及其确定方式,参见图2及其相关描述,此处不再赘述。
92.第二确定模块350用于基于预设关节的三维旋转信息及预设关节的三维位置得到
图像三维动作信息。关于图像三维动作信息的更多内容,参见图2及其相关描述,此处不再赘述。
93.需要注意的是,以上对于图像三维动作信息的捕捉系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。在一些实施例中,图1中披露的第一获取模块310、第二获取模块320、第三获取模块330、第一确定模块340和第二确定模块350可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
94.图4是根据本说明书一些实施例所示的位置检测模型的示意图。如图4所示,示意图所示的流程400可以包括下述步骤。在一些实施例中,示意图所示的流程400可以由第二获取模块320执行。
95.在一些实施例中,位置检测模型可以包括二维位置检测模型和三维位置检测模型,二维位置检测模型和三维位置检测模型可以对输入的待处理图像进行处理,获得预设关节的三维位置,具体包括以下步骤:
96.步骤410,通过二维位置检测模型,基于待处理图像,获取预设关节的二维位置。
97.二维位置可以指预设关节在待处理图像中的位置。在一些实施例中,二维位置可以有文字、数字等多种表示方式。
98.在一些实施例中,预设关节的二维位置可以基于待处理图像所在平面建立坐标系确定。例如,若预设关节包括颈关节,基于待处理图像所在平面建立坐标系,指定平面上任意一点为坐标原点,则颈关节的二维位置可以表示为一个二维的坐标,如,(x1,y1),需要说明的是,坐标系的原点可以自行指定或预先设定;例如,可以指定某预设关节为坐标原点。
99.在一些实施例中,处理设备可以将待处理图像,输入到二维位置检测模型,以得到预设关节的二维位置。
100.二维位置检测模型可以指训练后的机器学习模型。在一些实施例中,二维位置检测模型可以为卷积神经网络模型。在一些实施例中,二维位置检测模型可以包括其他模型,例如,深度神经网络模型、循环神经网络模型或其他自定义的模型结构等中的任意一种或组合。
101.在一些实施例中,二维位置检测模型的输入可以为维度为b*3*h*w的待处理图像。其中,b表示同时处理的待处理图像的个数,b为大于等于1的整数;h和w表示待处理图像的高和宽;3表示待处理图像为rgb三通道。在一些实施例中,二维位置检测模型可以采用深度学习方法,运用gpu加速运行运算,实现同时批量化处理b张图片。
102.在一些实施例中,二维位置检测模型的输出可以为维度为b*n*2的关节的坐标。其中,n表示关节的个数,2表示关节在整张图像中的二维位置。在一些实施例中,处理设备可以将人工输入的根据经验预测的二维位置确定为二维位置。在一些实施例中,处理设备可以使用heatmap函数获取各关节的二维位置的heatmap图,并将各关节heatmap图最大值的位置确定为对应的关节的二维位置。
103.在一些实施例中,待处理图像可以包括基于预设时间序列采集的若干图像序列。
104.预设时间序列可以指预先设置的按时间的先后顺序排列而成的数列。例如,预设时间序列为{t1、t2、t3、

tn},n=1、2、3

n,tn可以表示第n个时刻。在一些实施例中,预设时间序列可以为连续的。例如,预设时间序列为{0.1s、0.2s、0.3s}。在一些实施例中,预设时间序列可以是人为设置的。
105.图像序列可以指按照预设的顺序进行排列的一系列图像。例如,图像序列为{x1、x2、x3、

xn},n=1、2、3

n,xn可以表示第n个图像。预设的顺序可以包括但不限于时间的先后、图像的优先级等。
106.在一些实施例中,处理设备110可以基于控制指令,控制图像获取设备150按照预设时间序列进行图像采集,处理设备110将采集的图像按照采集时的时间的先后顺序排列得到若干图像序列。
107.在一些实施例中,处理设备110可以从存储设备130获取基于预设时间序列采集的若干图像序列。例如,存储设备130中预先存储了多个图像序列,处理设备110可以从存储设备130中选择基于预设时间序列采集的图像序列。
108.通过基于预设时间序列采集若干图像序列,可以使图像之间联系更紧密,更好地体现目标对象动作的连贯性、变化以及变化的幅度和/或角度。同时,还可以便于后续需要用到具有连贯性要求的信息时的直接应用。
109.在一些实施例中,在预设时间序列中每个时间序列采集的图像包括相机基于若干不同位置采集的图像。例如,在同一时间t采集的图像可以包括相机在位置a采集的图像ta和相机在位置b采集的图像tb。
110.在一些实施例中,相机按照时间序列在若干不同位置采集的图像可以用矩阵进行表示。在一些实施例中,位于矩阵的相同行的元素可以表示在相同的时间点采集的图像,位于矩阵的相同列的元素可以表示在相同的位置点采集的图像。在一些实施例中,相机按照时间序列在若干不同位置采集的图像还可以用其他方式进行表示,例如,数组、队列等。
111.在一些实施例中,相机采集图像时,不仅按照预设时间序列采集,还在不同位置采集,使得图像之间不仅具有时间的联系,还具有地理位置的联系,由此得到的图像可以用来对结果和/或其他数据进行修正或用于生成预测预设关节的二维位置的热力图,提升数据的准确性。
112.在一些实施例中,处理设备可以在将待处理图像输入到二维位置检测模型之前,对待处理图像进行预处理。预处理可以包括但不限于数据清理、数据集成、数据变换等。
113.在一些实施例中,处理设备可以基于目标检测方法提取待处理图像中的目标对象,通过二维位置检测模型,基于目标对象,获取预设关节的二维位置。
114.目标检测方法可以指在给定的图片中找到物体的位置,并标明物体是什么的方法。使用目标检测方法可以对图片中的物体进行查找和分类。目标检测方法可以包括但不限于viola-jones、hog+svm、one-stage等。
115.在一些实施例中,处理设备可以首先将要提取的目标设定为目标对象,然后使用目标检测方法对待处理图像进行处理,从待处理图像中将目标对象提取出来。
116.在一些实施例中,处理设备可以将提取出的目标对象的图像输入到二维位置检测模型,获取预设关节的二维位置。
117.在将待处理图像输入到二维位置检测模型之前,使用目标检测方法进行处理,如
此设置可以减少模型的计算量,提升模型处理速度。
118.在一些实施例中,训练二维位置检测模型时,可以使用多个带有标签的训练样本,通过多种方法(例如,梯度下降法)进行训练,从而可以学习到模型的参数,当训练的模型满足预设条件时,训练结束,获取训练好的二维位置检测模型。
119.训练样本可以是历史待处理图像,训练样本的标签可以是对应的历史二维位置,训练样本的标签可以通过人工标注进行获取。在一些实施例中,二维位置检测模型可以在另外的设备或模块中被训练。
120.步骤420,通过三维位置检测模型,基于预设关节的二维位置,获取预设关节的三维位置。
121.在一些实施例中,处理设备可以将预设关节的二维位置输入到三维位置检测模型,以获得预设关节的三维位置。
122.三维位置检测模型可以指训练后的机器学习模型。在一些实施例中,三维位置检测模型可以包括其他模型,例如,深度神经网络模型、循环神经网络模型或其他自定义的模型结构等中的任意一种或组合。
123.在一些实施例中,当二维位置检测模型的输入为基于预设时间序列采集的若干图像序列时,二维位置检测模型的输出结果可以直接作为三维位置检测模型的输入,三维位置检测模型的输出可以反映整个动作的变化。例如,相机基于预设时间序列对抬手臂动作进行采集,得到若干图像序列。将这些图像序列输入到二维位置检测模型,并将二维位置检测模型的输出结果直接作为三维位置检测模型的输入,基于三维位置检测模型的输出可以反映手臂是如何一步一步进行移动最终抬起来的。
124.在一些实施例中,三维位置检测模型的输入可以为维度为k*2n*t的关节的坐标。其中,k表示三维位置检测模型处理的二维位置序列的批次数,k为大于等于1的整数;n表示关节的个数,2n表示关节的二维位置的数量;t表示每个批次中的二维位置序列的个数,一张图片生成一个二维位置序列。
125.在一些实施例中,三维位置检测模型的输出可以为维度为k*n*3的关节的坐标。其中,k表示三维位置检测模型处理的二维位置序列的批次数,k为大于等于1的整数;n表示关节的个数,3表示三维位置坐标。
126.在一些实施例中,三维位置检测模型的输出为缩放后的关节的坐标。缩放可以指对数据的大小进行放大或缩小。缩放可以通过乘以数字进行。例如,将数据乘以小于1的值,如0.5,以实现缩小。又例如,将数据乘以大于1的值,如2,以实现放大。缩放后的关节的坐标可以指将关节的坐标按照相同的比例进行缩放后得到的坐标。例如,将关节的坐标(2,2,4),按照0.5的比例进行缩放后,得到的坐标为(1,1,2),即为缩放后的关节的坐标。
127.在一些实施例中,处理设备可以在训练三维位置检测模型时,对训练样本的标签中的数值即进行缩放处理,可以使训练好的三维位置检测模型输出的三维位置都是缩放的。例如,将训练样本的标签的数值相较于真实值都缩小0.5倍,可以使训练好的三维位置检测模型输出的三维位置都是相较于真实值缩小0.5倍的。
128.在一些实施例中,处理设备可以基于预设的缩放比例,对训练样本的标签进行缩放处理。在一些实施例中,处理设备可以基于目标对象的骨骼模型与需要应用到的骨骼模型之间的比例,确定缩放比例。例如,若将三维动作信息应用到虚拟人物,以使动画制作软
件自动生成做同样动作的虚拟人物,则需要应用到的骨骼模型可以为虚拟人物的骨骼模型。
129.在一些实施例中,处理设备还可以基于其他方式确定缩放比例。例如,基于想要呈现的不同的效果,确定不同的缩放比例,如可以将局部的预设关节进行缩放,以实现相应的特效观感。
130.与通过直接使用三维位置检测模型对图像进行处理,以得到三维位置相比,本说明书的一些实施例可以减小获取数据的难度,降低成本,例如,获取带有二维位置的标签的图像比获取带有三维位置的标签的图像更容易,付出的人力成本和/或财力成本更低。
131.在一些实施例中,三维位置检测模型可以包括至少两个子模型。在一些实施例中,通过三维位置检测模型,基于预设关节的二维位置,获取预设关节的三维位置,可以包括以下操作:通过至少两个子模型,基于预设关节的二维位置,获取预设关节的至少两个预测三维位置;融合至少两个预测三维位置,获取预设关节的三维位置。
132.在一些实施例中,三维位置检测模型中的至少两个子模型可以分别单独进行训练。在对每个子模型单独进行训练时,可以使用多个带有标签的训练样本,通过多种方法(例如,梯度下降法)进行训练,从而可以学习到每个子模型的参数,当训练的子模型满足预设条件时,训练结束,获得训练好的子模型。关于三维位置检测模型及其子模型的更多内容,参见图5及其相关描述。
133.在一些实施例中,处理设备可以通过至少两个子模型,基于预设关节的二维位置,获取预设关节的至少两个预测三维位置。
134.预测三维位置可以指预测的预设关节的三维位置坐标。
135.在一些实施例中,处理设备可以将预设关节的二维位置坐标分别输入到至少两个子模型,分别得到各个子模型的输出结果,并将每个子模型的输出结果确定为一个预测三维位置坐标,进而获取至少两个预测三维位置坐标。
136.在一些实施例中,处理设备可以融合至少两个预测三维位置坐标,获取预设关节的三维位置坐标。
137.通过对多个子模型的输出进行融合,可以提高获取的三维位置的准确性。
138.在一些实施例中,融合包括线性加权融合或非线性加权融合。
139.线性加权融合可以指将数据按不同的算法赋予不同的权重,并将多个算法得到的结果进行相加。权重可以指其对应的三维位置坐标的重要程度。权重可以用数字进行表示,数字越高,权重越大,表示越重要。在一些实施例中,权重可以由人工根据经验进行设置。在一些实施例中,处理设备可以将每个预测三维位置坐标与其对应的权重进行相乘,然后将多个相乘的结果进行相加,以实现线性加权融合。
140.在一些实施例中,处理设备可以为每个预测三维位置坐标赋予相同的权重。例如,预测三维位置坐标a和预测三维位置坐标b赋予的权重都为0.3。在一些实施例中,处理设备可以通过机器学习为每个预测三维位置赋予不同的权重。例如,处理设备通过机器学习为预测三维位置坐标a赋予的权重为0.2,为预测三维位置坐标b赋予的权重为0.6。
141.非线性加权融合可以指将待融合的数据按照曲线、曲面、或不确定的属性进行处理,并将处理结果作为融合结果在一些实施例中,处理设备可以利用神经网络模型,反复做线性变换的叠加,以实现非线性加权融合。神经网络模型可以包括但不限于卷积神经网络
模型、循环神经网络模型等。例如,处理设备可以将至少两个预测三维位置分别输入到卷积神经网络模型,再获取模型的输出作为融合结果。
142.通过融合至少两个子模型输出的至少两个预测三维位置坐标,得到三维位置坐标,可以提升数据的准确性。
143.本说明书的一些实施例通过使用二维位置检测模型对待处理图像进行处理,得到预设关节的二维位置,进而使用三维位置检测模型,得到三维位置。如此设置,不直接使用图像视频数据获取三维位置,避免了需要获取大量带有三维位置标签的图像视频数据,降低获取三维位置的难度。进一步地,融合三维位置检测模型中的子模型的输出结果,可以提高数据的准确性。
144.图5是根据本说明书一些实施例所示的三维位置检测模型的示意图。
145.如图5所示,在一些实施例中,三维位置检测模型可以包括空洞卷积网络模型、transformer网络模型和图卷积神经网络模型。在一些实施例中,空洞卷积网络模型、transformer网络模型和图卷积神经网络模型可以分别对输入的预设关节的二维位置进行处理,得到与预设关节对应的多个预测三维位置。
146.在一些实施例中,可以将预设关节的二维位置输入空洞卷积网络模型,模型输出预设关节的预测三维位置。例如,可以将多个预设关节的二维位置[(a1,b1)、(a2,b2)、

、(a3,b3)]输入空洞卷积网络模型,模型输出该多个预设关节的三维位置[(a’1,b’1,c’1)、(a’2,b’2,c’2)、

、(a’3,b’3,c’3)]。
[0147]
在一些实施例中,空洞卷积网络模型处理的多个预设关节的二维位置可以来自同一张待处理图像,也可以来自不同的待处理图像。例如,二维位置[(a11,b11)、(a12,b12)、

、(a13,b13)]可以来自待处理图像a,二维位置[(a21,b21)、(a22,b22)、

、(a23,b23)]可以来自待处理图像b等。
[0148]
在一些实施例中,空洞卷积网络模型可以通过多个带有标签的第一训练样本训练得到。例如,可以将多个带有标签的第一训练样本输入初始空洞卷积网络模型,通过标签和初始空洞卷积网络模型的结果构建损失函数,基于损失函数迭代更新初始空洞卷积网络模型的参数。当初始空洞卷积网络模型的损失函数满足预设条件时模型训练完成,得到训练好的空洞卷积网络模型。其中,预设条件可以是损失函数收敛、迭代次数达到阈值等。训练空洞卷积网络模型的方法包括但不限于梯度下降法、正则化和共轭梯度法等。
[0149]
在一些实施例中,第一训练样本可以包括多个样本预设关节的二维位置,第一训练样本的标签可以为样本预设关节的三维位置。在一些实施例中,样本预设关节的三维位置至少可以通过人工标注的方式得到。在一些实施例中,样本预设关节的二维位置可以通过将图片输入二维位置检测模型得到。关于二维位置检测模型的更多内容,参见图4及其相关描述。样本预设关节的二维位置也可以通过其他可行的方式得到,包括但不限于人工标注等。
[0150]
在一些实施例中,空洞卷积网络模型在对预设关节的二维位置进行处理时,可以获取多个预设关节之间的关联关系,并基于预设关节之间的关联关系,生成预设关节的预测三维位置,以使得生成的多个预设关节的预测三维位置相关联,避免出现单个预设关节误差过大造成预设关节的预测三维位置不符合人体常识的情况。
[0151]
在一些实施例中,可以将预设关节的二维位置输入transformer网络模型,模型输
出预设关节的预测的三维位置。例如,可以将多张待处理图像中的预设关节的二维位置[(a1,b1)、(a2,b2)、

、(a3,b3)]输入transformer网络模型,模型输出该多个预设关节的三维位置[(a”1,b”1,c”1)、(a”2,b”2,c”2)、

、(a”3,b”3,c”3)]。
[0152]
在一些实施例中,多张待处理图像可以是按时间序列采集的一组待处理图像组,不同待处理图像中对应的预设关节的位置可以是变化的,transformer网络模型通过对待处理图像组中的待处理图像中的预设关节的二维位置进行处理,可以得到对应预设关节在不同时间点的三维位置。例如,对于待处理图像组可以包括按时间序列采集的待处理图像a、b和c,待处理图像a、b和c均包括预设关节i、ii和iii,对于预设关节i,在待处理图像a中的二维位置为(a11,a12),在待处理图像b中的二维位置为(a21,a22),在待处理图像c中的二维位置为(a31,a32),当transformer网络模型对预设关节i进行处理时,可以记录预设关节i在其他时间序列的三维位置,并基于其他序列的三维位置预测本次时间序列的三维位置(如,在生成待处理图像b的三维位置(a21,a22,a23)时考虑到了之前时间点的待处理图像a的三维位置(a11,a12,a13)以及整个运动趋势)。
[0153]
在一些实施例中,transformer网络模型可以通过多个带有标签的第二训练样本训练得到。例如,可以将多个带有标签的第二训练样本输入初始transformer网络模型,通过标签和初始transformer网络模型的结果构建损失函数,基于损失函数迭代更新初始transformer网络模型的参数。当初始transformer网络模型的损失函数满足预设条件时模型训练完成,得到训练好的transformer网络模型。其中,预设条件可以是损失函数收敛,迭代次数达到阈值等。训练transformer网络模型的方法包括但不限于梯度下降法、正则化和共轭梯度法等。
[0154]
在一些实施例中,第二训练样本可以包括多个样本预设关节的二维位置。第二训练样本的标签、标签的获取方式和样本预设关节的二维位置的获取与第一训练样本类似,关于第二训练样本的更多内容,参见第一训练样本。
[0155]
在一些实施例中,transformer网络模型在对预设关节的二维位置进行处理时,可以获取对应预设关节在不同时间点的关联关系,并基于预设关节在时间上的关联关系,生成预设关节的预测三维位置,以得到预设关节在不同时间点的三维位置的变化情况。通过使用transformer网络模型对预设关节的二维位置进行处理得到预设关节的三维位置,使得生成的预设关节的三维位置在时间上有联系,避免出现预设关节基于时间序列的三维位置的变化不符合常理。
[0156]
在一些实施例中,可以将预设关节的二维位置输入图卷积神经网络模型,模型输出预设关节的预测的三维位置。例如,可以基于预设关节i、ii和iii建立图谱,图谱的节点可以为预设关节i、ii和iii,节点的属性至少包括节点的二维位置,如预设关节i、ii和iii的二维位置坐标分别为(a1,b1)、(a2,b2)、(a3,b3),边可以为预设关节的连接关系(如,预设关节i和ii连接,预设关节ii和iii连接等),例如,边可以表示连接两个预设关节的骨干;边的属性至少包括连接两个预设关节间的骨干长度(如,连接预设关节i和ii的骨干的长度为30cm等)。将图谱输入图卷积神经网络模型,模型输出多个预设关节的预测三维位置,如输出预设关节i、ii和iii的三维位置坐标:(a1,b1,c1)、(a2,b2,c2)、(a3,b3,c3)。
[0157]
在一些实施例中,待处理图像可以有多张,多张待处理图像可以为预设关节在同一时间点不同拍摄角度下的图像。可以基于多张待处理图像构建图谱,例如,节点的属性还
可以包括预设关节在不同拍摄角度下的二维位置。例如,待处理图像e、f和g,分别包括预设关节i的二维位置(a11,b11),(a21,b21)和(a31,b31)和预设关节ii的二维位置(a12,b12),(a22,b22)和(a32,b32),通过图神经网络对该三个二维位置进行处理后可以得到预设关节i的三维位置(a11,b11,c11),(a21,b21,c21)和(a31,b31,c31),预设关节ii的三维位置(a12,b12,c12),(a22,b22,c22)和(a32,b32,c32)。然后,通过对预设关节i和预设关节ii的三维位置进行处理得到该时间点预设关节i和预设关节ii的三维位置(如,将根据不同角度拍摄到的图片得出的三维位置进行加权平均等)。
[0158]
在一些实施例中,图卷积神经网络模型可以通过多个带有标签的第三训练样本训练得到。例如,可以将多个带有标签的第三训练样本输入初始图卷积神经网络模型,通过标签和初始图卷积网络模型的结果构建损失函数,基于损失函数迭代更新初始图卷积网络模型的参数。当初始图卷积网络模型的损失函数满足预设条件时模型训练完成,得到训练好的图卷积网络模型。其中,预设条件可以是损失函数收敛、迭代次数达到阈值等。训练图卷积神经网络模型的方法包括但不限于梯度下降法、正则化和共轭梯度法等。
[0159]
在一些实施例中,第三训练样本可以包括多张样本图谱,样本图谱至少包括样本预设关节的二维位置,第三训练样本的标签可以为样本预设关节的三维位置。在一些实施例中,预设关节的二维位置和三维位置至少可以通过人工标注的方式得到。在一些实施例中,样本图谱可以基于一张或多张样本图片构建。
[0160]
在一些实施例中,图卷积网络模型在对预设关节的二维位置进行处理时,可以获取预设关节之间的空间特征(如骨骼长度等),并基于预设关节之间的空间特征,生成预设关节的预测三维位置,以使得生成的预测三维位置的空间特性较好,避免由于预测三维位置的不准确,造成骨骼发生较大形变。
[0161]
在一些实施例中,可以通过将空洞卷积网络模型输出的预测三维位置a、transformer网络模型输出的预测三维位置b和图卷积神经网络模型输出的预测三维位置c进行融合得到最终的预设关节的预测三维位置。
[0162]
例如,可以对预测三维位置a、预测三维位置b和预测三维位置c赋予不同的权重,然后基于权重值对上述三种预测三维位置进行加权融合,得到最终的预测三维位置。
[0163]
在一些实施例中,可以以各种可行的方式融合上述三种预测三维位置,包括但不限于线性加权融合、非线性加权融合等。关于融合处理的进一步说明参见图4,此处不再赘述。
[0164]
在本技术的一些实施例中,通过空洞卷积网络模型、transformer网络模型和图卷积神经网络模型分别对预设关节的二维位置进行处理,得到多个预测三维位置,由于三种模型分别在全局、时域和空域上的突出性,使得得到的多个预测三维位置分别在全局、时域和空域上更准确,因此,通过将多个预测三维位置进行融合,取长补短得到最终的预测三维位置,使得最终的预测三维位置适用性更强,效果更好。
[0165]
图6是根据本说明书一些实施例所示的修正三维位置的示例性示意图。如图6所示,示意图所示的流程600可以包括下述步骤。在一些实施例中,示意图所示的流程600可以由第二确定模块350执行。
[0166]
在一些实施例中,待处理图像可以包括若干帧图像,例如,待处理图像可以包括5帧图像。
[0167]
步骤610,确定标准图像,基于标准图像及相机参数确定目标对象的标准身高。
[0168]
标准图像可以指用于作为参考标准的图像。例如,若基于第一帧图像得到的数据信息作为数据标准对其他帧图像进行处理时,则可以将第一帧图像作为标准图像,其他帧图像作为待处理图像,关于待处理图像的说明参见图2。
[0169]
相机参数可以指与相机有关的参数。例如,像素、光圈、焦距、感光度、深度等。深度可以指要进行拍摄的物体到相机的距离。在一些实施例中,相机参数可以影响图像以及图像中的目标对象。例如,像素越高,图像以及图像中的目标对象越清晰。又例如,深度越大,目标对象在图像中越小。由于确定图像的三维动作信息时,需要基于深度信息确定目标对象与假设的相机的距离,下文将以相机参数是深度为例进行说明。在一些实施例中,相机参数是已知的。在一些实施例中,处理设备可以基于人工通过用户终端140输入的相机参数进行深度值的获取。
[0170]
在一些实施例中,处理设备可以将人工预先制作的图像,确定为标准图像。例如,人工基于某种设计需求,制作标准图像,处理设备可以通过用户终端进行获取,并将其确定为标准图像。
[0171]
在一些实施例中,处理设备可以通过网络进行获取标准图像。例如,处理设备在网络上搜寻符合标准的图像,将其确定为标准图像。标准可以是人为针对图像进行设置的。例如,标准可以为图像中目标对象应该从头到脚显示完整。
[0172]
在一些实施例中,处理设备还可以通过其他方式确定标准图像。例如,处理设备可以将占用存储空间最大的图像确定为标准图像。又例如,处理设备可以按照预设的规则确定标准图像。例如,预设的规则可以为将若干帧图像中的第一帧图像确定为标准图像。
[0173]
标准身高可以指基于标准图像获取的数据确定的目标对象在真实世界的身高。例如,标准图像中人的身高为170厘米。在一些实施例中,标准身高可以用t1进行表示。
[0174]
在一些实施例中,处理设备可以基于标准图像及相机参数,根据预设关节的位置坐标,依据投影原理,确定目标对象的骨骼模型中核心骨干在真实世界的长度,进而确定目标对象的标准身高。
[0175]
核心骨干可以指与身高有关的骨干。例如,颈关节到髋关节之间的骨干、髋关节到胯关节之间的骨干、胯关节到膝关节之间的骨干、膝关节到踝关节之间的骨干等。
[0176]
在一些实施例中,处理设备可以基于相机参数、标准图像中目标对象的预设关节的三维位置,确定核心骨干在真实世界的长度。例如,处理设备可以基于标准图像中目标对象的预设关节的三维位置,通过两点之间的距离公式,确定核心骨干的长度。处理设备可以基于相机参数和核心骨干的长度,通过投影原理,确定核心骨干在真实世界的长度。
[0177]
在一些实施例中,处理设备可以基于核心骨干在真实世界的长度,确定标准身高。例如,颈关节到颈关节的骨干的长度为20厘米,颈关节到根关节的骨干的长度为70厘米,根关节到右脚关节的骨干的长度为80厘米,处理设备将以上距离进行相加得到结果为170厘米,将170厘米确定为标准身高。
[0178]
步骤620,基于相机参数、标准身高及目标身高,确定目标图像中目标对象的位置修正值。
[0179]
目标图像可以指需要进行修正的图像。
[0180]
目标身高可以指基于目标图像确定的目标对象在真实世界的身高。例如,目标图
像中人的身高为165厘米。在一些实施例中,目标身高可以用t2进行表示。
[0181]
在一些实施例中,处理设备可以采用与上述确定标准身高的方式相同的方式基于目标图像确定目标身高。
[0182]
位置修正值可以指用于对目标图像中目标对象的预设关节的三维位置进行修正的值。在一些实施例中,位置修正值可以为正数或负数。
[0183]
在一些实施例中,修正可以指对目标对象的坐标进行修正,或者也可以被称为对目标对象的相机参数进行修正。在一些实施例中,三维位置坐标中的x坐标和y坐标的值可以直接使用,不需要进行修正。如修正可以指对三维位置坐标中的z坐标进行修正。可以理解的是,对于同一个人,无论其怎样活动,身体中各个关节之间的相对位置是不会发生变化的,而且三维位置坐标体现的是各个关节之间的相对位置,因此,三维位置坐标中的x坐标和y坐标是可以直接使用不需修正的。但是三维位置坐标中的z坐标,会受到相机参数的影响,例如,相机的深度不同时,即使是同一个人,其三维位置坐标中的z坐标也不会相同。在一些实施例中,位置修正值可以用

z进行表示。
[0184]
在一些实施例中,处理设备可以基于标准身高与目标身高之间的变化比例,以及标准图像的相机参数,确定位置修正值。在一些实施例中,处理设备可以基于t1和t2,根据(t1-t2)/t1确定变化比例为p,然后基于标准图像的相机参数获取得到深度系数k,将k与p进行相乘,将相乘的结果确定为位置修正值

z,深度系数k可以用于表征在标准图像中,目标对象到相机之间的距离。
[0185]
步骤630,基于位置修正值对目标图像中目标对象的三维位置进行修正。
[0186]
在一些实施例中,处理设备可以基于位置修正值对目标图像中目标对象的三维位置进行修正。例如,处理设备可以对目标图像中目标对象的三维位置与位置修正值进行相加或相减。
[0187]
在一些实施例中,处理设备可以将目标对象的三维位置坐标中的z坐标与位置修正值进行相加,再按照相加的结果,对目标图像的相机参数进行调整。例如,对焦距、深度等进行调整。出于说明的目的,下文将以对目标图像的深度进行调整为例进行说明。
[0188]
在一些实施例中,处理设备可以基于位置修正值为正数,将目标对象相对于相机往后移,以调整目标图像的深度。在一些实施例中,处理设备可以基于位置修正值为负数,将目标对象相对于相机往前移,以调整目标图像的深度。例如,若目标对象的三维位置坐标为(1,1,2),标准身高t1为170厘米,目标身高t2为160厘米,基于标准图像的相机参数获取得到深度系数k为10,则处理设备可以通过(170-160)/170确定变化比例p为然后将p与k相乘得到进而确定位置修正值

z为处理设备接着通过将目标对象的三维位置坐标中的z坐标的值为2与位置修正值

z为进行相加,得到新的z的值,即修正后的z坐标的值为处理设备基于修正后的z坐标的值为将目标对象相对于相机往后移,对目标对象的深度进行调整,直至目标对象的深度为
[0189]
又例如,若仍以上述示例为例,其中,目标身高t2为180厘米,则处理设备可以通过
(170-180)/170确定变化比例p为然后将p与k相乘得到进而确定位置修正值

z为处理设备接着通过将目标对象的三维位置坐标中的z坐标的值为2与位置修正值

z为进行相加,得到新的z的值,即修正后的z坐标的值为处理设备基于修正后的z坐标的值为将目标对象相对于相机往前移,对目标对象的深度进行调整,直至目标对象的深度为
[0190]
通过上述方法,可以避免由于采集图像的相机参数与预设相机参数不一致导致的人物呈现位置不同,也可以保证呈现的效果是预设的,例如,对于同一个人,深度与图像中人物的大小是对应的,如,深度为1米时,图像中人物的身高为2厘米,深度为1.5米时,图像中人物的身高为1.4厘米。
[0191]
在一些实施例中,基于所述位置修正值对目标图像中所述目标对象的三维位置进行修正是基于对目标对象的根关节的三维位置进行修正实现。
[0192]
由于在同一张待处理图像中,各个预设关节的三维位置坐标本质上是各个预设关节相对于坐标原点的位置及距离。在一些实施例中,为了便于计算,可以选择某一预设关节作为坐标原点,并将该作为坐标原点的预设关节作为根关节。因此,在对目标对象的三维位置进行修正时,仅需对根关节的位置进行修正后即可确定其他预设关节修正后的位置。
[0193]
在一些实施例中,处理设备对目标对象的三维位置进行修正基于对目标对象的根关节的三维位置进行修正实现。
[0194]
根关节可以指目标对象中延伸出其他关节的关节。例如,人体中的根关节可以指hips关节。在一些实施例中,根关节在目标对象中有且只有一个。在一些实施例中,处理设备可以基于人工通过用户终端140的输入确定根关节。例如,用户输入根关节为hips关节,处理设备可以将hips关节确定为根关节。
[0195]
在一些实施例中,除根关节以外的其他关节的三维位置坐标可以代表除根关节以外的其他关节相对于根关节的位置。例如,以根关节为坐标原点建立三维坐标系,颈关节的三维位置坐标可以代表颈关节与根关节的相对位置。
[0196]
在一些实施例中,处理设备可以对目标对象的根关节的三维位置进行修正。对目标对象的根关节的三维位置进行修正的方式可以参考上述对目标对象的三维位置进行修正的方式。
[0197]
在一些实施例中,处理设备可以基于修正后的根关节的三维位置坐标,通过根关节与除根关节以外的其他关节的相对位置,确定其他关节的三维位置坐标。例如,处理设备在对一个目标图像进行修正时,若处理设备已经对目标对象的根关节的三维位置坐标进行了修正,则处理设备可以基于颈关节与根关节的相对位置,确定颈关节的三维位置坐标。
[0198]
通过对根关节的三维位置进行修正,再根据关节间的相对位置确定其他关节的三维位置以实现修正,如此设置,可以避免对每个关节的三维位置进行修正,减小计算量,进而提高修正的效率。
[0199]
在一些实施例中,对所述目标对象的三维位置进行修正包括基于多个修正值对目标对象的三维位置进行修正,多个修正值基于所述若干不同位置采集的图像确定。
[0200]
在一些实施例中,处理设备可以基于若干不同位置采集的图像确定多个修正值。例如,在确定某一目标图像中目标对象的修正值时,处理设备可以基于该目标对象的不同位置采集的图像,确定多个修正值,例如,处理设备基于目标对象在位置a处采集的图像,确定的修正值为0.4,处理设备基于目标对象在位置b处采集的图像,确定的修正值为0.6。
[0201]
在一些实施例中,处理设备可以基于多个修正值,通过线性加权融合,确定一个最终的修正值。例如,仍以上述示例为例,由目标对象在位置a处采集的图像确定的修正值的权重为0.2,由目标对象在位置b处采集的图像确定的修正值的权重为0.8,处理设备可以将加权的结果0.56,确定为一个最终的修正值。
[0202]
在一些实施例中,处理设备还可以从多个修正值中选择一个数值最大的,将其确定一个最终的修正值。例如,仍以上述示例为例,处理设备可以将0.4和0.6中的0.6确定为一个最终的修正值。
[0203]
在一些实施例中,设备还可以基于多个修正值,通过其他的方式,确定一个最终的修正值。
[0204]
在一些实施例中,处理设备可以将修正值与目标对象的三维位置进行相加,以对目标对象的三维位置进行修正。
[0205]
通过使用基于若干不同位置采集的图像确定的修正值,可以提高修正的准确性。
[0206]
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
[0207]
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
[0208]
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
[0209]
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
[0210]
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例
中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
[0211]
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
[0212]
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1