CN113345061A - 动作补全模型的训练方法、装置、补全方法、设备和介质 - Google Patents

动作补全模型的训练方法、装置、补全方法、设备和介质 Download PDF

Info

Publication number
CN113345061A
CN113345061A CN202110890084.0A CN202110890084A CN113345061A CN 113345061 A CN113345061 A CN 113345061A CN 202110890084 A CN202110890084 A CN 202110890084A CN 113345061 A CN113345061 A CN 113345061A
Authority
CN
China
Prior art keywords
frame
joint points
preset
vector
joint
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.)
Granted
Application number
CN202110890084.0A
Other languages
English (en)
Other versions
CN113345061B (zh
Inventor
何雨龙
唐浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Tishi infinite Technology Co.,Ltd.
Original Assignee
Chengdu Tishi Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Tishi Technology Co ltd filed Critical Chengdu Tishi Technology Co ltd
Priority to CN202110890084.0A priority Critical patent/CN113345061B/zh
Publication of CN113345061A publication Critical patent/CN113345061A/zh
Application granted granted Critical
Publication of CN113345061B publication Critical patent/CN113345061B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供了一种动作补全模型的训练方法、装置、补全方法、设备和介质,模型的训练方法包括:采集大量人体运动的原始动作数进行预处理得到数据集,通过数据集对动作补全神经网络模型进行训练和优化得到训练好的动作补全神经网络模型。基于训练好的动作补全神经网络模型能够预测和计算自动生成大量动作过渡帧的数据,适合生成时间长、过渡帧帧数多、动作复杂的场景,且生成的过渡帧动作真实,减少了原本插值方案所需的人力成本,提升了项目质量,缩短了项目周期。本申请提供的模型训练装置、动作补全方法、计算机设备和计算机可读存储介质,均具有上述有益效果。

Description

动作补全模型的训练方法、装置、补全方法、设备和介质
技术领域
本申请涉及神经网络模型训练领域,特别涉及一种动作补全模型的训练方法、装置、补全方法、设备和介质。
背景技术
在三维动画或游戏等应用中,三维虚拟形象都是通过动画数据进行驱动,形成走路、跑步、跳跃、舞蹈等各种动作。动画数据可以通过动画师手工制作,或者通过动作捕捉设备获取。动作捕捉设备捕获的动画数据很多时候无法直接使用,往往在某些不满意的动作片段,还需要经过动画师的手工修改。因此在这两种情况,都需要动画师的手工编辑。
在动画师使用动画软件时,会编辑或修改若干个关键帧,并指定前后相关的若干个关键帧,通过动画软件自带的数学插值方法,生成中间指定帧数目的过渡帧,从而得到一段平滑的动作序列组。但是,这种方式只适用于生成时间短、过渡帧数少、动作简单的动作过渡。而在实际生产过程中,动画师不得不编辑或修改大量的关键帧,如果关键帧数量太少,时间间隔太短,或者动作过于复杂,插值方法会得到不真实、不合理的过渡序列。使用现有方案,会非常依赖动画师的技术和经验,进而增加了人力成本;由于容易出现不合理的过渡序列,又因为动画师等人员的技术水平参差不齐,导致项目质量也会受到影响;同时,由于需要调试和编辑大量关键帧,也会大大增加项目周期。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前亟需解决的问题。
发明内容
本申请的目的是提供一种动作补全模型的训练方法、动作补全方法、动作补全模型的训练装置、计算机设备和计算机可读存储介质,能够处理复杂的、高频快速的动作补全,且补全的动作真实、丰富。具体方案如下:
本申请提供一种动作补全模型的训练方法,包括:
S101:采集大量人体运动的原始动作数据,并根据预设所有关节点对应父节点列表和预设所有关节点相对于对应父节点的标准骨骼偏移值列表进行数据预处理,得到除第一帧以外每一帧的所有关节点的6D旋转向量、所有关节点的速度向量、四维布尔向量和所有关节点的3D空间坐标作为数据集,将数据集分为训练集和验证集;
S102:建立动作补全模型,设置标准差值为预设标准差值;
S103:从训练集中提取预设批次数量个动作数据批次作为动作补全模型的输入数据,输入动作补全模型得到动作补全模型的输出结果,每个动作数据批次包括预设组数个动作序列组,每个动作序列组包括过去帧、目标帧和S个过渡帧,其中S是预设采样范围值内的预设组数个均匀采样值;
S104:根据动作补全模型的输入数据和输出结果计算每个动作序列组中***的总损失项,并根据***的总损失项对动作补全模型进行优化,得到训练好的动作补全模型。
优选的,所述S101包括:
获取原始动作数据中每一帧的Hips关节点的3D空间坐标、所有关节点的欧拉角,将每一帧的所有关节点的欧拉角进行数据格式转换,得到每一帧的所有关节点的旋转矩阵;
将每一帧的所有关节点的旋转矩阵保留前两个列向量并将其压缩为一个6维向量,得到每一帧的所有关节点的6D旋转向量;
根据每一帧的Hips关节点的3D空间坐标、每一帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到每一帧的所有关节点的3D空间坐标;
将除第一帧以外的每一帧的所有关节点的3D空间坐标减去该帧对应的上一帧的所有关节点的3D空间坐标得到差值后再乘以动画帧率,得到除第一帧以外的每一帧的所有关节点的速度向量;
读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度向量,分别判断每个预设关节点的速度向量与预设速度向量的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度判断布尔值,将其拼接得到除第一帧以外的每一帧的第一布尔向量;
读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的3D空间坐标,分别判断每个预设关节点的y坐标值与预设长度值的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的距离判断布尔值,将其拼接得到除第一帧以外的每一帧的第二布尔向量;
将除第一帧以外的每一帧的第一布尔向量和第二布尔向量进行与运算,得到除第一帧以外的每一帧的四维布尔向量,
保存除第一帧以外的每一帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量和四维布尔向量作为数据集,其中划分第一预设比例的数据集为训练集,划分第二预设比例的数据集为测试集。
优选的,所述S102中的动作补全模型,包括:第一映射子网络、第二映射子网络、第三映射子网络、门控神经网络和128个专家神经网络EPi,其中第一映射子网络、第二映射子网络和第三映射子网络构成了一个编码***,将动作状态量编码到768维的隐向量上,门控神经网络接收隐向量并做出决策,选择不同的专家神经网络EPi以及对应的权重做隐向量计算的加权融合,专家神经网络EPi对隐向量进行计算得到下一帧的动作状态增量。
优选的,所述S103包括:
S1031:指定过去帧为当前帧,获取当前帧距离目标帧的距离帧数,初始化过渡帧编号k=1;
S1032:提取当前帧的所有关节点的6D旋转向量、当前帧的所有关节点的速度向量和当前帧的四维布尔向量拼接成第一输入向量,输入动作补全模型的第一映射子网络,输出第一输出向量Cs;
S1033:提取目标帧的所有关节点的3D空间坐标和所有关节点的6D旋转向量,将目标帧的所有关节点的3D空间坐标减去当前帧的所有关节点的3D空间坐标得到第一偏移向量,将目标帧的所有关节点的6D旋转向量减去当前帧的所有关节点的6D旋转向量得到第二偏移向量,将第一偏移向量和第二偏移向量拼接成第二输入向量,输入动作补全模型的第二映射子网络,输出第二输出向量Co;
S1034:提取目标帧的所有关节点的6D旋转向量作为第三输入向量,输入动作补全模型的第三映射子网络,输出第三输出向量Ct;
S1035:将第一输出向量Cs、第二输出向量Co和第三输出向量Ct拼接成向量D,将向量D输入动作补全模型的门控神经网络,门控神经网络输出128个权重Wi,权重Wi在0到1之间,对应128个专家神经网络EPi,若权重为0则冻结对应的专家神经网络EPi,若权重不为0则激活对应的专家神经网络EPi;
S1036:将向量D、距离帧数和标准差分别输入激活的专家神经网络EPi,输出每个专家网络计算的姿态增量Ti,i=0,1,2,...127,Ti乘以权重Wi得到每个专家网络计算的加权姿态增量Mi,将每个专家网络计算的加权姿态增量Mi相加得到第k个过渡帧计算的姿态增量Tk并保存,将距离帧数减1,过渡帧编号k=k+1;
S1037:若距离帧数大于0,则指定下一个过渡帧为当前帧,返回S1032,若距离帧数为0,则进入S1038;
S1038:将得到的S个过渡帧的姿态增量Tk进行拼接得到动作序列组中所有过渡帧的结果T,即动作补全模型的输出结果。
优选的,所述S104包括:
S1041:从所有过渡帧的结果T中得到动作补全模型预测的所有过渡帧的所有关节点的6D旋转向量增量、预测的所有过渡帧的Hips关节点的3D空间坐标增量和预测的所有过渡帧的四维布尔向量;
S1042:将预测的所有过渡帧的所有关节点的6D旋转向量增量加上动作序列组中对应的上一帧的所有关节点的6D旋转向量,得到预测的所有过渡帧的所有关节点的6D旋转向量,计算预测的所有过渡帧的所有关节点的6D旋转向量和动作序列组中对应过渡帧的所有关节点的6D旋转向量之间差值的2范数,得到第一损失项;
S1043:将预测的所有过渡帧的Hips关节点的3D空间坐标增量加上动作序列组中对应的上一帧的Hips关节点的3D空间坐标,得到预测的所有过渡帧的Hips关节点的3D空间坐标;
将预测的所有过渡帧的所有关节点的6D旋转向量的前3个值作为向量x,后3个值作为向量y,将向量x进行标准化得到更新的向量x,对向量y和更新的向量x求叉积得到向量z,将向量z进行标准化得到更新的向量z,将更新的向量z和更新的向量x求叉积得到更新的向量y,将更新的向量x、更新的向量y、更新的向量z分别作为三维方阵的列向量,得到预测的所有过渡帧的所有关节点的旋转矩阵;
根据预测的所有过渡帧的Hips关节点的3D空间坐标、预测的所有过渡帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到预测的所有过渡帧的所有关节点的3D空间坐标;
计算预测的所有过渡帧的所有关节点的3D空间坐标和动作序列组中对应的过渡帧的所有关节点的3D空间坐标之间差值的2范数,得到第二损失项;
S1044:计算预测的过渡帧的四维布尔向量和动作序列组中对应过渡帧的四维布尔向量之间差值的2范数,得到第三损失项;
S1045:在动作序列组中,将每个专家神经网络EPi的不同样本的权重Wi进行求和,得到该动作序列组中每个专家神经网络EPi的重要度,根据128个专家神经网络EPi的重要度计算出其方差的平方,得到第四损失项;
S1046:将第一损失项、第二损失项、第三损失项和第四损失项相加,得到总损失项,根据总损失项使用预设优化器进行动作补全模型的神经网络参数的优化,通过所述验证集对动作补全模型进行验证,选择使所述验证集的损失函数收敛且损失最低时的神经网络参数作为训练好的动作补全模型的神经网络参数。
本申请还提供一种动作补全方法,包括:
S201:获取待补全动作数据的目标帧、至少两个过去帧、动画帧率、标准差、待补全动作帧数,根据预设所有关节点对应父节点列表和预设所有关节点相对于对应父节点的标准骨骼偏移值列表进行数据预处理,得到当前帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量、以及目标帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标;
S202:加载训练好的动作补全模型,输入动画帧率和标准差,所述训练好的动作补全模型为上述的动作补全模型的训练方法训练得出;
S203:将当前帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量、以及目标帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标进行数据拼接,得到第一输入向量、第二输入向量和第三输入向量;
S204:将第一输入向量、第二输入向量、第三输入向量和待补全动作帧数输入训练好的动作补全模型,输出预测的所有过渡帧的所有关节点的6D旋转向量增量、所有过渡帧的Hips关节点的3D空间坐标增量;
S205:将预测的所有过渡帧的所有关节点的6D旋转向量增量加上当前帧的所有关节点的6D旋转向量得到下一个过渡帧的所有关节点的6D旋转向量并保存,将预测的所有过渡帧的Hips关节点的3D空间坐标增量加上当前帧的Hips关节点的3D空间坐标得到下一个过渡帧的Hips关节点的3D空间坐标并保存,将待补全动作帧数减1;
S206:若待补全动作帧数大于0,则根据下一个过渡帧的所有关节点的6D旋转向量计算得到当前帧的所有关节点的旋转矩阵,根据下一个过渡帧的Hips关节点的3D空间坐标和当前帧的所有关节点的旋转矩阵计算得到当前帧的所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量,返回S203,若待补全动作帧数等于0,则进入S207;
S207:得到每一个过渡帧的所有关节点的6D旋转向量和Hips关节点的3D空间坐标,将每一个过渡帧的所有关节点的6D旋转向量转换为预设数据格式,即得到所有过渡帧的动作补全数据。
本申请还提供一种动作补全模型的训练装置,包括:
训练数据获取模块,用于采集大量人体运动的原始动作数据,并根据预设所有关节点对应父节点列表和预设所有关节点相对于对应父节点的标准骨骼偏移值列表进行数据预处理,得到除第一帧以外每一帧的所有关节点的6D旋转向量、所有关节点的速度向量、四维布尔向量和所有关节点的3D空间坐标作为数据集,将数据集分为训练集和验证集;
网络模型建立模块,用于建立动作补全模型,设置标准差值为预设标准差值;
网络模型训练模块,用于从训练集中提取预设批次数量个动作数据批次作为动作补全模型的输入数据,输入动作补全模型得到动作补全模型的输出结果,每个动作数据批次包括预设组数个动作序列组,每个动作序列组包括过去帧、目标帧和S个过渡帧,其中S是预设采样范围值内的预设组数个均匀采样值;
网络模型优化模块,用于根据动作补全模型的输入数据和输出结果计算每个动作序列组中***的总损失项,并根据***的总损失项对动作补全模型进行优化,得到训练好的动作补全模型。
优选的,所述训练数据获取模块包括:
旋转矩阵获取单元,用于获取原始动作数据中每一帧的Hips关节点的3D空间坐标、所有关节点的欧拉角,将每一帧的所有关节点的欧拉角进行数据格式转换,得到每一帧的所有关节点的旋转矩阵;
旋转向量获取单元,用于将每一帧的所有关节点的旋转矩阵保留前两个列向量并将其压缩为一个6维向量,得到每一帧的所有关节点的6D旋转向量;
空间坐标获取单元,用于根据每一帧的Hips关节点的3D空间坐标、每一帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到每一帧的所有关节点的3D空间坐标;
速度向量获取单元,用于将除第一帧以外的每一帧的所有关节点的3D空间坐标减去该帧对应的上一帧的所有关节点的3D空间坐标得到差值后再乘以动画帧率,得到除第一帧以外的每一帧的所有关节点的速度向量;
布尔向量获取单元,用于读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度向量,分别判断每个预设关节点的速度向量与预设速度向量的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度判断布尔值,将其拼接得到除第一帧以外的每一帧的第一布尔向量;读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的3D空间坐标,分别判断每个预设关节点的y坐标值与预设长度值的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的距离判断布尔值,将其拼接得到除第一帧以外的每一帧的第二布尔向量;将除第一帧以外的每一帧的第一布尔向量和第二布尔向量进行与运算,得到除第一帧以外的每一帧的四维布尔向量,
数据集划分单元,用于保存除第一帧以外的每一帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量和四维布尔向量作为数据集,其中划分第一预设比例的数据集为训练集,划分第二预设比例的数据集为测试集。
本申请还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述动作补全模型的训练方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述动作补全模型的训练方法的步骤。
本申请提供一种动作补全模型的训练方法,包括:采集大量人体运动的原始动作数据经预处理得到训练集和验证集,建立动作补全模型,提取训练集的数据构成动作数据批次输入模型进行模型训练,同时计算每个动作序列组中模型的总损失项并根据模型的总损失项对模型进行优化,得到训练好的动作补全模型。
可见,本申请通过采集大量人体运动的原始动作数进行预处理得到数据集,通过数据集对动作补全模型进行训练和优化得到训练好的动作补全模型的方法,基于训练好的动作补全模型能够预测和计算自动生成大量动作过渡帧的数据,适合生成时间长、过渡帧帧数多、动作复杂的场景,且生成的过渡帧动作真实,减少了原本插值方案所需的人力成本,提升了项目质量,缩短了项目周期。本申请同时还提供了一种动作补全方法、动作补全模型的训练装置、计算机设备和计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种动作补全模型的训练方法的流程图;
图2为本申请实施例提供的一种动作补全模型的结构示意图;
图3为本申请实施例提供的一种第一映射子网络的结构示意图;
图4为本申请实施例提供的一种第二映射子网络的结构示意图;
图5为本申请实施例提供的一种第三映射子网络的结构示意图;
图6为本申请实施例提供的一种门控神经网络的结构示意图;
图7为本申请实施例提供的一种专家神经网络的结构示意图;
图8为本申请实施例提供的一种动作补全方法的流程图;
图9为本申请实施例提供的一种数据预处理方法的流程图;
图10为本申请实施例提供的一种动作补全模型的训练装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在三维动画或游戏等应用中,三维虚拟形象都是通过动画数据进行驱动,形成走路、跑步、跳跃、舞蹈等各种动作。动画数据可以通过动画师手工制作,或者通过动作捕捉设备获取。动作捕捉设备捕获的动画数据很多时候无法直接使用,往往在某些不满意的动作片段,还需要经过动画师的手工修改。因此在这两种情况,都需要动画师的手工编辑。在动画师使用动画软件时,会编辑或修改若干个关键帧,并指定前后相关的若干个关键帧,通过动画软件自带的数学插值方法,生成中间指定帧数目的过渡帧,从而得到一段平滑的动作序列组。但是,这种方式只适用于生成时间短、过渡帧数少、动作简单的动作过渡。而在实际生产过程中,动画师不得不编辑或修改大量的关键帧,如果关键帧数量太少,时间间隔太短,或者动作过于复杂,插值方法会得到不真实、不合理的过渡序列。使用现有方案,会非常依赖动画师的技术和经验,进而增加了人力成本;由于容易出现不合理的过渡序列,又因为动画师等人员的技术水平参差不齐,导致项目质量也会受到影响;同时,由于需要调试和编辑大量关键帧,也会大大增加项目周期。
基于上述问题,本实施例提供一种动作补全模型的训练方法,通过采集大量人体运动的原始动作数进行预处理得到数据集,通过数据集对动作补全模型进行训练和优化得到训练好的动作补全模型的方法,基于训练好的动作补全模型能够预测和计算自动生成大量动作过渡帧的数据,适合生成时间长、过渡帧帧数多、动作复杂的场景,且生成的过渡帧动作真实,减少了原本插值方案所需的人力成本,提升了项目质量,缩短了项目周期,具体请参考图1,图1为本申请实施例提供的一种动作补全模型的训练方法的流程图,具体包括:
S101:采集大量人体运动的原始动作数据,并根据预设所有关节点对应父节点列表和预设所有关节点相对于对应父节点的标准骨骼偏移值列表进行数据预处理,得到除第一帧以外每一帧的所有关节点的6D旋转向量、所有关节点的速度向量、四维布尔向量和所有关节点的3D空间坐标作为数据集,将数据集分为训练集和验证集。
其中,本实施例并不限定采集人体运动的原始动作数据的方式,只要能够采集到满足本实施例需求的动作数据都是可以的。例如,可以通过Vicon动捕设备采集大量人体运动的动作数据,其中预设人体骨骼的关节点数目为33个,帧率为25FPS。
具体的关节点包括:{0, Hips}、{1, Spine}、{2, Spine1}、{3, Spine2}、{4,Spine3}、{5, Neck}、{6, Neck1}、{7, Head}、{8, HeadEnd}、{9, RightShoulder}、{10,RightArm}、{11, RightForeArm}、{12, RightHand}、{13, RightHandThumb}、{14,RightHand每个专家网络计算的加权姿态增量Middle}、{15, LeftShoulder}、{16,LeftArm}、{17, LeftForeArm}、{18, LeftHand}、{19, LeftHandThumb}、{20, LeftHand每个专家网络计算的加权姿态增量Middle}、{21, RightUpLeg}、{22, RightLeg}、{23,RightFoot}、{24, RightForeFoot}、{25, RightToeBase}、{26, RightToeBaseEnd}、{27,LeftUpLeg}、{28, LeftLeg}、{29, LeftFoot}、{30, LeftForeFoot}、{31, LeftToeBase}、{32, LeftToeBaseEnd}。其中,括号中前面的数据是关节点的序号,后面的英文是关节点的名称。
每个关节点的旋转轴为:{0, {X,Y,Z}}、{1, {X,Y,Z}}、{2, {X,Y,Z}}、{3, {X,Y,Z}}、{4, {X,Y,Z}}、{5, {X,Y,Z}}、{6, {X,Y,Z}}、{7, {X,Y,Z}}、{8, {}}、{9, {X,Z}}、{10, {X,Y,Z}}、{11, {X,Y}}、{12, {X,Z}}、{13, {}}、{14, {}}、{15, {X,Z}}、{16, {X,Y,Z}}、{17, {X,Y}}、{18, {X,Z}}、{19, {}}、{20, {}}、{21, {X,Y,Z}}、{22, {X}}、{23,{X,Y,Z}}、{24, {}}、{25, {X}}、{26, {}}、{27, {X,Y,Z}}、{28, {X}}、{29, {X,Y,Z}}、{30, {}}、{31, {X}}、{32, {}}。其中,0-32代表关节点的序号,X、Y、Z分别表示X轴、Y轴和Z轴。
预设所有关节点对应父节点列表为:{0, {}}、{1, {0}}、{2, {1}}、{3, {2}}、{4,{3}}、{5, {4}}、{6, {5}}、{7, {8}}、{8, {7}}、{9, {4}}、{10, {9}}、{11, {10}}、{12,{11}}、{13, {12}}、{14, {12}}、{15, {4}}、{16, {15}}、{17, {16}}、{18, {17}}、{19,{18}}、{20, {18}}、{21, {0}}、{22, {21}}、{23, {22}}、{24, {23}}、{25, {24}}、{26,{25}}、{27, {0}}、{28, {27}}、{29, {28}}、{30, {29}}、{31, {30}}、{32, {31}}。其中,外括号中前面的数字0-32代表关节点的序号,内括号中的数字代表该关节点对应的父节点的序号。
预设所有关节点相对于对应父节点的标准骨骼偏移值列表为:{1, {0.0,10.973504172820446,-1.8905411922178885}}、{2, {0.0,9.839155069029879,0.0}}、{3,{0.0,9.839155069029879,0.0}}、{4, {0.0,9.839155069029879,0.0}}、{5, {0.0,12.650342231609844,1.2650342231609846}}、{6, {0.0,5.627352749797471,0.0}}、{7,{0.0,5.627352749797471,0.0}}、{8, {0.0,9.727720099469252,0.0}}、{9, {0.0,9.035958736864172,7.079303955478363}}、{10, {0.0,18.540949701045772,0.0}}、{11,{0.0,28.886655990727327,0.0}}、{12, {0.0,22.323240911467128,0.0}}、{13, {-3.0643109737346546,3.252690113828508,2.418667007718634}}、{14, {0.0,8.673840303542688,-0.055601540407324915}}、{15, {0.0,9.035958736864172,7.079303955478363}}、{16, {0.0,18.540949701045772,0.0}}、{17, {0.0,28.886655990727327,0.0}}、{18, {0.0,22.323240911467128,0.0}}、{19,{3.0643109737346546,3.252690113828508,2.418667007718634}}、{20, {0.0,8.673840303542688,-0.055601540407324915}}、{21, {-9.336602969020769,0.0,0.0}}、{22, {0.0,-41.79405063115827,0.0}}、{23, {0.0,-39.71819658810898,0.0}}、{24,{0.0,-3.5319294628875477,0.0}}、{25, {0.0,0.0,13.83215668621111}}、{26, {0.0,0.0,7.599936005436189}}、{27, {9.336602969020769,0.0,0.0}}、{28, {0.0,-41.79405063115827,0.0}}、{29, {0.0,-39.71819658810898,0.0}}、{30, {0.0,-3.5319294628875477,0.0}}、{31, {0.0,0.0,13.83215668621111}}、{32, {0.0,0.0,7.329371066117648}}。其中,外括号中前面的数字1-32代表关节点的序号,内括号中的数据代表标准骨骼偏移值,是一个三维向量。
在一种可实现的实施方式中,步骤S101的方法包括:
S1011:获取原始动作数据中每一帧的Hips关节点的3D空间坐标、所有关节点的欧拉角,将每一帧的所有关节点的欧拉角进行数据格式转换,得到每一帧的所有关节点的旋转矩阵。
其中,原始动作数据包括每一帧的Hips关节点(根节点)的3D空间坐标、所有关节点的欧拉角,即旋转用欧拉角表示。可以使用scipy数学工具库将欧拉角数据转换为旋转矩阵。
S1012:将每一帧的所有关节点的旋转矩阵保留前两个列向量并将其压缩为一个6维向量,得到每一帧的所有关节点的6D旋转向量。
S1013:根据每一帧的Hips关节点的3D空间坐标、每一帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到每一帧的所有关节点的3D空间坐标。
S1014:将除第一帧以外的每一帧的所有关节点的3D空间坐标减去该帧对应的上一帧的所有关节点的3D空间坐标得到差值后再乘以动画帧率,得到除第一帧以外的每一帧的所有关节点的速度向量。
其中,由于第一帧数据没有前一帧数据,所以不能求解出第一帧的所有关节点的速度向量,因此只能获得除第一帧以外的每一帧的所有关节点的速度向量。
S1015:读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度向量,分别判断每个预设关节点的速度向量与预设速度向量的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度判断布尔值,将其拼接得到除第一帧以外的每一帧的第一布尔向量;读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的3D空间坐标,分别判断每个预设关节点的y坐标值与预设长度值的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的距离判断布尔值,将其拼接得到除第一帧以外的每一帧的第二布尔向量;将除第一帧以外的每一帧的第一布尔向量和第二布尔向量进行与运算,得到除第一帧以外的每一帧的四维布尔向量。
其中,预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点分别为RightForeFoot、RightToeBaseEnd、LeftForeFoot、LeftToeBaseEnd。这里不对预设速度向量进行限制,可以根据具体需要设置,例如可以设置为0.7m/s。这里不对预设长度值进行限制,可以根据具体需要设置,例如可以设置为5cm。具体的,根据当前帧的RightForeFoot、RightToeBaseEnd、LeftForeFoot、LeftToeBaseEnd关节点的速度向量,如果该关节点上速度向量大于等于0.7m/s,则速度判断布尔值赋值为0;如果小于0.7m/s,则速度判断布尔值赋值为1。将这四个关节点的布尔值拼接,即得到第一布尔向量。根据当前帧的RightForeFoot、RightToeBaseEnd、LeftForeFoot、LeftToeBaseEnd的3D空间坐标,如果该关节点上的y坐标大于等于5cm,则距离判断布尔值赋值为0;如果y坐标小于5cm,则距离判断布尔值赋值为1。将这四个关节点的距离判断布尔值拼接,即得到第二布尔向量,将除第一帧以外的每一帧的第一布尔向量和第二布尔向量进行与运算,得到除第一帧以外的每一帧的四维布尔向量。
S1016:保存除第一帧以外的每一帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量和四维布尔向量作为数据集,其中划分第一预设比例的数据集为训练集,划分第二预设比例的数据集为测试集。
其中,将数据集划分为训练集和验证集,其比例是训练集占80%,测试集占20%。
S102:建立动作补全模型,设置标准差值为预设标准差值。
其中,设置标准差值为预设标准差值,预设标准差值sigma=0.01,标准差值设置为0.01可以确保动作补全的变化性和多样性处于理想范围。
在一种可实现的实施方式中,图2为本申请实施例提供的一种动作补全模型的结构示意图,动作补全模型包括第一映射子网络E1、第二映射子网络E2、第三映射子网络E3、门控神经网络G和128个专家神经网络EPi,i=1,2,3,...128,其中第一映射子网络E1、第二映射子网络E2和第三映射子网络E3构成了一个编码***,将动作状态量编码到768维的隐向量上,门控神经网络G接收隐向量并做出决策,选择不同的专家神经网络EPi以及对应的权重做隐向量计算的加权融合,专家神经网络EPi对隐向量进行计算得到下一帧的动作状态增量,由此得到所有过渡帧的所有动作数据。
动作补全模型的功能包括:该***实现了根据过去帧和目标帧的动作数据,生成中间过渡帧的动作数据的功能。优点包括:***通过大型数据集和深度学***滑的。
具体的,图3、图4和图5分别为本申请实施例提供的第一映射子网络、第二映射子网络、第三映射子网络的结构,在所有神经网络结构中,中括号都表示数据维度,J表示关节点数目大小,本实施例中J=33。全连接层[m, n]是含参数的全连接层,其公式为:
Figure 294369DEST_PATH_IMAGE001
,其中,矩阵
Figure 742668DEST_PATH_IMAGE002
Figure 53563DEST_PATH_IMAGE003
是模型参数。带泄漏线性整流的公式为:
Figure 714352DEST_PATH_IMAGE004
,其中,λ=0.01。
第一映射子网络、第二映射子网络和第三映射子网络均包括全连接层和带泄漏线性整流。图3-图5都是一个从输入到输出的含参数、可学习的组合函数。功能为将动作输入数据映射到维度为256的隐空间上。工作原理为全连接层提供线性映射,带泄露线性整流提供非线性映射。其优点为有助于提取数据特征,有助于神经网络的模型训练。
具体的,图3中,输入数据[J*9+4]代表输入数据的维度为(J*9+4)维,其中J=33,输入向量的维度和模型的输入维度是匹配的,全连接层[J*9+4,1024]代表该全连接层将(J*9+4)维数据变换为1024维数据,全连接层[1024,256]代表该全连接层将1024维数据变换为256维数据,输出数据[256]代表输出的数据为维度为(256)的隐空间;图4中,输入数据[J*9]代表输入数据的维度为(J*9)维,其中J=33,输入向量的维度和模型的输入维度是匹配的,全连接层[J*9,1024]代表该全连接层将(J*9)维数据变换为1024维数据,全连接层[1024,256]代表该全连接层将1024维数据变换为256维数据,输出数据[256]代表输出的数据为维度为(256)的隐空间;图5中,输入数据[J*6]代表输入数据的维度为(J*6)维,其中J=33,输入向量的维度和模型的输入维度是匹配的,全连接层[J*6]代表该全连接层将(J*6)维数据变换为1024维数据,全连接层[1024,256]代表该全连接层将1024维数据变换为256维数据,输出数据[256]代表输出的数据为维度为(256)的隐空间;其中1024是深度学习里面常用的全连接层的宽度,是一个经验值,一般取2的指数,比如512,1024、2048之类的。其中1024是深度学习里面常用的全连接层的宽度,是一个经验值,一般取2的指数,比如512,1024、2048之类的。
图6为本申请实施例提供的一种门控神经网络的结构示意图,图6中噪音添加模块,其函数表示是:
Figure 309150DEST_PATH_IMAGE005
,其中,i表示每个向量的第i个元素;"StandardNormal" 表示均值为0,标准差为1的高斯噪声;Softplus的函数表示为:
Figure 397192DEST_PATH_IMAGE006
,符号表示向量的按元素加法。保留最大的K个值,在本实施例中过渡帧编号K=16,其函数表示是:
Figure 726542DEST_PATH_IMAGE007
,在归一化中,使用函数为Softmax:
Figure 738492DEST_PATH_IMAGE008
门控神经网络包括全连接层、噪音添加模块、保留最大的K个值、归一化。图8是一个从输入到输出的含参数、可学习的组合函数。功能包括:可学习的门控神经网络G,读取维度为768的隐空间上的动作特征,得到128个稀疏的(大多数的值为0)权重,这些权重分别对应128个不同的专家网络EPi。门控神经网络G用于学习和判断,该选择哪些专家网络进行后续的数据处理。工作原理为:在维度为768的隐空间上,用一个全连接层对输入进行线性变换,得到128个稀疏的权重。此外,还有一个并行的全连接层对输入进行线性变换,用于噪音添加。经过保留最大的K个值和归一化后,可以得到128个稀疏的权重,并保证所有分量加起来为1。其优势包括:基于“术业有专攻”的思想,针对不同的动作状态,选择不同的专家网络进行计算,该模块可以大大提升***的建模能力;由于角色动画存在很多复杂变化,该模块可以对不同动作变化进行消歧,进而有利于***的模型训练;由于不依赖于一个专家神经网络,而是使用混合专家模型,该模块可以帮助***提升鲁棒性。
图7为本申请实施例提供的一种专家神经网络的结构示意图,图7中加入位置信息 模块依赖于***输入s的取值,它的作用是添加维度大小为256的位置向量。已知函数
Figure 204108DEST_PATH_IMAGE009
Figure 728630DEST_PATH_IMAGE010
,取
Figure 748539DEST_PATH_IMAGE011
,生成位置向 量:
Figure 268906DEST_PATH_IMAGE012
,该模块的 作用定义为函数
Figure 323450DEST_PATH_IMAGE013
Figure 284453DEST_PATH_IMAGE014
,加入控制信息模块依赖于***输入s和sigma 的取值,其作用是添加维度大小为256的随机向量。对于均值为0,标准差为sigma的正态分 布,采样256个样本作为随机向量vr("sigma")。该模块的作用定义为函数
Figure 57237DEST_PATH_IMAGE015
Figure 614251DEST_PATH_IMAGE016
。专家神经网络的功能包括: 可学习的专家神经网络EPi,读取维度为768的隐空间上的动作特征,输出下一帧的动作状 态变化量。用该状态变化量加上当前帧的动作状态,就可以得到下一帧的动作状态。由此迭 代计算,可以得到补全的动作动画。工作原理为:加入位置信息模块通过引入距离目标帧的 帧数s,可以让***识别当前帧的位置,进而有助于模型训练的收敛。加入控制信息模块可 以通过用户设置sigma,在隐空间加入噪音,来控制补全动画的变化性。优点包括:该模块通 过接收隐空间的特征向量,自动补全合理动作数据帧;通过加入控制信息模块,使得***由 确定性***变为随机性***,使得用户可以生成不同的合理动作数据帧。加入控制信息模 块的设计,通过再隐向量中加入控制信息,使得***是一个随机性模型。采用该方法,可以 增加***生成动作的多样性。
具体的,图7中输入数据A、输入数据B和输入数据C分别为第一映射子网络、第二映射子网络和第三映射子网络的输出数据,全连接层[768,1024]代表该全连接层将768维数据变换为1024维数据,全连接层[1024,J*9+4] 代表该全连接层将1024维数据变换为(J*9+4)维数据,输出数据[J*6+7] 代表输出数据的维度为(J*6+7)维,J=33;其中1024是深度学习里面常用的全连接层的宽度,是一个经验值,一般取2的指数,比如512,1024、2048之类的。其中1024是深度学习里面常用的全连接层的宽度,是一个经验值,一般取2的指数,比如512,1024、2048之类的。
通过采用门控神经网络和专家神经网络技术,可以适用于大型动作捕捉数据集。***因此可以自动根据不同的动作状态,选择最适合的专家神经网络进行混合计算,有效提升了模型的鲁棒性和性能。
S103:从训练集中提取预设批次数量个动作数据批次作为动作补全模型的输入数据,输入动作补全模型得到动作补全模型的输出结果,每个动作数据批次包括预设组数个动作序列组,每个动作序列组包括过去帧、目标帧和S个过渡帧,其中S是预设采样范围值内的预设组数个均匀采样值。
其中,本实施例不对预设批次进行限定,也不对动作序列组方式进行限定,也不对预设采样范围值进行限定,提取训练集中的动作数据的方式可以根据具体要求进行设计。本实施例采取的预设数据提取方式可以为:将训练集的数据按照批次分为不同的动作序列组输入到动作补全模型,例如,根据数据集的数据量确定批次数量,每个批次包括32个动作序列组,每个动作序列组可以包括1个过去帧,S个过渡帧和1个目标帧,其中S可以是5到100的均匀采样值。训练时一个批次一个批次的输入模型进行模型训练。
具体的,进行神经网络前向运算,提取训练集的数据作为动作补全模型的输入,得到动作补全模型的输出。其中,提取数据集数据特征的方法包括:使用动作补全模型第一映射子网络E1、第二映射子网络E2和第三映射子网络E3,将三种动作输入数据分别映射到维度为256的隐空间上。第一输入向量表示当前帧的动作状态;第二输入向量表示当前帧动作状态与目标帧动作状态之间的偏差;第三输入向量表示目标帧的动作状态。
在一种可实现的实施方式中,步骤103的方法包括:
S1031:指定过去帧为当前帧,获取当前帧距离目标帧的距离帧数,初始化过渡帧编号k=1。
S1032:提取当前帧的所有关节点的6D旋转向量、当前帧的所有关节点的速度向量和当前帧的四维布尔向量拼接成第一输入向量,输入动作补全模型的第一映射子网络,输出第一输出向量Cs。
S1033:提取目标帧的所有关节点的3D空间坐标和所有关节点的6D旋转向量,将目标帧的所有关节点的3D空间坐标减去当前帧的所有关节点的3D空间坐标得到第一偏移向量,将目标帧的所有关节点的6D旋转向量减去当前帧的所有关节点的6D旋转向量得到第二偏移向量,将第一偏移向量和第二偏移向量拼接成第二输入向量,输入动作补全模型的第二映射子网络,输出第二输出向量Co。
S1034:提取目标帧的所有关节点的6D旋转向量作为第三输入向量,输入动作补全模型的第三映射子网络,输出第三输出向量Ct。
S1035:将第一输出向量Cs、第二输出向量Co和第三输出向量Ct拼接成向量D,将向量D输入动作补全模型的门控神经网络,门控神经网络输出128个权重Wi,权重Wi的值在0到1之间,对应128个专家神经网络EPi,若权重值为0则冻结对应的专家神经网络EPi,若权重值不为0则激活对应的专家神经网络EPi。
其中,通过门控神经网络G进行专家权重计算。将三种256维的第一输出向量Cs、第二输出向量Co和第三输出向量Ct拼接得到向量D,作为门控神经网络G的输入,输出得到稀疏的专家权重Wi。即门控神经网络G输出稀疏的不小于0的权重Wi,其维度大小为N=128。第一输出向量Cs代表:当前帧姿态信息的隐向量,第二向量Co代表:当前帧与目标帧偏移信息的隐向量,第三输出向量Ct代表:目标帧姿态信息的隐向量。
S1036:将向量D、距离帧数和标准差分别输入激活的专家神经网络EPi,输出每个专家网络计算的姿态增量Ti,i=0,1,2,...127,Ti乘以权重Wi得到每个专家网络计算的加权姿态增量Mi,将每个专家网络计算的加权姿态增量Mi相加得到第k个过渡帧计算的姿态增量Tk并保存,将距离帧数减1,过渡帧编号k=k+1。
其中,动作补全模型包括128个相同结构的专家神经网络EPi,权重的维度对应不同序号的专家神经网络EPi,若权重为0,则冻结对应的专家神经网络,若权重大于0,则激活专家神经网络。
使用128个专家神经网络EPi计算结果,根据上述稀疏的128个权重Wi,选择若干专家神经网络EPi进行加权计算,其输入的数据是向量D,最终得到结果第k个过渡帧计算的姿态增量Tk每一次计算会得到一个第k个过渡帧计算的姿态增量Tk,过渡帧编号k=1,2,...S。
S1037:若距离帧数大于0,则指定下一个过渡帧为当前帧,返回S1032,若距离帧数为0,则进入S2038;
其中,步骤S1023-S1027为一帧过渡帧的结果,重复执行S次S1023-S1027求解出S个第k个过渡帧计算的姿态增量Tk。
S1038:将得到的S个过渡帧的姿态增量Tk进行拼接得到动作序列组中所有过渡帧的结果T,即动作补全模型的输出结果。
S104:根据动作补全模型的输入数据和输出结果计算每个动作序列组中***的总损失项,并根据***的总损失项对动作补全模型进行优化,得到训练好的动作补全模型。
在一种可实现的实施方式中,步骤S104的方法包括:
S1041:从所有过渡帧的结果T中得到动作补全模型预测的所有过渡帧的所有关节点的6D旋转向量增量、预测的所有过渡帧的Hips关节点的3D空间坐标增量和预测的所有过渡帧的四维布尔向量。
其中,获得所有过渡帧的结果T可以划分为动作补全模型预测的所有过渡帧的所有关节点的6D旋转向量增量、预测的所有过渡帧的Hips关节点的3D空间坐标增量和预测的所有过渡帧的四维布尔向量。
S1042:将预测的所有过渡帧的所有关节点的6D旋转向量增量加上动作序列组中对应的上一帧的所有关节点的6D旋转向量,得到预测的所有过渡帧的所有关节点的6D旋转向量,计算预测的所有过渡帧的所有关节点的6D旋转向量和动作序列组中对应过渡帧的所有关节点的6D旋转向量之间差值的2范数,得到第一损失项。
S1043:将预测的所有过渡帧的Hips关节点的3D空间坐标增量加上动作序列组中对应的上一帧的Hips关节点的3D空间坐标,得到预测的所有过渡帧的Hips关节点的3D空间坐标;
将预测的所有过渡帧的所有关节点的6D旋转向量的前3个值作为向量x,后3个值作为向量y,将向量x进行标准化得到更新的向量x,对向量y和更新的向量x求叉积得到向量z,将向量z进行标准化得到更新的向量z,将更新的向量z和更新的向量x求叉积得到更新的向量y,将更新的向量x、更新的向量y、更新的向量z分别作为三维方阵的列向量,得到预测的所有过渡帧的所有关节点的旋转矩阵;根据预测的所有过渡帧的Hips关节点的3D空间坐标、预测的所有过渡帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到预测的所有过渡帧的所有关节点的3D空间坐标。计算预测的所有过渡帧的所有关节点的3D空间坐标和动作序列组中对应的过渡帧的所有关节点的3D空间坐标之间差值的2范数,得到第二损失项;
S1044:计算预测的过渡帧的四维布尔向量和动作序列组中对应过渡帧的四维布尔向量之间差值的2范数,得到第三损失项;
S1045:在动作序列组中,将每个专家神经网络EPi的不同样本的权重Wi进行求和,得到该动作序列组中每个专家神经网络EPi的重要度,根据128个专家神经网络EPi的重要度计算出其方差的平方,得到第四损失项;
S1046:将第一损失项、第二损失项、第三损失项和第四损失项相加,得到总损失项,根据总损失项使用预设优化器进行动作补全模型的神经网络参数的优化,通过所述验证集对动作补全模型进行验证,选择使所述验证集的损失函数收敛且损失最低时的神经网络参数作为训练好的动作补全模型的神经网络参数。
其中,在每个批次的动作序列组的迭代中,根据总损失项,可以使用Adam优化器进行神经网络参数的优化。通过不断的迭代,使验证集的损失函数收敛,即连续遍历3次训练集后验证集损失仍然不降低,选取验证集损失最低时的神经网络参数作为训练好的动作补全模型的神经网络参数。
具体的,损失函数的设计帮助***从数据集中学习,得到健壮的神经网络模型。其中第一损失函数、第二损失函数、第三损失函数保障了计算结果的精度;第四损失函数保障了专家神经网络的负载均衡。
本实施例提供一种动作补全方法,通过获取过去帧和目标帧的数据进行预处理和拼接,基于训练好的动作补全模型进行预测和计算自动生成大量动作过渡帧的数据,适合生成时间长、过渡帧帧数多、动作复杂的场景,且生成的过渡帧动作真实,减少了原本插值方案所需的人力成本,提升了项目质量,缩短了项目周期,具体请参考图8,图8为本申请实施例提供的一种动作补全方法的流程图,具体包括:
S201:获取待补全动作数据的目标帧、至少两个过去帧、动画帧率、标准差、待补全动作帧数,根据预设所有关节点对应父节点列表和预设所有关节点相对于对应父节点的标准骨骼偏移值列表进行数据预处理,得到当前帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量、以及目标帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标。
其中,过去帧的目的是为了确定当前角色动作状态,是指在待补充的过渡帧之前的帧,目标帧是由用户指定,用于满足用户的需求,通常是用户修改后的动作状态。即目标帧是用户所希望加入过渡帧后,角色应达到的动作状态。这里需要至少两个过去帧的数据是因为要计算当前帧的所有关节点的速度向量,所以至少需要两帧数据才能计算出帧与帧之间的速度向量。这里的当前帧是指待补充的过渡帧的前一帧。
本实施例不对过去帧的数量进行限定,可以是2个、3个或者更多,也不限定2个过去帧的位置,可以为相邻帧,也可以不为相邻帧,只要能实现计算出当前帧的所有关节点的速度向量的目的即可。例如在20FPS的动画中,2个过去帧是相邻帧,这2个过去帧仅相差1/20=0.05秒,若2个过去帧不是相邻帧,那么2个过去帧相差的时间除以2个过去帧之间间隔的帧数即可。本实施例不对动画帧率进行限定,可以设置动画帧率为30FPS。本实施例不对标准差sigma进行限定,sigma是概率论里的标准差,它可以调节动作补全的变化性,根据需要进行设置。这里不对待补全动作帧数进行限制,用户可以根据需要设置。具体的,用户可以通过插件提供的用户交互接口,指定2个过去帧和1个目标帧的动画数据、动画帧率,设置标准差输入sigma、以及需要补全的动画帧数S。
本实施例预设的人体骨骼的关节点数目为33个,具体包括:{0, Hips}、{1,Spine}、{2, Spine1}、{3, Spine2}、{4, Spine3}、{5, Neck}、{6, Neck1}、{7, Head}、{8,HeadEnd}、{9, RightShoulder}、{10, RightArm}、{11, RightForeArm}、{12,RightHand}、{13, RightHandThumb}、{14, RightHand每个专家网络计算的加权姿态增量Middle}、{15, LeftShoulder}、{16, LeftArm}、{17, LeftForeArm}、{18, LeftHand}、{19, LeftHandThumb}、{20, LeftHand每个专家网络计算的加权姿态增量Middle}、{21,RightUpLeg}、{22, RightLeg}、{23, RightFoot}、{24, RightForeFoot}、{25,RightToeBase}、{26, RightToeBaseEnd}、{27, LeftUpLeg}、{28, LeftLeg}、{29,LeftFoot}、{30, LeftForeFoot}、{31, LeftToeBase}、{32, LeftToeBaseEnd}。其中Hips关节点为人体骨骼的根关节点。
每个关节点的旋转轴为:{0, {X,Y,Z}}、{1, {X,Y,Z}}、{2, {X,Y,Z}}、{3, {X,Y,Z}}、{4, {X,Y,Z}}、{5, {X,Y,Z}}、{6, {X,Y,Z}}、{7, {X,Y,Z}}、{8, {}}、{9, {X,Z}}、{10, {X,Y,Z}}、{11, {X,Y}}、{12, {X,Z}}、{13, {}}、{14, {}}、{15, {X,Z}}、{16, {X,Y,Z}}、{17, {X,Y}}、{18, {X,Z}}、{19, {}}、{20, {}}、{21, {X,Y,Z}}、{22, {X}}、{23,{X,Y,Z}}、{24, {}}、{25, {X}}、{26, {}}、{27, {X,Y,Z}}、{28, {X}}、{29, {X,Y,Z}}、{30, {}}、{31, {X}}、{32, {}}。其中,0-32代表关节点的序号,X、Y、Z分别表示X轴、Y轴和Z轴。
预设所有关节点对应父节点列表为:{0, {}}、{1, {0}}、{2, {1}}、{3, {2}}、{4,{3}}、{5, {4}}、{6, {5}}、{7, {8}}、{8, {7}}、{9, {4}}、{10, {9}}、{11, {10}}、{12,{11}}、{13, {12}}、{14, {12}}、{15, {4}}、{16, {15}}、{17, {16}}、{18, {17}}、{19,{18}}、{20, {18}}、{21, {0}}、{22, {21}}、{23, {22}}、{24, {23}}、{25, {24}}、{26,{25}}、{27, {0}}、{28, {27}}、{29, {28}}、{30, {29}}、{31, {30}}、{32, {31}}。
预设所有关节点相对于对应父节点的标准骨骼偏移值列表为:{1, {0.0,10.973504172820446,-1.8905411922178885}}、{2, {0.0,9.839155069029879,0.0}}、{3,{0.0,9.839155069029879,0.0}}、{4, {0.0,9.839155069029879,0.0}}、{5, {0.0,12.650342231609844,1.2650342231609846}}、{6, {0.0,5.627352749797471,0.0}}、{7,{0.0,5.627352749797471,0.0}}、{8, {0.0,9.727720099469252,0.0}}、{9, {0.0,9.035958736864172,7.079303955478363}}、{10, {0.0,18.540949701045772,0.0}}、{11,{0.0,28.886655990727327,0.0}}、{12, {0.0,22.323240911467128,0.0}}、{13, {-3.0643109737346546,3.252690113828508,2.418667007718634}}、{14, {0.0,8.673840303542688,-0.055601540407324915}}、{15, {0.0,9.035958736864172,7.079303955478363}}、{16, {0.0,18.540949701045772,0.0}}、{17, {0.0,28.886655990727327,0.0}}、{18, {0.0,22.323240911467128,0.0}}、{19,{3.0643109737346546,3.252690113828508,2.418667007718634}}、{20, {0.0,8.673840303542688,-0.055601540407324915}}、{21, {-9.336602969020769,0.0,0.0}}、{22, {0.0,-41.79405063115827,0.0}}、{23, {0.0,-39.71819658810898,0.0}}、{24,{0.0,-3.5319294628875477,0.0}}、{25, {0.0,0.0,13.83215668621111}}、{26, {0.0,0.0,7.599936005436189}}、{27, {9.336602969020769,0.0,0.0}}、{28, {0.0,-41.79405063115827,0.0}}、{29, {0.0,-39.71819658810898,0.0}}、{30, {0.0,-3.5319294628875477,0.0}}、{31, {0.0,0.0,13.83215668621111}}、{32, {0.0,0.0,7.329371066117648}}。
在一种可实现的实施方式中,图9为本申请实施例提供的一种数据预处理方法的流程图,步骤S201包括:
S2011:获取待补全动作数据的第一过去帧、第二过去帧和目标帧的数据,将第一过去帧、第二过去帧和目标帧的所有关节点的欧拉角进行数据格式转换,得到第一过去帧、第二过去帧和目标帧的所有关节点的旋转矩阵。
其中,本实施例采用2个相邻过去帧,第二过去帧是距离待生成的过渡帧最近的相邻帧,第一过去帧是与第二过去帧相邻的帧。目前动画数据帧通常都是采用所有关节点的欧拉角格式,因此首先需要将第一过去帧、第二过去帧和目标帧进行数据格式转换,得到本实施例所需要的所有关节点的旋转矩阵。具体的,可以使用scipy数学工具库将欧拉角数据转换为旋转矩阵。
S2012:将第一过去帧、第二过去帧和目标帧的所有关节点的旋转矩阵保留前两个列向量并将其压缩为一个6维向量,得到第一过去帧、第二过去帧和目标帧的所有关节点的6D旋转向量。
具体的,将第一过去帧的所有关节点的旋转矩阵保留前两个列向量并将其压缩为一个6维向量,得到第一过去帧的所有关节点的6D旋转向量;将第二过去帧的所有关节点的旋转矩阵保留前两个列向量并将其压缩为一个6维向量,得到第二过去帧的所有关节点的6D旋转向量;将目标帧的所有关节点的旋转矩阵保留前两个列向量并将其压缩为一个6维向量,得到目标帧的所有关节点的6D旋转向量。
S2013:根据第一过去帧、第二过去帧和目标帧的Hips关节点的3D空间坐标、第一过去帧、第二过去帧和目标帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到第一过去帧、第二过去帧和目标帧的所有关节点的3D空间坐标。
具体的,根据第一过去帧的Hips关节点的3D空间坐标、第一过去帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到第一过去帧的所有关节点的3D空间坐标。
根据第二过去帧的Hips关节点的3D空间坐标、第二过去帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到第二过去帧的所有关节点的3D空间坐标。
根据目标帧的Hips关节点的3D空间坐标、目标帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到目标帧的所有关节点的3D空间坐标。
其中,由于第二过去帧是与待生成的过渡帧距离最近的帧,所以将第二过去帧指定为当前帧,那么所述第二过去帧的所有关节点的6D旋转向量为当前帧的所有关节点的6D旋转向量、所述第二过去帧的所有关节点的3D空间坐标为当前帧的所有关节点的3D空间坐标。
S2014:将第二过去帧的所有关节点的3D空间坐标减去第一过去帧的所有关节点的3D空间坐标得到差值后再乘以动画帧率,得到当前帧的所有关节点的速度向量。
S2015:读取第二过去帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度向量,分别判断每个预设关节点的速度向量与预设速度向量的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度判断布尔值,将其拼接得到当前帧的第一布尔向量;读取第二过去帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的3D空间坐标,分别判断每个预设关节点的y坐标值与预设长度值的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的距离判断布尔值,将其拼接得到当前帧的第二布尔向量;将当前帧的第一布尔向量和第二布尔向量进行与运算,得到当前帧的四维布尔向量。
其中,预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点分别为RightForeFoot、RightToeBaseEnd、LeftForeFoot、LeftToeBaseEnd。这里不对预设速度向量进行限制,可以根据具体需要设置,例如可以设置为0.7m/s。这里不对预设长度值进行限制,可以根据具体需要设置,例如可以设置为5cm。具体的,根据当前帧的RightForeFoot、RightToeBaseEnd、LeftForeFoot、LeftToeBaseEnd关节点的速度向量,如果该关节点上速度向量大于等于0.7m/s,则速度判断布尔值赋值为0;如果小于0.7m/s,则速度判断布尔值赋值为1。将这四个关节点的布尔值拼接,即得到第一布尔向量。根据当前帧的RightForeFoot、RightToeBaseEnd、LeftForeFoot、LeftToeBaseEnd的3D空间坐标,如果该关节点上的y坐标大于等于5cm,则距离判断布尔值赋值为0;如果y坐标小于5cm,则距离判断布尔值赋值为1。将这四个关节点的距离判断布尔值拼接,即得到第二布尔向量,将当前帧的第一布尔向量和第二布尔向量进行与运算,得到当前帧的四维布尔向量。
基于上述技术方案,获得了当前帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量、以及目标帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标,完成了数据预处理,为后面生成过渡帧做好准备。
S202:加载训练好的动作补全模型,输入动画帧率和标准差。
其中,动作补全模型训练好后,会把神经网络参数保存在硬盘上或者其他存储空间,当需要使用动作补全模型时,会读取硬盘或其他存储空间上的神经网络参数,这个过程称为加载,而待补全动作帧数、标准差、动作帧率是在加载完成后对动作补全模型做的额外配置,为后面生成过渡帧做好准备。
在一种可实现的实施方式中,图3为本申请实施例提供的一种动作补全模型的结构示意图,S102中训练好的动作补全模型包括第一映射子网络E1、第二映射子网络E2、第三映射子网络E3、门控神经网络G和128个专家神经网络EPi,i=1,2,3,...128,其中第一映射子网络E1、第二映射子网络E2和第三映射子网络E3构成了一个编码***,将动作状态量编码到768维的隐向量上,门控神经网络G接收隐向量并做出决策,选择不同的专家神经网络EPi以及对应的权重做隐向量计算的加权融合,专家神经网络EPi对隐向量进行计算得到下一帧的动作状态增量。
S203:将当前帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量、以及目标帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标进行数据拼接,得到第一输入向量、第二输入向量和第三输入向量。
在一种可实现的实施方式中,步骤S103包括:拼接当前帧的所有关节点的6D旋转向量、当前帧的所有关节点的速度向量和当前帧的四维布尔向量,得到第一输入向量;将目标帧的所有关节点的3D空间坐标减去当前帧的所有关节点的3D空间坐标,得到第一偏移向量,将目标帧的所有关节点的6D旋转向量减去当前帧的所有关节点的6D旋转向量,得到第二偏移向量,拼接第一偏移向量和第二偏移向量,得到第二输入向量;将目标帧的所有关节点的6D旋转向量作为第三输入向量。
其中,拼接是指数据合并操作,例如,拼接当前帧的所有关节点的6D旋转向量、当前帧的所有关节点的速度向量和当前帧的四维布尔向量,就是将当前帧的所有关节点的6D旋转向量、当前帧的所有关节点的速度向量和当前帧的四维布尔向量在同一维度上合并起来,得到的结果包含了两者的数据信息。
S204:将第一输入向量、第二输入向量、第三输入向量和待补全动作帧数输入训练好的动作补全模型,输出预测的所有过渡帧的所有关节点的6D旋转向量增量、所有过渡帧的Hips关节点的3D空间坐标增量。
S205:将预测的所有过渡帧的所有关节点的6D旋转向量增量加上当前帧的所有关节点的6D旋转向量得到下一个过渡帧的所有关节点的6D旋转向量并保存,将预测的所有过渡帧的Hips关节点的3D空间坐标增量加上当前帧的Hips关节点的3D空间坐标得到下一个过渡帧的Hips关节点的3D空间坐标并保存,将待补全动作帧数减1。
其中,获得的下一个过渡帧的数据包含下一个过渡帧的所有关节点的6D旋转向量和下一个过渡帧的Hips关节点的3D空间坐标,将其保存,获得了下一个过渡帧的数据后,待补全动作帧数就要少一个了,所以将待补全动作帧数减1。
S206:若待补全动作帧数大于0,则根据下一个过渡帧的所有关节点的6D旋转向量计算得到当前帧的所有关节点的旋转矩阵,根据下一个过渡帧的Hips关节点的3D空间坐标和当前帧的所有关节点的旋转矩阵计算得到当前帧的所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量,返回S203,若待补全动作帧数等于0,则进入S207。
其中,判断待补全动作帧数的值是否大于0,若待补全动作帧数大于0,表明还有过渡帧没有生成,因此根据下一个过渡帧的所有关节点的6D旋转向量计算得到当前帧的所有关节点的旋转矩阵,根据下一个过渡帧的Hips关节点的3D空间坐标和当前帧的所有关节点的旋转矩阵计算得到当前帧的所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量,返回S203步骤再一次执行生成过渡帧的步骤,可以理解的是,若需要生成S个过渡帧,那么就需要执行S次S203-S206的步骤。具体的,当待补全动作帧数大于0时,当前获得的下一个过渡帧数据将作为要求解的下一个过渡帧数据的当前帧数据参与计算,以求解出下一个过渡帧的数据。若待补全动作帧数等于0,则表明已经生成了全部的过渡帧,可进入S207步骤。
在一种可实现的实施方式中,步骤S206中根据当前帧的所有关节点的6D旋转向量计算得到当前帧的所有关节点的旋转矩阵,根据当前帧的Hips关节点的3D空间坐标和当前帧的所有关节点的旋转矩阵计算得到当前帧的所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量的方法包括:
S2061:将当前帧的所有关节点的6D旋转向量的前3个值作为向量x,后3个值作为向量y,将向量x进行标准化得到更新的向量x,将向量y和更新的向量x求叉积得到向量z,将向量z进行标准化得到更新的向量z,将更新的向量z和更新的向量x求叉积得到更新的向量y,将更新的向量x、更新的向量y和更新的向量z分别作为三维方阵的列向量,得到当前帧的所有关节点的旋转矩阵;
S2062:根据当前帧的Hips关节点的3D空间坐标、当前帧的所有关节点的旋转矩阵,预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到当前帧的所有关节点的3D空间坐标;
S2063:将当前帧的所有关节点的3D空间坐标减去当前帧对应的上一帧的所有关节点的3D空间坐标得到差值后再乘以动画帧率,得到当前帧的所有关节点的速度向量;
S2064:读取当前帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度向量,分别判断每个预设关节点的速度向量与预设速度向量的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度判断布尔值,将其拼接得到当前帧的第一布尔向量;读取当前帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的3D空间坐标,分别判断每个预设关节点的y坐标值与预设长度值的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的距离判断布尔值,将其拼接得到当前帧的第二布尔向量;将当前帧的第一布尔向量和第二布尔向量进行与运算,得到当前帧的四维布尔向量。
S207:得到每一个过渡帧的所有关节点的6D旋转向量和Hips关节点的3D空间坐标,将每一个过渡帧的所有关节点的6D旋转向量转换为预设数据格式,即得到所有过渡帧的动作补全数据。
具体的,所有关节点的6D旋转向量和Hips关节点的3D空间坐标构成了每一个过渡帧的完整的动画数据,由于6D旋转向量不是当前动画数据常用的数据格式,因此还需要将6D旋转向量转换为预设数据格式,例如欧拉角格式,这里并不限定具体的数据格式,可以根据具体情况设置,最后将S个过渡帧的动画数据补充到原始动画数据。
以上是一次完整的动作补全的流程,用户可以多次调用以上流程,可以得到不同形态的合理的过渡动作数据,以满足用户的不同需求。
下面对本申请实施例提供的一种动作补全模型的训练装置进行介绍,下文描述的动作补全模型的训练装置与上文描述的动作补全模型的训练方法可相互对应参照,参考图10,图10为本申请实施例提供的一种动作补全模型的训练装置的结构示意图,包括:
训练数据获取模块301,用于采集大量人体运动的原始动作数据,并根据预设所有关节点对应父节点列表和预设所有关节点相对于对应父节点的标准骨骼偏移值列表进行数据预处理,得到除第一帧以外每一帧的所有关节点的6D旋转向量、所有关节点的速度向量、四维布尔向量和所有关节点的3D空间坐标作为数据集,将数据集分为训练集和验证集;
网络模型建立模块302,用于建立动作补全模型,设置标准差值为预设标准差值;
网络模型训练模块303,用于从训练集中提取预设批次数量个动作数据批次作为动作补全模型的输入数据,输入动作补全模型得到动作补全模型的输出结果,每个动作数据批次包括预设组数个动作序列组,每个动作序列组包括过去帧、目标帧和S个过渡帧,其中S是预设采样范围值内的预设组数个均匀采样值;
网络模型优化模块304,用于根据动作补全模型的输入数据和输出结果计算每个动作序列组中***的总损失项,并根据***的总损失项对动作补全模型进行优化,得到训练好的动作补全模型。
可选的,训练数据获取模块301包括:
旋转矩阵获取单元,用于获取原始动作数据中每一帧的Hips关节点的3D空间坐标、所有关节点的欧拉角,将每一帧的所有关节点的欧拉角进行数据格式转换,得到每一帧的所有关节点的旋转矩阵;
旋转向量获取单元,用于将每一帧的所有关节点的旋转矩阵保留前两个列向量并将其压缩为一个6维向量,得到每一帧的所有关节点的6D旋转向量;
空间坐标获取单元,用于根据每一帧的Hips关节点的3D空间坐标、每一帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到每一帧的所有关节点的3D空间坐标;
速度向量获取单元,用于将除第一帧以外的每一帧的所有关节点的3D空间坐标减去该帧对应的上一帧的所有关节点的3D空间坐标得到差值后再乘以动画帧率,得到除第一帧以外的每一帧的所有关节点的速度向量;
布尔向量获取单元,用于读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度向量,分别判断每个预设关节点的速度向量与预设速度向量的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度判断布尔值,将其拼接得到除第一帧以外的每一帧的第一布尔向量;读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的3D空间坐标,分别判断每个预设关节点的y坐标值与预设长度值的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的距离判断布尔值,将其拼接得到除第一帧以外的每一帧的第二布尔向量;将除第一帧以外的每一帧的第一布尔向量和第二布尔向量进行与运算,得到除第一帧以外的每一帧的四维布尔向量,
数据集划分单元,用于保存除第一帧以外的每一帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量和四维布尔向量作为数据集,其中划分第一预设比例的数据集为训练集,划分第二预设比例的数据集为测试集。
可选的,网络模型训练模块303包括:
距离帧数获取单元,用于指定过去帧为当前帧,获取当前帧距离目标帧的距离帧数,初始化过渡帧编号k=1;
第一向量获取单元,用于提取当前帧的所有关节点的6D旋转向量、当前帧的所有关节点的速度向量和当前帧的四维布尔向量拼接成第一输入向量,输入动作补全模型的第一映射子网络,输出第一输出向量Cs;
第二向量获取单元,用于提取目标帧的所有关节点的3D空间坐标和所有关节点的6D旋转向量,将目标帧的所有关节点的3D空间坐标减去当前帧的所有关节点的3D空间坐标得到第一偏移向量,将目标帧的所有关节点的6D旋转向量减去当前帧的所有关节点的6D旋转向量得到第二偏移向量,将第一偏移向量和第二偏移向量拼接成第二输入向量,输入动作补全模型的第二映射子网络,输出第二输出向量Co;
第三向量获取单元,用于提取目标帧的所有关节点的6D旋转向量作为第三输入向量,输入动作补全模型的第三映射子网络,输出第三输出向量Ct;
权重参数获取单元,用于将第一输出向量Cs、第二输出向量Co和第三输出向量Ct拼接成向量D,将向量D输入动作补全模型的门控神经网络,门控神经网络输出128个权重Wi,权重Wi在0到1之间,对应128个专家神经网络EPi,若权重为0则冻结对应的专家神经网络EPi,若权重不为0则激活对应的专家神经网络EPi;
计算结果获取单元,用于将向量D、距离帧数和标准差分别输入激活的专家神经网络EPi,输出每个专家网络计算的姿态增量Ti,i=0,1,2,...127,Ti乘以权重Wi得到每个专家网络计算的加权姿态增量Mi,将每个专家网络计算的加权姿态增量Mi相加得到第k个过渡帧计算的姿态增量Tk并保存,将距离帧数减1,过渡帧编号k=k+1;
距离帧数判断单元,用于判断若距离帧数大于0,则指定下一个过渡帧为当前帧,返回第一向量获取单元,若距离帧数为0,则进入模型结果获取单元;
模型结果获取单元,用于将得到的S个过渡帧的姿态增量Tk进行拼接得到动作序列组中所有过渡帧的结果T,即动作补全模型的输出结果。
可选的,网络模型优化模块304包括:
过渡帧数据获取单元,用于从所有过渡帧的结果T中得到动作补全模型预测的所有过渡帧的所有关节点的6D旋转向量增量、预测的所有过渡帧的Hips关节点的3D空间坐标增量和预测的所有过渡帧的四维布尔向量;
第一损失获取单元,用于将预测的所有过渡帧的所有关节点的6D旋转向量增量加上动作序列组中对应的上一帧的所有关节点的6D旋转向量,得到预测的所有过渡帧的所有关节点的6D旋转向量,计算预测的所有过渡帧的所有关节点的6D旋转向量和动作序列组中对应过渡帧的所有关节点的6D旋转向量之间差值的2范数,得到第一损失项;
第二损失获取单元,用于将预测的所有过渡帧的Hips关节点的3D空间坐标增量加上动作序列组中对应的上一帧的Hips关节点的3D空间坐标,得到预测的所有过渡帧的Hips关节点的3D空间坐标;将预测的所有过渡帧的所有关节点的6D旋转向量的前3个值作为向量x,后3个值作为向量y,将向量x进行标准化得到更新的向量x,对向量y和更新的向量x求叉积得到向量z,将向量z进行标准化得到更新的向量z,将更新的向量z和更新的向量x求叉积得到更新的向量y,将更新的向量x、更新的向量y、更新的向量z分别作为三维方阵的列向量,得到预测的所有过渡帧的所有关节点的旋转矩阵;根据预测的所有过渡帧的Hips关节点的3D空间坐标、预测的所有过渡帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到预测的所有过渡帧的所有关节点的3D空间坐标;计算预测的所有过渡帧的所有关节点的3D空间坐标和动作序列组中对应的过渡帧的所有关节点的3D空间坐标之间差值的2范数,得到第二损失项;
第三损失获取单元,用于计算预测的过渡帧的四维布尔向量和动作序列组中对应过渡帧的四维布尔向量之间差值的2范数,得到第三损失项;
第四损失获取单元,用于在动作序列组中,将每个专家神经网络EPi的不同样本的权重Wi进行求和,得到该动作序列组中每个专家神经网络EPi的重要度,根据128个专家神经网络EPi的重要度计算出其方差的平方,得到第四损失项;
网络参数优化单元,用于将第一损失项、第二损失项、第三损失项和第四损失项相加,得到总损失项,根据总损失项使用预设优化器进行动作补全模型的神经网络参数的优化,通过所述验证集对动作补全模型进行验证,选择使所述验证集的损失函数收敛且损失最低时的神经网络参数作为训练好的动作补全模型的神经网络参数。
下面对本申请实施例提供的一种计算机设备进行介绍,下文描述的计算机设备与上文描述的动作补全模型的训练方法可相互对应参照。
本申请提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述动作补全模型的训练方法的步骤。
由于计算机设备部分的实施例与动作补全模型的训练方法部分的实施例相互对应,因此计算机设备部分的实施例请参见动作补全模型的训练方法部分的实施例的描述,这里暂不赘述。
下面对本申请实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的动作补全模型的训练方法可相互对应参照。
本申请提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述动作补全模型的训练方法的步骤。
由于计算机可读存储介质部分的实施例与动作补全模型的训练方法部分的实施例相互对应,因此计算机可读存储介质部分的实施例请参见动作补全模型的训练方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种动作补全模型的训练方法、动作补全方法、动作补全模型的训练装置、计算机设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种动作补全模型的训练方法,其特征在于,包括:
S101:采集大量人体运动的原始动作数据,并根据预设所有关节点对应父节点列表和预设所有关节点相对于对应父节点的标准骨骼偏移值列表进行数据预处理,得到除第一帧以外每一帧的所有关节点的6D旋转向量、所有关节点的速度向量、四维布尔向量和所有关节点的3D空间坐标作为数据集,将数据集分为训练集和验证集;
S102:建立动作补全模型,设置标准差值为预设标准差值;
S103:从训练集中提取预设批次数量个动作数据批次作为动作补全模型的输入数据,输入动作补全模型得到动作补全模型的输出结果,每个动作数据批次包括预设组数个动作序列组,每个动作序列组包括过去帧、目标帧和S个过渡帧,其中S是预设采样范围值内的预设组数个均匀采样值;
S104:根据动作补全模型的输入数据和输出结果计算每个动作序列组中***的总损失项,并根据***的总损失项对动作补全模型进行优化,得到训练好的动作补全模型。
2.根据权利要求1所述的动作补全模型的训练方法,其特征在于,所述S101包括:
获取原始动作数据中每一帧的Hips关节点的3D空间坐标、所有关节点的欧拉角,将每一帧的所有关节点的欧拉角进行数据格式转换,得到每一帧的所有关节点的旋转矩阵;
将每一帧的所有关节点的旋转矩阵保留前两个列向量并将其压缩为一个6维向量,得到每一帧的所有关节点的6D旋转向量;
根据每一帧的Hips关节点的3D空间坐标、每一帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到每一帧的所有关节点的3D空间坐标;
将除第一帧以外的每一帧的所有关节点的3D空间坐标减去该帧对应的上一帧的所有关节点的3D空间坐标得到差值后再乘以动画帧率,得到除第一帧以外的每一帧的所有关节点的速度向量;
读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度向量,分别判断每个预设关节点的速度向量与预设速度向量的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度判断布尔值,将其拼接得到除第一帧以外的每一帧的第一布尔向量;
读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的3D空间坐标,分别判断每个预设关节点的y坐标值与预设长度值的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的距离判断布尔值,将其拼接得到除第一帧以外的每一帧的第二布尔向量;
将除第一帧以外的每一帧的第一布尔向量和第二布尔向量进行与运算,得到除第一帧以外的每一帧的四维布尔向量,
保存除第一帧以外的每一帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量和四维布尔向量作为数据集,其中划分第一预设比例的数据集为训练集,划分第二预设比例的数据集为测试集。
3.根据权利要求1所述的动作补全模型的训练方法,其特征在于,所述S102中的动作补全模型,包括:第一映射子网络、第二映射子网络、第三映射子网络、门控神经网络和128个专家神经网络EPi,其中第一映射子网络、第二映射子网络和第三映射子网络构成了一个编码***,将动作状态量编码到768维的隐向量上,门控神经网络接收隐向量并做出决策,选择不同的专家神经网络EPi以及对应的权重做隐向量计算的加权融合,专家神经网络EPi对隐向量进行计算得到下一帧的动作状态增量。
4.根据权利要求3所述的动作补全模型的训练方法,其特征在于,所述S103包括:
S1031:指定过去帧为当前帧,获取当前帧距离目标帧的距离帧数,初始化过渡帧编号k=1;
S1032:提取当前帧的所有关节点的6D旋转向量、当前帧的所有关节点的速度向量和当前帧的四维布尔向量拼接成第一输入向量,输入动作补全模型的第一映射子网络,输出第一输出向量Cs;
S1033:提取目标帧的所有关节点的3D空间坐标和所有关节点的6D旋转向量,将目标帧的所有关节点的3D空间坐标减去当前帧的所有关节点的3D空间坐标得到第一偏移向量,将目标帧的所有关节点的6D旋转向量减去当前帧的所有关节点的6D旋转向量得到第二偏移向量,将第一偏移向量和第二偏移向量拼接成第二输入向量,输入动作补全模型的第二映射子网络,输出第二输出向量Co;
S1034:提取目标帧的所有关节点的6D旋转向量作为第三输入向量,输入动作补全模型的第三映射子网络,输出第三输出向量Ct;
S1035:将第一输出向量Cs、第二输出向量Co和第三输出向量Ct拼接成向量D,将向量D输入动作补全模型的门控神经网络,门控神经网络输出128个权重Wi,权重Wi在0到1之间,对应128个专家神经网络EPi,若权重为0则冻结对应的专家神经网络EPi,若权重不为0则激活对应的专家神经网络EPi;
S1036:将向量D、距离帧数和标准差分别输入激活的专家神经网络EPi,输出每个专家网络计算的姿态增量Ti,i=0,1,2,...127,Ti乘以权重Wi得到每个专家网络计算的加权姿态增量Mi,将每个专家网络计算的加权姿态增量Mi相加得到第k个过渡帧计算的姿态增量Tk并保存,将距离帧数减1,过渡帧编号k=k+1;
S1037:若距离帧数大于0,则指定下一个过渡帧为当前帧,返回S1032,若距离帧数为0,则进入S1038;
S1038:将得到的S个过渡帧的姿态增量Tk进行拼接得到动作序列组中所有过渡帧的结果T,即动作补全模型的输出结果。
5.根据权利要求1所述的动作补全模型的训练方法,其特征在于,所述S104包括:
S1041:从所有过渡帧的结果T中得到动作补全模型预测的所有过渡帧的所有关节点的6D旋转向量增量、预测的所有过渡帧的Hips关节点的3D空间坐标增量和预测的所有过渡帧的四维布尔向量;
S1042:将预测的所有过渡帧的所有关节点的6D旋转向量增量加上动作序列组中对应的上一帧的所有关节点的6D旋转向量,得到预测的所有过渡帧的所有关节点的6D旋转向量,计算预测的所有过渡帧的所有关节点的6D旋转向量和动作序列组中对应过渡帧的所有关节点的6D旋转向量之间差值的2范数,得到第一损失项;
S1043:将预测的所有过渡帧的Hips关节点的3D空间坐标增量加上动作序列组中对应的上一帧的Hips关节点的3D空间坐标,得到预测的所有过渡帧的Hips关节点的3D空间坐标;
将预测的所有过渡帧的所有关节点的6D旋转向量的前3个值作为向量x,后3个值作为向量y,将向量x进行标准化得到更新的向量x,对向量y和更新的向量x求叉积得到向量z,将向量z进行标准化得到更新的向量z,将更新的向量z和更新的向量x求叉积得到更新的向量y,将更新的向量x、更新的向量y、更新的向量z分别作为三维方阵的列向量,得到预测的所有过渡帧的所有关节点的旋转矩阵;
根据预测的所有过渡帧的Hips关节点的3D空间坐标、预测的所有过渡帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到预测的所有过渡帧的所有关节点的3D空间坐标;
计算预测的所有过渡帧的所有关节点的3D空间坐标和动作序列组中对应的过渡帧的所有关节点的3D空间坐标之间差值的2范数,得到第二损失项;
S1044:计算预测的过渡帧的四维布尔向量和动作序列组中对应过渡帧的四维布尔向量之间差值的2范数,得到第三损失项;
S1045:在动作序列组中,将每个专家神经网络EPi的不同样本的权重Wi进行求和,得到该动作序列组中每个专家神经网络EPi的重要度,根据128个专家神经网络EPi的重要度计算出其方差的平方,得到第四损失项;
S1046:将第一损失项、第二损失项、第三损失项和第四损失项相加,得到总损失项,根据总损失项使用预设优化器进行动作补全模型的神经网络参数的优化,通过所述验证集对动作补全模型进行验证,选择使所述验证集的损失函数收敛且损失最低时的神经网络参数作为训练好的动作补全模型的神经网络参数。
6.一种动作补全方法,其特征在于,包括:
S201:获取待补全动作数据的目标帧、至少两个过去帧、动画帧率、标准差、待补全动作帧数,根据预设所有关节点对应父节点列表和预设所有关节点相对于对应父节点的标准骨骼偏移值列表进行数据预处理,得到当前帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量、以及目标帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标;
S202:加载训练好的动作补全模型,输入动画帧率和标准差,所述训练好的动作补全模型通过权利要求1-5中任一项所述的动作补全模型的训练方法训练得出;
S203:将当前帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量、以及目标帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标进行数据拼接,得到第一输入向量、第二输入向量和第三输入向量;
S204:将第一输入向量、第二输入向量、第三输入向量和待补全动作帧数输入训练好的动作补全模型,输出预测的所有过渡帧的所有关节点的6D旋转向量增量、所有过渡帧的Hips关节点的3D空间坐标增量;
S205:将预测的所有过渡帧的所有关节点的6D旋转向量增量加上当前帧的所有关节点的6D旋转向量得到下一个过渡帧的所有关节点的6D旋转向量并保存,将预测的所有过渡帧的Hips关节点的3D空间坐标增量加上当前帧的Hips关节点的3D空间坐标得到下一个过渡帧的Hips关节点的3D空间坐标并保存,将待补全动作帧数减1;
S206:若待补全动作帧数大于0,则根据下一个过渡帧的所有关节点的6D旋转向量计算得到当前帧的所有关节点的旋转矩阵,根据下一个过渡帧的Hips关节点的3D空间坐标和当前帧的所有关节点的旋转矩阵计算得到当前帧的所有关节点的3D空间坐标、所有关节点的速度向量、四维布尔向量,返回S203,若待补全动作帧数等于0,则进入S207;
S207:得到每一个过渡帧的所有关节点的6D旋转向量和Hips关节点的3D空间坐标,将每一个过渡帧的所有关节点的6D旋转向量转换为预设数据格式,即得到所有过渡帧的动作补全数据。
7.一种动作补全模型的训练装置,其特征在于,包括:
训练数据获取模块,用于采集大量人体运动的原始动作数据,并根据预设所有关节点对应父节点列表和预设所有关节点相对于对应父节点的标准骨骼偏移值列表进行数据预处理,得到除第一帧以外每一帧的所有关节点的6D旋转向量、所有关节点的速度向量、四维布尔向量和所有关节点的3D空间坐标作为数据集,将数据集分为训练集和验证集;
网络模型建立模块,用于建立动作补全模型,设置标准差值为预设标准差值;
网络模型训练模块,用于从训练集中提取预设批次数量个动作数据批次作为动作补全模型的输入数据,输入动作补全模型得到动作补全模型的输出结果,每个动作数据批次包括预设组数个动作序列组,每个动作序列组包括过去帧、目标帧和S个过渡帧,其中S是预设采样范围值内的预设组数个均匀采样值;
网络模型优化模块,用于根据动作补全模型的输入数据和输出结果计算每个动作序列组中***的总损失项,并根据***的总损失项对动作补全模型进行优化,得到训练好的动作补全模型。
8.根据权利要求7所述的动作补全模型的训练装置,其特征在于,所述训练数据获取模块包括:
旋转矩阵获取单元,用于获取原始动作数据中每一帧的Hips关节点的3D空间坐标、所有关节点的欧拉角,将每一帧的所有关节点的欧拉角进行数据格式转换,得到每一帧的所有关节点的旋转矩阵;
旋转向量获取单元,用于将每一帧的所有关节点的旋转矩阵保留前两个列向量并将其压缩为一个6维向量,得到每一帧的所有关节点的6D旋转向量;
空间坐标获取单元,用于根据每一帧的Hips关节点的3D空间坐标、每一帧的所有关节点的旋转矩阵、预设所有关节点对应父节点列表、预设所有关节点相对于对应父节点的标准骨骼偏移值列表,对每个关节点采用将关节点的旋转矩阵与其对应的标准骨骼偏移值求积后再与其对应的父节点的3D空间坐标求和的结果作为该关节点的3D空间坐标的方法,计算得到每一帧的所有关节点的3D空间坐标;
速度向量获取单元,用于将除第一帧以外的每一帧的所有关节点的3D空间坐标减去该帧对应的上一帧的所有关节点的3D空间坐标得到差值后再乘以动画帧率,得到除第一帧以外的每一帧的所有关节点的速度向量;
布尔向量获取单元,用于读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度向量,分别判断每个预设关节点的速度向量与预设速度向量的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的速度判断布尔值,将其拼接得到除第一帧以外的每一帧的第一布尔向量;读取除第一帧以外的每一帧的预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的3D空间坐标,分别判断每个预设关节点的y坐标值与预设长度值的大小关系,生成预设第一关节点、预设第二关节点、预设第三关节点和预设第四关节点的距离判断布尔值,将其拼接得到除第一帧以外的每一帧的第二布尔向量;将除第一帧以外的每一帧的第一布尔向量和第二布尔向量进行与运算,得到除第一帧以外的每一帧的四维布尔向量,
数据集划分单元,用于保存除第一帧以外的每一帧的所有关节点的6D旋转向量、所有关节点的3D空间坐标、所有关节点的速度向量和四维布尔向量作为数据集,其中划分第一预设比例的数据集为训练集,划分第二预设比例的数据集为测试集。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5中任一项所述动作补全模型的训练方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述动作补全模型的训练方法的步骤。
CN202110890084.0A 2021-08-04 2021-08-04 动作补全模型的训练方法、装置、补全方法、设备和介质 Active CN113345061B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110890084.0A CN113345061B (zh) 2021-08-04 2021-08-04 动作补全模型的训练方法、装置、补全方法、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110890084.0A CN113345061B (zh) 2021-08-04 2021-08-04 动作补全模型的训练方法、装置、补全方法、设备和介质

Publications (2)

Publication Number Publication Date
CN113345061A true CN113345061A (zh) 2021-09-03
CN113345061B CN113345061B (zh) 2021-11-05

Family

ID=77480640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110890084.0A Active CN113345061B (zh) 2021-08-04 2021-08-04 动作补全模型的训练方法、装置、补全方法、设备和介质

Country Status (1)

Country Link
CN (1) CN113345061B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113554736A (zh) * 2021-09-22 2021-10-26 成都市谛视科技有限公司 骨骼动画顶点矫正方法及模型的学习方法、装置和设备
CN114170353A (zh) * 2021-10-21 2022-03-11 北京航空航天大学 一种基于神经网络的多条件控制的舞蹈生成方法及***
CN116664555A (zh) * 2023-07-26 2023-08-29 瀚博半导体(上海)有限公司 实时应用场景下的神经网络切片部署方法、***
CN117911592A (zh) * 2024-03-20 2024-04-19 广州趣丸网络科技有限公司 一种动作修正模型的训练方法及动作驱动方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573665A (zh) * 2015-01-23 2015-04-29 北京理工大学 一种基于改进维特比算法的连续动作识别方法
US20190295305A1 (en) * 2018-03-20 2019-09-26 Adobe Inc. Retargeting skeleton motion sequences through cycle consistency adversarial training of a motion synthesis neural network with a forward kinematics layer
CN111259779A (zh) * 2020-01-13 2020-06-09 南京大学 一种基于中心点轨迹预测的视频动作检测方法
CN111583364A (zh) * 2020-05-07 2020-08-25 江苏原力数字科技股份有限公司 一种基于神经网络的群组动画生成方法
CN111709284A (zh) * 2020-05-07 2020-09-25 西安理工大学 基于cnn-lstm的舞蹈情感识别方法
US20200356827A1 (en) * 2019-05-10 2020-11-12 Samsung Electronics Co., Ltd. Efficient cnn-based solution for video frame interpolation
CN112037312A (zh) * 2020-11-04 2020-12-04 成都市谛视科技有限公司 实时人体姿态逆向运动学求解方法及装置
CN112949544A (zh) * 2021-03-17 2021-06-11 上海大学 一种基于3d卷积网络的动作时序检测方法
CN113112577A (zh) * 2021-04-20 2021-07-13 网易(杭州)网络有限公司 过渡帧预测模型的训练方法以及过渡帧预测方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573665A (zh) * 2015-01-23 2015-04-29 北京理工大学 一种基于改进维特比算法的连续动作识别方法
US20190295305A1 (en) * 2018-03-20 2019-09-26 Adobe Inc. Retargeting skeleton motion sequences through cycle consistency adversarial training of a motion synthesis neural network with a forward kinematics layer
US20200356827A1 (en) * 2019-05-10 2020-11-12 Samsung Electronics Co., Ltd. Efficient cnn-based solution for video frame interpolation
CN111259779A (zh) * 2020-01-13 2020-06-09 南京大学 一种基于中心点轨迹预测的视频动作检测方法
CN111583364A (zh) * 2020-05-07 2020-08-25 江苏原力数字科技股份有限公司 一种基于神经网络的群组动画生成方法
CN111709284A (zh) * 2020-05-07 2020-09-25 西安理工大学 基于cnn-lstm的舞蹈情感识别方法
CN112037312A (zh) * 2020-11-04 2020-12-04 成都市谛视科技有限公司 实时人体姿态逆向运动学求解方法及装置
CN112949544A (zh) * 2021-03-17 2021-06-11 上海大学 一种基于3d卷积网络的动作时序检测方法
CN113112577A (zh) * 2021-04-20 2021-07-13 网易(杭州)网络有限公司 过渡帧预测模型的训练方法以及过渡帧预测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SINA HONARI ET AL: "Unsupervised Learning on Monocular Videos for 3D Human Pose Estimation", 《ARXIV.ORG》 *
张倩: "基于深度学习的视频插帧技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113554736A (zh) * 2021-09-22 2021-10-26 成都市谛视科技有限公司 骨骼动画顶点矫正方法及模型的学习方法、装置和设备
CN114170353A (zh) * 2021-10-21 2022-03-11 北京航空航天大学 一种基于神经网络的多条件控制的舞蹈生成方法及***
CN114170353B (zh) * 2021-10-21 2024-05-24 北京航空航天大学 一种基于神经网络的多条件控制的舞蹈生成方法及***
CN116664555A (zh) * 2023-07-26 2023-08-29 瀚博半导体(上海)有限公司 实时应用场景下的神经网络切片部署方法、***
CN116664555B (zh) * 2023-07-26 2024-02-06 瀚博半导体(上海)有限公司 实时应用场景下的神经网络切片部署方法、***
CN117911592A (zh) * 2024-03-20 2024-04-19 广州趣丸网络科技有限公司 一种动作修正模型的训练方法及动作驱动方法
CN117911592B (zh) * 2024-03-20 2024-05-31 广州趣丸网络科技有限公司 一种动作修正模型的训练方法及动作驱动方法

Also Published As

Publication number Publication date
CN113345061B (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
CN113345061B (zh) 动作补全模型的训练方法、装置、补全方法、设备和介质
CN113345062B (zh) 三维虚拟角色动作补全方法、装置和服务器
CN110288681B (zh) 角色模型的蒙皮方法、装置、介质及电子设备
CN113486708B (zh) 人体姿态预估方法、模型训练方法、电子设备和存储介质
CN112991502B (zh) 一种模型训练方法、装置、设备及存储介质
CN112258625B (zh) 基于注意力机制的单幅图像到三维点云模型重建方法及***
CN111223168B (zh) 目标对象控制方法、装置、存储介质和计算机设备
CN113112607B (zh) 一种生成任意帧率的三维网格模型序列的方法及装置
CN111462274A (zh) 一种基于smpl模型的人体图像合成方法及***
CN113129447A (zh) 基于单张手绘草图的三维模型生成方法、装置和电子设备
CN116778045A (zh) 神经辐射场数字人生成方法、***及装置
CN113781616B (zh) 一种基于神经网络的面部动画绑定加速方法
CN114494003A (zh) 一种联合形状变换和纹理转换的古文字生成方法
CN117218300B (zh) 三维模型的构建方法、三维构建模型的训练方法及装置
CN113706670B (zh) 生成动态三维人体网格模型序列的方法及装置
CN112966390B (zh) 基于双重三维距离场的衣服处理方法以及装置
CN114266693A (zh) 图像处理方法、模型生成方法及设备
CN115937374B (zh) 一种数字人体建模方法、装置、设备及介质
CN111882659A (zh) 一种融合人体脚型规律和可视外壳的高精度人体脚型重建方法
CN115482557A (zh) 人体图像生成方法、***、设备及存储介质
CN115147559A (zh) 基于神经隐式函数的三维人体参数化表示方法及装置
CN114120245A (zh) 基于深度神经网络的人群图像分析方法、装置以及设备
CN112560326B (zh) 压力场的确定方法及装置
CN113077383A (zh) 一种模型训练方法及模型训练装置
CN114333069A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211201

Address after: 610000 No. 04 and 05, 27th floor, building 1, No. 716, middle section of Jiannan Avenue, Chengdu hi tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan

Patentee after: Chengdu Tishi infinite Technology Co.,Ltd.

Address before: No.04 and No.05, 27th floor, building 1, No.716, middle section of Jiannan Avenue, Chengdu high tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan 610094

Patentee before: Chengdu Tishi Technology Co.,Ltd.