首页 / 技术领域 / 动作捕捉 / 一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法

一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法

热词 关键 捕捉 动作 脚部 unity 类别 数字 标注 损失函数 部位
专利类型 发明公开 法律事件 公开; 实质审查;
专利有效性 实质审查 当前状态 实质审查
申请号 CN202411626321.2 申请日 2024-11-14
公开(公告)号 CN119580151A 公开(公告)日 2025-03-07
申请人 新疆轻工职业技术学院; 申请人类型 学校
发明人 杜卫平; 刘斌儒; 刘艳荣; 张丽英; 邹宗峰; 第一发明人 杜卫平
权利人 新疆轻工职业技术学院 权利人类型 学校
当前权利人 新疆轻工职业技术学院 当前权利人类型 学校
省份 当前专利权人所在省份:新疆维吾尔自治区 城市 当前专利权人所在城市:新疆维吾尔自治区乌鲁木齐市
具体地址 当前专利权人所在详细地址:新疆维吾尔自治区乌鲁木齐市米东区米东南路3281号 邮编 当前专利权人邮编:830000
主IPC国际分类 G06V20/40 所有IPC国际分类 G06V20/40G06V40/20G06V10/774G06V10/764G06V10/82G06N3/0464
专利引用数量 0 专利被引用数量 0
专利权利要求数量 6 专利文献类型 A
专利代理机构 济南誉琨知识产权代理事务所 专利代理人 袁彤彤;
摘要 本 发明 涉及 计算机视觉 领域和数字人领域,特别涉及一种基于计算机视觉 动作捕捉 的Unity数字人肢体驱动方法。先获取人物运动视频并分部位标注,搭建含人体等部位检测和关键点解析模 块 的动作捕捉模型,训练测试模型验证关键点识别准确度,用卡尔曼滤波平滑关键点坐标缓解抖动,最后关联动作与Unity数字人肢体实现驱动。其优势在于构建关键部位划分和数据融合处理系统,能精确驱动数字人,缓解抖动和模糊问题,提升动态表现和情感表达能 力 ,为用户提供真实沉浸体验,推动数字人技术发展。
权利要求

