用于估计渲染设备的姿态的方法和装置与流程

文档序号:16595327发布日期:2019-01-14 19:34阅读:145来源:国知局
用于估计渲染设备的姿态的方法和装置与流程

本公开涉及通过将来自绝对姿态传感器和差分姿态传感器的数据与在渲染设备上显示的当前图像的视觉感知相关联来确定渲染设备的姿态的领域。渲染设备例如是智能手机、平板电脑、或头戴式显示器(hmd)。



背景技术:

用于估计对象的姿态的方法是多种多样的。这些方法旨在尽可能准确地确定对象在参照系中的位置和方向。术语“姿态(pose)”收集对象在三维空间中的位置(3个自由度)和对象的方向(3个自由度)的测量。所以姿态是六维测量。可以使用两种传感器来估计对象的姿态:绝对姿态传感器和差分姿态传感器。传感器有助于确定姿态的六个维度中的至少一个维度。

绝对姿态传感器是直接链接到参照系(姿态必须在该参照系中被估计)的传感器。例如,磁力计可以与对象相关联。北链接到参照系。当对象旋转时,磁力计测量方位角(仅一个维度)。摄像头系统可以安装在对象的前面或周围,以便捕获对象的图像。摄像头在参照系中的姿态是准确已知的。对捕获的图像的处理允许估计对象在参照系中的姿态(根据系统和图像处理的复杂性,从两个维度到六个维度)。绝对姿态传感器的测量误差是恒定的,但较不精确。

差分姿态传感器是与对象本身相关联并且检测对象的运动的传感器。陀螺仪和加速度计通常用于惯性测量单元(imu)中。这些传感器不直接测量对象的姿态。差分姿态传感器测量姿态的变化,通过将检测到的变化添加到已知姿态来确定新姿态。这种传感器工作频率很高,并且非常精确。然而,它们的测量误差是随时间累积的,并且如果不进行校正,则测量误差在一段时间后变得显著。

为了优化姿态估计并且校正差分姿态传感器的累积测量误差,对两种类型的传感器进行组合。通过对来自每个传感器的每个测量进行滤波来估计姿态。有几种技术是可行的。例如,姿态可以是来自测量的信息的平均。从每种类型的传感器发出的信息可能是矛盾的。由绝对姿态传感器估计的姿态可能变化,而根据差分姿态传感器估计的姿态是静止的。基于移动模型的滤波可以引入衰减现象(dampingphenomenon):估计的姿态继续前进,而传感器(特别是差分传感器)感知没有移动。一些姿态传感器可能丢失信号或具有低频获取。这可能导致姿态估计中的突然跳跃,或产生衰减现象。

沉浸式内容渲染设备是仅显示图像的一部分并且允许用户通过移动显示器本身来浏览图像以“环顾四周”并且发现他周围的图像的渲染设备。智能手机、平板电脑或hmd例如被用来渲染沉浸式内容,例如,沉浸式视频或虚拟现实场景(例如,在游戏中)。这类渲染设备的姿态估计必须与用户的真实移动一致。对于hmd尤其如此。实际上,浏览是由姿态估计控制的,显示的图像也是由姿态估计控制的。如果姿态估计与用户的移动没有准确匹配,则用户看到的内容与他的前庭系统对他的大脑所指示的内容不对应,存在使他生病的风险(晕模拟器)。对于这类渲染设备,通过将来自姿态传感器(绝对姿态传感器和差分姿态传感器)集合的数据与在渲染设备上显示的当前图像的视觉感知相关联来确定姿态是非常重要的。



技术实现要素:

本公开的目的是克服渲染设备的确定姿态与当前图像的视觉感知之间的不一致。本公开涉及一种确定渲染设备的最终姿态信息的方法,初始姿态信息与渲染设备相关联,方法包括:

-根据表示渲染设备的绝对姿态信息和/或渲染设备的差分姿态信息的数据来确定中间姿态信息;

-根据中间姿态信息与初始姿态信息之间的差异、表示差分姿态信息的数据、和表示在渲染设备上显示的当前图像的视觉感知的信息,来确定最终姿态信息。

根据特定实施例,确定最终姿态信息包括:

