提供内容的设备和方法

文档序号:1559835 发布日期:2020-01-21 浏览:25次 >En<

阅读说明:本技术 提供内容的设备和方法 (Apparatus and method for providing content ) 是由 耶夫亨尼·雅克辛 奥列克桑德尔·拉多姆斯基 奥列克桑德尔·舒尔 于 2018-07-25 设计创作,主要内容包括:提供了一种设备和方法。该方法包括:基于移动信息识别所述设备的视线方向。该方法还包括:识别在第一直线与第二直线之间形成的角度,该第一直线从显示器上的预定位置开始并且对应于所识别的视线方向,该第二直线从该预定位置开始并且对应于遵循从多个帧获得的移动轨迹的方向。该方法还包括:基于所识别的角度和相对于设备的视场而确定的阈值来确定是否开启用于提供与所识别的视线方向相对应的帧的调整模式。该方法额外包括在所述多个帧中识别第一帧和第二帧。该方法还包括显示该第一帧,然后显示该第二帧。(An apparatus and method are provided. The method comprises the following steps: identifying a gaze direction of the device based on the movement information. The method further comprises the following steps: an angle formed between a first straight line starting from a predetermined position on the display and corresponding to the identified line-of-sight direction and a second straight line starting from the predetermined position and corresponding to a direction following a movement trajectory obtained from a plurality of frames is identified. The method further comprises the following steps: determining whether to turn on an adjustment mode for providing a frame corresponding to the identified gaze direction based on the identified angle and a threshold determined relative to a field of view of the device. The method additionally includes identifying a first frame and a second frame in the plurality of frames. The method also includes displaying the first frame and then displaying the second frame.)

提供内容的设备和方法

技术领域

本公开涉及提供内容的设备和方法。

背景技术

虚拟现实(VR)是通过利用计算机等人工技术创建的,指的是技术本身或者类似于现实但不是真正现实的特定环境。通过VR创建的环境或情况可以会刺激用户的五种感官,并可以使用户具有类似于现实的时空体验。此外,用户可以通过使用实际设备执行控制或执行命令来与VR中实现的对象进行交互,以及完全地沉浸在VR中。在VR可以与用户进行交互并创建用户体验方面,VR可以与单方面实现的模拟区分开来。

用户可以在使用VR设备时移动,并且VR设备可以提供反映用户移动的VR内容。

发明内容

技术问题

需要提供根据观看VR内容的用户的移动反映观看方向的变化的VR内容。

问题的解决方案

本公开提供了一种设备和方法,所述方法和设备用于当观看VR内容的用户自由行进或移动时根据用户的移动来提供反映沿观看方向变化的VR内容。

根据实施例的设备可以包括:显示器;姿势传感器,所述姿势传感器被配置为测量所述设备的移动并输出与所测量的移动相关的移动信息;存储器;控制器,所述控制器被配置为:基于所述移动信息,识别所述设备的视线方向;识别在从显示器上的预定位置开始并与所识别的视线方向相对应的直线与从所述预定位置开始且与遵循从存储在所述存储器中的多个帧获得的移动轨迹的方向相对应的直线之间形成的角度;基于所识别的角度和相对于所述设备的视场而确定的阈值,确定开启用于提供与所识别的视线方向相对应的帧的调整模式;在所述调整模式下,基于所识别的视线方向,识别所述多个帧中的第一帧和第二帧;并控制所述显示器显示所述第一帧然后显示所述第二帧。

根据实施例的设备的方法,包括:基于通过测量所述设备的移动而生成的移动信息,识别所述设备的视线方向;识别在从包括在所述设备中的显示器上的预定位置开始且与所识别的视线方向相对应的直线与从所述预定位置开始且与遵循从多个帧获得的移动轨迹的方向相对应的直线之间形成的角度;基于所识别的角度和相对于所述设备视场而确定的阈值,确定是否开启用于提供与所识别的视线方向相对应的帧的调整模式;在所述调整模式下,基于所识别的视线方向识别所述多个帧中的第一帧和第二帧;显示所述第一帧,然后显示所述第二帧。

根据本公开,VR设备可以向用户提供反映根据用户的动作或移动沿VR设备的视线方向而变化的帧。

用户在使用VR设备时可能会移动,并且在左右移动头部时会在虚拟现实内容范围内找到位于移动轨迹上的对象。此外,用户可以通过沿多个方向移动他/她的头部(诸如倾斜他/她的头部或向右或向左移动他/她的头部),来观察发现的对象。当用户沿多个方向移动他/她的头部时,VR内容向用户提供与移动的视点相对应的对象图像,从而用户可以沿多个方向观察对象。用户还可以在移动时观察对象的后视图。因此,VR设备可以提供更逼真的内容,并且可以引起使得用户能够控制VR内容的新关注度,从而用户可以像在现实世界中那样主观地观察对象。即使VR设备的视觉方向超出用户的视角,VR设备也提供与视觉方向相对应的VR内容。因此,可以增加VR设备可以提供的视野(FOV)。

VR设备识别用户的移动并提供与所识别的移动相对应的帧。例如,当用户向后倾斜他/她的头部时,VR设备可以在第一帧之后向用户提供第二帧,其中相对于在第一视点处提供给用户的第一帧,第二帧已经在第二视点处被提供,该第二视点是在与当用户向后倾斜他/她的头部时所产生的移动距离对应的时间一样长的时间之前的视点。

此外,当用户向前倾斜他/她的头时,VR设备可以在第一帧之后向用户提供第三帧,其中,相对于在第一视点处提供给用户的第一帧,第三帧是在第三视点处提供的帧,该第三视点为在与当用户向前倾斜他/她的头部时所产生的移动距离对应的时间一样长的时间之前的视点。因此,用户可以通过倾斜他/她的头部来看到对象的过去图或未来图。这样的功能使得VR设备能够向用户提供具有增加的自由度(DOF)的VR内容。

