用于获得设备位姿的方法、装置和存储介质与流程

文档序号:18512683发布日期:2019-08-24 09:14阅读:176来源:国知局
用于获得设备位姿的方法、装置和存储介质与流程

本公开涉及同步定位与地图构建领域,更具体地,涉及用于获得设备位姿的方法、装置和存储介质。



背景技术:

现有的多传感器紧耦合方法能够得到高精度的设备位姿(设备位姿指的是设备的位置和朝向),然而其要考虑的约束较多,导致计算速度偏慢,延迟比较大。

为此需要一种计算快,延迟小的位姿确定方法。



技术实现要素:

为了至少部分解决或减轻上述问题,本公开实施例提出了用于获得设备的位姿的方法、装置和计算机存储介质。

根据本公开的第一方面,提出了一种用于获得设备位姿的方法,该方法包括:获取惯性测量单元(imu)数据;基于imu数据来估计设备的第一位姿以及imu参数;其中,采用以下操作中的任一项或任意多项的组合进行处理:在所述集束优化的过程中,采用所述设备的静止状态对所述设备的第一位姿进行约束;在所述集束优化的过程中,采用松耦合集束优化的方法对imu参数进行优化;对imu数据进行积分得到位姿变化,根据位姿变化和第一位姿得到所述设备的第二位姿,在所述第一位姿更新后,对所述第二位姿与更新的第一位姿之间的差异进行补偿;预测所述设备在未来时刻的位姿,其中,在预测所述设备的未来位姿的过程中,利用深度学习网络来预测所述设备的未来位姿;根据所述设备在未来时刻的位姿绘制虚拟物体,其中,在绘制虚拟物体的过程中,根据历史图像帧对应的所述设备的位姿和当前图像帧对应的所述设备的位姿,对历史图像帧进行变形得到当前图像帧。

在一些实施例中,所述采用松耦合集束优化的方法对imu参数进行优化包括:固定所述设备在多帧图像中的位姿,根据所述多帧图像之间的imu数据以及所述设备在所述多帧图像中的位姿,估计imu参数。

在一些实施例中,所述采用设备的静止状态对所述设备的位姿进行约束包括:静止期间的所述设备的位姿保持不变。

在一些实施例中,所述对所述第二位姿与更新的第一位姿之间的差异进行补偿包括:获取所述第二位姿与更新的第一位姿之间的差异;获取更新的第一位姿到下一次第一位姿更新所需要的所述积分的次数和/或感知相关信息;根据所述次数和/或感知相关信息、以及所述差异,得到补偿量,根据补偿量对所述第一位姿更新后的位姿变化进行调整。

在一些实施例中,所述感知相关信息包括如下中的至少一种:眼球的运动速度,头部的旋转速度。

在一些实施例中,所述利用深度学习网络来预测所述设备的未来位姿包括:利用多层长短期记忆(lstm)网络来预测所述设备在未来时刻的位姿。

在一些实施例中,所述利用多层长短期记忆lstm网络来预测所述设备在未来时刻的位姿包括:以所述设备的当前状态信息作为lstm网络的输入来获得所述设备在未来时刻的状态信息,并基于所述未来时刻的状态信息来获得所述设备的未来位姿。

在一些实施例中,所述方法还可包括在将所述当前状态信息输入所述lstm网络之前,使用卡尔曼滤波(ekf)来修正所述当前状态信息。

在一些实施例中,使用卡尔曼滤波ekf来修正所述当前状态信息包括:将所述设备的位置、速度作为ekf的输入,将所述设备的速度作为ekf的输出。

上述实施例中的状态信息可以具有任何格式,例如在一些实施例中,状态信息可以通过状态向量的形式提供。

在一些实施例中,在绘制虚拟物体的过程中,根据历史图像帧对应的所述设备的位姿和当前图像帧对应的所述设备的位姿,对历史图像帧进行变形得到当前图像帧。

所述对历史图像帧进行变形得到当前图像帧包括:基于所述当前图像帧的各个像素的深度信息以及所述当前图像帧和所述历史图像帧所对应的所述设备的位姿,计算所述当前图像帧的各个像素在所述历史图像帧中的位置;以及将所述历史图像帧中的各个位置处的像素复制到所述像素在所述当前图像帧中的对应位置处,来绘制所述当前图像帧。