1.一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法,其特征在于,包括以下步骤:
S1、首先进行数据获取,获取现实场景下的人物运动视频,并进行分部位标注;
S2、其次搭建动作捕捉模型:包含人体、头部、手部、脚部的检测模和各个部位关键点解析模块;
S3、接着训练、测试动作捕捉模型,验证各个模块关键点识别的准确度;
S4、然后对关键点后处理,通过卡尔曼滤波对关键点坐标进行平滑处理,缓解抖动;
S5、最后将动作与Unity数字人肢体关联,实现对数字人的驱动。
2.根据权利要求1所述的一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法,其特征在于,所述步骤S1中对于分部标注的实现为:
S11、首先通过摄像机获取多份人在室内的运动视频,视频中包含人体各类运动姿态,将视频进行分处理,得到img数据;
S12、其次对img数据进行两类数据标注,一类是目标检测的标注为imgobject,一类是对于关键点的标注为imgkeys,数据格式定义为:img=[imgobject,imgkeys];
S13、对img数据使用labelme进行目标检测标注,包含人体检测、手部检测、头部检测、脚部检测,将数据格式定义为:imgobject=[imgpath,xleft,yleft,xreight,yreight,classobject],其中imgpath是图片路径,xleft,yleft为左上点坐标,xreight,yreight为右下角点坐标,classobject为检测目标类别;
S14、对人体检测、手部检测、头部检测、脚部检测四类检测目标,使用labelme分别进行关键点标注,数据格式定义为:imgkeys=[imgpath,xkeys,ykeys,classkeys],其中xkeys,ykeys是关键点坐标,不同部位的关键点数目也不同,classkeys为关键点目标类别。
3.根据权利要求1所述的一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法,其特征在于,所述步骤S2中搭建动作捕捉模型的实现为:
S21、首先搭建动作捕捉模型中的人体、头部、手部、脚部的检测模块,先通过一层CNN卷积操作,对图像数据进行放缩,降低计算量,后对卷积得到的向量进行Patch切片,再对其进行Patch编码和位置编码,采用两对TransformerEncode和TransformerDecode构建图像编解码器核心,最终将图像的特征向量通过检测头得到目标类别和位置信息;
S22、然后搭建动作捕捉模型中的人体、头部、手部、脚部的关键点检测模块,对部位图像进行Patch切片,后对其进行Patch编码和位置编码,先采用两个Transformer Encode构建图像编码器核心,得到图像的特征向量,并对该向量进行类别判别,从而进行各个部位的关键点检测,由于头部关键点数量远高于其它部位,因此多添加一个Transformer Encode构建图像编码器,对其关键点数据进行深度解析,获取图像中人体、头部、手部、脚部的关键点信息。
4.根据权利要求1所述的一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法,其特征在于,所述步骤S3中训练、测试动作捕捉模型的步骤为:
S31、首先将imgobject数据中的训练集送入动作捕捉部位检测模型,训练方式学习率变化策略采用warmup,训练50轮次,公式为: 其中wl表示单一类别权重,l表示
为类别,n为l类别的数据量,m表示全部类别的数据量,分类损失采用类别均衡交叉熵损失函数,公式为: 其中
表示真实的分类标签, 表示为预测的分类标签;检测损失函数采用加权的
IOU+Dice损失函数,公式为:
其中labelobj表示真实的坐标标签, 表示预测的坐标标签;最终动作捕捉部位检测模块总损失函数为:Loss=Lossclass+Lossobject;
S32、将imgkey数据中的训练集送入动作捕捉关键点检测模块,训练方式学习率变化策略采用warmup,训练100轮次,分类损失采用类别均衡交叉熵损失函数,对于关键点回归的损失函数采用均方根误差损失函数,公式为: 其中n
为关键点个数,x和y为真实的关键点坐标,xout,yout为预测的关键点坐标,动作捕捉关键点检测模块总损失函数为:Loss=Lossclass+Lossobject。
5.根据权利要求1所述的一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法,其特征在于,所述步骤S4通过卡尔曼滤波对关键点坐标进行平滑处理,缓解抖动的关键点后处理为:
S41、首先是预测,根据上一时刻的估计值预测下一时刻的值,成为先验估计,同时这一步会预测下一时刻的误差,成为先验误差;
S42、然后更新,也称为矫正,首先计算权衡先验估计与测量值的权重的卡尔曼增益,再利用上一步的先验估计计算后验估计,同时更新先验误差到后验误差。
6.根据权利要求1所述的一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法,其特征在于,所述步骤S5对数字人的驱动的实现方式为将人体、头部、手部、脚部的关键点信息与Unity构建的数字人的骨骼结点进行关联,实现对数字人的细粒度驱动,通过摄像机捕捉实时画面,针对实时性要求对视频流数据进行抽帧处理,经过动作捕捉模型得到各个部位的关键点运动信息,采用卡尔曼滤波对其进行平滑处理,最后与Unity数字人关联实现驱动。

说明书全文

一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法

技术领域

[0001] 本发明涉及计算机视觉领域和数字人领域,特别涉及一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法。

背景技术

[0002] 在当今社会,数字人技术、动作捕捉和实时动画生成等领域取得了显著进展,这主要得益于计算能的提升和深度学习技术的广泛应用。特别是在Unity引擎中,基于动作捕捉的数据驱动技术已成为创建真实感数字人的主流方法,为色动画、互动游戏和虚拟现实等应用带来了突破性的提升。这些技术实现了自然的动作表现和生动的用户体验,推动了虚拟角色在多领域的应用。在数字人技术背景下,动作捕捉与实时渲染的结合,使得不同类型的数据,如运动轨迹、姿态数据能够互相融合,提供更丰富和精准的互动体验,使系统更好地模拟人类的动态和情感表达。尽管深度学习技术在数字人生成领域取得了显著成就,但目前的数字人研究仍存在肢体抖动和手部、头部姿态刻画模糊等问题。本专利提出了一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法,以实现更自然和高效的虚拟角色动画生成。

发明内容