在采用以下发明方式之前,阐明本专利文件中使用的某些词语和短语的定义可能是有利的:术语“包括”和“包含”及它们派生词是指不含限制的包括;术语“或”是包含性的,意味着和/或;短语“与…...相关联”和“与之关联”及它们派生词可能表示包括、被包括在其中、与……互连、包含、被包含在……中、连接到或与……连接、耦接到或与……耦接、与……可通信、与……合作、交织、并置、接近于、绑定到或与……绑定、具有、具有……的特性等;术语“控制器”是指控制至少一个操作的任何设备、系统或其一部分,这样的设备可以用硬件、固件或软件或它们中至少两个的某种组合来实现。应当注意的是,与任何特定控制器相关联的功能可以是集中式的或分布式的,无论是本地还是远程。

此外,以下描述的各种功能可以由一个或更多个计算机程序实现或支持,每个计算机程序由计算机可读程序代码形成并体现在计算机可读介质中。术语“应用”和“程序”是指适于在合适的计算机可读程序代码中实施的一个或更多个计算机程序、软件组件、指令集、过程、函数、对象、类、实例、相关数据或其一部分。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够由计算机访问的任何类型的介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字视频光盘(DVD)或任何其他类型的存储器。“非暂时性”计算机可读介质不包括传输瞬时电或其他信号的有线、无线、光学或其他通信链路。非暂时性计算机可读介质包括能够永久存储数据的介质以及诸如可重写光盘或可擦除存储设备的能够存储数据并在之后覆盖该数据的介质。

在整个专利文件中都提供了某些词语和短语的定义,本领域的普通技术人员应当理解的是,在很多情况下(即使不是大多数情况下),这些定义也适用于如此定义的词语和短语的先前以及将来的使用。

附图说明

为了更完整地理解本公开及其优点,现在参考以下结合附图进行的描述,其中相同的附图标记表示相同的部件:

图1示出了根据本公开的实施例的VR设备的操作过程的流程图;

图2A和图2B示出了根据本公开的实施例的由VR设备提供的虚拟球形空间概念和虚拟现实内容概念的图;

图3示出了根据本公开的实施例的确定VR设备的视线方向的角度偏差的方法;

图4示出了根据本公开的实施例的用于测量VR设备的视线方向的角度偏差的流程图;

图5示出了根据本公开的实施例的VR设备的多个帧的图;

图6示出了根据本公开的实施例的VR设备的帧的移动轨迹的图;

图7A至图7C示出了根据本公开的实施例的VR设备的视线方向的角度偏差与VR设备的视场之间的关系;

图8示出了根据本公开的实施例的基于VR设备的视线方向向用户示出的对象的外观的图;

图9示出了根据本公开的实施例的解释确定VR设备中要滚动的帧数的方法的图;

图10示出了根据本公开的实施例的解释在VR设备中切换到过去帧或未来帧的概念的图;

图11示出了根据本公开的实施例的用于VR设备中的所选择的多个帧之间***加强帧的方法的图;

图12示出了根据本公开的实施例的VR设备中的缓存大小和相机相对速度之间的关系的图;

图13A和图13B示出了根据本公开的实施例的用于测量VR设备中的任意帧之间的对象的移动角度的方法;

图14示出了根据本公开的实施例的解释确定VR设备中要滚动的帧数的方法的图;

图15示出了根据本公开的实施例的提供VR设备的配置的示例的图;以及

图16示出了根据本公开的实施例的提供基站的配置的示例的图。

具体实施方式

下面讨论的图1至图16以及用于描述该专利文件中的本公开的原理的各种实施例仅是示例性的,并且不应以任何方式解释为限制本公开的范围。本领域技术人员将理解的是,可以在任何适当布置的系统或设备中实现本公开的原理。

在下文中,将参照附图详细描述实施例。在本公开的以下描述中,当确定详细描述可能使本公开的主题不清楚时,将省略在此并入的已知配置或功能的详细描述。如下所述的术语是考虑实施例中的功能来定义的,并且这些术语的含义可以根据用户或操作者的意图、惯例等而变化。因此,术语的定义应基于整个说明书的内容来确定。

尽管第一、第二等术语用于描述各个元件,但是这些元件不受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。因此,在本公开的技术范围内,将在下文中提及的第一元件可以是第二元件。

首先,参考图1,将根据实施例描述虚拟现实(VR)设备的操作过程。

图1示出根据本公开的实施例的VR设备的操作过程的流程图。

根据实施例的VR设备可以是诸如终端、智能电话机、车辆、眼镜、护目镜或戴在用户的头上的头戴式显示器(HMD)的电子设备。在下文中,假定VR设备是HMD。

VR设备包括姿势传感器。VR设备可以通过使用姿势传感器来检测VR设备的姿势(position)变化。在操作100,VR设备的姿势传感器测量关于VR设备的移动的信息。用户可以在使用VR设备时移动。安装在用户上的VR设备可以跟随用户的移动。例如,VR设备可以被安装在用户的头部上,在这种情况下,VR设备可以跟随用户的头部的移动,诸如转动或倾斜用户的头部。即,当VR设备是HMD时,可以假设用户的头部的移动和VR设备的移动是相同的。使用VR设备的用户的移动可以包括两种类型的移动,即,平移和旋转。平移可以表示为xyz坐标系上的x坐标分量、y坐标分量或z坐标分量,其中在xyz坐标系中旋转可以表示为绕着x-轴旋转的俯仰分量、绕y-轴旋转的滚转分量以及绕z-轴旋转的偏航分量。姿势传感器可以在用户使用VR设备时测量VR设备的六个分量的值。即,由姿势传感器测量的VR设备的移动信息可以包括关于六个分量的信息。

由姿势传感器提供给VR设备的VR设备的移动信息可以表示为偏差。偏差是指基于参考位置表示的VR设备的移动程度。特别地,相对于旋转移动的偏差可以被测量为角度偏差,该角度偏差指示作为角度的绕参考轴的旋转程度。角度偏差可以包括相对于参考轴的垂直移动的角度或水平移动的角度。当重力方向是参考轴并且参考轴对应于z-轴时,相对于参考轴的垂直移动可以表示为绕x-轴旋转的俯仰值和/或绕y-轴旋转的滚转值。此外,相对于参考轴的水平移动可以表示为绕z-轴旋转的偏航值。