上述图像帧可以是全息图像帧。

根据本公开的第二方面,提出了一种用于获得设备位姿的装置。该装置包括位姿估计模块和参数获取模块。参数获取模块用于获取惯性测量单元imu数据。位姿估计模块用于采用集束优化的方法,基于imu数据来估计设备的第一位姿以及imu参数;其中,采用以下操作中的任一项或任意多项的组合进行处理:在所述集束优化的过程中,采用所述设备的静止状态对所述设备的第一位姿进行约束;在所述集束优化的过程中,采用松耦合集束优化的方法对imu参数进行优化;对imu数据进行积分得到位姿变化,根据位姿变化和第一位姿得到所述设备的第二位姿,在所述第一位姿更新后,对所述第二位姿与更新的第一位姿之间的差异进行补偿;预测所述设备在未来时刻的位姿,其中,在预测所述设备的未来位姿的过程中,利用深度学习网络来预测所述设备的未来位姿;根据所述设备在未来时刻的位姿绘制虚拟物体,其中,在绘制虚拟物体的过程中,根据历史图像帧对应的所述设备的位姿和当前图像帧对应的所述设备的位姿,对历史图像帧进行变形得到当前图像帧。

根据本公开的第三方面,提出了一种用于获得设备的位姿的设备,包括:处理器和存储器。存储器存储有指令,所述指令在由所述处理器执行时使得所述处理器执行上述任一方法。

根据本公开的第四方面,提出了一种存储指令的计算机可读存储介质,所述指令在由处理器执行时使得所述处理器能够执行根据本公开第一方面所述的方法。

基于本公开实施例的方案,能够利用惯性测量单元(inertialmeasurementunit,imu)对运动数据进行积分,以获得计算快、延迟小的位姿输出。

附图说明

根据以下结合附图给出的对部分具体实施例的描述,本公开的这些和/或其它方面及优点将会变得清楚,并且更易于理解,其中:

图1示出了集束优化的一个示例的示意图。

图2是示出了根据本公开实施例的用于获得设备的位姿的方法200的流程图。

图3是示出了根据本公开实施例的感知驱动的误差矫正的示意图。

图4是示出了根据本公开实施例的用于获得设备的位姿的装置400的框图。

图5示出了根据本发明实施例的一个具体实现的总体流程示意图。

图6示出了根据上述实现的增加静止检测的紧耦合集束优化的方案的示意图。

图7示出了根据该实现的静止检测的具体实现的示意图。

图8示出了根据本发明实施例的二次集束优化的策略的示意图。

图9示出了回环检测导致抖动的场景的示意图。

图10示出了根据本发明实施例的深度ekf单元的结构示意图。

图11示出了本文中使用深度ekf的状态回归过程的示意图。

图12示出了根据本发明实施例的通过绘制结果调整减少延迟的方法的示意图。

图13是示出了根据本公开实施例的示例装置的示例硬件布置的框图。

具体实施方式

下面参照附图对本公开的优选实施例进行详细说明,在描述过程中省略了对于本公开来说是不必要的细节和功能,以防止对本公开的理解造成混淆。在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不脱离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同的附图标记用于相同或相似的功能和操作。此外,可以将下述不同实施例中描述的全部或部分功能、特征、单元、模块等加以结合、删除和/或修改,以构成新的实施例,且该实施例依然落入本公开的范围内。此外,在本公开中,术语“包括”和“含有”及其派生词意为包括而非限制。

下面以装备了视觉传感器(双目相机)和惯性传感器(imu)的ar眼镜为例来说明本发明实施例涉及的背景,然而需要说明的是,本发明实施例的技术方案可应用于需要在虚拟环境中绘制对象的虚拟图像的任何应用中,而不受下面的示例的限制,例如可用于定位、自动驾驶、用户追踪等场景中,而不限于下面作为实施例的ar场景。在下面的示例中可通过以下流程来获得ar眼镜在虚拟环境(例如,地图)中的位姿。