-根据中间姿态信息与初始姿态信息之间的差异以及表示差分姿态信息的数据,来确定表示移动感知的第一系数,

-确定表示在所述渲染设备上显示的当前图像的视觉感知的第二系数,

-根据所述第一系数和所述第二系数的组合来确定初始姿态信息与中间姿态信息之间的最终姿态信息。

根据特定特征,第一系数是通过将中间姿态信息和初始姿态信息之间的差异应用于以差分姿态信息为中心并且具有与差分姿态信息成比例的标准差的函数来确定的。

根据特定特征,第二系数是根据当前显示的图像的特征来确定的,所述特征属于包括亮度、模糊度、饱和度、色度、或显著度的测量一组特征。

在特定实施例中,第二系数是根据包括当前显示的图像的至少两个图像的序列的特征来确定的,所述特征属于包括能量、熵、或光流的测量的一组特征。

根据特定特征,第二系数是根据当前显示的图像的特征和包括当前显示的图像的至少两个图像的序列的特征的组合来确定的。

在特定实施例中,中间姿态信息是通过滤波方法来确定的,所述滤波方法属于包括卡尔曼滤波或粒子滤波的集合。

本公开还涉及一种被配置用于确定渲染设备的最终姿态信息的设备,初始姿态信息与渲染设备相关联,设备包括:

-用于根据表示渲染设备的绝对姿态信息和/或渲染设备的差分姿态信息的数据来确定中间姿态信息的装置;

-用于根据中间姿态信息与初始姿态信息之间的差异、表示差分姿态信息的数据、和表示在所述渲染设备上显示的当前图像的视觉感知的信息来确定最终姿态信息的装置。

本公开还涉及一种用于确定渲染设备的最终姿态信息的设备,初始姿态信息与渲染设备相关联,设备包括至少一个处理器,该至少一个处理器被配置为:

-根据表示渲染设备的绝对姿态信息和/或渲染设备的差分姿态信息的数据来确定中间姿态信息;

-根据中间姿态信息与初始姿态信息之间的差异、表示差分姿态信息的数据、和表示在所述渲染设备上显示的当前图像的视觉感知的信息,来确定最终姿态信息。

附图说明

阅读以下描述将更好地理解本公开,并且将得到其他具体特征和优点。以下描述参考附图,其中:

-图1示出了根据本原理的特定实施例的通过对一方面来自至少一个绝对姿态传感器的集合和另一方面来自至少一个差分传感器的集合的数据进行滤波来确定中间姿态的示例;

-图2示意性地示出了根据本原理的特定实施例的系统的结构,该系统被配置为通过使用图1的中间姿态信息、使用图1的来自绝对姿态传感器和差分姿态传感器的数据、并且根据渲染设备当前显示的图像,来确定最终姿态;

-图3示意性地示出了根据本原理的特定实施例的图2的系统的硬件实施例;

-图4示意性地示出了根据非限制性有利实施例的在图3的处理设备中实现的方法的实施例。

具体实施方式

现在参考附图描述主题,其中相同的附图标记始终用于表示相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对主题的透彻理解。应当理解,可以在没有这些具体细节的情况下实践主题实施例。

根据本公开的非限制性实施例,提供了一种通过将移动感知与视觉感知相关联来确定沉浸式内容渲染设备的姿态的方法。绝对姿态传感器和差分姿态传感器分别与参照系(在该参照系中姿态被估计)和设备相关联。在初始化阶段,根据绝对姿态传感器确定初始姿态。由第一模块对来自至少绝对姿态传感器的数据和来自差分姿态传感器的可选数据进行滤波以确定中间姿态。第二模块根据移动感知的模型来计算第一系数,并且根据渲染设备当前显示的图像的视觉感知的模型来计算第二系数。这些系数被用来从初始姿态以及中间姿态的方向计算最终姿态,使得移动感知和视觉感知相关联。为了进行新的估计,将最终姿态的值设置为初始姿态并且确定新的中间姿态。

初始姿态是第一姿态信息;中间姿态是第二姿态信息;并且最终姿态是第三姿态信息。

