CN113129414B - 手部动作修复方法、装置、设备及存储介质 - Google Patents
手部动作修复方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113129414B CN113129414B CN202110391111.XA CN202110391111A CN113129414B CN 113129414 B CN113129414 B CN 113129414B CN 202110391111 A CN202110391111 A CN 202110391111A CN 113129414 B CN113129414 B CN 113129414B
- Authority
- CN
- China
- Prior art keywords
- hand
- target
- original
- wrist
- tail end
- 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
- 230000033001 locomotion Effects 0.000 title claims abstract description 148
- 238000000034 method Methods 0.000 title claims abstract description 57
- 210000000707 wrist Anatomy 0.000 claims abstract description 124
- 230000009471 action Effects 0.000 claims abstract description 67
- 230000008569 process Effects 0.000 claims description 22
- 230000008439 repair process Effects 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 6
- 230000035515 penetration Effects 0.000 abstract description 14
- 230000000694 effects Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 210000000245 forearm Anatomy 0.000 description 9
- 210000004247 hand Anatomy 0.000 description 8
- 210000003857 wrist joint Anatomy 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 241000282693 Cercopithecidae Species 0.000 description 2
- 241000282575 Gorilla Species 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000005452 bending Methods 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 210000002310 elbow joint Anatomy 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000003414 extremity Anatomy 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 210000000323 shoulder joint Anatomy 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 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
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Manipulator (AREA)
Abstract
本申请涉及一种手部动作修复方法、装置、设备及存储介质,方法包括:获取原始对象的原始动作中原始手部参数,原始手部参数包括左手末端和右手末端各自的原始位置;获取目标对象的目标动作中目标腕部参数,包括左、右手腕各自的目标位置,目标动作为将原始动作重定向到目标对象获得;确定对目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使左手末端和右手末端各自的目标位置、原始手部参数和目标腕部参数满足约束条件;根据左手末端和右手末端各自的目标位置,以及目标腕部参数,对目标动作中的手部动作进行修复。本申请用以能够在运动重定向时对手部动作进行修复,避免出现手部穿模或手部动作出现严重偏差。
Description
技术领域
本申请涉及虚拟现实技术领域,尤其涉及一种手部动作修复方法、装置、设备及存储介质。
背景技术
运动重定向(Motion Retargeting),是三维动画中进行运动编辑与合成的重要方法之一。运动重定向,是指将运动从一个角色重定向到另外一个角色,以达到使多种角色分享运动的目的。例如,将角色A的手臂弯曲动作,重定向到角色B,使角色B与角色A执行相同的手臂弯曲动作。
在运动重定向过程中,通常会使用两种重定向策略,一种是旋转优先,另一种是位置优先。所谓旋转优先,是在运动重定向过程中保持每个关节的旋转信息不变。所谓位置优先,是在运动重定向过程中保持末端关节的位置不变,调整根关节点到末端关节点之间各节点的位置。
在虚拟现实场景中,对人体模型进行运动重定向时,不考虑手部的动作,手部保持原有与小臂的旋转信息不变。
当使用位置优先的策略进行运动重定向时,由于需要保持末端关节点的位置不变,这就可能会导致末端关节点与父关节点的旋转信息发生改变,也就是说,手腕关节点相对于肘部关节点产生相对旋转,在小臂的旋转信息发生改变时,如果手部保持原有与小臂的旋转信息不变,则手部的动作可能发生穿模或出现严重偏差。
发明内容
本申请提供了一种手部动作修复方法、装置、设备及存储介质,用以能够在运动重定向时对手部动作进行修复,避免出现手部穿模或手部动作出现严重偏差。
第一方面,提供了一种手部动作修复方法,包括:
获取原始对象的原始动作中原始手部参数,其中,所述原始手部参数包括左手末端和右手末端各自的原始位置;
获取目标对象的目标动作中目标腕部参数,其中,所述目标腕部参数包括左手腕和右手腕各自的目标位置,其中,所述目标动作为将所述原始动作重定向到所述目标对象获得;
确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使所述左手末端和右手末端各自的目标位置、所述原始手部参数和所述目标腕部参数满足约束条件;根据所述左手末端和右手末端各自的目标位置,以及所述目标腕部参数,对所述目标动作中的手部动作进行修复;
所述约束条件包括:所述左手末端和所述右手末端各自的目标位置所确定的第一距离值,接近于所述左手末端和所述右手末端各自的原始位置所确定的第二距离值;且,所述左手末端的目标位置与所述左手腕的目标位置的连线长度,等于第一设定值;且,所述右手末端的目标位置和所述右手腕的目标位置的连线长度,等于第二设定值。
可选地,所述左手末端和所述右手末端各自的目标位置所确定的第一距离值,接近于所述左手末端和所述右手末端各自的原始位置所确定的第二距离值,包括:
所述第一距离值等于所述第二距离值。
可选地,所述确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使所述左手末端和右手末端各自的目标位置、所述原始手部参数和所述目标腕部参数满足约束条件,包括:
根据所述左手末端和右手末端各自的原始位置,连接所述左手末端和所述右手末端,获得第一连接线段;
根据所述左手腕和右手腕的目标位置,连接所述左手腕和所述右手腕,获得第二连接线段;
将所述第一连接线段的中点作为第一中点,将所述第二连接线段的中点作为第二中点,并获得从所述第二中点指向所述第一中点的第一向量,所述第一向量的大小为所述第二中点到所述第一中点的第三距离值;
经过所述左手末端的原始位置绘制平行于所述第一向量的第一直线,经过所述右手末端的原始位置绘制平行于所述第一向量的第二直线;
在所述第一直线上确定所述左手末端的目标位置,以及,在所述第二直线上确定所述右手末端的目标位置,使所述左手末端的目标位置到所述左手腕的目标位置的连线长度,等于所述第一设定值,使所述右手末端的目标位置到所述右手腕的目标位置的连线长度,等于所述第二设定值。
可选地,所述左手末端的目标位置还满足,所述左手末端的目标位置指向所述左手末端的原始位置的第二向量,与所述第一向量的比值,大于或等于-1;所述第二向量的大小,等于所述左手末端的目标位置与所述左手末端的原始位置的第四距离值;
所述右手末端的目标位置还满足,所述右手末端的目标位置指向所述右手末端的原始位置的第三向量,与所述第一向量的比值,大于或等于-1;所述第三向量的大小,等于所述右手末端的目标位置与所述右手末端的原始位置的第五距离值。
可选地,所述确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使所述左手末端和右手末端各自的目标位置、所述原始手部参数和所述目标腕部参数满足约束条件之前,还包括:
获取所述原始动作中原始腕部参数,其中,所述原始腕部参数包括左手腕和右手腕各自的原始位置;
计算所述左手腕的原始位置与所述左手末端的原始位置之间的第六距离值,将所述第六距离值作为所述第一设定值;
计算所述右手腕的原始位置与所述右手末端的原始位置之间的第七距离值,将所述第七距离值作为所述第二设定值。
可选地,所述确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置之前,所述方法还包括:
根据所述左手末端的原始位置和所述右手末端的原始位置,确定所述第一距离值,并确定所述第一距离值不大于预设距离值。
可选地,所述获取原始对象的原始动作中原始手部参数,包括:
获取所述原始动作中,左手各手指的原始位置以及右手各手指的原始位置;
对于所述左手各手指中的任意一个目标手指,执行计算过程:计算所述目标手指的原始位置,分别与所述右手各手指的原始位置之间的第八距离值;
从计算得到的各所述第八距离值中,选择最小距离值,将所述最小距离值对应的左手手指的原始位置,作为所述左手末端的原始位置,将所述最小距离值对应的右手手指的原始位置,作为所述右手末端的原始位置。
第二方面,本申请提供了一种手部动作修复装置,包括:
第一获取模块,用于获取原始对象的原始动作中原始手部参数,其中,所述原始手部参数包括左手末端和右手末端各自的原始位置;
第二获取模块,用于获取目标对象的目标动作中目标腕部参数,其中,所述目标腕部参数包括左手腕和右手腕各自的目标位置,其中,所述目标动作为将所述原始动作重定向到所述目标对象获得;
处理模块,用于确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使所述左手末端和右手末端各自的目标位置、所述原始手部参数和所述目标腕部参数满足约束条件;根据所述左手末端和右手末端各自的目标位置,以及所述目标腕部参数,对所述目标动作中的手部动作进行修复;
所述约束条件包括:所述左手末端和所述右手末端各自的目标位置所确定的第一距离值,接近于所述左手末端和所述右手末端各自的原始位置所确定的第二距离值;且,所述左手末端的目标位置与所述左手腕的目标位置的连线长度,等于第一设定值;且,所述右手末端的目标位置和所述右手腕的目标位置的连线长度,等于第二设定值。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的手部动作修复方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的手部动作修复方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,通过将重定向后的目标动作中,左手末端和右手末端之间的第二距离值,限定为,接近于原始动作中左手末端和右手末端之间的第一距离值,使得重定向后两手之间能够保持适当距离,不至于发生穿模现象。同时,通过限定重定向后左手末端到左手腕的连线长度,以及限定重定向后右手末端到右手腕的连线长度,使得大体上能够保持原始手部动作,不至于出现严重偏差。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为对链式结构ABC进行运动重定向的示意图;
图2为采用手部动作出现穿模问题的效果示意图;
图3为采用手部动作出现较大偏差的效果示意图;
图4A为人物模型的原始动作示意图;
图4B为将图4A的原始动作重定向后的效果示意图;
图5为本申请实施例中进行手部动作修复的流程示意图;
图6为本申请实施例中确定左手末端和右手末端各自的目标位置的流程示意图;
图7为本申请实施例中获取原始手部参数的流程示意图;
图8为本申请实施例中各节点之间的位置关系示意图;
图9为本申请实施例中手部动作修复装置结构示意图;
图10为本申请实施例中电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
需要说明的是,运动重定向过程中,原始对象和目标对象在同一个世界坐标系下描述,在该同一个世界坐标系中的位置大体重合,例如,如果两个对象均为人物,且仅有手臂长度不相同,则两个对象除手臂之前的其余部分均重合,仅手臂在世界坐标系的坐标有所不同。
在运动重定向过程中,存在位置优先的重定向策略,以及旋转优先的重定向策略,可以选择任意一种策略进行运动重定向。
例如,假设对图1所示链式结构ABC进行运动重定向,该链式结构ABC表示人的手臂,A为肩膀关节点、B为肘部关节点、C为手腕关节点。AB为大臂,BC为小臂。运动重定向的任务是从一个短胳膊的人迁移到一个长胳膊的人身上,假设原始骨骼AB=2厘米(cm),BC=2cm;目标骨骼AB=3cm,BC=3cm。如果使用旋转优先,即保持每个关节点的旋转信息不变,重定向到目标骨骼后得到AB’C’。如果使用位置优先,即保持末端关节点的位置不变,调整根关节点到末端关节点之间的节点,重定向到目标骨骼后得到AB”C”。B’为采用旋转优先重定向后B点的位置,C’为采用旋转优先重定向后C点的位置。B”为采用位置优先重定向后B点的位置,C”为采用位置优先重定向后C点的位置。
发明人通过对现有技术进行分析发现:
由于在运动重定向时,对手腕以上的各关节点进行重定向,而不考虑手部,手部保持原有与小臂的旋转信息不变。
在使用位置优先的重定向策略时,由于需要保持末端关节点的位置不变,这就可能会导致末端关节点与父关节点的旋转信息发生改变,也就是说,手腕关节点相对于肘部关节点产生相对旋转,在小臂的旋转信息发生改变时,如果手部保持原有与小臂的旋转信息不变,则手部的动作将无法保持,从而出现手部穿模,或手部动作出现严重偏差。
例如,如图2所示为小臂和手部动作的示意图,图中细长线段表示小臂,短线段表示手部。图中第一行为原始动作,该原始动作中手部为合掌动作。在采用位置优先对手臂动作进行重定向过程中,因为肩膀关节点和腕部关节点的位置保持不变,导致肘部关节点的旋转信息发生改变,如果保持手部的旋转信息不变,则重定位的效果为图中第二行的效果,明显手部发生穿模。而图中第三行是正确的动作,也就是即使小臂发生了旋转,手部还是应当保持合掌动作。
又例如,如图3所示为小臂和手部动作的示意图,图中细长线段表示小臂,短线段表示手部。图中第一行为原始动作,该原始动作中手部为合掌动作。图中第一行为原始动作,该原始动作中手部为合掌动作。在采用位置优先对手臂动作进行重定向过程中,因为肩膀关节点和腕部关节点的位置保持不变,导致肘部关节点的旋转信息发生改变,如果保持手部的旋转信息不变,则重定位的效果为图中第二行的效果,明显手部动作发生改变,无法保持合掌动作。而图中第三行是正确的动作,也就是即使小臂发生了旋转,手部还是应当保持合掌动作。
如图4A所示为某3D游戏场景中原始人物模型的原始动作,图4A上半部分为原始人物模型的原始动作示意,图4A下半部分为该原始人物模型的代理体的原始动作示意。图4B所示为将图4A所示的人物模型的原始动作,重定向到图4B所示的目标人物模型得到的效果,图4B上半部分为目标人物模型重定向后的动作示意,图4B下半部分为目标人物模型的代理体重定向后的动作示意。可以看到目标人物模型的手部发生穿模。目标人物模型相较于原始人物模型,手臂和腿部加长。
需要说明的是,图4A和图4B中代理体模型中四肢的代理体是由多个三角网格组成,图中所展示的圆柱体仅是在三角网格足够多的情况下所呈现的视觉效果,这并不表示四肢的代理体就是圆柱体。并且,图4A和图4B中黑白格图案是指人物所站立的地板的图案。
发明人基于以上分析,提出了一种手部动作修复方法,用以在运动重定向时对手部动作进行修复,保持手部动作不变。该方法可以有应用于任意形式的电子设备中,例如,应用于终端或服务器中,这里的终端可以是手机、平板电脑、计算机等任意形式。
具体地,如图5所示,进行手部动作修复的过程主要包括:
步骤501,获取原始对象的原始动作中原始手部参数,其中,原始手部参数包括左手末端和右手末端各自的原始位置。
其中,原始对象是某虚拟对象的三维模型,该虚拟对象可以是虚拟人物的三维模型,也可能是其它腕部结构和手部结构与人相似的动物的三维模型,例如猴子、猩猩等。
其中,原始动作是相对于重定向过程而言,指原始对象的参照动作,通过重定向将该参照动作定向到目标对象。
其中,左手末端的原始位置、右手末端的原始位置,是指原始对象的三维模型中的位置,可以是基于该原始对象的三维模型所在的虚拟坐标系所确定的位置,该虚拟坐标系可以是以原始对象的三维模型的基准点构建,该基准点作为虚拟坐标系的坐标原点。当然也可以是采用三维模型之外的点作为基准点。对于虚拟坐标系的构建方式不做限制,只需要重定向过程中能够将原始对象和目标对象腕部以上关节点的位置匹配上即可。
步骤502,获取目标对象的目标动作中目标腕部参数,其中,目标腕部参数包括左手腕和右手腕各自的目标位置,其中,目标动作为将原始动作重定向到目标对象获得。
其中,目标对象是某虚拟对象的三维模型,与原始对象类型,该虚拟对象也可以是虚拟人物的三维模型,也可能是其它腕部结构和手部结构与人相似的动物的三维模型,例如猴子、猩猩等。
原始对象和目标对象不完全一致,例如,两个对象手臂的长度不相同。
其中,与原始动作类似,目标动作也是相对于重定向过程而言,指重定向后在目标对象中形成的动作。
需要说明的是,本申请并不依赖于具体所采用的运动重定向技术,不管是何种运动重定向技术,在对除手部动作之外的关节点进行定向之后,均可采用本申请实施例所提供的手部动作修复方法,对手部动作进行修复。
步骤503,确定对目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使左手末端和右手末端各自的目标位置、原始手部参数和目标腕部参数满足约束条件;
步骤504,根据左手末端和右手末端各自的目标位置,以及目标腕部参数,对目标动作中的手部动作进行修复。
修复后将左手动作限定在:左手末端的目标位置与左手腕的目标位置限定的范围内,修改后将右手动作限定在:右手末端的目标位置与右手腕的目标位置限定的范围内。
其中,约束条件包括:左手末端和右手末端各自的目标位置所确定的第一距离值,接近于左手末端和右手末端各自的原始位置所确定的第二距离值;且,左手末端的目标位置与左手腕的目标位置的连线长度,等于第一设定值;且,右手末端的目标位置和右手腕的目标位置的连线长度,等于第二设定值。
本申请实施例提供的该方法,通过将重定向后的目标动作中,左手末端和右手末端之间的第二距离值,限定为,接近于原始动作中左手末端和右手末端之间的第一距离值,使得重定向后两手之间能够保持适当距离,不至于发生穿模现象。同时,通过限定重定向后左手末端到左手腕的连线长度,以及限定重定向后右手末端到右手腕的连线长度,使得修复后的手部动作,大体上能够保持原始手部动作,不至于出现严重偏差。通过简单的集合关系确定左手末端、右手末端的目标位置,进而反推腕关节的旋转信息,从而获得修改后的手部动作,运算量小,并且能够保证手部动作不会出现穿模以及验证偏差,效果良好。
需要说明的是,约束条件中所限定的,第一距离值接近于第二距离值,是指,第一距离值与第二距离值的差值的绝对值不大于预设值,该预设值小于第二距离值。
在一个具体实施例中,第一距离值等于第二距离值,即,重定向两手末端的距离值,等于原始动作中两手末端的距离值,以达到保持两手末端距离不变的目的,最大程度上降低手部动作在重定向前后的变化量。
需要说明的是,本申请实施例中对按照以上约束条件,确定左手末端和右手末端的目标位置的具体方式不做限制,不管过程如何,只要能够使得确定的左手末端和右手末端的目标位置,满足以上约束条件即可。为了便于理解,以下通过一个具体的过程,对确定左手末端和右手末端的目标位置的过程进行说明。
如图6所示,确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使左手末端和右手末端各自的目标位置、原始手部参数和目标腕部参数满足约束条件,主要包括以下步骤:
步骤601,根据左手末端和右手末端各自的原始位置,连接左手末端和右手末端,获得第一连接线段;
步骤602,根据左手腕和右手腕的目标位置,连接左手腕和右手腕,获得第二连接线段;
步骤603,将第一连接线段的中点作为第一中点,将第二连接线段的中点作为第二中点,并获得从第二中点指向第一中点的第一向量,第一向量的大小为第二中点到第一中点的第三距离值;
步骤604,经过左手末端的原始位置绘制平行于第一向量的第一直线,经过右手末端的原始位置绘制平行于第一向量的第二直线;
步骤605,在第一直线上确定左手末端的目标位置,以及,在第二直线上确定右手末端的目标位置,使左手末端的目标位置到左手腕的目标位置的连线长度,等于第一设定值,使右手末端的目标位置到右手腕的目标位置的连线长度,等于第二设定值。
该实施例中,通过简单的几何关系确定左手末端的目标位置和右手末端的目标位置,计算简单,运算量小,修复效果良好。
一个具体实施例中,左手末端的目标位置还满足,左手末端的目标位置指向左手末端的原始位置的第二向量,与第一向量的比值,大于或等于-1;第二向量的大小,等于左手末端的目标位置与左手末端的原始位置的第四距离值;
右手末端的目标位置还满足,右手末端的目标位置指向右手末端的原始位置的第三向量,与第一向量的比值,大于或等于-1;第三向量的大小,等于右手末端的目标位置与右手末端的原始位置的第五距离值。
也就是说,第二向量与第一向量的比值大于或等于-1时,则表示采用以上实施例所提供的方式,能够确定出较为合适的左手末端的目标位置,如果不满足大于或等于-1的限制条件,则表明无法给出合理的左手末端的目标位置,可以提示人工修复左手末端的目标位置。
同理,第三向量与第一向量的比值大于或等于-1时,则表示采用以上实施例所提供的方式,能够确定出较为合适的右手末端的目标位置,如果不满足大于或等于-1的限制条件,则表明无法给出合理的右手末端的目标位置,可以提示人工修复右手末端的目标位置。
一个具体实施例中,确定对目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使左手末端和右手末端各自的目标位置、原始手部参数和目标腕部参数满足约束条件之前,还包括:
获取原始动作中原始腕部参数,其中,原始腕部参数包括左手腕和右手腕各自的原始位置;
计算左手腕的原始位置与左手末端的原始位置之间的第六距离值,将第六距离值作为第一设定值;
计算右手腕的原始位置与右手末端的原始位置之间的第七距离值,将第七距离值作为第二设定值。
也就是说,在重定向前后左手指尖到左手腕的距离保持不变,以及,重定向前后右手指尖到右手腕的距离保持不变,从而能够满足重定向场景中对手部动作的参数要求。当然,第一设定值、第二设定值也可以采用其他取值,这里不做限定。
一个具体实施例中,在重定向过程中,对手部动作进行修复,主要是用于避免出现手部穿模或手部动作严重偏差,并不是每次重定向都需要对手部动作进行修复。针对手部穿模问题,具体的启用手部动作修复的条件可以设置为:
确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置之前,根据所述左手末端的原始位置和所述右手末端的原始位置,确定第一距离值,并确定第一距离值不大于预设距离值。
也就是说,在第一距离至大于预设距离值的情况下,手部处于安全区域,不会出现手部穿模问题,基本上不需要对手部动作进行修复,可以选择不执行手部动作修复过程。当然,这并不是绝对限制条件,只是一种是否执行的可选择设置条件。
其中,预设距离值属于经验值,也就是,根据多次重定向过程是否发生手部穿模,统计得到的、能够界定是否发生手部穿模的临界距离值。
一个具体实施例中,如图7所示,获取原始对象的原始动作中原始手部参数,包括:
步骤701,获取原始动作中,左手各手指的原始位置以及右手各手指的原始位置;
步骤702,对于左手各手指中的任意一个目标手指,执行计算过程:计算所述目标手指的原始位置,分别与右手各手指的原始位置之间的第八距离值;
步骤703,从计算得到的各第八距离值中,选择最小距离值,将该最小距离值对应的左手手指的原始位置,作为左手末端的原始位置,将该最小距离值对应的右手手指的原始位置,作为右手末端的原始位置。
以下以虚拟场景的虚拟人物模型为例,对手部修复过程进行举例说明。
首先,对于第一个问题“什么时候需要对手部动作进行修复?”,按照以下方式给出解决思路:
因为手部修复的主要目的是防止手部穿模,所以可以通过两手之间的距离进行判断,如果两手之间距离较近,则需要进行修复,如果两手之间距离较远,则不需要进行修复。
因为手腕的关节点是经过重定向算法计算的,默认不会出现穿模问题,手部穿模可能存在于手掌中部或指尖的位置。计算重定向之前的原始动作中,左手五个指尖和右手五个指尖的最短距离,具体如下:
假设集合PL包含五个左手指尖的空间坐标:
假设集合PR包含五个右手指尖的空间坐标:
假设表示左手指尖/>与右手指尖/>指尖的距离值,/>
表示从左手指尖与右手指尖所有可能组合的距离值中,选择出的最小距离值。
如果该最小距离值满足:d>dset,则证明手部处于安全区域,不需要对手部进行修复。dset是人工设置的经验值。
然后,对于第二个问题“如何修复?”,按照以下方式给出解决思路:
分析发现,重定向后小臂的旋转发生变化,但是手腕关节点是经过重定向算法优化的,在手部动作修复过程中,需要保持手腕关节点的位置不动,只需要在手部动作修复过程中,调整手部指尖的位置。并且,在手动动作修复过程中,对手指和手掌的动作是保持不变的,只是改变整个手部的旋转。这样只需要计算修复后指尖的位置,即可完成对手部动作的修复。因此,问题转化为计算距离最近的左手指尖和右手指尖的位置。
获取以下节点数据:
原始动作中左手末端的原始位置为左手指尖a的位置,空间坐标表示为pa;
右手末端的原始位置为右手指尖b的位置,空间坐标表示为pb;
原始动作中左手腕的原始位置c,空间坐标表示为pc;
原始动作中左手腕的原始位置d,空间坐标表示为pd;
重定向后左手腕的目标位置c’,空间坐标表示为pc’;
重定向后右手腕的目标位置d’,空间坐标表示为pd’;
假设需要求解的左手末端的目标位置表示为a’,右手末端的目标位置表示为b’。节点之间的位置关系如图8所示。
执行以下计算过程:
计算ab连接线段的中点e,即计算c’d’连接线段的中点f,表示为从e指向f的向量表示为:/>
经过a点做一条平行于向量的直线,a’位于该直线上;经过b点做一条平行于向量/>的直线,b’位于该直线上。
在手部动作修复时,保持指尖到手腕的距离不变,计算左手指尖a’的目标位置pa’的联立方程:
|pa’-pc’|=|pa-pc|;
通过该联立方程得到pa’和α,如果α≥-1,则表明该pa’的位置合理,否则,说明通过该联立方程得到的pa’的位置不合理,需要人工确定pa’的位置。
同理,计算右手指尖b′的目标位置pb’的联立方程:
|pb’-pd’|=|pb-Pd|;
通过该联立方程得到pb’和β,如果β≥-1,则表明该pb’的位置合理,否则,说明通过该联立方程得到的pb’的位置不合理,需要人工确定pb’的位置。
在α和β都大于或等于-1,说明得到的pa’和pb’的位置合理,基于此对手部动作进行修复即可。
基于同一构思,本申请实施例提供了一种手部动作修复装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图9所示,该装置主要包括:
第一获取模块901,用于获取原始对象的原始动作中原始手部参数,其中,所述原始手部参数包括左手末端和右手末端各自的原始位置;
第二获取模块902,用于获取目标对象的目标动作中目标腕部参数,其中,所述目标腕部参数包括左手腕和右手腕各自的目标位置,其中,所述目标动作为将所述原始动作重定向到所述目标对象获得;
处理模块903,用于确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使所述左手末端和右手末端各自的目标位置、所述原始手部参数和所述目标腕部参数满足约束条件;根据所述左手末端和右手末端各自的目标位置,以及所述目标腕部参数,对所述目标动作中的手部动作进行修复;
所述约束条件包括:所述左手末端和所述右手末端各自的目标位置所确定的第一距离值,接近于所述左手末端和所述右手末端各自的原始位置所确定的第二距离值;且,所述左手末端的目标位置与所述左手腕的目标位置的连线长度,等于第一设定值;且,所述右手末端的目标位置和所述右手腕的目标位置的连线长度,等于第二设定值。
基于同一构思,本申请实施例中还提供了一种电子设备,如图10所示,该电子设备主要包括:处理器1001、存储器1002和通信总线1003,其中,处理器1001和存储器1002通过通信总线1003完成相互间的通信。其中,存储器1002中存储有可被至处理器1001执行的程序,处理器1001执行存储器1002中存储的程序,实现如下步骤:
获取原始对象的原始动作中原始手部参数,其中,所述原始手部参数包括左手末端和右手末端各自的原始位置;
获取目标对象的目标动作中目标腕部参数,其中,所述目标腕部参数包括左手腕和右手腕各自的目标位置,其中,所述目标动作为将所述原始动作重定向到所述目标对象获得;
确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使所述左手末端和右手末端各自的目标位置、所述原始手部参数和所述目标腕部参数满足约束条件;根据所述左手末端和右手末端各自的目标位置,以及所述目标腕部参数,对所述目标动作中的手部动作进行修复;
所述约束条件包括:所述左手末端和所述右手末端各自的目标位置所确定的第一距离值,接近于所述左手末端和所述右手末端各自的原始位置所确定的第二距离值;且,所述左手末端的目标位置与所述左手腕的目标位置的连线长度,等于第一设定值;且,所述右手末端的目标位置和所述右手腕的目标位置的连线长度,等于第二设定值。
上述电子设备中提到的通信总线1003可以时外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线1003可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1002可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器1001的存储装置。
上述的处理器1001可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的运动重定向策略选择方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种手部动作修复方法,其特征在于,包括:
获取原始对象的原始动作中原始手部参数,其中,所述原始手部参数包括左手末端和右手末端各自的原始位置;
获取目标对象的目标动作中目标腕部参数,其中,所述目标腕部参数包括左手腕和右手腕各自的目标位置,其中,所述目标动作为将所述原始动作重定向到所述目标对象获得;
获取所述原始动作中原始腕部参数,其中,所述原始腕部参数包括左手腕和右手腕各自的原始位置;
计算所述左手腕的原始位置与所述左手末端的原始位置之间的第六距离值,将所述第六距离值作为第一设定值;
计算所述右手腕的原始位置与所述右手末端的原始位置之间的第七距离值,将所述第七距离值作为第二设定值;
确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使所述左手末端和右手末端各自的目标位置、所述原始手部参数和所述目标腕部参数满足约束条件;根据所述左手末端和右手末端各自的目标位置,以及所述目标腕部参数,对所述目标动作中的手部动作进行修复;
所述约束条件包括:所述左手末端和所述右手末端各自的目标位置所确定的第一距离值,接近于所述左手末端和所述右手末端各自的原始位置所确定的第二距离值;且,所述左手末端的目标位置与所述左手腕的目标位置的连线长度,等于第一设定值;且,所述右手末端的目标位置和所述右手腕的目标位置的连线长度,等于第二设定值,其中,所述第一距离值等于所述第二距离值。
2.根据权利要求1所述的手部动作修复方法,其特征在于,所述确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使所述左手末端和右手末端各自的目标位置、所述原始手部参数和所述目标腕部参数满足约束条件,包括:
根据所述左手末端和右手末端各自的原始位置,连接所述左手末端和所述右手末端,获得第一连接线段;
根据所述左手腕和右手腕的目标位置,连接所述左手腕和所述右手腕,获得第二连接线段;
将所述第一连接线段的中点作为第一中点,将所述第二连接线段的中点作为第二中点,并获得从所述第二中点指向所述第一中点的第一向量,所述第一向量的大小为所述第二中点到所述第一中点的第三距离值;
经过所述左手末端的原始位置绘制平行于所述第一向量的第一直线,经过所述右手末端的原始位置绘制平行于所述第一向量的第二直线;
在所述第一直线上确定所述左手末端的目标位置,以及,在所述第二直线上确定所述右手末端的目标位置,使所述左手末端的目标位置到所述左手腕的目标位置的连线长度,等于所述第一设定值,使所述右手末端的目标位置到所述右手腕的目标位置的连线长度,等于所述第二设定值。
3.根据权利要求2所述的手部动作修复方法,其特征在于,所述左手末端的目标位置还满足,所述左手末端的目标位置指向所述左手末端的原始位置的第二向量,与所述第一向量的比值,大于或等于-1;所述第二向量的大小,等于所述左手末端的目标位置与所述左手末端的原始位置的第四距离值;
所述右手末端的目标位置还满足,所述右手末端的目标位置指向所述右手末端的原始位置的第三向量,与所述第一向量的比值,大于或等于-1;所述第三向量的大小,等于所述右手末端的目标位置与所述右手末端的原始位置的第五距离值。
4.根据权利要求1至3任一项所述的手部动作修复方法,其特征在于,所述确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置之前,所述方法还包括:
根据所述左手末端的原始位置和所述右手末端的原始位置,确定所述第一距离值,并确定所述第一距离值不大于预设距离值。
5.根据权利要求1至3任一项所述的手部动作修复方法,其特征在于,所述获取原始对象的原始动作中原始手部参数,包括:
获取所述原始动作中,左手各手指的原始位置以及右手各手指的原始位置;
对于所述左手各手指中的任意一个目标手指,执行计算过程:计算所述目标手指的原始位置,分别与所述右手各手指的原始位置之间的第八距离值;
从计算得到的各所述第八距离值中,选择最小距离值,将所述最小距离值对应的左手手指的原始位置,作为所述左手末端的原始位置,将所述最小距离值对应的右手手指的原始位置,作为所述右手末端的原始位置。
6.一种手部动作修复装置,其特征在于,应用于权利要求1-5任一所述的手部动作修复方法,包括:
第一获取模块,用于获取原始对象的原始动作中原始手部参数,其中,所述原始手部参数包括左手末端和右手末端各自的原始位置;
第二获取模块,用于获取目标对象的目标动作中目标腕部参数,其中,所述目标腕部参数包括左手腕和右手腕各自的目标位置,其中,所述目标动作为将所述原始动作重定向到所述目标对象获得;
处理模块,用于确定对所述目标动作中的手部动作进行修复所需的,左手末端和右手末端各自的目标位置,以使所述左手末端和右手末端各自的目标位置、所述原始手部参数和所述目标腕部参数满足约束条件;根据所述左手末端和右手末端各自的目标位置,以及所述目标腕部参数,对所述目标动作中的手部动作进行修复;
所述约束条件包括:所述左手末端和所述右手末端各自的目标位置所确定的第一距离值,接近于所述左手末端和所述右手末端各自的原始位置所确定的第二距离值;且,所述左手末端的目标位置与所述左手腕的目标位置的连线长度,等于第一设定值;且,所述右手末端的目标位置和所述右手腕的目标位置的连线长度,等于第二设定值。
7.一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1至5任一项所述的手部动作修复方法。
8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述的手部动作修复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110391111.XA CN113129414B (zh) | 2021-04-12 | 2021-04-12 | 手部动作修复方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110391111.XA CN113129414B (zh) | 2021-04-12 | 2021-04-12 | 手部动作修复方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113129414A CN113129414A (zh) | 2021-07-16 |
CN113129414B true CN113129414B (zh) | 2024-04-12 |
Family
ID=76776605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110391111.XA Active CN113129414B (zh) | 2021-04-12 | 2021-04-12 | 手部动作修复方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113129414B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012111622A1 (ja) * | 2011-02-16 | 2012-08-23 | 株式会社スクウェア・エニックス | 動作モデリング装置及び方法、並びにプログラム |
GB201601775D0 (en) * | 2016-02-01 | 2016-03-16 | Naturalmotion Ltd | Animating a virtual object in a virtual world |
CN112562072A (zh) * | 2020-12-25 | 2021-03-26 | 北京爱奇艺科技有限公司 | 一种动作重定向方法、装置、设备及存储介质 |
CN112562071A (zh) * | 2020-12-25 | 2021-03-26 | 北京爱奇艺科技有限公司 | 一种动作差异度计算方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10255712B2 (en) * | 2016-04-08 | 2019-04-09 | Adobe Inc. | Animation using keyframing and projected dynamics simulation |
CN110097639B (zh) * | 2019-03-18 | 2023-04-18 | 北京工业大学 | 一种三维人体姿态估计方法 |
-
2021
- 2021-04-12 CN CN202110391111.XA patent/CN113129414B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012111622A1 (ja) * | 2011-02-16 | 2012-08-23 | 株式会社スクウェア・エニックス | 動作モデリング装置及び方法、並びにプログラム |
GB201601775D0 (en) * | 2016-02-01 | 2016-03-16 | Naturalmotion Ltd | Animating a virtual object in a virtual world |
CN112562072A (zh) * | 2020-12-25 | 2021-03-26 | 北京爱奇艺科技有限公司 | 一种动作重定向方法、装置、设备及存储介质 |
CN112562071A (zh) * | 2020-12-25 | 2021-03-26 | 北京爱奇艺科技有限公司 | 一种动作差异度计算方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113129414A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9208613B2 (en) | Action modeling device, method, and program | |
US10062197B2 (en) | Animating a virtual object in a virtual world | |
CN108090951B (zh) | 用于模拟采取姿势的身体的计算机实现的方法 | |
US11335051B2 (en) | Parameterized animation modifications | |
US9984488B2 (en) | Animating a virtual object in a virtual world | |
CN113160189A (zh) | 血管中心线提取方法、装置、设备及存储介质 | |
JP2013120395A (ja) | スケルトンモデルの姿勢制御方法,及びプログラム | |
US10319135B2 (en) | Computer-implemented method for simulating a body taking a posture, in particular to look at a target | |
GB2546820A (en) | Animating a virtual object in a virtual world | |
CN112562072A (zh) | 一种动作重定向方法、装置、设备及存储介质 | |
US10410393B2 (en) | Animating a virtual object in a virtual world | |
CN107038430B (zh) | 一种构造人体姿态数据样本的方法及其装置 | |
CN113129414B (zh) | 手部动作修复方法、装置、设备及存储介质 | |
WO2017054651A1 (zh) | 一种确定融合系数的方法和装置 | |
CN111462015B (zh) | 地图轨迹的处理方法、装置、电子设备及存储介质 | |
JP2021068438A (ja) | モデル化された身体の骨格に姿勢を取らせるコンピュータにより実行される方法 | |
JP2022518641A (ja) | 画像処理方法及び装置、画像処理デバイス並びに記憶媒体 | |
JP2012164221A (ja) | 骨格モデルの関節角度の曲がりにくさの制御装置,方法,及びプログラム | |
CN112102453B (zh) | 一种动画模型骨骼处理方法、装置、电子设备及存储介质 | |
CN109272485B (zh) | 血管三维模型的修补方法、装置和电子设备 | |
CN112884869A (zh) | 运动重定向策略选择方法、装置、设备及存储介质 | |
CN116402989B (zh) | 数据处理方法、装置、设备以及介质 | |
WO2024037591A1 (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114373531B (zh) | 一种行为动作监测矫正方法、***、电子设备及介质 | |
CN112686977A (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 |