首先在相机得到的图像中提取特征点。特征点即图像中较为明显的点,可以使用的方法有:brisk,sift等等。如果是所得到的图像是视频中的第一帧,则将设备位置设为原点。并且将双目相机左目和右目得到图像上的特征点进行匹配,并建立地图点,保存在地图中。如果不是第一帧,则将特征点和保存的地图点进行匹配,得到一一对应关系。然后使用随机抽样一致性(randomsampleconsensus,ransac)方法对匹配关系进行验证,去除错误的匹配。最后在双目相机左目和右目得到图像上,将未匹配上的特征点进行匹配,用以建立新的地图点,保存在地图中。

得到对应关系之后,算法使用集束优化的方法,估计设备位姿,新地图点的位置、以及imu参数(即imu数据中噪声的偏置,例如:偏置可以认为是噪声的均值)。由于地图点、设备位姿以及imu数据(设备的加速度和角速度)之间存在着位姿约束,所以可以使用优化的方法找到最优的设备位姿、新地图点位置以及imu参数,使得这些约束都尽量得到满足。图1示出了集束优化的一个示例的示意图。如图1所示。具体地,这些约束如下:1.通过地图点在空间中的位置(3d位置)和其对应的特征点在图像(左目和/或右目)上的位置,能够得到设备的位姿。2.通过设备的位姿,和新地图点对应的特征点在图像上的位置,可以计算出新地图点在空间中的位置。3.通过前后两帧图像之间的imu数据和imu参数,可以计算出两帧图像之间的设备位姿变化。4.通过多帧图像之间的imu数据,以及多帧图像对应的设备位姿,可以计算出imu参数。上述约束1、2、3、4可以仅应用一部分或全部应用(例如并行应用)。此方法的位姿输出频率为图象帧的频率。

在实践上述方案时,本发明发明人发现上述多传感器紧耦合集束优化的方法可以得到准确的设备位姿,但其要考虑的约束较多,导致计算速度偏慢,延迟比较大。为此,在本发明实施例的技术方案中,通过利用imu参数对高帧率的imu数据进行积分来得到设备位姿。由于积分速度很快,所以可以得到高帧率、低延迟的设备位姿。一般来说imu数据包括设备的加速度和角速度,那么根据时间对这两类数据进行积分,就能得到一段时间内设备位姿的变化。将此位姿变化叠加在设备初始位姿上,就能得到设备的当前位姿,从而实现了计算快、延迟小的位姿确定方法。

以下将首先结合图2和其它附图来详细描述根据本公开实施例的用于获得设备位姿的方法。图2是示出了根据本公开实施例的用于获得设备位姿的方法200的流程图。

如图2所示,该方法包括操作s210,获取惯性测量单元(imu)数据。

操作s220,采用集束优化的方法,基于imu数据来估计设备的第一位姿以及imu参数;其中,采用以下操作中的任一项或任意多项的组合进行处理:

1)在集束优化的过程中,采用设备的静止状态对设备的第一位姿进行约束;

2)在集束优化的过程中,采用松耦合集束优化的方法对imu参数进行优化;

3)对imu数据进行积分得到位姿变化,根据位姿变化和第一位姿得到设备的第二位姿,在第一位姿更新后,对第二位姿与更新的第一位姿之间的差异进行补偿;

4)预测设备在未来时刻的位姿,其中,在预测设备的未来位姿的过程中,利用深度学习网络来预测设备的未来位姿;

5)根据设备在未来时刻的位姿绘制虚拟物体,其中,在绘制虚拟物体的过程中,根据历史图像帧对应的设备的位姿和当前图像帧对应的设备的位姿,对历史图像帧进行变形得到当前图像帧。

在一些实施例中,采用松耦合集束优化的方法对imu参数进行优化包括:固定设备在多帧图像中的位姿,根据多帧图像之间的imu数据以及设备在多帧图像中的位姿,估计imu参数。

在一些实施例中,采用设备的静止状态对设备的位姿进行约束包括:静止期间的设备的位姿保持不变。

在一些实施例中,对第二位姿与更新的第一位姿之间的差异进行补偿包括:获取第二位姿与更新的第一位姿之间的差异;获取更新的第一位姿到下一次第一位姿更新所需要的积分的次数和/或感知相关信息;根据该次数和/或感知相关信息、以及该差异,得到补偿量,根据补偿量对第一位姿更新后的位姿变化进行调整。