姿势传感器可以包括测量加速度的加速度传感器(加速度计)、测量角速度的陀螺仪和作为地磁传感器的磁力计中的一个或更多个。作为移动信息测量的示例,可以经由加速度计或陀螺仪测量滚转值或俯仰值,可以经由陀螺仪或磁力计测量偏航值。然而,这是获得VR设备的移动信息的方法的示例,姿势传感器的类型或测量方法不限于此,只要一方法能够测量VR的移动即可。

VR设备可以再现多个帧。一帧可以包括至少一个360度(°)图像。一帧可以包括与一个360度图像对应的至少一条拍摄时间信息。拍摄时间信息可以包括时间戳信息。此外,一帧还可以包括关于根据位置或时间改变的听觉、嗅觉或触觉的信息,以及根据位置或时间改变的视觉图像。

360度图像可以是围绕用于捕获图像的相机的360度场景的图像。或者,360度图像可以是通过对沿多个方向捕获的图像进行合并而获得的图像,使得用于捕获图像的相机周围的场景被定向为类似于360度场景。另外,360度图像可以是通过相机实际捕获的图像,或者可以是与通过相机实际捕获的图像类似地形成的计算机图形图像。用于捕获360度图像的相机可以被包括在VR设备中,也可以不包括在VR设备中。即,VR设备不一定包括用于捕获360度图像的相机。

图2A和图2B示出了根据本公开的实施例的由VR设备提供的虚拟球形空间概念和VR内容概念的图。

帧中包括的360度图像可以是在相机能够捕获图像的距相机半径范围内以360度拍摄的场景的图像。即,360度图像可以是虚拟球形空间的内部表面的图像。图2A是示出了根据实施例的由VR设备提供的虚拟球形空间概念的图。参考图2A,当用户1通过VR设备1000观看360度图像时,用户1可能感觉好像他/她在虚拟球形空间sp的中心并且看着虚拟球形空间sp的内部。

在相机移动时可能会捕获360度图像。或者,360度图像可以是与在相机移动时捕获的图像类似地形成的计算机图形图像。当在图像捕获期间沿着相机的移动产生的轨迹被称为相机移动轨迹时,相机可以在沿着相机移动轨迹移动时,以任意时间间隔捕获相机的视角内的场景的图像。以任意时间间隔拍摄的每个场景可用于显示一个360度图像。

图2B是示出了根据实施例的由VR设备提供的VR内容概念的图。参考图2A和图2B,根据任意时间间隔捕获并被包括在VR设备1000中的多个360度图像,或多个虚拟球面空间sp、sp1、sp2、......和spN(其中多个360度图像被提供给用户1)被收集以构成VR内容vc。此外,观看VR内容vc的用户1可以观看根据虚拟球面空间sp、sp1、sp2、…...和spN内的相机移动轨迹dc而改变的场景。

多个360度图像可以包括在旅行、运动、驾驶和从事极限运动等过程中捕获的图像。多个360度图像可以包括将被提供给用户的各种风景、物体、生物、场所、建筑物等的图像,并且可以包括沿各个方向拍摄的物体的图像。例如,多个360度图像可以包括在物体周围盘旋时以任意时间间隔沿多个方向拍摄的物体的图像。

拍摄时间信息可以包括关于多个360度图像中的每一个图像的被捕获的时间的信息。拍摄时间信息可以包括关于拍摄多个360度图像中的每一个图像的特定时间的信息,或者可以包括关于多个360度图像的前后关系的信息。因此,当针对每个360度图像以与拍摄时间信息相对应的顺序再现多个360度图像时,用户可以基于相机移动轨迹来观看场景,该场景是在相机处于移动时拍摄的。

VR设备可以向用户提供VR内容。VR内容可以包括多个帧。VR内容可以是按时间顺序再现的多个帧,或者可以是被选择性地布置和再现的多个帧。由于用户在观看VR内容的同时观看已经拍摄的图像,因此用户可能会体验到处于非真实的特定环境或情况。取决于VR内容与现实世界的相似程度,VR内容是否能够为用户提供沉浸感和逼真的体验可能会有所不同。在下文中,将详细描述由VR设备1000选择要再现的帧以配置VR内容的过程。

返回参考图1,在操作200,VR设备基于由姿势传感器测量的移动信息来确定视线方向的角度偏差β。这将参考图3进行描述。

图3示出了根据本公开的实施例的用于确定VR设备的视线方向的角度偏差的方法。

参考图3,视线方向的角度偏差β表示VR设备1000的视线方向dv与帧移动轨迹dm之间的差。

VR设备1000的视线方向dv可以是穿过VR设备1000中包括的显示屏的中心并且垂直于显示屏表面的直线的方向。视线方向dv可以是穿过连接佩戴有VR设备1000的用户1的两只眼睛的直线段的中心的方向。可以基于通过VR设备1000中包括的姿势传感器所测量的移动信息来确定VR设备1000的视线方向dv。可以假定VR设备1000的视线方向dv是佩戴VR设备1000的用户1的视线方向。

帧移动轨迹dm可以指相机移动轨迹(沿着该相机移动轨迹捕获包括在多个帧中的多个360度图像),或者可以指从多个帧估计的移动轨迹。即,当以与拍摄时间信息相对应的顺序再现VR设备1000中包括的多个360度图像时,用户1可以基于相机移动轨迹来观看场景,其中相机移动轨迹可以是帧移动轨迹dm。相机移动的坐标系和VR设备1000移动的坐标系可以被假定为相同的坐标系。

在实施例中,已经以VR设备1000的视线方向dv的定义和帧移动轨迹dm的定义为例进行了描述。然而,这可以根据实施例的VR设备的设计而改变。

在下文中,将详细描述通过VR设备确定帧移动轨迹dm以确定视线方向的角度偏差β的过程。

图4示出了根据本公开的实施例的用于测量VR设备的视线方向的角度偏差的流程图。

图5示出了根据本公开的实施例的VR设备的多个帧的图。

参考图4和图5,在操作210,VR设备可以从包括在VR设备中的多个帧的多个360度图像中的每一个中提取关键特征,并且可以在操作220中通过使用所提取的关键特征来确定帧之间的变换矩阵。