[0003] 本发明针对上述背景技术中存在的肢体抖动和局部姿态刻画模糊等问题,提出一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法。
[0004] 为了达到上述目的,本发明采用的技术方案为:包括以下步骤:
[0005] S1、首先进行数据获取,获取现实场景下的人物运动视频,并进行分部位标注;
[0006] S2、其次搭建动作捕捉模型:包含人体、头部、手部、脚部的检测模和各个部位关键点解析模块;
[0007] S3、接着训练、测试动作捕捉模型,验证各个模块关键点识别的准确度;
[0008] S4、然后对关键点后处理,通过卡尔曼滤波对关键点坐标进行平滑处理,缓解抖动;
[0009] S5、最后将动作与Unity数字人肢体关联,实现对数字人的驱动。
[0010] 作为优选,所述步骤S1中对于分部标注的实现为:
[0011] S11、首先通过摄像机获取多份人在室内的运动视频,视频中包含人体各类运动姿态,将视频进行分处理,得到img数据;
[0012] S12、其次对img数据进行两类数据标注,一类是目标检测的标注为imgobject,一类是对于关键点的标注为imgkeys,数据格式定义为:img=[imgobject,imgkeys];
[0013] S13、对img数据使用labelme进行目标检测标注,包含人体检测、手部检测、头部检测、脚部检测,将数据格式定义为:imgobject=[imgpath,xleft,yleft,xreight,yreight,classobject],其中imgpath是图片路径,xleft,yleft为左上角点坐标,xreight,yreight为右下角点坐标,classobject为检测目标类别;
[0014] S14、对人体检测、手部检测、头部检测、脚部检测四类检测目标,使用labelme分别进行关键点标注,数据格式定义为:imgkeys=[imgpath,xkeys,ykeys,classkeys],其中xkeys,ykeys是关键点坐标,不同部位的关键点数目也不同,classkeys为关键点目标类别。
[0015] 作为优选,所述步骤S2中搭建动作捕捉模型的实现为:
[0016] S21、首先搭建动作捕捉模型中的人体、头部、手部、脚部的检测模块,先通过一层CNN卷积操作,对图像数据进行放缩,降低计算量,后对卷积得到的向量进行Patch切片,再对其进行Patch编码和位置编码,采用两对TransformerEncode和TransformerDecode构建图像编解码器核心,最终将图像的特征向量通过检测头得到目标类别和位置信息;
[0017] S22、然后搭建动作捕捉模型中的人体、头部、手部、脚部的关键点检测模块,对部位图像进行Patch切片,后对其进行Patch编码和位置编码,先采用两个Transformer Encode构建图像编码器核心,得到图像的特征向量,并对该向量进行类别判别,从而进行各个部位的关键点检测,由于头部关键点数量远高于其它部位,因此多添加一个Transformer Encode构建图像编码器,对其关键点数据进行深度解析,获取图像中人体、头部、手部、脚部的关键点信息。
[0018] 作为优选,所述步骤S3中训练、测试动作捕捉模型的步骤为:
[0019] S31、首先将imgobject数据中的训练集送入动作捕捉部位检测模型,训练方式学习率变化策略采用warmup,训练50轮次,公式为: 其中wl表示单一类别权重,l表示为类别,n为l类别的数据量,m表示全部类别的数据量,分类损失采用类别均衡交叉熵损失函数,公式为: 其中
表示真实的分类标签, 表示为预测的分类标签;检测损失函数采用加权的
IOU+Dice损失函数,公式为:
其中labelobj表示真实的坐标标签, 表示预测的坐标标签;最终动作捕捉部位检测模块总损失函数为:Loss=Lossclass+Lossobject;
[0020] S32、将imgkey数据中的训练集送入动作捕捉关键点检测模块,训练方式学习率变化策略采用warmup,训练100轮次,分类损失采用类别均衡交叉熵损失函数,对于关键点回归的损失函数采用均方根误差损失函数,公式为: 其中n为关键点个数,x和y为真实的关键点坐标,xout,yout为预测的关键点坐标,动作捕捉关键点检测模块总损失函数为:Loss=Lossclass+Lossobject。
[0021] 作为优选,所述步骤S4通过卡尔曼滤波对关键点坐标进行平滑处理,缓解抖动的关键点后处理为:
[0022] S41、首先是预测,根据上一时刻的估计值预测下一时刻的值,成为先验估计,同时这一步会预测下一时刻的误差,成为先验误差;
[0023] S42、然后更新,也称为矫正,首先计算权衡先验估计与测量值的权重的卡尔曼增益,再利用上一步的先验估计计算后验估计,同时更新先验误差到后验误差。
[0024] 作为优选,所述步骤S5对数字人的驱动的实现方式为将人体、头部、手部、脚部的关键点信息与Unity构建的数字人的骨骼结点进行关联,实现对数字人的细粒度驱动,通过摄像机捕捉实时画面,针对实时性要求对视频流数据进行抽帧处理,经过动作捕捉模型得到各个部位的关键点运动信息,采用卡尔曼滤波对其进行平滑处理,最后与Unity数字人关联实现驱动。
[0025] 与现有技术相比,本发明的优点和积极效果在于,本发明提供一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法,构建了关键部位划分和数据融合处理系统。通过该方法,实现了对数字人角色的精确驱动,能够有效缓解肢体抖动和局部姿态刻画模糊的问题,从而提高虚拟角色的动态表现和情感表达能力。这种方法不仅提升了数字人在各种应用场景中的表现质量,还为用户提供了更加真实和沉浸的互动体验,推动了数字人技术的进一步发展。附图说明
[0026] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0027] 图1为动作捕捉部位检测模块示意图;
[0028] 图2为动作捕捉关键点检测模块示意图;
[0029] 图3为动作捕捉模型示意图;
[0030] 图4为卡尔曼滤波示意图;
[0031] 图5为数字人驱动流程图