在一些实施例中,感知相关信息包括如下中的至少一种:眼球的运动速度,头部的旋转速度。

例如,当补偿回环检测所导致的误差时,补偿的速度与人眼的运动速度相关,和/或与人的头部运动相关。如头部运动越快,补偿速度越快。

在一些实施例中,利用深度学习网络来预测设备的未来位姿包括:利用多层长短期记忆(lstm)网络来预测设备在未来时刻的位姿。

在一些实施例中,利用多层长短期记忆lstm网络来预测设备在未来时刻的位姿包括:以设备的当前状态信息作为lstm网络的输入来获得设备在未来时刻的状态信息,并基于未来时刻的状态信息来获得设备的未来位姿。

在一些实施例中,方法还可包括在将当前状态信息输入lstm网络之前,使用卡尔曼滤波(ekf)来修正当前状态信息。

在一些实施例中,使用卡尔曼滤波ekf来修正当前状态信息包括:将设备的位置、速度作为ekf的输入,将设备的速度作为ekf的输出。

上述实施例中的状态信息可以具有任何格式,例如在一些实施例中,状态信息可以通过状态向量的形式提供。

在一些实施例中,在绘制虚拟物体的过程中,根据历史图像帧对应的设备的位姿和当前图像帧对应的设备的位姿,对历史图像帧进行变形得到当前图像帧。

在一些实施例中,对历史图像帧进行变形得到当前图像帧包括:基于当前图像帧的各个像素的深度信息以及当前图像帧和历史图像帧所对应的设备的位姿,计算当前图像帧的各个像素在历史图像帧中的位置;以及将历史图像帧中的各个位置处的像素复制到像素在当前图像帧中的对应位置处,来绘制当前图像帧。

上述图像帧可以是全息图像帧,也可以是非全息图像帧,本发明实施例关注于绘制图像,而不受图像的具体形式限制。

图4是示出了根据本公开实施例的用于获得设备位姿的装置400的框图。

如图4所示,该装置包括参数获取模块410和位姿估计模块420。

参数获取模块410用于获取惯性测量单元(imu)数据。

位姿估计模块420用于采用集束优化的方法,基于imu数据来估计设备的第一位姿以及imu参数;其中,采用以下操作中的任一项或任意多项的组合进行处理:

1)在集束优化的过程中,采用设备的静止状态对设备的第一位姿进行约束;

2)在集束优化的过程中,采用松耦合集束优化的方法对imu参数进行优化;

3)对imu数据进行积分得到位姿变化,根据位姿变化和第一位姿得到设备的第二位姿,在第一位姿更新后,对第二位姿与更新的第一位姿之间的差异进行补偿;

4)预测设备在未来时刻的位姿,其中,在预测设备的未来位姿的过程中,利用深度学习网络来预测设备的未来位姿;

5)根据设备在未来时刻的位姿绘制虚拟物体,其中,在绘制虚拟物体的过程中,根据历史图像帧对应的设备的位姿和当前图像帧对应的设备的位姿,对历史图像帧进行变形得到当前图像帧。

在一些实施例中,采用松耦合集束优化的方法对imu参数进行优化包括:固定设备在多帧图像中的位姿,根据多帧图像之间的imu数据以及设备在多帧图像中的位姿,估计imu参数。

在一些实施例中,采用设备的静止状态对设备的位姿进行约束包括:静止期间的设备的位姿保持不变。

在一些实施例中,对第二位姿与更新的第一位姿之间的差异进行补偿包括:获取第二位姿与更新的第一位姿之间的差异;获取更新的第一位姿到下一次第一位姿更新所需要的积分的次数和/或感知相关信息;根据该次数和/或感知相关信息、以及该差异,得到补偿量,根据补偿量对第一位姿更新后的位姿变化进行调整。

在一些实施例中,感知相关信息包括如下中的至少一种:眼球的运动速度,头部的旋转速度。

例如,当补偿回环检测所导致的误差时,补偿的速度与人眼的运动速度相关,和/或与人的头部运动相关。如头部运动越快,补偿速度越快。