关键特征可能表示在多个帧(帧1、帧2和帧3)中包括的多个360度图像(360图像1、360图像2和360图像3)中的每个图像的特征(g、h、i、j、g′、h′、i′、j′、g″、h″、i″或j″),其中特征不随图像变形或旋转而改变。例如,关键特征可以包括图像中包括的对象的边缘、字符等。VR设备可以针对同一对象2从包括沿不同方向观看该对象2的多个360度图像(360图像1、360图像2和360图像3)提取多个关键特征(g、h、i、j、g′、h′、i′、j′、g″、h″、i″或j″)中的每一个关键特征,然后可以通过比较多个360度图像之间的多个关键特征来识别对象2。

将图像数据转换成不根据比例改变的坐标的方法可以用于提取关键特征。首先,可以计算被表示为L(x,y,σ)的函数的360度图像的尺度空间。在此,σ可以表示比例参数。可以通过360度图像I(x,y)和可变比例高斯G(x,y,σ)的卷积运算(数学式1)来计算L(x,y,σ)。

[数学式1]

L(x,y,σ)=G(x,y,σ)*I(x,y)

这里,可变比例高斯G(x,y,σ)可以满足数学式2。

[数学式2]

Figure BDA0002310083960000091

可以基于两个相邻尺度空间之间的差异来计算高斯差函数(数学式3),其中比例变量分别为σ、kσ。

[数学式3]

此外,高斯差函数可以提供高斯比例归一化的高斯拉普拉斯算子

Figure BDA0002310083960000102

的近似值。根据实验结果,可以使用

Figure BDA0002310083960000103

的最大值和最小值来获取相对于其他函数而言最稳定的图像关键特征。

D和

Figure BDA0002310083960000104

之间的关系可以通过数学式4到数学式7来获得,其中包括一个热扩散式(数学式4)。

[数学式4]

Figure BDA0002310083960000105

[数学式5]

Figure BDA0002310083960000106

[数学式6]

Figure BDA0002310083960000107

[数学式7]

D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))*I(x,y)

为了利用高斯差函数(以下称为高斯差函数图像)确定图像中的局部极大值和局部极小值,可以对高斯差函数图像中任意选择的采样点及其周围区域进行比较。具体地,可以在围绕采样点的三行三列的部分中,将采样点与和该采样点相邻的八个像素进行比较。此外,在相邻的两个高斯差函数图像的每一个图像中,可以将三行三列的部分中的九个像素与采样点进行比较。即,可以将采样点与高斯差函数图像中的相邻像素进行比较,并且可以将该采样点与相邻的高斯差函数图像中的相应像素进行比较。在上述情况下,可以将采样点与26个像素进行比较。仅当采样点大于全部26个像素或小于全部26个像素时,才可以选择采样点。所选择的采样点可以是关键点的候选者。关键点可以指示关键特征在图像上的位置。

为了去除由于与对比度太低或指示边缘相对应的值而不适用于指示图像特性的值,并且为了从关键点候选者中选择能够可靠地表示该图像的特性的关键点,可以针对尺度空间,将高斯差函数D(x,y,σ)的泰勒级数扩展到第二项(数学式8)。

[数学式8]

Figure BDA0002310083960000111

这里,x=(x,y,σ)T.

可以基于确定数学式8相对于x的导数为0来获得局部阈值(局部最大值或局部最小值)

Figure BDA0002310083960000112

[数学式9]

Figure BDA0002310083960000113

当数学式9代入数学式8中,可以计算出

Figure BDA0002310083960000114

处的函数值(数学式10)。

[数学式10]

Figure BDA0002310083960000115

数学式10的值可用于从所选择的关键点候选者组中消除不稳定点。例如,当

Figure BDA0002310083960000116

值等于或小于预定值时,可以从关键点候选者组中排除对应的点。

在所选择的关键点周围选择16行16列像素后,可以对其内部的图像进行高斯模糊处理,然后可以确定每个点的梯度幅值m(x,y)和方向8(x,y)(数学式11和数学式12)。这里,L可以是高斯模糊图像的数据值,并且可以使用L(x,y)之间的差来确定梯度幅值(数学式11)和方向(数学式12)。

[数学式11]

Figure BDA0002310083960000117

[数学式12]

θ(x,y)=tan-1((L(x,y+1)-L(x,y-1))/(L(x+1,y)-L(x-1,y)))

可以使用直方图来表示16行16列的像素的梯度幅值。直方图的最高点可以是与直方图的最高点相对应的关键点的方向。另外,例如,高度为直方图的最高点高度大约80%或更高的点也可以是关键点的方向。因此,在关键点具有多个相似大小的最高点的情况下,可以为一个关键点确定多个方向。

基于通过确定关键点及其周围部分的梯度幅值和方向而获得的值,可以确定指示关键点周围形状的特征的关键点描述符。可以将确定了各个点的梯度幅值和方向的16行16列像素乘以高斯加权窗口函数。然后,例如,可以通过4行4列的关键点描述符来表示16行16列的像素。16行16列的各个像素的分量可以概括为4行4列的关键点描述符。4行4列的关键点描述符的每个块可以包括指示表示360度的八个方向的八个箭头。每个箭头可以是围绕相应方向的梯度之和。因此,关键点描述符的特征向量可以包括128个元素,即,16个(4X4)块中的每个块的八个箭头。图像的所确定的多个关键点描述符可以被包括在图像的关键特征中,该关键特征不随图像的旋转变换而改变。

已经描述了提取图像的关键特征的过程作为示例,但是提取关键特征的过程不限于此。可以使用加速的鲁棒特征(SURF)算法或定向的FAST和旋转的BRIEF(ORB)算法来提取关键特征。