图1示出了通过对一方面来自至少一个绝对姿态传感器的集合和另一方面来自至少一个差分传感器的集合的数据进行滤波来确定中间姿态10的示例。为了清楚起见,图1示出了(姿态的六个维度中的)一个维度的示例,例如,方位角。应当理解,本原理可扩展到六维信息。在图1中,来自绝对姿态传感器的数据构成第一姿态估计11(该第一姿态估计11随时间变化),并且来自差分姿态传感器的数据被累积以构成第二姿态估计12(该第二姿态估计12独立于第一姿态11随时间变化)。滤波包括对第一姿态和第二姿态进行平均以确定中间姿态10。在第一时间段13中,第一姿态和第二姿态发散。然而,两者都朝相同方向前进。滤波补偿该发散,并且中间姿态10在与第二姿态12相同的方向上前进。在该时间段期间,在hmd的示例中,用户在一个方向上旋转他的头部并且感知该移动。由姿态估计引导的图像的浏览在相同的方向中稍慢地旋转。在诸如13之类的时间段期间,视觉感知与移动感知一致,并且中间姿态可以直接用作最终姿态。

在时间段14和15期间,这种一致性被打破。实际上,根据来自差分传感器的数据累积而构建的第二姿态不再在与中间姿态相同的方向上前进。在时间段14期间,差分传感器指示用户不移动。然而,绝对传感器指示用户旋转他的头部。滤波模块对两个值进行平均,并且确定用户旋转他的头部。由于差分传感器比绝对传感器更精确,这意味着用户不动,但浏览仍在旋转。在时间段15期间,第一姿态和第二姿态在相反的方向上前进。当用户实际旋转头部时,滤波模块确定设备静止不动。必须避免这些情况,因为它们是通过引入移动感知和视觉感知之间的不一致的疾病(通常是晕模拟器、晕船、空间病、一般的晕交通工具)的来源。

在时间段16期间,来自绝对传感器的信号丢失。例如,在绝对传感器是拍摄hmd正面的摄像头时,可能发生这种情况。当用户旋转超过四分之一圈或当他移动出摄像头的视野时,信号丢失。滤波模块仅具有来自差分传感器的数据以确定中间姿态。在第一变型中,中间姿态从平均值跳跃到第二姿态的值,如曲线10的部分10a所示。在第二变型中,滤波模块逐渐地用第二姿态对中间姿态进行内插,并且将值衰减到第二姿态值,如曲线10的部分10b所示。在时间段17期间,获取来自绝对姿态传感器的信号,并且出现相同的跳跃或衰减现象。

在变型中,可以使用更复杂的滤波方法,例如,基于模型的滤波、粒子滤波或卡尔曼滤波。这类滤波模块也存在衰减和/或跳跃现象,但是不一致的是,衰减和/或跳跃现象在不同条件下出现。

图2示意性地示出了装置20的结构,该装置20被配置为根据来自绝对姿态传感器和差分姿态传感器(分别为22和23)的数据并且根据渲染设备当前显示的图像24来确定最终姿态21。装置包括两个模块25和27。模块是功能单元,其可以与可区分的物理单元相关或不相关。例如,这些模块或这些模块中的一些模块可以在独特的组件或电路中被放在一起,或促成软件的功能。相反,一些模块可以由单独的物理实体组成。与本原理兼容的装置可以使用纯硬件(例如,使用专用硬件,例如,asic或fpga或vlsi,分别为“专用集成电路”、“现场可编程门阵列”、“超大规模集成”)、或嵌入在设备中的多个集成电子组件、或硬件组件和软件组件的混合来实现。模块包括用于实现(一个或多个)指定的逻辑功能的一个或多个可执行指令。还应当注意,在其他实现方式中,框中标注的(一个或多个)功能可以不按照标注的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或这些框有时可以以相反的顺序执行,这取决于所涉及的功能。

第一模块25通过对来自两种类型的姿态传感器的数据进行滤波来确定中间姿态26。模块25可以实现平均滤波或基于模型的滤波,例如,卡尔曼滤波。在变型中,第一模块25仅考虑绝对姿态传感器数据以确定中间姿态26。模块27测试中间姿态是否与来自差分姿态传感器的数据一致。如果值是一致的(即,它们在相同方向上前进),则将中间姿态用作最终姿态。如果值是不一致的,则模块27检查是否可以在不干扰视觉感知的情况下达到中间姿态。模块27计算表示当前在屏幕上显示的图像的视觉感知的系数β(在下文中也称为第二系数)。例如,模块27可以测试当前图像的亮度。如果亮度低于阈值(即,图像全局黑暗),则最终姿态按等式(1)接近中间姿态,其中系数β接近1.0。

