CN116958247A - 物体的姿态预测方法、装置、设备及存储介质 - Google Patents
物体的姿态预测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116958247A CN116958247A CN202211596042.7A CN202211596042A CN116958247A CN 116958247 A CN116958247 A CN 116958247A CN 202211596042 A CN202211596042 A CN 202211596042A CN 116958247 A CN116958247 A CN 116958247A
- Authority
- CN
- China
- Prior art keywords
- rotation
- moment
- gesture
- time
- parameter set
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 127
- 239000011159 matrix material Substances 0.000 claims description 112
- 238000006073 displacement reaction Methods 0.000 claims description 79
- 230000033001 locomotion Effects 0.000 claims description 73
- 238000012545 processing Methods 0.000 claims description 53
- 238000006243 chemical reaction Methods 0.000 claims description 38
- 230000001133 acceleration Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 10
- 238000009877 rendering Methods 0.000 claims description 8
- 230000003190 augmentative effect Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 9
- 238000004422 calculation algorithm Methods 0.000 description 72
- 230000008569 process Effects 0.000 description 28
- 238000005516 engineering process Methods 0.000 description 22
- 230000008859 change Effects 0.000 description 21
- 230000006870 function Effects 0.000 description 21
- 239000013598 vector Substances 0.000 description 18
- 238000013473 artificial intelligence Methods 0.000 description 16
- 238000013461 design Methods 0.000 description 15
- 230000000903 blocking effect Effects 0.000 description 12
- 238000005259 measurement Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000036962 time dependent Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000003058 natural language processing Methods 0.000 description 5
- 238000011160 research Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002068 genetic effect Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例公开了一种物体的姿态预测方法、装置、设备及存储介质,用于避免跨进程传输预测姿态数据的延迟而导致的丢帧、卡顿,提升用户体验。该方法包括:读取第一时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,基于姿态旋转量预测方程式,对旋转四元数以及旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值,基于姿态位置预测方程式,对姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的姿态位置预测值,基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,得到第二时刻对应的姿态预测值,基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像。
Description
技术领域
本申请实施例涉及图像处理技术领域,尤其涉及一种物体的姿态预测方法、装置、设备及存储介质。
背景技术
在扩展现实XR(Extended Reality)系统中,目标同步指的是建立现实世界中的物体和虚拟空间中的物体的关联关系。通过目标同步把现实世界中的物体映射到虚拟空间的某一个位置,当现实世界中的物体移动或者转动的时候,虚拟空间的物体也随之移动或转动。
在目标同步的过程中,通常是通过XR应用程序在渲染一个数据帧之前计算图像将要显示的时间戳(timestamp),把这个时间戳(timestamp)通过XR系统的进程间通信(Inter-Process Communication,IPC)调用传递到算法模块,算法模块根据这个时间戳(timestamp)来预测目标物体的姿态,然后通过IPC把物体姿态传递回XR应用程序,再通过XR应用获取预测姿态之后,继续进行物体图像绘制并送入到XR系统中合成显示,这样才能维护显示时刻的姿态和现实世界更加接近。
但是,该方法需要XR应用程序在渲染每一帧数据前都通过IPC传递一个预测时间戳(timestamp)给算法模块,并在等待算法模块完姿态预测返回XR应用程序后,XR应用程序才能按照垂直同步信号(Vertical Synchronization,Vsync)周期,根据预测的姿态来进行每一帧数据的绘制,以生成虚拟物体,最后绘制完成后送到XR系统合成和显示,然而在系统负载比较重的时候,跨进程IPC调用时常会发生延迟,且延迟超过常常容易超过一个垂直同步Vsync周期,就会造成显示卡顿,从而严重影响用户的体验。
发明内容
本申请实施例提供了一种物体的姿态预测方法、装置、设备及存储介质,用于通过随时读取真实数据,就可以直接在扩展显示系统基于读取到的真实数据,来预测目标物体在晚于第一时刻的第二时刻所对应的姿态预测值,并能直接基于姿态预测值进行绘制以及显示,避免了跨进程传输预测姿态数据至扩展现实系统总出现的延迟,从而避免因时延而导致的丢帧、显示图像卡顿的情形,以提升用户体验。
本申请实施例一方面提供了一种物体的姿态预测方法,包括:
读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,其中,第一时刻用于指示最近一次采集到目标物体在真实姿态下的姿态位置坐标以及旋转四元数的时刻,旋转参数集中的参数是基于旋转四元数拟合得到的,用于表示姿态旋转量预测方程式中的方程参数,位置参数集中的参数是基于姿态位置坐标拟合得到的,用于表示姿态位置预测方程式中的方程参数;
基于姿态旋转量预测方程式,对旋转四元数以及旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值,其中,第二时刻晚于第一时刻;
基于姿态位置预测方程式,对姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的姿态位置预测值;
基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,得到第二时刻对应的姿态预测值;
基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像。
本申请另一方面提供了一种物体的姿态预测装置,包括:
获取单元,用于读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,其中,第一时刻用于指示最近一次采集到目标物体在真实姿态下的姿态位置坐标以及旋转四元数的时刻,旋转参数集中的参数是基于旋转四元数拟合得到的,用于表示姿态旋转量预测方程式中的方程参数,位置参数集中的参数是基于姿态位置坐标拟合得到的,用于表示姿态位置预测方程式中的方程参数;
处理单元,用于基于姿态旋转量预测方程式,对旋转四元数以及旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值,其中,第二时刻晚于第一时刻;
处理单元,还用于基于姿态位置预测方程式,对姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的姿态位置预测值;
处理单元,还用于基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,得到第二时刻对应的姿态预测值;
显示单元,用于基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
获取单元,还用于获取第一时刻与第二时刻之间的第一预测时间长度;
处理单元具体可以用于:基于姿态旋转量预测方程式,对第一预测时间长度、旋转四元数以及旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值;
处理单元具体可以用于:基于姿态位置预测方程式,对第一预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的姿态位置预测值。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
获取单元,还用于若第一时刻未发生变化,则读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
获取单元,还用于获取第一时刻与第三时刻之间的第二预测时间长度;
处理单元,还用于基于姿态旋转量预测方程式,对第二预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的姿态旋转量预测值;
处理单元,还用于基于姿态位置预测方程式,对第二预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的姿态位置预测值;
处理单元,还用于基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,得到第三时刻对应的姿态预测值;
显示单元,还用于基于第三时刻对应的姿态预测值进行图像绘制,并显示目标物体在第三时刻对应的姿态图像。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
获取单元,还用于若第一时刻发生变化,则读取在更新后的第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
获取单元,还用于获取更新后的第一时刻与第三时刻之间的第三预测时间长度;
处理单元,还用于基于姿态旋转量预测方程式,对第三预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的姿态旋转量预测值;
处理单元,还用于基于姿态位置预测方程式,对第三预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的姿态位置预测值;
处理单元,还用于基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,得到第三时刻对应的姿态预测值;
显示单元,还用于基于第三时刻对应的姿态预测值进行图像绘制,并显示目标物体在第三时刻对应的姿态图像。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,获取单元具体可以用于:
周期性获取在每个采集时刻下目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
将每个采集时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,写入共享内存;
从共享内存中,将最近一次采集时刻作为第一时刻,并读取第一时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,获取单元具体可以用于:
周期性采集在采集时刻下目标物体所对应的姿态位置坐标、旋转四元数;
基于姿态位置坐标,拟合计算每个采集时刻对应的位置参数集;
基于旋转四元数,拟合计算每个采集时刻对应的旋转参数集。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,
获取单元,还用于周期性采集在每个采集时刻下目标物体所对应的运动传感数据;
处理单元,还用于基于运动传感数据,计算在每个采集时刻下目标物体对应的线性速度、线性加速度、角速度以及角加速度;
处理单元具体可以用于:基于姿态位置坐标、线性速度以及线性加速度,拟合计算每个采集时刻对应的位置参数集;
处理单元具体可以用于:基于旋转四元数、角速度以及角加速度,拟合计算每个采集时刻对应的旋转参数集。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
基于旋转量拟合方程式,对第一预测时间长度、旋转四元数以及旋转参数集进行计算,得到第二时刻对应的旋转欧拉角;
对第二时刻对应的旋转欧拉角进行矩阵转换,得到第二时刻对应的旋转矩阵;
基于姿态旋转量预测方程式,计算第一时刻对应的旋转四元数与第二时刻对应的旋转矩阵之间的乘积,得到第二时刻对应的姿态旋转量预测值。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
基于位置拟合方程式,对第一预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的位移数据;
对第二时刻对应的位移数据进行矩阵转换,得到第二时刻对应的位移矩阵;
基于姿态位置预测方程式,计算第一时刻对应的姿态位置坐标与第二时刻对应的位移矩阵之间的和值,得到第二时刻对应的姿态位置预测值。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
基于旋转量拟合方程式,对第二预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的旋转欧拉角;
对第三时刻对应的旋转欧拉角进行矩阵转换,得到第三时刻对应的旋转矩阵;
基于姿态旋转量预测方程式,计算第一时刻对应的旋转四元数与第三时刻对应的旋转矩阵之间的乘积,得到第三时刻对应的姿态旋转量预测值。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
基于位置拟合方程式,对第二预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的位移数据;
对第三时刻对应的位移数据进行矩阵转换,得到第三时刻对应的位移矩阵;
基于姿态位置预测方程式,计算第一时刻对应的姿态位置坐标与第三时刻对应的位移矩阵之间的和值,得到第三时刻对应的姿态位置预测值。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
基于旋转量拟合方程式,对第三预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的旋转欧拉角;
对第三时刻对应的旋转欧拉角进行矩阵转换,得到第三时刻对应的旋转矩阵;
基于姿态旋转量预测方程式,计算更新后的第一时刻对应的旋转四元数与第三时刻对应的旋转矩阵之间的乘积,得到第三时刻对应的姿态旋转量预测值。
在一种可能的设计中,本申请实施例另一方面的一种实现方式中,处理单元具体可以用于:
基于位置拟合方程式,对第三预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的位移数据;
对第三时刻对应的位移数据进行矩阵转换,得到第三时刻对应的位移矩阵;
基于姿态位置预测方程式,计算更新后的第一时刻对应的姿态位置坐标与第三时刻对应的位移矩阵之间的和值,得到第三时刻对应的姿态位置预测值。
本申请另一方面提供了一种计算机设备,包括:存储器、处理器以及总线系统;
其中,存储器用于存储程序;
处理器用于执行存储器中的程序时实现如上述各方面的方法;
总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。
本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
从以上技术方案可以看出,本申请实施例具有以下有益效果:
通过读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,进而,可以直接在扩展显示系统中,基于姿态旋转量预测方程式,对旋转四元数以及旋转参数集进行计算,以获取到晚于第一时刻的第二时刻所对应的姿态旋转量预测值,以及基于姿态位置预测方程式,对姿态位置坐标以及位置参数集进行计算,以获取到第二时刻对应的姿态位置预测值,然后,可以基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,以获取到第二时刻对应的姿态预测值,并基于第二时刻对应的姿态预测值进行图像绘制,显示目标物体在第二时刻对应的姿态图像。通过上述方式,扩展显示系统可以随时读取到目标物体在第一时刻所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集等真实数据,就可以直接在扩展显示系统中基于多项拟合方程式,来预测目标物体在晚于第一时刻的第二时刻所对应的姿态预测值,并能直接基于姿态预测值进行绘制以及显示,避免了跨进程传输预测姿态数据至扩展现实系统总出现的延迟,从而避免因时延而导致的丢帧、显示图像卡顿的情形,以提升用户体验。
附图说明
图1是本申请实施例中图像数据控制系统的一个架构示意图;
图2是本申请实施例中物体的姿态预测方法的一个实施例流程图;
图3是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图4是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图5是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图6是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图7是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图8是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图9是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图10是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图11是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图12是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图13是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图14是本申请实施例中物体的姿态预测方法的另一个实施例流程图;
图15是本申请实施例中物体的姿态预测方法的一个原理流程示意图;
图16是本申请实施例中物体的姿态预测方法的一个算法模块的原理流程示意图;
图17是本申请实施例中物体的姿态预测方法的一个共享内存的通信示意图;
图18是本申请实施例中物体的姿态预测方法的一个共享内存的结构示意图;
图19是本申请实施例中物体的姿态预测装置的一个实施例示意图;
图20是本申请实施例中计算机设备的一个实施例示意图。
具体实施方式
本申请实施例提供了一种物体的姿态预测方法、装置、设备及存储介质,用于通过随时读取真实数据,就可以直接在扩展显示系统基于读取到的真实数据,来预测目标物体在晚于第一时刻的第二时刻所对应的姿态预测值,并能直接基于姿态预测值进行绘制以及显示,避免了跨进程传输预测姿态数据至扩展现实系统总出现的延迟,从而避免因时延而导致的丢帧、显示图像卡顿的情形,以提升用户体验。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解,先对本申请实施例涉及到的一些术语或概念进行解释。
1、扩展现实(XR)是指通过以计算机为核心的技术手段,用于营造真实、虚拟组合的数字化环境,以及新型人机交互方式,用于为体验者带来虚拟世界与现实世界之间无缝转换的沉浸感,是增强现实(Augmented Reality,AR)、虚拟现实(Virtual Reality,VR)、混合现实(Mix reality,MR)等多种技术的统称。
2、目标同步:在XR系统中,目标同步指的是建立现实世界中的物体和虚拟空间中的物体的关联关系。是一个很复杂的系统工程,比如说对手的同步,首先算法通过XR头盔HMD(Head Mounted Display)的camera采集手的图像,进而,使用视觉算法计算手指的各个关节点的姿态(这里的姿态包括position(x,y,z)位置和orientaion(x,y,z,w)旋转姿态四元数),然后,把关节点姿态信息传递给XR应用程序,XR应用程序根据这些关节姿态信息把现实世界中的手映射成虚拟世界中手,这样用户就可以通过手操控虚拟世界各种组件和物体。
可以理解的是,在本申请的具体实施方式中,涉及到姿态位置坐标以及旋转四元数等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
可以理解的是,如本申请所公开的物体的姿态预测方法,涉及人工智能(Artificial Intelligence,AI)技术,下面进一步地对人工智能技术进行介绍。人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
其次,自然语言处理(Nature Language processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
其次,机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
应理解的是,本申请提供的物体的姿态预测方法可应用于各种场景,包括但不限于增强现实AR技术、虚拟现实VR技术、三维虚拟游戏、人工智能、云技术、地图、智慧交通等,用于通过随时获取真实数据,在扩展现实系统中直接预测物体姿态,并基于预测到的物体姿态进行显示,以应用于如游戏手柄运动同步至虚拟场景、真实人物的手同步至虚拟场景、AR人机同步交互、VR仿真智能系统等场景。
为了解决上述问题,本申请提出了一种物体的姿态预测方法,该方法应用于图1所示的图像数据控制系统,请参阅图1,图1为本申请实施例中图像数据控制系统的一个架构示意图,如图1所示,服务器通过读取在第一时刻获取到的终端设备采集目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,进而,可以直接在扩展显示系统中,基于姿态旋转量预测方程式,对旋转四元数以及旋转参数集进行计算,以获取到晚于第一时刻的第二时刻所对应的姿态旋转量预测值,以及基于姿态位置预测方程式,对姿态位置坐标以及位置参数集进行计算,以获取到第二时刻对应的姿态位置预测值,然后,可以基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,以获取到第二时刻对应的姿态预测值,并基于第二时刻对应的姿态预测值进行图像绘制,显示目标物体在第二时刻对应的姿态图像。通过上述方式,扩展显示系统可以随时读取到目标物体在第一时刻所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集等真实位姿数据,就可以直接在扩展显示系统中基于多项拟合方程式,来预测目标物体在晚于第一时刻的第二时刻所对应的姿态预测值,并能直接基于姿态预测值进行绘制以及显示,避免了跨进程传输预测姿态数据至扩展现实系统总出现的延迟,从而避免因时延而导致的丢帧、显示图像卡顿的情形,以提升用户体验。
可以理解的是,图1中仅示出了一种终端设备,在实际场景中可以由更多种类的终端设备参与到数据处理的过程中,终端设备包括但不限于VR设备、AR设备、手机、电脑、智能语音交互设备、智能家电、车载终端等,具体数量和种类因实际场景而定,具体此处不做限定。另外,图1中示出了一个服务器,但在实际场景中,也可以有多个服务器的参与,特别是在多模型训练交互的场景中,服务器的数量因实际场景而定,具体此处不做限定。
需要注意的是,本实施例中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdelivery network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,终端设备以及服务器可以连接组成区块链网络,本申请在此不做限制。
结合上述介绍,下面将对本申请中物体的姿态预测方法进行介绍,请参阅图2,本申请实施例中物体的姿态预测方法一个实施例包括:
在步骤S101中,读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,其中,第一时刻用于指示最近一次采集到目标物体在真实姿态下的姿态位置坐标以及旋转四元数的时刻,旋转参数集中的参数是基于旋转四元数拟合得到的,用于表示姿态旋转量预测方程式中的方程参数,位置参数集中的参数是基于姿态位置坐标拟合得到的,用于表示姿态位置预测方程式中的方程参数;
在本实施例中,当需要对目标物体在未来某一时刻的姿态进行预测,并基于预测姿态进行及时绘制渲染相应的姿态图像,以在该未来某一时刻进行图像显示,从而维护显示图像与目标物体真实的运动姿态相似或相同,避免显示卡顿的情形时,XR系统可以从算法模块中读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,以使后续XR系统可以直接根据读取到的数据进行姿态预测。
其中,可以理解的是,算法模块会按照预设的时间周期采集并计算每个采集时刻下目标物体的真实姿态,其中,姿态值通常用姿态位置坐标以及旋转四元数进行描述,则第一时刻即可以理解为是最新一次采集时刻,即最近一次采集到目标物体在真实姿态下的姿态位置坐标以及旋转四元数的时刻。例如,算法模块中当前对应有{t1,t2,t3,t4}的采集时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集等数据,则当前最新一次采集时刻,即第一时刻为t4。
其中,旋转参数集中的参数是基于旋转四元数拟合得到的,用于表示姿态旋转量预测方程式中的方程参数,具体可以是对预设的姿态旋转量预测方程式,采用非线性拟合函数或者,采用遗传算法计算得到相应的参数值,可以采用其他拟合函数,此处不做具体限制。位置参数集中的参数是基于姿态位置坐标拟合得到的,用于表示姿态位置预测方程式中的方程参数,具体可以是对预设的姿态位置预测方程式,采用非线性拟合函数,或者,采用非线性多参数拟合函数计算得到相应的参数值,可以采用其他拟合函数,此处不做具体限制。其中,姿态旋转量预测方程式以及姿态位置预测方程式具体可以表现为基于卡尔曼算法变换得到的,也可以是基于其他预测算法获取到,如欧元预测算法等等,此处不做具体限制。
其中,如图15所示,目标物体具体可以表现为真实世界中目标对象(如人物或机器人等)的处于运动状态的裸手,或者,处于运动状态的手柄(如游戏手柄或机械手柄等),或者,处于运动状态的VR设备(如位置同步器、数据手套(5DT之类的)、动捕系统、数据头盔等),或者处于运动状态的AR设备(如具有拍摄设备的智能眼镜、具有拍摄设备的智能手机或智能电脑等)等,此处不做具体限制。
具体地,如图15所示,算法模块会按照预设的时间周期采集并计算每个采集时刻下目标物体的真实姿态,即包括姿态位置坐标和旋转四元数,并基于姿态位置坐标拟合得到位置参数集,以及基于旋转四元数拟合得到旋转参数集,然后将每个采集时刻对应的真实位姿数据写入共享内存中。
进一步地,当XR系统对目标物体在未来某一时刻(即晚于第一时刻的时刻)的姿态进行预测时,为了更好地与真实世界中的目标物体的运动姿态保持同步,XR系统可以通过读取算法模块写入共享内存中的最近更新的采集时刻,即第一时刻,采集到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集等真实位姿数据,无需基于算法模块预测出姿态预测值之后,再进行姿态预测值的传输、绘制和显示,以避免姿态预测值的传输过程的延时。
在步骤S102中,基于姿态旋转量预测方程式,对旋转四元数以及旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值,其中,第二时刻晚于第一时刻;
在本实施例中,由于目标物体的姿态值可以通过姿态旋转量(orientation)以及姿态位置(position)进行描述,故在获取到旋转四元数以及旋转参数集后,XR系统可以基于姿态旋转量预测方程式,对旋转四元数以及旋转参数集进行计算,以获取到第二时刻对应的姿态旋转量预测值。
其中,可以理解的是XR系统的XR应用模块可以根据自身能力估算预测姿态值,并基于预测姿态值进行图像绘制和渲染需要耗费的时间,从而可以基于耗费的时间设置一个时间周期,来按照预设的时间周期来定期从读取算法模块的数据,并可以估算显示下一帧图像对应的时刻,则第二时刻可以理解为是XR系统显示下一帧图像对应的时刻,且第二时刻晚于第一时刻。
具体地,由于在XR系统中使用位置和旋转量来描述一个物体的姿态,可以理解的是,物体的位置坐标position(x,y,z)表示物体在世界坐标系下的位置,旋转量orientation(x,y,z,w)表示物体在世界坐标系下的旋转姿态。其中旋转姿态orientation在数学上可以用欧拉角、旋转矩阵或者四元数来表示,他们之间可以相互计算转换。
由此,为了更好地进行姿态值预测,可以采用卡尔曼预测算法,欧元预测算法等等,此处不做具体限制,为了便于理解,本实施例采用卡尔曼算法进行说明,则运动物体姿态预测方程式可以表示为如下式(1)所示:
Xt = FtXt-1 + BtUt + ωt (1);
其中,Xt用于表示待预测时刻,即第二时刻对应的物体的姿态预测值;Xt-1用于表示最近一次采集时刻,即第一时刻获取到的物体的姿态值;Ut用于表示当前运动测量值,如瞬时加速度,角速度等;Ft用于表示状态转换方程,即将第一时刻的状态转换至第二时刻的状态;Bt用于表示控制输入矩阵,可以将运动测量值Ut的作用映射到状态向量上,ωt是预测的高斯噪声,其均值为0,对应的协方差矩阵为Qt;
进一步地,假设需要预测第二时刻物体的姿态为Xt,则需要知道当前(t-1)时刻即第一时刻的物体姿态Xt-1和第一时刻物体的运动状态BtUt,然后,可以基于上述式(1)计算出第二时刻的物体的姿态为Xt。
进一步地,在XR系统中参考卡尔曼预测方程,可以把姿态预测方程也分成两部分,即姿态旋转量预测方程式和姿态位置预测方程式,其中,旋转量orientation(x,y,z,w)方程,即姿态旋转量预测方程式,可以如下式(2)所示,预测第二时刻的物体旋转值,即姿态旋转量预测值:
q^[t] = q(v,θ,t) *q^[t-1] (2);
其中,q^[t]为t时刻即第二时刻的物体的姿态旋转量预测值,用四元数orientation(x,y,z,w)表示;q^[t-1]为t-1时刻即第一时刻下物体的姿态旋转量即旋转四元数;q(v,θ,t)为第二时刻物体旋转运动预测值。
由此,在获取到旋转四元数以及旋转参数集之后,可以将旋转四元数以及旋转参数集代入至上述式(2)的姿态旋转量预测方程式中,计算第二时刻对应的姿态旋转量预测值。
在步骤S103中,基于姿态位置预测方程式,对姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的姿态位置预测值;
在本实施例中,由于目标物体的姿态值可以通过姿态旋转量(orientation)以及姿态位置(position)进行描述,故在获取到旋转四元数以及旋转参数集后,XR系统可以基于姿态位置预测方程式,对姿态位置坐标以及位置参数集进行计算,以获取到第二时刻对应的姿态位置预测值。
具体地,为了更好地进行姿态值预测,可以采用卡尔曼预测算法,欧元预测算法等等,此处不做具体限制,为了便于理解,本实施例采用卡尔曼算法进行说明,则运动物体姿态预测方程式可以表示为上述式(1)进行目标物体的姿态预测。
进一步地,假设需要预测第二时刻物体的姿态为Xt,则需要知道当前(t-1)时刻即第一时刻的物体姿态Xt-1和第一时刻物体的运动状态BtUt,然后,可以基于上述式(1)计算出第二时刻的物体的姿态为Xt。
进一步地,在XR系统中参考卡尔曼预测方程,可以把姿态预测方程也分成两部分,即姿态旋转量预测方程式和姿态位置预测方程式,其中,位置position(x,y,z)方程,即姿态位置预测方程式,可以如下式(3)所示,预测第二时刻的物体位置坐标值,即姿态旋位置预测值:
p^[t] = p^[t-1] + p(v,t) (3);
其中,p^[t]为t时刻即第二时刻的物体的姿态位置预测值,用姿态位置position(x,y,z)表示;p^[t-1]为t-1时刻即第一时刻下物体的姿态位置坐标值即姿态位置坐标;p(v,t)为第二时刻物体位置运动测量预测值,v是物体瞬时速度测量值。
由此,在获取到姿态位置坐标以及位置参数集之后,可以将姿态位置坐标以及位置参数集代入至上述式(3)的姿态位置预测方程式中,计算第二时刻对应的姿态位置预测值。
在步骤S104中,基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,得到第二时刻对应的姿态预测值;
在本实施例中,在获取到姿态旋转量预测值以及姿态位置预测值之后,可以将姿态旋转量预测值以及姿态位置预测值代入至姿态预测方程式中进行运算,以获取到第二时刻对应的姿态预测值,以使后续XR系统可以直接基于第二时刻对应的姿态预测值进行图像绘制并显示。
具体地,为了便于理解,本实施例采用卡尔曼算法进行说明,则运动物体姿态预测方程式可以表示为上述式(1)进行目标物体的姿态预测,而姿态预测方程也分成两部分,即姿态旋转量预测方程式和姿态位置预测方程式,故在获取到姿态旋转量预测值以及姿态位置预测值之后,可以将姿态旋转量预测值以及姿态位置预测值代入至姿态预测方程式进行状态转换,以获取到第二时刻对应的姿态预测值。
在步骤S105中,基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像。
在本实施例中,在获取到第二时刻对应的姿态预测值之后,XR系统可以基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像。
具体地,如图15所示,当XR系统对目标物体在未来某一时刻(即晚于第一时刻的时刻)的姿态进行预测时,为了更好地与真实世界中的目标物体的运动姿态保持同步,XR系统可以通过读取算法模块写入共享内存中的最近更新的采集时刻,即第一时刻对应的真实位姿数据(即姿态位置坐标、旋转四元数以及旋转参数集等数据),来在XR系统的XR应用模块中,直接基于真实位姿数据进行姿态预测,以在XR应用模块中获取到目标物体在第二时刻对应的姿态预测值,进而,可以在XR应用模块中直接基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像,无需基于算法模块预测出姿态预测值之后,再进行姿态预测值的传输、绘制和显示,能够有效避免姿态预测值的传输过程的延时,从而降低显示画面的卡顿现象。例如,在VR体验设备上,通过第一时间采集到的体验者的VR游戏手柄的真实位姿数据,来预测得到体验者在第二时刻移动VR游戏手柄的姿态预测值,并进行图像绘制,再在体验者的VR游戏头盔的显示设备中显示体验者的VR游戏手柄在第二时刻对应的姿态图像,以与体验者移动VR游戏手柄的真实位姿同步。
在本申请实施例中,提供了一种物体的姿态预测方法,通过上述方式,扩展显示系统可以随时从算法模块中,读取到目标物体在第一时刻所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集等真实位姿数据,就可以直接在扩展显示系统中基于多项拟合方程式,来预测目标物体在晚于第一时刻的第二时刻所对应的姿态预测值,并能直接基于姿态预测值进行绘制以及显示,避免了跨进程传输预测姿态数据至扩展现实系统总出现的延迟,从而避免因时延而导致的丢帧、显示图像卡顿的情形,以提升用户体验。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图3所示,在步骤S102基于姿态旋转量预测方程式,对旋转四元数以及旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值之前,该方法还包括:步骤S301;以及步骤S102包括:步骤S302;以及步骤S103包括:步骤S303;
在步骤S301中,获取第一时刻与第二时刻之间的第一预测时间长度;
在步骤S302中,基于姿态旋转量预测方程式,对第一预测时间长度、旋转四元数以及旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值;
在步骤S303中,基于姿态位置预测方程式,对第一预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的姿态位置预测值。
在本实施例中,在基于姿态旋转量预测方程式,对旋转四元数以及旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值之前,还可以先获取第一时刻与第二时刻之间的第一预测时间长度,然后,可以基于姿态旋转量预测方程式,对第一预测时间长度、旋转四元数以及旋转参数集进行计算,以获取到第二时刻对应的姿态旋转量预测值,同理,可以基于姿态位置预测方程式,对第一预测时间长度、姿态位置坐标以及位置参数集进行计算,以获取到第二时刻对应的姿态位置预测值。
具体地,可以理解的是,对于上述式(2)的姿态旋转量预测方程式,旋转运动预测值部分q(v,θ,t)=cos(θ/2);
其中,v(vx,vy,vz)用于表示物体向量的预测值,物体向量由xyz三个维度向量表示,且vx=sin(θ/2);vy=sin(θ/2);vz=sin(θ/2);
其中,θ=θt-1*Δt;v=vt-1*Δt;θt-1用于表示第一时刻下物体角速度测量值;vt-1为第一时刻物体向量测量值;
由此,可以看到q(v,θ,t)是一个时间相关的方程,可以理解为,物体在某一个Δt时间段内的旋转姿态变化可以认为是物体在Δt时间段内的做旋转运动。
故可以通过Δt=t-(t-1),来计算第二时刻与第一时刻之间的差值,以获取第一时刻与第二时刻之间的第一预测时间长度Δt,可以将第一预测时间长度、旋转四元数以及旋转参数集,代入姿态旋转量预测方程式中,计算第二时刻对应的姿态旋转量预测值。
进一步地,可以理解的是,对于上述式(3)的姿态位置预测方程式,目标物体从第一时刻到第二时刻的位置变化,可以理解为时物体在某一个Δt时间段内的位置变化,故也可以通过Δt=t-(t-1),来计算第二时刻与第一时刻之间的差值,以获取第一时刻与第二时刻之间的第一预测时间长度Δt,并可以将第一预测时间长度、姿态位置坐标以及位置参数集,代入姿态位置预测方程式中,计算第二时刻对应的姿态位置预测值。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图4所示,在步骤S105基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像之后,该方法还包括:
在步骤S401中,若第一时刻未发生变化,则读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
在本实施例中,如果在基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像之后,算法模块中的真实位姿数据未更新,即算法模块中的第一时刻未发生变化,则可以从算法模块中,继续读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,来进行晚于第二时刻的未来某一时刻下的目标物体的姿态预测。
具体地,如果在基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像之后,XR系统要继续对下一帧图像的显示时刻即第三时刻的目标物体的运动姿态进行预测时,XR系统可以继续读取算法模块写入共享内存中的真实位姿数据,如果算法模块写入共享内存中的真实位姿数据未更新,即算法模块中的第一时刻未发生变化,则可以从算法模块中,继续读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,以供后续继续使用该第一时刻获取到的真实位姿数据,来预测第三时刻对应的目标物体的姿态预测值。
在步骤S402中,获取第一时刻与第三时刻之间的第二预测时间长度;
在步骤S403中,基于姿态旋转量预测方程式,对第二预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的姿态旋转量预测值;
在步骤S404中,基于姿态位置预测方程式,对第二预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的姿态位置预测值;
可以理解的是,对于上述式(2)的姿态旋转量预测方程式,在预测第三时刻对应的姿态旋转量预测值时,可以将上述式(2)中的t表示为第三时刻,且由于第一时刻未发生变化,则t-1仍可用于表示第一时刻。例如,上述示例中的t4。
进一步地,对于上述式(2)的姿态旋转量预测方程式的旋转运动预测值部分q(v,θ,t)是一个时间相关的方程,可以理解为,物体在某一个Δt时间段内的旋转姿态变化可以认为是物体在Δt时间段内的做旋转运动。
故仍然可以通过Δt=t-(t-1),其中,t表示为第三时刻,t-1表示第一时刻,例如,上述示例中的t4,来计算第三时刻与第一时刻之间的差值,以获取第一时刻与第三时刻之间的第二预测时间长度,然后,可以将第二预测时间长度、旋转四元数以及旋转参数集,代入姿态旋转量预测方程式中,计算第三时刻对应的姿态旋转量预测值。
进一步地,可以理解的是,对于上述式(3)的姿态位置预测方程式,可以将上述式(3)中的t表示为第三时刻,且由于第一时刻未发生变化,则t-1仍可用于表示第一时刻。而目标物体从第一时刻到第三时刻的位置变化,可以理解为时物体在某一个Δt时间段内的位置变化,故也可以通过Δt=t-(t-1),其中,t表示为第三时刻,t-1表示第一时刻,来计算第三时刻与第一时刻之间的差值,以获取第一时刻与第三时刻之间的第二预测时间长度,并可以将第二预测时间长度、姿态位置坐标以及位置参数集,代入姿态位置预测方程式中,计算第三时刻对应的姿态位置预测值。
在步骤S405中,基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,得到第三时刻对应的姿态预测值;
在本实施例中,在获取到姿态旋转量预测值以及姿态位置预测值之后,可以将姿态旋转量预测值以及姿态位置预测值代入至姿态预测方程式中进行运算,以获取到第三时刻对应的姿态预测值,以使后续XR系统可以直接基于第三时刻对应的姿态预测值进行图像绘制并显示。
具体地,为了便于理解,本实施例采用卡尔曼算法进行说明,则运动物体姿态预测方程式可以表示为上述式(1)进行目标物体的姿态预测,而姿态预测方程也分成两部分,即姿态旋转量预测方程式和姿态位置预测方程式,故在获取到第三时刻对应的姿态旋转量预测值以及姿态位置预测值之后,可以将姿态旋转量预测值以及姿态位置预测值代入至姿态预测方程式进行状态转换,以获取到第三时刻对应的姿态预测值。
在步骤S406中,基于第三时刻对应的姿态预测值进行图像绘制,并显示目标物体在第三时刻对应的姿态图像。
在本实施例中,在获取到第三时刻对应的姿态预测值之后,XR系统可以基于第三时刻对应的姿态预测值进行图像绘制,并显示目标物体在第三时刻对应的姿态图像。
具体地,如图15所示,当XR系统对目标物体在未来某一时刻(即晚于第二时刻的时刻)的姿态进行预测时,为了更好地与真实世界中的目标物体的运动姿态保持同步,XR系统可以通过读取算法模块写入共享内存中的最近更新的采集时刻,如果算法模块写入共享内存中的真实位姿数据未更新,即算法模块中的第一时刻未发生变化,则XR系统可以继续读取第一时刻对应的真实位姿数据,来在XR系统的XR应用模块中,直接基于真实位姿数据进行姿态预测,以在XR应用模块中获取到目标物体在第三时刻对应的姿态预测值,进而,可以在XR应用模块中直接基于第三时刻对应的姿态预测值进行图像绘制,并显示目标物体在第三时刻对应的姿态图像,无需基于算法模块预测出姿态预测值之后,再进行姿态预测值的传输、绘制和显示,能够有效避免姿态预测值的传输过程的延时,从而降低显示画面的卡顿现象。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图5所示,在步骤S105基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像之后,该方法还包括:
在步骤S501中,若第一时刻发生变化,则读取在更新后的第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
在本实施例中,如果在基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像之后,算法模块中的真实位姿数据有更新,即算法模块中的第一时刻发生变化,则可以从算法模块中,读取当前最新采集时刻即更新后的第一时刻下目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,来进行晚于第二时刻的未来某一时刻下的目标物体的姿态预测。
具体地,如果在基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像之后,XR系统要继续对下一帧图像的显示时刻即第三时刻的目标物体的运动姿态进行预测时,XR系统可以继续读取算法模块写入共享内存中的真实位姿数据,如果算法模块写入共享内存中的真实位姿数据已更新,即算法模块中的第一时刻发生变化,例如,算法模块中当前对应有{t1,t2,t3,t4,t5,t6}的采集时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集等数据,则当前最新一次采集时刻,即第一时刻为t6,则可以从算法模块中,读取最新的时刻即更新后的第一时刻(如t6)下目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,以供后续继续使用该更新后的第一时刻获取到的真实位姿数据,来预测第三时刻对应的目标物体的姿态预测值。
在步骤S502中,获取更新后的第一时刻与第三时刻之间的第三预测时间长度;
在步骤S503中,基于姿态旋转量预测方程式,对第三预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的姿态旋转量预测值;
在步骤S504中,基于姿态位置预测方程式,对第三预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的姿态位置预测值;
可以理解的是,对于上述式(2)的姿态旋转量预测方程式,在预测第三时刻对应的姿态旋转量预测值时,可以将上述式(2)中的t表示为第三时刻,且由于第一时刻发生变化,则t-1用于表示更新后的第一时刻,例如,上述示例中的t6。
进一步地,对于上述式(2)的姿态旋转量预测方程式的旋转运动预测值部分q(v,θ,t)是一个时间相关的方程,可以理解为,物体在某一个Δt时间段内的旋转姿态变化可以认为是物体在Δt时间段内的做旋转运动。
故仍然可以通过Δt=t-(t-1),其中,t表示为第三时刻,t-1表示更新后的第一时刻,例如,上述示例中的t6,来计算第三时刻与更新后的第一时刻之间的差值,以获取更新后的第一时刻与第三时刻之间的第三预测时间长度,然后,可以将第三预测时间长度、旋转四元数以及旋转参数集,代入姿态旋转量预测方程式中,计算第三时刻对应的姿态旋转量预测值。
进一步地,可以理解的是,对于上述式(3)的姿态位置预测方程式,可以将上述式(3)中的t表示为第三时刻,且由于第一时刻发生变化,则t-1用于表示更新后的第一时刻,例如,上述示例中的t6。而目标物体从更新后的第一时刻到第三时刻的位置变化,可以理解为时物体在某一个Δt时间段内的位置变化,故也可以通过Δt=t-(t-1),其中,t表示为第三时刻,t-1用于表示更新后的第一时刻,来计算第三时刻与更新后的第一时刻之间的差值,以获取更新后的第一时刻与第三时刻之间的第三预测时间长度,并可以将第三预测时间长度、姿态位置坐标以及位置参数集,代入姿态位置预测方程式中,计算第三时刻对应的姿态位置预测值。
在步骤S505中,基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,得到第三时刻对应的姿态预测值;
在本实施例中,在获取到姿态旋转量预测值以及姿态位置预测值之后,可以将姿态旋转量预测值以及姿态位置预测值代入至姿态预测方程式中进行运算,以获取到第三时刻对应的姿态预测值,以使后续XR系统可以直接基于第三时刻对应的姿态预测值进行图像绘制并显示。
具体地,为了便于理解,本实施例采用卡尔曼算法进行说明,则运动物体姿态预测方程式可以表示为上述式(1)进行目标物体的姿态预测,而姿态预测方程也分成两部分,即姿态旋转量预测方程式和姿态位置预测方程式,故在获取到第三时刻对应的姿态旋转量预测值以及姿态位置预测值之后,可以将姿态旋转量预测值以及姿态位置预测值代入至姿态预测方程式进行状态转换,以获取到第三时刻对应的姿态预测值。
在步骤S506中,基于第三时刻对应的姿态预测值进行图像绘制,并显示目标物体在第三时刻对应的姿态图像。
在本实施例中,在获取到第三时刻对应的姿态预测值之后,XR系统可以基于第三时刻对应的姿态预测值进行图像绘制,并显示目标物体在第三时刻对应的姿态图像。
具体地,如图15所示,当XR系统对目标物体在未来某一时刻(即晚于第二时刻的时刻)的姿态进行预测时,为了更好地与真实世界中的目标物体的运动姿态保持同步,XR系统可以通过读取算法模块写入共享内存中的最近更新的采集时刻,如果算法模块写入共享内存中的真实位姿数据未更新,即算法模块中的第一时刻未发生变化,则XR系统可以继续读取第一时刻对应的真实位姿数据,来在XR系统的XR应用模块中,直接基于真实位姿数据进行姿态预测,以在XR应用模块中获取到目标物体在第三时刻对应的姿态预测值,进而,可以在XR应用模块中直接基于第三时刻对应的姿态预测值进行图像绘制,并显示目标物体在第三时刻对应的姿态图像,无需基于算法模块预测出姿态预测值之后,再进行姿态预测值的传输、绘制和显示,能够有效避免姿态预测值的传输过程的延时,从而降低显示画面的卡顿现象。
可选地,在上述图2对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图6所示,步骤S101读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,包括:
在步骤S601中,周期性获取在每个采集时刻下目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
在本实施例中,当需要对目标物体在未来某一时刻的姿态进行预测,并基于预测姿态进行及时绘制渲染相应的姿态图像,以在该未来某一时刻进行图像显示,从而维护显示图像与目标物体真实的运动姿态相似或相同,避免显示卡顿的情形时,XR系统可以先调用算法模块,周期性获取在每个采集时刻下目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,以存储至共享内存中,便于后续XR系统可以实时读取到真实位姿数据来预测未来某一时刻的姿态,以避免无法读取或读取延时,导致预测和显示延时的情形,从而避免显示卡顿。
具体地,如图16所示,算法模块会按照预设的时间周期,通过头盔以及摄像机等终端设备采集目标物体(如目标对象在真实世界中处于运动状态的裸手)的运动姿态,以及通过传感器采集目标物体的运动状态数据,然后,可以通过姿态旋转量预测方程式以及姿态位置预测方程式等拟合方程式,对采集到的这些数据进行参数拟合,以获取到每个采集时刻下目标物体对应的姿态位置坐标、旋转四元数、位置参数集以及旋转参数集。
在步骤S602中,将每个采集时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,写入共享内存;
在本实施例中,在通过算法模块获取到每个采集时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,可以将每个采集时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,按照对应关系,存储至共享内存中,以便于XR系统实时从共享内存中读取目标物体的真实位姿数据。
其中,如图18所示,共享内存使用一个循环队列传输数据,循环队列长度为n,可以同步和存储多组姿态数据(如图18所示意的数组item0至item7等8组姿态数据),可以理解的是,共享内存采用标头(header)设计,header包含数组(items)的计数(count)(如图18所示意的header-count即队列items数量)、每一个item的长度(size)(如图18所示意的header-size即队列一个item长度)、最后写入的数组lastitem(如图18所示意的header-lastitem即队列最后写入的item)以及填充字符(如图18所示意的header-padding即填充扩展),可以用4个字节(bytes)表示;共享内存数组(item)设计,包含姿态位置坐标(如图18所示意的pose-position:(x,y,z))、旋转四元数(如图18所示意的pose-orientation:(x,y,z,w)),时间戳(如图18所示意的parameter-timestamp:t),位置参数集(parameter-position:(a1[3],b1[3])),旋转参数集(parameter-orientation:(a[3],b[3],c[3],d[3])),每个数值用64bits长度表示。
可以理解的是,当算法模块通过写端共享内存中在写完一个item之后,会更新标头至最后写入的数组(即header->lastItem)的索引值,使得读端可以根据标头至最后写入的数组(即header->lastItem)的索引值,从共享内存实时读取数据。
在步骤S603中,从共享内存中,将最近一次采集时刻作为第一时刻,并读取第一时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集。
在本实施例中,当需要对目标物体在未来某一时刻的姿态进行预测,并基于预测姿态进行及时绘制渲染相应的姿态图像,以在该未来某一时刻进行图像显示,从而维护显示图像与目标物体真实的运动姿态相似或相同,避免显示卡顿的情形时,XR系统可以实时从共享内存中,将最近一次采集时刻作为第一时刻,并读取第一时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集等真实位姿数据,来预测未来某一时刻的姿态,以避免无法读取或读取延时,导致预测和显示延时的情形,从而避免显示卡顿。
具体地,如图16所示,算法模块会按照预设的时间周期采集并计算每个采集时刻下目标物体的真实姿态的真实位姿数据,然后将每个采集时刻对应的真实位姿数据写入共享内存中。
进一步地,当XR系统对目标物体在未来某一时刻(即晚于第一时刻的时刻)的姿态进行预测时,为了更好地与真实世界中的目标物体的运动姿态保持同步,XR系统可以通过读取算法模块写入共享内存中的最近更新的采集时刻,即第一时刻,采集到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集等真实位姿数据,无需基于算法模块预测出姿态预测值之后,再进行姿态预测值的传输、绘制和显示,以避免姿态预测值的传输过程的延时。
可以理解的是,由于进程是操作系统中对正在运行中的程序的一个抽象,是XR系统进行资源分配和调度的基本单位。每一个进程有自己独立的资源,独立的虚拟地址空间,独立的堆栈。
由此,如图17所示,本实施例通过给进程(如算法模块进程以及XR应用进程等)的地址空间,即虚拟地址,然后,XR系统会根据进程的实际需要将虚拟地址映射到物理地址空间中去,以使得两个进程(如算法模块进程以及XR应用进程等)共享同一块内存,从而保证XR系统可以实时从共享内存中实时读取第一时刻对应的目标物体的姿态真实位姿数据。如图17所示,一个进程(如图17所示意的进程A,如算法模块进程)以及另一个进程(如图17所示意的进程B,如XR应用进程)有自己的共享区,在两个进程(如图17所示意的进程A,如算法模块进程,以及如图17所示意的进程B,如XR应用进程)的运行过程中,XR系统内核会把实际的共享区地址(如图17所示意的进程A,如算法模块进程中的共享区映射到物理内存地址,这样XR系统只要将同一块内存的地址映射到不同的进程(如图17所示意的进程B,如XR应用进程)中就可以通过这块共享内存来通信。其中,操作系统可以提供匿名共享内存API接口:mmap来实现映射的功能。
可选地,在上述图6对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图7所示,步骤S601周期性获取在每个采集时刻下目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,包括:
在步骤S701中,周期性采集在采集时刻下目标物体所对应的姿态位置坐标、旋转四元数;
在步骤S702中,基于姿态位置坐标,拟合计算每个采集时刻对应的位置参数集;
在步骤S703中,基于旋转四元数,拟合计算每个采集时刻对应的旋转参数集。
在本实施例中,当需要对目标物体在未来某一时刻的姿态进行预测,并基于预测姿态进行及时绘制渲染相应的姿态图像,以在该未来某一时刻进行图像显示,从而维护显示图像与目标物体真实的运动姿态相似或相同,避免显示卡顿的情形时,XR系统可以先调用算法模块,周期性获取在每个采集时刻下目标物体所对应的姿态位置坐标、旋转四元数,并基于姿态位置坐标,拟合计算每个采集时刻对应的位置参数集,以及基于旋转四元数,拟合计算每个采集时刻对应的旋转参数集,以存储至共享内存中,便于后续XR系统可以实时读取到真实位姿数据来预测未来某一时刻的姿态,以避免无法读取或读取延时,导致预测和显示延时的情形,从而避免显示卡顿。
具体地,如图16所示,算法模块会按照预设的时间周期,通过头盔(如图16所示意的HMD头盔6dof)以及摄像机(如图16所示意的camera)等终端设备采集目标物体(如目标对象在真实世界中处于运动状态的裸手)的运动姿态信息,以及通过传感器(如图16所示意的IMU,如6轴传感器或9轴传感器)采集目标物体的运动状态数据。
进一步地,可以基于旋转四元数,按照预设的姿态旋转量预测方程式,采用非线性拟合函数,或者,采用遗传算法计算得到相应的参数值,以拟合计算每个采集时刻对应的旋转参数集,也可以采用其他拟合函数,此处不做具体限制。
进一步地,可以基于姿态位置坐标,按照预设的姿态位置预测方程式,采用非线性拟合函数,或者,采用非线性多参数拟合函数计算得到相应的参数值,以拟合计算每个采集时刻对应的旋转参数集,可以采用其他拟合函数,此处不做具体限制。
可选地,在上述图7对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图8所示,步骤S702基于姿态位置坐标,拟合计算每个采集时刻对应的位置参数集之前,该方法还包括:步骤S801至步骤S802;以及步骤S702包括:步骤S803;以及步骤S703包括:步骤S804;
在步骤S801中,周期性采集在每个采集时刻下目标物体所对应的运动传感数据;
在步骤S802中,基于运动传感数据,计算在每个采集时刻下目标物体对应的线性速度、线性加速度、角速度以及角加速度;
在步骤S803中,基于姿态位置坐标、线性速度以及线性加速度,拟合计算每个采集时刻对应的位置参数集;
在步骤S804中,基于旋转四元数、角速度以及角加速度,拟合计算每个采集时刻对应的旋转参数集。
在本实施例中,在基于姿态位置坐标,拟合计算每个采集时刻对应的位置参数集之前,还可以调用算法模块,周期性采集在每个采集时刻下目标物体所对应的运动传感数据,进而可以基于运动传感数据,计算在每个采集时刻下目标物体对应的线性速度、线性加速度、角速度以及角加速度,然后,可以基于姿态位置坐标、线性速度以及线性加速度,拟合计算每个采集时刻对应的位置参数集,并基于旋转四元数、角速度以及角加速度,拟合计算每个采集时刻对应的旋转参数集,以存储至共享内存中,便于后续XR系统可以实时读取到真实位姿数据来预测未来某一时刻的姿态,以避免无法读取或读取延时,导致预测和显示延时的情形,从而避免显示卡顿。
具体地,如图16所示,算法模块会按照预设的时间周期,通过头盔(如图16所示意的HMD头盔6dof)等终端设备采集目标物体(如目标对象在真实世界中处于运动状态的裸手)的运动姿态信息,以及通过摄像机(如图16所示意的camera)采集目标物体(如目标对象在真实世界中处于运动状态的裸手)的运动姿态图像,然后,可以对采集运动姿态信息以及运动姿态图像进行数据转换,以获取到目标物体的姿态值,即姿态位置坐标以及旋转四元数等。
进一步地,如图16所示,可以通过传感器(如图16所示意的IMU,如6轴传感器或9轴传感器)采集目标物体的运动状态数据(即IMU数据),然后,对目标物体的运动状态数据(即IMU数据)进行融合计算,以获取到目标物体的线性速度和线性加速度,以及角速度和角加速度等。
进一步地,可以基于旋转四元数、角速度以及角加速度,按照预设的姿态旋转量预测方程式,采用非线性拟合函数,或者,采用遗传算法计算得到相应的参数值,以拟合计算每个采集时刻对应的旋转参数集,也可以采用其他拟合函数,此处不做具体限制。
进一步地,可以基于姿态位置坐标、线性速度以及线性加速度,按照预设的姿态位置预测方程式,采用非线性拟合函数,或者,采用非线性多参数拟合函数计算得到相应的参数值,以拟合计算每个采集时刻对应的旋转参数集,可以采用其他拟合函数,此处不做具体限制。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图9所示,步骤S302基于姿态旋转量预测方程式,对第一预测时间长度、旋转四元数以及旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值,包括:
在步骤S901中,基于旋转量拟合方程式,对第一预测时间长度、旋转四元数以及旋转参数集进行计算,得到第二时刻对应的旋转欧拉角;
在步骤S902中,对第二时刻对应的旋转欧拉角进行矩阵转换,得到第二时刻对应的旋转矩阵;
在步骤S903中,基于姿态旋转量预测方程式,计算第一时刻对应的旋转四元数与第二时刻对应的旋转矩阵之间的乘积,得到第二时刻对应的姿态旋转量预测值。
在本实施例中,在获取到第一预测时间长度之后,可以先基于旋转量拟合方程式,对第一预测时间长度、旋转四元数以及旋转参数集进行计算,以获取到第二时刻对应的旋转欧拉角,再对第二时刻对应的旋转欧拉角进行矩阵转换,以获取到第二时刻对应的旋转矩阵,然后,可以基于姿态旋转量预测方程式,计算第一时刻对应旋转四元数与第二时刻对应的旋转矩阵之间的乘积,以获取到第二时刻对应的姿态旋转量预测值。
具体地,可以理解的是,对于上述式(2)的姿态旋转量预测方程式,旋转运动预测值部分q(v,θ,t)=cos(θ/2);
其中,v(vx,vy,vz)用于表示物体向量的预测值,物体向量由x、y、z三个维度向量表示,且vx=sin(θ/2);vy=sin(θ/2);vz=sin(θ/2);
其中,θ=θt-1*Δt;v=vt-1*Δt;θt-1用于表示第一时刻下物体角速度测量值;vt-1为第一时刻物体向量测量值,其中,表示Δt第二时刻与第一时刻之间的差值;
由此,可以看到q(v,θ,t)是一个时间相关的方程,可以理解为,物体在某一个Δt时间段内的旋转姿态变化可以认为是物体在Δt时间段内的做旋转运动,进而可以用二元三次方程式Yn(t)=at^3+bt^2+ct+d,即旋转量拟合方程式,来拟合连续旋转运动函数q(v,θ,t),即可以把上述式(2)转换为拟合方程式,如下式(4):
q^[t]=Yn(t)*q^[t-1] (4);
其中,t表示第二时刻,可以理解的是,对于旋转四元数orientation(x,y,z,w)是由xyz三个维度向量表示的,因此,旋转参数集可以表示为(a[3],b[3],c[3],d[3]),其中,[3]是对应于xyz的三维数组,例如,数组a[3]包括a[0]、a[1]和a[2]分别对应于x,y和z。
进一步地,可以通过Δt=t-(t-1)计算第二时刻与第一时刻之间的差值,以获取第一时刻与第二时刻之间的第一预测时间长度Δt之后,可以将第一预测时间长度、旋转四元数以及旋转参数集,代入旋转量拟合方程式Yn(t)中,计算第二时刻对应的旋转欧拉角(QX1,QY1,QZ1),如下式(5)至(7)所示:
QX1=a[0]*Δt^3+b[0]*Δt*Δt+c[0]*Δt+d[0] (5);
QY1=a[1]*Δt^3+b[1]*Δt*Δt+c[1]*Δt+d[1] (6);
QZ1=a[2]*Δt^3+b[2]*Δt*Δt+c[2]*Δt+d[2] (7);
进一步地,在计算得到第二时刻对应的旋转欧拉角Aug(QX1,QY1,QZ1)之后,可以对第二时刻对应的旋转欧拉角进行矩阵转换,即把欧拉角(QX1,QY1,QZ1)转换成3*3矩阵M1,即第二时刻对应的旋转矩阵。
进一步地,如果共享内存读取到第一时刻对应的旋转四元数,那么t时刻即第二时刻对应的姿态旋转量预测值,可以通过如下式(8),计算第一时刻对应的旋转四元数与第二时刻对应的旋转矩阵之间的乘积,以获取到第二时刻对应的姿态旋转量预测值:
q^[t] = Qt-1+Δt = M1 * Q0 (8);
其中,Q0(X0,Y0,Z0,W0)为t-1时刻即第一时刻对应的旋转四元数。
可选地,在上述图3对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图10所示,步骤S303基于姿态位置预测方程式,对第一预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的姿态位置预测值,包括:
在步骤S1001中,基于位置拟合方程式,对第一预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的位移数据;
在步骤S1002中,对第二时刻对应的位移数据进行矩阵转换,得到第二时刻对应的位移矩阵;
在步骤S1003中,基于姿态位置预测方程式,计算第一时刻对应的姿态位置坐标与第二时刻对应的位移矩阵之间的和值,得到第二时刻对应的姿态位置预测值。
在本实施例中,在获取到第一预测时间长度之后,可以先基于位置拟合方程式,对第一预测时间长度、姿态位置坐标以及位置参数集进行计算,以获取到第二时刻对应的位移数据,再对第二时刻对应的位移数据进行矩阵转换,以获取到第二时刻对应的位移矩阵,然后,可以基于姿态位置预测方程式,计算第一时刻对应的姿态位置坐标与第二时刻对应的位移矩阵之间的和值,以获取到第二时刻对应的姿态位置预测值。
具体地,可以理解的是,对于上述式(3)的姿态位置预测方程式,目标物体从第一时刻到第二时刻的位置变化,可以理解为时物体在某一个Δt时间段内的位置变化,而物体在Δt内的位移运动可以认为是直线运动,由直线运动位移公式为s=vt+a,可以设:v=a1,a=b1,则上述式(3)姿态位置预测方程式中的运动预测部分,可用位置拟合方程式p(v,t)=Fn(t)=a1*t+b1来替代,即可以把上述式(3)转换为拟合方程式,如下式(9):
p^[t] = p^ [t-1] + Fn(t) (9);
其中,当前式(6)中的t表示第二时刻,t-1表示第一时刻。
进一步地,当通过Δt=t-(t-1),来计算第二时刻与第一时刻之间的差值,以获取第一时刻与第二时刻之间的第一预测时间长度Δt之后,可以将第一预测时间长度、姿态位置坐标以及位置参数集,代入位置拟合方程式Fn(t)中,计算第二时刻对应的位移数据(X1,Y1,Z1),如下式(10)至(12)所示:
X1= X0 + a1[0] *Δt + b1[0] (10);
Y1= Y0 + a1[1] *Δt + b1[1] (11);
Z1= Z0 + a1[2] *Δt + b1[2] (12);
进一步地,在计算得到第二时刻对应的位移数据进行矩阵转换,即把位移数据(X1,Y1,Z1)转换成3*3矩阵N1,即得到第二时刻对应的位移矩阵。
进一步地,如果共享内存读取到第一时刻对应的姿态位置坐标,那么t时刻即第二时刻对应的姿态位置预测值,可以通过如下式(13),计算第一时刻对应的姿态位置坐标与第二时刻对应的位移矩阵之间的和值,以获取到第二时刻对应的姿态旋转量预测值:
p^[t] = Pt-1+Δt = N1+ P0 (13);
其中,P0(X0,Y0,Z0)为t-1时刻即第一时刻对应的姿态位置坐标,t表示第二时刻。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图11所示,步骤S403基于姿态旋转量预测方程式,对第二预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的姿态旋转量预测值,包括:
在步骤S1101中,基于旋转量拟合方程式,对第二预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的旋转欧拉角;
在步骤S1102中,对第三时刻对应的旋转欧拉角进行矩阵转换,得到第三时刻对应的旋转矩阵;
在步骤S1103中,基于姿态旋转量预测方程式,计算第一时刻对应的旋转四元数与第三时刻对应的旋转矩阵之间的乘积,得到第三时刻对应的姿态旋转量预测值。
在本实施例中,若在第一时刻未发生变化,并获取到第二预测时间长度之后,可以先基于旋转量拟合方程式,对第二预测时间长度、旋转四元数以及旋转参数集进行计算,以获取到第三时刻对应的旋转欧拉角,再对第三时刻对应的旋转欧拉角进行矩阵转换,以获取到第三时刻对应的旋转矩阵,然后,可以基于姿态旋转量预测方程式,计算第一时刻对应旋转四元数与第三时刻对应的旋转矩阵之间的乘积,以获取到第三时刻对应的姿态旋转量预测值。
具体地,可以理解的是,对于上述式(2)的姿态旋转量预测方程式,旋转运动预测值部分q(v,θ,t)=cos(θ/2);
其中,v(vx,vy,vz)用于表示物体向量的预测值,物体向量由xyz三个维度向量表示,且vx=sin(θ/2);vy=sin(θ/2);vz=sin(θ/2);
其中,θ=θt-1*Δt;v=vt-1*Δt;当第一时刻未发生变化时,θt-1用于表示第一时刻下物体角速度测量值;vt-1为第一时刻物体向量测量值,其中,表示Δt第三时刻与第一时刻之间的差值;
由此,可以看到q(v,θ,t)是一个时间相关的方程,可以理解为,物体在某一个Δt时间段内的旋转姿态变化可以认为是物体在Δt时间段内的做旋转运动,进而可以用二元三次方程式Yn(t)=at^3+bt^2+ct+d,即旋转量拟合方程式,来拟合连续旋转运动函数q(v,θ,t),即可以把上述式(2)转换为拟合方程式,如上述式(4)。
可以理解的是,当前式(4)中的t表示第三时刻,t-1表示第一时刻。
进一步地,也可以通过Δt=t-(t-1)计算第三时刻与第一时刻之间的差值,其中,t表示第三时刻,(t-1)表示第一时刻,以获取第一时刻与第三时刻之间的第二预测时间长度Δt之后,可以将第二预测时间长度、旋转四元数以及旋转参数集,代入旋转量拟合方程式Yn(t)中,计算第三时刻对应的旋转欧拉角(QX2,QY2,QZ2),如下式(14)至(16)所示:
QX2=a[0]*Δt^3+b[0]*Δt*Δt+c[0]*Δt+d[0] (14);
QY2=a[1]*Δt^3+b[1]*Δt*Δt+c[1]*Δt+d[1] (15);
QZ2 = a[2] *Δt ^3 + b[2] *Δt *Δt+c[2] *Δt + d[2] (16);
进一步地,在计算得到第三时刻对应的旋转欧拉角Aug(QX2,QY2,QZ2)之后,可以对第三时刻对应的旋转欧拉角进行矩阵转换,即把欧拉角(QX2,QY2,QZ2)转换成3*3矩阵M2,即第三时刻对应的旋转矩阵。
进一步地,如果共享内存读取到第一时刻对应的旋转四元数,那么t时刻即第三时刻对应的姿态旋转量预测值,可以通过如下式(17),计算第一时刻对应的旋转四元数与第三时刻对应的旋转矩阵之间的乘积,以获取到第三时刻对应的姿态旋转量预测值:
q^[t] = Qt-1+Δt = M2 * Q0 (17);
其中,Q0(X0,Y0,Z0,W0)为t-1时刻即第一时刻对应的旋转四元数,t表示第三时刻。
可选地,在上述图4对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图12所示,步骤S404基于姿态位置预测方程式,对第二预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的姿态位置预测值,包括:
在步骤S1201中,基于位置拟合方程式,对第二预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的位移数据;
在步骤S1202中,对第三时刻对应的位移数据进行矩阵转换,得到第三时刻对应的位移矩阵;
在步骤S1203中,基于姿态位置预测方程式,计算第一时刻对应的姿态位置坐标与第三时刻对应的位移矩阵之间的和值,得到第三时刻对应的姿态位置预测值。
在本实施例中,若在第一时刻未发生变化,并获取到第二预测时间长度之后,可以先基于位置拟合方程式,对第二预测时间长度、姿态位置坐标以及位置参数集进行计算,以获取到第三时刻对应的位移数据,再对第三时刻对应的位移数据进行矩阵转换,以获取到第三时刻对应的位移矩阵,然后,可以基于姿态位置预测方程式,计算第一时刻对应的姿态位置坐标与第三时刻对应的位移矩阵之间的和值,以获取到第三时刻对应的姿态位置预测值。
具体地,可以理解的是,对于上述式(3)的姿态位置预测方程式,目标物体从第一时刻到第三时刻的位置变化,可以理解为时物体在某一个Δt时间段内的位置变化,而物体在Δt内的位移运动可以认为是直线运动,由直线运动位移公式为s=vt+a,可以设:v=a1,a=b1,则上述式(3)姿态位置预测方程式中的运动预测部分,可用位置拟合方程式p(v,t)=Fn(t)=a1*t+b1来替代,即可以把上述式(3)转换为拟合方程式,如上述式(9)。
其中,当前式(9)中的t表示第三时刻,t-1表示第一时刻。
进一步地,当第一时刻未发生变化,通过Δt=t-(t-1),来计算第三时刻与第一时刻之间的差值,以获取第一时刻与第三时刻之间的第二预测时间长度Δt之后,可以将第二预测时间长度、姿态位置坐标以及位置参数集,代入位置拟合方程式Fn(t)中,计算第三时刻对应的位移数据(X2,Y2,Z2),如下式(18)至(20)所示:
X2= X0 + a1[0] *Δt + b1[0] (18);
Y2= Y0 + a1[1] *Δt + b1[1] (19);
Z2= Z0 + a1[2] *Δt + b1[2] (20);
进一步地,在计算得到第三时刻对应的位移数据进行矩阵转换,即把位移数据(X2,Y2,Z2)转换成3*3矩阵N2,即得到第三时刻对应的位移矩阵。
进一步地,如果共享内存读取到第一时刻对应的姿态位置坐标,那么t时刻即第三时刻对应的姿态位置预测值,可以通过如下式(21),计算第一时刻对应的姿态位置坐标与第三时刻对应的位移矩阵之间的和值,以获取到第三时刻对应的姿态旋转量预测值:
p^[t] = Pt-1+Δt = N2+ P0 (21);
其中,P0(X0,Y0,Z0)为t-1时刻即第一时刻对应的姿态位置坐标,t表示第三时刻。
可选地,在上述图5对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图13所示,步骤S503基于姿态旋转量预测方程式,对第三预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的姿态旋转量预测值,包括:
在步骤S1301中,基于旋转量拟合方程式,对第三预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的旋转欧拉角;
在步骤S1302中,对第三时刻对应的旋转欧拉角进行矩阵转换,得到第三时刻对应的旋转矩阵;
在步骤S1303中,基于姿态旋转量预测方程式,计算更新后的第一时刻对应的旋转四元数与第三时刻对应的旋转矩阵之间的乘积,得到第三时刻对应的姿态旋转量预测值。
在本实施例中,若在第一时刻发生变化,即更新后的第一时刻,并获取到第三预测时间长度之后,可以先基于旋转量拟合方程式,对第三预测时间长度、旋转四元数以及旋转参数集进行计算,以获取到第三时刻对应的旋转欧拉角,再对第三时刻对应的旋转欧拉角进行矩阵转换,以获取到第三时刻对应的旋转矩阵,然后,可以基于姿态旋转量预测方程式,计算更新后的第一时刻对应旋转四元数与第三时刻对应的旋转矩阵之间的乘积,以获取到第三时刻对应的姿态旋转量预测值。
具体地,可以理解的是,对于上述式(2)的姿态旋转量预测方程式,旋转运动预测值部分q(v,θ,t)=cos(θ/2);
其中,v(vx,vy,vz)用于表示物体向量的预测值,物体向量由xyz三个维度向量表示,且vx=sin(θ/2);vy=sin(θ/2);vz=sin(θ/2);
其中,θ=θt-1*Δt;v=vt-1*Δt;当第一时刻发生变化时,θt-1用于表示更新后的第一时刻下物体角速度测量值;vt-1为更新后的第一时刻物体向量测量值,其中,表示Δt第三时刻与更新后的第一时刻之间的差值;
由此,可以看到q(v,θ,t)是一个时间相关的方程,可以理解为,物体在某一个Δt时间段内的旋转姿态变化可以认为是物体在Δt时间段内的做旋转运动,进而可以用二元三次方程式Yn(t)=at^3+bt^2+ct+d,即旋转量拟合方程式,来拟合连续旋转运动函数q(v,θ,t),即可以把上述式(2)转换为拟合方程式,如上述式(4)。
可以理解的是,当前式(4)中的t表示第三时刻,t-1表示更新后的第一时刻。
进一步地,也可以通过Δt=t-(t-1)计算第三时刻与更新后的第一时刻之间的差值,其中,t表示第三时刻,(t-1)表示更新后的第一时刻,以获取更新后的第一时刻与第三时刻之间的第三预测时间长度Δt之后,可以将第三预测时间长度、旋转四元数以及旋转参数集,代入旋转量拟合方程式Yn(t)中,计算第三时刻对应的旋转欧拉角(QX3,QY3,QZ3),如下式(22)至(24)所示:
QX3 = a[0] *Δt^3+ b[0] *Δt *Δt+c[0] *Δt + d[0] (22);
QY3 = a[1] *Δt^3+ b[1] *Δt *Δt+c[1] *Δt + d[1] (23);
QZ3 = a[2] *Δt^3+ b[2] *Δt *Δt+c[2] *Δt + d[2] (24);
进一步地,在计算得到第三时刻对应的旋转欧拉角Aug(QX3,QY3,QZ3)之后,可以对第三时刻对应的旋转欧拉角进行矩阵转换,即把欧拉角(QX3,QY3,QZ3)转换成3*3矩阵M3,即第三时刻对应的旋转矩阵。
进一步地,如果共享内存读取到更新后的第一时刻对应的旋转四元数,那么t时刻即第三时刻对应的姿态旋转量预测值,可以通过如下式(25),计算更新后的第一时刻对应的旋转四元数与第三时刻对应的旋转矩阵之间的乘积,以获取到第三时刻对应的姿态旋转量预测值:
q^[t] = Qt-1+Δt = M3 * Q0 (25);
其中,Q0(X0,Y0,Z0,W0)为t-1时刻即更新后的第一时刻对应的旋转四元数,t表示第三时刻。
可选地,在上述图5对应的实施例的基础上,本申请实施例提供的物体的姿态预测方法另一个可选实施例中,如图14所示,步骤S504基于姿态位置预测方程式,对第三预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的姿态位置预测值,包括:
在步骤S1401中,基于位置拟合方程式,对第三预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的位移数据;
在步骤S1402中,对第三时刻对应的位移数据进行矩阵转换,得到第三时刻对应的位移矩阵;
在步骤S1403中,基于姿态位置预测方程式,计算更新后的第一时刻对应的姿态位置坐标与第三时刻对应的位移矩阵之间的和值,得到第三时刻对应的姿态位置预测值。
在本实施例中,若在第一时刻发生变化,即更新后的第一时刻,并获取到第三预测时间长度之后,可以先基于位置拟合方程式,对第三预测时间长度、姿态位置坐标以及位置参数集进行计算,以获取到第三时刻对应的位移数据,再对第三时刻对应的位移数据进行矩阵转换,以获取到第三时刻对应的位移矩阵,然后,可以基于姿态位置预测方程式,计算更新后的第一时刻对应的姿态位置坐标与第三时刻对应的位移矩阵之间的和值,以获取到第三时刻对应的姿态位置预测值。
具体地,可以理解的是,对于上述式(3)的姿态位置预测方程式,目标物体从更新后的第一时刻到第三时刻的位置变化,可以理解为时物体在某一个Δt时间段内的位置变化,而物体在Δt内的位移运动可以认为是直线运动,由直线运动位移公式为s=vt+a,可以设:v=a1,a=b1,则上述式(3)姿态位置预测方程式中的运动预测部分,可用位置拟合方程式p(v,t)=Fn(t)=a1*t+b1来替代,即可以把上述式(3)转换为拟合方程式,如上述式(9)。
其中,当前式(9)中的t表示第三时刻,t-1表示更新后的第一时刻。
进一步地,当第一时刻发生变化,通过Δt=t-(t-1),来计算第三时刻与更新后的第一时刻之间的差值,以获取更新后的第一时刻与第三时刻之间的第三预测时间长度Δt之后,可以将第三预测时间长度、姿态位置坐标以及位置参数集,代入位置拟合方程式Fn(t)中,计算第三时刻对应的位移数据(X3,Y3,Z3),如下式(26)至(28)所示:
X3= X0 + a1[0] *Δt + b1[0] (26);
Y3= Y0 + a1[1] *Δt + b1[1] (27);
Z3= Z0 + a1[2] *Δt + b1[2] (28);
进一步地,在计算得到第三时刻对应的位移数据进行矩阵转换,即把位移数据(X3,Y3,Z3)转换成3*3矩阵N3,即得到第三时刻对应的位移矩阵。
进一步地,如果共享内存读取到更新后的第一时刻对应的姿态位置坐标,那么t时刻即第三时刻对应的姿态位置预测值,可以通过如下式(29),计算更新后的第一时刻对应的姿态位置坐标与第三时刻对应的位移矩阵之间的和值,以获取到第三时刻对应的姿态旋转量预测值:
p^[t] = Pt-1+Δt = N3+ P0 (29);
其中,P0(X0,Y0,Z0)为t-1时刻即更新后的第一时刻对应的姿态位置坐标,t表示第三时刻。
下面对本申请中的物体的姿态预测装置进行详细描述,请参阅图19,图19为本申请实施例中物体的姿态预测装置的一个实施例示意图,物体的姿态预测装置20包括:
获取单元201,用于读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,其中,第一时刻用于指示最近一次采集到目标物体在真实姿态下的姿态位置坐标以及旋转四元数的时刻,旋转参数集中的参数是基于旋转四元数拟合得到的,用于表示姿态旋转量预测方程式中的方程参数,位置参数集中的参数是基于姿态位置坐标拟合得到的,用于表示姿态位置预测方程式中的方程参数;
处理单元202,用于基于姿态旋转量预测方程式,对旋转四元数以及旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值,其中,第二时刻晚于第一时刻;
处理单元202,还用于基于姿态位置预测方程式,对姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的姿态位置预测值;
处理单元202,还用于基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,得到第二时刻对应的姿态预测值;
显示单元203,用于基于第二时刻对应的姿态预测值进行图像绘制,并显示目标物体在第二时刻对应的姿态图像。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,
获取单元201,还用于获取第一时刻与第二时刻之间的第一预测时间长度;
处理单元202具体可以用于:基于姿态旋转量预测方程式,对第一预测时间长度、旋转四元数以及旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值;
处理单元202具体可以用于:基于姿态位置预测方程式,对第一预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的姿态位置预测值。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,
获取单元201,还用于若第一时刻未发生变化,则读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
获取单元201,还用于获取第一时刻与第三时刻之间的第二预测时间长度;
处理单元202,还用于基于姿态旋转量预测方程式,对第二预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的姿态旋转量预测值;
处理单元202,还用于基于姿态位置预测方程式,对第二预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的姿态位置预测值;
处理单元202,还用于基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,得到第三时刻对应的姿态预测值;
显示单元203,还用于基于第三时刻对应的姿态预测值进行图像绘制,并显示目标物体在第三时刻对应的姿态图像。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,
获取单元201,还用于若第一时刻发生变化,则读取在更新后的第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
获取单元201,还用于获取更新后的第一时刻与第三时刻之间的第三预测时间长度;
处理单元202,还用于基于姿态旋转量预测方程式,对第三预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的姿态旋转量预测值;
处理单元202,还用于基于姿态位置预测方程式,对第三预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的姿态位置预测值;
处理单元202,还用于基于姿态预测方程式,对姿态旋转量预测值以及姿态位置预测值进行计算,得到第三时刻对应的姿态预测值;
显示单元203,还用于基于第三时刻对应的姿态预测值进行图像绘制,并显示目标物体在第三时刻对应的姿态图像。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,获取单元201具体可以用于:
周期性获取在每个采集时刻下目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
将每个采集时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,写入共享内存;
从共享内存中,将最近一次采集时刻作为第一时刻,并读取第一时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,获取单元201具体可以用于:
周期性采集在采集时刻下目标物体所对应的姿态位置坐标、旋转四元数;
基于姿态位置坐标,拟合计算每个采集时刻对应的位置参数集;
基于旋转四元数,拟合计算每个采集时刻对应的旋转参数集。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,
获取单元201,还用于周期性采集在每个采集时刻下目标物体所对应的运动传感数据;
处理单元202,还用于基于运动传感数据,计算在每个采集时刻下目标物体对应的线性速度、线性加速度、角速度以及角加速度;
处理单元202具体可以用于:基于姿态位置坐标、线性速度以及线性加速度,拟合计算每个采集时刻对应的位置参数集;
处理单元202具体可以用于:基于旋转四元数、角速度以及角加速度,拟合计算每个采集时刻对应的旋转参数集。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,处理单元202具体可以用于:
基于旋转量拟合方程式,对第一预测时间长度、旋转四元数以及旋转参数集进行计算,得到第二时刻对应的旋转欧拉角;
对第二时刻对应的旋转欧拉角进行矩阵转换,得到第二时刻对应的旋转矩阵;
基于姿态旋转量预测方程式,计算第一时刻对应的旋转四元数与第二时刻对应的旋转矩阵之间的乘积,得到第二时刻对应的姿态旋转量预测值。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,处理单元202具体可以用于:
基于位置拟合方程式,对第一预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第二时刻对应的位移数据;
对第二时刻对应的位移数据进行矩阵转换,得到第二时刻对应的位移矩阵;
基于姿态位置预测方程式,计算第一时刻对应的姿态位置坐标与第二时刻对应的位移矩阵之间的和值,得到第二时刻对应的姿态位置预测值。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,处理单元202具体可以用于:
基于旋转量拟合方程式,对第二预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的旋转欧拉角;
对第三时刻对应的旋转欧拉角进行矩阵转换,得到第三时刻对应的旋转矩阵;
基于姿态旋转量预测方程式,计算第一时刻对应的旋转四元数与第三时刻对应的旋转矩阵之间的乘积,得到第三时刻对应的姿态旋转量预测值。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,处理单元202具体可以用于:
基于位置拟合方程式,对第二预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的位移数据;
对第三时刻对应的位移数据进行矩阵转换,得到第三时刻对应的位移矩阵;
基于姿态位置预测方程式,计算第一时刻对应的姿态位置坐标与第三时刻对应的位移矩阵之间的和值,得到第三时刻对应的姿态位置预测值。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,处理单元202具体可以用于:
基于旋转量拟合方程式,对第三预测时间长度、旋转四元数以及旋转参数集进行计算,得到第三时刻对应的旋转欧拉角;
对第三时刻对应的旋转欧拉角进行矩阵转换,得到第三时刻对应的旋转矩阵;
基于姿态旋转量预测方程式,计算更新后的第一时刻对应的旋转四元数与第三时刻对应的旋转矩阵之间的乘积,得到第三时刻对应的姿态旋转量预测值。
可选地,在上述图19对应的实施例的基础上,本申请实施例提供的物体的姿态预测装置的另一实施例中,处理单元202具体可以用于:
基于位置拟合方程式,对第三预测时间长度、姿态位置坐标以及位置参数集进行计算,得到第三时刻对应的位移数据;
对第三时刻对应的位移数据进行矩阵转换,得到第三时刻对应的位移矩阵;
基于姿态位置预测方程式,计算更新后的第一时刻对应的姿态位置坐标与第三时刻对应的位移矩阵之间的和值,得到第三时刻对应的姿态位置预测值。
本申请另一方面提供了另一种计算机设备示意图,如图20所示,图20是本申请实施例提供的一种计算机设备结构示意图,该计算机设备300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)310(例如,一个或一个以上处理器)和存储器320,一个或一个以上存储应用程序331或数据332的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器320和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备300中的一系列指令操作。更进一步地,中央处理器310可以设置为与存储介质330通信,在计算机设备300上执行存储介质330中的一系列指令操作。
计算机设备300还可以包括一个或一个以上电源340,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口360,和/或,一个或一个以上操作系统333,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述计算机设备300还用于执行如图2至图14对应的实施例中的步骤。
本申请的另一方面提供了一种计算机可读存储介质,其上存储有计算机程序,当计算机程序被处理器执行时实现如图2至图14所示实施例描述的方法中的步骤。
本申请的另一方面提供了一种包含计算机程序的计算机程序产品,当计算机程序被处理器执行时实现如图2至图14所示实施例描述的方法中的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (17)
1.一种物体的姿态预测方法,应用于扩展现实系统,其特征在于,包括:
读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,其中,第一时刻用于指示最近一次采集到所述目标物体在真实姿态下的所述姿态位置坐标以及旋转四元数的时刻,所述旋转参数集中的参数是基于所述旋转四元数拟合得到的,用于表示姿态旋转量预测方程式中的方程参数,所述位置参数集中的参数是基于所述姿态位置坐标拟合得到的,用于表示姿态位置预测方程式中的方程参数;
基于所述姿态旋转量预测方程式,对所述旋转四元数以及所述旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值,其中,所述第二时刻晚于所述第一时刻;
基于所述姿态位置预测方程式,对所述姿态位置坐标以及所述位置参数集进行计算,得到所述第二时刻对应的姿态位置预测值;
基于姿态预测方程式,对所述姿态旋转量预测值以及所述姿态位置预测值进行计算,得到所述第二时刻对应的姿态预测值;
基于所述第二时刻对应的姿态预测值进行图像绘制,并显示所述目标物体在所述第二时刻对应的姿态图像。
2.根据权利要求1所述的方法,其特征在于,所述基于所述姿态旋转量预测方程式,对所述旋转四元数以及所述旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值之前,所述方法还包括:
获取所述第一时刻与所述第二时刻之间的第一预测时间长度;
所述基于所述姿态旋转量预测方程式,对所述旋转四元数以及所述旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值,包括:
基于所述姿态旋转量预测方程式,对所述第一预测时间长度、所述旋转四元数以及所述旋转参数集进行计算,得到所述第二时刻对应的姿态旋转量预测值;
所述基于所述姿态位置预测方程式,对所述姿态位置坐标以及所述位置参数集进行计算,得到所述第二时刻对应的姿态位置预测值,包括:
基于所述姿态位置预测方程式,对所述第一预测时间长度、所述姿态位置坐标以及所述位置参数集进行计算,得到所述第二时刻对应的姿态位置预测值。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第二时刻对应的姿态预测值进行图像绘制,并显示所述目标物体在所述第二时刻对应的姿态图像之后,所述方法还包括:
若所述第一时刻未发生变化,则读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
获取所述第一时刻与第三时刻之间的第二预测时间长度;
基于所述姿态旋转量预测方程式,对所述第二预测时间长度、所述旋转四元数以及所述旋转参数集进行计算,得到所述第三时刻对应的姿态旋转量预测值;
基于所述姿态位置预测方程式,对所述第二预测时间长度、所述姿态位置坐标以及所述位置参数集进行计算,得到所述第三时刻对应的姿态位置预测值;
基于姿态预测方程式,对所述姿态旋转量预测值以及所述姿态位置预测值进行计算,得到所述第三时刻对应的姿态预测值;
基于所述第三时刻对应的姿态预测值进行图像绘制,并显示所述目标物体在所述第三时刻对应的姿态图像。
4.根据权利要求2所述的方法,其特征在于,所述基于所述第二时刻对应的姿态预测值进行图像绘制,并显示所述目标物体在所述第二时刻对应的姿态图像之后,所述方法还包括:
若所述第一时刻发生变化,则读取在更新后的第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
获取所述更新后的第一时刻与第三时刻之间的第三预测时间长度;
基于所述姿态旋转量预测方程式,对所述第三预测时间长度、所述旋转四元数以及所述旋转参数集进行计算,得到所述第三时刻对应的姿态旋转量预测值;
基于所述姿态位置预测方程式,对所述第三预测时间长度、所述姿态位置坐标以及所述位置参数集进行计算,得到所述第三时刻对应的姿态位置预测值;
基于姿态预测方程式,对所述姿态旋转量预测值以及所述姿态位置预测值进行计算,得到所述第三时刻对应的姿态预测值;
基于所述第三时刻对应的姿态预测值进行图像绘制,并显示所述目标物体在所述第三时刻对应的姿态图像。
5.根据权利要求1所述的方法,其特征在于,所述读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,包括:
周期性获取在每个采集时刻下所述目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集;
将每个所述采集时刻对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,写入共享内存;
从所述共享内存中,将最近一次采集时刻作为所述第一时刻,并读取所述第一时刻对应的所述姿态位置坐标、所述旋转四元数、所述旋转参数集以及所述位置参数集。
6.根据权利要求5所述的方法,其特征在于,所述周期性获取在每个采集时刻下所述目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,包括:
周期性采集在所述采集时刻下所述目标物体所对应的姿态位置坐标、旋转四元数;
基于所述姿态位置坐标,拟合计算每个所述采集时刻对应的位置参数集;
基于所述旋转四元数,拟合计算每个所述采集时刻对应的旋转参数集。
7.根据权利要求6所述的方法,其特征在于,所述基于所述姿态位置坐标,拟合计算每个所述采集时刻对应的位置参数集之前,所述方法还包括:
周期性采集在每个所述采集时刻下所述目标物体所对应的运动传感数据;
基于所述运动传感数据,计算在每个所述采集时刻下所述目标物体对应的线性速度、线性加速度、角速度以及角加速度;
所述基于所述姿态位置坐标,拟合计算每个所述采集时刻对应的位置参数集,包括:
所述基于所述姿态位置坐标、所述线性速度以及所述线性加速度,拟合计算每个所述采集时刻对应的位置参数集;
所述基于所述旋转四元数,拟合计算每个所述采集时刻对应的旋转参数集,包括:
基于所述旋转四元数、所述角速度以及所述角加速度,拟合计算每个所述采集时刻对应的旋转参数集。
8.根据权利要求2所述的方法,其特征在于,所述基于所述姿态旋转量预测方程式,对所述第一预测时间长度、所述旋转四元数以及所述旋转参数集进行计算,得到所述第二时刻对应的姿态旋转量预测值,包括:
基于旋转量拟合方程式,对所述第一预测时间长度、所述旋转四元数以及所述旋转参数集进行计算,得到所述第二时刻对应的旋转欧拉角;
对所述第二时刻对应的旋转欧拉角进行矩阵转换,得到所述第二时刻对应的旋转矩阵;
基于所述姿态旋转量预测方程式,计算所述第一时刻对应的旋转四元数与所述第二时刻对应的旋转矩阵之间的乘积,得到所述第二时刻对应的姿态旋转量预测值。
9.根据权利要求2所述的方法,其特征在于,所述基于所述姿态位置预测方程式,对所述第一预测时间长度、所述姿态位置坐标以及所述位置参数集进行计算,得到所述第二时刻对应的姿态位置预测值,包括:
基于位置拟合方程式,对所述第一预测时间长度、所述姿态位置坐标以及所述位置参数集进行计算,得到所述第二时刻对应的位移数据;
对所述第二时刻对应的位移数据进行矩阵转换,得到所述第二时刻对应的位移矩阵;
基于所述姿态位置预测方程式,计算所述第一时刻对应的姿态位置坐标所述第二时刻对应的位移矩阵之间的和值,得到所述第二时刻对应的姿态位置预测值。
10.根据权利要求3所述的方法,其特征在于,所述基于所述姿态旋转量预测方程式,对所述第二预测时间长度、所述旋转四元数以及所述旋转参数集进行计算,得到所述第三时刻对应的姿态旋转量预测值,包括:
基于旋转量拟合方程式,对所述第二预测时间长度、所述旋转四元数以及所述旋转参数集进行计算,得到所述第三时刻对应的旋转欧拉角;
对所述第三时刻对应的旋转欧拉角进行矩阵转换,得到所述第三时刻对应的旋转矩阵;
基于所述姿态旋转量预测方程式,计算所述第一时刻对应的旋转四元数与所述第三时刻对应的旋转矩阵之间的乘积,得到所述第三时刻对应的姿态旋转量预测值。
11.根据权利要求3所述的方法,其特征在于,所述基于所述姿态位置预测方程式,对所述第二预测时间长度、所述姿态位置坐标以及所述位置参数集进行计算,得到所述第三时刻对应的姿态位置预测值,包括:
基于位置拟合方程式,对所述第二预测时间长度、所述姿态位置坐标以及所述位置参数集进行计算,得到所述第三时刻对应的位移数据;
对所述第三时刻对应的位移数据进行矩阵转换,得到所述第三时刻对应的位移矩阵;
基于所述姿态位置预测方程式,计算所述第一时刻对应的姿态位置坐标与所述第三时刻对应的位移矩阵之间的和值,得到所述第三时刻对应的姿态位置预测值。
12.根据权利要求4所述的方法,其特征在于,所述基于所述姿态旋转量预测方程式,对所述第三预测时间长度、所述旋转四元数以及所述旋转参数集进行计算,得到所述第三时刻对应的姿态旋转量预测值,包括:
基于旋转量拟合方程式,对所述第三预测时间长度、所述旋转四元数以及所述旋转参数集进行计算,得到所述第三时刻对应的旋转欧拉角;
对所述第三时刻对应的旋转欧拉角进行矩阵转换,得到所述第三时刻对应的旋转矩阵;
基于所述姿态旋转量预测方程式,计算所述更新后的第一时刻对应的旋转四元数与所述第三时刻对应的旋转矩阵之间的乘积,得到所述第三时刻对应的姿态旋转量预测值。
13.根据权利要求4所述的方法,其特征在于,所述基于所述姿态位置预测方程式,对所述第三预测时间长度、所述姿态位置坐标以及所述位置参数集进行计算,得到所述第三时刻对应的姿态位置预测值,包括:
基于位置拟合方程式,对所述第三预测时间长度、所述姿态位置坐标以及所述位置参数集进行计算,得到所述第三时刻对应的位移数据;
对所述第三时刻对应的位移数据进行矩阵转换,得到所述第三时刻对应的位移矩阵;
基于所述姿态位置预测方程式,计算所述更新后的第一时刻对应的姿态位置坐标与所述第三时刻对应的位移矩阵之间的和值,得到所述第三时刻对应的姿态位置预测值。
14.一种物体的姿态预测装置,其特征在于,包括:
获取单元,用于读取在第一时刻获取到的目标物体所对应的姿态位置坐标、旋转四元数、旋转参数集以及位置参数集,其中,第一时刻用于指示最近一次采集到所述目标物体在真实姿态下的所述姿态位置坐标以及旋转四元数的时刻,所述旋转参数集中的参数是基于所述旋转四元数拟合得到的,用于表示姿态旋转量预测方程式中的方程参数,所述位置参数集中的参数是基于所述姿态位置坐标拟合得到的,用于表示姿态位置预测方程式中的方程参数;
处理单元,用于基于所述姿态旋转量预测方程式,对所述旋转四元数以及所述旋转参数集进行计算,得到第二时刻对应的姿态旋转量预测值,其中,所述第二时刻晚于所述第一时刻;
所述处理单元,还用于基于所述姿态位置预测方程式,对所述姿态位置坐标以及所述位置参数集进行计算,得到所述第二时刻对应的姿态位置预测值;
所述处理单元,还用于基于姿态预测方程式,对所述姿态旋转量预测值以及所述姿态位置预测值进行计算,得到所述第二时刻对应的姿态预测值;
显示单元,用于基于所述第二时刻对应的姿态预测值进行图像绘制,并显示所述目标物体在所述第二时刻对应的姿态图像。
15.一种计算机设备,包括存储器、处理器以及总线系统,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至13中任一项所述的方法的步骤;
所述总线系统用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
17.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211596042.7A CN116958247A (zh) | 2022-12-13 | 2022-12-13 | 物体的姿态预测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211596042.7A CN116958247A (zh) | 2022-12-13 | 2022-12-13 | 物体的姿态预测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116958247A true CN116958247A (zh) | 2023-10-27 |
Family
ID=88448055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211596042.7A Pending CN116958247A (zh) | 2022-12-13 | 2022-12-13 | 物体的姿态预测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116958247A (zh) |
-
2022
- 2022-12-13 CN CN202211596042.7A patent/CN116958247A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8786613B2 (en) | Method and system for interactive simulation of materials and models | |
CN107820593B (zh) | 一种虚拟现实交互方法、装置及系统 | |
Lin et al. | Visualization of indoor thermal environment on mobile devices based on augmented reality and computational fluid dynamics | |
Zheng et al. | Gimo: Gaze-informed human motion prediction in context | |
EP2812770B1 (en) | Image processing device, and computer program product | |
CN104838337B (zh) | 用于用户界面的无触摸输入 | |
CN110073313A (zh) | 使用母设备和至少一个伴随设备与环境交互 | |
CN105359054B (zh) | 在空间中对设备进行定位和取向 | |
CN107479699A (zh) | 虚拟现实交互方法、装置及系统 | |
WO2007117586A2 (en) | Method and system for interactive simulation of materials | |
Fang et al. | An augmented reality-based method for remote collaborative real-time assistance: from a system perspective | |
CN111665933A (zh) | 虚拟或者增强现实中的对象操作方法及装置 | |
CN109559370A (zh) | 一种三维建模方法及装置 | |
Lampen et al. | A context-aware assistance framework for implicit interaction with an augmented human | |
CN111752384A (zh) | 计算机实施的方法、传输系统、程序产品和数据结构 | |
Gupta et al. | Deep learning model based multimedia retrieval and its optimization in augmented reality applications | |
CN106067159A (zh) | 虚拟现实、增强现实的实时显示方法和系统 | |
Amstutz et al. | Real time visualization of robot state with mobile virtual reality | |
CN116958247A (zh) | 物体的姿态预测方法、装置、设备及存储介质 | |
CN116958487A (zh) | 姿态预测方法、装置、设备、存储介质及计算机程序产品 | |
WO2023184278A1 (en) | Method for semantic map building, server, terminal device and storage medium | |
CN116485953A (zh) | 数据处理方法、装置、设备和可读存储介质 | |
CN113592986B (zh) | 基于神经网络的动作生成方法、装置及计算设备 | |
Menezes et al. | Touching is believing-Adding real objects to Virtual Reality | |
CN107219918A (zh) | 一种数据手套接口模块的设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40098463 Country of ref document: HK |