在操作220,VR设备可以通过使用所提取的关键特征来确定帧之间的变换矩阵。返回参考图5,以第一帧(帧1)和第二帧(帧2)为例,其中第一帧包括第一360度图像(360图像1),第二帧包括第二360度图像(360图像2)并且在时间上比第一帧(帧1)晚,可以对第一360度图像(360图像1)的关键特征(g、h、i、j......)和第二360度图像(360图像2)的关键特征(g′、h′、i′、j′…...)进行比较。第一帧(帧1)的第一360度图像(360图像1)的关键特征(g、h、i、j......)和第二帧(帧2)的第二360度图像(360图像2)的关键特征(g′、h′、i′、j′…...)可以彼此匹配。这里,对应的关键特征可以是具有相同值的关键特征或具有相似值的关键特征。由于关键特征是即使图像变换或旋转也不会改变的特征,因此即使相机在捕获第一帧(帧1)和第二帧(帧2)的图像时移动,该关键特征也可能不会变化或可能几乎没有变化。因此,当找到在第一帧(帧1)和第二帧(帧2)之间彼此对应的关键特征时,可以确定关键特征的关键点已经移动了多少。在实际情况中,相机在捕获第一帧(帧1)和第二帧(帧2)的图像时已经移动了。但是,由于从用户的角度来看对象2似乎正在移动,因此似乎关键特征已在第一帧(帧1)和第二帧(帧2)上移动了。可以使用在第一帧(帧1)和第二帧(帧2)中彼此匹配的关键特征对(g-g′、h-h′、i-i′、j-j′......),确定两个帧之间的变换矩阵M12(数学式13)。

[数学式13]

Figure BDA0002310083960000131

在变换矩阵M12(数学式13)中,r可以表示旋转值,t可以表示平移值。q可以代表四元数。然而,在一个实施例中,可以假设不需要四元数而设置q=[0,0,0,1]。特别地,用于旋转值的矩阵R(数学式14)可以是相对于z-轴以右手法则的方向旋转向量θ(弧度)的矩阵(数学式15)。

[数学式14]

[数学式15]

Figure BDA0002310083960000133

或者,用于旋转值的矩阵R可以是相对于x-轴以右手法则的方向旋转向量θ(弧度)的矩阵(数学式16),可以是相对于y-轴以右手法则的方向旋转向量θ(弧度)的矩阵(数学式17),并且可以是用于尺度变换的矩阵(数学式18)。

[数学式16]

Figure BDA0002310083960000134

[数学式17]

Figure BDA0002310083960000141

[数学式18]

Figure BDA0002310083960000142

此外,用于旋转值的矩阵R可以是矩阵AXY(数学式19),该矩阵AXY相对于x-轴以右手法则的方向旋转向量

Figure BDA0002310083960000143

(弧度),并相对于y-轴旋转向量θ(弧度)。用于旋转值的矩阵R可以是矩阵AXZ(数学式20),该矩阵AXZ相对于z-轴以右手法则的方向旋转向量

Figure BDA0002310083960000144

(弧度),并且相对于z-轴旋转向量ψ(弧度)。用于旋转值的矩阵R可以是矩阵AYZ(数学式21),该矩阵AYZ相对于y-轴以右手法则的方向旋转向量θ(弧度),并且相对于z-轴旋转向量ψ(弧度)。用于旋转值的矩阵R可以是矩阵A(数学式22),该矩阵A相对于x-轴以右手法则的方向旋转向量

Figure BDA0002310083960000145

(弧度),相对于y-轴以右手规则的方向旋转向量θ(弧度),并相对于z-轴旋转向量ψ(弧度)。

[数学式19]

[数学式20]

[数学式21]

Figure BDA0002310083960000148

[数学式22]

Figure BDA0002310083960000151

在下文中,将描述确定数学式13中所示的变换矩阵M12的方法。

首先,将描述用于确定二维的M12的变换矩阵的方法。

在彼此匹配的一对关键特征中,当第一帧的关键特征的关键点由(u,v)表示,而第二帧的关键特征的关键点由(x,y)表示时,相对于原点(0,0)以逆时针方向旋转(x,y)θ(弧度)的二维变换矩阵可以表示为数学式23。这里,tx和ty可以对应于与(x,y)的平移相关的值。

[数学式23]

Figure BDA0002310083960000152

变换是指使用旋转矩阵来旋转初始位置,并且使用平移向量来平移初始位置。当第一帧的关键特征的关键点为F1,第二帧的关键特征的关键点为F2,旋转矩阵为R,平移向量为T,包括该旋转矩阵和平移向量的变换矩阵为M时,则满足下面的数学式24。

[数学式24]

F1=RF2+T=MA

通过将1分配给对角线并将0分配给所有其他位置,可以将矩阵扩展到所需的大小。即,满足以下数学式25。

[数学式25]

Figure BDA0002310083960000153

确定二维变换矩阵M12的方法将描述如下。

仅包括二维旋转分量的变换矩阵可以表示为以下数学式26。

[数学式26]

仅包含二维平移分量的变换矩阵可以表示为以下数学式27。

[数学式27]

Figure BDA0002310083960000162

当数学式26和数学式27所示的矩阵相乘时,可以确定如数学式28所示的包括旋转分量和平移分量此二者的二维变换矩阵。

[数学式28]

可使用数学式23和数学式24获得数学式29中所示的结果。

[数学式29]

Figure BDA0002310083960000164

数学式29可以如数学式30表示。

[数学式30]

Figure BDA0002310083960000165

在数学式30中,可以类似于下面的数学式31表示二维变换矩阵。

[数学式31]

Figure BDA0002310083960000171

接下来,将描述用于确定三维变换矩阵M12的方法。

仅包含三维旋转分量的变换矩阵可以表示为以下数学式32。

[数学式32]

仅包括三维平移分量的变换矩阵可以表示为以下数学式33。

[数学式33]

Figure BDA0002310083960000173

当将数学式32和33中所示的矩阵相乘时,可以确定数学式34中所示的包括旋转分量和平移分量此二者的三维变换矩阵。

[数学式34]

Figure BDA0002310083960000174

可使用数学式23和数学式24获得数学式35中所示的结果。

[数学式35]

Figure BDA0002310083960000175

这里,(u,v,w)是第一帧的关键特征的关键点,(y,y,z)是第二帧的关键特征的关键点,tx、ty和tz是与(y,y,z)的平移有关的值。

数学式35可以表示为以下数学式36。

[数学式36]

Figure BDA0002310083960000181

在数学式36中,三维变换矩阵M12可以是数学式37。

[数学式37]