在一些实施例中,利用深度学习网络来预测设备的未来位姿包括:利用多层长短期记忆(lstm)网络来预测设备在未来时刻的位姿。

在一些实施例中,利用多层长短期记忆lstm网络来预测设备在未来时刻的位姿包括:以设备的当前状态信息作为lstm网络的输入来获得设备在未来时刻的状态信息,并基于未来时刻的状态信息来获得设备的未来位姿。

在一些实施例中,在将当前状态信息输入lstm网络之前,使用卡尔曼滤波(ekf)来修正当前状态信息。

在一些实施例中,使用卡尔曼滤波ekf来修正当前状态信息包括:将设备的位置、速度作为ekf的输入,将设备的速度作为ekf的输出。

上述实施例中的状态信息可以具有任何格式,例如在一些实施例中,状态信息可以通过状态向量的形式提供。

在一些实施例中,在绘制虚拟物体的过程中,根据历史图像帧对应的设备的位姿和当前图像帧对应的设备的位姿,对历史图像帧进行变形得到当前图像帧。

在一些实施例中,对历史图像帧进行变形得到当前图像帧包括:基于当前图像帧的各个像素的深度信息以及当前图像帧和历史图像帧所对应的设备的位姿,计算当前图像帧的各个像素在历史图像帧中的位置;以及将历史图像帧中的各个位置处的像素复制到像素在当前图像帧中的对应位置处,来绘制当前图像帧。

上述图像帧可以是全息图像帧,也可以是非全息图像帧,本发明实施例关注于绘制图像,而不受图像的具体形式限制。下面将以全息图像为例来阐述本发明实施例的具体方案,需要注意的是,这些方案也同样可应用于任何其他类型的图像/图像帧。

下面将结合图5至图12来对图2和图4的技术方案进行详细阐述。需要注意的是,图5至图12所示方案仅是用于实现本发明实施例技术方案的示例,不应将其视为对本发明保护范围的限制。例如,一些图中所示的步骤/模块可以增加、减少或互换顺序,或做出细节上的改变,而不超出本发明的保护范围。

图5示出了根据本发明实施例的一个具体实现的总体流程示意图。其结构域图4所示装置的结构相对应。如图5所示,该实现可由三个功能模块组成,分别是:slam模块,运动预测模块和绘制模块,如图5所示。其中,slam模块利用多传感器融合,高帧率地输出设备当前位姿;运动预测模块根据slam模块的输出和状态滤波,预测一小段时间后的设备位姿;绘制模块则是根据虚拟物体绘制期间设备位姿的变化,对绘制图像进行调整,以进一步降低系统延迟。

图6示出了根据上述实现的增加静止检测的紧耦合集束优化的方案的示意图。

如图6所示,该流程可包括:

1)获取相机数据以及imu数据。

2)特征点提取。在图像中提取特征点,和保存的地图点进行匹配,得到两者之间的对应关系。如果匹配不上或者存在没有保存的地图点,则根据特征点建立新的地图点。

3)静止检测。通过分析imu数据,来检测设备是否处于静止状态。如果处于静止,则将静止状态传入给集束优化部分。

4)多传感器的二次优化。首先利用紧耦合集束优化对少量帧的设备位姿、地图点和imu参数进行优化;然后利用松耦集束合优化,对更多帧的imu参数的优化。

5)imu积分。使用imu参数,对imu数据进行积分,为ar系统提供高帧率,低延迟的位姿估计。

6)感知驱动的位姿滤波。因为imu积分出的位姿,和二次优化每次更新后的位姿之间有差异,本发明实施例用感知驱动的误差补偿方法,逐步缩小两者之间的偏差。

7)预测位姿将slam系统的当前设备位姿输出作为观测,使用扩展卡尔曼滤波(extendedkalmanfilter,ekf)估计设备的运动参数。将设备当前运动参数和ekf运动方程预测参数作为输入,利用基于lstm的深度学习网络,预测设备未来时刻的位姿。

8)绘制结果调整。根据输入位姿绘制全息图像,然后根据设备位姿变化,对全息绘制结果进行变形,提高全息绘制速度,降低延迟。