[等式(1)]p3=p1+β.(p2-p1)

在等式(1)中,p3是最终姿态,p1是初始姿态,并且p2是中间姿态。如果亮度高(即,图像的细节清晰可见),则模块27将低值(即,接近0.0)赋予系数β。在各种实施例中可以拒绝模块27。例如,可以根据等式(2)确定最终姿态,其中δ是由差分姿态传感器检测到的移动。

[等式(2)]p3=(p1+δ)+β.(p2-(p1+δ))

在变型中,系数β是根据当前图像的特征的测量来确定的,该特征属于例如以下一组图像特征:亮度、模糊度、饱和度、色度、或显著度;或这些特征中至少两个特征的组合。在变型中,系数β是根据图像序列的特征的测量来确定的,该序列包括当前图像,并且特征属于例如包括以下特征的一组特征:序列的能量、熵、或光流。

在一组变型中,模块27不根据由差分姿态传感器感知的移动δ测试中间姿态的一致性。相反,模块27根据由差分姿态传感器感知的移动δ以及中间姿态与初始姿态之间的差异来计算系数α(也称为第一系数),例如利用等式(3)(即,正态分布)或等式(4)(分段分布)。

[等式(3)]

[等式(4)]如果(|δ–(p2-p1)|>k),则α=1,否则α=0

其中k是给定的标准差值。系数α可以通过替换等式(1)或(2)中的系数β来单独使用。在另一实施例中,系数α和β被组合以用作等式(1)或(2)的系数,例如,通过将它们相乘或对它们进行平均。

在等式(3)和等式(4)中,中间姿态p2(图1的曲线10)与由差分传感器所感知的姿态(图1的曲线12)之间的差异越大,第一系数α越小。在根据本文描述的各种实施例的等式(1)或等式(2)中所使用的,第一系数α防止最终姿态远离由差分传感器所感知的姿态。因为差分传感器非常精确,所以最终姿态(以及所显示的图像)对应于用户的移动。然而,由于差分传感器具有累积测量误差,所以将中间姿态视为要达到的姿态,这是因为根据绝对姿态传感器和差分姿态传感器确定中间姿态是最佳的。如在本公开中所确定的,第二系数β的作用包括在该校正的视觉感知足够弱时,使最终姿态更接近中间姿态。这有利于在不使用户生病的情况下使最终姿态尽可能最佳。

等式(1)、等式(2)、等式(3)和等式(4)中的姿态p1、p2和p3是高达六维的变量。当确定最终姿态p3时,将初始姿态p1的值设置为最终姿态p3的值,并且确定新的姿态。

图3示意性地示出了设备30的硬件实施例,该设备30被配置为根据来自绝对姿态传感器和差分姿态传感器的数据并且根据渲染设备当前显示的图像来确定最终姿态。在该示例中,设备30包括通过地址和数据的总线31(该地址和数据的总线31还传送时钟信号)彼此连接的以下元件:

-微处理器32(或cpu),

-显卡33,包括:

·至少一个图形处理器单元(或gpu)330,

·图形随机存取存储器(gram)331,

-rom(只读存储器)类型的非易失性存储器34,

-随机存取存储器或ram35,

-至少一个差分传感器36(例如,陀螺仪、加速度计),

-i/o(输入/输出)设备37,例如,触觉接口、鼠标、网络摄像头等,以及

-电源38。

有利地,设备30连接到显示屏类型的一个或多个显示设备39(该一个或多个显示设备39直接连接到显卡33)以显示在显卡中根据最终姿态333计算的当前图像332。根据特定实施例,显示设备39集成在设备30(例如,hmd、智能手机或平板电脑)中。

注意,在存储器331、34和35的描述中使用的词语“寄存器”在所提到的每个存储器中指定低容量的存储区(一些二进制数据)以及大容量的存储区(使得整个程序能够被存储,或使得表示被计算的或要被显示的数据的全部或部分数据能够被存储)两者。

