买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】用于模拟采取姿势的身体的计算机实现的方法_达索系统公司_201711162800.3 

申请/专利权人:达索系统公司

申请日:2017-11-21

公开(公告)日:2024-01-30

公开(公告)号:CN108090951B

主分类号:G06T17/00

分类号:G06T17/00;G06T7/246

优先权:["20161122 EP 16306533.7"]

专利状态码:有效-授权

法律状态:2024.01.30#授权;2019.12.03#实质审查的生效;2018.05.29#公开

摘要:一种用于模拟采取姿势的人体或动物体的计算机实现的方法,包括以下步骤:a提供所述身体的模型AV,其包括骨架,所述骨架包括由旋转关节A‑D链合的多个骨头b0‑b4以形成至少一个运动链;b定义针对所述骨架的每个旋转关节的起始位置和起始旋转状态,以及运动链的被称为效应器EF的点的目标位置T,所述运动链被称为活动的运动链;c针对所述活动的运动链的多个关节中的每一个关节的至少一个旋转轴,定义:致动顺序;对目标旋转的最大分数贡献;以及最大旋转角;以及d采用其致动顺序迭代地将围绕其旋转轴的旋转应用于所述活动的运动链的关节,以便使所述效应器接近目标位置T,其中关于旋转轴的关节的每个旋转由相对应的最大旋转角和对所述目标旋转的相对应的最大分数贡献中的一个来限定,所述目标旋转将使所述效应器与其目标位置之间的距离最小化。用于执行这样的方法的计算机程序产品、非暂时性计算机可读数据存储介质以及计算机系统。

主权项:1.一种用于模拟采取姿势的人体或动物体的计算机实现的方法,包括以下步骤:a提供所述人体或所述动物体的模型AV,其包括骨架,所述骨架包括由旋转关节A-D链合的多个骨头b0-b4以形成至少一个运动链,每个旋转关节连接两个骨头并且具有被包括在一个到三个之间的多个旋转轴;b定义针对所述骨架的每个旋转关节的起始位置和起始旋转状态,以及运动链的被称为效应器EF的点的目标位置T,所述运动链被称为活动的运动链;c针对所述活动的运动链的多个关节中的每一个关节的至少一个旋转轴,定义:-致动顺序;-对目标旋转的最大分数贡献;以及-最大旋转角;以及d采用其致动顺序迭代地将围绕其旋转轴的旋转应用到所述活动的运动链的关节,以便使所述效应器接近其目标位置T,其中,关节的关于旋转轴的每个旋转由相对应的最大旋转角和对所述目标旋转的相对应的最大分数贡献中的一个来限定,所述目标旋转将使所述效应器与其目标位置之间的距离最小化。