Figure BDA0002310083960000182

在通过使用算法将第一帧的关键特征的关键点(u,v)和第二帧的关键特征的关键点(x,y)转换为三维坐标(u,v,w)和(y,y,z)的步骤中,可以使用深度图。

尽管上面已通过各种示例描述了通过使用关键特征确定变换矩阵M12(数学式13)的过程,但是方法可以不限于此,只要该方法能够表达帧之间的变换即可。

VR设备可以基于所确定的变换矩阵M12(数学式13)来确定多个帧中的每个帧的方向向量,并且可以通过连接多个方向向量来确定帧移动轨迹dm。

当第一帧的初始方向的方向向量是第一方向向量V1,第二帧的方向向量是第二方向向量V2时,VR设备可以通过使用变换矩阵M12(数学式13)确定第二方向向量V2(数学式39)。第一方向向量V1可以包括作为x分量的V1x、作为y分量的V1y和作为z分量的V1z。第一方向向量(V1)可以是帧移动轨迹dm的起点,并且可以是任意参考点。第一方向向量V1可以被设置为V1x=0、V1y=0和V1z=0,并且可以被设置为任何点。可以通过将第一方向向量V1与变换矩阵M12相乘来确定第二方向向量V2(数学式39)。

[数学式38]

[数学式39]

Figure BDA0002310083960000192

图6示出了根据本公开的实施例的VR设备的帧的移动轨迹的图。

参考图6,当确定第一方向向量V1和第二方向向量V2时,可以确定帧移动轨迹dm。可以通过连接第一方向向量V1的终点和第二方向向量V2的起点来确定帧移动轨迹dm。可以通过顺序地连接包括第一帧和第二帧的多个帧中的各个帧的方向向量来确定帧移动轨迹dm。

返回参考图3和图4,在操作240,VR设备可以将VR设备的视线方向dv与帧移动轨迹dm要滚动的帧数之间的角差确定为视线方向的角度偏差β。如上所述,VR设备的视线方向dv可以被包括在由VR设备中包括的姿势传感器测量的移动信息中。

返回参考图1并参考图7A至图7C,在操作300,VR设备将先前确定的视线方向的角度偏差β与VR设备的视场(FOV)α的半值(即,α/2)进行比较。

图7A至图7C示出了根据本公开的实施例的VR设备的视线方向的角度偏差与VR设备的视场之间的关系。

VR设备1000的视场α可以是VR设备1000提供的VR内容的双目视场,其中帧移动轨迹dm的方向假定为前向,并且是参考方向。VR设备1000的视场α可以依据VR设备1000的光学设计或VR设备1000中包括的VR内容的类型而变化。

参考图7A,当用户1向前看时,视线方向的角度偏差β可以是0。参考图7B,当用户1执行诸如在不向前看的情况下转动或倾斜他/她的头部的动作时,视线方向的角度偏差β可以具有除零以外的值。在图7B中,VR设备1000的视场的半值(α/2)大于视线方向的角度偏差β(α/2>β)。在图7A和图7B的情况下,在没有开启视觉对象表示的调整模式的情况下,VR设备1000可以按时间顺序向用户1提供多个帧。在图7C中,视线方向的角度偏差β大于VR设备1000的视场的半值(α/2)(α/2<=β)。

将参考图8描述图7C的示例。

图8示出了根据本公开的实施例的基于VR设备的视线方向来向用户示出的对象的外观的图。

参考图8,用户1可以在佩戴VR设备1000时行进,或者可以在佩戴VR设备1000时移动(例如,用户1可以转动或移动其头部)。当用户1在行进过程中转动头并继续注视对象2时,基于帧移动轨迹dm,VR设备的视线方向可以是连续改变的dv1、dv2和dv3。在这种情况下,视线方向的角度偏差β可能变得大于VR设备1000的视场的一半。

返回参考图1、图7A至图7C以及图8,在操作400,视觉对象表示的调整模式可以从用户1的头部移动并且视线方向的角度偏差β大于VR设备1000的视场的半值(α/2)的时刻开始。视觉对象表示的调整模式可以表示如下模式:当VR设备1000的视线方向dv偏离帧移动轨迹dm超过任意标准时,选择适合于该视线方向dv的帧并将其提供给用户1,以便提供反映相应视线方向dv的VR内容。任意标准可以指示用于确定视线方向的角度偏差β是否大于VR设备1000的视场的半值(α/2)的标准。如果VR设备1000的视线方向移动而没有相对于帧移动轨迹dm的任意标准的偏差,可以按照时间顺序向用户1提供多个帧。另一方面,如图8所示,当用户1在行进时转动他/她的头并继续注视对象2时使得VR设备的视线方向dv1、dv2或dv3超过任意标准地偏离帧移动轨迹dm时,可以向用户1提供反映视线方向dv1、dv2或dv3的至少一帧。在这种情况下,从VR设备1000的第一视线方向dv1观看的对象2的第一外观2-1、从第二视线方向dv2观看的对象2的第二外观2-2和从第三视线方向dv3观看的第三外观2-3会彼此不同。因此,可以向用户1提供包括对象2的外观的帧,其对应于视线方向dv1、dv2或dv3。当向用户1提供反映VR设备1000的视线方向的帧时,可以增加用户1对于VR内容的沉浸度。

在下文中,将详细描述用于选择反映VR设备的视线方向的帧的方法。

当用户1的头部的移动值是HL时,用于开启视觉对象表示的调整模式的条件的源代码可以为如下。

if(β>=a/2)&HL!=0than Start_Frame_detected();

返回参考图1、图7A至图7C,当VR设备1000开启视觉对象表示的调整模式时,VR设备1000可以在操作400确定第一选择帧。即,当视线方向的角度偏差β大于VR设备1000的视场的半值(α/2)时,可以将用户1观看的帧确定为第一选择帧。第一选择帧可以由VR设备1000中包括的控制器确定。

当确定了第一选择帧时,在操作500,VR设备1000可以计算要滚动的帧数以确定第二选择帧。这里,要滚动的帧数可以表示按照时间要被跳过的帧数。确定第二选择帧的计算可以由控制器执行。

图9示出用于解释根据本公开的实施例的确定在VR设备中要滚动的帧数的方法的图。

参考图9,当两个随机帧被表示为诸如分别为Va=(Vax,Vay,Vaz)和Vb=(Vbx,Vby,Vbz)的方向向量时,可以使用数学式40计算两个随机帧之间的距离VL。两个随机帧之间的距离VL可以被估计为已经针对两个随机帧捕获了图像的相机的实际移动距离。这里,Va可以是第一选择帧。

[数学式40]

此外,当用户在两个随机帧中基于其头部的位置分别为H1(H1x,H1y,H1z)和H2(H2x,H2y,H2z)时,可以使用数学式41来计算两个随机帧中的用户头部的移动距离HL。这里,用户头部的移动距离HL可以与VR设备的移动距离相同。

[数学式41]

Figure BDA0002310083960000212

可以获得两帧之间用户头部的移动距离HL投影在距离VL上的距离H`L(数学式42)。如数学式42所示,可以使用用户头部的移动距离HL和视线方向的角度偏差ω来确定距离H`L。并且,可以通过对两帧之间的投影距离H`L和距离VL之比应用取整函数来确定帧计数C值(数学式43)。这里,帧计数C值可以指示要在所选择的第一选择帧中滚动以确定第二选择帧的帧数。确定了帧计数C值后,可以通过在第一选择帧中滚动与帧计数C的数量一样多的帧来确定第二选择帧。

[数学式42]

H`L=HL·cos(ω)

[数学式43]

Figure BDA0002310083960000221

尽管已经以示例描述了用于确定第二选择帧的方法,但是用于确定第二选择帧的方法不限于此。例如,可以在两个维度上进行计算,并且当两个随机帧分别表示为诸如Va=(Vax,Vay)和Vb=(Vbx,Vby)的方向向量时,则两个随机帧之间的距离VL可以使用数学式44来计算。这里,Va可以是第一选择帧。

[数学式44]

Figure BDA0002310083960000222

此外,当在两个随机帧中用户基于他/她的头部位置分别是H1(H1x,H1y)和H2(H2x,H2y)时,在两个随机帧中用户头部的移动距离HL可以使用数学式45计算。

[数学式45]

Figure BDA0002310083960000223