图7示出了根据该实现的静止检测的具体实现的示意图。

imu数据通常包含噪声,而噪声会导致设备位姿估计不准确。为了降低噪声,本发明实施例提出利用静止检测来降低噪声影响的方法。该方法是通过分析imu数据在局部的方差,来检测设备是否处于静止状态。如果设备处于静止状态。则固定处于该时间段内的设备位姿,这样在进行集束优化的时候,可以增加约束,提高位姿估计准确性。此方法中约束如下:1.通过地图点在空间中的位置(例如,3d位置)和其对应的特征点在图像(左目和/或右目)上的位置,能够得到设备的位姿。2.通过设备的位姿,和新地图点对应的特征点在图像上的位置,可以计算出新地图点在空间中的位置。3.通过前后两帧图像之间的imu数据,和imu参数,可以计算出两帧图像之间的设备位姿变化。4.通过多帧图像之间的imu数据,以及多帧图像对应的设备位姿,可以计算出imu参数。5.通过检测到的静止阶段,可以确定两帧之间的位姿变化为0。

如图7所示,图中较粗的线条为人行走时,imu数据的方差变化曲线。由于人行走的重复性,imu数据的方差呈周期性变化。如果imu数据的局部的方差(一个时间窗口内的方差)小于预测的阈值,则对应着重心落在脚接触地面的阶段,这一阶段又被称为零速区间。本发明实施例使用阈值来提取出设备运动过程中的零速区间,将这一区间作为约束增加到集束优化中。

图8示出了根据本发明实施例的二次集束优化的策略的示意图。该二次优化可以更好地估计imu参数,即噪声偏置。

第一次集束优化即增加了静止检测的紧耦合集束优化,如图8所示。和已有的紧耦合集束优化方法相比,检测到的静止区间增加了对设备位姿的约束,能够提高估计结果的准确性。

第二次集束优化为松耦合集束优化,和紧耦合集束优化不同的是,在此优化过程中,固定各帧的设备位姿,使用这些设备位姿和imu数据,对imu参数进行优化。这样就无需考虑地图点的约束,计算量更小。并且能够把更多的帧包括到优化过程中,得到更为准确的imu参数,如图8所示。此方法中约束如下:通过多帧图像之间的imu数据,以及多帧图像对应的设备位姿,计算出imu参数。

对imu数据积分得到的运动数据是连续的,但由于imu积分结果得到的是相对位姿变化,是要叠加到二次优化所得到的基础位姿之上。那么,每次二次优化结束,基础位姿更新之后,由于imu积分不准确,会使结果出现分段连续的现象。即,imu积分到新基础位姿的时刻得到的结果,和新的基础位姿之间有误差。针对这一问题,提出位姿滤波的方法。即每次基础位姿更新之后,先计算imu积分的位姿与新基础位姿之间的差异,并将这一差异作为偏置加入到新基础位姿之上。同时预估还有多少次imu积分可以达到下一次基础位姿更新,并根据这一次数,平滑地减少偏置,以平滑地将设备位姿移回正确的位置和方向。

除了imu积分存在误差可导致位姿之间的差异之外,同样地图的回环也会造成这一问题。图9示出了回环检测导致抖动的场景的示意图。如图9所示,设备运动了一圈到了以前经过的地方时,以前所保存的地图点和近期保存的地图点之间可能会有一定量的偏差,这时就需要使用回环检测功能将当前地图点的位置进行更新。也就是说,imu积分存在误差所导致的位姿差异和回环所导致的位姿差异都需要被补偿,例如通过本发明实施例的方法来补偿。为此,本发明提出感知驱动的误差补偿方法。即物体在视网膜上投影运动速度和人眼对物体的运动感知的敏感性之间成反比。为此探测眼球的运动速度hs,以及虚拟物体的运动速度p,以此来计算出人感知到的速度ht。并利用这里速度决定偏置减小的速度。人感知到的速度越大,偏置减小的就越快。ht的计算公式如下:

其中,在大部分情况下取0.6,ft为物体的大小,为物体在视网膜上投影的大小。

在ar系统中,利用slam算法获得“当前”时刻的设备位姿后,需要根据设备位姿绘制虚拟物体,并将绘制结果显示叠加在真实物体上。然而,当虚拟物体较为复杂,或者包含一些光照计算时,绘制虚拟物体需要花费一定时间,这造成虚拟物体显示具有一定延迟,影响ar的效果。传统的运动预测方法,往往使用一些线性的运动方程来描述运动状态,以及预测未来时刻的运动,难以应对复杂的非线性运动,无法满足ar设备对于预测准确性的要求。本发明实施例设计了一种基于lstm的深度学习网络,来学习一种通用的非线性运动方程,能更准确的预测未来时刻的运动状态。

由于imu观测数据中包含噪声,因此直接将imu积分出的位姿作为lstm单元的输入,难以获得准确地预测结果。本文利用ekf来平滑imu的观测数据,得到较为准确的运动状态,并将其输入到lstm单元中。图10示出了根据本发明实施例的深度ekf单元的结构示意图。图10右侧的输出作为图10左侧的两个输入。

使用s表示运动状态,其中:

s={v,av,w,aw}

其中,v为运动速度,av为运动加速度,w为旋转角速度,aw为旋转加速度。

以任一时刻i为例,比较slam估计出的设备位姿pi,与上一阶段利用ekf预测出的设备位姿p′i之间的误差(图10左下角,上一时刻的输出p’和当前的输入p都会进入kg单元,进行比较,误差用于用于修正状态向量s,这些是卡尔曼滤波的基本原理),并由当前时刻的卡尔曼增益kgi修正ekf的状态向量si。在获得当前时刻的状态向量后,一方面利用si和ekf运动模型m,来预测下一个时刻的设备位姿p′i+1;另一方面,将si作为lstm网络的输入,来预测未来一段时间后的设备状态向量s′i+n。(图10中,根据观察的位姿pi对ekf中的状态向量s进行修正,然后输入到“lstm”单元中,lstm的输出是s’。这里,s是包括相机位置、速度、朝向、角速度等信息。)

在此使用了状态向量,然而需要注意的是,可用于lstm网络的任何形式的表示设备状态的信息可用于本发明实施例,而不限于状态变量。

为预测未来一段时间内,任意时刻的位姿pi+x,提出使用一个滑动窗口记录当前时刻到未来i+n时刻之间,设备的运动状态序列。从而,能通过回归的方式,平滑地预测出时刻i+x的位姿p′i+x。考虑到s′i+1是由i+1-n时刻之前的imu观测数据估计出的,没有考虑到时刻i+1-n到i之间,设备的运动情况。由此,同样使用运动模型m预测滑动窗口内的运动状态s′i+n:

s′i+n={v′i+n,a′v,i+n,w′i+n,a′w,i+n}

v′i+n=vi+av,i·(n·δt)

a′v,i+n=av,i

a′w,i+k=aw,i

并利用加权平均的方式将其叠加在由lstm预测生成的状态滑动窗口上。图11示出了在此使用深度ekf的状态回归过程的示意图。如图11中的“计算”部分所示,获得最终的位姿估计p″i+x:

在图11中的“合并”部分,用带权重的来生成新的状态序列{s″}。当预测时间距离当前时刻较远时,给最新预测状态更大的权重,当预测时间距离当前时刻较近时,给历史预测状态较大权重。

全息绘制较为费时,会增加ar系统的延迟。为了减少这一延迟,本发明实施例提出一种全息图像绘制的方法。和传统全息绘制方法不同,这一方法使用前一帧绘制的全息图像和深度图像作为输入,由于已知这一帧上各个点的深度信息,和两帧全息图像对应的设备位姿,所以可以计算出当前帧中全息图像里各个像素在前一帧中的位置,这样只要将前一帧中相应位置的像素复制到当前位置即可得到当前帧的图像。和普通的全息绘制方法相比,这一方法仅需要对二维图像进行处理,而无需进行三维模型的投影,光照计算等。计算量更小,能够有效地减少绘制延迟。图12示出了根据本发明实施例的通过绘制结果调整减少延迟的方法的示意图。

