CN110930482B - 人手骨骼参数的确定方法、装置、电子设备和存储介质 - Google Patents
人手骨骼参数的确定方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN110930482B CN110930482B CN201911113853.5A CN201911113853A CN110930482B CN 110930482 B CN110930482 B CN 110930482B CN 201911113853 A CN201911113853 A CN 201911113853A CN 110930482 B CN110930482 B CN 110930482B
- Authority
- CN
- China
- Prior art keywords
- coordinate system
- coordinates
- node
- local coordinate
- generation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 210000000988 bone and bone Anatomy 0.000 title claims abstract description 42
- 238000003860 storage Methods 0.000 title claims abstract description 11
- 239000011159 matrix material Substances 0.000 claims abstract description 149
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 210000000707 wrist Anatomy 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 12
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 20
- 238000004590 computer program Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000203475 Neopanax arboreus Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000000615 pisiform bone Anatomy 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
- Image Processing (AREA)
Abstract
本公开关于人手骨骼参数的确定方法、装置、电子设备和存储介质,方法包括:采集目标手型;确定目标手型中每个手指上的第j代子节点在世界坐标系中的坐标C# ij;根据旋转后的目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和坐标C# ij的关联关系,计算局部坐标系CS'ij相对于局部坐标系CS'i(j‑1)在人手骨骼中的旋转矩阵R'ij。根据本公开的实施例,对于需要确定旋转矩阵的目标手型,无需人工绘制目标手型,而是可以直接采用本实施例构建坐标Cij和坐标C'ij的关联关系,并根据该关联关系自动确定出目标手型中每个节点相对于其父节点的旋转矩阵,有利于减少在确定旋转矩阵的过程中人工的参与,以便降低成本和耗时。
Description
技术领域
本公开涉及图像处理技术领域,尤其涉及人手骨骼参数的确定方法、装置、电子设备和存储介质。
背景技术
目前,在3D渲染生成人手合成数据时,需要人手骨骼参数,其中,人手骨骼参数是指每个节点(也称作关键点)相对于该节点的父节点的旋转矩阵,旋转矩阵可以表示该节点与其父节点连线的方向,相对于父节点和父节点的父节点之间连线的方向的旋转角度。其中,某个节点的父节点是指:一根手指沿着指尖到手腕方向,某一节点的前面一个节点点。
例如,人手骨骼上的节点可以如图1所示,以节点10为例,其父节点为节点9,那么节点10所在局部坐标系(原点为节点9)相对于节点9所在局部坐标系(原点为节点8)的旋转矩阵,就是节点10与节点9的连线,与节点9和节点0的连线在三维空间中的夹角。
在相关技术中,为了获取上述旋转矩阵,针对不同的手型,需要美术设计人员先通过绘图软件绘制好手型,然后将绘制好的手型输入到特定的软件中进行解析,以输出每个节点的旋转矩阵。
基于目前的方式,每确定一个手型中节点的旋转矩阵,就需要美术设计人员绘制一个手型,成本较高,不利于批量操作。
发明内容
本公开提供一种人手骨骼参数的确定方法,人手骨骼参数的确定装置,电子设备和存储介质,以至少解决相关技术中确定旋转矩阵成本较高的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提出一种人手骨骼参数的确定方法,包括:
采集目标手型;
确定旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点与预先确定的初始手型中n个手指上的第一代子节点重合时,所述目标手型中每个手指上的第j代子节点在世界坐标系中的坐标C# ij;
其中,第i个手指上每代子节点对应所述第i个手指上的关节,所述第一代子节点对应的关节位于手指和手掌相接处,1≤j≤m,1≤i≤n,m为手指上关节的数量,n为手指的数量;
根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'ij;
其中,所述局部坐标系CS'ij的原点为旋转后的所述目标手型第i个手指上的第j代子节点的父节点。
可选地,在所述采集目标手型之前,所述方法还包括:
确定初始手型中的根节点、零节点、n个手指上的第一代子节点、所述根节点相对于世界坐标系的旋转矩阵Rw和平移向量Pw,以及所述第一代子节点所在局部坐标系CSi1相对于所述零节点所在局部坐标系CSi0的旋转矩阵Ri1,以及所述局部坐标系CSi1相对于所述局部坐标系CSi0的平移向量Pi1,以及所述零节点与所述根节点的距离;
其中,所述根节点和所述零节点位于手腕和手掌的相接处,所述第一代子节点的父节点为所述零节点,所述局部坐标系CS'i0的原点为所述根节点。
可选地,在所述根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算旋转后的所述目标手型中第j+1代子节点所在局部坐标系CS'ij-1相对于所述局部坐标系CS'ij的在人手骨骼中的旋转矩阵R'ij之前,所述方法还包括:
根据所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij确定所述目标手型中第i个手指上第j-1代子节点和第j代子节点之间的距离L'ij;
根据所述距离L'ij确定旋转后的所述目标手型中第i个手指上的第j代子节点在所述局部坐标系CS'ij中的坐标C'ij,其中,所述坐标C'ij在预设坐标轴上的坐标为L'ij,在其他坐标轴上的坐标为0;
根据所述目标手型中第i个手指上相邻的第j-2代子节点和第j-1代子节点之间的距离L'i(j-1)确定所述局部坐标系CS'ij相对于所述局部坐标系CS'i(j-1)的平移向量P'ij,其中,所述平移向量P'ij中平行于所述预设坐标轴的维度的值等于L'i(j-1),所述平移向量P'ij中其他维度的值为0;
其中,旋转后的所述目标手型中第i个手指上的第j代子节点位于所述局部坐标系CS'ij的预设坐标轴上。
可选地,所述根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算旋转后的所述目标手型中第j+1代子节点所在局部坐标系CS'i(j+1)相对于所述局部坐标系CS'ij的在人手骨骼中的旋转矩阵R'ij包括:
根据所述旋转矩阵Ri1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的旋转矩阵R'i1,根据所述平移向量Pi1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的平移向量P'i1;
根据待计算的所述旋转矩阵R'ij和所述平移向量P'ij,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和在局部坐标系CS'i(j-1)中的坐标C'i(j-1)的第ij关联关系;
根据第ij关联关系到第i1关联关系,以及所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系;
根据所述坐标C'ij和所述坐标C# ij的关联关系,计算所述人手骨骼中的旋转矩阵R'ij。
可选地,所述根据第ij关联关系到第i1关联关系,以及所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系包括:
步骤A,根据所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'i(j-1)和所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)的平移向量P'i(j-1),确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i(j-1)中的坐标C'i(j-1)和在局部坐标系CS'i(j-2)中的坐标C'i(j-2)的关联关系;
步骤B,将通过所述第ij关联关系表示的所述坐标C'i(j-1)代入所述坐标C'i(j-1)和所述坐标C'i(j-2)的关联关系,以确定所述坐标C'ij和所述坐标C'i(j-2)的第i(j-1)关联关系;
从j≥2开始循环步骤A和步骤B,若j>2,每循环一次步骤A和步骤B将j减1,直至j=2,以确定所述坐标C'ij和坐标C'i0的第i1关联关系;
根据所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i0中的坐标C'i0和所述坐标C# ij的关联关系,并将通过所述第i1关联关系表示的所述坐标C'i0代入所述坐标C'i0和所述坐标C# ij的关联关系,以确定所述坐标C'ij和所述坐标C# ij的关联关系。
可选地,所述确定旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点与预先确定的初始手型中n个手指上的第一代子节点和零节点重合时,所述目标手型中每个手指上的第j代子节点在世界坐标系中的坐标C# ij包括:
获取所述目标手型中n个手指上的第一代子节点和零节点在世界坐标系中的坐标,以及所述初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标;
根据待定旋转矩阵和待定平移向量,构建旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点和零节点的坐标与所述初始手型中n个手指上的第一代子节点和零节点的坐标重合的方程;
根据n+1个所述方程构建最小二乘问题,以确定所述待定旋转矩阵和所述待定平移向量;
根据确定的所述待定旋转矩阵和所述待定平移向量对所述目标手型中第i个手指上的第j代子节点在世界坐标系中的坐标进行转换,得到所述坐标C# ij。
可选地,所述获取所述目标手型中n个手指上的第一代子节点和零节点在世界坐标系中的坐标,以及所述初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标包括:
获取所述目标手型中第i个手指上每代子节点的坐标,以及所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij;
计算所述目标手型中第i个手指上第j代子节点的坐标与第j-1代子节点的坐标的差值向量V'ij(j-1);
对所述差值向量V'ij(j-1)的模长进行归一化,得到归一化向量v'ij(j-1);
计算所述归一化向量v'ij(j-1)与所述距离Lij之积v'ij(j-1)·Lij;
计算所述目标手型中第i个手指上第j-1代子节点的坐标与v'ij(j-1)·Lij之和作为所述目标手型中第j代子节点在世界坐标系中的坐标。
根据本公开实施例的第二方面,提出一种人手骨骼参数的确定装置,包括:
采集模块,被配置为执行,采集目标手型;
第一确定模块,被配置为执行,确定旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点与预先确定的初始手型中n个手指上的第一代子节点重合时,所述目标手型中每个手指上的第j代子节点在世界坐标系中的坐标C# ij;
其中,第i个手指上每代子节点对应所述第i个手指上的关节,所述第一代子节点对应的关节位于手指和手掌相接处,1≤j≤m,1≤i≤n,m为手指上关节的数量,n为手指的数量;
第一计算模块,被配置为执行,根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'ij;
其中,所述局部坐标系CS'ij的原点为旋转后的所述目标手型第i个手指上的第j代子节点的父节点。
可选地,在所述采集目标手型之前,所述装置还包括:
第二确定模块,被配置为执行,确定初始手型中的根节点、零节点、n个手指上的第一代子节点、所述根节点相对于世界坐标系的旋转矩阵Rw和平移向量Pw,以及所述第一代子节点所在局部坐标系CSi1相对于所述零节点所在局部坐标系CSi0的旋转矩阵Ri1,以及所述局部坐标系CSi1相对于所述局部坐标系CSi0的平移向量Pi1,以及所述零节点与所述根节点的距离;
其中,所述根节点和所述零节点位于手腕和手掌的相接处,所述第一代子节点的父节点为所述零节点,所述局部坐标系CS'i0的原点为所述根节点。
可选地,所述装置还包括:
距离确定模块,被配置为执行,根据所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij确定所述目标手型中第i个手指上第j-1代子节点和第j代子节点之间的距离L'ij;
坐标确定模块,被配置为执行,根据所述距离L'ij确定旋转后的所述目标手型中第i个手指上的第j代子节点在所述局部坐标系CS'ij中的坐标C'ij,其中,所述坐标C'ij在预设坐标轴上的坐标为L'ij,在其他坐标轴上的坐标为0;
向量确定模块,被配置为执行,根据所述目标手型中第i个手指上相邻的第j-2代子节点和第j-1代子节点之间的距离L'i(j-1)确定所述局部坐标系CS'ij相对于所述局部坐标系CS'i(j-1)的平移向量P'ij,其中,所述平移向量P'ij中平行于所述预设坐标轴的维度的值等于L'i(j-1),所述平移向量P'ij中其他维度的值为0;
其中,旋转后的所述目标手型中第i个手指上的第j代子节点位于所述局部坐标系CS'ij的预设坐标轴上。
可选地,所述第一计算模块包括:
向量确定子模块,被配置为执行,根据所述旋转矩阵Ri1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的旋转矩阵R'i1,根据所述平移向量Pi1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的平移向量P'i1;
关系确定子模块,被配置为执行,根据待计算的所述旋转矩阵R'ij和所述平移向量P'ij,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和在局部坐标系CS'i(j-1)中的坐标C'i(j-1)的第ij关联关系;以及根据第ij关联关系到第i1关联关系,以及所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系;
矩阵确定子模块,被配置为执行,根据所述坐标C'ij和所述坐标C# ij的关联关系,计算所述人手骨骼中的旋转矩阵R'ij。
可选地,所述关系确定子模块,被配置为执行:
步骤A,根据所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'i(j-1)和所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)的平移向量P'i(j-1),确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i(j-1)中的坐标C'i(j-1)和在局部坐标系CS'i(j-2)中的坐标C'i(j-2)的关联关系;
步骤B,将通过所述第ij关联关系表示的所述坐标C'i(j-1)代入所述坐标C'i(j-1)和所述坐标C'i(j-2)的关联关系,以确定所述坐标C'ij和所述坐标C'i(j-2)的第i(j-1)关联关系;
从j≥2开始循环步骤A和步骤B,若j>2,每循环一次步骤A和步骤B将j减1,直至j=2,以确定所述坐标C'ij和坐标C'i0的第i1关联关系;
根据所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i0中的坐标C'i0和所述坐标C# ij的关联关系,并将通过所述第i1关联关系表示的所述坐标C'i0代入所述坐标C'i0和所述坐标C# ij的关联关系,以确定所述坐标C'ij和所述坐标C# ij的关联关系。
可选地,所述第一确定模块包括:
坐标获取子模块,被配置为执行,获取所述目标手型中n个手指上的第一代子节点和零节点在世界坐标系中的坐标,以及所述初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标;
方程构建子模块,被配置为执行,根据待定旋转矩阵和待定平移向量,构建旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点和零节点的坐标与所述初始手型中n个手指上的第一代子节点和零节点的坐标重合的方程;
最小二乘子模块,被配置为执行,根据n+1个所述方程构建最小二乘问题,以确定所述待定旋转矩阵和所述待定平移向量;
坐标转换子模块,被配置为执行,根据确定的所述待定旋转矩阵和所述待定平移向量对所述目标手型中第i个手指上的第j代子节点在世界坐标系中的坐标进行转换,得到所述坐标C# ij。
可选地,所述坐标获取子模块,被配置为执行:
获取所述目标手型中第i个手指上每代子节点的坐标,以及所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij;
计算所述目标手型中第i个手指上第j代子节点的坐标与第j-1代子节点的坐标的差值向量V'ij(j-1);
对所述差值向量V'ij(j-1)的模长进行归一化,得到归一化向量v'ij(j-1);
计算所述归一化向量v'ij(j-1)与所述距离Lij之积v'ij(j-1)·Lij;
计算所述目标手型中第i个手指上第j-1代子节点的坐标与v'ij(j-1)·Lij之和作为所述目标手型中第j代子节点在世界坐标系中的坐标。
根据本公开实施例的第三方面,提出一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述任一实施例所述的人手骨骼参数的确定方法。
根据本公开实施例的第四方面,提出一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的人手骨骼参数的确定方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品被配置为执行上述任一实施例所述的人手骨骼参数的确定方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
根据本公开的实施例,只需人工绘制一个初始手型,并获取初始手型的相关参数,对于后续需要确定旋转矩阵的目标手型,无需人工绘制目标手型,而是可以将以任意方式采集到的目标手型直接采用本实施例构建坐标Cij和坐标C'ij的关联关系,并根据该关联关系自动确定出目标手型中每个节点相对于其父节点的旋转矩阵,有利于减少在确定旋转矩阵的过程中人工的参与,以便降低成本和耗时。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是一种人手节点示意图。
图2是根据本公开的实施例示出的一种人手骨骼参数的确定方法的示意流程图。
图3是根据本公开的实施例示出的另一种人手骨骼参数的确定方法的示意流程图。
图4是根据本公开的实施例示出的又一种人手骨骼参数的确定方法的示意流程图。
图5是根据本公开的实施例示出的一种根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算旋转后的所述目标手型中第j+1代子节点所在局部坐标系CS'i(j+1)相对于所述局部坐标系CS'ij的在人手骨骼中的旋转矩阵R'ij的示意流程图。
图6是根据本公开的实施例示出的一种根据第ij关联关系到第i1关联关系,以及所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系的示意流程图。
图7是根据本公开的实施例示出的又一种人手骨骼参数的确定方法的示意流程图。
图8是根据本公开的实施例示出的一种获取所述目标手型中n个手指上的第一代子节点和零节点在世界坐标系中的坐标,以及所述初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标的示意流程图。
图9是根据本公开的实施例示出的人手骨骼参数的确定装置所在设备的一种硬件结构图。
图10是根据本公开的实施例示出的一种人手骨骼参数的确定装置的示意框图。
图11是根据本公开的实施例示出的另一种人手骨骼参数的确定装置的示意框图。
图12是根据本公开的实施例示出的又一种人手骨骼参数的确定装置的示意框图。
图13是根据本公开的实施例示出的一种第一计算模块的示意框图。
图14是根据本公开的实施例示出的一种第一确定模块的示意框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图2是根据本公开的实施例示出的一种人手骨骼参数的确定方法的示意流程图。如图2所示,所述人手骨骼参数的确定方法可以包括以下步骤:
在步骤S1中,采集目标手型;
在步骤S2中,确定旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点与预先确定的初始手型中n个手指上的第一代子节点重合时,所述目标手型中每个手指上的第j代子节点在世界坐标系中的坐标C# ij;
其中,第i个手指上每代子节点对应所述第i个手指上的关节,所述第一代子节点对应的关节位于手指和手掌相接处,1≤j≤m,1≤i≤n,m为手指上关节的数量,n为手指的数量;
在步骤S3中,根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算旋转后的所述目标手型中第j+1代子节点所在局部坐标系CS'i(j+1)相对于所述局部坐标系CS'ij在人手骨骼中的旋转矩阵R'ij;
其中,所述局部坐标系CS'ij的原点为旋转后的所述目标手型第i个手指上的第j代子节点的父节点。
在一个实施例中,关于初始手型,可以由美术设计人员绘制,具体的手型可以根据需要设定,例如五指张开的手型,握拳的手型等。
其中,所述初始手型包括n个手指,例如n=5,每个手指可以包括m个关节,例如m=3,那么可以设定每个手指包括m代子节点,第i个手指上j-1代子节点Di(j-1)为第j代子节点Dij的父节点,1≤j≤m,1≤i≤n。
可以设置第一代子节点对应的关节位于手指和手掌相接处,根节点和零节点位于手腕和手掌的相接处,根节点和零节点可以根据需要设定,例如零节点可以对应手腕上的豌豆骨,第一代子节点的父节点为零节点。由于n个第一代子节点和零节点均位于手掌上,而手掌在手型改变的过程中并不会弯曲,因此手掌上的n个第一代子节点和零节点以及根节点位于同一个平面。
仍以图1所示的节点分布为例,零节点为节点0,第一个手指上的第一代子节点D11为节点1,第二个手指上的第一代子节点D21为节点5,第三个手指上的第一代子节点D31为节点9,第四个手指上的第一代子节点D41为节点13,第五个手指上的第一代子节点D51为节点17;第一个手指上的第二代子节点D12为节点2,第二个手指上的第二代子节点D22为节点6,第三个手指上的第二代子节点D32为节点10,第四个手指上的第二代子节点D42为节点14,第五个手指上的第二代子节点D52为节点18;第一个手指上的第三代子节点D13为节点3,第二个手指上的第三代子节点D23为节点7,第三个手指上的第三代子节点D33为节点11,第四个手指上的第四代子节点D43为节点15,第五个手指上的第五代子节点D53为节点19;第一个手指上的第四代子节点D14为节点4,第二个手指上的第四代子节点D24为节点8,第三个手指上的第四代子节点D34为节点12,第四个手指上的第四代子节点D44为节点16,第五个手指上的第四代子节点D54为节点20。需要说明的是,具体的节点可以根据需要设定,并不限于图1所示的实施例。
可以将绘制好的初始手型输入到特定的软件中,例如FBX软件(一种3D动画编辑制作软件),其中根节点可以由美术设计人员人工指定,也可以由软件自动确定。通过软件分析初始手型,可以确定根节点相对于世界坐标系的旋转矩阵Rw和平移向量Pw,以及所述第一代子节点所在局部坐标系CSi1相对于所述零节点所在局部坐标系CSi0的旋转矩阵Ri1,以及所述局部坐标系CSi1相对于所述局部坐标系CSi0的平移向量Pi1,以及第i个手指上相邻的第j-1代子节点Ci(j-1)和第j代子节点Dij之间的距离Lij,以及所述零节点与所述根节点的距离Li0,其中,Li0对于i为任何值而言都是相同的。
需要说明的是,某个节点所在的局部坐标系,原点是该节点的父节点,且局部坐标系为三维坐标系,坐标系的x轴、y轴和z轴中的一个轴的方式是从父节点指向该节点的。
在一个实施例中,对于采集到的目标手型(所述目标手型可以是通过拍照采集的),为了确定目标手型的人手骨骼参数,具体是确定子节点所在局部坐标系相对于父节点所在局部坐标系的旋转矩阵,可以获取其中每个节点的在世界坐标系中的坐标,但是由于目标手型与初始手型一般并不重合,而初始手型中部分节点的关系已经确定,为了基于已经确定部分节点的关系来计算目标手型中的人手骨骼参数,可以先将目标手型中节点的坐标转换到初始手型中。
可以以n个第一代子节点作为基准,对目标手型中节点的坐标进行转换,具体可以确定采集到的目标手型中第j代子节点,在旋转目标手型使得目标手型中n个手指上的第一代子节点与预先确定的初始手型中n个手指上的第一代子节点重合时,目标手型中每个手指上的第j代子节点在世界坐标系中的坐标C# ij。
具体地,针对旋转后的目标手型中的第j代子节点C'ij,可以构建局部坐标系CS'ij,所述局部坐标系CS'ij的原点为旋转后的所述目标手型第i个手指上的第j代子节点的父节点,也即第i个手指上的第j-1代子节点Ci(j-1)。可选地,还可以设置第j代子节点位于局部坐标系CS'ij的坐标轴上,例如位于x轴上。
由于旋转后的目标手型中第j代子节点所在局部坐标系CS'ij相对于第j-1代子节点所在局部坐标系CS'i(j-1)的平移向量P'ij的长度,等于第j-1代子节点与第j-2代子节点之间的距离,为了方便计算,设初始手型和目标手型中相对应的骨骼长度是相同的,例如初始手型中第j代子节点与第j-1代子节点之间的距离为Lij,那么旋转后的目标手型中第j代子节点与第j-1代子节点之间的距离L'ij也为Lij,在第j代子节点位于局部坐标系CS'ij的x轴的情况下,平移向量P'ij可以表示为(L'i(j-1),0,0)。
为了确定第j+1代子节点所在局部坐标系CS'i(j+1)相对于所述局部坐标系CS'ij在人手骨骼中的旋转矩阵R'ij,可以构建旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和坐标C# ij的关联关系,也即包含坐标C'ij和坐标C# ij的方程,通过求解该方程,可以计算出旋转矩阵R'ij。
在坐标C'ij和坐标C# ij的关联关系中,C# ij可以通过计算得到,而坐标C'ij可以基于Lij得到的。那么为了求得旋转矩阵R'ij,可以构建旋转后的目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和在局部坐标系CS'i(j-1)中的坐标C'i(j-1)的第ij关联关系。
例如以图1所示的节点6为例,其属于第2个手指上的第一代子节点(也即节点5)的子节点,那么i=2,并且属于第二代子节点,因此j=2。
旋转目标手型使得目标手型中n个手指上的第一代子节点与预先确定的初始手型中n个手指上的第一代子节点重合时,节点6在世界坐标系中的坐标为C# 22。节点6在局部坐标系CS'22中的坐标C'22为(L22,0,0),在局部坐标系CS'21中的坐标C'21与C'22的第22关联关系为:
C'21=R'22*C'22+P'22;
而第21关联关系为:
C'20=R'21*C'21+P'21=R'21*(R'22*C'22+P'22)+P'21;
其中,C'22是节点D22,也即节点6,在以节点5为原点的局部坐标系CS'22中的坐标,C'21是节点6在以零节点为原点的局部坐标系CS'21中的坐标,C'20是节点6在以根节点为原点的局部坐标系CS'20中的坐标,而根节点相对于世界坐标系的旋转矩阵为Rw,平移向量为Pw,那么可以构建坐标C'20和坐标C# 22的关联关系:
C# 22=Rw*C'20+Pw=Rw*(R'21*(R'22*C'22+P'22)+P'21)+Pw;
据此,构建了坐标C# 22和坐标C'22的关联关系,也即构建了坐标C# ij和坐标C'ij的关联关系。
而在坐标C# 22和坐标C'22的关联关系中,C# 22可以计算出来,因此可以作为已知量;C'22为(L22,0,0),是已知量;P'22为(L21,0,0)、P'21为(L20,0,0),都是已知量;Rw和Pw也是已知量;R'21则是第一代子节点(节点5)所在局部坐标系CS'21(原点为零节点)相对于局部坐标系CS'20(原点为根节点)的旋转矩阵,由于第一代子节点和零节点以及根节点位于同一平面,因此在手型变化过程中,第一代子节点和零节点以及根节点之间的旋转关系并不会改变,所以旋转后的目标手型中的R'21,与初始手型中的R21是相同的,具体地,第一代子节点相对于根节点的旋转矩阵,是单位矩阵(也即没有旋转),例如可以是3*3的单位矩阵,也是已知量。
所以上述坐标C# 22和坐标C'22的关联关系中,只有R22是未知量,从而基于该关联关系可以计算出R22,也即计算出节点6所在局部坐标系CS'22相对于节点5所在局部坐标系CS'21的旋转矩阵。
同理,对于其他节点,可以采用类似的方式计算旋转矩阵,例如针对节点7,可以先按照上述方式计算出R'22,然后构建坐标C'23和坐标C# 23的关联关系:
C# 23=Rw*C'20+Pw=Rw*(R'21*(R'22*(R'23*C'23+P'23)+P'22)+P'21)+Pw;
在计算出R'22后,坐标C'23和坐标C# 23关联关系中只有R'23是未知量,从而基于该关联关系可以计算出R'23,也即计算出节点7所在局部坐标系CS'23相对于节点6所在局部坐标系CS'22的旋转矩阵。
例如针对节点8,可以先按照上述方式计算出R'23,然后构建坐标C'24和坐标C# 24的关联关系:
C# 24=Rw*C'20+Pw=Rw*(R'21*(R'22*(R'23*(R'24*C'24+P'24)+P'23)+P'22)+P'21)+Pw;
在计算出R'22和R'23后,坐标C'24和坐标C# 24的关联关系中只有R'24是未知量,从而基于该关联关系可以计算出R'24,也即计算出节点8所在局部坐标系CS'24相对于节点7所在局部坐标系CS'23的旋转矩阵。
根据本公开的实施例,只需人工绘制一个初始手型,并获取初始手型的相关参数,对于后续需要确定旋转矩阵的目标手型,无需人工绘制目标手型,而是可以将以任意方式采集到的目标手型直接采用本实施例构建坐标C# ij和坐标C'ij的关联关系,并根据该关联关系自动确定出目标手型中任一节点所在局部坐标系相对于其父节点所在局部坐标系的旋转矩阵,有利于减少在确定旋转矩阵的过程中人工的参与,以便降低成本和耗时。
图3是根据本公开的实施例示出的另一种人手骨骼参数的确定方法的示意流程图。如
图3所示,在所述采集目标手型之前,所述方法还包括:
在步骤S4中,确定初始手型中的根节点、零节点、n个手指上的第一代子节点、所述根节点相对于世界坐标系的旋转矩阵Rw和平移向量Pw,以及所述第一代子节点所在局部坐标系CSi1相对于所述零节点所在局部坐标系CSi0的旋转矩阵Ri1,以及所述局部坐标系CSi1相对于所述局部坐标系CSi0的平移向量Pi1,以及所述零节点与所述根节点的距离;
其中,所述根节点和所述零节点位于手腕和手掌的相接处,所述第一代子节点的父节点为所述零节点,所述局部坐标系CS'i0的原点为所述根节点。
在一个实施例中,可以将绘制好的初始手型输入到特定的软件中,例如FBX软件(一种3D动画编辑制作软件),初始手型中的根节点可以由美术设计人员人工指定,也可以由软件自动确定。
通过软件分析初始手型,可以确定根节点相对于世界坐标系的旋转矩阵Rw和平移向量Pw,以及所述第一代子节点所在局部坐标系CSi1相对于所述零节点所在局部坐标系CSi0的旋转矩阵Ri1,以及所述局部坐标系CSi1相对于所述局部坐标系CSi0的平移向量Pi1,以及第i个手指上相邻的第j-1代子节点Ci(j-1)和第j代子节点Dij之间的距离Lij,以及所述零节点与所述根节点的距离Li0。其中,Li0对于i为任何值而言都是相同的。
图4是根据本公开的实施例示出的又一种人手骨骼参数的确定方法的示意流程图。如图4所示,在所述根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算旋转后的所述目标手型中第j+1代子节点所在局部坐标系CS'ij-1相对于所述局部坐标系CS'ij的在人手骨骼中的旋转矩阵R'ij之前,所述方法还包括:
在步骤S5中,根据所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij确定所述目标手型中第i个手指上第j-1代子节点和第j代子节点之间的距离L'ij;
在步骤S6中,根据所述距离L'ij确定旋转后的所述目标手型中第i个手指上的第j代子节点在所述局部坐标系CS'ij中的坐标C'ij,其中,所述坐标C'ij在预设坐标轴上的坐标为L'ij,在其他坐标轴上的坐标为0;
在步骤S7中,根据所述目标手型中第i个手指上相邻的第j-2代子节点和第j-1代子节点之间的距离L'i(j-1)确定所述局部坐标系CS'ij相对于所述局部坐标系CS'i(j-1)的平移向量P'ij,其中,所述平移向量P'ij中平行于所述预设坐标轴的维度的值等于L'i(j-1),所述平移向量P'ij中其他维度的值为0;
其中,旋转后的所述目标手型中第i个手指上的第j代子节点位于所述局部坐标系CS'ij的预设坐标轴上。
在一个实施例中,在不考虑初始手型中骨骼长度与目标手型中骨骼长度差异的情况下,可以认为初始手型中第i个手指上相邻的第j-1代子节点和第j代子节点之间的距离Lij等于旋转后的目标手型中第j代子节点与第j-1代子节点之间的距离L'ij。
旋转后的目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij到局部坐标系CS'ij的距离就是第j-1代子节点和第j代子节点之间的距离,也即L'ij。而旋转后的目标手型中第i个手指上的第j代子节点位于局部坐标系CS'ij的预设坐标轴上,预设坐标轴可以是x轴、y轴、z轴中的任一轴,具体可以根据需要选定,例如预设坐标轴为x轴,那么坐标C'ij为(L'ij,0,0)。
局部坐标系CS'ij相对于局部坐标系CS'i(j-1)的平移向量P'ij,就是局部坐标系CS'ij原点相对于局部坐标系CS'i(j-1)原点的平移向量。其中,局部坐标系CS'ij原点是旋转后目标手型中的节点Di(j-1),局部坐标系CS'i(j-1)原点是旋转后目标手型中的节点Di(j-2),其中节点Di(j-1)在局部坐标系CS'i(j-1)中的坐标为(L'i(j-1),0,0),而节点Di(j-2)则是局部坐标系CS'i(j-1)的原点,其在局部坐标系CS'i(j-1)中的坐标就是(0,0,0),那么局部坐标系CS'ij原点相对于局部坐标系CS'i(j-1)原点的平移向量就等于坐标(L'i(j-1),0,0)减去(0,0,0),也即等于(L'i(j-1),0,0),L'i(j-1)为旋转后的目标手型中第i个手指上相邻的第j-2代子节点和第j-1代子节点之间的距离,其等于初始手型中第i个手指上相邻的第j-2代子节点和第j-1代子节点之间的距离Li(j-1)。
图5是根据本公开的实施例示出的一种根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算旋转后的所述目标手型中第j+1代子节点所在局部坐标系CS'i(j+1)相对于所述局部坐标系CS'ij的在人手骨骼中的旋转矩阵R'ij的示意流程图。如图5所示,所述根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算旋转后的所述目标手型中第j+1代子节点所在局部坐标系CS'i(j+1)相对于所述局部坐标系CS'ij的在人手骨骼中的旋转矩阵R'ij包括:
在步骤S31中,根据所述旋转矩阵Ri1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的旋转矩阵R'i1,根据所述平移向量Pi1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的平移向量P'i1;
在步骤S32中,根据待计算的所述旋转矩阵R'ij和所述平移向量P'ij,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和在局部坐标系CS'i(j-1)中的坐标C'i(j-1)的第ij关联关系;
在步骤S33中,根据第ij关联关系到第i1关联关系,以及所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系;
在步骤S34中,根据所述坐标C'ij和所述坐标C# ij的关联关系,计算所述人手骨骼中的旋转矩阵R'ij。
在一个实施例中,由于旋转后的目标手型中n个手指上的第一代子节点与初始手型中n个手指上的第一代子节点重合,而第一代子节点与零节点位于同一平面内,所以在旋转过程中不会改变第一代子节点与零节点之前的旋转关系和平移关系,那么初始手型中第一代子节点所在局部坐标系CSi1相对于零节点所在局部坐标系CSi0的旋转矩阵Ri1,与旋转后目标手型中第一代子节点所在局部坐标系CS'i1相对于零节点所在局部坐标系CS'i0的旋转矩阵R'i1就是相同的,因此可以将旋转矩阵R'i1设置为旋转矩阵Ri1,类似地,可以将平移向量P'i1设置为平移向量Pi1。
对于第i个手指上的第j代子节点Dij而言,其在局部坐标系CS'ij中的坐标C'ij,需要通过旋转矩阵R'ij旋转,以及通过平移向量P'ij平移,才能够转换到局部坐标系CS'i(j-1)中的坐标C'i(j-1),据此,可以构建第ij关联关系:
C'i(j-1)=R'ij*C'ij+P'ij;
例如对于节点6而言,i=2,j=2,那么第22关联关系为C'21=R'22*C'22+P'22;
进一步地,为了将坐标C'ij转换到世界坐标系下,需要根据第ij关联关系到第i1关联关系进行转换,例如仍以节点6为例,第21关联为:
C'20=R'21*C'21+P'21=R'21*(R'22*C'22+P'22)+P'21;
C'20是节点6在以根节点为原点的局部坐标系CS'20中的坐标,而根节点相对于世界坐标系的旋转矩阵为Rw,平移向量为Pw,那么可以根据旋转矩阵Rw和所述平移向量Pw构建坐标C'20和坐标C# 22的关联关系:
C# 22=Rw*C'20+Pw=Rw*(R'21*(R'22*C'22+P'22)+P'21)+Pw;
据此,构建了坐标C# 22和坐标C'22的关联关系,也即构建了坐标C# ij和坐标C'ij的关联关系。
而在坐标C# 22和坐标C'22的关联关系中,C# 22可以计算出来,因此可以作为已知量;C'22为(L22,0,0),是已知量;P'22为(L21,0,0)、P'21为(L20,0,0),都是已知量;Rw和Pw也是已知量;R'21则是第一代子节点(节点5)所在局部坐标系CS'21(原点为零节点)相对于局部坐标系CS'20(原点为根节点)的旋转矩阵,由于第一代子节点和零节点以及根节点位于同一平面,因此在手型变化过程中,第一代子节点和零节点以及根节点之间的旋转关系并不会改变,所以旋转后的目标手型中的R'21,与初始手型中的R21是相同的,具体地,第一代子节点相对于根节点的旋转矩阵,是单位矩阵(也即没有旋转),例如可以是3*3的单位矩阵,也是已知量。
所以上述坐标C# 22和坐标C'22的关联关系中,只有R22是未知量,从而基于该关联关系可以计算出R22,也即计算出节点6所在局部坐标系CS'22相对于节点5所在局部坐标系CS'21的旋转矩阵,也即计算出人手骨骼中的旋转矩阵R'22。按照类似的方法,可以计算出任一R'ij。
图6是根据本公开的实施例示出的一种根据第ij关联关系到第i1关联关系,以及所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系的示意流程图。如图6所示,所述根据第ij关联关系到第i1关联关系,以及所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系包括:
步骤A,根据所述局部坐标系CS'i相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'i(j-1)和所述局部坐标系CS'i相对于局部坐标系CS'i(j-1)的平移向量P'i(j-1),确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i(j-1)中的坐标C'i(j-1)和在局部坐标系CS'i(j-2)中的坐标C'i(j-2)的关联关系;
步骤B,将通过所述第ij关联关系表示的所述坐标C'i(j-1)代入所述坐标C'i(j-1)和所述坐标C'i(j-2)的关联关系,以确定所述坐标C'ij和所述坐标C'i(j-2)的第i(j-1)关联关系;
步骤C,从j≥2开始循环步骤A和步骤B,若j>2,每循环一次步骤A和步骤B,将j减1,直至j=2,以确定所述坐标C'ij和坐标C'i0的第i1关联关系;
步骤D,根据所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i0中的坐标C'i0和所述坐标C# ij的关联关系,并将通过所述第i1关联关系表示的所述坐标C'i0代入所述坐标C'i0和所述坐标C# ij的关联关系,以确定所述坐标C'ij和所述坐标C# ij的关联关系。
在一个实施例中,由于坐标C# ij是节点Dij在世界坐标系中的坐标,而坐标C'ij是节点Dij在局部坐标系CS'ij中的坐标,为了将坐标C'ij转换到世界坐标系下,需要向其父节点所在的局部坐标系转换,直至转换到世界坐标系下,该过程可以通过坐标C'ij与坐标C# ij的关联关系来表达。
对于第i个手指上的第j代子节点Dij而言,其在局部坐标系CS'ij中的坐标C'ij,需要通过旋转矩阵R'ij旋转,以及通过平移向量P'ij平移,才能够转换到局部坐标系CS'i(j-1)中的坐标C'i(j-1),据此,可以构建第ij关联关系:
C'i(j-1)=R'ij*C'ij+P'ij;
而为了进一步向Di(j-1)所在的局部坐标系转换,就需要将第ij关联关系代入坐标C'i(j-1)和坐标C'i(j-2)的关联关系,而坐标C'i(j-1)和坐标C'i(j-2)的关联关系则可以通过局部坐标系CS'ij相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'i(j-1)和所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)的平移向量P'i(j-1)来表示:
C'i(j-2)=R'i(j-1)*C'i(j-1)+P'i(j-1);
那么将通过第ij关联关系表达的C'i(j-1)代入坐标C'i(j-1)和坐标C'i(j-2)的关联关系,从而得到第i(j-1)关联关系:
C'i(j-2)=R'i(j-1)*(R'ij*C'ij+P'ij)+P'i(j-1);
据此,将节点Dij在局部坐标系CS'ij中的坐标转换到了在局部坐标系CS'i(j-2)中的坐标,以此类推,可以进一步进行转换,直至将节点Dij在局部坐标系CS'ij中的坐标转换到在世界坐标系中的坐标。
具体地,可以从j≥2开始执行上述转换过程,若j>2,每执行一次上述转换过程,可以将j减1,再次执行上述转换步骤,直至j=2。
例如对节点6而言,i=2,且j=2,那么可以只执行一次上述过程,也即确定C'21和C'20的关联关系:
C'20=R'21*C'21+P'21;
然后将通过第22关联关系C'21=R'22*C'22+P'22表达的C'21代入C'21和C'20的关联关系,得到第21关联关系:
C'20=R'21*(R'22*C'22+P'22)+P'21;
其中,C'20是节点6在以根节点为原点的局部坐标系CS'20中的坐标,而根节点相对于世界坐标系的旋转矩阵为Rw,平移向量为Pw,那么为了构建坐标C'20和坐标C# 22的关联关系,可以先确定旋转后的目标手型中第i个手指上的第j代子节点在局部坐标系CS'i0中的坐标C'i0和坐标C# ij的关联关系:
C# ij=Rw*C'i0+Pw,针对节点6而言就是C# 22=Rw*C'20+Pw;
进而可以将通过第i1关联关系表示的坐标C'i0代入所述坐标C'i0和坐标C# ij的关联关系,针对节点6而言如下所示:
C# 22=Rw*(R'21*(R'22*C'22+P'22)+P'21)+Pw;
在坐标C# 22和坐标C'22的关联关系中,只有R22是未知量,从而基于该关联关系可以计算出R'22,也即计算出节点6所在局部坐标系CS'22相对于节点5所在局部坐标系CS'21的旋转矩阵。
例如在j>2的情况下,以节点7为例,j=3,执行步骤A,确定C'22和C'21的关联关系:
C'21=R'22*C'22+P'22;
然后将通过第23关联关系表示的坐标C'22代入C'22和C'21的关联关系,得到第22关联关系:
C'21=R'22*(R'23*C'23+P'23)+P'22;
然后将j-1=2,再针对j=2的情况执行步骤A和步骤B,那么可以计算出R'22,从而在第22关联关系中,只有R'23是未知量,那么基于该关联关系可以计算出R'23,也即计算出节点7所在局部坐标系CS'23相对于节点6所在局部坐标系CS'22的旋转矩阵。
对于其他节点的计算方式类似,在此不再赘述。
图7是根据本公开的实施例示出的又一种人手骨骼参数的确定方法的示意流程图。如图7所示,所述确定旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点与预先确定的初始手型中n个手指上的第一代子节点和零节点重合时,所述目标手型中每个手指上的第j代子节点在世界坐标系中的坐标C# ij包括:
在步骤S21中,获取所述目标手型中n个手指上的第一代子节点和零节点在世界坐标系中的坐标,以及所述初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标;
在步骤S22中,根据待定旋转矩阵和待定平移向量,构建旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点和零节点的坐标与所述初始手型中n个手指上的第一代子节点和零节点的坐标重合的方程;
在步骤S23中,根据n+1个所述方程构建最小二乘问题,以确定所述待定旋转矩阵和所述待定平移向量;
在步骤S24中,根据确定的所述待定旋转矩阵和所述待定平移向量对所述目标手型中第i个手指上的第j代子节点在世界坐标系中的坐标进行转换,得到所述坐标C# ij。
在一个实施例中,为了将目标手型中节点的坐标转换到初始手型中,可以先获取(例如目标手型位于具有深度信息的二维图像中,那么可以根据二维图像中的深度信息确定)所述目标手型中n个手指上的第j代子节点在世界坐标系中的坐标,例如为(x,z,y),以及获取(例如通过上述FBX软件获取)初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标。
然后设定两个未知数:目标手型相对于初始手型的待定旋转矩阵Rc和待定平移向量Pc。进而根据待定旋转矩阵Rc和待定平移向量Pc,构建旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点和零节点的坐标与所述初始手型中n个手指上的第一代子节点和零节点的坐标重合的方程,也即将坐标(x,z,y)通过Rc旋转,并通过Pc平移得到坐标C'ij:
C'ij=Rc*(x,z,y)+Pc。
而对于n个第一代子节点和零节点而言,可以存在n+1个不同的(x,z,y),那么就存在n+1个上述方程,从而可以根据n+1个所述方程构建最小二乘问题,以确定待定旋转矩阵和待定平移向量。进而可以根据确定的待定旋转矩阵和所述平移向量对目标手型中第i个手指上的第j代子节点在世界坐标系中的坐标进行转换,得到坐标C# ij。
图8是根据本公开的实施例示出的一种获取所述目标手型中n个手指上的第一代子节点和零节点在世界坐标系中的坐标,以及所述初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标的示意流程图。如图8所示,所述获取所述目标手型中n个手指上的第一代子节点和零节点在世界坐标系中的坐标,以及所述初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标包括:
在步骤S211中,获取所述目标手型中第i个手指上每代子节点的坐标,以及所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij;
在步骤S212中,计算所述目标手型中第i个手指上第j代子节点的坐标与第j-1代子节点的坐标的差值向量V'ij(j-1);
在步骤S213中,对所述差值向量V'ij(j-1)的模长进行归一化,得到归一化向量v'ij(j-1);
在步骤S214中,计算所述归一化向量v'ij(j-1)与所述距离Lij之积v'ij(j-1)·Lij;
在步骤S215中,计算所述目标手型中第i个手指上第j-1代子节点的坐标与v'ij(j-1)·Lij之和作为所述目标手型中第j代子节点在世界坐标系中的坐标。
在一个实施例中,由于初始手型中手掌和每节手指骨骼的尺寸,与目标手型中手掌和每节手指骨骼的尺寸可以不同,那么为了更加准确地将目标手型中节点的坐标转换到初始手型中,可以获取目标手型中每个节点的坐标,以及所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij。
然后计算旋转后的目标手型中第j代子节点的坐标与第j-1代子节点的坐标的差值向量V'ij(j-1),也即将第j代子节点的坐标减去第j-1代子节点的坐标得到差值向量V'ij(j-1),例如以节点6为例,就是将节点6的坐标减去节点5的坐标,可以得到差值向量V'221。
进而对所述差值向量V'ij(j-1)的模长进行归一化,得到归一化向量v'ij(j-1)。其中,归一化向量v'ij(j-1)的模长为1,且三个维度的比例关系与归一化前差值向量V'ij(j-1)中三个维度的比例关系相同,例如差值向量V'ij(j-1)为(1,1,1),那么归一化向量v'ij(j-1)为
进而计算归一化向量v'ij(j-1)与所述初始手型中距离Lij之积v'ij(j-1)·Lij,例如以节点6为例,就是将归一化向量v'221乘以初始手型中节点6到节点5的距离L22(也即节点6到节点5的骨骼长度),从而使得旋转后目标手型中节点6到节点5的骨骼长度与目标手型中实际上节点6到节点5的骨骼长度相等,且节点6到节点5的骨骼在空间中的姿态相同与初始手型中节点6到节点5的骨骼在空间中的姿态相同。
然后计算所述目标手型中第i个手指上第j-1代子节点的坐标与v'ij(j-1)·Lij之和作为第j代子节点在世界坐标系中的坐标,具体地,可以先计算旋转后的目标手型中第i个手指上第一代子节点的坐标与v'i21·Li2之和作为第2代子节点在世界坐标系中的坐标,由于旋转后的旋转后的目标手型中n个第一代子节点与初始手型中n个第一代子节点重合,所以旋转后的目标手型中n个第一代子节点的坐标是已知的,从而可以计算出旋转后的目标手型中第i个手指上第2代子节点在世界坐标系中的坐标,进而在已知第2代子节点在世界坐标系中的坐标的情况下,可以进一步计算目标手型中第i个手指上第3代子节点的坐标与v'i32·Li3之和作为所述目标手型中第3代子节点在世界坐标系中的坐标,以此类推,可以计算出每一代子节点在世界坐标系中的坐标。
本公开实施例示出的人手骨骼参数的确定装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图9所示,为根据本公开的实施例示出的人手骨骼参数的确定装置所在设备的一种硬件结构图,除了图9所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等;从硬件结构上来讲该设备还可能是分布式的设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
与前述人手骨骼参数的确定方法的实施例相对应地,本公开还提出了人手骨骼参数的确定装置的实施例。
图10是根据本公开的实施例示出的一种人手骨骼参数的确定装置的示意框图。如图10所示,所述人手骨骼参数的确定装置包括:
采集模块1,被配置为执行,采集目标手型;
第一确定模块2,被配置为执行,确定旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点与预先确定的初始手型中n个手指上的第一代子节点重合时,所述目标手型中每个手指上的第j代子节点在世界坐标系中的坐标C# ij;
其中,第i个手指上每代子节点对应所述第i个手指上的关节,所述第一代子节点对应的关节位于手指和手掌相接处,1≤j≤m,1≤i≤n,m为手指上关节的数量,n为手指的数量;
第一计算模块3,被配置为执行,根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'ij;
其中,所述局部坐标系CS'ij的原点为旋转后的所述目标手型第i个手指上的第j代子节点的父节点。
图11是根据本公开的实施例示出的另一种人手骨骼参数的确定装置的示意框图。如图11所示,所述装置还包括:
第二确定模块4,被配置为执行,确定初始手型中的根节点、零节点、n个手指上的第一代子节点、所述根节点相对于世界坐标系的旋转矩阵Rw和平移向量Pw,以及所述第一代子节点所在局部坐标系CSi1相对于所述零节点所在局部坐标系CSi0的旋转矩阵Ri1,以及所述局部坐标系CSi1相对于所述局部坐标系CSi0的平移向量Pi1,以及所述零节点与所述根节点的距离;
其中,所述根节点和所述零节点位于手腕和手掌的相接处,所述第一代子节点的父节点为所述零节点,所述局部坐标系CS'i0的原点为所述根节点。
图12是根据本公开的实施例示出的又一种人手骨骼参数的确定装置的示意框图。如图12所示,所述装置还包括:
距离确定模块5,被配置为执行,根据所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij确定所述目标手型中第i个手指上第j-1代子节点和第j代子节点之间的距离L'ij;
坐标确定模块6,被配置为执行,根据所述距离L'ij确定旋转后的所述目标手型中第i个手指上的第j代子节点在所述局部坐标系CS'ij中的坐标C'ij,其中,所述坐标C'ij在预设坐标轴上的坐标为L'ij,在其他坐标轴上的坐标为0;
向量确定模块7,被配置为执行,根据所述目标手型中第i个手指上相邻的第j-2代子节点和第j-1代子节点之间的距离L'i(j-1)确定所述局部坐标系CS'ij相对于所述局部坐标系CS'i(j-1)的平移向量P'ij,其中,所述平移向量P'ij中平行于所述预设坐标轴的维度的值等于L'i(j-1),所述平移向量P'ij中其他维度的值为0;
其中,旋转后的所述目标手型中第i个手指上的第j代子节点位于所述局部坐标系CS'ij的预设坐标轴上。
图13是根据本公开的实施例示出的一种第一计算模块的示意框图。如图13所示,所述第一计算模块3包括:
向量确定子模块31,被配置为执行,根据所述旋转矩阵Ri1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的旋转矩阵R'i1,根据所述平移向量Pi1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的平移向量P'i1;
关系确定子模块32,被配置为执行,根据待计算的所述旋转矩阵R'ij和所述平移向量P'ij,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和在局部坐标系CS'i(j-1)中的坐标C'i(j-1)的第ij关联关系;以及根据第ij关联关系到第i1关联关系,以及所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系;
矩阵确定子模块33,被配置为执行,根据所述坐标C'ij和所述坐标C# ij的关联关系,计算所述人手骨骼中的旋转矩阵R'ij。
可选地,所述关系确定子模块,被配置为执行:
步骤A,根据所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'i(j-1)和所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)的平移向量P'i(j-1),确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i(j-1)中的坐标C'i(j-1)和在局部坐标系CS'i(j-2)中的坐标C'i(j-2)的关联关系;
步骤B,将通过所述第ij关联关系表示的所述坐标C'i(j-1)代入所述坐标C'i(j-1)和所述坐标C'i(j-2)的关联关系,以确定所述坐标C'ij和所述坐标C'i(j-2)的第i(j-1)关联关系;
从j≥2开始循环步骤A和步骤B,若j>2,每循环一次步骤A和步骤B将j减1,直至j=2,以确定所述坐标C'ij和坐标C'i0的第i1关联关系;
根据所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i0中的坐标C'i0和所述坐标C# ij的关联关系,并将通过所述第i1关联关系表示的所述坐标C'i0代入所述坐标C'i0和所述坐标C# ij的关联关系,以确定所述坐标C'ij和所述坐标C# ij的关联关系。
图14是根据本公开的实施例示出的一种第一确定模块的示意框图。如图14所示,所述第一确定模块2包括:
坐标获取子模块21,被配置为执行,获取所述目标手型中n个手指上的第一代子节点和零节点在世界坐标系中的坐标,以及所述初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标;
方程构建子模块22,被配置为执行,根据待定旋转矩阵和待定平移向量,构建旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点和零节点的坐标与所述初始手型中n个手指上的第一代子节点和零节点的坐标重合的方程;
最小二乘子模块23,被配置为执行,根据n+1个所述方程构建最小二乘问题,以确定所述待定旋转矩阵和所述待定平移向量;
坐标转换子模块24,被配置为执行,根据确定的所述待定旋转矩阵和所述待定平移向量对所述目标手型中第i个手指上的第j代子节点在世界坐标系中的坐标进行转换,得到所述坐标C# ij。
可选地,所述坐标获取子模块,被配置为执行:
获取所述目标手型中第i个手指上每代子节点的坐标,以及所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij;
计算所述目标手型中第i个手指上第j代子节点的坐标与第j-1代子节点的坐标的差值向量V'ij(j-1);
对所述差值向量V'ij(j-1)的模长进行归一化,得到归一化向量v'ij(j-1);
计算所述归一化向量v'ij(j-1)与所述距离Lij之积v'ij(j-1)·Lij;
计算所述目标手型中第i个手指上第j-1代子节点的坐标与v'ij(j-1)·Lij之和作为所述目标手型中第j代子节点在世界坐标系中的坐标。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开的实施例还提出一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述任一实施例所述的人手骨骼参数的确定方法。
本公开的实施例还提出一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的人手骨骼参数的确定方法。
本公开的实施例还提出一种计算机程序产品,所述计算机程序产品被配置为执行上述任一实施例所述的人手骨骼参数的确定方法。
可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本公开的实施例还提出一种计算机程序产品,所述计算机程序产品被配置为执行上述任一实施例所述的人手骨骼参数的确定方法。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本公开实施例所提供的方法和装置进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
Claims (16)
1.一种人手骨骼参数的确定方法,其特征在于,包括:
采集目标手型;
确定旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点与预先确定的初始手型中n个手指上的第一代子节点重合时,所述目标手型中每个手指上的第j代子节点在世界坐标系中的坐标C# ij;
其中,第i个手指上每代子节点对应所述第i个手指上的关节,所述第一代子节点对应的关节位于手指和手掌相接处,1≤j≤m,1≤i≤n,m为手指上关节的数量,n为手指的数量;
根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'ij;
其中,所述局部坐标系CS'ij的原点为旋转后的所述目标手型第i个手指上的第j代子节点的父节点。
2.根据权利要求1所述的方法,其特征在于,在所述采集目标手型之前,所述方法还包括:
确定初始手型中的根节点、零节点、n个手指上的第一代子节点、所述根节点相对于世界坐标系的旋转矩阵Rw和平移向量Pw,以及所述第一代子节点所在局部坐标系CSi1相对于所述零节点所在局部坐标系CSi0的旋转矩阵Ri1,以及所述局部坐标系CSi1相对于所述局部坐标系CSi0的平移向量Pi1,以及所述零节点与所述根节点的距离;
其中,所述根节点和所述零节点位于手腕和手掌的相接处,所述第一代子节点的父节点为所述零节点,所述局部坐标系CS'i0的原点为所述根节点。
3.根据权利要求2所述的方法,其特征在于,在所述根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算旋转后的所述目标手型中第j+1代子节点所在局部坐标系CS'ij-1相对于所述局部坐标系CS'ij的在人手骨骼中的旋转矩阵R'ij之前,所述方法还包括:
根据所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij确定所述目标手型中第i个手指上第j-1代子节点和第j代子节点之间的距离L'ij;
根据所述距离L'ij确定旋转后的所述目标手型中第i个手指上的第j代子节点在所述局部坐标系CS'ij中的坐标C'ij,其中,所述坐标C'ij在预设坐标轴上的坐标为L'ij,在其他坐标轴上的坐标为0;
根据所述目标手型中第i个手指上相邻的第j-2代子节点和第j-1代子节点之间的距离L'i(j-1)确定所述局部坐标系CS'ij相对于所述局部坐标系CS'i(j-1)的平移向量P'ij,其中,所述平移向量P'ij中平行于所述预设坐标轴的维度的值等于L'i(j-1),所述平移向量P'ij中其他维度的值为0;
其中,旋转后的所述目标手型中第i个手指上的第j代子节点位于所述局部坐标系CS'ij的预设坐标轴上。
4.根据权利要求3所述的方法,其特征在于,所述根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算旋转后的所述目标手型中第j+1代子节点所在局部坐标系CS'i(j+1)相对于所述局部坐标系CS'ij的在人手骨骼中的旋转矩阵R'ij包括:
根据所述旋转矩阵Ri1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的旋转矩阵R'i1,根据所述平移向量Pi1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的平移向量P'i1;
根据待计算的所述旋转矩阵R'ij和所述平移向量P'ij,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和在局部坐标系CS'i(j-1)中的坐标C'i(j-1)的第ij关联关系;
根据第ij关联关系到第i1关联关系,以及所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系;
根据所述坐标C'ij和所述坐标C# ij的关联关系,计算所述人手骨骼中的旋转矩阵R'ij。
5.根据权利要求4所述的方法,其特征在于,所述根据第ij关联关系到第i1关联关系,以及所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系包括:
步骤A,根据所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'i(j-1)和所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)的平移向量P'i(j-1),确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i(j-1)中的坐标C'i(j-1)和在局部坐标系CS'i(j-2)中的坐标C'i(j-2)的关联关系;
步骤B,将通过所述第ij关联关系表示的所述坐标C'i(j-1)代入所述坐标C'i(j-1)和所述坐标C'i(j-2)的关联关系,以确定所述坐标C'ij和所述坐标C'i(j-2)的第i(j-1)关联关系;
从j≥2开始循环步骤A和步骤B,若j>2,每循环一次步骤A和步骤B将j减1,直至j=2,以确定所述坐标C'ij和坐标C'i0的第i1关联关系;
根据所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i0中的坐标C'i0和所述坐标C# ij的关联关系,并将通过所述第i1关联关系表示的所述坐标C'i0代入所述坐标C'i0和所述坐标C# ij的关联关系,以确定所述坐标C'ij和所述坐标C# ij的关联关系。
6.根据权利要求2所述的方法,其特征在于,所述确定旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点与预先确定的初始手型中n个手指上的第一代子节点和零节点重合时,所述目标手型中每个手指上的第j代子节点在世界坐标系中的坐标C# ij包括:
获取所述目标手型中n个手指上的第一代子节点和零节点在世界坐标系中的坐标,以及所述初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标;
根据待定旋转矩阵和待定平移向量,构建旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点和零节点的坐标与所述初始手型中n个手指上的第一代子节点和零节点的坐标重合的方程;
根据n+1个所述方程构建最小二乘问题,以确定所述待定旋转矩阵和所述待定平移向量;
根据确定的所述待定旋转矩阵和所述待定平移向量对所述目标手型中第i个手指上的第j代子节点在世界坐标系中的坐标进行转换,得到所述坐标C# ij。
7.根据权利要求6所述的方法,其特征在于,所述获取所述目标手型中n个手指上的第一代子节点和零节点在世界坐标系中的坐标,以及所述初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标包括:
获取所述目标手型中第i个手指上每代子节点的坐标,以及所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij;
计算所述目标手型中第i个手指上第j代子节点的坐标与第j-1代子节点的坐标的差值向量V'ij(j-1);
对所述差值向量V'ij(j-1)的模长进行归一化,得到归一化向量v'ij(j-1);
计算所述归一化向量v'ij(j-1)与所述距离Lij之积v'ij(j-1)·Lij;
计算所述目标手型中第i个手指上第j-1代子节点的坐标与v'ij(j-1)·Lij之和作为所述目标手型中第j代子节点在世界坐标系中的坐标。
8.一种人手骨骼参数的确定装置,其特征在于,包括:
采集模块,被配置为执行,采集目标手型;
第一确定模块,被配置为执行,确定旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点与预先确定的初始手型中n个手指上的第一代子节点重合时,所述目标手型中每个手指上的第j代子节点在世界坐标系中的坐标C# ij;
其中,第i个手指上每代子节点对应所述第i个手指上的关节,所述第一代子节点对应的关节位于手指和手掌相接处,1≤j≤m,1≤i≤n,m为手指上关节的数量,n为手指的数量;
第一计算模块,被配置为执行,根据旋转后的所述目标手型中第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系,计算所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'ij;
其中,所述局部坐标系CS'ij的原点为旋转后的所述目标手型第i个手指上的第j代子节点的父节点。
9.根据权利要求8所述的装置,其特征在于,在所述采集目标手型之前,所述装置还包括:
第二确定模块,被配置为执行,确定初始手型中的根节点、零节点、n个手指上的第一代子节点、所述根节点相对于世界坐标系的旋转矩阵Rw和平移向量Pw,以及所述第一代子节点所在局部坐标系CSi1相对于所述零节点所在局部坐标系CSi0的旋转矩阵Ri1,以及所述局部坐标系CSi1相对于所述局部坐标系CSi0的平移向量Pi1,以及所述零节点与所述根节点的距离;
其中,所述根节点和所述零节点位于手腕和手掌的相接处,所述第一代子节点的父节点为所述零节点,所述局部坐标系CS'i0的原点为所述根节点。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
距离确定模块,被配置为执行,根据所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij确定所述目标手型中第i个手指上第j-1代子节点和第j代子节点之间的距离L'ij;
坐标确定模块,被配置为执行,根据所述距离L'ij确定旋转后的所述目标手型中第i个手指上的第j代子节点在所述局部坐标系CS'ij中的坐标C'ij,其中,所述坐标C'ij在预设坐标轴上的坐标为L'ij,在其他坐标轴上的坐标为0;
向量确定模块,被配置为执行,根据所述目标手型中第i个手指上相邻的第j-2代子节点和第j-1代子节点之间的距离L'i(j-1)确定所述局部坐标系CS'ij相对于所述局部坐标系CS'i(j-1)的平移向量P'ij,其中,所述平移向量P'ij中平行于所述预设坐标轴的维度的值等于L'i(j-1),所述平移向量P'ij中其他维度的值为0;
其中,旋转后的所述目标手型中第i个手指上的第j代子节点位于所述局部坐标系CS'ij的预设坐标轴上。
11.根据权利要求10所述的装置,其特征在于,所述第一计算模块包括:
向量确定子模块,被配置为执行,根据所述旋转矩阵Ri1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的旋转矩阵R'i1,根据所述平移向量Pi1设置旋转后的所述目标手型中第一代子节点所在局部坐标系相对于零节点所在局部坐标系的平移向量P'i1;
关系确定子模块,被配置为执行,根据待计算的所述旋转矩阵R'ij和所述平移向量P'ij,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和在局部坐标系CS'i(j-1)中的坐标C'i(j-1)的第ij关联关系;以及根据第ij关联关系到第i1关联关系,以及所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'ij中的坐标C'ij和所述坐标C# ij的关联关系;
矩阵确定子模块,被配置为执行,根据所述坐标C'ij和所述坐标C# ij的关联关系,计算所述人手骨骼中的旋转矩阵R'ij。
12.根据权利要求11所述的装置,其特征在于,所述关系确定子模块,被配置为执行:
步骤A,根据所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)在人手骨骼中的旋转矩阵R'i(j-1)和所述局部坐标系CS'ij相对于局部坐标系CS'i(j-1)的平移向量P'i(j-1),确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i(j-1)中的坐标C'i(j-1)和在局部坐标系CS'i(j-2)中的坐标C'i(j-2)的关联关系;
步骤B,将通过所述第ij关联关系表示的所述坐标C'i(j-1)代入所述坐标C'i(j-1)和所述坐标C'i(j-2)的关联关系,以确定所述坐标C'ij和所述坐标C'i(j-2)的第i(j-1)关联关系;
从j≥2开始循环步骤A和步骤B,若j>2,每循环一次步骤A和步骤B将j减1,直至j=2,以确定所述坐标C'ij和坐标C'i0的第i1关联关系;
根据所述旋转矩阵Rw和所述平移向量Pw,确定旋转后的所述目标手型中第i个手指上的第j代子节点在局部坐标系CS'i0中的坐标C'i0和所述坐标C# ij的关联关系,并将通过所述第i1关联关系表示的所述坐标C'i0代入所述坐标C'i0和所述坐标C# ij的关联关系,以确定所述坐标C'ij和所述坐标C# ij的关联关系。
13.根据权利要求9所述的装置,其特征在于,所述第一确定模块包括:
坐标获取子模块,被配置为执行,获取所述目标手型中n个手指上的第一代子节点和零节点在世界坐标系中的坐标,以及所述初始手型中n个手指上第一代子节点和零节点在世界坐标系中的坐标;
方程构建子模块,被配置为执行,根据待定旋转矩阵和待定平移向量,构建旋转所述目标手型使得所述目标手型中n个手指上的第一代子节点和零节点的坐标与所述初始手型中n个手指上的第一代子节点和零节点的坐标重合的方程;
最小二乘子模块,被配置为执行,根据n+1个所述方程构建最小二乘问题,以确定所述待定旋转矩阵和所述待定平移向量;
坐标转换子模块,被配置为执行,根据确定的所述待定旋转矩阵和所述待定平移向量对所述目标手型中第i个手指上的第j代子节点在世界坐标系中的坐标进行转换,得到所述坐标C# ij。
14.根据权利要求13所述的装置,其特征在于,所述坐标获取子模块,被配置为执行:
获取所述目标手型中第i个手指上每代子节点的坐标,以及所述初始手型中第i个手指上第j-1代子节点和第j代子节点之间的距离Lij;
计算所述目标手型中第i个手指上第j代子节点的坐标与第j-1代子节点的坐标的差值向量V'ij(j-1);
对所述差值向量V'ij(j-1)的模长进行归一化,得到归一化向量v'ij(j-1);
计算所述归一化向量v'ij(j-1)与所述距离Lij之积v'ij(j-1)·Lij;
计算所述目标手型中第i个手指上第j-1代子节点的坐标与v'ij(j-1)·Lij之和作为所述目标手型中第j代子节点在世界坐标系中的坐标。
15.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的人手骨骼参数的确定方法。
16.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7中任一项所述的人手骨骼参数的确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911113853.5A CN110930482B (zh) | 2019-11-14 | 2019-11-14 | 人手骨骼参数的确定方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911113853.5A CN110930482B (zh) | 2019-11-14 | 2019-11-14 | 人手骨骼参数的确定方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110930482A CN110930482A (zh) | 2020-03-27 |
CN110930482B true CN110930482B (zh) | 2023-10-31 |
Family
ID=69852962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911113853.5A Active CN110930482B (zh) | 2019-11-14 | 2019-11-14 | 人手骨骼参数的确定方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110930482B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113033343B (zh) * | 2021-03-10 | 2023-11-21 | 咪咕动漫有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN113747349A (zh) * | 2021-08-12 | 2021-12-03 | 广东博智林机器人有限公司 | 定位方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100207949A1 (en) * | 2009-02-13 | 2010-08-19 | Spencer Nicholas Macdonald | Animation events |
CN102298649A (zh) * | 2011-10-09 | 2011-12-28 | 南京大学 | 一种人体动作数据的空间轨迹检索方法 |
CN109543576A (zh) * | 2018-11-09 | 2019-03-29 | 石家庄铁道大学 | 基于骨骼检测和三维重建的列车驾驶员检测方法 |
US20190251341A1 (en) * | 2017-12-08 | 2019-08-15 | Huawei Technologies Co., Ltd. | Skeleton Posture Determining Method and Apparatus, and Computer Readable Storage Medium |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7760918B2 (en) * | 2003-08-06 | 2010-07-20 | Zinayida Bezvershenko | Identification of a person based on ultra-sound scan analyses of hand bone geometry |
US10503968B2 (en) * | 2016-03-22 | 2019-12-10 | Intel Corporation | Identifying a local coordinate system for gesture recognition |
-
2019
- 2019-11-14 CN CN201911113853.5A patent/CN110930482B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100207949A1 (en) * | 2009-02-13 | 2010-08-19 | Spencer Nicholas Macdonald | Animation events |
CN102298649A (zh) * | 2011-10-09 | 2011-12-28 | 南京大学 | 一种人体动作数据的空间轨迹检索方法 |
US20190251341A1 (en) * | 2017-12-08 | 2019-08-15 | Huawei Technologies Co., Ltd. | Skeleton Posture Determining Method and Apparatus, and Computer Readable Storage Medium |
CN109543576A (zh) * | 2018-11-09 | 2019-03-29 | 石家庄铁道大学 | 基于骨骼检测和三维重建的列车驾驶员检测方法 |
Non-Patent Citations (3)
Title |
---|
基于关键视频帧跟踪数据的三维虚拟人动画;陈姝 等;系统仿真学报;5868-5873 * |
基于局部坐标系构建的抓持物体固连方法;邹俞 等;计算机仿真;334-339 * |
抓举过程中运动员的上肢运动学分析;唐刚 等;北京生物医学工程;233-236 * |
Also Published As
Publication number | Publication date |
---|---|
CN110930482A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112233249B (zh) | 基于密集点云的b样条曲面拟合方法及装置 | |
CN110930482B (zh) | 人手骨骼参数的确定方法、装置、电子设备和存储介质 | |
JP2024525703A (ja) | 三次元動的追跡方法、装置、電子機器及び記憶媒体 | |
CN112906494A (zh) | 一种面部捕捉方法、装置、电子设备及存储介质 | |
CN113902852A (zh) | 一种人脸三维重建方法、装置、电子设备及存储介质 | |
CN112329726B (zh) | 人脸识别方法及装置 | |
JP6482130B2 (ja) | 幾何検証装置、プログラム及び方法 | |
CN111476893A (zh) | 基于海上油气田设备设施的三维实景建模方法及装置 | |
US11461914B2 (en) | Measuring surface distances on human bodies | |
Chen et al. | 3D reconstruction of unstructured objects using information from multiple sensors | |
CN113902853A (zh) | 一种人脸三维重建方法、装置、电子设备及存储介质 | |
KR102468306B1 (ko) | 신체 치수 측정 방법 및 장치 | |
CN117292064A (zh) | 一种基于结构光扫描数据的三维物体建模方法及系统 | |
CN110942007B (zh) | 手部骨骼参数确定方法、装置、电子设备和存储介质 | |
CN116580148A (zh) | 一种基于人体点云与测量参数的参数化人体模型拟合方法 | |
CN116188720A (zh) | 数字人的生成方法、装置、电子设备和存储介质 | |
Santamaría | Testing the Robustness of JAYA Optimization on 3D Surface Alignment of Range Images: A Revised Computational Study | |
CN114299370A (zh) | 一种基于云边协同的物联网场景感知方法及装置 | |
CN110838182B (zh) | 一种图像贴合人台的方法及其系统 | |
CN112562071A (zh) | 一种动作差异度计算方法、装置、设备及存储介质 | |
Zheng et al. | A new 3D contour extraction method for tooth cavity in a dental CAD/CAM system | |
Saito et al. | Model-based 3D human shape estimation from silhouettes for virtual fitting | |
CN117974793B (zh) | 单目螺母6d姿态的估计方法、估计装置和姿态管理系统 | |
CN109840894A (zh) | 视差图精修方法、装置及存储介质 | |
CN116704156B (zh) | 模型生成方法、电子设备及模型生成系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |