CN112950751B - 姿态动作的展示方法及装置、存储介质、系统 - Google Patents
姿态动作的展示方法及装置、存储介质、系统 Download PDFInfo
- Publication number
- CN112950751B CN112950751B CN201911268142.5A CN201911268142A CN112950751B CN 112950751 B CN112950751 B CN 112950751B CN 201911268142 A CN201911268142 A CN 201911268142A CN 112950751 B CN112950751 B CN 112950751B
- Authority
- CN
- China
- Prior art keywords
- information
- frame
- animation
- human body
- gesture
- 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.)
- Active
Links
- 230000009471 action Effects 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000009877 rendering Methods 0.000 claims abstract description 34
- 210000000988 bone and bone Anatomy 0.000 claims description 82
- 230000033001 locomotion Effects 0.000 claims description 82
- 238000012545 processing Methods 0.000 claims description 15
- 230000001747 exhibiting effect Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 description 27
- 230000009466 transformation Effects 0.000 description 25
- 230000000875 corresponding effect Effects 0.000 description 20
- 239000011159 matrix material Substances 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 11
- 238000013519 translation Methods 0.000 description 10
- 210000003414 extremity Anatomy 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 230000003190 augmentative effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000035479 physiological effects, processes and functions Effects 0.000 description 4
- 210000003423 ankle Anatomy 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 210000003127 knee Anatomy 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 210000001513 elbow Anatomy 0.000 description 2
- 210000003128 head Anatomy 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- WTSKMKRYHATLLL-UHFFFAOYSA-N (6-benzoyloxy-3-cyanopyridin-2-yl) 3-[3-(ethoxymethyl)-5-fluoro-2,6-dioxopyrimidine-1-carbonyl]benzoate Chemical compound O=C1N(COCC)C=C(F)C(=O)N1C(=O)C1=CC=CC(C(=O)OC=2C(=CC=C(OC(=O)C=3C=CC=CC=3)N=2)C#N)=C1 WTSKMKRYHATLLL-UHFFFAOYSA-N 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000003874 inverse correlation nuclear magnetic resonance spectroscopy Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种姿态动作的展示方法及装置、存储介质、系统。其中,该方法包括:获取目标对象的人体姿态信息;基于人体姿态信息所在当前帧的上一帧确定起始帧,基于当前帧确定结束帧,并基于起始帧和结束帧生成预设人体模型的动画;对动画进行渲染;根据动画的渲染时间和动画的时长对动画进行插帧操作,得到目标动画,其中,目标动画中包括多帧图像,该多帧图像用于共同展示预设人体模型的动作;展示目标动画。本申请解决了现有的基于二维骨骼特征点的动画展示方案存在不连贯,影响用户体验的技术问题。
Description
技术领域
本申请涉及模型动画处理领域,具体而言,涉及一种姿态动作的展示方法及装置、存储介质、系统。
背景技术
随着深度学习算法准确度的提升,并且近年来智能设备的硬件配置也逐年升高,在端设备上可以实现实时计算出人体骨骼特征点的功能,目前已有基于二维骨骼特征点的业务应用,这些应用都是利用二维骨骼特征点计算单帧的姿态,与已有的模板进行匹配。
使用人体姿态驱动二维骨架的方案存在以下缺点:每次驱动仅仅是单帧信息,看起来比较割裂。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种姿态动作的展示方法及装置、存储介质、系统,以至少解决现有的基于二维骨骼特征点的动画展示方案存在不连贯,影响用户体验的技术问题。
根据本申请实施例的一个方面,提供了一种姿态动作的展示方法,包括:获取目标对象的人体姿态信息;基于人体姿态信息所在当前帧的上一帧确定起始帧,基于当前帧确定结束帧,并基于起始帧和结束帧生成预设人体模型的动画;对动画进行渲染;根据动画的渲染时间和动画的时长对动画进行插帧操作,得到目标动画,其中,目标动画中包括多帧图像,该多帧图像用于共同展示预设人体模型的动作;展示目标动画。
根据本申请实施例的另一方面,还提供了另一种姿态动作的展示方法,包括:获取目标对象的图像信息;基于图像信息确定目标对象的初始姿态信息;确定初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息;在骨骼动作信息不满足预设条件时,对骨骼动作信息进行修正,得到人体姿态信息;展示人体姿态信息。
根据本申请实施例的另一方面,提供了一种姿态动作的展示装置,包括:获取模块,用于获取目标对象的人体姿态信息;确定模块,用于基于人体姿态信息所在当前帧的上一帧确定起始帧,基于当前帧确定结束帧,并基于起始帧和结束帧生成预设人体模型的动画;渲染模块,用于对动画进行渲染;插帧模块,用于根据动画的渲染时间和动画的时长对动画进行插帧操作,得到目标动画,其中,目标动画中包括多帧图像,该多帧图像用于共同展示预设人体模型的动作;展示模块,用于展示目标动画。
根据本申请实施例的再一方面,提供了一种存储介质,存储介质包括存储的程序,其中,程序运行时控制存储介质所在设备执行以上的姿态动作的展示方法。
根据本申请实施例的再一方面,提供了一种系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取目标对象的人体姿态信息;基于人体姿态信息所在当前帧的上一帧确定起始帧,基于当前帧确定结束帧,并基于起始帧和结束帧生成预设人体模型的动画;对动画进行渲染;根据动画的渲染时间和动画的时长对动画进行插帧操作,得到目标动画,其中,目标动画中包括多帧图像,该多帧图像用于共同展示预设人体模型的动作;展示目标动画。
在本申请实施例中,采用了以下技术手段:获取目标对象的人体姿态信息;基于人体姿态信息所在当前帧的上一帧确定起始帧,基于当前帧确定结束帧,并基于起始帧和结束帧生成预设人体模型的动画;对动画进行渲染;根据动画的渲染时间和动画的时长对动画进行插帧操作,得到目标动画;展示目标动画。由于对生成预设人体模型的动画进行了插帧操作,因此,可以使得展示的人体动作变得平滑不割裂,进而解决了现有的基于二维骨骼特征点的动画展示方案存在不连贯,影响用户体验的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了一种用于实现姿态动作的展示方法的计算设备(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种姿态动作的展示方法的流程图;
图3a是根据本申请实施例的另一种姿态动作的展示方法的流程图;
图3b是根据本申请实施例的一种增强现实(AR)设备的原理示意图;
图4是根据本申请实施例的另一种姿态动作的展示方法的流程图;
图5是根据本申请实施例的一种姿态动作的展示装置的结构图;
图6是根据本申请实施例的一种计算设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
深度学习:机器学习的一种,常见功能为人脸特征点检测、姿势特征点检测、物体分类等。
特征点:特征点是那些经过算法分析出来的,含有丰富局部信息的点,经常出现在图像中拐角、纹理剧烈变化等地方。
反向动力学(Inverse kinematics):一种通过先确定子骨骼的位置,然后反求推导出其所在骨骼链上n级父骨骼位置,从而确定整条骨骼链的方法。
T-POSE:T姿势(也称为参考姿势)是3D图形中某些模型的默认非动画状态。
置信度:深度学习中,检测结果的得分,也可以理解为该检测结果正确的概率。
AR:增强现实(Augmented Reality,简称AR),是指透过摄影机影像的位置及角度精算并加上图像分析技术,让屏幕上的虚拟世界能够与现实世界场景进行结合与交互的技术。
骨骼动画:骨骼动画是模型动画中的一种,当前有两种模型动画的方式:顶点动画和骨骼动画。在骨骼动画中,模型具有互相连接的“骨骼”组成的骨架结构,通过改变骨骼的朝向和位置来为模型生成动画。
骨骼蒙皮:蒙皮,三维动画术语,也用于3D游戏中,三维动画的一种制作技术,在三维软件中创建的模型基础上,为模型添加骨骼。由于骨骼与模型是相互独立的,为了让骨骼驱动模型产生合理的运动,把模型绑定到骨骼上的技术叫做蒙皮。
3D模型:3D模型也可以说是用三维软件建造的立体模型,包括各种建筑、人物、植被、机械等等,比如一个大楼的3D模型图,3D模型也包括玩具和电脑模型领域。
局部坐标系:局部坐标系(Local Coordinate),也就是坐标系以物体的中心为坐标原点,物体的旋转、平移等操作都是围绕局部坐标系进行的,这时,当物体模型进行旋转或平移等操作时,局部坐标系也执行相应的旋转或平移操作。
世界坐标系:客观三维世界的绝对坐标系,也称客观坐标系。
坐标基:指线性代数中某向量空间中的标准坐标基,例如常用的二维直角坐标系的坐标基为{(1,0),(0,1)}。
线性变换:线性映射(linear mapping)是从一个向量空间V到另一个向量空间W的映射且保持加法运算和数量乘法运算,而线性变换(linear transformation)是线性空间V到其自身的线性映射。
变换矩阵:变换矩阵是数学线性代数中的一个概念,在线性代数中,线性变换能够用矩阵表示。如果T是一个把Rn映射到Rm的线性变换,且x是一个具有n个元素的列向量,那么我们把m×n的矩阵A,称为T的变换矩阵。
实施例1
根据本申请实施例,还提供了一种姿态动作的展示方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算设备或者类似的运算装置中执行。图1示出了一种用于实现姿态动作的展示方法的计算设备(或移动设备)的硬件结构框图。如图1所示,计算设备10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的姿态动作的展示方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备10(或移动设备)的用户界面进行交互。
在上述运行环境下,本申请提供了如图2所示的姿态动作的展示方法。图2是根据本申请实施例1的姿态动作的展示方法的流程图,如图2所示,该方法包括以下步骤:
步骤S202,获取目标对象的人体姿态信息。
根据本申请的一个可选的实施例在执行步骤S202时可以从摄像头或者视频文件采集一帧图像信息输入至深度学习模型,得到人体的姿态信息。
步骤S204,基于人体姿态信息所在当前帧的上一帧确定起始帧,基于当前帧确定结束帧,并基于起始帧和结束帧生成预设人体模型的动画。
判断姿态信息所在的当前帧是否为初始帧,因为只有一帧数据无法进行插帧,如果判断出当前帧不是初始帧,记录当前时间,根据记录的时间差用当前帧的上一帧作为起始帧,将当前帧作为结束帧,生成骨骼动画。
步骤S206,对动画进行渲染。
步骤S208,根据动画的渲染时间和动画的时长对动画进行插帧操作,得到目标动画,其中,目标动画中包括多帧图像,该多帧图像用于共同展示预设人体模型的动作。
在本申请的一个可选的实施例中,在执行步骤S208时,根据渲染的刷新时间,和动画的时长,进行动画插帧,使得原先的两帧动作变成几十帧,减少动作的割裂感,增加动作的平滑性。插帧是动画信息的插帧,动画信息是平移和旋转数据,主要是旋转数据;插帧就是在间隔的平移和旋转数据之间插帧,平移的信息一般使用线性插值就可以,旋转数据一般是四元数来表示,采用四元数的插值方法。
步骤S210,展示目标动画。
通过上述方法,通过输入的视频帧,得到符合人体生理学的动作姿态,利用得到的人体动作姿态生成骨骼动画,并且对生成的骨骼动画进行插帧操作以使人体动作变的平滑,从而实现了以下技术效果:实现人体动作和摄像机结合,实现增强现实;对生成的骨骼动画进行插帧,使人体动作变得平滑不割裂;对异常动作进行修正处理,避免显示结果出现错乱。
根据本申请的一个可选的实施例,在执行步骤S204之前,还需要判断当前帧是否为初始帧;在判断结果指示当前帧不是初始帧的情况下,触发基于当前帧的上一帧确定起始帧。
可选地,在判断结果指示当前帧是初始帧的情况下,将当前帧作为候选起始帧。
将步骤S202获取的人体姿态输入至动画模型,判断动画模型中是否有模型骨骼,如果没有骨骼模型,读取预先设定的模型,记录模型的骨骼位置,记录骨骼局部坐标系的坐标基,建立模型骨架到输入姿态骨架的映射;输入的人体姿态是各个骨骼的变换矩阵是在世界坐标系下的,需要将每个骨骼的变换矩阵转换到对应的骨骼坐标系下,转换过程如下:
输入某骨骼的线性变换矩阵为A,骨骼局部坐标系的相同的线性变换矩阵为D,骨骼局部坐标系的坐标基矩阵为C,那么A和D的转换公式如下:
D=GAG-1
A=G-1DC
判断人体姿态所在的当前帧是否为初始帧,因为只有一帧数据无法进行插帧,所以对于初始帧需要特殊处理,若当前帧不是初始帧,记录当前时间,将当前帧的上一帧作为起始帧,将当前帧作为结束帧,生成骨骼动画;如果判断出人体姿态所在的当前帧是初始帧,将当前帧作为初始帧,生成初始动画。
在本申请的一个可选的实施例中,步骤S202通过以下方法实现:获取目标对象的图像信息;基于图像信息确定目标对象的初始姿态信息;确定初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息;在骨骼动作信息不满足预设条件时,对骨骼动作信息进行修正,得到人体姿态信息。
在本申请的一些实施例中,在确定初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息,包括:确定每个骨骼的动作信息;对骨骼动作信息进行修正,得到目标姿态,其中,该目标姿态的确定过程可以表现为以下过程,但不限于此:对每个骨骼的动作信息进行修正,得到第一姿态;对第一姿态所对应骨骼组合的动作信息进行修正,得到第二姿态;基于第二姿态确定目标姿态。
根据本申请的一个可选的实施例,对骨骼动作信息进行修正是指对得到的一些不合实际的姿态动作进行修正,例如,当脖子的骨骼旋转角度为180度时,由于脖子的骨骼不能旋转180度,此时需要将脖子的旋转角度修正为一个合理的角度,脖子的骨骼旋转角度极值为70度。
在修正的过程中,会设置一系列的约束关系,以胳膊肘为例,当我们计算得到手臂当前姿态时垂直的,而胳膊肘又有向外旋转的角度时,会判定不合理,将胳膊肘向外旋转的角度设置为0。
上述方法可以实现对计算得到的姿态进行人体骨骼动作的合理性检验,结合日常经验,对一些常人不能够做到的动作进行修正,如脖子旋转180度,手肘外翻180度等,经过修正后的姿态是符合人体生理学的。
在本申请的一个可选的实施例中,基于第二姿态确定目标姿态,包括:获取当前帧图像的上一帧图像的姿态信息;判断上一帧图像的姿态信息是否有效;在判断结果指示有效时,确定将上一帧图像的姿态信息作为目标姿态;在判断结果指示无效时,确定将当前帧图像对应的姿态作为目标姿态。
在本申请的一个可选的实施例中,基于图像信息确定目标对象的初始姿态信息,包括:从图像信息中提取目标对象的二维特征点信息,获取目标对象的特征点的初始化信息;基于二维特征点信息和初始化信息建立目标对象的三维特征点信息;依据三维特征点信息和参考姿态信息确定初始姿态信息。
上述方法通过二维特征点计算特征点的三维空间信息,首先记录二维点位初始化信息,这时人体会有一个初始化姿态,人体的四肢是完全伸展的,这个时候记录的长度是四肢的原始长度值,而得到之后的二维特征点时,人体四肢不一定是展开的,而有可能是折叠的,这时二维特征点的位置可以看作是三维的人体特征点的投影,而四肢投影的原始长度就是初始化记录的长度,利用初始化点位长度和投影后的四肢长度(即之后检测得到的二维特征点长度),即可计算出当前四肢的三维空间信息。根据三维特征点和设置好的T-POSE人体姿态计算出人体姿态动作,得到姿态结果。
根据本申请的一个可选的实施例,获取目标对象的特征点的初始化信息之前,还需要统计目标对象的特征点的数量;在数量大于第二阈值时,确定触发获取初始化信息。
根据本申请的一个可选的实施例,统计目标对象的特征点的数量主要是判断人体特征点数量是否达到要求(检测要求:上臂,手肘,膝盖,脚踝,头部等特征点全部在检测结果中,且置信度大于一定阈值)。
根据本申请的一个可选的实施例,对骨骼动作信息进行修正,包括:比较骨骼动作信息与参考动作信息,得到骨骼动作信息与参考动作信息之间的差异;基于差异对骨骼动作信息进行修正。
在本申请的一个可选的实施例中,比较骨骼动作信息与参考动作信息,得到骨骼动作信息与参考动作信息之间的差异之前,判断骨骼动作信息中的动作幅度是否满足要求;其中,在满足要求时,触发比较骨骼动作信息与参考动作信息。
在本申请实施例中,通过保存上一帧姿态信息,计算出当前帧姿态后,会和上一帧姿态进行比较,具体会比较每个骨骼的旋转变换信息,若旋转变换信息小于一定阈值,则直接使用上一帧的结果作为该骨骼的旋转值,这么做的原因是因为特征点检测带有抖动,这些抖动会导致骨骼的旋转信息产生大量的微小变化,如果不进行过滤,会导致得到的姿态不平滑。
上述获取目标对象的人体姿态信息的具体步骤如下:
1)通过摄像头采集输入或者视频文件采集一帧图像信息作为输入。
2)将采集的信息输入至深度学习算法框架中(AliNN,xNN,NCNN,caffe等),运行检测模型,输出检测结果(检测结果为人体关节特征点)。
3)对检测结果进行判断,是否检测到人体(由于上述模型用于检测人体关节特征点,因此,有特征点输出则代表检测到人体,若无特征点输出则表示未检测到人体),如果检测到人体,转移到步骤4),否则转移至步骤13)。
4)对检测结果进一步判断,人体特征点数量是否达到要求(检测要求:上臂,手肘,膝盖,脚踝,头部等特征点全部在检测结果中,且置信度大于一定阈值),若达到要求,转移至步骤5),否则转到步骤13)。
5)判断是否进行初始化计算,若尚未进行初始化计算,转到步骤6),否则转到步骤7)。
6)进行初始化信息计算,记录身体四肢初始长度信息。需要说明的是,进行初始化信息计算是根据当前图像采集到的特征点信息计算,具体计算方法如下:初始化信息是一个正面的特征点信息,此时我们设定的深度为0,这个时候的各个骨骼初始化长度就是正面投影的长度记为L0,之后每次检测都会和初始化的长度进行比较,当有侧身时,骨骼长度L1会小于初始化的长度,这时的L1是当前骨骼侧面投影后的长度,此时L0和L1还有深度H的关系为L0 2=L1 2+H2,计算出H就算出对应的深度了,使用检测得到的二维信息加上深度信息,就得到三维信息了。
7)然后使用检测得到的二维特征点,结合初始化信息,计算出三维特征点。
8)根据三维特征点和设置好的T-POSE(参考姿势)人体姿态动作,得到姿态结果,记为姿态1;标准的T-POSE是模型动画师做动画时约定俗成的一个初始相对姿势,动画的每一帧各个骨骼平移、旋转都是相对T-POSE下对应骨骼的平移和旋转。那么我们通过特征点的计算知道了当前状态下每个骨骼的位置,即为V1,也知道初始化的T-POSE下的每个骨骼的位置,记为V0,那么根据这两个向量就能得出当前关节的旋转信息,有了每个骨骼的旋转信息就得到人体姿态动作了。
9)将姿态1和上一帧姿态进行对比,判断两个姿态之间的差值是否满足动作幅度的要求,若满足,转到步骤10),否则转到步骤14)。
10)对姿态1的每一个骨骼的变换信息进行合理性修正得到姿态2,例如,当脖子的骨骼旋转角度为180度时,由于脖子的骨骼不能旋转180度,此时需要将脖子的旋转角度修正为一个合理的角度,脖子的骨骼旋转角度极值为70度。
11)对姿态2的骨骼组合进行人体动作合理修正,得到姿态3,在修正的过程中,会设置一系列的约束关系,以胳膊肘为例,当我们计算得到手臂当前姿态时垂直的,而胳膊肘又有向外旋转的角度时,会判定不合理,将胳膊肘向外旋转的角度设置为0。
12)记录上一帧姿态结果,将姿态3作为当前帧结果输出,转到步骤15)。
13)判断上一帧是否有值,若有,转到步骤14),否则转到步骤15)。
14)使用上一帧姿态作为当前帧结果输出。
15)得到当前帧人体姿态,结束。
在本申请的一些可选的实施例中,根据骨骼的位移变换信息计算骨骼的旋转变换,还可以利用反向动力学,反向动力学是根据骨骼的层级和骨骼的位移变换进行迭代计算,需要的运算量比较大,并且对骨骼3D位移变换信息的精度要求很高。
在摄像头交互应用领域,反向动力学方案存在以下三个缺点:
1)摄像头检测的特征点结果抖动会比较大,不够精确,不满足反向动力学算法需要的精确的特征点位置;
2)基于摄像头的人体是因人而异的,很难短时间生成一个良好的初始化匹配姿势;
3)反向动力学需要精确的三维空间点信息,仅仅从二维特征点无法计算出精确的三维空间信息。
而本申请实施例采用的上述技术方案不需要精确的3D骨骼点位信息,而在之前的步骤中我们可以计算出粗略的3D空间信息,再结合指定的T-POSE结构,我们就可以计算出骨骼的旋转变换了,可以克服反向动力学中的缺点3);对计算的姿态会和上一帧进行比对,起到了防抖的作用,克服了反向动力学中的缺点1);我们初始化姿态要求精度,克服了反向动力学中的缺点2)。本申请实施例中的方案能够通过输入的视频帧,得到符合人体生理学的动作姿态,该动作姿态可被用于做一些有趣的效果,例如匹配跳舞姿势,走路姿态矫正,或者驱动虚拟的3D人偶跳舞等等。
图3a是根据本申请实施例的另一种姿态动作的展示方法的流程图,如图3a所示,该方法包括以下步骤:
具体步骤如下:
S1、视频单帧输入,通过摄像头采集输入或者视频文件采集一帧图像信息作为输入;
S2、特征点检测,将采集的信息输入至深度学习算法框架中(AliNN,xNN,NCNN,caffe等),运行检测模型,输出检测结果(检测结果为人体关节特征点);
S3、对检测结果进行判断,是否检测到人体(由于上述模型用于检测人体关节特征点,因此,有特征点输出则代表检测到人体,若无特征点输出则表示未检测到人体),如果检测到人体,转移到步骤S4,否则转移至步骤S13;
S4、对检测结果进一步判断,人体特征点数量是否达到要求(检测要求:上臂,手肘,膝盖,脚踝,头部等特征点全部在检测结果中,且置信度大于一定阈值),若达到要求,转移至步骤S5,否则转到步骤S13;
S5、判断是否进行初始化计算,若尚未进行初始化计算,转到步骤S6,否则转到步骤S7;
S6、进行初始化信息计算,记录身体四肢初始长度信息。需要说明的是,进行初始化信息计算是根据当前图像采集到的特征点信息计算,具体计算方法如下:初始化信息是一个正面的特征点信息,此时我们设定的深度为0,这个时候的各个骨骼初始化长度就是正面投影的长度记为L0,之后每次检测都会和初始化的长度进行比较,当有侧身时,骨骼长度L1会小于初始化的长度,这时的L1是当前骨骼侧面投影后的长度,此时L0和L1还有深度H的关系为L0 2=L1 2+H2,计算出H就算出对应的深度了,使用检测得到的二维信息加上深度信息,就得到三维信息了;
S7、然后使用检测得到的二维特征点,结合初始化信息,计算出三维特征点;
S8、根据三维特征点和设置好的T-POSE(参考姿势)人体姿态动作,得到姿态结果,记为姿态1;标准的T-POSE是模型动画师做动画时约定俗成的一个初始相对姿势,动画的每一帧各个骨骼平移、旋转都是相对T-POSE下对应骨骼的平移和旋转。那么我们通过特征点的计算知道了当前状态下每个骨骼的位置,即为V1,也知道初始化的T-POSE下的每个骨骼的位置,记为V0,那么根据这两个向量就能得出当前关节的旋转信息,有了每个骨骼的旋转信息就得到人体姿态动作了;
S9、将姿态1和上一帧姿态进行对比,判断两个姿态之间的差值是否满足动作幅度的要求,若满足,转到步骤S10,否则转到步骤S14;
S10、对姿态1的每一个骨骼的变换信息进行合理性修正得到姿态2,例如,当脖子的骨骼旋转角度为180度时,由于脖子的骨骼不能旋转180度,此时需要将脖子的旋转角度修正为一个合理的角度,脖子的骨骼旋转角度极值为70度;
S11、对姿态2的骨骼组合进行人体动作合理修正,得到姿态3,在修正的过程中,会设置一系列的约束关系,以胳膊肘为例,当我们计算得到手臂当前姿态时垂直的,而胳膊肘又有向外旋转的角度时,会判定不合理,将胳膊肘向外旋转的角度设置为0;
S12、记录上一帧姿态结果,将姿态3作为当前帧结果输出,转到步骤S15;
S13、判断上一帧是否有值,若有,转到步骤S14,否则转到步骤S15;
S14、使用上一帧姿态作为当前帧结果输出;
S15、得到当前帧人体姿态;
S16、输入人体姿态,判断是否有模型骨架,若有转到步骤S18,否则转到步骤S17;
S17、读取设定的模型,记录模型的骨骼位置,记录骨骼局部坐标系的坐标基,建立模型骨架到输入姿态骨架的映射;
S18、输入的人体姿态是各个骨骼的变换矩阵是在世界坐标系下的,需要将每个骨骼的变换矩阵转换到对应的骨骼坐标系下,转换过程如下:
输入某骨骼的线性变换矩阵为A,骨骼局部坐标系的相同的线性变换矩阵为D,骨骼局部坐标系的坐标基矩阵为C,那么A和D的转换公式如下:
D=GAG-1
A=G-1DC
S19、判断该姿态是否为异常,如部分骨骼旋转角度过大等,若不为异常,则转到步骤S20,否则转到步骤S25;
S20、判断当前是否为初始帧,因为只有一帧数据无法进行插帧,所以对于初始帧需要特殊处理,若非初始帧,转到步骤S21,否则转到步骤S26;
S21、记录当前时间;
S22、根据记录的时间差,用lastF rame作为起始帧,将当前帧作为结束帧,生成骨骼动画;
S23、加载动画;
S24、渲染时,根据渲染的刷新时间,和动画的时长,进行动画插帧,使得原先的两帧动作变成十几帧,减少动作的割裂感,增加动作的平滑性.转到步骤(29);
S25、播放异常动画,转到步骤S28;
S26、记录初始帧,将初始帧写入lastFrame,记录当前时间;
S27、生成初始动画,这里只有一帧,所以其实是单帧动画,无插帧流程;
S28、根据该帧的动画信息,使用骨骼蒙皮技术,驱动模型做出对应动作。
在本申请的一些实施例中,本申请实施例中的方案可以和增强现实场景进行结合,例如,如图3b所示,本申请实施例提供一种AR设备,包括:摄像头30和处理器32。其中,摄像头30可以用于采集用户图像,以及展示最终的目标动画;处理器32,用于基于图2所示的方法对采集的图像进行处理,得到目标动画。具体地:
步骤1,摄像头30实时采集用户的动作图像(该动作图像中包括各个采样时刻的姿态信息),并将该动作图像发送至处理器;
步骤2,处理器32从动作图像中获取用户的人体姿态信息;
步骤3,处理器32基于人体姿态信息所在当前帧的上一帧确定起始帧,基于当前帧确定结束帧,并基于起始帧和结束帧生成预设人体模型的动画;
步骤4,处理器32根据动画的渲染时间和动画的时长对动画进行插帧操作,得到目标动画,并将目标动画发送至摄像头30,其中,目标动画中包括多帧图像,该多帧图像用于共同展示预设人体模型的动作;
步骤5,摄像头30在其图像拍摄界面中展示目标动画。其中,如图3b所示,对象a表示实际的人体图像,对象b表示图像拍摄界面301中的虚拟对象,对象b的动作会跟随对象a的动作。
需要说明的是,步骤5中的图像拍摄界面还可以是与摄像头的图像拍摄界面不同的界面,例如,处理器将目标动画发送至一个指定终端(非AR设备),由终端提供的展示界面进行目标动画的展示。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的姿态动作的展示方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
图4是根据本申请实施例的另一种姿态动作的展示方法的流程图,如图4所示,该方法包括以下步骤:
步骤S402,获取目标对象的图像信息。
根据本申请的一个可选的实施例,步骤S402可以通过摄像头或者视频文件采集目标对象的图像信息。
步骤S404,基于图像信息确定目标对象的初始姿态信息。
将步骤S402获取的图像信息输入至深度学习算法框架中(AliNN,xNN,NCNN,caffe等),运行检测模型,输出检测结果(检测结果为人体关节特征点),该检测结果即为上述初始姿态信息。
步骤S406,确定初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息。
根据本申请的一个可选的实施例,步骤S406通过以下方法实现:确定每个骨骼的动作信息;步骤S408通过以下方法实现:对每个骨骼的动作信息进行修正,得到第一姿态;对第一姿态所对应骨骼组合的动作信息进行修正,得到第二姿态;基于第二姿态确定人体姿态信息。
步骤S408,在骨骼动作信息不满足预设条件时,对骨骼动作信息进行修正,得到人体姿态信息。
步骤S410,展示人体姿态信息。
需要说明的是,图4所示实施例的优选实施方式可以参见图2所示实施例的相关描述,此处不再赘述。
实施例3
根据本申请实施例,还提供了一种用于实施上述姿态动作的展示方法的装置,如图5所示,该装置包括:
获取模块50,用于获取目标对象的人体姿态信息;
确定模块52,用于基于人体姿态信息所在当前帧的上一帧确定起始帧,基于当前帧确定结束帧,并基于起始帧和结束帧生成预设人体模型的动画;
渲染模块54,用于对动画进行渲染;
插帧模块56,用于根据动画的渲染时间和动画的时长对动画进行插帧操作,得到目标动画,其中,目标动画中包括多帧图像,该多帧图像用于共同展示预设人体模型的动作;
展示模块58,用于展示目标动画。
此处需要说明的是,上述确定模块50、确定模块52、渲染模块54、插帧模块56和展示模块58对应于实施例1中的步骤S204至步骤S210,上述五个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算设备10中。
实施例4
本申请的实施例可以提供一种计算设备,该计算设备可以是计算设备群中的任意一个计算设备设备。可选地,在本实施例中,上述计算设备也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算设备可以执行应用程序的姿态动作的展示方法中以下步骤的程序代码:获取目标对象的人体姿态信息;基于人体姿态信息所在当前帧的上一帧确定起始帧,基于当前帧确定结束帧,并基于起始帧和结束帧生成预设人体模型的动画;对动画进行渲染;根据动画的渲染时间和动画的时长对动画进行插帧操作,得到目标动画,其中,目标动画中包括多帧图像,该多帧图像用于共同展示预设人体模型的动作。
可选地,图6是根据本申请实施例的一种计算设备的结构框图。如图6所示,该计算设备60可以包括:一个或多个(图中仅示出一个)处理器602、存储器604、以及射频模块、音频模块、显示屏。
其中,存储器604可用于存储软件程序以及模块,如本申请实施例中的姿态动作的展示方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的姿态动作的展示方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端60。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器602可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取目标对象的人体姿态信息;基于人体姿态信息所在当前帧的上一帧确定起始帧,基于当前帧确定结束帧,并基于起始帧和结束帧生成预设人体模型的动画;对动画进行渲染;根据动画的渲染时间和动画的时长对动画进行插帧操作,得到目标动画,其中,目标动画中包括多帧图像,该多帧图像用于共同展示预设人体模型的动作。
可选的,上述处理器还可以执行如下步骤的程序代码:判断当前帧是否为初始帧;在判断结果指示当前帧不是初始帧的情况下,触发基于当前帧的上一帧确定起始帧。
可选的,上述处理器还可以执行如下步骤的程序代码:在判断结果指示当前帧是初始帧的情况下,将当前帧作为候选起始帧。
可选的,上述处理器还可以执行如下步骤的程序代码:获取目标对象的图像信息;基于图像信息确定目标对象的初始姿态信息;确定初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息;在骨骼动作信息不满足预设条件时,对骨骼动作信息进行修正,得到人体姿态信息。
可选的,上述处理器还可以执行如下步骤的程序代码:确定每个骨骼的动作信息;对每个骨骼的动作信息进行修正,得到第一姿态;对第一姿态所对应骨骼组合的动作信息进行修正,得到第二姿态;基于第二姿态确定目标姿态。
可选的,上述处理器还可以执行如下步骤的程序代码:获取当前帧图像的上一帧图像的姿态信息;判断上一帧图像的姿态信息是否有效;在判断结果指示有效时,确定将上一帧图像的姿态信息作为目标姿态;在判断结果指示无效时,确定将当前帧图像对应的姿态作为目标姿态。
可选的,上述处理器还可以执行如下步骤的程序代码:从图像信息中提取目标对象的二维特征点信息,获取目标对象的特征点的初始化信息;基于二维特征点信息和初始化信息建立目标对象的三维特征点信息;依据三维特征点信息和参考姿态信息确定初始姿态信息。
可选的,上述处理器还可以执行如下步骤的程序代码:统计目标对象的特征点的数量;在数量大于第二阈值时,确定触发获取初始化信息。
可选的,上述处理器还可以执行如下步骤的程序代码:比较骨骼动作信息与参考动作信息,得到骨骼动作信息与参考动作信息之间的差异;基于差异对骨骼动作信息进行修正。
可选的,上述处理器还可以执行如下步骤的程序代码:判断骨骼动作信息中的动作幅度是否满足要求;其中,在满足要求时,触发比较骨骼动作信息与参考动作信息。
上述处理器还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取目标对象的图像信息;基于图像信息确定目标对象的初始姿态信息;确定初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息;在骨骼动作信息不满足预设条件时,对骨骼动作信息进行修正,得到人体姿态信息;展示人体姿态信息。
可选的,上述处理器还可以执行如下步骤的程序代码:对每个骨骼的动作信息进行修正,得到第一姿态;对第一姿态所对应骨骼组合的动作信息进行修正,得到第二姿态;基于第二姿态确定人体姿态信息。
采用本申请实施例,提供了一种姿态动作的展示方案。通过输入的视频帧,得到符合人体生理学的动作姿态,利用得到的人体动作姿态生成骨骼动画,并且对生成的骨骼动画进行插帧操作以使人体动作变的平滑,从而实现了以下技术效果:实现人体动作和摄像机结合,实现增强现实;对生成的骨骼动画进行插帧,使人体动作变得平滑不割裂;对异常动作进行修正处理,避免显示结果出现错乱,进而解决了现有的基于二维骨骼特征点的动画展示方案存在不连贯,影响用户体验的技术问题。
本领域普通技术人员可以理解,图6所示的结构仅为示意,计算设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图6其并不对上述电子装置的结构造成限定。例如,计算设备6还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的姿态动作的展示方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算设备群中的任意一个计算设备中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取目标对象的人体姿态信息;基于人体姿态信息所在当前帧的上一帧确定起始帧,基于当前帧确定结束帧,并基于起始帧和结束帧生成预设人体模型的动画;对动画进行渲染;根据动画的渲染时间和动画的时长对动画进行插帧操作,得到目标动画,其中,目标动画中包括多帧图像,该多帧图像用于共同展示预设人体模型的动作。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:判断当前帧是否为初始帧;在判断结果指示当前帧不是初始帧的情况下,触发基于当前帧的上一帧确定起始帧。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在判断结果指示当前帧是初始帧的情况下,将当前帧作为候选起始帧。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取目标对象的图像信息;基于图像信息确定目标对象的初始姿态信息;确定初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息;在骨骼动作信息不满足预设条件时,对骨骼动作信息进行修正,得到人体姿态信息。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:确定每个骨骼的动作信息;对每个骨骼的动作信息进行修正,得到第一姿态;对第一姿态所对应骨骼组合的动作信息进行修正,得到第二姿态;基于第二姿态确定目标姿态。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取当前帧图像的上一帧图像的姿态信息;判断上一帧图像的姿态信息是否有效;在判断结果指示有效时,确定将上一帧图像的姿态信息作为目标姿态;在判断结果指示无效时,确定将当前帧图像对应的姿态作为目标姿态。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:从图像信息中提取目标对象的二维特征点信息,获取目标对象的特征点的初始化信息;基于二维特征点信息和初始化信息建立目标对象的三维特征点信息;依据三维特征点信息和参考姿态信息确定初始姿态信息。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:统计目标对象的特征点的数量;在数量大于第二阈值时,确定触发获取初始化信息。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:比较骨骼动作信息与参考动作信息,得到骨骼动作信息与参考动作信息之间的差异;基于差异对骨骼动作信息进行修正。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:判断骨骼动作信息中的动作幅度是否满足要求;其中,在满足要求时,触发比较骨骼动作信息与参考动作信息。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取目标对象的图像信息;基于图像信息确定目标对象的初始姿态信息;确定初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息;在骨骼动作信息不满足预设条件时,对骨骼动作信息进行修正,得到人体姿态信息;展示人体姿态信息。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:对每个骨骼的动作信息进行修正,得到第一姿态;对第一姿态所对应骨骼组合的动作信息进行修正,得到第二姿态;基于第二姿态确定人体姿态信息。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (12)
1.一种姿态动作的展示方法,其特征在于,包括:
获取目标对象的人体姿态信息;
基于所述人体姿态信息所在当前帧的上一帧确定起始帧,基于所述当前帧确定结束帧,并基于所述起始帧和结束帧生成预设人体模型的动画;
对所述动画进行渲染;
根据所述动画的渲染时间和所述动画的时长对所述动画进行插帧操作,得到目标动画,其中,所述目标动画中包括多帧图像,该多帧图像用于共同展示所述预设人体模型的动作;
展示所述目标动画;
获取目标对象的人体姿态信息,包括:获取目标对象的图像信息;基于所述图像信息确定所述目标对象的初始姿态信息;确定所述初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息;在所述骨骼动作信息不满足预设条件时,对所述骨骼动作信息进行修正,得到所述人体姿态信息;
确定所述初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息,包括:确定每个骨骼的动作信息;对所述骨骼动作信息进行修正,得到所述人体姿态信息,包括:对所述每个骨骼的动作信息进行修正,得到第一姿态;对所述第一姿态所对应骨骼组合的动作信息进行修正,得到第二姿态;基于所述第二姿态确定所述人体姿态信息。
2.根据权利要求1所述的方法,其特征在于,基于所述人体姿态信息所在当前帧的上一帧确定起始帧之前,所述方法还包括:
判断所述当前帧是否为初始帧;在判断结果指示所述当前帧不是所述初始帧的情况下,触发基于所述当前帧的上一帧确定所述起始帧。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在判断结果指示所述当前帧是所述初始帧的情况下,将所述当前帧作为候选起始帧。
4.根据权利要求1所述的方法,其特征在于,在所述当前帧图像未检测到人体特征点的情况下,所述方法还包括:
获取所述当前帧图像的上一帧图像的姿态信息;
判断所述上一帧图像的姿态信息是否有效;在判断结果指示有效时,确定将所述上一帧图像的姿态信息作为所述人体姿态信息;在所述判断结果指示无效时,确定将所述当前帧图像对应的姿态作为所述人体姿态信息。
5.根据权利要求1所述的方法,其特征在于,基于所述图像信息确定所述目标对象的初始姿态信息,包括:
从所述图像信息中提取所述目标对象的二维特征点信息,获取所述目标对象的特征点的初始化信息;
基于所述二维特征点信息和所述初始化信息建立所述目标对象的三维特征点信息;
依据所述三维特征点信息和参考姿态信息确定所述初始姿态信息。
6.根据权利要求5所述的方法,其特征在于,获取所述目标对象的特征点的初始化信息之前,所述方法还包括:
统计所述目标对象的特征点的数量;
在所述数量大于第二阈值时,确定触发获取所述初始化信息。
7.根据权利要求1所述的方法,其特征在于,对所述骨骼动作信息进行修正,包括:
比较所述骨骼动作信息与参考动作信息,得到所述骨骼动作信息与参考动作信息之间的差异;
基于所述差异对所述骨骼动作信息进行修正。
8.根据权利要求7所述的方法,其特征在于,比较所述骨骼动作信息与参考动作信息,得到所述骨骼动作信息与参考动作信息之间的差异之前,所述方法还包括:
判断所述骨骼动作信息中的动作幅度是否满足要求;其中,在满足要求时,触发比较所述骨骼动作信息与参考动作信息。
9.一种姿态动作的展示方法,其特征在于,包括:
获取目标对象的图像信息;
基于所述图像信息确定所述目标对象的初始姿态信息;
确定所述初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息;
在所述骨骼动作信息不满足预设条件时,对所述骨骼动作信息进行修正,得到人体姿态信息;
展示所述人体姿态信息;
确定所述初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息,包括:确定每个骨骼的动作信息;
对所述骨骼动作信息进行修正,得到人体姿态信息,包括:对所述每个骨骼的动作信息进行修正,得到第一姿态;对所述第一姿态所对应骨骼组合的动作信息进行修正,得到第二姿态;基于所述第二姿态确定所述人体姿态信息。
10.一种姿态动作的展示装置,其特征在于,包括:
获取模块,用于获取目标对象的人体姿态信息;获取目标对象的人体姿态信息,包括:获取目标对象的图像信息;基于所述图像信息确定所述目标对象的初始姿态信息;确定所述初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息;在所述骨骼动作信息不满足预设条件时,对所述骨骼动作信息进行修正,得到所述人体姿态信息;确定所述初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息,包括:确定每个骨骼的动作信息;对所述骨骼动作信息进行修正,得到所述人体姿态信息,包括:对所述每个骨骼的动作信息进行修正,得到第一姿态;对所述第一姿态所对应骨骼组合的动作信息进行修正,得到第二姿态;基于所述第二姿态确定所述人体姿态信息;
确定模块,用于基于所述人体姿态信息所在当前帧的上一帧确定起始帧,基于所述当前帧确定结束帧,并基于所述起始帧和结束帧生成预设人体模型的动画;
渲染模块,用于对所述动画进行渲染;
插帧模块,用于根据所述动画的渲染时间和所述动画的时长对所述动画进行插帧操作,得到目标动画,其中,所述目标动画中包括多帧图像,该多帧图像用于共同展示所述预设人体模型的动作;
展示模块,用于展示所述目标动画。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至8中任意一项所述的姿态动作的展示方法。
12.一种系统,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:获取目标对象的人体姿态信息;基于所述人体姿态信息所在当前帧的上一帧确定起始帧,基于所述当前帧确定结束帧,并基于所述起始帧和结束帧生成预设人体模型的动画;对所述动画进行渲染;根据所述动画的渲染时间和所述动画的时长对所述动画进行插帧操作,得到目标动画,其中,所述目标动画中包括多帧图像,该多帧图像用于共同展示所述预设人体模型的动作;展示所述目标动画;获取目标对象的人体姿态信息,包括:获取目标对象的图像信息;基于所述图像信息确定所述目标对象的初始姿态信息;确定所述初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息;在所述骨骼动作信息不满足预设条件时,对所述骨骼动作信息进行修正,得到所述人体姿态信息;确定所述初始姿态信息所在当前帧图像与上一帧图像所指示姿态之间的骨骼动作信息,包括:确定每个骨骼的动作信息;对所述骨骼动作信息进行修正,得到所述人体姿态信息,包括:对所述每个骨骼的动作信息进行修正,得到第一姿态;对所述第一姿态所对应骨骼组合的动作信息进行修正,得到第二姿态;基于所述第二姿态确定所述人体姿态信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911268142.5A CN112950751B (zh) | 2019-12-11 | 2019-12-11 | 姿态动作的展示方法及装置、存储介质、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911268142.5A CN112950751B (zh) | 2019-12-11 | 2019-12-11 | 姿态动作的展示方法及装置、存储介质、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112950751A CN112950751A (zh) | 2021-06-11 |
CN112950751B true CN112950751B (zh) | 2024-05-14 |
Family
ID=76234042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911268142.5A Active CN112950751B (zh) | 2019-12-11 | 2019-12-11 | 姿态动作的展示方法及装置、存储介质、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112950751B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113643419B (zh) * | 2021-06-29 | 2024-04-23 | 清华大学 | 一种基于深度学习的人体反向动力学求解方法 |
CN113593053A (zh) * | 2021-07-12 | 2021-11-02 | 北京市商汤科技开发有限公司 | 视频帧修正方法及相关产品 |
CN113610947A (zh) * | 2021-08-09 | 2021-11-05 | 平安国际智慧城市科技股份有限公司 | 动画生成方法、装置、计算机设备及存储介质 |
CN113766121B (zh) * | 2021-08-10 | 2023-08-08 | 国网河北省电力有限公司保定供电分公司 | 基于四足机器人的保持图像稳定的装置和方法 |
CN113706699B (zh) * | 2021-10-27 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN116597056B (zh) * | 2023-07-14 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 一种动画处理方法、装置、设备和存储介质 |
CN117788650B (zh) * | 2024-02-27 | 2024-06-07 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020961A (zh) * | 2012-11-26 | 2013-04-03 | 谭平 | 基于图像的虚拟服装拟合的方法和设备 |
CN104035557A (zh) * | 2014-05-22 | 2014-09-10 | 华南理工大学 | 一种基于关节活跃度的Kinect动作识别方法 |
KR101498498B1 (ko) * | 2013-10-16 | 2015-03-05 | 홍익대학교 산학협력단 | 골격 추적을 이용한 자세 교정 방법 |
CN106204635A (zh) * | 2016-06-27 | 2016-12-07 | 北京工业大学 | 基于l0最小化的人体连续帧骨骼优化方法 |
WO2018120964A1 (zh) * | 2016-12-30 | 2018-07-05 | 山东大学 | 一种基于深度信息和骨骼信息的姿势矫正方法 |
CN108288300A (zh) * | 2018-01-12 | 2018-07-17 | 北京蜜枝科技有限公司 | 人体动作捕捉与骨骼数据映射系统及其方法 |
CN108876815A (zh) * | 2018-04-28 | 2018-11-23 | 深圳市瑞立视多媒体科技有限公司 | 骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质 |
CN109623818A (zh) * | 2018-12-20 | 2019-04-16 | 北京理工大学 | 一种基于时间分组的机械臂关节轨迹优化方法 |
WO2019109729A1 (zh) * | 2017-12-08 | 2019-06-13 | 华为技术有限公司 | 骨骼姿态确定方法、装置及计算机可读存储介质 |
CN110310350A (zh) * | 2019-06-24 | 2019-10-08 | 清华大学 | 基于动画的动作预测生成方法和装置 |
-
2019
- 2019-12-11 CN CN201911268142.5A patent/CN112950751B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020961A (zh) * | 2012-11-26 | 2013-04-03 | 谭平 | 基于图像的虚拟服装拟合的方法和设备 |
KR101498498B1 (ko) * | 2013-10-16 | 2015-03-05 | 홍익대학교 산학협력단 | 골격 추적을 이용한 자세 교정 방법 |
CN104035557A (zh) * | 2014-05-22 | 2014-09-10 | 华南理工大学 | 一种基于关节活跃度的Kinect动作识别方法 |
CN106204635A (zh) * | 2016-06-27 | 2016-12-07 | 北京工业大学 | 基于l0最小化的人体连续帧骨骼优化方法 |
WO2018120964A1 (zh) * | 2016-12-30 | 2018-07-05 | 山东大学 | 一种基于深度信息和骨骼信息的姿势矫正方法 |
WO2019109729A1 (zh) * | 2017-12-08 | 2019-06-13 | 华为技术有限公司 | 骨骼姿态确定方法、装置及计算机可读存储介质 |
CN108288300A (zh) * | 2018-01-12 | 2018-07-17 | 北京蜜枝科技有限公司 | 人体动作捕捉与骨骼数据映射系统及其方法 |
CN108876815A (zh) * | 2018-04-28 | 2018-11-23 | 深圳市瑞立视多媒体科技有限公司 | 骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质 |
CN109623818A (zh) * | 2018-12-20 | 2019-04-16 | 北京理工大学 | 一种基于时间分组的机械臂关节轨迹优化方法 |
CN110310350A (zh) * | 2019-06-24 | 2019-10-08 | 清华大学 | 基于动画的动作预测生成方法和装置 |
Non-Patent Citations (1)
Title |
---|
虚拟角色动作编辑及运动控制;秦文虎;吴宇晖;赵正旭;;东南大学学报(自然科学版);20061020(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112950751A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112950751B (zh) | 姿态动作的展示方法及装置、存储介质、系统 | |
JP6644833B2 (ja) | アルベドモデルにより拡張現実コンテンツをレンダリングするシステムおよび方法 | |
US11610331B2 (en) | Method and apparatus for generating data for estimating three-dimensional (3D) pose of object included in input image, and prediction model for estimating 3D pose of object | |
EP3992919B1 (en) | Three-dimensional facial model generation method and apparatus, device, and medium | |
KR20210011425A (ko) | 이미지 처리 방법 및 디바이스, 이미지 장치, 및 저장 매체 | |
WO2023071964A1 (zh) | 数据处理方法, 装置, 电子设备及计算机可读存储介质 | |
CN111694430A (zh) | 一种ar场景画面呈现方法、装置、电子设备和存储介质 | |
CN112381003B (zh) | 动作捕捉方法、装置、设备及存储介质 | |
CN111161422A (zh) | 一种用于增强虚拟场景实现的模型展示方法 | |
US20120306874A1 (en) | Method and system for single view image 3 d face synthesis | |
CN108771866B (zh) | 虚拟现实中的虚拟对象控制方法及装置 | |
CN110827376A (zh) | 增强现实多平面模型动画交互方法、装置、设备及存储介质 | |
US20120194513A1 (en) | Image processing apparatus and method with three-dimensional model creation capability, and recording medium | |
CN106200960A (zh) | 电子互动产品的内容显示方法及装置 | |
CN109035415B (zh) | 虚拟模型的处理方法、装置、设备和计算机可读存储介质 | |
CN113298858A (zh) | 一种虚拟形象的动作生成方法、装置、终端以及存储介质 | |
EP1155387A1 (en) | Method and apparatus for inserting external transformations into computer animations | |
CN111383313B (zh) | 一种虚拟模型渲染方法、装置、设备及可读存储介质 | |
CN116863044A (zh) | 人脸模型的生成方法、装置、电子设备及可读存储介质 | |
CN116563497A (zh) | 一种虚拟人驱动方法、装置、设备及可读存储介质 | |
KR20150044243A (ko) | 손 아바타를 이용한 콘텐츠 제어가능 전자학습 장치 및 방법 | |
CN114764930A (zh) | 图像处理方法、装置、存储介质及计算机设备 | |
Xiang | Modeling Dynamic Clothing for Data-Driven Photorealistic Avatars | |
Salonen | Motion capture in 3D animation | |
CN111696183B (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 |