发明内容
有鉴于此,本申请实施例提供一种虚拟数字人的运动约束方法和装置、电子设备及存储介质,能够有效地约束关节点角度,实现更为准确和可控的动作捕捉。
第一方面,本申请实施例提供了一种虚拟数字人的运动约束方法,包括:
获取真人的人像视频,依次对所述人像视频中的各帧人像图片进行关节点角度识别,得到至少一个关节部位的关节点角度,其中,所述至少一个关节部位包括颈、肩、肘、手腕、脚踝、臀和膝盖中的至少之一;
对于每一个关节部位的关节点角度,将该关节点角度限定在对应的关节点角度约束范围,并利用限定后的关节点角度驱动虚拟数字人,其中,该关节点角度包括对应关节点至少一个运动方向的角度。
第二方面,本申请实施例还提供了一种虚拟数字人的运动约束装置,包括:
识别单元,用于获取真人的人像视频,依次对所述人像视频中的各帧人像图片进行关节点角度识别,得到至少一个关节部位的关节点角度,其中,所述至少一个关节部位包括颈、肩、肘、手腕、脚踝、臀和膝盖中的至少之一;
驱动单元,用于对于每一个关节部位的关节点角度,将该关节点角度限定在对应的关节点角度约束范围,并利用限定后的关节点角度驱动虚拟数字人,其中,该关节点角度包括对应关节点至少一个运动方向的角度。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面所述的虚拟数字人的运动约束方法的步骤。
第四方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面所述的虚拟数字人的运动约束方法的步骤。
综上,本申请实施例提供的虚拟数字人的运动约束方法和装置、电子设备及存储介质,获取真人的人像视频,依次对所述人像视频中的各帧人像图片进行关节点角度识别,得到至少一个关节部位的关节点角度;对于每一个关节部位的关节点角度,将该关节点角度限定在对应的关节点角度约束范围,并利用限定后的关节点角度驱动虚拟数字人,能够有效地约束关节点角度,实现更为准确和可控的动作捕捉。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
参照图1所示,为本申请实施例提供的一种虚拟数字人的运动约束方法,包括:
S10、获取真人的人像视频,依次对所述人像视频中的各帧人像图片进行关节点角度识别,得到至少一个关节部位的关节点角度,其中,所述至少一个关节部位包括颈、肩、肘、手腕、脚踝、臀和膝盖中的至少之一;
本实施例中,需要说明的是,对于真人的人像视频中的每一帧人像图片,均可以从该帧人像图片中识别出至少一个关节部位的关节点角度,至少一个关节部位包括颈、肩、肘、手腕、脚踝、臀和膝盖中的至少之一。除了颈、肩、肘、手腕、脚踝、臀和膝盖之外,还可以识别出脚部关节点角度和盆骨关节点角度,但是可以对脚部关节点角度和盆骨关节点角度不做约束。
S11、对于每一个关节部位的关节点角度,将该关节点角度限定在对应的关节点角度约束范围,并利用限定后的关节点角度驱动虚拟数字人,其中,该关节点角度包括对应关节点至少一个运动方向的角度。
本实施例中,需要说明的是,颈、肩、肘、手腕、脚踝、臀和膝盖中每一个关节部位的关节点角度均包括对应关节点至少一个运动方向的角度,其中,以虚拟数字人站立且双臂伸展为初始位,颈关节点角度包括抬头低头方向的角度、左右摇头方向的角度和头部左右扭转方向的角度,肩关节点角度包括抬起放下手臂方向的角度、手臂伸到胸前胸后方向的角度和肩部扭转方向的角度,肘关节点角度包括手肘向内弯折方向的角度,手腕关节点角度包括抬手往下压手方向的角度、摆手方向的角度和手腕扭转方向的角度,脚踝关节点角度包括脚背抬起压下方向的角度,臀关节点角度包括抬腿方向的角度和左右摆腿方向的角度,膝盖关节点角度包括向后抬小腿方向的角度。在步骤S10确定出至少一个关节部位的关节点角度后,步骤S11需要对步骤S10确定出的每一个关节部位的关节点角度的各个方向的角度进行范围约束,即将其限定在对应方向的关节点角度约束范围。比如对于颈关节点角度中抬头低头方向的角度来说,需要将其限定在颈关节点抬头低头方向对应的角度约束范围内。在对各个方向的角度进行范围约束后,可以使用约束后的角度驱动虚拟数字人。如此,可以使虚拟数字人的关节运动不超出人体生理学范围,保证其运动符合人体生理学特征。
本申请实施例提供的虚拟数字人的运动约束方法,获取真人的人像视频,依次对所述人像视频中的各帧人像图片进行关节点角度识别,得到至少一个关节部位的关节点角度;对于每一个关节部位的关节点角度,将该关节点角度限定在对应的关节点角度约束范围,并利用限定后的关节点角度驱动虚拟数字人,能够有效地约束关节点角度,实现更为准确和可控的动作捕捉。
在前述方法实施例的基础上,所述将该关节点角度限定在对应的关节点角度约束范围,可以包括:
对于该关节点角度中包含的对应关节点每一个运动方向的角度,若该运动方向的角度小于第一阈值,则确定该运动方向的角度为所述第一阈值,或者若该运动方向的角度属于[所述第一阈值,第二阈值],则确定该运动方向的角度不变,或者若该运动方向的角度大于所述第二阈值,则确定该运动方向的角度为所述第二阈值,其中,该运动方向的角度对应的关节点角度约束范围为[所述第一阈值,所述第二阈值]。
本实施例中,需要说明的是,关节点角度范围约束的原则是:关节点角度位于对应的关节点角度约束范围内,则将其作为实际驱动虚拟数字人的关节点角度;关节点角度不位于对应的关节点角度约束范围内,则将距离关节点角度最近的关节点角度约束范围的临界值作为实际驱动虚拟数字人的关节点角度。
比如在实际应用时,颈关节点抬头低头方向的关节点角度约束范围可以为[-45°,45°](可以以低头方向为正方向,抬头方向为反方向),颈关节点左右摇头方向的关节点角度约束范围可以为[-45°,45°](可以以向左摇头方向为正方向,向右摇头方向为反方向),颈关节点头部左右扭转方向的关节点角度约束范围可以为[-45°,45°](可以以向左扭转方向为正方向,向右扭转方向为反方向);肩关节点抬起放下手臂方向的关节点角度约束范围可以为[-90°,90°](可以以放下手臂方向为正方向,抬起手臂方向为反方向),肩关节点手臂伸到胸前胸后方向的关节点角度约束范围可以为[-90°,40°](可以以手臂伸到胸后方向为正方向,手臂伸到胸前方向为反方向),肩关节点肩部扭转方向的关节点角度约束范围可以为[-45°,45°](可以以肩部向外扭转方向为正方向,肩部向内扭转方向为反方向);肘关节点手肘向内弯折方向的关节点角度约束范围可以为[0°,180°];手腕关节点抬手往下压手方向的关节点角度约束范围可以为[-90°,90°](可以以往下压手方向为正方向,抬手方向为反方向),手腕关节点摆手方向的关节点角度约束范围可以为[-30°,30°](可以以向右摆手方向为正方向,向左摆手方向为反方向),手腕关节点手腕扭转方向的关节点角度约束范围可以为[-180°,180°](可以以手腕向外扭转方向为正方向,手腕向内扭转方向为反方向);脚踝关节点脚背抬起压下方向的关节点角度约束范围可以为[-30°,90°](可以以脚背压下方向为正方向,脚背抬起方向为反方向);臀关节点抬腿方向的关节点角度约束范围可以为[-45°,90°](可以以向后抬腿方向为正方向,向前抬腿方向为反方向),臀关节点左右摆腿方向的关节点角度约束范围可以为[-60°,60°](可以以向右摆腿方向为正方向,向左摆腿方向为反方向);膝盖关节点向后抬小腿方向的关节点角度约束范围可以为[0°,180°]。需要说明的是,可以根据需要调整上述各个范围对应的上下临界值以及各个运动方向的正反。
假设对于某一帧人像图片进行关节点角度识别,得到了颈关节点角度、肩关节点角度、肘关节点角度和手腕关节点角度,以颈关节点角度为例说明关节点角度范围约束的方法。假设颈关节点抬头低头方向的关节点角度约束范围为[-45°,45°](以低头方向为正方向,抬头方向为反方向),颈关节点左右摇头方向的关节点角度约束范围为[-45°,45°](以向左摇头方向为正方向,向右摇头方向为反方向),颈关节点头部左右扭转方向的关节点角度约束范围为[-45°,45°](以向左扭转方向为正方向,向右扭转方向为反方向),识别出的颈关节点角度中抬头低头方向的关节点角度为30°,左右摇头方向的关节点角度为25°,左右扭转方向的关节点角度为55°,则对抬头低头方向的关节点角度限定为30°,对左右摇头方向的关节点角度限定为25°,对左右扭转方向的关节点角度限定为45°。
在前述方法实施例的基础上,所述方法还可以包括:
对脚踝关节点角度进行调整,调整公式为:θankle`=k1×θknee+k2×θankle,其中,θankle`表示调整后的脚踝关节点角度,θknee表示调整前的膝盖关节点角度,θankle表示调整前的脚踝关节点角度,k1和k2表示调整系数;
对臀关节点角度进行调整,调整公式为:θhip`=k3×θknee+k4×θhip,其中,θhip`表示调整后的臀关节点角度,θhip表示调整前的臀关节点角度,k3和k4表示调整系数;
对膝盖关节点角度进行调整,调整公式为:θknee`=k5×θknee+k6×θankle+k7×θhip,其中,θknee`表示调整后的膝盖关节点角度,k5、k6和k7表示调整系数。
本实施例中,需要说明的是,在行走、跑步和下蹲等动作中,臀部的运动会带动膝盖的运动,膝盖的运动会带动脚踝的运动。具体来说,当臀关节(也就是髋关节)屈曲时,膝关节也会相应屈曲,这是因为臀关节屈曲使得大腿骨向身体前方运动,进而导致膝关节屈曲;当臀关节伸展时,膝关节也会相应伸展,例如,在站立时,通过臀关节的伸展,大腿骨向后方运动,推动膝关节伸展,使身体保持直立姿势。当膝关节屈曲时,踝关节会相应地背屈,这是因为膝关节的屈曲使得小腿骨向后倾斜,导致踝关节背屈,即将足尖抬起;当膝关节伸展时,踝关节会相应地跖屈,例如,当身体从蹲下位置站立起来时,膝关节的伸展使小腿骨向前倾斜,推动踝关节跖屈,即将足尖踩地。由此,为了更精确地约束关节点角度,对于脚踝关节点角度、臀关节点角度和膝盖关节点角度的约束需要考虑臀部、膝盖和脚踝之间的联动关系,具体地,可以按照上述调整公式对脚踝关节点角度、臀关节点角度和膝盖关节点角度进行约束。需要说明的是,上述公式中θhip表示调整前的臀关节点抬腿方向的关节点角度,θhip`表示调整后的臀关节点抬腿方向的关节点角度。而对于臀关节点左右摆腿方向的关节点角度则仍然按照前述关节点角度约束范围方案进行约束。上述调整公式中,k1>0,k2>0,k3>0,k4>0,k5>0,k6>0,k7>0,k1+k2=1,k3+k4=1,k5+k6+k7=1,在一较优实施例中,k1=k2=k3=k4=k5=1/2,k6=k7=1/4。
参照图2所示,为本申请实施例提供的一种虚拟数字人的运动约束装置,包括:
识别单元20,用于获取真人的人像视频,依次对所述人像视频中的各帧人像图片进行关节点角度识别,得到至少一个关节部位的关节点角度,其中,所述至少一个关节部位包括颈、肩、肘、手腕、脚踝、臀和膝盖中的至少之一;
驱动单元21,用于对于每一个关节部位的关节点角度,将该关节点角度限定在对应的关节点角度约束范围,并利用限定后的关节点角度驱动虚拟数字人,其中,该关节点角度包括对应关节点至少一个运动方向的角度。
本申请实施例提供的虚拟数字人的运动约束装置,借助于识别单元20获取真人的人像视频,依次对所述人像视频中的各帧人像图片进行关节点角度识别,得到至少一个关节部位的关节点角度;对于每一个关节部位的关节点角度,借助于驱动单元21将该关节点角度限定在对应的关节点角度约束范围,并利用限定后的关节点角度驱动虚拟数字人,能够有效地约束关节点角度,实现更为准确和可控的动作捕捉。
在前述装置实施例的基础上,所述驱动单元,可以用于:
对于该关节点角度中包含的对应关节点每一个运动方向的角度,若该运动方向的角度小于第一阈值,则确定该运动方向的角度为所述第一阈值,或者若该运动方向的角度属于[所述第一阈值,第二阈值],则确定该运动方向的角度不变,或者若该运动方向的角度大于所述第二阈值,则确定该运动方向的角度为所述第二阈值,其中,该运动方向的角度对应的关节点角度约束范围为[所述第一阈值,所述第二阈值]。
在前述装置实施例的基础上,所述驱动单元,还可以用于:
对脚踝关节点角度进行调整,调整公式为:θankle`=k1×θknee+k2×θankle,其中,θankle`表示调整后的脚踝关节点角度,θknee表示调整前的膝盖关节点角度,θankle表示调整前的脚踝关节点角度,k1和k2表示调整系数;
对臀关节点角度进行调整,调整公式为:θhip`=k3×θknee+k4×θhip,其中,θhip`表示调整后的臀关节点角度,θhip表示调整前的臀关节点角度,k3和k4表示调整系数;
对膝盖关节点角度进行调整,调整公式为:θknee`=k5×θknee+k6×θankle+k7×θhip,其中,θknee`表示调整后的膝盖关节点角度,k5、k6和k7表示调整系数。
在前述装置实施例的基础上,k1=k2=k3=k4=k5=1/2,k6=k7=1/4。
本申请实施例提供的虚拟数字人的运动约束装置,其实现过程与本申请实施例提供的虚拟数字人的运动约束方法一致,所能达到的效果也与本申请实施例提供的虚拟数字人的运动约束方法相同,在此不再赘述。
如图3所示,本申请实施例提供的一种电子设备,包括:处理器30、存储器31和总线32,所述存储器31存储有所述处理器30可执行的机器可读指令,当电子设备运行时,所述处理器30与所述存储器31之间通过总线32通信,所述处理器30执行所述机器可读指令,以执行如上述虚拟数字人的运动约束方法的步骤。
具体地,上述存储器31和处理器30能够为通用的存储器和处理器,这里不做具体限定,当处理器30运行存储器31存储的计算机程序时,能够执行上述虚拟数字人的运动约束方法。
对应于上述虚拟数字人的运动约束方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述虚拟数字人的运动约束方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。