具有改进的姿态跟踪的运动学交互系统
背景技术:1.三维(3d)人类姿态估计技术被用于许多应用中,比如人机交互、运动中的生物力学分析、电影的3d角色动画、游戏、以及社会虚拟现实(virtual reality,vr)。该技术的一个目标是将在二维(2d)视频中捕捉的一个或多个人的人体关节定位在3d空间中。然而,这在实践中是很难实现的。从捕捉的2d图像预测身体关节的3d位置通常使用具有相应3d姿态注释的图像的数据集,但试图从这样的数据集进行预测经常会导致时间上不连贯的输出,在相邻的视频帧中出现明显的抖动和不现实的人类姿态。因此,在将人类运动从捕捉的2d视频或图像正确映射到再现的3d图像方面,存在许多非简单的挑战。
附图说明
2.要求保护的主题的实施例的特征和优点将随着以下详细描述进行并且在参考附图后变得清楚,附图中:
3.图1图示了根据本公开的实施例的对两个个体发生3d姿态跟踪的示例环境。
4.图2图示了根据本公开的实施例配置的示例运动学交互系统的框图。
5.图3是根据本公开的实施例的生成主体的3d姿态的方法。
6.图4a图示了根据本公开的实施例的从2d图像捕捉的主体的示例姿态。
7.图4b图示了根据本公开的实施例的叠加在主体上的2d骨架图。
8.图4c图示了根据本公开的实施例的从图4b的2d骨架图得出的3d骨架图。
9.图4d图示了根据本公开的实施例的考虑到更准确的骨段的改进的3d骨架图。
10.图5a图示了根据本公开的实施例的模板3d骨架图的示例。
11.图5b图示了根据本公开的实施例的被表示为一组关节角度的3d骨架图的示例。
12.图6是根据本公开的实施例的通过最小化目标函数来改进估计的3d骨架图的方法。
13.图7a-图7c图示了根据本公开的一些实施例配置的运动学交互系统的示例应用。
14.虽然接下来的详述描述将在参考说明性实施例的情况下进行,但是其许多替代、修改和变化鉴于本公开将是清楚可见的。
具体实施方式
15.公开了技术,用于对使用二维(2d)相机的图像中捕捉的主体提供改进的姿态跟踪,并且生成再现主体的姿态的三维(3d)图像。根据一个实施例,这些技术可以例如被实现为运动学交互系统,该系统被配置为使用单个图像捕捉设备,例如rgb相机,来捕捉主体的图像或视频。运动学交互系统包括至少一个处理器,该处理器被编程或者以其他方式配置为将捕捉的主体的姿态或运动映射到显示的3d图像上。更详细来说,根据一个实施例,至少一个处理器被编程为产生与一个或多个图像中的主体相关联的2d骨架图,并且至少基于从2d骨架图得出的多个2d关节位置来产生与主体相关联的估计的3d骨架图。在一些这样的实施例中,使用经训练的神经网络,例如深度神经网络(deep neural network,dnn)或者卷积
神经网络(convolutional neural network,cnn),来从2d骨架图估计出3d骨架图。估计的3d骨架图包括多个3d关节位置以及3d关节位置的相应对之间的多个骨段。正如本文将会明白的,估计的3d骨架图可能包括一些不自然或者不现实的方面,这些方面可以被完善。更详细来说,根据一个实施例,至少一个处理器访问模板3d骨架图,该模板3d骨架图具有多个模板3d关节位置和模板3d关节位置的相应对之间的多个模板骨段。模板3d骨架图可例如由处理器生成或者经由存储器访问,并且可包括骨段,这些骨段具有使用人体测量统计基于模板3d骨架图的给定高度而设定的长度。有了模板3d骨架图,处理器可以通过至少重定位估计的3d骨架图的多个骨段中的一个或多个骨段,以更紧密地匹配模板3d骨架图的相应模板骨段,从而产生改进的3d骨架图。然后,改进的3d骨架图可以以各种方式(例如,使用各种皮肤或图形)被动画化,以跟踪主体的相应运动。鉴于本公开,将明白许多应用、变化和替代性实施例。
16.总体概述
17.如前所述,在生成准确跟踪主体的运动的3d图像方面,仍然存在着一些非微不足道的问题。现有的3d人类姿态估计方法的最大问题之一是,用于估计3d姿态的训练集合往往不适用于现实生活场景。例如,深度学习方法具有训练数据集,其中有许多带有相应的3d姿态注释的图像,这些方法被用来在给定捕捉的主体的2d图像的情况下估计3d姿态。但这种训练数据集使用的模型通常是在室内或者一些其他控制良好的环境中捕捉的。由于数据训练集模型和在真实环境中捕捉的真实生活模型之间存在差距,所以经训练的模型经常不能产生鲁棒的3d跟踪结果。此外,由于缺乏支配身体结构和运动的解剖学约束,从深度学习模型直接预测3d姿态可能导致时间上不连贯的输出,带有明显的抖动,变化的骨段,以及相邻视频帧中不现实的人类姿态。
18.从而,本文提供了技术,根据一个实施例,这些技术通过在估计的3d骨架图上使用真实的解剖学约束,来产生映射到主体的改进的3d姿态。简而言之,使用具有解剖学上正确的骨段和位置的模板3d骨架图来调整估计的3d骨架图。根据一个实施例,调整后的3d骨架图的各种关节位置被转换为关节角度,并且通过最小化表示各种骨架图之间的关系的目标函数,来找到一组改进的关节角度。一旦生成了改进的3d骨架图,它就可以被动画化来跟踪主体的运动。各种皮肤可以被应用到改进的3d骨架图,以创建各种不同的化身动画。该动画可以使用任何标准的3d动画软件来执行,例如maya、blender、unreal engine或者unity。虽然正如将会明白的,任意数目的应用都可以从这些技术中受益,但它们在游戏和虚拟现实应用的情境中特别有用。
19.正如将进一步明白的,虽然本文的描述侧重于人类主体的跟踪,但运动学交互系统可用于跟踪任何主体的运动,对于这种主体,存在一些存储的图像数据集(例如,用于训练dnn或cnn)。这些主体可以是有机的或者非有机的实体。因此,诸如“骨段”之类的术语的使用可以被更广泛地归结为任何主体的关节位置之间的节段,包括无机主体(例如,可作出姿态的人体模型或者假人,或者机器人,或者任何其他具有伪骨骼结构的物体)。此外,在一些实施例中,如果多于一个主体同时存在于捕捉的2d图像中,则它们可以同时被跟踪。如本文所使用的,2d图像的捕捉既涵盖了单个图像,也涵盖了按顺序捕捉的图像,以产生视频或者一系列时间上相关的图像。
20.根据一些特定的示例实施例,一种被设计为生成主体的3d姿态的系统包括图像捕
捉设备和至少一个处理器。图像捕捉设备被配置为捕捉主体的一个或多个图像。至少一个处理器被配置为:从图像捕捉设备接收一个或多个图像;产生与一个或多个图像中的主体相关联的二维(2d)骨架图,其中,2d骨架图包括多个2d关节位置;至少基于多个2d关节位置,来产生与一个或多个图像中的主体相关联的估计的三维(3d)骨架图,其中,估计的3d骨架图包括多个3d关节位置以及3d关节位置的相应对之间的多个骨段;访问具有多个模板3d关节位置以及模板3d关节位置的相应对之间的多个模板骨段的模板3d骨架图;通过至少重定位估计3d骨架图的多个骨段中的一个或多个,以更紧密地匹配模板3d骨架图的相应模板骨段,来产生改进的3d骨架图;以及基于主体的相应运动,来对改进的3d骨架图进行动画化。
21.根据另一个示例实施例,一种生成主体的3d姿态的由计算机实现的方法包括:接收由图像捕捉设备捕捉的主体的一个或多个图像;产生与一个或多个图像中的主体相关联的二维(2d)骨架图,其中,2d骨架图包括多个2d关节位置;至少基于多个2d关节位置,来产生与一个或多个图像中的主体相关联的估计的三维(3d)骨架图,其中,估计的3d骨架图包括多个3d关节位置以及3d关节位置的相应对之间的多个骨段;访问具有多个模板3d关节位置以及模板3d关节位置的相应对之间的多个模板骨段的模板3d骨架图;通过至少重定位估计的3d骨架图的多个骨段中的一个或多个骨段,以更紧密地匹配模板3d骨架图的相应模板骨段,来产生改进的3d骨架图;以及基于主体的相应运动,来对改进的3d骨架图进行动画化。
22.根据另一个示例实施例,公开了一种计算机程序产品,其包括一个或多个非暂态机器可读介质,该介质上编码有指令,这些指令当被一个或多个处理器执行时,使得一种过程被执行来生成主体的3d姿态。该过程可包括上面论述的任何方法。
23.描述使用短语“在一实施例中”或者“在实施例中”,它们各自指的是一个或多个相同或不同的实施例。此外,对于本公开的实施例使用的术语“包括”、“包含”、“具有”等等,是同义的。当用于描述尺寸的范围时,短语“x和y之间”表示包括x和y的范围。
24.各种操作可按对于理解要求保护的主题最有帮助的方式被依次描述为多个离散的动作或操作。然而,描述的顺序不应当被解释为意味着这些操作一定是依赖于顺序的。具体地,可以不按呈现的顺序执行这些操作。可以按与描述的实施例不同的顺序来执行描述的操作。在额外的实施例中可以执行各种额外的操作并且/或者可以省略描述的操作。
25.运动学交互系统概述
26.图1图示了根据一个实施例的示例运动学环境100,其中一个或多个主体的运动被跟踪并且用于在显示屏幕上生成主体的3d表示。运动学环境100可以代表家庭中的房间,例如客厅,或者它可以是室外地点,在那里主体四处移动,例如在体育赛事中。
27.根据一个实施例,图像捕捉设备102存在来捕捉主体104-1和104-2的2d图像。虽然在这个示例中存在两个主体,但应当理解,可以用图像捕捉设备102来捕捉任意数目的主体的图像。根据一个实施例,图像捕捉设备102代表单个相机,只捕捉主体104-1和104-2的2d图像。例如,图像捕捉设备102可以是单个rgb相机。
28.图像捕捉设备102可以有线或无线地连接到显示器106,以显示主体104-1和104-2的3d表示。根据一些实施例,图像捕捉设备102内的至少一个处理器在显示屏106上创建3d化身108-1和108-2,以分别跟踪主体104-1和104-2的运动。根据一些实施例,该至少一个处
理器存在于显示器106内。在一些其他实施例中,至少一个处理器位于与图像捕捉设备102和显示器106都分开的设备中。
29.可以生成3d化身108-1和108-2,以使得化身以某种方式与显示的环境交互。例如,如果显示器106显示了物体向化身108-1飞去,那么主体104-1可能需要躲避或者执行某个其他的动作,以便3d化身108-1类似地躲避以避开显示器106上的飞行物体。任何其他类似的交互将是很容易清楚的。
30.图2图示了根据本公开的某些实施例配置的示例运动学交互系统200。在一些实施例中,运动学交互系统200可以容宿以下各项或者以其他方式被包含到以下各项中:个人计算机、工作站、服务器系统、膝上型计算机、超级膝上型计算机、平板设备、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(personal digital assistant,pda)、蜂窝电话、组合蜂窝电话和pda、智能设备(例如,智能电话或智能平板设备)、移动互联网设备(mobile internet device,mid)、消息传递设备、数据通信设备、成像设备、可穿戴设备、嵌入式系统,等等。在某些实施例中可以使用不同设备的任意组合。在一些实施例中,运动学交互系统200是独立的计算系统,与外部相机201和显示器203对接。在一些实施例中,运动学交互系统200包括相机201和显示器203中的一者或两者。相机201可以代表单个rgb相机,其捕捉一个或多个主体的2d图像。显示器203可以是任何提供视觉图像的显示设备。显示器203的示例可包括触摸屏显示器、计算机显示器、电视显示器、高清晰度显示器、投影仪系统、全息显示器、抬头显示器(heads-up display,hud)、液晶显示器(liquid crystal display,lcd)、或者发光二极管(light emitting diode,led)显示器。
31.在一些实施例中,运动学交互系统200可包括处理器202、存储器204、网络接口206、输入/输出(i/o)系统208、用户界面210和存储系统212的任意组合。可以进一步看到,还提供了总线和/或互连,以允许上面列出的各种组件和/或未示出的其他组件之间的通信。运动学交互系统200可以通过网络接口206耦合到网络216,以允许与其他计算设备、平台或资源进行通信。未反映在图2的框图中的其他组件和功能将根据本公开内容而清楚可见,并且将会明白,其他实施例不限于任何特定的硬件配置。
32.处理器202可以是任何适当的处理器,并且可包括一个或多个协处理器或控制器,以协助与运动学交互系统200相关联的控制和处理操作。在一些实施例中,处理器202可被实现为任意数目的处理器核心。处理器(或处理器核心)可以是任何类型的处理器,例如,微处理器、嵌入式处理器、数字信号处理器(digital signal processor,dsp)、图形处理器(graphics processor,gpu)、网络处理器、现场可编程门阵列或者其他被配置为执行代码的设备。这些处理器可以是多线程核心,因为它们每个核心可包括多于一个硬件线程上下文(或者“逻辑处理器”)。
33.处理器202可被设计为执行软件,该产生在从相机201捕捉的图像中的主体上产生2d骨架图,并且基于2d骨架图形成3d骨架图。正如本文将论述的,根据一些实施例,形成3d骨架图的过程通过使用模板3d骨架图来纠正解剖学上的异常而得到改进。在一些实施例中,处理器202使用利用各种主体姿态的数据集训练的dnn或cnn,从2d骨架图估计3d骨架图。在一些实施例中,处理器202或者将最终的3d骨架图直接输出到显示器203上(例如,骨骼图像),或者带有某种形式的皮肤以在显示器203上创建3d化身。
34.存储器204可以使用任何适当类型的数字存储来实现,包括例如闪存和/或随机访
问存储器(random-access memory,ram)。在一些实施例中,存储器204可包括存储器层次体系和/或存储器缓存的各种层。存储器204可被实现为易失性存储器设备,例如但不限于ram、动态ram(dynamic ram,dram)或者静态ram(static ram,sram)设备。存储系统212可被实现为非易失性存储设备,例如但不限于以下各项中的一个或多个:硬盘驱动器(hard disk drive,hdd)、固态驱动器(solid-state drive,ssd)、通用串行总线(universal serial bus,usb)驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、闪存、电池后备的同步dram(synchronous dram,sdram)、和/或网络可访问的存储设备。在一些实施例中,当包括多个硬盘驱动器时,存储系统212可包括技术来为有价值的数字媒体增加存储性能增强保护。存储器204可以代表任意数目的存储器设备。
35.在一些实施例中,存储器204存储由处理器202访问的神经网络(例如,dnn或cnn)的各种层和节点,以创建3d骨架图。在一些实施例中,处理器202在存储器204中存储由相机202捕捉的一个或多个2d图像、一个或多个2d骨架图、和/或一个或多个3d骨架图。更一般而言,存储器204可包括3d姿态应用205,该应用包括要由处理器202执行的操作,以生成改进的3d骨架图,该骨架图跟踪从相机201拍摄的一个或多个2d图像中捕捉的主体的姿态。本文参考图3描述了由3d姿态应用205执行的各种操作中的至少一些。在一些实施例中,存储器204包括图像集合207,该图像集合具有不同3d姿态以及姿态的关节位置的数据库,该数据库可用于训练或更新神经网络。
36.处理器202可被配置为执行操作系统(operating system,os)214,它可包括任何适当的操作系统,例如谷歌安卓(加州山景城的谷歌公司)、微软windows(华盛顿州雷德蒙德的微软公司)、苹果os x(加州库比蒂诺的苹果公司)、linux、或者实时操作系统(real-time operating system,rtos)。根据本公开内容将会明白,本文提供的技术可以在不考虑结合运动学交互系统200一起提供的特定操作系统的情况下实现,因此也可以使用任何适当的现有或随后开发的平台来实现。
37.网络接口206可以是任何适当的网络芯片或芯片组,其允许运动学交互系统200的其他组件和/或网络216之间的有线和/或无线连接,从而使得运动学交互系统200能够与其他本地和/或远程计算系统、服务器、基于云的服务器和/或其他资源通信。有线通信可以符合现有的(或者尚未开发的)标准,例如,以太网。无线通信可以符合现有的(或者尚未开发的)标准,例如,包括lte(long term evolution,长期演进)的蜂窝通信、无线保真(wireless fidelity,wi-fi)、蓝牙、和/或近场通信(near field communication,nfc)。示范性无线网络包括但不限于无线局域网、无线个人区域网络、无线城域网、蜂窝网络、以及卫星网络。
38.i/o系统208可被配置为在各种i/o设备和运动学交互系统200的其他组件之间作为接口。i/o设备可包括但不限于用户界面210。用户界面210可包括诸如显示元件、触摸板、键盘、鼠标和扬声器等等之类的设备(未示出)。i/o系统208可包括被配置为执行用于在显示元件上渲染的图像的处理的图形子系统。图形子系统例如可以是图形处理单元或者视觉处理单元(visual processing unit,vpu)。模拟或数字接口可用于通信地耦合图形子系统和显示元件。例如,该接口可以是高清多媒体接口(high definition multimedia interface,hdmi)、displayport、无线hdmi和/或任何其他使用无线高清晰度兼容技术的适当接口中的任何一者。在一些实施例中,图形子系统可以被集成到处理器202或者运动学交
互系统200的任何芯片组中。
39.将会明白,在一些实施例中,运动学交互系统200的各种组件可以被组合或集成在片上系统(system-on-a-chip,soc)体系结构中。在一些实施例中,这些组件可以是硬件组件、固件组件、软件组件或者硬件、固件或者软件的任意适当组合。
40.在各种实施例中,运动学交互系统200可被实现为无线系统、有线系统、或者两者的组合。当被实现为无线系统时,运动学交互系统200可包括适合于通过无线共享介质进行通信的组件和接口,例如一个或多个天线、发送器、接收器、收发器、放大器、滤波器、控制逻辑,等等。无线共享介质的示例可包括无线频谱的一些部分,例如射频频谱等等。当被实现为有线系统时,运动学交互系统200可包括适合于通过有线通信介质通信的组件和接口,例如输入/输出适配器、将输入/输出适配器与相应的有线通信介质连接的物理连接器、网络接口卡(network interface card,nic)、盘控制器、视频控制器、音频控制器,等等。有线通信介质的示例可包括导线、电缆金属引线、印刷电路板(printed circuit board,pcb)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤,等等。
41.用于改进3d骨架图的方法
42.图3是根据本公开的实施例的用于生成主体的3d姿态的示例方法300的流程图。可以例如使用运动学交互系统200的一个或多个图示组件来执行方法300。更一般而言,方法300和本文描述的其他方法可以在硬件或者硬件和软件的组合中实现。在另一个实施例中,方法300可由具有定制处理电路的定制电路实现,例如配置为执行方法300的一个或多个专用集成电路(application specific integrated circuit,asic)。此外,虽然本文描述的方法可能看起来有一定的操作顺序,但其他实施例可能没有受到这样的限制。因此,操作的顺序在各实施例之间可以被改变,根据本公开内容,这将是清楚可见的。
43.方法300从操作302开始,在该操作中,根据一个实施例,捕捉主体的一个或多个图像。捕捉的图像可以是单个图像或者视频。根据一个实施例,图像是利用单个相机捕捉的,例如单个rgb相机。图4a图示了在特定姿态下的主体402的捕捉图像的一个示例。捕捉的图像可以包含主体402的全部或者只有主体402的一部分。在单个捕捉的图像或者视频帧内也可能存在其他主体。
44.方法300继续进行操作304,在该操作中,根据一个实施例,生成主体的2d骨架图。2d姿态检测软件,例如openpose,可用于基于捕捉的主体图像生成2d骨架图,虽然也可以使用任何其他2d姿态检测软件或者算法。2d骨架图(s
2d
)可被表示为一系列的2d关节位置,以使得对于图像空间中的总共j个关节位置,图4b图示了根据一个实施例,叠加在主体402上的示例2d骨架图404。2d骨架图包括多个2d关节位置406,以在2d空间中再现主体402的姿态。此外,在一些实施例中,提供骨长段以形成每个2d关节位置406之间的映射。
45.根据一些实施例,除了预测各种2d关节位置的位置以外,2d姿态检测器软件还输出一组置信得分,其中每个得分表示其关联的2d关节位置的检测可信度。置信得分可以基于特定的2d关节位置在主体402的捕捉图像中的识别程度。例如,对于自遮挡的2d关节位置,预期置信得分较低,而对于未遮挡的2d关节位置,预期置信得分较高。置信得分也可能受到主体的姿态的影响,因为一些姿态可能比其他姿态更难识别主体上的特定
2d关节位置。
46.根据一些实施例,跟踪算法被用来识别在捕捉的图像中存在的多于一个主体。为每个识别的主体产生单独的2d骨架图,并且为每个主体赋予独特的标签,以在任何后来捕捉的图像中识别该主体。在一些实施例中,一个或多个噪声滤波算法可被应用于2d骨架图,以提供更稳定和平滑的结果。一些示例噪声滤波算法包括欧式滤波器或者卡尔曼滤波器。
47.根据一些实施例,2d骨架图在被用于估计3d骨架图之前被正规化,以便考虑到来自捕捉的2d图像的环境或主体中的微小变化。可使用以下公式执行2d关节位置的正规化过程:
[0048][0049]
第零个2d关节位置被设置为骨盆关节位置,并且所有其他2d关节位置基于其与第零个2d关节位置的距离被正规化。比例系数(1/λ)可以被设置为第零个2d关节位置与所有其他2d关节位置之间的最大距离。
[0050]
方法300继续进行操作306,在该操作中,根据一个实施例,基于2d骨架图估计主体的3d骨架图。3d骨架图估计可以使用各种2d关节位置的位置作为对神经网络的输入,该神经网络被训练为基于输入的2d关节位置来识别最紧密拟合的3d姿态表示。根据一些实施例,2d关节位置的正规化版本被用来生成3d骨架图,如上所述。根据一些实施例,可以使用任何公开可用的3d姿态数据集来训练用于从2d关节位置估计3d骨架图的神经网络。一些示例数据集包括h3.6m、mpi-inf-3dhp、以及humaneva数据集。根据一些实施例,由神经网络产生的输出包括至少多个用于构建3d骨架图的3d关节位置。
[0051]
图4c图示了根据一个实施例的可以基于2d骨架图404来估计的主体402的示例3d骨架图408。3d骨架图408包括使用骨段412相互连接的多个3d关节位置410。虽然估计的3d骨架图408可用于表示主体402,但如果没有进一步优化,该表示的准确性可能会受到影响。从而,根据一些实施例,3d骨架图408经历额外的处理以提供改进的3d骨架图。
[0052]
方法300继续进行操作308,在该操作中,根据一个实施例,访问模板3d骨架图。模板3d骨架图可以被安排在“休息”姿态中,例如图5a的示例模板3d骨架图501。在这个示例中,模板3d骨架图501包括多个模板关节位置504和将模板关节位置504相互连接的多个模板骨段506。模板3d骨架图的姿态可以被选择以确保每个模板关节位置504不被遮挡。将会明白,除了图5a中所示的姿态以外,还可能使用其他未遮挡的“休息”姿态。根据一个实施例,如果3d骨架图501的高度是已知的,那么可以使用人类测量学统计来确定各种模板骨段506的长度。在一些实施例中,为模板3d骨架图使用默认高度,例如默认高度为165cm,这可以表示成年人类的平均高度。在一些实施例中,模板3d骨架图的高度可以是由用户设置的任何值,从而可以提供给定主体的准确高度,以形成更紧密拟合给定主体的大小的模板3d骨架图。在一些实施例中,可以基于一些输入的参数,例如主体的性别和年龄,来得出高度。在另外一些实施例中,可以使用高度估计算法,例如基于所描绘的特征,可能包括2d图像中描绘的其他物体,来估计主体的高度的算法。无论以何种方式确定模板3d骨架图的高度,都可以基于高度计算模板关节位置之间的模板骨段,以产生完整的模板3d骨架图。
[0053]
模板3d骨架图可以被存储在存储器中,从而被从存储器中访问(例如,在先前为主
体402定制了模板的情形中)。在另一个示例中,模板3d骨架图是基于休息姿态和高度生成的,这可以通过上面论述的任何不同方式获得。
[0054]
方法300继续进行操作310,在该操作中,根据一个实施例,生成改进的3d骨架图。根据一个实施例,改进的3d骨架图是通过使用模板3d骨架图更改从神经网络输出的估计3d骨架图而生成的。本文将参考图6进一步论述如何产生改进的3d骨架图的更详细过程。一般而言,该过程涉及基于模板3d骨架图中的骨段的人类测量学上正确的长度更新估计的3d骨架图中的一个或多个骨段的长度,并且相应地调整关节角度。图4d中图示了主体402的改进的3d骨架图的示例。改进的3d骨架图414包括更新的关节位置416(例如,更直的脊柱)以及更新的骨段418(例如,更适当间隔的腿和弯曲的膝盖位置)。还注意到右臂肘部的角度变化,现在更自然地向内弯曲而不是向外弯曲。
[0055]
方法300继续进行操作312,在该操作中,根据一个实施例,在操作310中产生的改进的3d骨架图在屏幕上被显示或者动画化。在一些示例中,改进的3d骨架图在没有任何皮肤或者其他图形覆盖在骨骼框架上的情况下被显示。在一些示例中,在改进的3d骨架图上应用皮肤,以产生更逼真的外形,其可以被动画化以跟踪主体的运动。可以使用任何现有的动画软件,包括maya、blender、unreal engine或者unity,仅举几例。
[0056]
图6是根据一个实施例的用于基于估计的3d骨架图和模板3d骨架图生成改进的3d骨架图的方法600的流程图。将会明白,此方法600示出了来自方法300的操作310的进一步细节。可以例如使用运动学交互系统200的一个或多个图示组件来执行方法600。更一般而言,方法600和本文描述的其他方法可以在硬件或者硬件和软件的组合中实现。在另一个实施例中,方法600可由具有定制处理电路的定制电路实现,例如配置为执行方法600的一个或多个专用集成电路(asic)。此外,虽然本文描述的方法可能看起来有一定的操作顺序,但其他实施例可能没有受到这样的限制。因此,操作的顺序在各实施例之间可以被改变,根据本公开内容,这将是清楚可见的。
[0057]
方法600从操作602开始,在该操作中,根据一个实施例,估计的3d骨架图中的一个或多个骨段的长度被重定位,以更紧密地匹配模板3d骨架图中的相应骨段的长度。基于实际人类测量统计数据改变骨段长度,有助于确保神经网络输出产生的结果在解剖学上是可能的,并且更紧密地匹配真实的身体物理学。根据一个实施例,估计的3d骨架图的骨段被改变,同时保持其相对方向不变。具有重定位的骨段长度的估计3d骨架图在此被称为重定位的3d骨架图。
[0058]
方法600继续进行操作604,在该操作中,根据一个实施例,将重定位的3d骨架图的各种关节位置的3d坐标转换为其相应的关节角度。例如,重定位的3d骨架图可以改为用s(θ)表示,其中其中其中表示每个编号的3d关节位置(k)相对于其在运动学树中的父亲的相对放置的轴角度表示。例如,来自图5a的模板3d骨架图501可以表示对于θ使用零向量的骨架图,而来自图5b的重定位3d骨架图502包括影响各种重定位3d关节位置508和重定位骨段510的位置和方向的一些关节旋转θ。在一些实施例中,参考根关节位置提供各种关节角度。在一些示例中,根关节位置是主体的骨盆关节。
[0059]
方法600继续进行操作606,在该操作中,根据一个实施例,重定位的3d骨架图的各
种关节角度θ与根关节的3d坐标r
3d
一起被确定,以便生成改进的3d骨架图。根据一个实施例,可以通过最小化目标函数e(θ,r
3d
)的误差来确定各种参数。可以按照下面公式中所规定来定义该目标函数:
[0060]
e(θ,r
3d
)=w1*e
key
(θ,r
3d
)+w2*e
init
(θ)+w3*e
prior
(θ)+w4*e
temporal
(θ,r
3d
)(2)
[0061]ekey
(θ,r
3d
)=||c
2d
·
(π(s
3d
(θ),r
3d
)-s
2d
)||2(3)
[0062][0063]eprior
(θ)=-log(g(θ;μ
θ
,σ))(5)
[0064]etemporal
(θ,r
3d
)=||(s
3d
(θ)+r
3d
)-(s
3d
(θ
t-1
)+r
3dt-1
)||2(6)
[0065]
在上述公式中,e
key
衡量的是绝对3d姿态的投影来自2d骨架图的输入2d关节位置之间的距离,并且π表示从相机3d空间到2d图像平面的投影函数,当相机固有参数已知时,可以给出该函数。在上述公式中,e
init
表示改进的3d骨架图和由神经网络预测的估计的3d骨架图之间的相似性的度量。函数g(θ;μ
θ
,σ)是高斯函数,它定义了概率分布,以表示来自估计的3d骨架图的姿态的合理性水平,这可以事先从神经网络使用的3d人类姿态数据集中学习到。因此,函数e
prior
被用来倾向于可能的姿态而不是不可能的姿态。函数e
temporal
表示3d姿态在时间域中的变化(例如,由于主体在时间t和t-1之间的移动而导致的姿态变化),并且可以被提供来实现时间上更稳定的结果。参数w1,w2,w3,w4被用作标量权重。根据一个实施例,目标函数e(θ,r
3d
)的误差被最小化,以使用非线性最小二乘法回归求解θ,r
3d
。例如,初始关节角度θ
init
可以从重定位的3d骨架图计算出来,并且根关节位置的初始3d坐标集合可以通过最小化函数来实现,其中s
2d
表示来自2d骨架图的2d关节位置的集合,并且c
2d
表示每个2d关节位置的置信区间。
[0066]
方法600继续进行操作608,在该操作中,优化的关节角度集合连同3d根关节位置(例如,主体的骨盆关节)一起被输出作为改进的3d骨架图s
3d
(θ
opt
)。从这个优化的参数集合,最终的3d骨架图准备好用于动画和/或各种皮肤或图形的应用,以形成显示器上显示的图像。
[0067]
示例应用
[0068]
图7a-图7c图示了根据一个实施例的使用移动主体的改进的3d骨架图作为交互式游戏的一部分的示例应用。如图7a所示,人类化身702可以被显示在显示器上。化身702可以模仿正在观看显示器的主体的姿态,以便与显示器上发生的事情交互。因此,化身702是通过在主体的改进的3d骨架图上渲染图形而生成的,其中改进的3d骨架图是使用本文公开的任何技术产生的。虽然在此示例中只示出了一个化身702,但可以为存在于由图像捕捉设备捕捉的2d图像内的任意数目的用户生成任意数目的化身。
[0069]
图示的应用是移动墙壁游戏,其中显示的墙壁704具有开口706,向化身702移动。开口706具有特定的形状,该形状要求化身702作出某种姿态来通过开口706。在图示的示例中,开口706具有倒“l”形状,要求化身702在站直的同时向外伸展手臂以通过开口706。该交互式游戏的目的是使用不同的姿态通过在墙壁704中形成的任何开口,而不触及墙壁704的任何部分。图7b图示了墙704已向化身702移动,从而化身702通过了开口706。在通过一面墙壁之后,另一面墙壁可以前进,其开口具有不同的形状。例如,图7c图示了在化身702通过第
processor,dsp)、现场可编程门阵列(field programmable gate array,fpga)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组,等等。从而,电路是一种功能性物理装置,该装置可以是集成电路、印刷电路板电路、门级逻辑、模拟和/或数字电路、一个或多个编程的处理器或处理实体(例如,指令和配置为执行这些指令的一个或多个处理器的组合)中的任何一者。
[0073]
进一步的示例实施例
[0074]
以下示例涉及进一步实施例,许多置换和配置将从这些实施例中清楚显现。
[0075]
示例1是一种被设计为生成主体的3d姿态的系统。该系统包括至少一个处理器,该至少一个处理器被配置为执行下列操作:从被配置为捕捉所述主体的一个或多个图像的图像捕捉设备接收一个或多个图像;产生与所述一个或多个图像中的所述主体相关联的二维(2d)骨架图,其中,所述2d骨架图包括多个2d关节位置;至少基于所述多个2d关节位置,来产生与所述一个或多个图像中的所述主体相关联的估计的三维(3d)骨架图,其中,所述估计的3d骨架图包括多个3d关节位置以及3d关节位置的相应对之间的多个骨段;通过至少重定位所述估计的3d骨架图的多个骨段中的一个或多个骨段的相应长度以更紧密地匹配模板3d骨架图的相应一个或多个模板骨段的相应长度,来产生改进的3d骨架图,所述模板3d骨架图具有多个模板3d关节位置以及模板3d关节位置的相应对之间的多个模板骨段;以及基于所述主体的相应运动,来对所述改进的3d骨架图进行动画化。
[0076]
示例2包括如示例1所述的主题,还包括:所述图像捕捉设备,其中,所述图像捕捉设备包括单个rgb相机。
[0077]
示例3包括如示例1或2所述的主题,其中,所述至少一个处理器被配置为通过将与所述2d骨架图相关联的数据输入到神经网络中来产生所述估计的3d骨架图,其中,所述神经网络被配置为至少输出所述多个3d关节位置。
[0078]
示例4包括如示例1-3中的任一项所述的主题,其中,所述至少一个处理器还被配置为生成所述模板3d骨架图。
[0079]
示例5包括如示例4所述的主题,其中,生成所述模板3d骨架图包括:设置所述模板3d骨架图的高度并且使用人体测量统计来确定所述模板骨段的长度。
[0080]
示例6包括如示例1-5中的任一项所述的主题,其中,所述重定位生成重定位的3d骨架图,并且所述至少一个处理器还被配置为将所述重定位的3d骨架图的3d关节位置转换成相对于根关节位置的多个关节角度。
[0081]
示例7包括如示例6所述的主题,其中,产生所述改进的3d骨架图包括:最小化联系所述重定位的3d骨架图、所述估计的3d骨架图和所述2d骨架图的目标函数的误差,以求解所述改进的3d骨架图的关节角度和根关节位置。
[0082]
示例8包括如示例1-7中的任一项所述的主题,还包括:显示器,该显示器被配置为显示动画化的改进的3d骨架图的版本。
[0083]
示例9包括如示例1-8中的任一项所述的主题,其中,所述至少一个处理器还被配置为基于每个所述2d关节位置和2d根关节位置之间的距离,来正规化所述2d关节位置。
[0084]
示例10包括如示例9所述的主题,其中,所述2d根关节位置表示所述主体的骨盆关节。
[0085]
示例11包括如示例1-10中的任一项所述的主题,其中,所述至少一个处理器还被
配置为执行下列操作:产生与所述一个或多个图像中的第二主体相关联的第二2d骨架图,其中,所述第二2d骨架图包括第二多个2d关节位置;至少基于所述第二多个2d关节位置,来产生与所述一个或多个图像中的所述第二主体相关联的第二估计的三维(3d)骨架图,其中,所述第二估计的3d骨架图包括第二多个3d关节位置以及第二3d关节位置的相应对之间的第二多个骨段;通过至少重定位所述第二估计的3d骨架图的第二多个骨段中的一个或多个骨段的相应长度以更紧密地匹配第二模板3d骨架图的一个或多个相应第二模板骨段的相应长度,来产生第二改进的3d骨架图,所述第二模板3d骨架图具有第二多个模板3d关节位置以及第二模板3d关节位置的相应对之间的第二多个模板骨段;以及基于所述第二主体的相应运动,来对所述第二改进的3d骨架图进行动画化。
[0086]
示例12是一种生成主体的3d姿态的由计算机实现的方法。该方法包括:接收由图像捕捉设备捕捉的主体的一个或多个图像;产生与所述一个或多个图像中的所述主体相关联的二维(2d)骨架图,其中,所述2d骨架图包括多个2d关节位置;至少基于所述多个2d关节位置,来产生与所述一个或多个图像中的所述主体相关联的估计的三维(3d)骨架图,其中,所述估计的3d骨架图包括多个3d关节位置以及3d关节位置的相应对之间的多个骨段;通过至少重定位所述估计的3d骨架图的多个骨段中的一个或多个骨段的长度以更紧密地匹配模板3d骨架图的相应模板骨段的长度,来产生改进的3d骨架图,所述模板3d骨架图具有多个模板3d关节位置以及模板3d关节位置的相应对之间的多个模板骨段;并且以及基于主体的相应运动,来对改进的3d骨架图进行动画化。
[0087]
示例13包括如示例12所述的主题,其中,产生所述估计的3d骨架图包括:将与所述2d骨架图相关联的数据输入到神经网络中,其中,所述神经网络被配置为至少输出所述多个3d关节位置。
[0088]
示例14包括如示例13或14所述的主题,还包括:生成所述模板3d骨架图。
[0089]
示例15包括如示例14所述的主题,其中,生成所述模板3d骨架图包括:设置所述模板3d骨架图的高度并且使用人体测量统计来确定所述模板骨段的长度。
[0090]
示例16包括如示例15所述的主题,其中,设置所述模板3d骨架图的高度包括:设置预定的高度。
[0091]
示例17包括如示例15所述的主题,其中,设置所述模板3d骨架图的高度包括:经由用户输入获取高度值。
[0092]
示例18包括如示例12-17中的任一项所述的主题,其中,所述重定位生成重定位的3d骨架图,并且所述方法还包括:将所述重定位的3d骨架图的3d关节位置转换成相对于根关节位置的多个关节角度。
[0093]
示例19包括如示例18所述的主题,其中,产生所述改进的3d骨架图包括:最小化联系所述重定位的3d骨架图、所述估计的3d骨架图和所述2d骨架图的目标函数的误差,以求解所述改进的3d骨架图的关节角度和根关节位置。
[0094]
示例20包括如示例12-19中的任一项所述的主题,还包括:基于每个所述2d关节位置和2d根关节位置之间的距离,来正规化所述2d关节位置。
[0095]
示例21包括如示例20所述的主题,其中,所述2d根关节位置表示所述主体的骨盆关节。
[0096]
示例22包括如示例12-21中的任一项所述的主题,还包括:产生与所述一个或多个
图像中的第二主体相关联的第二2d骨架图,其中,所述第二2d骨架图包括第二多个2d关节位置;至少基于所述第二多个2d关节位置,来产生与所述一个或多个图像中的所述第二主体相关联的第二估计的三维(3d)骨架图,其中,所述第二估计的3d骨架图包括第二多个3d关节位置以及第二3d关节位置的相应对之间的第二多个骨段;通过至少重定位所述第二估计的3d骨架图的第二多个骨段中的一个或多个骨段的相应长度以更紧密地匹配第二模板3d骨架图的一个或多个相应第二模板骨段的相应长度,来产生第二改进的3d骨架图,所述第二模板3d骨架图具有第二多个模板3d关节位置以及第二模板3d关节位置的相应对之间的第二多个模板骨段;以及基于所述第二主体的相应运动,来对所述第二改进的3d骨架图进行动画化。
[0097]
示例23是一种计算机程序产品,其包括一个或多个非暂态机器可读介质,所述一个或多个非暂态机器可读介质上存储有指令,所述指令当被一个或多个处理器执行时,使得一种过程被执行来生成主体的3d姿态。所述过程包括接收由图像捕捉设备捕捉的主体的一个或多个图像;产生与所述一个或多个图像中的所述主体相关联的二维(2d)骨架图,其中,所述2d骨架图包括多个2d关节位置;至少基于所述多个2d关节位置,来产生与所述一个或多个图像中的所述主体相关联的估计的三维(3d)骨架图,其中所述估计的3d骨架图包括多个3d关节位置以及3d关节位置的相应对之间的多个骨段;以及通过至少重定位所述估计的3d骨架图的多个骨段中的一个骨段的长度以更紧密地匹配模板3d骨架图的相应模板骨段的相应长度,来产生改进的3d骨架图,所述模板3d骨架图具有多个模板3d关节位置以及模板3d关节位置的相应对之间的多个模板骨段。
[0098]
示例24包括如示例23所述的主题,其中,产生所述估计的3d骨架图包括:将与所述2d骨架图相关联的数据输入到神经网络中,其中,所述神经网络被配置为至少输出所述多个3d关节位置。
[0099]
示例25包括如示例23或24所述的主题,所述过程还包括:生成所述模板3d骨架图。
[0100]
示例26包括如示例25所述的主题,其中,生成所述模板3d骨架图包括:设置所述模板3d骨架图的高度和/或使用人体测量统计来确定所述模板骨段的长度。
[0101]
示例27包括如示例26所述的主题,其中,设置所述模板3d骨架图的高度包括:设置预定的高度。
[0102]
示例28包括如示例26所述的主题,其中,设置所述模板3d骨架图的高度包括:经由用户输入获取高度值。
[0103]
示例29包括如示例23-28中的任一项所述的主题,其中,所述重定位生成重定位的3d骨架图,并且所述过程还包括:将所述重定位的3d骨架图的3d关节位置转换成相对于根关节位置的多个关节角度。
[0104]
示例30包括如示例29所述的主题,其中,产生所述改进的3d骨架图包括:最小化联系所述重定位的3d骨架图、所述估计的3d骨架图和所述2d骨架图的目标函数的误差,以求解所述改进的3d骨架图的关节角度和根关节位置。
[0105]
示例31包括如示例23-30中的任一项所述的主题,所述过程还包括:基于每个所述2d关节位置和2d根关节位置之间的距离,来正规化所述2d关节位置。
[0106]
示例32包括如示例31所述的主题,其中,所述2d根关节位置表示所述主体的骨盆关节。
[0107]
示例33包括如示例23-32中的任一项所述的主题,所述过程还包括:产生与所述一个或多个图像中的第二主体相关联的第二2d骨架图,其中,所述第二2d骨架图包括第二多个2d关节位置;至少基于所述第二多个2d关节位置,来产生与所述一个或多个图像中的所述第二主体相关联的第二估计的三维(3d)骨架图,其中,所述第二估计的3d骨架图包括第二多个3d关节位置以及第二3d关节位置的相应对之间的第二多个骨段;以及通过至少重定位所述第二估计的3d骨架图的第二多个骨段中的一个骨段的相应长度以更紧密地匹配第二模板3d骨架图的相应第二模板骨段的相应长度,来产生第二改进的3d骨架图,所述第二模板3d骨架图具有第二多个模板3d关节位置以及第二模板3d关节位置的相应对之间的第二多个模板骨段。
[0108]
示例34包括如示例33所述的主题,所述过程还包括:基于所述第二主体的相应运动,来对所述第二改进的3d骨架图进行动画化。
[0109]
示例35包括如示例23-34中的任一项所述的主题,所述过程还包括:基于所述主体的相应运动,来对所述改进的3d骨架图进行动画化。
[0110]
本文阐述了许多具体细节以提供对实施例的透彻理解。然而,本领域普通技术人员将会理解,没有这些具体细节也可实现实施例。在其他情况下,没有详细描述公知的操作、组件和电路,以免模糊实施例。可明白,本文公开的具体结构和功能细节可以是代表性的,而并不一定限制实施例的范围。此外,虽然是以依结构特征和/或方法动作而定的语言来描述主题的,但要理解,所附权利要求中限定的主题不一定限于本文描述的具体特征或动作。更确切地说,本文描述的具体特征和动作是作为实现权利要求的示例形式被公开的。
技术特征:1.一种被配置为生成主体的3d姿态的系统,所述系统包括:至少一个处理器,被配置为执行下列操作:从被配置为捕捉所述主体的一个或多个图像的图像捕捉设备接收所述一个或多个图像;产生与所述一个或多个图像中的所述主体相关联的二维(2d)骨架图,其中,所述2d骨架图包括多个2d关节位置;至少基于所述多个2d关节位置,来产生与所述一个或多个图像中的所述主体相关联的估计的三维(3d)骨架图,其中,所述估计的3d骨架图包括多个3d关节位置以及3d关节位置的相应对之间的多个骨段;通过至少重定位所述估计的3d骨架图的多个骨段中的一个或多个骨段的相应长度以更紧密地匹配模板3d骨架图的相应一个或多个模板骨段的相应长度,来产生改进的3d骨架图,所述模板3d骨架图具有多个模板3d关节位置以及模板3d关节位置的相应对之间的多个模板骨段;以及基于所述主体的相应运动,来对所述改进的3d骨架图进行动画化。2.如权利要求1所述的系统,还包括:所述图像捕捉设备,其中,所述图像捕捉设备包括单个rgb相机。3.如权利要求1所述的系统,其中,所述至少一个处理器被配置为通过将与所述2d骨架图相关联的数据输入到神经网络中来产生所述估计的3d骨架图,其中,所述神经网络被配置为至少输出所述多个3d关节位置。4.如权利要求1所述的系统,其中,所述至少一个处理器还被配置为生成所述模板3d骨架图,其中,生成所述模板3d骨架图包括:设置所述模板3d骨架图的高度并且使用人体测量统计来确定所述模板骨段的长度。5.如权利要求1-4中的任一项所述的系统,其中,所述重定位生成重定位的3d骨架图,并且所述至少一个处理器还被配置为将所述重定位的3d骨架图的3d关节位置转换成相对于根关节位置的多个关节角度。6.如权利要求5所述的系统,其中,产生所述改进的3d骨架图包括:最小化联系所述重定位的3d骨架图、所述估计的3d骨架图和所述2d骨架图的目标函数的误差,以求解所述改进的3d骨架图的关节角度和根关节位置。7.如权利要求1-4中的任一项所述的系统,其中,所述至少一个处理器还被配置为基于每个所述2d关节位置和2d根关节位置之间的距离,来正规化所述2d关节位置。8.如权利要求7所述的系统,其中,所述2d根关节位置表示所述主体的骨盆关节。9.如权利要求1-4中的任一项所述的系统,其中,所述至少一个处理器还被配置为执行下列操作:产生与所述一个或多个图像中的第二主体相关联的第二2d骨架图,其中,所述第二2d骨架图包括第二多个2d关节位置;至少基于所述第二多个2d关节位置,来产生与所述一个或多个图像中的所述第二主体相关联的第二估计的三维(3d)骨架图,其中,所述第二估计的3d骨架图包括第二多个3d关节位置以及第二3d关节位置的相应对之间的第二多个骨段;通过至少重定位所述第二估计的3d骨架图的第二多个骨段中的一个或多个骨段的相
应长度以更紧密地匹配第二模板3d骨架图的一个或多个相应第二模板骨段的相应长度,来产生第二改进的3d骨架图,所述第二模板3d骨架图具有第二多个模板3d关节位置以及第二模板3d关节位置的相应对之间的第二多个模板骨段;以及基于所述第二主体的相应运动,来对所述第二改进的3d骨架图进行动画化。10.一种生成主体的3d姿态的由计算机实现的方法,所述方法包括:接收由图像捕捉设备捕捉的主体的一个或多个图像;产生与所述一个或多个图像中的所述主体相关联的二维(2d)骨架图,其中,所述2d骨架图包括多个2d关节位置;至少基于所述多个2d关节位置,来产生与所述一个或多个图像中的所述主体相关联的估计的三维(3d)骨架图,其中,所述估计的3d骨架图包括多个3d关节位置以及3d关节位置的相应对之间的多个骨段;通过至少重定位所述估计的3d骨架图的多个骨段中的一个或多个骨段的长度以更紧密地匹配模板3d骨架图的相应模板骨段的长度,来产生改进的3d骨架图,所述模板3d骨架图具有多个模板3d关节位置以及模板3d关节位置的相应对之间的多个模板骨段;以及基于所述主体的相应运动,来对所述改进的3d骨架图进行动画化。11.如权利要求10所述的由计算机实现的方法,其中,产生所述估计的3d骨架图包括:将与所述2d骨架图相关联的数据输入到神经网络中,其中,所述神经网络被配置为至少输出所述多个3d关节位置。12.如权利要求10所述的由计算机实现的方法,还包括:生成所述模板3d骨架图,其中,生成所述模板3d骨架图包括:设置所述模板3d骨架图的高度并且使用人体测量统计来确定所述模板骨段的长度。13.如权利要求10-12中的任一项所述的由计算机实现的方法,其中,所述重定位生成重定位的3d骨架图,并且所述方法还包括:将所述重定位的3d骨架图的3d关节位置转换成相对于根关节位置的多个关节角度。14.如权利要求13所述的由计算机实现的方法,其中,产生所述改进的3d骨架图包括:最小化联系所述重定位的3d骨架图、所述估计的3d骨架图和所述2d骨架图的目标函数的误差,以求解所述改进的3d骨架图的关节角度和根关节位置。15.如权利要求10-12中的任一项所述的由计算机实现的方法,还包括:基于每个所述2d关节位置和2d根关节位置之间的距离,来正规化所述2d关节位置。16.如权利要求15所述的由计算机实现的方法,其中,所述2d根关节位置表示所述主体的骨盆关节。17.如权利要求10-12中的任一项所述的由计算机实现的方法,还包括:产生与所述一个或多个图像中的第二主体相关联的第二2d骨架图,其中,所述第二2d骨架图包括第二多个2d关节位置;至少基于所述第二多个2d关节位置,来产生与所述一个或多个图像中的所述第二主体相关联的第二估计的三维(3d)骨架图,其中,所述第二估计的3d骨架图包括第二多个3d关节位置以及第二3d关节位置的相应对之间的第二多个骨段;通过至少重定位所述第二估计的3d骨架图的第二多个骨段中的一个或多个骨段的相应长度以更紧密地匹配第二模板3d骨架图的一个或多个相应第二模板骨段的相应长度,来
产生第二改进的3d骨架图,所述第二模板3d骨架图具有第二多个模板3d关节位置以及第二模板3d关节位置的相应对之间的第二多个模板骨段;以及基于所述第二主体的相应运动,来对所述第二改进的3d骨架图进行动画化。18.一种计算机程序产品,包括一个或多个非暂态机器可读介质,所述一个或多个非暂态机器可读介质上存储有指令,所述指令当被一个或多个处理器执行时,使得一种过程被执行来生成主体的3d姿态,所述过程包括:接收由图像捕捉设备捕捉的主体的一个或多个图像;产生与所述一个或多个图像中的所述主体相关联的二维(2d)骨架图,其中,所述2d骨架图包括多个2d关节位置;至少基于所述多个2d关节位置,来产生与所述一个或多个图像中的所述主体相关联的估计的三维(3d)骨架图,其中,所述估计的3d骨架图包括多个3d关节位置以及3d关节位置的相应对之间的多个骨段;以及通过至少重定位所述估计的3d骨架图的多个骨段中的一个骨段的长度以更紧密地匹配模板3d骨架图的相应模板骨段的相应长度,来产生改进的3d骨架图,所述模板3d骨架图具有多个模板3d关节位置以及模板3d关节位置的相应对之间的多个模板骨段。19.如权利要求18所述的计算机程序产品,其中,产生所述估计的3d骨架图包括:将与所述2d骨架图相关联的数据输入到神经网络中,其中,所述神经网络被配置为至少输出所述多个3d关节位置。20.如权利要求18所述的计算机程序产品,所述过程还包括以下各项中的一者或两者:生成所述模板3d骨架图;以及基于所述主体的相应运动,来对所述改进的3d骨架图进行动画化,其中,生成所述模板3d骨架图包括:设置所述模板3d骨架图的高度和/或使用人体测量统计来确定所述模板骨段的长度。21.如权利要求18-20中的任一项所述的计算机程序产品,其中,所述重定位生成重定位的3d骨架图,并且所述过程还包括:将所述重定位的3d骨架图的3d关节位置转换成相对于根关节位置的多个关节角度。22.如权利要求21所述的计算机程序产品,其中,产生所述改进的3d骨架图包括:最小化联系所述重定位的3d骨架图、所述估计的3d骨架图和所述2d骨架图的目标函数的误差,以求解所述改进的3d骨架图的关节角度和根关节位置。23.如权利要求18-20中的任一项所述的计算机程序产品,所述过程还包括:基于每个所述2d关节位置和2d根关节位置之间的距离,来正规化所述2d关节位置。24.如权利要求23所述的计算机程序产品,其中,所述2d根关节位置表示所述主体的骨盆关节。25.如权利要求18-20中的任一项所述的计算机程序产品,所述过程还包括:产生与所述一个或多个图像中的第二主体相关联的第二2d骨架图,其中,所述第二2d骨架图包括第二多个2d关节位置;至少基于所述第二多个2d关节位置,来产生与所述一个或多个图像中的所述第二主体相关联的第二估计的三维(3d)骨架图,其中,所述第二估计的3d骨架图包括第二多个3d关节位置以及第二3d关节位置的相应对之间的第二多个骨段;以及通过至少重定位所述第二估计的3d骨架图的第二多个骨段中的一个骨段的相应长度
以更紧密地匹配第二模板3d骨架图的相应第二模板骨段的相应长度,来产生第二改进的3d骨架图,所述第二模板3d骨架图具有第二多个模板3d关节位置以及第二模板3d关节位置的相应对之间的第二多个模板骨段。
技术总结公开了技术,用于对使用2D相机的主体提供改进的姿态跟踪,并且生成再现主体的姿态的3D图像。使用例如神经网络从主体的2D骨架图估计3D骨架图。访问或生成模板3D骨架图,其具有骨段,这些骨段具有使用例如人体测量统计基于模板3D骨架图的给定高度来设置的长度。然后通过至少重定位估计的3D骨架图的多个骨段中的一个或多个骨段,以更紧密地匹配模板3D骨架图的相应模板骨段,来产生改进的3D骨架图。然后,改进的3D骨架图可以以各种方式(例如,使用各种皮肤或图形)被动画化,以跟踪主体的相应运动。以跟踪主体的相应运动。以跟踪主体的相应运动。
技术研发人员:王山东 康杨雨轩 姚安邦 陆鸣 陈玉荣
受保护的技术使用者:英特尔公司
技术研发日:2020.04.23
技术公布日:2022/11/1