当开启时,微处理器32加载并且执行包括在ram34的寄存器340中的程序的指令。

随机存取存储器35特别包括:

-在寄存器330中,负责开启设备30的微处理器32的操作程序,

-表示渲染设备的初始姿态的数据351,

-表示中间姿态的数据352。

根据一个特定实施例,实现特定于本公开并且在下文中描述的方法的步骤的算法被有利地存储在与实现这些步骤的设备30相关联的显卡33的存储器gram331中。当开启时,显卡33的图形处理器330将程序350加载到gram331中,并且以使用例如hlsl(高级着色器语言)语言或glsl(opengl着色语言)的“着色器”类型的微程序的形式来执行这些算法的指令。显卡33根据存储在gram331的寄存器333中的确定的最终姿态来渲染视频内容。随机存取存储器gram331特别包括寄存器332中的表示视频内容的当前图像的数据。

根据另一变型,ram35的一部分由cpu32分配以用于存储视频内容的渲染。然而,该变型在图像的合成中产生更大的延迟,因为数据必须从随机存取存储器35经过总线31传输到显卡33,该总线31的传输容量通常低于显卡中用于将数据从gpu传输到gram(反之亦然)的可用传输容量。

根据另一变型,电源38位于设备30的外部。在一个特定实施例中,一个或多个差分姿态传感器360位于设备30的外部。在另一实施例中,一个或多个绝对姿态传感器被集成在设备30中(例如,磁力计)。

图4示意性地示出了根据非限制性有利实施例的在处理设备(例如,设备30)中实现的方法40的实施例。

在初始化步骤41中,根据来自仅绝对姿态传感器的数据来确定针对渲染设备的初始姿态。实际上,在该步骤中,差分姿态传感器尚未发送任何数据。该第一初始姿态被存储在设备30的ram35的寄存器351中。在变型中,初始姿态(也称为p1)被存储在gram331的寄存器中。

当获得来自绝对姿态传感器和/或差分姿态传感器的新数据时,执行步骤42。步骤42由图2的模块25执行。在该步骤中,通过对来自两种类型的姿态传感器的数据进行滤波来确定中间姿态26(也称为p2)。模块25可以实现平均滤波或基于模型的滤波,例如,卡尔曼滤波。在变型中,中间姿态是通过仅绝对姿态传感器的数据来确定的姿态。中间姿态被视为最佳姿态估计。

在步骤43处,根据初始姿态p1、中间姿态p2、来自差分姿态传感器的数据、和由渲染设备30显示的当前图像来确定最终姿态(也称为p3)。步骤43包括三个子步骤,这三个子步骤可以根据各种实施例来实现。

在步骤431处,执行中间姿态p2关于由差分姿态传感器提供的数据的一致性的评估。如果中间姿态在与由差分姿态传感器感知的移动相同的方向上(相对于初始姿态p1)前进(即,如果中间姿态与此时用户的移动一致),则使用中间姿态作为最终姿态。在这种情况下,直接执行步骤44。否则,默认值(例如,0.0或0.1)被赋予第一系数α,并且执行步骤432。在步骤431的变型中,根据初始姿态值和中间姿态值以及来自差分姿态传感器的数据来计算系数α(也称为第一系数)。例如,等式(3)或等式(4)可以被用来计算第一系数。该系数α表示使得最终姿态与感知的移动保持一致的力。在该实施例中,执行步骤432。

步骤432包括计算表示移动的视觉感知的水平的第二系数β。例如,如果当前显示的图像序列是黑暗的或模糊的,则例如移动的视觉感知被认为是低的。类似地,如果当前显示的图像序列对应于快速正向移动(或反向移动)、行进或平移或倾斜或缩放(放大或缩小),则移动的视觉感知也被认为是低的,因为用户不能精确地查看图像的详细信息。如果运动的视觉感知的水平低,则第二系数β高(例如,接近1.0,例如,0.95)。

步骤433使用在先前步骤中计算的信息来确定最终姿态。因为中间姿态被认为是最佳的,所以只要中间姿态与差分姿态传感器感知的移动δ一致,最终姿态必须尽可能接近中间姿态。各种实施例可以遵循该原理,例如,等式(5)。

[等式(5)]