此外,如上所述,可以获得两帧之间用户头部的移动距离HL投影在距离VL上的距离H`L(数学式42),并且可以通过对两帧之间的投影距离H′L和距离VL之比应用取整函数来确定帧计数C值(数学式43)。当确定了帧计数C值时,可以通过第一选择帧中滚动与帧计数C的数量一样多的帧来确定第二选择帧。

返回参考图1,在操作600,当确定了反映设备的视线方向的第二选择帧时,VR设备将已经提供给用户的第一选择帧切换到第二选择帧。即,VR设备可以根据用户头部的移动向用户提供反映VR设备的视线方向的变化的帧。以图8为例,当基于用户1的头部观察到用户1的移动时,可以根据用户1的移动将设备的视线方向从第一视线方向dv1改变为第二视线方向dv2。在这种情况下,根据VR设备的视线方向的改变,由VR设备提供的帧可以从包括第一外观2-1的图像的第一选择帧切换到包括第二外观2-2的图像的第二选择帧。此外,类似于确定第二选择帧的过程,可以确定包括第三外观2-3的图像的第三选择帧。即,VR设备提供反映视线方向的帧,使得用户可以在多个视点即各种视线方向上观察对象2的外观。因此,可以增加用户对于VR内容的沉浸度。

用户可以在使用VR设备时行进,并且可以在左右移动他/她的头部时找到位于VR内容内的移动轨迹上的对象。此外,用户可以通过在多个方向上移动他/她的头部(诸如倾斜他/她的头部或向右或向左移动他/她的头部)来观察所发现的对象。当用户在多个方向上移动他/她的头部时,VR内容向用户提供与移动的视点相对应的对象图像,从而用户可以沿多个方向观察对象。用户也可以在移动时观察对象的后视图。因此,VR设备可以提供更逼真的内容,并且可以引起使得用户能够控制VR内容的新的关注度,从而用户可以像在现实世界中那样主观地观察对象。即使VR设备的视线方向不在用户的视角之外,VR设备也提供与视线方向相对应的VR内容,从而可以增大由VR设备提供的视场FOV。

图10示出了根据本公开的实施例的解释在VR设备中切换到过去帧或未来帧的概念的图。图10示出了将帧表示为可以向用户1提供的虚拟球形空间sp的示例。

VR设备识别用户头部的移动并提供相应的帧。因此,如图10所示,当用户1向后倾斜他/她的头时,VR设备可以向用户1提供过去帧。过去帧可以指的是相对于当前提供给用户1的当前帧,在与当用户1向后倾斜他/她的头部时所产生的移动距离相对应的时间一样长的时间之前的时间点(第二时间点)所提供的帧。

此外,如图10所示,当用户1向前倾斜他/她的头部时,VR设备可以向用户1提供未来帧。未来帧可以指的是相对于当前帧,在与当用户1向前倾斜他/她的头部时所产生的移动距离对应的时间一样长的时间之后的时间点(第三时间点)的帧。因此,用户1可以通过倾斜他/她的头部来看到对象的过去图像或对象的一些第二未来图像。这种功能使VR设备能向用户提供具有增加的自由(DOF)度的虚拟现实内容。

图11示出了根据本公开的实施例的用于在VR设备中的所选择的帧之间***加强帧的方法的图。

VR设备可以确定第一选择帧cf1和第二选择帧cf2,然后可以在第一选择帧cf1和第二选择帧cf2之间***第一加强帧sf1。因此,VR设备可以在第一选择帧cf1和第二选择帧cf2之间提供自然及流畅的切换。该VR设备可通过使用下列中的一个或更多项来形成加强帧:最近邻插值、双线性算法、双三次算法、Sinc-重采样、兰克泽斯重新采样(Lanczosresampling)、框取样、纹理映射(mipmap)、傅立叶变换方法、边缘定向内插(EDI)以及向量化。然而,帧之间的帧内插的方法不限于此。另一方面,类似于用于在第一选择帧cf1和第二选择帧cf2之间***第一加强帧sf1的方法,VR设备可以确定第三选择帧cf3,然后可以在第二选择帧cf2和第三选择帧cf3之间***第二加强帧sf2。

图12示出了根据本公开的实施例的示出VR设备中的缓存大小和相机相对速度之间的关系的图。

具有已确定的多个选择帧的VR设备可以确定视频缓存大小,以执行在线流。缓存可以在VR设备上(即,在客户端设备中)执行,以实时进行计算。如图12所示,可以针对相机所拍摄的对象根据相对相机速度来调整相机捕捉VR设备的多个360度的图像的视频缓存大小。这里,相对相机速度可以指对象在多个帧中移动的速度。参考图12的示例,当相对相机速度是10km/h时,视频缓存大小可以是100Kb,当相对相机速度是1Km/h时,视频缓存大小可以是1Mb。即,当相机停止或缓慢移动时,可以将视频缓存大小确定为较大,而当相机快速移动时,可以将视频缓存大小确定为较小。相对相机速度和视频缓存大小可能为负相关。例如,当在行驶中的车辆中使用相机捕获视频时,相机和物体之间的相对速度可以为20km/h,其中视频缓存大小为50kb。此外,例如,当使用定格相机捕获视频时,相机与物体之间的相对速度可以为2km/h,其中视频缓存大小为800kb。

图13A和图13B示出了根据本公开的实施例的测量VR设备中任何帧之间的对象的移动角度的方法。

图14示出了根据本公开的实施例的解释确定VR设备中要滚动的帧数的方法的图。

参考图13A和图13B,VR设备1000可以在开启视觉对象表示的调整模式时确定第一选择帧。当确定第一选择帧时,VR设备1000可以通过计算要滚动的帧数来确定第二选择帧。此外,当两个随机帧分别被称为第一随机帧和第二随机帧时,VR设备1000可以通过对第一随机帧中特定对象的位置ps1与第二随机帧中特定对象的位置ps2进行比较来获得旋转角度Δγ(数学式46),其中该特定对象是用户1将要观察的对象。在此,第一随机帧可以是第一选择帧。

[数学式46]

Δγ=γ21

参考图14,当在两个随机帧中用户1的位置基于他/她的头部分别为H1(H1x,H1y,H1z)和H2(H2x,H2y,H2z)时,则可以使用数学式41计算用户1的头部的移动距离HL

另外,可以确定两个随机帧的深度图。可以使用立体重构方法和同时定位和地图构建(SLAM)方法中的一种或更多种方法来确定深度图。然而,用于获得深度图的方法不限于此。可以使用深度图来获取从用户1到对象2的距离M。这里,从用户1到对象2的距离M可以被定义为从连接用户1的双眼的直线段的中心到第一选择帧的对象2的像素的距离的平均值。

可以使用用户1的头部的移动距离HL和从用户1到对象2的距离M确定用户1的头部的移动角度K(数学式47),并且可以通过在两个帧中对用户1的头部的移动角度K与对象的旋转角度Δγ之比应用取整函数来确定帧计数C值(数学式48)。当确定帧计数C值时,可以通过滚动与第一选择帧中的帧计数C的数目一样多的帧来确定第二选择帧。

[数学式47]

Figure BDA0002310083960000261

[数学式48]

Figure BDA0002310083960000262

当确定反映用户头部的移动的第二选择帧时,VR设备可以将已经提供给用户的第一选择帧切换到第二选择帧。

图15示出提供根据本公开的实施例的VR设备1000的配置的示例的图。

VR设备1000可以包括:姿势传感器1100测量VR设备1000的移动信息;存储器1200,该存储器中存储多个帧和多个帧中包括的至少一条信息;控制器1300,该控制器控制VR设备1000的所有操作;显示器1400,该显示器包括显示屏,在该显示屏上显示向用户提供的VR内容;收发器1500,该收发器向基站发送信号并从基站接收信号。可以理解的是,在控制器1300的控制下执行由实施例中描述的VR设备1000执行的所有技术和方法。然而,姿势传感器1100、存储器1200、控制器1300、显示器1400和收发器1500不必实现为单独的设备,并且可以肯定地以诸如单个芯片的形式实现为单个元件单元。此外,可以不必包括姿势传感器1100、存储器1200、控制器1300、显示器1400和收发器1500的全部,并且可以省略其中的一些。

图16示出了根据本公开的实施例的提供基站的配置的示例的图。

基站2000可以包括:收发器2200,该收发器向邻近小区基站或VR设备发送信号或从相邻小区基站或VR设备接收信号;以及控制器2100,该控制器控制基站2000的所有操作。在实施例中描述的由基站执行的所有技术和方法都是在控制器2100的控制下执行的。然而,控制器2100和收发器2200不一定实现为单独的设备,并且可以肯定地以诸如单个芯片的形式实现为单个元件单元。

应当注意的是,图1至图16中示出的方法图示、系统配置、设备配置等并非旨在限制本公开的范围。即,不应当解释为图1至图16中描述的所有配置或操作都应被理解为是实施例的必要元件,并且可以在不违反本公开的要旨的范围内实施仅包括一些元件的实施例。

可以通过向通信系统的基站或VR设备中的任何单元提供存储相应的程序代码的存储设备来实现上述操作。即,VR设备的基站或控制器可以通过以处理器或中央处理单元(CPU)的方式读取并执行在存储设备中存储的程序代码来执行上述操作。

本说明书中描述的基站或VR设备的各个元件单元、模块等可以使用硬件电路(例如,基于互补金属氧化物半导体的逻辑电路)、固件、软件和/或嵌入在机器可读介质中的硬件与固件和/或软件的组合来操作。作为示例,可以使用诸如晶体管、逻辑门和专用集成电路之类的电路来执行各种电配置和方法。

尽管已经参考本公开的某些实施例示出和描述了本公开,但是本领域技术人员将理解的是,在不脱离本公开的范围的情况下,可以在形式和细节上进行各种改变。因此,本公开的范围不应被限定为限于上述实施例,而应由所附权利要求及其等同形式所限定。

33页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于视频编码的设备和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类