热词 | 节点 关节点 肢体 人体 图像 关节 运动 连线 变异度 向量 | ||
专利类型 | 发明公开 | 法律事件 | 公开; 实质审查; 授权; |
专利有效性 | 有效专利 | 当前状态 | 授权 |
申请号 | CN202410572208.4 | 申请日 | 2024-05-10 |
公开(公告)号 | CN118135070A | 公开(公告)日 | 2024-06-04 |
申请人 | 江苏物润船联网络股份有限公司; | 申请人类型 | 企业 |
发明人 | 朱光辉; 赵衍维; | 第一发明人 | 朱光辉 |
权利人 | 江苏物润船联网络股份有限公司 | 权利人类型 | 企业 |
当前权利人 | 江苏物润船联网络股份有限公司 | 当前权利人类型 | 企业 |
省份 | 当前专利权人所在省份:江苏省 | 城市 | 当前专利权人所在城市:江苏省苏州市 |
具体地址 | 当前专利权人所在详细地址:江苏省苏州市张家港保税物流园区商务楼3078、3098室 | 邮编 | 当前专利权人邮编:215600 |
主IPC国际分类 | G06T13/40 | 所有IPC国际分类 | G06T13/40 ; G06T7/77 ; G06T7/207 ; G06T7/277 |
专利引用数量 | 4 | 专利被引用数量 | 0 |
专利权利要求数量 | 10 | 专利文献类型 | A |
专利代理机构 | 苏州启华专利代理事务所 | 专利代理人 | 徐伟华; |
摘要 | 本 申请 涉及图像 数据处理 技术领域,具体涉及一种基于 动作捕捉 技术的数字人驱动方法及系统,该方法包括:获取连续采集数字人体图像,得到每 帧 人体 节点 模型图像的关节点和肢体连线;基于肢体连线长度差异确定人体肢体连线垂直旋转强度;基于每帧图像中各节点的 位置 坐标,构建人体关节相对运动向量和绝对运动向量,计算帧间相对运动变异度、帧间绝对运动变异度和帧内绝对运动变异度,确定关节点 姿态 运动后验权重和人体整体运动后验权重,计算人 体模 型关节点修正位置卡尔曼增益,确定 人体模型 关节点修正位置,完成对数字人三维模型的驱动。从而在人体肢体遮挡的情况下获得正确的人体节点模型图,提高数字人驱动效果。 | ||
权利要求 | 1.一种基于动作捕捉技术的数字人驱动方法,其特征在于,该方法包括以下步骤: |
||
说明书全文 | 一种基于动作捕捉技术的数字人驱动方法及系统技术领域背景技术[0002] 动作捕捉技术是驱动数字人的一个关键步骤。通常数字人控制者驱动数字人进行动作的流程为:控制者做出动作,电脑捕捉控制者动作生产节点模型,电脑通过节点模型匹配响应的数字人动作,数字人做出对应的动作。其中电脑捕捉控制者动作生产节点模型即是动作捕捉。 [0003] 动作捕捉可以由专业的多自由度相机完成,虽然精度较高但是设备成本大,场景布置复杂。同样的可以使用传统的单目相机拍摄图片,然后以拍摄图片为输入,采用OpenPose模型进行计算,输出为人体节点模型,此方法虽然成本低但精度差,尤其当拍摄的目标对象运动较快或者出现肢体遮挡的情况时,输出的人体节点模型质量较差,为数字人动作驱动的准确性带来影响。因此本申请对肢体遮挡下的人体节点模型进行改进。发明内容 [0004] 为了解决现有技术难以在目标对象在肢体遮挡的情况时,人体节点模型质量差不能准确对数字人动作驱动的问题,提供一种基于动作捕捉技术的数字人驱动方法及系统,以解决现有的问题。 [0005] 本申请解决技术问题的方案是提供一种基于动作捕捉技术的数字人驱动方法及系统,包括以下步骤:第一方面,本申请实施例提供了一种基于动作捕捉技术的数字人驱动方法,该方法包括以下步骤: 获取连续采集数字人体图像,得到每帧人体节点模型图像的关节点和肢体连线; 对人体节点模型进行修正处理,完成基于动作捕捉技术的数字人驱动,具体步骤包括: (1)根据相邻两帧图像中对应节点的肢体连线之间的长度变化差异计算每帧图像各个肢体连线的人体肢体连线垂直旋转强度; (2)基于每帧图像中各节点的位置坐标,构建每帧图像各个节点的人体关节相对运动向量和绝对运动向量,计算每帧图像各个节点的帧间相对运动变异度、帧间绝对运动变异度和每帧图像的帧内绝对运动变异度; (3)将每帧图像各个节点与旋转基础节点之间的肢体连线记为各个节点的肢体连线,根据相邻两帧图像的对应节点的人体肢体连线垂直旋转强度之间的差异和每帧图像对应节点的帧间相对运动变异度分布关系计算每帧图像各个节点的关节点姿态运动后验权重; (4)基于每帧图像各个节点的帧间绝对运动变异度和每帧图像的帧内绝对运动变异度的分布关系计算每帧图像各节点的人体整体运动后验权重; (5)根据相邻两帧图像各个节点的人体关节相对运动向量的关节点姿态运动后验权重分配差异和绝对运动向量的人体整体运动后验权重分配差异计算每帧图像各个节点的人体关节点预测运动向量; (6)根据每帧图像与窗口内所有图像的对应节点的肢体连线中点到其它节点对应的肢体连线中点的欧式距离的和之间的比值关系,计算每帧图像各个节点的人体模型关节点修正位置卡尔曼增益; (7)根据每帧图像各节点的关节点姿态运动预测运动向量以及每帧图像各个节点的实际测量位置坐标向量与其前一帧图像对应节点的人体模型关节点修正位置差值,计算每帧图像各个节点的人体模型关节点修正位置;完成对数字人三维模型的驱动。 [0006] 优选的,所述每帧图像各个肢体连线的人体肢体连线垂直旋转强度的确定方法为:选取每帧图像的前G帧图像组成每帧图像的窗口; 以每帧图像的窗口内的相邻两帧图像按照时间先后顺序分为参考帧和当前帧图像,计算当前帧与参考帧图像中对应的各肢体连线的长度差值的绝对值记为肢体连线长度差异; 计算当前帧与参考帧图像中对应的各肢体连线长度的均值记为相对长度均值; 计算所述肢体连线长度差异与所述相对长度均值之间的比值获得窗口内每帧图像各个肢体连线的长度变异率; 根据窗口内的所有图像计算每帧图像各个肢体连线的人体肢体连线垂直旋转强度: ,其中,Vrk,n是第n帧图像中 的第k个肢体连线的人体肢体连线垂直旋转强度, 是第n帧图像的窗口内的第r帧图像第k个肢体连线的长度变异率, 是第n帧图像的窗口内的第r帧图像的K个肢体连线的长度变异率均值,K表示每帧图像中所有的肢体连线数量,G是先验图像数量,n是图像的帧数序号。 [0007] 优选的,所述每帧图像各个节点的帧间相对运动变异度、帧间绝对运动变异度和每帧图像的帧内绝对运动变异度的确定方法为:构建每帧图像各个节点的人体关节相对运动向量和绝对运动向量; 基于每帧图像各个节点的人体关节相对运动向量,获得当前帧图像窗口内的所有图像中各个节点到当前帧图像的对应节点的人体关节相对运动向量,针对人体关节相对运动向量计算每个维度的标准差并对两个维度进行求和作为每帧图像各个节点的帧间相对运动变异度; 基于每帧图像各个节点的绝对运动向量,采用帧间相对运动变异度相同的计算方法,得到所述各个节点的帧间绝对运动变异度; 计算每帧图像中所有节点的绝对运动向量,针对绝对运动向量计算每个维度的标准差并对两个维度进行求和确定为每帧图像的帧内绝对运动变异度。 [0008] 优选的,所述每帧图像各个节点的人体关节相对运动向量和绝对运动向量的构建方法为:选择中心节点,对所有节点到达中心节点进行溯源,获取每个节点的旋转基础节点; 根据旋转基础节点与各个节点的位置向量,获得每帧图像各个节点的人体关节相对位置向量; 将相邻两帧图像各个节点的人体关节相对位置向量的差值确定为每帧图像各个节点的人体关节相对运动向量; 基于每帧图像各个节点相对坐标原点的位置坐标向量,获得每帧图像各个节点的位移向量; 计算每帧图像各个节点的位移向量与对应节点的人体关节相对运动向量之间的向量差值确定为每帧图像各个节点的绝对运动向量。 [0009] 优选的,所述每帧图像各个节点的关节点姿态运动后验权重和人体整体运动后验权重的确定方法为:将每帧图像各个节点与旋转基础节点之间的肢体连线记为各个节点的肢体连线,得到每帧图像各个节点的人体肢体连线垂直旋转强度; 计算每帧图像各个节点的人体肢体连线垂直旋转强度与前一帧图像对应节点的人体肢体连线垂直旋转强度之间的比值,记为第一比值; 计算每帧图像各个节点的帧间相对运动变异度与对应节点的第一比值的乘积,记为第一乘积; 其中,每帧图像各个节点的关节点姿态运动后验权重与所述第一乘积呈负相关关系; 计算每帧图像各个节点的帧间绝对运动变异度与每帧图像帧内绝对运动变异度之间的乘积,记为第二乘积; 其中,每帧图像各个节点的人体整体运动后验权重与所述第二乘积呈负相关关系。 [0010] 优选的,所述每帧图像各个节点的人体关节点预测运动向量的计算方法为:根据每帧图像与其相邻前一帧图像中各个节点的人体关节相对运动向量与对应的关节点姿态运动后验权重计算每帧图像各个节点的关节点姿态运动预测运动向量; 根据每帧图像与其相邻前一帧图像中各个节点的绝对运动向量与对应的人体整体运动后验权重计算每帧图像各个节点的人体整体运动预测运动向量; 所述关节点姿态运动预测运动向量和所述人体整体运动预测运动向量分别与每帧图像各个节点的人体关节点预测运动向量呈正相关关系。 [0011] 优选的,所述每帧图像各个节点的人体模型关节点修正位置卡尔曼增益,计算公式为: ,其中,βfm,n是第n帧图像第m个节点的人体模型关节点修正位置卡尔曼增益,tanh[.]是对括号中的数值取双曲正切函数,G是先验图像数量,M是人体节点数量,δ(m,h)n是第n帧图像第m个节点对应的肢体连线中点到第h个节点对应的肢体连线中点的欧式距离,δ(m,h)r是第n帧图像窗口内的第r帧图像第m个节点对应的肢体连线中点到第h个节点对应的肢体连线中点的欧式距离。 [0012] 优选的,所述计算每帧图像各个节点的人体模型关节点修正位置,具体包括:根据关节点姿态运动预测运动向量及人体模型关节点修正位置卡尔曼增益计算修正人体关节点运动向量,表达式为: ,其中, 是第n帧图像第m个节 点的修正人体关节点运动向量, 是第n‑1帧图像第m个节点的关节点姿态运动预测运动向量,βfm,n是第n帧图像第m个节点的人体模型关节点修正位置卡尔曼增益, 是第n帧图像第m个节点的实际测量位置坐标向量, 是第n‑1帧图像第m个节点的人体模型关节点修正位置; 基于所述修正人体关节点运动向量确定每帧图像各个节点的人体模型关节点修正位置。 [0013] 优选的,所述计算每帧图像各个节点的人体模型关节点修正位置计算公式为:,其中, 是第n帧图像第m个节点的人体模型关节点修正位置。 [0014] 第二方面,本申请实施例还提供了一种基于动作捕捉技术的数字人驱动系统,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项所述方法的步骤。 [0015] 本申请至少具有如下有益效果:本申请通过OpenPose模型对人体图像获取人体节点模型图,通过模型图中肢体连线的长度变化计算出人体肢体连线垂直旋转强度,表征肢体发生了垂直旋转的可能行大小;进一步对人体节点模型图中关节点的运动进行分解,分为了人体关节相对运动和绝对运动,前者表征了人体姿态的运动情况,后者表征了人体整体的运动情况,并通过两种运动各自的历史运动数据和人体肢体连线垂直旋转强度,计算出关节点姿态运动后验权重和人体整体运动后验权重,进而采用移动指数平均的方式对关节点的运动进行预测,得到人体关节点预测运动向量,通过对人体关节点的运动进行了分解,并采用动态的移动指数平均权重,相比于传统的移动指数平均算法能够更好的预测人体关节点的运动;其次,通过人体节点模型图中肢体连线的紧凑程度计算出卡尔曼增益,以人体关节点预测运动向量为预测状态,采用卡尔曼滤波法对人体节点模型图进行修正,利用预测状态对模型进行修正,能够在人体肢体遮挡的情况下仍能得到正确的人体节点模型图,提高动作捕捉质量;进而采用修正后的人体节点模型图对数字人三维模型进行驱动,通过历史数据对人体节点模型图的运动进行了预测,并采用卡尔曼滤波法修正了人体节点模型图,使人体肢体遮挡的情况下仍能得到正确的人体节点模型图,能够得到更好的数字人驱动效果。 附图说明 [0016] 下面结合附图对本申请的一种基于动作捕捉技术的数字人驱动方法作进一步详细说明。 [0017] 图1为本申请提供的一种基于动作捕捉技术的数字人驱动方法的步骤流程图;图2为本申请提供的节点模型示意图; 图3为本申请提供的每帧图像各个节点的帧间相对运动变异度和帧间绝对运动变异度的步骤流程图; 图4为本申请提供的人体模型关节点修正位置的节点模型示意图。 具体实施方式[0018] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施实例,对本申请提出的一种基于动作捕捉技术的数字人驱动方法及系统进行进一步详细说明。应当理解的是,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。 [0019] 除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。 [0020] 请参阅图1,其示出了本申请一个实施例提供的一种基于动作捕捉技术的数字人驱动方法的步骤流程图,该方法包括以下步骤:步骤1,获取连续采集数字人体图像,得到每帧人体节点模型图像的关节点和肢体连线。 [0021] 传统的OpenPose算法是对静态的图像获取人体节点模型,因此没有可供参考的先验人体节点模型,但是在动作捕捉的场景下通常是对一连串的人体图像视频进行人体节点模型提取,因此可以采取之前的人体节点模型对肢体遮挡下的人体节点模型进行修正。 [0022] 首先在空白背景下对数字人控制者使用固定的单目摄像头拍摄,获取N帧连续的人体图像,且当前时刻的人体图像记为BcN,图像的色彩空间为RGB色彩空间。以每帧图像为例构建尺寸大小为1*G的窗口,选取每帧图像的前G帧图像组成每帧图像的窗口,经验值先验图像数量为G。依次以窗口内的G张人体图像Bc为输入,采用OpenPose模型进行计算,根据人体节点数量M,对人体节点数量进行排序,输出为G张人体节点模型图Ps。其中第n张人体节点模型图Psn中有M个节点记为关节点,K根连接线记为肢体连线。将图像左下角作为坐标原点。OpenPose模型为本领域公知技术不再赘述,且N数量大于G。 [0023] 作为本申请的一个实施例,人体图像N设定为100,窗口尺寸G=10,即表示经验值先验图像数量G=10,人体节点数量M取值为25,则可获得24根肢体连线;其中,人体节点模型示意图如图2所示,对一个人体获取的二十五节点模型示意图,能够表征人体的姿态信息,且其中有24根肢体连线。 [0024] 应该理解的是,本实施例仅仅提供一种图像和节点数量的实施方案,作为其他实施者,可自行设定图像数量和节点数量。 [0025] 至此,获得N张人体节点模型图。 [0026] 步骤2,对人体节点模型进行修正处理,避免肢体遮挡造成的影响,并驱动数字人。具体步骤包括: 第一步,根据每帧图像构建的窗口内的相邻两帧图像中对应节点的肢体连线之间的长度变化差异计算每帧图像各个肢体连线的人体肢体连线垂直旋转强度。 [0027] 由于人体节点模型图只是通过单张平面图形对人体的关键节点进行提取,并不包含人体的深度信息。因此,将肢体朝向或远离相机进行的旋转称为垂直旋转,当垂直旋转发生时,由于单目相机无法直接获取人体深度信息,因此无法直接判断出肢体是否发生了垂直旋转,而当人体的肢体出现遮挡时通常伴随着一定的垂直旋转动作,因此要对人体的旋转信息进行提取。 [0028] 基于上述分析,可以通过窗口内相邻帧图像之间对应节点的肢体连线长度差异反映人体肢体是否发生垂直旋转。通过构建人体肢体连线垂直旋转强度,获得窗口中每帧图像各个肢体连线的人体肢体连线垂直旋转强度,计算方法为:以每帧图像构建的窗口内的相邻两帧图像按照时间先后顺序分为参考帧和当前帧图像,计算当前帧与参考帧图像中对应的各肢体连线的长度差值的绝对值记为肢体连线长度差异; 计算当前帧与参考帧图像中对应的各肢体连线长度的均值记为相对长度均值; 计算所述肢体连线长度差异与所述相对长度均值之间的比值获得窗口内每帧图像各个肢体连线的长度变异率; 根据窗口内的所有图像计算每帧图像各个肢体连线的人体肢体连线垂直旋转强度: ,其中, 是第n帧图 像中的第k个肢体连线的人体肢体连线垂直旋转强度, 是第n帧图像的窗口内的第r帧图像第k个肢体连线的长度变异率, 是第n帧图像的窗口内的第r帧图像的K个肢体连线的长度变异率均值,K表示每帧图像中所有的肢体连线数量,G是先验图像数量,n是图像的帧数序号。 [0029] 需要说明的是,对各个肢体连线计算其在相邻两帧中的长度变化情况,当人体相对于相机不进行远离或靠近时,如果某个肢体连线长度差异值不为0,则说明其对应的人体肢体正在发生垂直旋转,且肢体连线长度差异值越大则旋转强度越大;同时由于不同肢体长度不同,因此将差值除以相对长度均值,以消除不同肢体长度差异带来的影响。 [0030] 其次,长度变异率的均值代表了整个人体是否相对于相机发生了远离或靠近,均值保持不变则没有发生远离或靠近;如果均值减小或增大,则肢体连线的长度变化差值的减小或增大可能是由于人体相对相机的距离变化引起的,而非肢体旋转引起的。因此将长度变异率与长度变异率均值进行计算处理,才能消除人体与相机距离变化对肢体垂直旋转的判断带来的影响。对帧数序号归一化处理作为权重,越靠近当前时刻帧数的信息权重越大。 [0031] 最终得到人体肢体连线垂直旋转强度,其值越大在第n帧图像中第k个肢体连线越有可能发生垂直旋转,越有可能出现肢体遮挡现象,对应的通过第n帧图像获得的人体节点模型越不可信,越应该用历史的人体节点模型预测当前的人体节点模型。 [0032] 至此,得到每帧图像各个肢体连线的人体肢体连线垂直旋转强度。 [0033] 第二步,基于每帧图像中各节点的位置坐标,构建每帧图像各个节点的人体关节相对运动向量和绝对运动向量,计算每帧图像各个节点的帧间相对运动变异度、帧间绝对运动变异度和每帧图像的帧内绝对运动变异度。 [0034] 通过历史的人体节点模型对当前的人体节点模型进行修正,因此需要分析人体节点模型的动作。 [0035] 进一步,首先在图像的所有关节节点中,选择一个中心节点,其它所有节点可以通过肢体连线溯源到达中心节点,将溯源过程中各个节点的下一个节点作为该节点的旋转基础节点。 [0036] 优选的,作为本申请的一个实施例,将图2所示1号节点作为中心节点,其它所有节点可以通过肢体连线溯源到达中心节点,例如图2中第13号节点溯源到达1号节点的顺序为13→12→8→1,在溯源过程中各节点的下一个节点作为该节点的旋转基础节点,例如第13号节点的旋转基础节点为12号节点。 [0037] 进一步,对于第n帧的第m个节点,通过旋转基础节点指向第m个节点,可以得到第m个节点的人体关节相对位置向量 。因此,对于第m个节点和旋转基础节点之间的肢体连线标记为第m个节点的肢体连线,则第m个节点在第n帧图像中可以计算出对应的人体肢体连线垂直旋转强度记为 。特别的,对于与中心节点相关的肢体连线,关于中心节点中心对称的肢体连线被认为是对称的肢体连线,对中心节点选择其非对称的、最短的肢体连线作为其肢体连线,如图2,1号节点作为中心节点,其肢体连线为0→1。 [0038] 对于第n‑1帧图像和第n帧图像的第m个节点的人体关节相对位置向量分别记为,进而根据第n‑1帧图像到第n帧图像的第m个节点的人体关节相对位置向量之间的差,得到第n帧图像第m个节点的人体关节相对运动向量,其中人体关节相对运动向量表征了人体姿态的运动情况。 [0039] 其次,对于第n‑1帧图像和第n帧图像的第m个节点相对坐标原点的位置坐标向量分别记为 ,根据第n‑1帧图像到第n帧图像的第m个节点的位置坐标向量之间的差,得到第n帧图像第m个节点的位移向量 。根据人体关节相对运动向量和位移向量得到第n帧图像第m个节点的绝对运动向量 , 其中绝对运动向量表征了人体整体的运动情况。 [0040] 最终获得第n帧图像第m个节点的人体关节相对运动向量 和绝对运动向量。 [0041] 进一步,计算第n帧图像窗口内的所有G帧图像中第m个节点到第n帧图像的第m个节点的人体关节相对运动向量,根据所获的G组的二维向量,对G组的人体关节相对运动向量分别计算每个维度的标准差并对两个维度进行求和,得到第n帧图像第m个节点的帧间相对运动变异度σRPjm,n,其中σRPjm,n值越大,表明不同帧间的关节点姿态运动越混乱。 [0042] 针对第n帧图像第m个节点的绝对运动向量,采用帧间相对运动变异度相同的计算方法,得到第n帧图像第m个节点的帧间绝对运动变异度σRPbm,n,其中σRPbm,n值越大,表明不同帧间的人体整体运动越混乱。 [0043] 进一步,本申请的一个实施例中,每帧图像的各个节点的帧间相对运动变异度和帧间绝对运动变异度获取方法的步骤流程图如图3所示。 [0044] 针对第n帧图像中所有节点的绝对运动向量,根据M组的绝对运动向量,分别计算每个维度的标准差并对两个维度进行求和,得到第n帧图像的帧内绝对运动变异度σRTbn,σRTbn值越大,说明同一帧内节点的人体整体运动越混乱。 [0045] 至此,得到每帧图像的各个节点的帧间相对运动变异度、帧间绝对运动变异度和每帧图像的帧内绝对运动变异度。 [0046] 第三步,将各个节点与旋转基础节点之间的肢体连线记为各个节点的肢体连线,根据相邻两帧图像的对应节点的人体肢体连线垂直旋转强度之间的差异与当前帧图像对应节点的帧间相对运动变异度的分布关系计算每帧图像各个节点的关节点姿态运动后验权重;根据每帧图像各个节点的帧间绝对运动变异度与每帧图像的帧内绝对运动变异度的分布关系计算每帧图像各个节点的人体整体运动后验权重。 [0047] 根据相邻两帧图像的对应节点的人体肢体连线垂直旋转强度之间的差异和当前帧图像对应节点的帧间相对运动变异度,计算关节点姿态运动后验权重和人体整体运动后验权重,反映每帧图像中各关节点姿态运动情况和人体整体的运动情况,具体计算过程为:将每帧图像各个节点与旋转基础节点之间的肢体连线记为各个节点的肢体连线,得到每帧图像各个节点的人体肢体连线垂直旋转强度; 计算每帧图像各个节点的人体肢体连线垂直旋转强度与前一帧图像对应节点的人体肢体连线垂直旋转强度之间的比值,记为第一比值; 计算每帧图像各个节点的帧间相对运动变异度与对应节点的第一比值的乘积,记为第一乘积; 其中,每帧图像各个节点的关节点姿态运动后验权重与所述第一乘积呈负相关关系; 计算每帧图像各个节点的帧间绝对运动变异度与每帧图像帧内绝对运动变异度之间的乘积,记为第二乘积; 其中,每帧图像各个节点的人体整体运动后验权重与所述第二乘积呈负相关关系。 [0048] 需要说明的是,负相关关系表示因变量会随着自变量的增大而减小,因变量会随着自变量的减小而增大,具体关系可以为相减关系、相除关系、负指数幂等,由实际应用进行确定,本申请不做特殊限制。 [0049] 优选的,作为本申请的一个实施例,将以自然常数为底数,以第一乘积的相反数为指数的指数函数的计算结果作为每帧图像各个节点的关节点姿态运动后验权重;将以自然常数为底数,以第二乘积的相反数为指数的指数函数的计算结果作为每帧图像各个节点的人体整体运动后验权重。 [0050] 需要说明的是,帧间相对运动变异度越大,关节点姿态运动越混乱,对应的关节点姿态运动后验权重值越低;关节点姿态运动后验权重是权衡相邻两帧图像的关节点姿态运动的权重,对应帧的人体肢体连线垂直旋转强度越高,其姿态运动造成的位置变化受垂直旋转的影响越大,而本实施例预测时使用的是平面图片信息,因此垂直旋转影响越大对应帧的后验信息越不能准确体现出人体的姿态,其权重应该越低,对应的关节点姿态运动后验权重值越低。 [0051] 其中,帧间绝对运动变异度越大,人体整体运动越混乱,对应的人体整体运动后验权重值越低;帧内绝对运动变异度越大,帧内各个关节节点表征的人体整体的运动情况越混乱,对应的此时的人体整体运动后验权重越低。 [0052] 最终通过指数函数进行数值调整,获得关节点姿态运动后验权重和人体整体运动后验权重,其值越小说明对应时刻的后验信息可信度越低,在预测人体运动时权重越低。 [0053] 至此,得到每帧图像各个节点的关节点姿态运动后验权重和人体整体运动后验权重。 [0054] 第四步,根据相邻两帧图像各个节点的人体关节相对运动向量的关节点姿态运动后验权重分配差异和绝对运动向量的人体整体运动后验权重分配差异计算每帧图像各个节点的人体关节点预测运动向量。 [0055] 根据每帧图像与其相邻前一帧图像中各个节点的人体关节相对运动向量与对应的关节点姿态运动后验权重计算每帧图像各个节点的关节点姿态运动预测运动向量,计算公式为: ,其中, 是第n帧图像第m个节点的关节点姿态运动预测运动向量, 是第n帧图像第m个节点的人体关节相对运动向量,βjm,n是第n帧图像第m个节点的关节点姿态运动后验权重, 是第n‑1帧图像第m个节点的关节点姿态运动预测运动向量; 根据每帧图像与其相邻前一帧图像中各个节点的绝对运动向量与对应的人体整体运动后验权重计算每帧图像各个节点的人体整体运动预测运动向量,计算公式为: ,其中, 是第n帧图像第m个节 点的人体整体运动预测运动向量, 是第n帧图像第m个节点的绝对运动向量,βbm,n是第n帧图像第m个节点的人体整体运动后验权重, 分别是第n‑1帧第m个节点的人体整体运动预测运动向量; 进一步,所述关节点姿态运动预测运动向量和所述人体整体运动预测运动向量分别与每帧图像各个节点的人体关节点预测运动向量呈正相关关系。 [0056] 优选的,作为本申请的一个实施例,将所述关节点姿态运动预测运动向量和所述人体整体运动预测运动向量的求和向量,得到的向量作为每帧图像各个节点的人体关节点预测运动向量。 [0057] 基于上述分析,通过上一帧的运动向量,结合对应的权重,采用移动指数平均的方式得到本帧的人体关节点预测运动向量。由于其中将人体节点模型的运动方式分解为了关节点姿态运动和人体整体运动,并通过对运动状态的分析设置动态的后验信息权重,能够比一般的移动指数平均方式更好的预测人体节点模型的运动轨迹,进而在肢体遮挡时能获得更精确的人体节点模型。 [0058] 至此,得到每帧图像各个节点的人体关节点预测运动向量。 [0059] 第五步,根据每帧图像与窗口内所有图像的对应节点的肢体连线中点到其它节点对应的肢体连线中点的欧式距离的和之间的比值关系,计算每帧图像各个节点的人体模型关节点修正位置卡尔曼增益。 [0060] 通过最后一帧图像与之前的所有图像对应节点的肢体连线中点到其它节点对应的肢体连线中点的欧式距离的比值关系,计算人体模型关节点修正位置卡尔曼增益:,其中,βfm,n是第n帧图像第m个节点 的人体模型关节点修正位置卡尔曼增益,tanh[.]是对括号中的数值取双曲正切函数,G是先验图像数量,M是人体节点数量,δ(m,h)n是第n帧图像第m个节点对应的肢体连线中点到第h个节点对应的肢体连线中点的欧式距离,δ(m,h)r是第n帧图像窗口内的第r帧图像第m个节点对应的肢体连线中点到第h个节点对应的肢体连线中点的欧式距离。 [0061] 进一步,第n帧图像第m个节点对应的肢体连线中点到其它节点对应的肢体连线中点的欧式距离与第n帧图像窗口内的所有图像的第m个节点对应的肢体连线中点到其它节点对应的肢体连线中点欧式距离的和之间的比值,该比值越小则说明第n帧图像第m个节点相对于之前的图像模型的肢体连线分布越舒张,第m个节点局部越不可能出现肢体遮挡现象,越不应该依赖预测状态,卡尔曼增益应该越小。 [0062] 最终通过双曲正切函数进行数值调整,获得人体模型关节点修正位置卡尔曼增益,第n帧图像第m个节点局部越不可能出现肢体遮挡现象,越不应该依赖预测状态,对应的卡尔曼增益越小。 [0063] 进进一步,本申请的一个实施例中,在出现肢体遮挡时,人体模型关节点修正位置的节点模型图如图4所示。 [0064] 至此,得到每帧图像各个节点的人体模型关节点修正位置卡尔曼增益。 [0065] 第六步,根据每帧图像的前一帧图像中各节点的关节点姿态运动预测运动向量以及每帧图像各个节点的实际测量位置坐标向量与其前一帧图像对应节点的人体模型关节点修正位置差值,计算每帧图像各个节点的人体模型关节点修正位置。 [0066] 根据关节点姿态运动预测运动向量及人体模型关节点修正位置卡尔曼增益计算修正人体关节点运动向量,表达式为:,其中, 是第n帧图像第m个节 点的修正人体关节点运动向量, 是第n‑1帧图像第m个节点的关节点姿态运动预测运动向量,βfm,n是第n帧图像第m个节点的人体模型关节点修正位置卡尔曼增益, 是第n帧图像第m个节点的实际测量位置坐标向量, 是第n‑1帧图像第m个节点的人体模型关节点修正位置; 基于所述修正人体关节点运动向量确定每帧图像各个节点的人体模型关节点修正位置;所述人体模型关节点修正位置计算公式为: ,其中, 是第n帧图像第m个节点的人体模型关节点修正位置。 [0067] 基于上述分析,用人体关节点预测运动向量作为预测状态,人体模型关节点修正位置卡尔曼增益作为权重,结合实际测量位置坐标向量和n‑1帧的人体模型关节点修正位置,得到n帧的人体模型关节点修正位置,完成对人体肢体遮挡下的人体模型关节点修正。由于采用了卡尔曼滤波法,能够消除因为人体肢体带来的人体模型关节点异常,得到更好的动作捕捉效果。 [0068] 至此,得到每帧图像各个节点的人体模型关节点修正位置。 [0069] 第七步,基于每帧图像各个节点的人体模型关节点修正位置,获得修正后的人体节点模型图,完成基于动作捕捉技术的数字人驱动。 [0070] 根据人体模型关节点修正位置的计算方法,获得第n帧图像的M个节点的位置坐标向量,在对应的图像上进行标注得到修正的人体节点模型图。 [0071] 进一步在数字人三维模型上设置对应的M个关节点,使第n帧的数字人三维模型的关节点和第n帧修正后的人体节点模型图重合,对数字人三维模型进行驱动,完成基于动作捕捉技术的数字人驱动。 [0072] 基于与上述方法相同的发明构思,本申请实施例还提供了一种基于动作捕捉技术的数字人驱动系统,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种基于动作捕捉技术的数字人驱动方法中任意一项所述方法的步骤。 [0073] 应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。 |