本发明提出一种基于预测和多传感器融合的视觉slam方法,对相机帧率低、误差累积、数据传输计算延迟等都具有较强的鲁棒性。利用imu数据积分来获得相机两帧之间的运动情况,能够以imu的频率输出位置信息。在系统运行过程中,通过相机静止状态检测来校正运动参数,降低系统的累积误差。在数据传输和计算存在较大延迟时,一方面利用lstm模型来预测相机运动参数,以提前估计相机未来时刻的位姿,以抵消数据传输和计算带来的延迟。另一方面,在显示虚拟物体时,通过imu数据积分来获取虚拟物体渲染期间的位姿变化,从而利用图像变形来降低由系统延迟造成的误差。

图13是根据本公开实施例的示例网络节点和/或用户设备的示例硬件布置的框图。硬件布置1300可包括处理器1306。处理器1306可以是用于执行本文描述的流程的不同动作的单一处理单元或者是多个处理单元。布置1300还可以包括用于从其他实体接收信号的输入单元1310、以及用于向其他实体提供信号的输出单元1304。输入单元1310和输出单元1304可以被布置为单一实体或者是分离的实体。

此外,布置1300可以包括具有非易失性或易失性存储器形式的至少一个可读存储介质1308,例如是电可擦除可编程只读存储器(eeprom)、闪存、光盘、蓝光盘和/或硬盘驱动器。可读存储介质1308可以包括计算机程序1310,该计算机程序1310可包括代码/计算机可读指令,其在由布置1300中的处理器1306执行时使得硬件布置1300和/或包括硬件布置1300在内的设备可以执行例如上面结合图1和/或图2所描述的流程及其任何变形。

计算机程序1310可被配置为具有例如计算机程序模块1310a~1310c架构的计算机程序代码。因此,在使用硬件布置1300作为基站的示例实施例中,布置1300的计算机程序中的代码可用于执行根据图2所示的方法。然而,计算机程序1310中还可以包括用于执行本文描述的各种方法的各个步骤的其他模块。

此外,在使用硬件布置1300作为用户设备的示例实施例中,布置1300的计算机程序中的代码可包括:模块1310a,用于接收下行链路控制信令。计算机程序中的代码还可包括:模块1310b,用于根据下行链路控制信令和针对与下行链路控制信令相对应的下行链路传输的解码结果,来生成harq-ack码本。计算机程序中的代码还可包括:模块1310c,用于根据所生成的harq-ack码本来反馈与下行链路传输相对应的harq-ack。然而,计算机程序1310中还可以包括用于执行本文描述的各种方法的各个步骤的其他模块。

计算机程序模块实质上可以执行图1和/或图2中所示出的流程中的各个动作,以模拟各种设备。换言之,当在处理器1306中执行不同计算机程序模块时,它们可以对应于本文中所提到的各种设备的各种不同单元。

尽管上面结合图13所公开的实施例中的代码手段被实现为计算机程序模块,其在处理器1306中执行时使得硬件布置1300执行上面结合图1和/或图2所描述的动作,然而在备选实施例中,该代码手段中的至少一项可以至少被部分地实现为硬件电路。

处理器可以是单个cpu(中央处理单元),但也可以包括两个或更多个处理单元。例如,处理器可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic))。处理器还可以包括用于缓存用途的板载存储器。计算机程序可以由连接到处理器的计算机程序产品来承载。计算机程序产品可以包括其上存储有计算机程序的计算机可读介质。例如,计算机程序产品可以是闪存、随机存取存储器(ram)、只读存储器(rom)、eeprom,且上述计算机程序模块在备选实施例中可以用ue内的存储器的形式被分布到不同计算机程序产品中。

至此已经结合优选实施例对本公开进行了描述。应该理解,本领域技术人员在不脱离本公开的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本公开的范围不局限于上述特定实施例,而应由所附权利要求所限定。

此外,在本文中被描述为通过纯硬件、纯软件和/或固件来实现的功能,也可以通过专用硬件、通用硬件与软件的结合等方式来实现。例如,被描述为通过专用硬件(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)来实现的功能,可以由通用硬件(例如,中央处理单元(cpu)、数字信号处理器(dsp))与软件的结合的方式来实现,反之亦然。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1