具体实施方式

[0032] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和实施例对本发明做进一步说明。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0033] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开说明书的具体实施例的限制。
[0034] 实施例,本发明的目的在于提供一种基于计算机视觉动作捕捉的Unity数字人肢体驱动方法,以解决上述背景技术中存在的肢体抖动和局部姿态刻画模糊等问题。该方法通过部位划分的方式,将人体划分为头部、手部、脚部、四肢等关键部位,分别类进行处理,以构建高效的动作捕捉和实时渲染系统,实现对数字人角色的精确驱动,从而增强虚拟角色的动态表现和情感表达能力。通过优化数据融合与处理技术,该方法能够更好地整合动作轨迹和姿态数据,确保数字人在运动过程中的自然流畅性与一致性。此方法将推动数字人技术的进步,为用户提供更加真实和沉浸的互动体验,同时提升虚拟角色在各类应用场景中的表现能力。
[0035] 首先通过获取多份包含各类运动姿态的人物运动视频,并进行分帧处理,为后续精准分析提供丰富数据基础。同时进行分部位标注,包括目标检测标注和关键点标注,且对不同部位采用不同数量关键点标注,使数据标注更具针对性和精确性。将数据集合理划分训练集和测试集,有助于模型有效训练与准确评估,为构建高效动作捕捉系统提供坚实数据支撑,确保后续处理的准确性与可靠性。首先通过摄像机获取多份人在室内的运动视频,视频中包含人体各类运动姿态,将视频进行分帧处理,得到img数据;其次对img数据进行两类数据标注,一类是目标检测的标注为imgobject,一类是对于关键点的标注为imgkeys,数据格式定义为:img=[imgobject,imgkeys];对img数据使用labelme进行目标检测标注,包含人体检测、手部检测、头部检测、脚部检测,将数据格式定义为:imgobject=[imgpath,xleft,yleft,xreight,yreight,classobject],其中imgpath是图片路径,xleft,yleft为左上角点坐标,xreight,yreight为右下角点坐标,classobject为检测目标类别;对人体检测、手部检测、头部检测、脚部检测四类检测目标,使用labelme分别进行关键点标注,数据格式定义为:imgkeys=[imgpath,xkeys,ykeys,classkeys],其中xkeys,ykeys是关键点坐标,不同部位的关键点数目也不同,classkeys为关键点目标类别。对人体进行12点的关键点标注,包含四肢关键点共8个,主干4个关键点。对手部进行21点的关键点标注,包含5根手指,每根3个关键点,手掌6个关键点。对头部进行106点的关键点标注,包含外轮廓33个均匀采样点,嘴巴20个关键点,鼻子15个关键点,眼睛20个关键点,眉毛18个关键点,区分了上眉毛边界。对脚部进行3点的关键点标注,包含前脚掌2个关键点,后脚跟1个关键点。将数据集按照8:2的方式,划分为训练集和测试集。
[0036] 分别搭建人体、头部、手部、脚部的检测模块和关键点解析模块,结构设计合理。动作捕捉部位检测模块如图1所示,检测模块通过CNN卷积、Patch切片、编码及Transformer操作,降低计算量同时精准获取目标类别和位置信息。整体模型架构有助于提高动作捕捉的准确性和效率,为后续数字人肢体驱动提供关键数据来源,确保数字人动作的精准性。首先搭建动作捕捉模型中的人体、头部、手部、脚部的检测模块,先通过一层CNN卷积操作,对图像数据进行放缩,降低计算量,后对卷积得到的向量进行Patch切片,再对其进行Patch编码和位置编码,采用两对TransformerEncode和Transformer Decode构建图像编解码器核心,最终将图像的特征向量通过检测头得到目标类别和位置信息;然后搭建动作捕捉模型中的人体、头部、手部、脚部的关键点检测模块,各个部位的关键点检测模块如图2所示,对部位图像进行Patch切片,后对其进行Patch编码和位置编码,先采用两个TransformerEncode构建图像编码器核心,得到图像的特征向量,并对该向量进行类别判别,从而进行各个部位的关键点检测,由于头部关键点数量远高于其它部位,因此多添加一个Transformer Encode构建图像编码器,对其关键点数据进行深度解析,获取图像中人体、头部、手部、脚部的关键点信息,最终动作捕捉模型如图3所示。
[0037] 针对部位检测和关键点检测模块分别采用合适的训练策略,首先将imgobject数据中的训练集送入动作捕捉部位检测模型,训练方式学习率变化策略采用warmup,训练50轮次,公式为: 其中wl表示单一类别权重,l表示为类别,n为l类别的数据量,m表示全部类别的数据量,分类损失采用类别均衡交叉熵损失函数,公式为:
其中 表示真实
i
的分类标签,labelo ut表示为预测的分类标签;检测损失函数采用加权的IOU+Dice损失函数,公式为: 其中labelobj表示
真实的坐标标签, 表示预测的坐标标签;最终动作捕捉部位检测模块总损失函数为:Loss=Lossclass+Lossobject;另外,将imgkey数据中的训练集送入动作捕捉关键点检测模块,训练方式学习率变化策略采用warmup,训练100轮次,分类损失采用类别均衡交叉熵损失函数,对于关键点回归的损失函数采用均方根误差损失函数,公式为:
其中n为关键点个数,x和y为真实的关键点坐标,
xout,yout为预测的关键点坐标,动作捕捉关键点检测模块总损失函数为:Loss=Lossclass+Lossobject。分类损失采用类别均衡交叉熵损失函数,考虑类别权重,对不均衡数据处理更优;检测损失和关键点回归损失采用相应合理函数,综合计算总损失。通过在训练后用测试集验证准确性,能及时调整优化模型,保证模型在实际应用中对人体各部位检测和关键点识别的高准确性,为数字人驱动提供可靠依据。
[0038] 在关键点后处理,通过卡尔曼滤波对关键点坐标进行平滑处理,缓解抖动。处理流程如图4所示。先是预测,这一步通常是根据上一时刻的估计值预测下一时刻的值,成为先验估计,同时这一步会预测下一时刻的误差,成为先验误差。后更新,也称为矫正,这一步首先计算卡尔曼增益(一个权衡先验估计与测量值的权重),再利用上一步的先验估计计算后验估计,同时更新先验误差到后验误差。
[0039] 最后将人体、头部、手部、脚部的关键点信息与Unity构建的数字人的骨骼结点进行关联,实现对数字人的细粒度驱动。总体流程如图5所示,通过摄像机捕捉实时画面,针对实时性要求对视频流数据进行抽帧处理,经过动作捕捉模型得到各个部位的关键点运动信息,采用卡尔曼滤波对其进行平滑处理,最后与Unity数字人关联实现驱动。此步骤能将前面步骤处理的数据有效转化为数字人的实际动作,确保数字人运动与真人动作高度契合,极大提高了数字人动作的真实性和精确性,为用户带来更加真实、沉浸的互动体验,拓展了数字人在各类应用场景中的应用潜力。
[0040] 以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
QQ群二维码
意见反馈