一旦确定了最终姿态,显卡33就使用p3的值来渲染下一个当前图像。步骤44包括将p3的值赋予p1。当从绝对姿态传感器和/或差分姿态传感器接收到新数据时,再次执行步骤42。

当然,本公开不限于先前描述的实施例。

具体地,本公开不限于确定渲染设备的最终姿态信息的方法,而是还扩展到将该最终姿态信息发送到渲染设备的任意方法和/或根据最终姿态信息来渲染图像的任意方法。生成初始姿态信息、中间姿态信息和最终姿态信息以及第一系数和第二系数所必需的计算的实现方式不限于着色器类型微程序的实现方式,而是还扩展到任意程序类型的实现方式,例如可以由cpu型微处理器执行的程序。本公开的方法的使用不限于实时利用,而是还延伸到任意其他利用,例如,用于记录工作室中的称为后期制作处理的处理。

本文描述的实现方式可以在例如方法或过程、装置、软件程序、数据流、或信号中实现。即使仅在单个实现方式形式的上下文中讨论(例如,仅作为方法或设备讨论),所讨论的特征的实现方式也可以以其他形式(例如,程序)实现。装置可以在例如适当的硬件、软件和固件中实现。方法可以在例如装置中实现,例如在处理器中实现,该处理器通常涉及处理设备,包括例如计算机、微处理器、集成电路、或可编程逻辑设备。处理器还包括通信设备,例如,智能电话、平板电脑、计算机、移动电话、便携式/个人数字助理(“pda”)、以及便于最终用户之间的信息通信的其他设备。

本文描述的各种过程和特征的实现方式可以在各种不同的设备或应用中实施,具体地,例如,可以在与数据编码、数据解码、视图生成、纹理处理、以及图像和相关的纹理信息和/或深度信息的其他处理相关联的设备或应用中实施。这类设备的示例包括编码器、解码器、处理来自解码器的输出的后处理器、向编码器提供输入的预处理器、视频编码器、视频解码器、视频编解码器、网络服务器、机顶盒、笔记本电脑、个人电脑、手机、pda、和其他通讯设备。应该清楚的是,设备可以是移动的,甚至可以安装在移动车辆中。

另外,方法可以由处理器执行的指令来实现,并且这类指令(和/或由实现方式产生的数据值)可以存储在处理器可读介质上,例如,集成电路、软件载体、或其他存储设备,例如,硬盘、光盘(“cd”)、光盘(例如,dvd,通常称为数字通用光盘或数字视频光盘)、随机存取存储器(“ram”)、或只读存储器(“rom”)。指令可以形成有形地体现在处理器可读介质上的应用程序。指令可以是例如硬件、固件、软件、或它们的组合的形式。指令可以在例如操作系统、单独的应用程序或两者的组合中找到。因此,处理器的特征在于,例如,被配置为执行过程的设备和包括处理器可读介质的设备(例如,存储设备)都具有用于执行过程的指令。此外,除了指令或代替指令,处理器可读介质可以存储由实现方式产生的数据值。

对于本领域技术人员显而易见的是,实现方式可以产生各种信号,这些信号被格式化以携带可以例如被存储或传输的信息。该信息可以包括例如用于执行方法的指令,或由所描述的一个实现方式产生的数据。例如,信号可以被格式化以将用于写入或读取所描述的实施例的语法的规则携带作为数据,或将由所描述的实施例写入的实际语法值携带作为数据。这类信号可以被格式化,例如,作为电磁波(例如,使用频谱的射频部分)或作为基带信号。格式化可以包括例如编码数据流以及用编码数据流调制载波。信号携带的信息可以是例如模拟或数字信息。如已知的,信号可以通过各种不同的有线或无线链路传输。信号可以存储在处理器可读介质上。

已经描述了许多实现方式。然而,应该理解,可以进行各种修改。例如,可以组合、补充、修改、或移除不同实现方式的元素以产生其他实现方式。另外,普通技术人员将理解,其他结构和过程可以替代所公开的那些,并且所得到的实现方式将以至少基本相同的(一个或多个)方式执行至少基本相同的(一个或多个)功能,从而至少实现与所公开的实施方式基本相同的(一个或多个)结果。因此,本申请考虑了这些和其他实现方式。

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