全文数据:用于模拟采取姿势的身体的计算机实现的方法技术领域[0001]本发明涉及用于模拟采取姿势的人类或动物)的动作的计算机实现的方法。这涉及计算机图形领域,并且使其本身应用于若干应用,例如,计算机辅助设计CAD、人体工程学、视频游戏等。背景技术[0002]已知由数字模型来表示人类或动物身体,所述模型包括由“皮肤”覆盖的“骨架”。骨架由一组被称为“骨头”的区段构成,即使它们不必对应于实际的解剖学上的骨头,所述骨头由具有一、二或三个旋转自由度的旋转关节链合。这样的模型,也被称为“化身”,通常以诸如人类身体模型的所谓的“τ-姿势”(腿部分地伸展、手臂水平方向延伸之类的标准姿势被提供。[0003]为了使化身采取与原始姿势不同的特定姿势,有必要确定链合化身的骨架的骨头的一组关节的旋转产生期望结果。这并非容易的任务。[0004]在许多情况中,用户仅对骨架的一个或多个特定的点(被称为“效应点effector”)施加约束,而不是完全指定期望的姿势。例如,用户可以迫使化身的手例如,对应于表示其前臂的骨头的端点采用特定的位置。从理论的角度而言,这对应于反向运动学(IK的问题。[0005]正向运动学允许计算运动链例如,骨架或其部分)的一个或多个效应器的位置X作为一组参数Θ的方程,其中一组参数Θ定义链的关节的旋转角:[0006]X=fΘ[0007]而反向运动学的目的在于计算产生效应器的指定目标位置X的参数θ:[0008]Θ=^X[0009]虽然正向运动学问题通常允许单个解,但是反向运动学问题可以具有零解或无限解。在第一种情况下,不可能达到目标位置X;在第二种情况下(受约束的系统),其与定义“解空间”的无限数量的不同姿势冗余相对应,无限数量的不同姿势中的一个必须是任意地或基于一些准则来进行分类的。[0010]反向运动学问题仅允许非常短的运动链的解析解,其通常具有很少的实际意义。[0011]在更复杂的情况下,可以局部对正向运动学方程f进行线性化并且对其求逆。实际上,如果系统是受约束的,则可以仅得到(线性化的)正向运动学方程的伪逆,并且通过选择使适当地选择的成本方程最小化的解来处理冗余。这种方法是非常强大并且灵活的-实际上,比许多计算机图形应用所要求的要更加强大和灵活,但是其涉及与实时实现不兼容的复杂的计算。[0012]存在用于以快速并且更实际的方法来解决反向运动学问题的其他方法。[0013]公知的方法在于将反向运动学问题简化为最小化问题-将要被最小化的方程是效应器与目标位置之间的距离,并且使用循环坐标下降(CCD算法参见DavidG.Luenberher和YinyuYeuLinearandNonlinearProgramming”第三版,Springer2008来解决目标位置。循环坐标下降反向运动学CCD-IK事实上是迭代的算法,其执行对关节的局部调节以使位置的错误和效应器的定向最小化。每次迭代都通过运动链从末端到根部并且逐步地修改每个关节。然后,这种调整足够简单以解析地来执行。[0014]这种方法的主要优点是在其收敛期间不存在奇点。然而,其也有一些主要缺点。首先,该方法不提供考虑到冗余的可能解的空间,而仅提供单个解,其可以不与人体或动物体的真实的姿势相对应。最后,所述调整在关节之间不是均匀地被分布。实际上,将要被修改的第一关节经受最大的旋转,其通常太大以至于不能产生真实的姿势。这种方法很适合于机器人,其中仅有最后的效应器的位置是有意义的,而不是姿势本身。[0015]归纳的反向运动学算法(J·0·Kim等,“TheInductiveInverseKinematicsAlgorithmtoManipulatethePostureofanArticulatedBody”,ICCS2003是CCD的修改形式,其产生更多真实的姿势。为了这样做,该方法在启动CCD算法之前将运动链初始化为处于被存储在所谓的“统一姿势图谱”中的预先计算的姿势。这种方法的缺点是其需要存储针对单个运动链的大量的预先计算的姿势。将该方法应用于人体或动物体的建模可能需要计算针对若干不同的骨架例如,与不同的个体相对应)的统一姿势图谱,每个不同的骨架包括多个运动链,进一步增加了负担,这很快就变得难以承受。[0016]三角测量反向运动学算法(R.Miiller-Cajar和R.Mukundan“Triangulatio:AnewalgorithmforInverseKinematics”,ProceedingsofImageandVisionComputingNewZealand2007介绍了以下认知:基于C⑶的方法给出了非真实的姿势主要是因为将要被调整的第一参数经受了最大的改变。“三角测量”通过由余弦定理来确定朝向目标的每个关节的旋转从而减弱这个缺点。该算法是简单并且快速地实现的,但是其不产生充分真实的姿势。[0017]本发明的目的在于克服现有技术的缺点。更准确地说,其目的在于提供简单并且快速的方法以用于模拟采取姿势的人体或动物体,从而产生真实-即使在解剖学上不一定是准确的-结果。发明内容[0018]允许实现该目的的本发明的对象是一种用于模拟采取姿势的人体或动物体的计算机实现的方法,包括以下步骤:[0019]a提供所述人类或动物身体的模型,其包括骨架,所述骨架包括由旋转关节链合的多个骨头以形成至少一个运动链,每个旋转关节连接两个骨头并且具有被包括在一至三个之间的许多旋转轴;[0020]b定义针对骨架的每个旋转关节的起始位置以及起始旋转状态,以及运动链的被称为效应器的点的目标位置,所述运动链被称为活动运动链;[0021]c针对所述活动的运动链的多个关节中的每一个关节的至少一个旋转轴,定义:[0022]-致动顺序;[0023]-对目标旋转的最大分数贡献;以及[0024]-最大旋转角;以及[0025]d采用其致动顺序迭代地将围绕其旋转轴的旋转应用于所述活动的运动链的关节,以便使所述效应器接近其目标位置,其中关节的关于旋转轴的每个旋转由相对应的最大旋转角和对所述目标旋转的相对应的最大分数贡献中的一个来限定,所述目标旋转将使所述效应器与其目标位置之间的距离最小化。[0026]本发明的另一对象是计算机程序产品,其被存储在非暂时性计算机可读数据存储介质上,所述计算机程序产品包括计算机可执行指令,所述指令用于使计算机系统执行这样的方法。[0027]而本发明的另一对象是非暂时性计算机可读数据存储介质,其包括计算机可执行指令,所述指令用于使计算机系统执行这样的方法。[0028]本发明的进一步对象是计算机系统,其包括耦合至存储器的处理器以及图形用户界面,存储器存储计算机可执行指令,所述指令用于使计算机系统执行这样的方法。[0029]本发明的另一对象是使用这样的方法被仿真的采取姿势的人类或动物身体的模型。附图说明[0030]根据随后的描述结合附图,本发明的附加的特征和优点将会变得显而易见,其中:[0031]图1、图2A、图2B、图3A、图3B、图4A和图4B示出了根据本发明的方法的示例性实施例的旋转的序列,其被应用于骨架的运动链以便移动效应器朝向目标;[0032]图5A-图5C示出了本发明的方法的示例性应用;[0033]图6和图7是根据本发明的不同实施例的适用于执行方法的相应的计算机系统的框图。具体实施方式[0034]本发明将参照非常简单的示例来进行描述,如图1上所示:运动链由四个骨头bl、匕243士4、固定的基底13〇其可以被认为是骨头和四个旋转关节4、8、:、0构成,每个关节具有单个旋转轴。旋转轴彼此平行;因此,链的移动被约束在平面中。效应器EF是骨头b4的端点,距基b0最远。对更复杂(以及三维)的情况的普遍原理是简单易懂的。图1表示处于初始姿势的运动链,其中所有关节都具有0°初始旋转角,并且所有骨头都是对齐的。[0035]本发明的方法包括两个阶段。总是被执行的第一阶段收敛到真实的姿势,在该姿势中效应器EF的位置可以不是完全符合目标点T。第二阶段,其是可选的,修改该姿势以确保效应器达到目标点。[0036]在使用本发明的算法之前,需要创建简单的数据结构:元素的有序列表,每个元素包括:[0037]关节的标识符及其旋转轴的标识符;[0038]指示关节对目标旋转的最大分数贡献maximalfractionalcontribution的数值;以及[0039]指示关节的最大旋转角的数值。[0040]以下的表1提供了这样的列表的示例;然而,不存在关节的旋转轴的标识符,这是由于在图1的示例中仅考虑了一个自由度的关节:[0042]表I[0043]该算法的第一阶段被迭代地执行并且与CCD算法有某些相似之处。然而,针对每个旋转轴定义的“最大分数贡献”和“最大旋转角”确保更加平衡的-并且由用户自由定制的-关节旋转的分布。[0044]列表的第一元素与关节B相对应。然后,第一阶段的第一步骤包括旋转该关节以便移动效应器EF朝向目标T。在图2A中,虚线20表示如果关节B被旋转以便确切地使EF-T距离最小化则子链b2-b3-b4将会采用的配置。然而,列表示出了关节B的特征在于最大分数贡献是30%并且最大旋转角是20°。这表示该关节的实际旋转被限定为“完全”旋转的30%参见虚线21或旋转了20°参见虚线22。选择两个限定中较大的,在这种情况下是20°旋转。在图2B中示出了得到的配置(“姿势”)。[0045]被致动的下一个节点是A。在图3A中,线30示出了与“完全”旋转相对应的姿势,并且线31与由最大分数贡献是30%来限定的旋转相对应。理论上,线32应该与最大旋转角即60°相对应,但是这将会超过“完全”旋转,其是不被允许的,这是由于其将移动效应器越过目标。因此,线32与线30对齐,并且确定关节A的实际旋转图3B。[0046]被致动的第三节点是D。图4A上所示的模拟与先前的步骤类似;线40与完全旋转相对应,线41与最大分数贡献相对应并且线42符合线40,最大旋转角由完全旋转来限定。图4B示出了在这第三步骤之后获得的姿势。[0047]在本发明的该示例性实施例中,算法的第一阶段在此结束。在更复杂的实施例中,也可以致动关节C和或可以执行若干迭代,即列表中的关节可以被处理若干次。[0048]在图4B中可以看出,在第一步骤结束时,效应器没有达到目标。此外,对步骤进行迭代不可以解决这个问题。因此,为了使效应器符合目标,使用常规CCD算法来执行第二步骤。由于CCD仅须提供相对小的改进,因此其将不“破坏”由第一步骤生成的姿势的真实的表现。[0049]可以理解的是,通过例如三角测量的本发明的方法的关键优点是其可调谐性:用户可以自由改变列表中的关节的顺序,以及针对每个关节的最大分数贡献和最大旋转角度的数值。姿态的计算是非常快速的,用户可以简单地尝试不同的设置以便找到最真实的姿势。[0050]直到现在,仅考虑了“抽象”的运动链的情况。在方法的实际实现中,运动链将表示与例如肢体例如,手臂相对应的骨架的一部分。通常,骨架将被认为是由多个运动链组成的。本发明的方法允许对单个“活动的”链起作用,而其他的链被认为是固定的。另外,当该方法被应用于化身时,可能需要对关节的旋转施加附加的约束,附加的约束反映了建模的人体或动物体的生理学约束。[0051]图5A-图5C示出了具有包括多个运动链的骨架未示出)的化身AV。表示左臂在每幅图的右侧的链是“活动的”链,并且其效应器与右手腕相对应;身体的剩余部分构成固定的基。目标T由光标组成,该光标由用户使用例如鼠标来在包含化身的三维场景中移动。如可以看到的,针对目标的连续位置重复地执行本发明的方法,这允许效应器实时地跟随目标,并且化身的姿势总是看起来非常自然。[0052]重要的是注意到,虽然最后的姿势是真实的,但是由运动链执行的以达到最后的姿势的移动不是必需的,除了小的移位以外。因此,如果本发明的方法用于执行动画,则建议从位于靠近效应器的目标点开始,并且逐渐地移动效应器朝向其最后的位置。[0053]效应器不需要与肢体的末端相对应。例如,可以固定化身的手的位置(S卩,使手作为基),并且可以认为肩膀或者身体的中心是效应器。[0054]直到现在,仅有其中选择最大旋转角和对目标旋转的相对应的最大分数贡献中的较大的一个来限定关节的旋转的情况。这个选择加速了收敛。然而,相反的选择即,最大旋转角和对目标旋转的相对应的最大分数贡献中的较小的一个也是可以的。还可以采取“混合的”方法,例如,选择较大的限定以用于第一迭代并且选择较小的限定以用于最后的迭代。[0055]本发明的方法可以由适当编程的通用计算机或包括计算机网络的计算机系统来执行,其将适当的程序以非暂时性形式的存储到计算机可读介质例如,硬盘、固态盘或CD-R0M上、并且使用其微处理器和存储器来执行所述程序。[0056]参照图6描述了适用于执行根据本发明的示例性实施例的方法的计算机。在图6中,计算机包括中央处理单元CPU,其执行上述的过程。该过程可以被存储为可执行的程序,即存储器例如,RAMMl或ROMM2中的、或硬盘驱动器HDDM3、DVD⑶驱动器M4上的、或可以远程存储的一组计算机可读指令。此外,一个或多个计算机文件也可以被存储在存储器设备Ml到M4中的一个或多个上或者远程地被存储,其中一个或多个计算机文件定义至少一个人体或动物体的数字模型化身和或其中浸入所述模型的三维场景。[0057]所要求保护的发明不由其上存储了本发明过程的计算机可读指令和或数字文件的计算机可读介质的形式所限制。例如,指令和文件可以被存储在CD、DVD上、在闪存、RAM、ROM、PR0M、EPR0M、EEPR0M、硬盘或计算机辅助设计站或示例编写站(illustrationauthoringstation与i进行通信的任何其他信息处理设备例如,服务器或计算机)中。程序和文件可以被存储在相同的存储器设备上或不同的存储器设备上。[0058]此外,适用于执行本发明的方法的计算机程序可以被提供作为实用应用、后台守护进程、或操作系统的组件、或其组合,与CPU800和例如以下的操作系统共同执行:MicrosoftVISTA、MicrosoftWindows8、UNIX、Solaris、LINUX、AppleMAC-0S、以及本领域的技术人员已知的其他系统。[0059]中央处理单元CPU可以是来自美国Intel的Xenon处理器、或来自美国AMD的Opteron处理器、或可以是其他处理器类型,例如,来自美国Freescale公司的FreescaleCoIdFire、IMX、或ARM处理器。可替换地,中央处理单元可以是例如来自美国Intel公司的Core2Duo之类的处理器,或者可以被实现在FPGA、ASIC、PLD上或可以使用分立的逻辑电路来实现,如本领域的普通技术人员可以识别的。[0060]此外,中央处理单元可以被实现为协作地进行工作以用于执行上述发明过程的计算机可读指令的多个处理器。[0061]图6中的计算机还包括网络接口NI例如,来自美国Inte1公司的Inte1以太网PRO接口卡)以用于与网络例如,局域网LAN、广域网WAN、因特网等进行接合。计算机辅助设计站还包括显示控制器DC例如,来自美国NVIDIA公司的NVIDIAGeForceGTX图形适配器)以用于与显示器DY例如,惠普HPL2445WLCD监视器进行接合。通用IO接口IF与键盘KB和定点设备ro例如,滚球、鼠标、触摸板等进行接合。显示器、键盘和定点设备与显示控制器和IO接口一起形成了图形用户界面,其由用户使用以提供输入命令例如,移动指针工具、定义参数的值…)并且由计算机辅助设计站使用以用于显示包括化身的三维场景。[0062]盘控制器DKC将HDDM3和DVD⑶M4与通信总线CBS进行连接,通信总线CBS可以是ISA、EISA、VESA、PCI、或类似的以用于将计算机辅助设计站的组件中的所有组件进行互连。[0063]为了简洁,本文中省略了显示器、键盘、定点设备以及显示控制器、盘控制器、网络接口和IO接口的一般特征和功能的描述,这是由于这些特征是已知的。[0064]图7是适用于执行根据本发明的不同示例性实施例的方法的计算机系统的框图。[0065]在图7中,可执行程序EXP和定义化身和可能的三维场景的计算机文件被存储在连接到服务器SC的存储器设备上。存储器设备和服务器的总体架构可以与上面参照图6所讨论的是相同的,除了在该服务器中显示控制器、显示器、键盘和或定点设备可以缺失以外。[0066]然后,服务器SC经由网络NW被连接到管理员系统ADS和终端用户计算机EUC。[0067]管理员系统和终端用户计算机的总体架构可以与参照图6所讨论的是相同的,除了管理员系统和终端用户计算机的存储器设备不存储可执行程序EXP和或定义化身和或三维场景的计算机文件以外。然而,终端用户计算机存储被设计用于与服务器的可执行程序进行协作的客户端程序,如其将在下面进行讨论的。[0068]如可以理解的是,网络NW可以是公共网络例如,因特网)或私有网络例如,LAN或WAN网络)或其任何组合,并且还可以包括PSTN或ISDN子网络。网络NW还可以是有线的(例如,以太网网络或可以是无线的(例如,蜂窝网络,包括EDGE、3G和4G无线蜂窝系统)。无线网络还可以是Wi-Fi、蓝牙或已知的任何其它无线形式的通信。因此,网络NW仅是示例性的并且不会限制本改进的范围。[0069]存储在终端用户计算机的存储器设备中的并且由终端用户计算机的CPU执行的客户端程序经由网络NW访问由服务器SC存储的并且包含定义三维场景、化身或其元件的文件的数据库DB。服务器执行如上所述的处理,并且再次使用网络NW将与期望的场景的表示相对应的图像文件发送到终端用户计算机。[0070]尽管仅示出了一个管理员系统ADS和一个终端用户系统EUX,但是在没有限制的情况下系统可以支持任何数量的管理员系统和或终端用户系统。类似地,在不脱离本发明的范围的情况下,还可以在系统中实现多个服务器。[0071]本文中描述的任何过程应该被理解为表示代码的模块、区段、或的部分,所述代码包括一个或多个可执行指令以用于实现过程中的特定逻辑功能或步骤,并且替代的实现被包括在本发明的示例性实施例的范围内。

权利要求:1.一种用于模拟采取姿势的人体或动物体的计算机实现的方法,包括以下步骤:a提供所述人体或所述动物体的模型AV,其包括骨架,所述骨架包括由旋转关节A-D链合的多个骨头b〇-b4以形成至少一个运动链,每个旋转关节连接两个骨头并且具有被包括在一个到三个之间的多个旋转轴;b定义针对所述骨架的每个旋转关节的起始位置和起始旋转状态,以及运动链的被称为效应器EF的点的目标位置T,所述运动链被称为活动的运动链;c针对所述活动的运动链的多个关节中的每一个关节的至少一个旋转轴,定义:-致动顺序;-对目标旋转的最大分数贡献;以及-最大旋转角;以及d采用其致动顺序迭代地将围绕其旋转轴的旋转应用到所述活动的运动链的关节,以便使所述效应器接近其目标位置⑺,其中,关节的关于旋转轴的每个旋转由相对应的最大旋转角和对所述目标旋转的相对应的最大分数贡献中的一个来限定,所述目标旋转将使所述效应器与其目标位置之间的距离最小化。2.根据权利要求1所述的计算机实现的方法,还包括在步骤d之后执行的以下步骤:e应用循环坐标下降算法来使所述效应器收敛到目标点,除非收敛在所述步骤d结束时已经完成。3.根据前述权利要求中的任何一项所述的计算机实现的方法,其中,关节的关于旋转轴的每个旋转是由所述相对应的最大旋转角和对所述目标旋转的相对应的最大分数贡献中的最大的来限定的,所述目标旋转将使所述效应器与其目标位置之间的距离最小化。4.根据前述权利要求中的任何一项所述的计算机实现的方法,其中,在步骤d中至少一个旋转是由对所述人体或所述动物体的生理学约束进行建模的至少一个约束来限定的。5.根据前述权利要求中的任何一项所述的计算机实现的方法,其中,步骤c包括创建元素的有序列表,所述列表的每个元素包括至少:-旋转关节的标识符和其旋转轴的标识符;-指示对目标旋转的相对应的最大分数贡献的数值;以及-指示所述相对应的最大旋转角的数值。6.根据前述权利要求中的任何一项所述的计算机实现的方法,其中,所述目标在包含所述人体或所述动物体的模型的三维场景中移动,并且其中,步骤d是针对所述目标的多个连续位置被实时地重复执行的。7.根据前述权利要求中的任何一项所述的计算机实现的方法,还包括显示所述人体或所述动物体的图形表示。8.根据前述权利要求中的任何一项所述的计算机实现的方法,其中,所述效应器与在所述人体或所述动物体的手、手指、脚、脚趾、头部或其部分之中选择的元素相关联。9.一种存储在非暂时性计算机可读数据存储介质M1-M4上的计算机程序产品,其包括计算机可执行指令,所述计算机可执行指令使计算机系统执行根据前述权利要求中任一项所述的方法。10.—种非暂时性计算机可读数据存储介质M1-M4,其包括计算机可执行指令EXP,所述计算机可执行指令使计算机系统执行根据权利要求1至8中的任一项所述的方法。11.一种计算机系统包括与存储器M1-M4和图形用户界面KB、ro、DC、DY耦合的处理器P,所述存储器存储计算机可执行指令EXP,所述计算机可执行指令使所述计算机系统执行根据权利要求1至8中的任一项所述的方法。12.—种采取姿势的人体或动物体的模型,其利用权利要求1至8中的任一项所述的方法来被模拟。

百度查询: 达索系统公司 用于模拟采取姿势的身体的计算机实现的方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。