【技术实现步骤摘要】
一种3D骨点数据转换BVH数据的方法
[0001]本专利技术涉及一种3D骨点数据转换BVH(BioVision Motion Capture)数据方法,具体涉及一种3D骨点数据转换为通用骨骼驱动数据的方法,属于3D虚拟拟人形象动作捕捉领域。
技术介绍
[0002]BVH(BioVision Motion Capture)是BioVision公司推出的一种人体动作捕捉文件格式,这种文件以节点为核心元素,记录连续数帧内人体骨架的运动。随着传感技术和机器学习的发展应用,实时捕捉人体动作技术的应用越来越普遍,越来越多的厂商也在数字虚拟人、手势控制、数字主播等应用之中采用实时骨骼驱动技术,使渲染的角色更加立体生动,使交互的过程更加人性化和智能化。
[0003]现有技术中,机械人的动作捕捉主要有两种数据采集方式,一种是采用专用动作操作设备的惯性动捕,另一种是基于机器学习而采用视频采集器的视频动捕。但是,均存在转换过程复杂,技术上还原操作性不强等问题。为此,本领域技术人员对此进行了相关的研究。例如CN104680570B公开的一种基于视频的动作捕捉系统及方法,其中涉及一种基于视频流的完整动作捕捉流程,但是其中3D顶点数据向BVH数据的转换过程复杂,技术上还原也欠缺可操作性。又如CN102842146B公开的一种基于构造分解法的运动数据转换方法,其中涉及到由向量转向骨骼旋转角度的优化算法,由于不涉及数据预处理的过程,对BVH的工程实现过程也没未有涉及,无法实现3D骨点数据向BVH的完整转换。
[0004]综上,在3D ...
【技术保护点】
【技术特征摘要】
1.一种3D骨点数据转换BVH数据的方法,其特征在于,由BVH模板导入与骨骼树定义、数据导入与预处理、骷髅匹配与三维向量化、关联向量与坐标系生成和BVH数据生成与导出五个模块,执行如下步骤:S1、将3D骨点数据导入BVH模板生成模板树,结合输出数据需求从模板树以解析生成预定义BVH树,设定BVH预定义帧率,数据精度;S2、将通过处理系统采集的人体骨点数据导入数据导入与预处理模块,并对导入的数据进行有效性筛选,波形筛选预测,时间曲线光滑处理,根据BVH树补齐缺失数据,生成可利用的预处理数据;S3、根据BVH树定义,将处理数据点与骨骼节点关系确认关联,对所有关联关系的骨点数据进行向量化,生成与骨骼数据一对一的关键向量;S4、根据BVH树确定关键向量坐标系树、人体结构确定所有坐标系树基向量以及历史数据,对基向量进行修正,根据生成的基向量构建坐标系树;S5、根据3D预处理数据确定基准位移坐标,将坐标系树逆向还原为旋转欧拉树,将基准坐标与旋转坐标树写入BVH模板,再导出数据。2.根据权利要求1所述3D骨点数据转换BVH数据的方法,其特征在于,所述步骤S1具体包括:S11、将原始BVH模板文件bm从存储系统或者数据流导入BVH模板导入与骨骼树定义模块,进行反序列化解析,读取精度、帧率和有效通道,在系统内生成原始BVH树b0;S12、克隆b0生成新的可操作BVH记录树bt;S13、根据实际需求,分析记录树bt和需求骨骼节点差异,对可操作BVH树bt增减节点,调整节点结构,重命名,使新BVH结构覆盖需求;S14、根据实际需求数据确定生成对象的精度dd,记录帧率dr,有效通道dt;将确定的数据记录进可操作BVH记录树bt,克隆bt到只读目标BVH树b1;S15、根据只读目标BVH树b1,定义需求数据点结构d3d_s。3.根据权利要求1所述3D骨点数据转换BVH数据的方法,其特征在于,所述步骤S2具体包括:S21、以数据流或者文件形式接入从数据采集设备采集的3D骨点数据,按时间顺序压入原始3D点数据队列d3d_o_q,导入数据采集结构定义d3d_o_s;S22、从原始3D点数据队列d3d_o_q中按入队顺序依次取出备选数据d3d_o,确定d3d_o中失效数据的数量,当初始帧数小于预测参考帧数阈值fdn且失效数据数量大于0,抛弃该数据;当初始帧数大于预测参考帧数阈值fdn且失效数据数量大于等于失效数据抛弃阈值edn,抛弃该数据;当以上两条都不满足的情况下,数据有效性验证通过,形成待修正数据d3d_p1;S23、将待修正数据,以预测参考帧数阈值fdn为基础帧数,对fdn数量帧数同位历史数据采用中值滤波,取结果值t1,去除数据毛剌;以预测参考帧数阈值fdn为基础帧数,对fdn数量帧数同位t1历史数据采用卡尔曼滤波算法,取结果值t2,降低数据抖动;取所有t2组合形成待修补数据d3d_p2;S24、根据只读目标BVH树b1,对比需求数据点结构d3d_s和数据采集数据点结构d3d_o_s,对d3d_p2进行重新排布,补齐缺失的数据点生成待美化数据d3d_p3;
S25、将待美化数据d3d_p3,以预测参考帧数阈值fdn为基础帧数,对fdn数量帧数同位历史数据采用中值滤波,取结果值t3,对待美化数据根据历史数据进行光滑;取得可用数据d3d_l;S26、根据只读目标BVH树b1、需求数据点结构d3d_s,新建顶点树ptree,树的子节点结构对应b1节点结构,每个节点存放为b1对应节点骨骼对应骨骼旋转根数据点;当节点无顶点数据对应时,赋值为空。4.根据权利要求1所述3D骨点数据转换BVH数据的方法,其特征在于,所述步骤S3具体包括:S31、根据数据点结构d3d_s,新建向量树vtree,存储内容为选取ptree相关节点构建向量结构v3d_o,节点存储向量起点d3d_s_bp1,终点d3d_s_bp2;S32、遍历ptree,对节点数据进行向量构建,以骨骼起点d3d_s_bp1为向量起点,以骨骼终点d3d_s_bp2为向量终点。5.根据权利要求1所述3D骨点数据转换BVH数据的方法,其特征在于,所述步骤S4具体包括:S41、根据只读目标BVH树b1、ptree、vtree,构建坐标系树ctree,节点与b1节点结构一致,存储内容1为b1对应节点骨骼以世界坐标...
【专利技术属性】
技术研发人员:陈楚,陈光银,田尊明,张丹,
申请(专利权)人:重庆长安汽车股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。