CN113474825A - 用于在移动平台上提供沉浸式扩展现实体验的系统和方法 - Google Patents
用于在移动平台上提供沉浸式扩展现实体验的系统和方法 Download PDFInfo
- Publication number
- CN113474825A CN113474825A CN202080016574.1A CN202080016574A CN113474825A CN 113474825 A CN113474825 A CN 113474825A CN 202080016574 A CN202080016574 A CN 202080016574A CN 113474825 A CN113474825 A CN 113474825A
- Authority
- CN
- China
- Prior art keywords
- mobile platform
- user
- map
- features
- sensor
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/1613—Constructional details or arrangements for portable computers
- G06F1/163—Wearable computers, e.g. on a belt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/0304—Detection arrangements using opto-electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0138—Head-up displays characterised by optical features comprising image capture systems, e.g. camera
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0141—Head-up displays characterised by optical features characterised by the informative content of the display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Radar, Positioning & Navigation (AREA)
- Computer Hardware Design (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Optics & Photonics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Automation & Control Theory (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Computer Graphics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
提供了用于移动平台上的沉浸式扩展现实体验的系统、方法和计算机可读介质。在一些示例中,一种方法可以包括:从移动平台上的一个或多个传感器和/或与移动平台中的用户相关联的设备获得传感器测量,传感器测量包括与移动平台和用户相关联的运动参数;识别移动平台的特征和移动平台外部的环境的特征;使用传感器测量来跟踪移动平台相对于移动平台外部的环境的第一姿势;使用传感器测量来跟踪用户相对于移动平台的特征中的至少一个特征的第二姿势;以及基于第一姿势和第二姿势来跟踪用户相对于移动平台外部的环境的特征中的至少一个特征的第三姿势。
Description
依据35U.S.C.§119要求优先权
本专利申请要求享受于2019年2月25日递交的名称为“SYSTEMS AND METHODS FORPROVIDING IMMERSIVE EXTENDED REALITY EXPERIENCES ON MOVING PLATFORMS”的非临时申请No.16/284,766的优先权,上述申请被转让给本申请的受让人并且通过引用的方式明确地地并入本文中。
技术领域
概括地说,本公开内容涉及用于在移动平台上提供扩展现实体验的技术和系统。
背景技术
扩展现实技术可以将来自物理世界的真实环境与虚拟环境或内容组合,以向用户提供扩展现实体验。扩展现实体验允许用户与利用虚拟内容增强(enhance)或增强(augment)的真实或物理环境进行交互,反之亦然。最近,扩展现实技术已被实现以在广泛的环境(诸如医疗保健、零售、教育、社交媒体、娱乐等)中以增强用户体验。
术语扩展现实(XR)可以包括增强现实(AR)、虚拟现实(VR)、混合现实(MR)等。这些XR形式中的每一种都允许用户体验沉浸式虚拟环境或内容或与之交互。为了提供真实的XR体验,XR技术通常旨在将虚拟内容与物理世界集成。这通常涉及生成真实世界环境的地图,并且计算相对于真实世界环境的地图的特定视点或姿势,以便以令人信服的方式将虚拟内容锚定到真实世界环境。视点或姿势信息可以用于将虚拟内容与用户感知的运动和真实世界环境的时空状态进行匹配。
发明内容
在一些示例中,描述了用于在移动平台上提供沉浸式扩展现实体验的系统、方法和计算机可读介质。扩展现实(XR)技术可以将真实或物理环境与虚拟环境(和/或虚拟内容)组合,以向用户提供扩展现实体验(例如,虚拟现实、增强现实、混合现实等)。在用户位于相对于外部环境或场景移动的移动平台(例如,车辆、电梯、火车、传送带、船舶、飞机、船只、滑板、自行车、踏板车、交通工具等)内的用例中,本文中的技术可以提供与移动平台中用户的感知运动(例如,由于惯性力)相匹配的虚拟内容。虚拟内容可以以考虑用户、移动平台和外部场景的相对运动的方式锚定在移动平台(和/或移动平台的移动地图)或外部场景(和/或外部场景的全局地图)内。为了将虚拟内容与用户的感知运动相匹配,可以针对移动平台、用户和/或外部场景跟踪诸如运动和姿势之类的特征。
然而,由于在移动平台内使用特征以及在移动平台之外可见的特征,移动平台中的特征跟踪可能导致漂移或伪影。例如,当锚定在相对于通过移动车辆的车窗可见的道路标志的对象上时,用户在车辆内的运动(例如,其可能由头部运动、姿势变化等引起)以及基于车辆的轨迹的其它特征的相对运动(例如,汽车的全局运动)可能在XR体验中产生不一致的结果(和错误)。这在移动平台高速移动的场景中尤其令人沮丧,这可能导致越来越不一致或偏离的XR体验。
为了将虚拟内容与用户的感知运动精确匹配并且限制或消除XR体验中的任何错误和不一致,本文中的技术可以跟踪移动平台内用户的姿势(例如,相对于移动平台和/或外部场景)(其可以由移动地图或局部运动地图表示)以及移动平台相对于外部场景的姿势(其可以由全局或世界地图表示)。可以在不考虑内部移动平台特征的情况下对用户相对于全局地图的姿势进行变换,以改善外部和内部XR体验。用于显示和/或渲染虚拟内容的合成或渲染引擎可以在用于用户的姿势的独立时钟查询上执行,以实现更高的精度。
为了跟踪移动平台内的特征(例如,姿势、运动动力学、环境特征、对象、视图特性等)和移动平台外的特征(例如,与外部场景相关的特征),本文中的技术可以实现各种传感器和设备(诸如惯性测量单元(IMU)、图像传感器或相机传感器、LIDAR、雷达、全球定位系统(GPS)设备等),以收集特征测量。传感器可以在移动平台、可穿戴模块(诸如HMD(头戴式显示器))和/或移动平台中的不可穿戴模块上实现。可以使用IMU来跟踪局部运动(例如,用户姿势),IMU可以计算高速率姿势信息(例如,以1khz的频率)。例如,可以经由具有一个或多个传感器(例如,IMU、相机等)的HMD(头戴式显示器)或不可穿戴模块(例如,安装在移动平台(诸如车辆的车厢)内的无源/有源深度传感系统)来跟踪局部运动。对于HMD解决方案,可以通过用户佩戴的HMD提供XR体验,并且合成引擎可以对用户相对于全局地图的姿势进行转换,全局地图可以是基于环境分类器被触发。
可以实现一个或多个传感器(例如,IMU、图像传感器、雷达、光发射器(例如,激光器)等),以测量相对于外部场景(例如,全局地图)的运动。一个或多个传感器可以测量相对于惯性参考系(例如,全局地图)的加速度。由于依赖所测量的相对于惯性参考系的加速度而同时不考虑移动平台的加速度(例如,加速参考系,在这种情况下对应于移动地图),可能导致错误和不一致,因此本文中的技术可以在移动平台上实现一个或多个额外传感器(例如,IMU、图像传感器等),以测量移动平台(例如,加速参考系或移动地图)相对于全局地图(例如,惯性参考系)的加速度。可以将来自测量相对于惯性参考系(例如,全局地图)的加速度的一个或多个传感器和测量移动平台(例如,加速参考系或移动地图)相对于全局地图(例如,惯性参考系)加速度的一个或多个额外传感器的数据组合以估计用户的姿势。由于一些传感器可能随时间漂移,因此可以实现图像传感器来捕获用于提供反馈的图像数据。图像传感器反馈可以用于调整系统中的传感器偏差以及校正漂移。
为了估计和跟踪姿势信息,可以实现跟踪滤波器或模型,诸如卡尔曼滤波器或扩展卡尔曼滤波器(EKF)。跟踪滤波器或模型可以使用来自传感器中的一个或多个传感器的测量来生成一个或多个目标的状态估计和误差协方差(例如,轨迹)。例如,跟踪滤波器可以估计局部环境(例如,移动平台)、全局环境(例如,外部场景或环境)和/或用户的相对速度、位置等。
根据至少一个示例,提供了一种用于移动平台上的沉浸式扩展现实体验的方法。所述方法可以包括:从移动平台上的一个或多个传感器和/或与所述移动平台中的用户相关联的设备获得传感器测量。所述传感器测量可以包括与所述移动平台和所述移动平台中的所述用户相关联的运动参数。所述方法还可以包括:识别所述移动平台的特征和所述移动平台外部的环境的特征;使用所述传感器测量来跟踪所述移动平台相对于所述移动平台外部的所述环境的第一姿势;使用所述传感器测量来跟踪所述用户相对于所述移动平台的特征中的至少一个特征的第二姿势;以及基于所述第一姿势和所述第二姿势来跟踪所述用户相对于所述移动平台外部的所述环境的特征中的至少一个特征的第三姿势。
在另一示例中,提供了一种用于移动平台上的沉浸式扩展现实体验的装置。所述装置可以包括存储器和耦合到所述存储器的处理器,所述处理器被配置为:从移动平台上的一个或多个传感器和/或与所述移动平台中的用户相关联的设备获得传感器测量,所述传感器测量包括与所述移动平台和所述移动平台中的所述用户相关联的运动参数;识别所述移动平台的特征和所述移动平台外部的环境的特征;使用所述传感器测量来跟踪所述移动平台相对于所述移动平台外部的所述环境的第一姿势;使用所述传感器测量来跟踪所述用户相对于所述移动平台的特征中的至少一个特征的第二姿势;以及基于所述第一姿势和所述第二姿势来跟踪所述用户相对于所述移动平台外部的所述环境的特征中的至少一个特征的第三姿势。
在另一示例中,提供了一种用于移动平台上的沉浸式扩展现实体验的非暂时性计算机可读介质。所述非暂时性计算机可读介质可以包括指令,所述指令在由一个或多个处理器执行时使得一个或多个处理器进行以下操作:从移动平台上的一个或多个传感器和/或与所述移动平台中的用户相关联的设备获得传感器测量,所述传感器测量包括与所述移动平台和所述移动平台中的所述用户相关联的运动参数;识别所述移动平台的特征和所述移动平台外部的环境的特征;使用所述传感器测量来跟踪所述移动平台相对于所述移动平台外部的所述环境的第一姿势;使用所述传感器测量来跟踪所述用户相对于所述移动平台的特征中的至少一个特征的第二姿势;以及基于所述第一姿势和所述第二姿势来跟踪所述用户相对于所述移动平台外部的所述环境的特征中的至少一个特征的第三姿势。
在另一示例中,提供了一种装置,所述装置包括用于移动平台上的沉浸式扩展现实体验的单元。所述装置可以包括:用于从移动平台上的一个或多个传感器和/或与所述移动平台中的用户相关联的设备获得传感器测量的单元。所述传感器测量可以包括与所述移动平台和所述移动平台中的所述用户相关联的运动参数。所述装置可以包括用于进行以下操作的单元:识别所述移动平台的特征和所述移动平台外部的环境的特征;使用所述传感器测量来跟踪所述移动平台相对于所述移动平台外部的所述环境的第一姿势;使用所述传感器测量来跟踪所述用户相对于所述移动平台的特征中的至少一个特征的第二姿势;以及基于所述第一姿势和所述第二姿势来跟踪所述用户相对于所述移动平台外部的所述环境的特征中的至少一个特征的第三姿势。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以包括:使用环境分类器和由所述一个或多个传感器中的至少一个传感器捕获的图像数据检测所述用户已经进入不同的移动平台;识别与所述不同的移动平台相关联的额外特征;以及跟踪所述用户相对于与所述不同的移动平台相关联的额外特征的额外姿势。在一些示例中,检测所述用户已经进入所述不同的移动平台可以包括:接收与所述用户相关联的当前环境的图像;使用图像分割算法来将所述图像分割为多个图像段;以及基于所述多个图像段来识别所述图像中的与所述不同的移动平台的地图相对应的一个或多个区域,所述不同的移动平台与所述当前环境相关联。此外,在一些示例中,识别所述图像中的与所述不同的移动平台的所述地图相对应的一个或多个区域可以包括:将与所述不同的移动平台相关联的所述额外特征与所述不同的移动平台的所述地图中的一个或多个点相匹配。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以包括:基于所述传感器测量与针对所述移动平台计算的几何约束之间的不一致性来检测所述用户已经离开所述移动平台。在一些示例中,可以通过跟踪所述移动平台的地图中的点的子集来计算所述几何约束。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以包括:确定所述传感器测量是否适合与所述两个或更多个移动平台相关联的两个或更多个地图;当所述传感器测量适合与所述两个或更多个移动平台相关联的所述两个或更多个地图时,确定所述移动平台外部的所述环境的全局地图包括与所述两个或更多个移动平台相关联的所述两个或更多个地图;以及在所述全局地图上存储关于所述全局地图包括与所述两个或更多个移动平台相关联的所述两个或更多个地图的指示。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以包括:将虚拟内容锚定到所述移动平台的第一地图和/或所述移动平台外部的所述环境的第二地图中的一个或多个特征;以及在所述移动平台和/或所述移动平台外部的所述环境中的一个或多个区域上显示虚拟内容。所述一个或多个区域可以对应于例如所述移动平台的所述第一地图和/或所述移动平台外部的所述环境的所述第二地图中的一个或多个特征。在一些方面中,上述方法、非暂时性计算机可读介质和装置还可以包括:从所述一个或多个传感器获得额外传感器测量,所述额外传感器测量包括与所述移动平台相关联的相对速度、所述移动平台的相对加速度、所述移动平台的轨迹和/或所述移动平台的高度;以及基于与所述移动平台相关联的所述相对速度、所述移动平台的所述相对加速度、所述移动平台的所述轨迹和/或所述移动平台的所述高度来适配所述虚拟内容的显示位置和/或所述虚拟内容的显示配置。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以包括:在所述移动平台和/或所述移动平台外部的所述环境中的所述一个或多个区域的虚拟表示内显示所述虚拟内容。所述虚拟内容可以包括例如音频、虚拟图像、虚拟视频、数字内容、一个或多个虚拟游戏、交互式虚拟内容、虚拟内容覆盖、虚拟场景、虚拟模拟、虚拟对象和/或虚拟网页。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以包括:基于由安装在与所述用户相关联的可穿戴设备上的第一传感器和/或安装在所述移动平台上的第二传感器捕获的图像数据,来跟踪安装在所述可穿戴设备上的所述第一传感器与安装在所述移动平台上的所述第二传感器之间的漂移,所述第一传感器被配置为检测与所述可穿戴设备相关联的特征,并且所述第二传感器被配置为检测与所述移动平台和所述移动平台外部的所述环境相关联的特征,所述特征包括运动参数和/或场景属性;以及基于所述漂移来调整与所述一个或多个传感器中的至少一个传感器相关联的一个或多个传感器偏差,所述一个或多个传感器包括安装在所述可穿戴设备上的所述第一传感器和安装在所述移动平台上的所述第二传感器。
在一些示例中,所述一个或多个传感器中的至少一个传感器安装在与所述用户相关联的可穿戴设备上,并且至少一个额外传感器安装在所述移动平台上。所述至少一个传感器可以被配置为检测与所述可穿戴设备相关联的一个或多个特征,并且所述至少一个额外传感器可以被配置为检测与所述移动平台和所述移动平台外部的所述环境相关联的一个或多个特征。所述一个或多个特征可以包括运动参数和/或场景属性。
在一些示例中,跟踪所述移动平台相对于所述移动平台外部的所述环境的所述第一姿势可以包括:跟踪所述移动平台相对于所述移动平台外部的所述环境的第一地图的所述第一姿势,并且跟踪所述用户的所述第二姿势可以包括:跟踪所述用户相对于所述移动平台的第二地图的所述第二姿势。此外,在一些示例中,识别所述移动平台的特征和所述移动平台外部的所述环境的特征可以包括:跟踪所述移动平台的第一地图中的第一特征集合和所述移动平台外部的所述环境的第二地图中的第二特征集合。
在一些实现中,所述传感器测量可以包括:所述移动平台相对于所述移动平台外部的所述环境的速度、所述移动平台相对于所述移动平台外部的所述环境的加速度、所述移动平台的轨迹、所述移动平台的高度、所述移动平台的位置、所述用户的位置和/或所述用户的运动。此外,在一些情况下,跟踪所述移动平台的所述第一姿势以及跟踪所述用户的所述第二姿势可以是基于所述移动平台相对于所述移动平台外部的所述环境的所述速度、所述移动平台相对于所述移动平台外部的所述环境的所述加速度、所述移动平台的所述轨迹、所述移动平台的所述高度、所述移动平台的所述位置、所述用户的所述位置和/或所述用户的所述运动。
在一些实现中,所述一个或多个传感器可以包括一个或多个惯性测量单元、一个或多个图像传感器、一个或多个雷达、一个或多个里程计设备、一个或多个光发射器和/或一个或多个激光雷达。此外,在一些示例中,所述移动平台可以包括车辆、电梯、飞机、船舶和/或运输工具。
在一些方面中,上述方法、非暂时性计算机可读介质和装置可以包括:将虚拟内容锚定到所述移动平台的第一地图和/或所述移动平台外部的所述环境的第二地图中的一个或多个特征;将与所述移动平台、所述用户和/或所述移动平台的外部的所述环境相关联的运动转换为虚拟运动,所述运动是基于所述第一姿势、所述第二姿势、所述第三姿势和/或所述运动参数被转换的;以及在所述移动平台和/或所述移动平台外部的所述环境的一个或多个区域上显示所述虚拟内容。在一些情况下,所述一个或多个区域可以对应于所述移动平台的所述第一地图和/或所述移动平台外部的所述环境的所述第二地图中的所述一个或多个特征。此外,在一些情况下,所显示的所述虚拟内容的至少一部分可以反映所述虚拟运动。
在一些方面中,上述装置可以包括一个或多个传感器和/或与所述用户相关联的所述设备。在一些示例中,与所述用户相关联的所述设备可以包括移动电话、可穿戴设备、显示设备、移动计算机、头戴式显示器和/或相机。
该发明内容既不旨在标识所要求保护的主题的关键或必要特征,也不旨在单独用于确定所要求保护的主题的范围。通过参考本专利的整个说明书的适当部分、任何或所有附图以及每个权利要求,应当理解该主题。
在参考以下说明书、权利要求和附图之后,前述内容以及其它特征和实施例将变得更加显而易见。
附图说明
为了描述可以获得本公开内容的上述和其它优点和特征的方式,将参考附图中示出的上述原理的具体实施例来对呈现对上述原理的更具体的描述。理解这些附图仅描绘本公开内容的示例实施例,并且不应被视为限制其范围,通过使用附图以额外的特定性和细节来描述和解释本文的原理,其中:
图1示出了根据一些示例的虚拟内容处理系统的示例;
图2A示出了根据一些示例的用于在移动平台中生成沉浸式扩展现实体验的过程的流程图;
图2B示出了根据一些示例的用于计算移动平台中的用户的姿势信息以及使用图像数据校正传感器偏差或漂移的过程的示例流程;
图2C示出了根据一些示例的用于估计姿势和管理多个地图的过程270的图;
图3示出了根据一些示例的在全局地图内移动的示例移动地图的图;
图4A示出了根据一些示例的被配置有传感器的移动平台的侧视图,所述传感器用于计算相对姿势信息以及向移动平台上的用户提供扩展现实体验;
图4B示出了根据一些示例的被配置有传感器的移动平台的俯视图,所述传感器用于计算相对姿势信息以及向移动平台上的用户提供扩展现实体验;
图5示出了根据一些示例的向汽车上的用户提供的示例扩展现实体验;
图6示出了根据一些示例的向汽车中的用户提供的另一示例扩展现实体验;
图7示出了根据一些示例的在地图上行驶并且改变路线或方向的汽车视图;
图8A示出了根据一些示例的移动平台的示例视图;
图8B示出了根据一些示例的移动平台的另一示例视图;
图9示出了根据一些示例的用于检测用户何时离开移动平台并且进入新移动平台的方案的图;
图10示出了根据一些示例的由环境分类器和/或图像分割引擎实现的神经网络的示例配置;
图11示出了根据一些示例的使用神经网络来执行深度学习和分类的示例;
图12示出了根据一些示例的用于在移动平台上提供沉浸式扩展现实体验的示例方法;以及
图13示出了根据一些示例的示例计算设备架构。
具体实施方式
下文提供了本公开内容的某些方面和实施例。如对于本领域技术人员将显而易见的,这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以相结合地应用。在以下描述中,出于解释的目的,阐述了具体细节以便提供对本申请的实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实施各个实施例。附图和描述并不旨在是限制性的。
随后的描述仅提供了示例性实施例,并且不旨在限制本公开内容的范围、适用性或配置。确切而言,对示例性实施例的随后描述将向本领域技术人员提供用于实现示例性实施例的可行描述。应当理解的是,在不脱离如在所附的权利要求书中阐述的本申请的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
参考“一个实施例”或“实施例”意味着结合该实施例描述的特定特征、结构或特性被包括在本公开内容的至少一个实施例中。在说明书的各个地方出现的短语“在一个实施例中”不一定都指同一实施例,也不一定是与其它实施例互斥的单独或替代实施例。此外,描述了可以由一些实施例而非其它实施例展示的各种特征。
在以下描述中给出了具体细节以提供对实施例的透彻理解。然而,本领域普通技术人员将理解的是,可以在没有这些具体细节的情况下实施实施例。例如,电路、系统、网络、过程和其它组件可以以框图形式被示为组件,以便不会在不必要的细节上模糊这些实施例。在其它情况下,公知的电路、过程、算法、结构和技术可能被示为不具有不必要的细节,以便避免模糊实施例。
此外,要注意的是,可能将各个实施例描述为过程,该过程被描绘为流程图、流程示意图、数据流程图、结构图或框图。虽然流程图可以将操作描述为顺序的过程,但是这些操作中的许多操作可以并行或同时执行。另外,可以重新排列操作的次序。过程在其操作完成后被终止,但是可能具有未被包括在图中的额外步骤。过程(process)可以对应于方法、函数、过程(procedure)、子例程、子程序等。当过程对应于函数时,其终止可以对应于该函数返回到调用函数或主函数。
本说明书中使用的术语在本领域中、在本公开内容的上下文内以及在使用每个术语的特定上下文中通常具有普通含义。可以针对本文所讨论的术语中的任何一个或多个术语使用替代语言和同义词,并且无论本文是否详细阐述或讨论术语,都不应当具有特殊意义。在一些情况下,提供某些术语的同义词。记载一个或多个同义词不排除使用其它同义词。本说明书中任何地方的示例(包括本文讨论的任何术语的示例)的使用仅是说明性的,并且不旨在进一步限制本公开内容或任何示例术语的范围和含义。同样,本公开内容不限于本说明书中给出的各种实施例。
术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备、以及能够存储、包含或携带指令和/或数据的各种其它介质。计算机可读介质可以包括数据可以被存储在其中并且不包括以下各项的非暂时性介质:无线地或者在有线连接上传播的载波和/或暂时性电子信号。非暂时性介质的示例可以包括但不限于:磁盘或磁带、诸如压缩光盘(CD)或数字多功能光盘(DVD)之类的光学存储介质、闪存、存储器或存储器设备。计算机可读介质可以具有被存储在其上的代码和/或机器可执行指令,代码和/或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容,来耦合到另一代码段或硬件电路。可以使用包括存储器共享、消息传递、令牌传递、网络传输等的任何适当的手段来传递、转发或发送信息、自变量、参数、数据等。
此外,实施例可以由硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现。当用软件、固件、中间件或微代码来实现时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以被存储在计算机可读或机器可读介质中。处理器可以执行必要任务。
如先前解释的,扩展现实(XR)技术可以将真实或物理环境与虚拟环境(和/或虚拟内容)组合,以向用户提供扩展现实体验(例如,虚拟现实、增强现实、混合现实等)。为了提供真实的XR体验,XR技术通常旨在将虚拟内容与物理世界集成。这通常涉及生成真实世界环境的地图,并且计算相对于真实世界环境的地图的特定视点或姿势,以便以令人信服的方式将虚拟内容锚定到真实世界环境。视点或姿势信息可以用于将虚拟内容与用户感知的运动和真实世界环境的时空状态进行匹配。
然而,在一些情况下,视点或姿势信息可能很难跟踪,并且跟踪不准确可能会对用户的XR体验产生重大影响。例如,用户的移动可能难以准确地跟踪和预测,并且是虚拟内容与用户感知的真实世界环境之间的时空不一致的常见原因。当在移动平台(例如,车辆、电梯、船只、自行车、滑板、踏板车、摩托车、飞机、传送带等)中实现XR技术(这通常涉及跟踪移动平台内的特征以及移动平台外部的可见特征)时,这些挑战可能进一步复杂化。用户、移动平台和移动平台外部的环境的相对运动和视点的差异和频繁变化可能增加跟踪错误和感知不准确的风险。此外,在跟踪移动平台和外部环境内的特征时,漂移和伪影是常见的,这可能进一步降低用户的XR体验。
本公开内容描述了用于在移动平台上提供沉浸式扩展现实体验的系统、方法和计算机可读介质。将按如下在以下公开内容中描述本技术。讨论以描述用于在移动平台中提供扩展现实体验的示例系统和技术开始,如图1至11所示。接下来将描述用于在移动平台中提供扩展现实体验的示例方法,如图12所示。讨论以描述示例计算设备架构结束,该示例计算设备架构包括适合于执行扩展现实操作的示例硬件组件,如图13所示。本公开内容现在转到图1。
图1是示出虚拟内容处理系统102的示例的图。可以实现虚拟内容处理系统102以提供如本文描述的沉浸式XR体验。虚拟内容处理系统102可以包括姿势估计引擎104、内容管理引擎110、环境分类器114、图像分割引擎116、呈现引擎118、用户数据存储装置120、数字内容存储装置122以及地图存储装置124。姿势估计引擎104还可以包括跟踪器106和映射器108。此外,内容管理引擎110可以包括合成引擎112。在一些情况下,虚拟内容处理系统102还可以包括其它组件,例如但不限于显示器、投影仪、前端处理引擎、滤波引擎、传感器融合引擎、去噪引擎、规则引擎等。
虚拟内容处理系统102的组件可以包括电子电路或其它电子硬件(其可以包括例如一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)、图像信号处理器(ISP)和/或任何其它合适的电子电路)和/或可以使用以上各项来实现,和/或可以包括计算机软件、固件或其任何组合和/或可以使用以上各项来实现,以执行本文描述的各种操作。虽然虚拟内容处理系统102被示为包括某些组件,但是普通技术人员将理解,虚拟内容处理系统102可以包括比图1中所示的组件更多或更少的组件。例如,在一些情况下,虚拟内容处理系统102还可以包括图1中未示出的一个或多个存储器组件(例如,一个或多个RAM、ROM、高速缓存、缓冲器等)和/或处理设备。
虚拟内容处理系统102可以是一个或多个计算设备(诸如一个或多个服务器、一个或多个个人计算机、一个或多个处理器、一个或多个移动设备(例如,智能手机、相机、智能电视、平板电脑、物联网设备等))的一部分或者由一个或多个计算设备来实现。在一些情况下,包括虚拟内容处理系统102的一个或多个计算设备可以是一个或多个硬件组件,诸如一个或多个无线收发机、一个或多个输入设备、一个或多个输出设备(例如,显示器)、一个或多个传感器(例如,图像传感器)、一个或多个存储设备、一个或多个处理设备等。在一些示例中,包括虚拟内容处理系统102的计算设备可以是电子设备,诸如电话(例如,智能手机、视频会议系统等)、相机(例如,数码相机、IP相机、摄像机、摄像电话、视频电话或任何其它合适的捕获设备)、台式计算机、膝上型计算机或笔记本计算机、平板计算机、机顶盒、电视、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备或任何其它合适的电子设备。在一些情况下,虚拟内容处理系统102可以是一个或多个设备或设备组合(诸如头戴式显示器(HMD)设备、膝上型计算机、平板计算机、电视、智能可穿戴设备、智能车辆、移动电话、智能护目镜、相机系统、显示系统、投影仪、服务器、平视显示器(HUD)或任何其它合适的电子设备)的一部分或者由一个或多个设备或设备组合来实现。例如,虚拟内容处理系统102可以是HMD设备、包括用于呈现数据的显示器(例如,透明显示器)的HUD设备或客户端计算机的一部分。在另一示例中,虚拟内容处理系统102可以由HMD设备、显示器或HUD和/或移动计算设备的组合来实现。
虚拟内容处理系统102可以从传感器130和/或外部数据源128中的一者或多者接收输入数据,并且使用输入数据来执行用于提供XR体验的各种任务,包括例如映射操作、定位操作、虚拟内容锚定操作、虚拟内容生成操作等。传感器130可以包括例如一个或多个惯性测量单元(IMU)132、一个或多个图像传感器134(例如,相机传感器或设备)、一个或多个光发射器136(例如,一个或多个激光器)、一个或多个全球定位系统(GPS)设备138和/或一个或多个其它传感器140(例如,雷达、加速计、陀螺仪、磁强计、高度计、倾斜传感器、运动检测传感器、光传感器、音频传感器、激光雷达等)。在一些情况下,传感器130中的一个或多个传感器130可以是虚拟内容处理系统102的一部分或由虚拟内容处理系统102来实现。例如,在一些情况下,虚拟内容处理系统102可以实现IMU(132)、图像传感器(134)和/或GPS设备(138)。
在一些实现中,传感器130跨越不同的位置分布和/或由两个或更多个不同的电子设备来实现。例如,在一些情况下,传感器130中的一个或多个传感器130可以安装在移动平台的外部,传感器130中的一个或多个传感器130可以安装在移动平台的内部,并且传感器130中的一个或多个传感器130可以安装在虚拟内容处理系统102上(或由虚拟内容处理系统102来实现)。为了说明,虚拟内容处理系统102可以包括IMU(132)、图像传感器(134)和/或GPS设备(138);并且移动平台可以具有安装在移动平台外面或外部的IMU(132)、图像传感器(134)、诸如激光器之类的光发射器(136)、GPS设备(138)和/或另一传感器(140)、以及安装在移动平台内部的IMU(132)、图像传感器(134)、光发射器(136)、GPS设备(138)和/或另一传感器(140)。包括在移动平台外面或外部、移动平台内部和虚拟内容处理系统102上的传感器130的数量和/或类型可以在不同的实现中变化。
一个或多个IMU 132可以用于测量对象的力和角速率。在一些情况下,一个或多个IMU 132还可以用于测量对象周围的磁场。一个或多个图像传感器134可以捕获图像和/或视频数据。一个或多个图像传感器134可以包括例如一个或多个图像和/或视频捕获设备,诸如数字相机、摄像机、具有相机的电话、具有相机的平板电脑、图像传感器或任何其它合适的图像数据捕获设备。一个或多个光发射器136可以包括任何光发射设备,诸如红外(IR)激光器或激光雷达。在一些情况下,一个或多个光发射器136可以包括用于扫描和/或确定对象或场景的尺寸和移动的结构光传感器或设备。结构光传感器或设备可以将已知形状或图案投射到对象或场景上,并且基于测量或检测到的形状或图案的变形来确定对象或场景的尺寸和移动。
一个或多个GPS设备138可以用于获取地理位置和时间信息。此外,一个或多个外部源128可以提供各种类型的信息,诸如但不限于地理信息系统(GIS)数据(例如,空间数据、地理数据、拓扑信息、地图数据、时空数据、地质统计学、位置属性和/或统计、交通数据、路线、高程数据、地理智能数据等)、数字或虚拟内容、天气信息、旅行或交通数据、新闻数据、音频数据、景观信息、跟踪信息、报告、统计、信息更新、研究数据、环境信息等。一个或多个外部源128可以包括例如互联网、服务器、存储系统、外部或远程计算机、内容提供商、卫星、接入点、IoT(物联网)设备、数据中心、公共和/或私有云、数据存储库、网络等。
虚拟内容处理系统102中的姿势估计引擎104可以从传感器130接收传感器数据,并且使用传感器数据来估计一个或多个对象的姿势,跟踪一个或多个对象,以及生成一个或多个真实世界环境的一个或多个地图。传感器数据可以包括例如一个或多个图像、一个或多个视频、音频或声音数据、位置信息、雷达回波、对象和/或场景测量(例如,对象和/或场景的形状或尺寸、运动或移动、轨迹或方向、特性、速率或速度、高程、位置、力、角速率、模式等)、GPS信息等。在一些情况下,姿势估计引擎104还可以接收和使用来自一个或多个外部源128的信息,诸如交通数据、地图数据、GIS数据、统计数据、跟踪数据等。
在一些情况下,姿势估计引擎104可以使用接收到的数据(例如,来自传感器130的传感器数据、来自一个或多个外部源128的额外数据)来估计移动平台中的用户相对于移动平台和/或外部环境(例如,环境、世界或移动平台外部的设置)的姿势以及移动平台相对于外部环境的姿势。移动平台可以包括任何类型的移动环境或运输系统,诸如车辆、船只或船舶、飞机、传送带、移动楼梯、火车、过山车或主题公园游乐设施、电梯、滑板、自行车、踏板车或任何其它运输工具。在一些示例中,可以通过计算用户的设备或与用户相关联的设备(诸如由用户佩戴或安装在用户上的设备(例如,HMD、智能可穿戴设备等)、由用户持有或在用户附近的设备(例如,膝上型计算机、智能手机等)、或移动平台内可以用于估计用户姿势的任何其它设备)的姿势来确定或推断用户的姿势。
为了估计用户相对于移动平台和/或外部环境的姿势、以及移动平台相对于外部环境的姿势,姿势估计引擎104可以实现跟踪器106。跟踪器106可以使用来自在移动平台内、在移动平台的外部或外面和/或在与用户相关联的设备(例如,由用户佩戴的HMD)上的传感器(130)的传感器数据。例如,跟踪器106可以使用从在移动平台外部或外面的一个或多个传感器获得的传感器数据,其可以包括外部环境(例如,相对于移动平台的外部)的测量(例如,速度、位置、方向、高度、加速度、位置、角速率、环境特性、运动动力学等);从移动平台中的一个或多个传感器获得的传感器数据,其可以包括移动平台和/或移动平台内部的环境的测量(例如,速度、位置、方向、高度、加速度、位置、角速率、环境特性、运动动力学等);和/或从安装在与用户相关联的设备上或由该设备实现的一个或多个传感器获得的传感器数据,其可以包括用户(或与该用户相关联的设备)、移动平台和/或移动平台内部的环境的测量(例如,速度、位置、方向、高度、加速度、位置、角速率、环境特性、运动动力学等)。
由于传感器通常包含误差(其在本质上可能是随机的),所以来自传感器(130)的观测或测量可以通过一个或多个滤波器进行处理,所述滤波器估计目标的状态(例如,姿态、速度、轨迹、加速度、位置、高度等)和误差协方差。因此,在一些示例中,跟踪器106可以实现一个或多个滤波器(例如,一个或多个卡尔曼滤波器、一个或多个扩展卡尔曼滤波器等)、一个或多个运动模型(例如,一个或多个加速度模型、一个或多个角速率模型、一个或多个速度模型等)和/或任何其它跟踪算法或模型来估计目标(例如,移动平台、外部环境、用户或与用户相关的设备等)的状态(例如,姿势、速度、轨迹、位置、加速度、高度等)。在一些示例中,跟踪器106可以使用卡尔曼滤波器或扩展卡尔曼滤波器(EKF)来处理传感器数据,以估计移动平台、外部环境和/或用户或与用户相关联的设备的状态和误差协方差。
卡尔曼滤波过程(也称为线性二次估计(LQE))使用这样的算法:该算法可以应用随时间观测到的一系列测量(其可以包含统计噪声和其它不精确性),并且通过估计每个时间帧上的变量的联合概率分布来产生未知变量的估计。EKF滤波过程实现EKF算法(其是卡尔曼滤波器的非线性版本),该EKF算法关于当前均值和协方差的估计值进行线性化。卡尔曼或EKF滤波器可以包括预测步骤和测量更新步骤。预测步骤依赖于用于目标动力学的一个或多个模型(例如,加速度模型、角速率模型、速度模型等)来传播或预测目标在将来某个时间点的状态。一旦已经传播了目标的状态,就可以应用测量来进一步提高估计的精度。
如上所述,跟踪器106可以估计和跟踪移动平台相对于外部环境的姿势、以及用户或与用户相关联的设备相对于移动环境的姿势。在一些情况下,跟踪器106还可以跟踪其它特征。例如,跟踪器106可以检测和/或跟踪移动平台和/或外部环境内的特征(例如,对象、特性等)。所估计的姿势信息和/或跟踪的特征然后可以用于向用户提供XR体验,如本文进一步描述的。
姿势估计引擎104还可以包括用于执行映射操作的映射器108。映射器108可以使用来自传感器130的数据来生成一个或多个环境(诸如移动平台和外部环境)的一个或多个地图或表示。一个或多个地图或表示可以制图、绘制、建模或识别移动平台和外部环境的对象、空间和/或特性。例如,映射器108可以生成制图、绘制、建模或识别移动平台的对象、空间和/或特性(例如,形状、体积、大小、位置等)的移动地图、以及制图、绘制、建模或识别外部环境的对象、空间和/或特性的全局地图。在一些实现中,移动地图和全局地图可以分别是移动平台和外部环境的二维(2D)或三维(3D)网格或模型。
映射器108还可以在全局地图(例如,移动平台之外或外部的环境地图)中嵌入元数据,以指示全局地图内存在一个或多个移动地图。例如,映射器108可以在建筑物的全局地图中嵌入元数据,以指示存在建筑物中的一个或多个电梯的一个或多个移动地图。在一些情况下,映射器108还可以使用来自跟踪器106的数据(诸如跟踪、姿势或位置信息)来生成一个或多个地图。例如,映射器108可以使用来自跟踪器106的数据来识别移动地图的位置或校正由相关联的移动平台的移动引起的移动地图中的伪影。此外,在一些实现中,除了生成一个或多个地图之外或者代替生成一个或多个地图,映射器108还可以执行将虚拟对象或内容映射到移动平台的地图(例如,移动地图)和/或外部环境的地图(例如,全局地图)中的特征的操作。在这样的实现中,映射器108还可以在确定将虚拟对象或内容映射到地图中的特征的位置或方式时使用来自跟踪器106的信息。
在一些示例中,映射器108或姿势估计引擎104可以存储在地图存储装置124中生成的任何地图,以用于向用户提供XR体验。地图存储装置124可以是可用于一个或多个环境(诸如移动平台和/或外部环境)的地图的存储或存储库。地图存储装置124可以包括用于存储地图和任何其它数据的一个或多个存储设备。在一些情况下,地图存储装置124还可以存储由虚拟内容处理系统102从其它源(例如,外部数据源128)获得的地图。例如,地图存储装置124可以包括由虚拟内容处理系统102从互联网、单独的地图系统、生成的或预配置的地图的存储库等接收的一个或多个地图。
如先前解释的,虚拟内容处理系统102还可以包括内容管理引擎110。内容管理引擎110可以管理、生成、合成、修改和/或处理用于向用户提供XR体验的内容。在一些情况下,内容管理引擎110可以将内容存储在数字内容存储装置122上和/或从数字内容存储装置122取回内容。数字内容存储装置122可以存储由内容管理引擎110生成、存储、接收、管理和/或使用的各种内容项。数字内容存储装置122可以包括用于存储内容的一个或多个存储设备。此外,内容可以包括例如但不限于数字或虚拟内容、游戏、广告、标记的地理位置、互联网内容、音频内容、视频、图像、文档、交互内容、内容覆盖、网页、文件、数据(例如,统计、历史数据等)、电子或数字地图、和/或任何其它类型的媒体、数字或虚拟内容。
内容管理引擎110可以包括合成引擎112以合成用于呈现和/或包含在XR呈现或体验中的内容。合成引擎112可以执行各种计算机视觉和/或图形技术(例如,特征提取、特征匹配或同步、特征分类、图像处理、滤波、混合、深度估计、3D建模、姿势识别、图像拼接、对象识别、去噪、动画、渲染等)以生成真实的虚拟内容和/或模拟虚拟的环境和体验。由合成引擎112生成的合成内容可以包括例如2D或3D数字内容和/或多媒体内容,诸如虚拟场景、虚拟对象、虚拟视图、虚拟覆盖、交互式虚拟内容、音频、图形模型、计算机生成的图像、虚拟模拟等。在一些情况下,合成的内容还可以包括一个或多个视觉或特殊效果,诸如动画、模拟、光学效果、机械效果等。
内容合成引擎112可以获取内容(例如,音频、图像内容、视频内容、数据、数字内容、多媒体内容等)并且合成内容以生成虚拟内容或视图以呈现给用户。内容合成引擎112还可以使用关于一个或多个参考系的信息(例如,视点数据、姿势数据、定位数据等)来生成用于XR体验的真实和/或沉浸式内容。在一些说明性示例中,内容合成引擎112可以使用关于一个或多个参考系的信息来匹配、映射或同步内容、对象和/或真实世界环境(或真实世界环境的地图,诸如移动地图和全局地图)、具有合并透视图的模型对象和/或场景中的特征,产生真实的时空内容,并入环境的运动动力学等。
虚拟内容处理系统102还可以包括环境分类器114以识别用户的环境(例如,特定移动平台)以及检测用户是否已经或正在输入不同的移动地图或移动平台。例如,环境分类器114可以检测用户是否已经离开第一移动地图或平台(例如,电梯)并且已经进入不同的移动地图或平台(例如,汽车)。虚拟内容处理系统102可以使用该信息来改变用于向用户提供XR体验的移动地图;辨别与用户的新环境相关联的特征;对用于向用户提供XR体验的内容、姿势信息、跟踪的特征等进行调整;等等。
环境分类器114可以基于从传感器130接收的一个或多个图像来检测适用移动地图或平台中的变化。一个或多个图像可以捕获适用于用户的移动地图或平台的场景或视图。环境分类器114可以处理一个或多个图像以对用户的当前环境进行分类。在一些情况下,环境分类器114可以使用机器学习来学习用户的环境。例如,环境分类器114可以通过神经网络来处理来自传感器130的一个或多个图像,以生成识别用户环境的分类输出。
虚拟内容处理系统102还可以包括图像分割引擎116。图像分割引擎116可以处理环境的一个或多个图像,以标记一个或多个图像中的属于与环境相关联的特定地图的区域。例如,图像分割引擎116可以从传感器130接收用户已经进入的新移动平台的图像,并且处理该图像以标记图像中的属于与新移动平台相关联的移动地图的区域。在一些示例中,图像分割引擎116可以实现机器学习算法来执行图像分割。
虚拟内容处理系统102可以实现呈现引擎118来为用户投影、呈现和/或渲染虚拟内容或视图。在一些情况下,呈现引擎118可以为用户在对象或显示器(诸如窗口或屏幕)上投影虚拟内容或视图。在其它示例中,呈现引擎118可以渲染和/或显示虚拟内容或视图以在显示设备126上呈现。在一些实现中,显示设备126可以是虚拟内容处理系统102的一部分或者由虚拟内容处理系统102来实现。例如,显示设备126可以是虚拟内容处理系统102上的显示器或屏幕或者连接到虚拟内容处理系统102。在其它实现中,显示设备126可以是与虚拟内容处理系统102分离的设备。例如,显示设备126可以是具有嵌入式透明显示器的单独窗口或单独的电视屏幕。
虚拟内容处理系统102还可以包括用户数据存储装置120。用户数据存储装置120可以包括用于存储数据的一个或多个存储设备。此外,用户数据存储装置120可以存储与一个或多个用户相关联的数据。例如,用户数据存储装置120可以存储一个或多个用户简档、用户偏好、关于一个或多个用户的历史数据、用户统计、用户设置、用户自定义、用户日志等。内容管理引擎110可以使用用户数据存储装置120中的用户数据来为用户生成虚拟内容。可以基于用户数据存储装置120中的用户数据来为用户剪裁或定制虚拟内容。
尽管图1将用户数据存储装置120、数字内容存储装置122和地图存储装置124示为单独的或个体的存储装置,但是本领域普通技术人员将认识到,用户数据存储装置120、数字内容存储装置122和/或地图存储装置124可以被实现为单个组合存储装置。此外,本领域普通技术人员将认识到,用户数据存储装置120、数字内容存储装置122和地图存储装置124可以由相同的存储设备、单独的存储设备或任何其它存储配置或分布来实现。
图2A示出了用于在移动平台中生成沉浸式XR体验的过程200的流程图。用于生成沉浸式XR体验的过程200可以组合真实或物理环境和虚拟环境(和/或虚拟内容),以向用户提供扩展现实体验(例如,虚拟现实、增强现实、混合现实等)。为了提供真实的XR体验,过程200可以将虚拟内容与物理世界集成。这可以涉及生成真实世界环境的地图,并且计算相对于真实世界环境的地图的特定视点或姿势,以便以令人信服的方式将虚拟内容锚定到真实世界环境。视点或姿势信息可以用于将虚拟内容与用户感知的运动和真实世界环境的时空状态进行匹配。
视点或姿势信息可能很难跟踪,并且跟踪不准确可能会对用户的XR体验产生重大影响。例如,用户的移动可能难以准确地跟踪和预测,并且是虚拟内容与用户感知的真实世界环境之间的时空不一致的常见原因。当在移动平台(例如,车辆、电梯、船只、自行车、滑板、踏板车、摩托车、飞机、传送带等)中实现XR技术(这可以涉及跟踪移动平台内的特征以及移动平台外部的可见特征)时,这些挑战可能进一步复杂化。用户、移动平台和移动平台外部的环境的相对运动和视点的差异和频繁变化可能增加跟踪错误和感知不准确的风险。此外,在跟踪移动平台和外部环境内的特征时,漂移和伪影是常见的,这可能进一步降低用户的XR体验。
然而,在用户位于相对于外部环境或场景移动的移动平台(例如,车辆、电梯、火车、传送带、船舶、飞机、船只、滑板、自行车、踏板车、交通工具等)内的用例中,过程200可以提供与移动平台中用户的感知运动(例如,由于惯性力)相匹配的虚拟内容并且考虑用户的视野或姿势。虚拟内容可以以考虑用户、移动平台和外部场景的相对运动的方式锚定在移动平台(和/或移动平台的移动地图)或外部场景(和/或外部场景的全局地图)内。为了将虚拟内容与用户的感知运动相匹配,可以针对移动平台、用户和/或外部场景跟踪诸如运动和姿势之类的特征。
由于在移动平台内使用特征以及在移动平台之外可见的特征,移动平台中的特征跟踪可能导致漂移或伪影。例如,当锚定在相对于通过移动车辆的车窗可见的道路标志的对象上时,用户在车辆内的运动(例如,其可能由头部运动、姿势变化等引起)以及基于车辆的轨迹的其它特征的相对运动(例如,汽车的全局运动)可能在XR体验中产生不一致的结果(和错误)。这在移动平台高速移动的场景中尤其令人沮丧,这可能导致越来越不一致或偏离的XR体验。
因此,为了将虚拟内容与用户的感知运动精确匹配并且限制或消除XR体验中的任何错误和不一致,过程200可以跟踪移动平台内用户的姿势(其可以由移动地图或局部运动地图表示)以及移动平台相对于外部场景的姿势(其可以由全局或世界地图表示)。可以在不考虑内部移动平台特征的情况下对用户相对于全局地图的姿势进行变换,以改善外部和内部XR体验。用于显示和/或渲染虚拟内容的合成或渲染引擎可以在用于用户的姿势的独立时钟查询上执行,以实现更高的精度。
此外,为了跟踪移动平台内的特征(例如,姿势、运动动力学、环境特征、对象、视图特性等)和移动平台外的特征(例如,与外部场景相关的特征),过程200可以实现各种传感器和设备(诸如惯性测量单元(IMU)、光发射传感器、图像传感器或相机传感器、LIDAR、雷达、全球定位系统(GPS)设备等),以收集特征测量。传感器可以在移动平台、可穿戴模块(诸如HMD(头戴式显示器))和/或移动平台中的不可穿戴模块上实现。可以使用IMU来跟踪局部运动(例如,用户姿势),IMU可以计算高速率姿势信息(例如,以1khz的频率)。例如,可以经由具有一个或多个传感器(例如,IMU、相机等)的HMD(头戴式显示器)或不可穿戴模块(例如,安装在移动平台(诸如车辆的车厢)内的无源/有源深度传感系统)来跟踪局部运动。
过程200可以实现一个或多个传感器(例如,IMU、图像传感器、雷达、光发射器(例如,激光器)等),以测量相对于外部场景(例如,全局地图)的运动。一个或多个传感器可以测量相对于惯性参考系(例如,全局地图)的加速度。由于依赖所测量的相对于惯性参考系的加速度而同时不考虑移动平台的加速度(例如,加速参考系,在这种情况下对应于移动地图),可能导致错误和不一致,因此过程200可以在移动平台上实现一个或多个额外传感器(例如,IMU、图像传感器等),以测量移动平台(例如,加速参考系或移动地图)相对于全局地图(例如,惯性参考系)的加速度。可以将来自测量相对于惯性参考系(例如,全局地图)的加速度的一个或多个传感器和测量移动平台(例如,加速参考系或移动地图)相对于全局地图(例如,惯性参考系)加速度的一个或多个额外传感器的数据组合以估计用户的姿势。由于一些传感器可能随时间漂移,因此可以实现图像传感器来捕获用于提供反馈的图像数据。图像传感器反馈可以用于调整系统中的传感器偏差以及校正漂移。
如图2A所示的过程200所示,虚拟内容处理系统102的内容管理引擎110可以首先接收用户数据202、位置信息204和路由信息206(内容管理引擎110可以使用它们来为XR体验生成虚拟内容)。虚拟内容可以包括例如但不限于交互内容、游戏、广告、音频、虚拟覆盖、虚拟场景或视图、虚拟对象等。
用户数据202可以包括用户偏好、用户历史、用户统计、用户简档等。位置信息204可以包括GPS数据(例如,位置和时间)、GIS数据、与一个或多个地理位置相关联的交通信息、移动平台和/或移动平台中的用户的位置、移动平台和/或移动平台中的用户的高度、与一个或多个地理位置相关联的天气信息和/或任何其它位置信息。路由信息206可以包括例如与移动平台和/或移动平台中的用户相关联的规划路由。
内容管理引擎110可以从用户数据存储装置120和/或任何其它源(诸如外部数据源128)接收用户数据202。内容管理引擎110可以从用户数据存储装置120、传感器130中的一个或多个传感器130和/或外部数据源128接收位置信息204。此外,内容管理引擎110可以从用户数据存储装置120和/或外部数据源128接收路由信息206。
在框210处,内容管理引擎110可以选择用于为XR体验生成虚拟内容的媒体内容。在一些情况下,可以基于用户输入或偏好来选择媒体内容。例如,内容管理引擎110可以响应于用户对该媒体内容的手动选择来选择媒体内容。在其它情况下,内容管理引擎110可以基于诸如上下文(例如,位置、环境、方向、路由、用户偏好等)之类的一个或多个因素来自动或智能地选择媒体内容。例如,内容管理引擎110可以基于用户数据202、位置信息204和/或路由信息206来确定与用户相关联的上下文,并且基于所确定的上下文来选择媒体内容。
内容管理引擎110可以从数字内容存储装置122选择和/或取回媒体内容。然而,在一些实现中,内容管理引擎110可以从外部数据源128接收选择的媒体内容中的一些或全部。例如,内容管理引擎110可以从互联网或内容服务器接收媒体内容中的一些或全部。媒体内容可以包括例如但不限于广告内容、音频内容、数字内容(例如,游戏、视频内容、图像内容、标记的地理位置、媒体内容、互联网内容等)、网页、文档和/或任何其它类型的内容。
在框212处,内容管理引擎110可以使用所选择的媒体内容来执行内容合成,并且在框214处,内容管理引擎110可以基于在框212处执行的内容合成来生成合成内容。在一些情况下,内容管理引擎110还可以从数字内容存储装置122取回额外内容,以与所选择的媒体内容一起用于框212处的内容合成。在其它情况下,内容管理引擎110还可以从外部数据源128接收额外内容。内容管理引擎110可以实现合成引擎112以执行内容合成。合成引擎112可以合成所选择的媒体内容和从数字内容存储装置122取回和/或从外部数据源128接收的任何其它内容,以为XR体验生成合成内容。合成内容可以包括例如但不限于交互内容、游戏、视频、图像、广告、虚拟覆盖、虚拟视图、虚拟对象、虚拟场景、模拟环境或体验、多媒体内容和/或任何其它虚拟内容。
此外,姿势估计引擎104可以从传感器130中的一个或多个传感器130接收传感器数据208,姿势估计引擎104可以使用传感器数据208来计算用户相对于与移动平台相关联的移动地图(例如,诸如汽车或电梯之类的移动平台的地图)的姿势、以及移动平台相对于全局地图(例如,移动平台之外或外部的环境或场景的地图)的姿势。在一些情况下,姿势估计引擎104还可以计算用户相对于全局地图或外部环境的姿势。例如,姿势估计引擎104可以使用用户相对于移动地图的姿势和移动平台相对于全局地图的姿势来计算用户相对于全局地图的姿势。
移动地图和全局地图可以由姿势估计引擎104的映射器108生成和/或从地图存储装置124取回。此外,传感器数据208可以包括例如IMU数据、图像数据、结构光数据、雷达回波、GPS数据等。在一些示例中,传感器数据208可以包括来自移动平台上(例如,安装或实现在移动平台的内部和/或外部)的一个或多个IMU传感器132的IMU数据、来自与用户相关联的设备(例如,HMD、笔记本电脑、平板电脑、智能可穿戴设备、移动电话等)上的一个或多个IMU传感器132的IMU数据、来自移动平台上(例如,安装或实现在移动平台的内部和/或外部)的一个或多个图像传感器134的图像数据、来自与用户相关联的设备上的一个或多个图像传感器134的图像数据、和/或来自移动平台上的一个或多个光发射器136的结构光数据。
为了说明,假设移动平台是在街道上行驶的汽车,并且汽车的乘客正佩戴具有IMU传感器132和图像传感器134的HMD。此外,假设汽车具有光发射器136(例如,激光器)、安装在汽车的内部和外部的IMU传感器132、以及安装在汽车的内部和外部的图像传感器134。在该示例中,传感器数据208可以包括来自汽车上(例如,内部和外部)的IMU传感器132的IMU数据、来自HMD上的IMU传感器132的IMU数据、来自汽车上(例如,内部和外部)的图像传感器134的图像数据、来自HMD上的图像传感器134的图像数据、以及来自汽车上的光发射器136的结构光数据。因此,该示例中的传感器数据208可以包括与汽车内部的环境和汽车外部的环境(例如,街道和/或其周围环境)相对应的测量(例如,来自IMU传感器和光发射器)和图像(例如,来自图像传感器)。虚拟内容处理系统102可以使用这些图像和测量来计算用户的姿势和汽车的姿势,并且为汽车中的用户提供真实的和沉浸式XR体验,尽管用户、汽车和外部世界(例如,汽车外部的环境)的相对运动动力学不同。
在框216处,姿势估计引擎104可以接收传感器数据208并且计算用户相对于移动地图的姿势。移动地图可以是用户所在的移动平台的地图或表示。例如,移动地图可以是用户乘坐的汽车或电梯的地图或表示。例如,姿势估计引擎104可以基于用户头部的姿势来计算用户的姿势。可以基于针对用户佩戴的设备(诸如HMD)获得的测量或针对用户头部(例如,使用捕获的图像和/或传感器测量)和/或用户身体的一个或多个区域进行的测量来计算用户头部的姿势。
此外,姿势估计引擎104可以基于针对用户(或相关联的设备)和移动地图(或与移动地图相关联的移动平台)进行的相对测量(例如,来自传感器数据208)来计算用户的姿势。例如,姿势估计引擎104可以基于所测量的用户(或相关联的设备)和与移动地图相关联的移动平台的位置、角速率、速度、加速度、位置和/或任何其它运动动力学来计算用户的姿势。
在框218处,姿势估计引擎104还可以使用传感器数据208来计算移动平台相对于全局地图的姿势。在一些情况下,姿势估计引擎104还可以使用在框216处计算的用户的姿势来计算移动平台相对于全局地图的姿势。全局地图可以是与移动地图相关联的移动平台之外或外部的环境、场景、区域等的地图或表示。例如,如果移动平台是汽车,则全局地图可以是汽车外部和/或可以从汽车看见的场景或环境的地图或表示。在另一示例中,如果移动平台是电梯,则全局地图可以是电梯外部的可以从电梯看到的环境或场景的地图或表示。姿势估计引擎104可以基于用户的姿势以及移动平台和外部世界或环境的跟踪测量(例如,来自传感器数据208)来计算移动平台的姿势。跟踪测量可以包括例如用户、移动平台和/或外部世界或环境的相应的位置、角速率、速度、加速度、位置和/或任何其它运动动力学。
在一些实现中,姿势估计引擎104还可以计算用户相对于全局地图或外部环境的姿势。例如,姿势估计引擎104可以使用用户相对于移动平台的姿势和移动平台相对于全局地图的姿势来计算用户相对于全局地图的姿势。在这样的实现中,虚拟内容处理系统102可以使用用户相对于全局地图的姿势来生成虚拟内容,如下面参照框220和222描述的。
在框216和218处,姿势估计引擎104可以实现跟踪器106来计算用户和移动平台的姿势。在一些示例中,姿势估计引擎104可以实现一种或多种跟踪算法和/或模型来计算用户的姿势。下面描述非限制性示例模型和跟踪算法,包括陀螺仪模型、加速度模型和EKF滤波器。
下面的等式(1)和(2)示出了姿势估计引擎104可以使用的示例加速计模型。在下面的等式(1)和(2)中,和是传感器数据208中的加速度样本(例如,IMU测量)。和是移动平台和用户(或与用户相关联的设备,诸如HMD)相对于全局参考系(例如,外部世界或环境)的加速度。βV和βH是用于收集传感器数据208的至少一些传感器中的相应加速计(例如,被实现以获得传感器数据208的IMU传感器132中的加速计)的各个偏差。目标是估计全局参考系(例如,外部世界或环境)中的相对加速度
假设RVS=RVHRHS:
进一步重新排列,如下面的等式(3)和(4)所示:
然后减去等式(3)和等式(4),如下面的等式(5)所示:
等式(5)表示的模型可以用于估计用户(或与用户相关联的设备,诸如HMD)相对于全局参考系(例如,世界或外部环境)的相对加速度。
下面的等式(6)和(7)示出了可以由姿势估计引擎104使用的示例陀螺仪模型。在下面的等式(6)和(7)中,和是传感器数据208中的角速度样本(例如,IMU测量)。和是移动平台和用户(或与用户相关联的设备,诸如HMD)相对于全局参考系(例如,外部世界或环境)的角速度。βV和βH是用于收集传感器数据208的至少一些传感器中的相应加速计(例如,被实现以获得传感器数据208的IMU传感器132中的加速计)的各个偏差。目标是估计全局参考系中的相对速度
假设RVS=RVHRHS:
进一步重新排列,如下面的等式(8)和(9)所示:
然后减去等式(8)和等式(9),如下面的等式(10)所示:
等式(10)表示的模型可以用于估计用户(或与用户相关联的设备,诸如HMD)相对于全局参考系(例如,世界或外部环境)的相对角速度。
示例EKF模型可以如下所示。状态变量可以是:
预测步骤可以如下所示:
然后,更新步骤可以如下所示:
如上所示,EKF算法可以首先执行预测步骤以计算跟踪状态,并且然后执行更新步骤以更新预测结果。
一旦姿势估计引擎104已经计算了用户和移动平台的姿势,它就可以向内容管理引擎110提供姿势信息,内容管理引擎110在框220处使用姿势信息来合成(例如,使用合成引擎112)在框214处生成的内容,并且为XR体验产生虚拟内容。内容管理引擎110可以使用姿势信息来合成音频和任何类型的数字内容以生成虚拟视图、场景、对象、环境、模拟等,以确保产生的合成内容与用户在移动平台中的感知的和/或实际的运动相匹配。
在框222处,虚拟内容处理系统102可以输出由框220处的内容合成产生的虚拟内容。在一些情况下,虚拟内容处理系统102可以使用呈现引擎118来输出、呈现、投影和/或显示虚拟内容。在一些情况下,虚拟内容处理系统102可以在显示设备126上显示输出。此外,虚拟内容可以包括例如虚拟视图、虚拟场景、虚拟环境、虚拟模拟、一个或多个虚拟对象、交互内容、一个或多个游戏、一个或多个覆盖(例如,广告覆盖)、互联网或网页内容、音频、视频等。
在一些示例中,虚拟内容可以锚定到移动地图和/或全局地图中的点或区域,并且以与用户周围的真实或物理世界融合的方式呈现给用户。例如,当用户乘坐汽车(在该示例中,为移动平台)旅行时,虚拟内容可以显示在从汽车可见的建筑物上并且被配置为显示为虚拟内容是建筑物的一部分。向用户显示的虚拟内容可以适应汽车的运动(例如,速度、方向、高度、位置等)。因此,即使在移动平台移动时,虚拟内容也可以匹配用户的感知运动。
图2B示出了用于计算移动平台中的用户的姿势信息并且使用图像数据来校正传感器偏差或漂移的过程240的示例流程。在该示例中,姿势估计引擎104计算用户相对于与移动平台相关联的移动地图的姿势以及用户相对于全局地图(例如,移动平台外部的环境的地图)的姿势。在过程240的一些示例中,姿势估计引擎104还可以计算移动平台相对于全局地图的姿势。
在框242处,姿势估计引擎104首先计算用户相对于移动地图的姿势。姿势估计引擎104可以基于跟踪流250来计算用户相对于移动地图的姿势。例如,如跟踪流250中所示,姿势估计引擎104首先接收包括从时间t1到时间t2的传感器测量的传感器数据246。传感器数据246可以包括从安装在移动平台上(例如,移动平台内部和/或外部)和/或被包括在移动平台中的一个或多个设备(诸如用户佩戴的HMD)中的传感器(130)获得的IMU测量、图像数据、结构光数据、GPS数据等。传感器数据246可以测量移动平台和/或移动平台中的用户的定位、位置和/或运动动力学的各个方面。
在框252处,姿势估计引擎104使用传感器数据246来预测跟踪状态(例如,估计的跟踪)。在一些示例中,姿势估计引擎104可以使用先前描述的加速度和陀螺仪模型(例如,等式1至10)以及先前描述的EKF模型中的预测步骤(1)来预测跟踪状态。如本领域的普通技术人员将认识到的,在其它示例中,姿势估计引擎104可以使用任何其它合适的跟踪模型和/或算法(除了先前描述的EKF滤波器、加速度模型和/或陀螺仪模型之外或代替先前描述的EKF滤波器、加速度模型和/或陀螺仪模型)来预测跟踪状态。例如,姿势估计引擎104可以使用一个或多个卡尔曼滤波器和一个或多个不同的运动模型(诸如速度模型)来预测轨迹或状态。
此外,在一些示例中,传感器数据246可以包括从多个传感器(130)的组合或融合的数据,这些传感器可以位于移动平台内、移动平台外部和/或与用户相关联的设备(诸如HMD)上。在一个说明性示例中,传感器数据246可以包括来自移动平台中的一个或多个IMU132(例如,在移动平台内部和/或外部)的数据以及来自用户上的HMD(或任何其它计算设备)上的一个或多个IMU 132的数据。在该示例中,传感器数据246的一部分可以测量用户相对于惯性或全局参考系(例如,外部环境)的加速度,并且传感器数据246的另一部分可以测量移动平台相对于惯性或全局参考系的加速度。组合测量可以用于计算用户在移动平台中移动时的准确姿势。
应当注意的是,先前示例中的HMD是作为说明性示例提供的,以用于解释目的,并且所示原理可以利用任何其它计算设备(诸如移动电话或平板计算机)来实现。此外,在一些实现中,传感器数据246可以包括来自移动平台上的一个或多个光发射器136的结构光数据和/或来自移动平台上的一个或多个图像传感器134的图像数据。除了先前示例中来自IMU 132(例如,移动平台和HMD上的IMU 132)的任何传感器数据之外或者代替先前示例中来自IMU 132的任何传感器数据,可以使用该示例中的结构光数据和/或图像数据。
在框254处,姿势估计引擎104从时间t2接收图像数据248并且跟踪图像数据248中的特征。姿势估计引擎104可以处理和/或分割图像数据248以跟踪图像数据248中的特征,以便识别和纠正可能使跟踪结果倾斜的任何传感器偏差或漂移。在一个说明性示例中,图像数据248可以包括从与用户相关联的一个或多个设备上的一个或多个图像传感器(134)(诸如用户佩戴的HMD上的相机)拍摄的用户(例如,用户的头部)的一个或多个图像。一个或多个图像可以在时间t2处用作用于校正与一个或多个传感器相关联的任何漂移的反馈。惯性传感器(例如,IMU 132)可能随时间经历漂移和噪声。因此,图像数据248可以捕获用户的姿势(例如,用户的头部姿势),并且然后可以将捕获用户的姿势的图像数据248与来自惯性传感器的测量(例如,传感器数据246中的一些或全部)进行比较,以识别和校正任何漂移或传感器偏差。
在框256处,姿势估计引擎104然后可以更新在框252处计算的跟踪状态。在一些示例中,姿势估计引擎104可以使用先前描述的EKF算法的更新步骤(2)来更新跟踪状态。此外,姿势估计引擎104可以在考虑由在框254处识别的漂移或传感器偏差引起的对传感器数据的任何校正的情况下,使用传感器数据246和图像数据248来更新跟踪状态。基于更新的跟踪状态,姿势估计引擎104可以在t2处确定用户的姿势258。在该示例中,用户的姿势258是相对于与用户所在的移动平台相关联的移动地图的。
在计算了用户的姿势258之后,在框244处,姿势估计引擎104可以使用用户相对于移动地图的姿势258和传感器数据208来计算用户相对于全局地图(例如,移动平台外部的环境的地图)的姿势260。在一些示例中,姿势估计引擎104还可以使用相对于全局地图计算的移动地图的姿势来计算用户相对于全局地图的姿势260。
传感器数据208可以包括来自移动平台上(移动平台外部和/或内部)的IMU传感器132的测量。在一些情况下,传感器数据208可以包括来自与用户相关联的设备(诸如用户佩戴的HMD或用户的移动计算设备)上的IMU传感器132的测量。在一些实现中,传感器数据208还可以包括来自移动平台上的光发射器136的结构光数据、来自移动平台和/或与用户相关联的设备(例如,用户佩戴的HMD)上的图像传感器134的图像数据、雷达回波和/或任何其它类型的传感器测量。此外,在一些情况下,姿势估计引擎104还可以使用位置信息204(例如,GPS数据、GIS数据等)和/或路线信息206(例如,规划路线)来计算用户相对于全局地图的姿势260。
传感器数据208以及任何其它输入信息(诸如位置信息204和/或路线信息206)可以用于跟踪移动平台外部的特征(例如,全局地图)以及计算用户相对于全局地图的姿势。姿势估计引擎104可以使用先前描述的加速度和陀螺仪模型(例如,等式1至10)以及先前描述的EKF模型(例如,预测步骤1和更新步骤2)来在框244处计算用户的姿势260。如本领域普通技术人员将认识到的,在其它示例中,姿势估计引擎104可以使用任何其它合适的跟踪模型和/或算法(除了先前描述的EKF滤波器、加速度模型和/或陀螺仪模型之外或代替先前描述的EKF滤波器、加速度模型和/或陀螺仪模型)来在框244处计算姿势260。例如,姿势估计引擎104可以使用一个或多个卡尔曼滤波器和一个或多个不同的运动模型(诸如速度模型)来计算姿势260。
图2C示出了用于估计姿势和管理多个地图的过程270的示意图。在该示例中,跟踪器106可以接收传感器数据208的至少一部分以计算用户的相对姿势280。传感器数据208的一部分可以包括例如来自与用户相关联的设备(诸如用户佩戴的HMD)上的IMU传感器132的测量。在一些情况下,传感器数据208的一部分还可以包括来自移动平台上的IMU传感器132的测量和/或来自其它传感器的数据,诸如雷达回波、GPS信息、图像数据等。另外,跟踪器106可以可选地(如框272的虚线轮廓指示的)接收用于计算用户的相对姿势280的辅助传感器数据272。辅助传感器数据272可以包括例如来自移动平台上的IMU传感器132的IMU传感器数据、来自移动平台上的一个或多个图像传感器134的图像数据、与移动平台相关联的里程计信息等。
跟踪器106还可以使用从环境分类器114接收的环境分类以及从映射器108接收的一个或多个地图276、278A、278B、278N来生成用户的相对姿势280。环境的分类可以识别和/或分类与用户相关联的环境,诸如移动平台和/或移动平台外部的环境。跟踪器106可以使用环境分类和一个或多个地图来估计用户相对于一个或多个地图的姿势(280),该一个或多个地图在与用户相关联的当前上下文或环境(例如,用户所在的当前移动平台和/或当前移动平台外部的环境)中适用于用户。环境的分类可以帮助跟踪器106识别、选择和/或应用用于估计用户的相对姿势280的适当或相关地图。
一个或多个地图276、278A、278B、278N可以包括全局地图(例如,外部环境的地图)和/或与一个或多个移动平台相关联的一个或多个移动地图。一个或多个地图276、278A、278B、278N可以存储在地图存储装置124上并且从中取回。在一些情况下,映射器108可以基于传感器数据208、由跟踪器106提供的跟踪信息和/或由图像分割引擎116提供的一个或多个分割图像来生成一个或多个地图276、278A、278B、278N中的一些或全部。一个或多个分割图像可以是基于与用户相关联的环境的一个或多个图像。一个或多个分割图像可以标记或标识一个或多个图像中对应于(例如,匹配或表示)特定地图或环境的区域。
此外,环境分类器114可以基于环境分类器114接收到的图像数据(例如,来自传感器数据208)来生成环境的分类。在一些示例中,环境分类器114可以使用神经网络和/或机器学习算法来处理来自传感器数据208的一个或多个图像,以对基于一个或多个图像识别的环境进行分类。环境分类器114还可以使用分类结果来确定用户已经进入与不同的或新的移动地图相关联的新移动平台的概率。
此外,图像分割引擎116可以接收与用户相关联的环境的图像(例如,来自传感器数据208)(例如,移动平台内部和/或外部的环境的图像),以生成分割图像并且标记或标识图像中对应于(例如,匹配或表示)特定地图或环境的区域。在一些情况下,图像分割引擎116还可以从环境分类器114接收分类结果,并且使用分类结果来生成分割图像和/或标记或识别图像中对应于特定地图或环境的区域。
映射器108可以接收分割图像(和/或对应的信息或分析)以从地图存储装置124生成、选择和/或取回一个或多个地图(276、278A、278B、278N)。在一些情况下,映射器108还可以使用来自跟踪器106的跟踪信息来从地图存储装置124生成、选择和/或取回一个或多个地图。
在一些情况下,先前被选择和/或用于用户的地图可能不再适用。例如,如果用户从一个移动平台移动到不同的移动平台,则在移动到不同的移动平台之前适用于该用户的移动地图将不再适用或准确。因此,为了确保地图的准确使用,映射器108可以检测用户何时进入了新的或不同的移动平台和/或移动地图。映射器108可以使用来自图像分割引擎116的分割图像(和/或来自分割图像的信息)来在框274处确定是否检测到新地图(例如,新移动地图和/或移动平台)。在一些实现中,映射器108还可以使用来自跟踪器106的跟踪信息和/或来自环境分类器114的分类信息来在用户进入新的移动平台或环境时检测新地图。
分割图像(和/或相关联的信息)、来自跟踪器106的跟踪信息和/或来自环境分类器114的分类可以使映射器108能够确定用户已经进入了新地图或环境的概率。在一些示例中,映射器108可以在其识别与用户的当前上下文或环境相关联的传感器数据(例如,IMU传感器样本)与通过跟踪地图点子集计算的几何约束之间的矛盾时检测新地图。此外,在一些情况下,当确定是否已经检测到新地图时,映射器108和/或跟踪器106可以验证是否可以成功跟踪来自假设地图的地图点。
在某些情况下,映射器108可以检测多个模型或地图的存在。例如,映射器108可以尝试将传感器数据(例如,208)拟合到多个模型或地图。传感器数据的成功拟合可以暗示存在多个地图。在一些示例中,映射器108可以在地图(诸如全局地图(例如,276))中嵌入元数据,以指示地图内存在多个移动地图。例如,具有多个电梯的建筑物的全局地图可以被嵌入有元数据,该元数据指示建筑物的全局地图中存在多个移动地图(与多个电梯相关联)。
返回到框274,如果映射器108检测到新地图,则映射器108可以从地图存储装置124取回新地图,并且将新地图提供给跟踪器106以用于计算用户的相对姿势280。在一些情况下,如果映射器108确定用户已经进入了新的移动平台或环境,并且地图存储装置124中没有对应或匹配的地图可用,则映射器108可以为新的移动平台或环境创建新地图。映射器108可以使用传感器数据208、基于来自图像分割引擎116的分割图像跟踪的特征、来自环境分类器114的分类信息、来自跟踪器106的跟踪信息、辅助传感器数据272和/或任何其它传感器和/或映射数据来生成新地图。
图3示出了在全局地图302内移动的示例移动地图304的图。移动地图304可以表示移动平台,诸如车辆、电梯、飞机、船舶、运输工具或任何其它移动平台。全局地图302可以表示移动地图304和/或与移动地图304相关联的移动平台外部的环境。例如,移动地图304可以表示电梯,并且全局地图302可以表示电梯所在的建筑物。作为另一示例,移动地图304可以表示汽车,并且全局地图302可以表示汽车外部的环境(和/或汽车所在或行驶的位置),诸如街道、街区、停车场等。
在该示例中,在时间t1处,移动地图304位于全局地图302内的第一位置。当移动地图302位于第一位置时,移动地图304内的图像传感器208可以检测移动地图304内的特征306和在移动地图304外部但在全局地图302内的特征308。全局地图302内的额外特征310可能从移动地图304不可见和/或在图像传感器208的可检测距离内不可见。因此,当移动地图302处于第一位置时,图像传感器208未检测到或跟踪超出范围或可见性的特征310。
当移动地图位于第一位置并且特征306和308在范围和可见性内时,图像传感器208可以继续跟踪特征306和308。在时刻t2处,移动地图304可以移动到全局地图302内的第二位置。当移动地图302移动到第二位置时,图像传感器208可以进入先前超出范围和可见性的特征310的范围或可见性内。因此,在时间t2处,图像传感器208能够检测和跟踪全局地图302内的特征310。因此,即使移动地图304在全局地图302内移动,图像传感器208也可以继续跟踪全局地图302和移动地图304内的特征。
跟踪的特征可以用于调整相对姿势信息,该相对姿势信息用于向与移动地图304相关联的移动平台内的用户提供虚拟内容和XR体验。跟踪的特征和适配的相对姿势信息可以用于确保向移动地图304内的用户显示的内容能够适配移动图304的移动,这在与移动地图304相关联的移动平台移动时允许内容匹配用户的感知运动。
图4A示出了移动平台402的侧视图400,该移动平台402被配置有传感器132和134以用于计算相对姿势信息并且向移动平台402上的用户404提供XR体验。从侧视图400可以看出,佩戴HMD 408的用户404位于移动平台402内。在该示例中,移动平台402是汽车。此外,出于解释目的,提供HMD 408作为可以与移动平台中的用户相关联并且可以用于向用户提供XR体验的设备的非限制性示例。为了说明,其它示例设备可以包括但不限于平板计算机、移动电话、膝上型计算机、便携式电子系统(例如,便携式游戏系统、便携式显示系统等)、智能可穿戴设备(例如,智能手表、智能护目镜等)、智能电视、汽车402中的计算元件等。
为了收集运动度量、定位信息、位置信息等以计算相对姿势信息并且向用户404呈现真实的XR体验,汽车402可以包括汽车402内部和/或外部的各种传感器(130)。另外,在一些示例中,位于汽车402中并且与用户404相关联的计算设备(例如,408)(例如,该示例中的HMD 408)还可以包括用于计算和获得此类运动度量、定位信息、位置信息等的一个或多个传感器130。例如,汽车402中的用户404佩戴的HMD 408可以包括一个或多个传感器130。在一个说明性示例中,HMD 408上的一个或多个传感器130可以包括IMU传感器(132)和/或图像传感器(134)。
此外,在图4A所示的示例中,汽车402上的传感器可以包括IMU传感器132A、132B和图像传感器134A、134B。特别地,汽车402可以包括安装在(和/或锚定到)汽车402的一个位置(例如,外面或外部位置、内部位置等)上的IMU传感器132A和安装在(和/或锚定到)汽车402的不同位置(例如,安装在或锚定到头枕、座椅、车门的内部部分、车顶、仪表板、车窗406的内部区域等)。如框134A的虚线轮廓所指示的,IMU传感器132A可以是可选的。汽车402还可以在汽车402的不同位置上包括图像传感器134A和134B。
汽车402上的IMU传感器132A和132B可以计算与汽车相关联的运动参数,例如但不限于汽车402的速度、汽车402的加速度、汽车402的方向或轨迹、汽车402的高度、汽车402的位置、汽车402的角速率或速度、汽车402的运动、汽车402的朝向、汽车402与一个或多个其他物体的接近度或范围等。由IMU传感器132A和132B计算的运动参数可以是相对于汽车的外部环境(例如,道路、汽车外部的对象等)和/或用户404(和/或HMD 408)的。此外,由IMU传感器132A和132B计算的运动参数可以用于计算汽车402的姿势(例如,相对于汽车402的外部);计算用户404的姿势(例如,相对于汽车402和/或汽车402的外部);识别汽车402内部和/或外部环境中的特征和/或特性;识别和/或校正与其它传感器相关联的漂移或噪声等。
图像传感器134A和134B可以捕获一个或多个对象、场景、环境等的图像(例如,图像数据)。例如,图像传感器134A可以用于捕获车辆402外部的对象、特征、场景或环境的一个或多个图像,并且图像传感器134B可以用于捕获汽车402内部的对象、特征、场景或环境的一个或多个图像。在一些示例中,图像传感器134B可以捕获汽车402的内部环境的一个或多个图像和/或汽车402内部的一个或多个特征的一个或多个图像。在一个说明性示例中,图像传感器134B可以用于捕获用户404和/或HMD 408的一个或多个图像,其可以用于计算用户404的头部姿势和/或校正IMU传感器132A和132B(和/或HMD 408上的传感器(130))所经历的漂移或噪声,如先前解释的。在另一说明性示例中,由图像传感器134B捕获的图像可以用于识别汽车402内部的特征和/或特性;识别汽车402外部的特征;等等。
HMD 408上的一个或多个传感器130可以用于计算与用户404相关联的运动参数,例如但不限于用户404的运动、用户402的位置、用户404的角速率或速度、用户404的加速度、用户402的方向和/或与用户404相关联的任何其它运动或位置信息。在一些示例中,运动参数可以是相对于汽车402和/或汽车的外部环境(例如,道路、汽车外部的对象等)的。由HMD 408上的一个或多个传感器130计算的运动参数可以用于计算用户404的相对姿势。在一些情况下,运动参数还可以用于识别汽车402内部的特征和/或特性;识别汽车402外部和从汽车402可见的特征,识别和/或校正与其它传感器相关联的漂移或噪声;等等。
在一些示例中,HMD 408上的一个或多个传感器130可以包括用于捕获图像数据的图像传感器134。这些示例中的图像传感器134可以捕获用户404周围的一个或多个对象、场景、特征和/或环境的图像,诸如汽车402的内部(和/或其一部分)、汽车402中的一个或多个特征、汽车402中的一个或多个对象、从汽车402内部可见的汽车外部的一个或多个对象、从汽车402内部可见的汽车外部的场景或环境等。可以在以下情况时使用图像:确定用户404的姿势;识别汽车402内部的特征和/或特性;识别和/或校正与其它传感器相关联的漂移或噪声;等等。
在一些示例中,可以比较来自汽车402上的传感器132A-B和134A-B和/或HMD 408上的传感器130的数据,以确定姿势信息(例如,汽车402的姿势、用户404的姿势等);识别汽车402内部和/或外部的特征;校正一个或多个传感器中的漂移或噪声;生成和/或选择表示汽车402中的环境、场景和/或特征的移动地图;等等。此外,在一些示例中,可以将来自汽车402上的传感器132A-B和134A-B和/或HMD 408上的传感器130的数据融合,以在计算姿势信息、校正来自传感器的漂移或噪声、生成或选择用于汽车402的移动地图等时实现更高的精度。
在一些实现中,汽车402的一个或多个车窗406可以包括用于向用户404显示虚拟内容的嵌入式(透明)显示器或HUD。例如,当向用户404呈现虚拟内容和/或XR体验时,虚拟内容处理系统102可以在汽车402的一个或多个窗口上的一个或多个显示器或HUD上投影或渲染虚拟内容和/或XR内容。
图4B示出了移动平台402的俯视图420。在该示例中,汽车402包括位于汽车402前部的图像传感器134A,并且可选地(如框132A的虚线轮廓所指示的)包括位于汽车402前部的IMU传感器132A。图像传感器134A可以捕获汽车402外部的一个或多个对象、场景、环境等的一个或多个图像。IMU传感器132A可以计算汽车402的运动参数。
另外,汽车402包括汽车402内部的IMU传感器132B。在该示例中,IMU传感器132B安装在或锚定到汽车402座椅的头枕。IMU传感器132B可以用于计算与汽车402和/或用户404相关联的运动参数。在一些示例中,汽车402还可以包括位于汽车402内部的图像传感器134B。在该示例中,图像传感器134B安装在或锚定到汽车402中的另一座椅的头枕。图像传感器134B可以用于捕获从汽车402内部可见的一个或多个对象、场景、环境、特征等的图像。在一些情况下,图像传感器134B还可以用于校正其它传感器中的传感器数据和/或漂移或噪声。
图5示出了在汽车402上提供给用户(例如,404)的示例XR体验500。在该示例中,互联网浏览器的虚拟图像504锚定到汽车402的车窗406并且显示在车窗406上。该示例中的车窗406可以包括嵌入式显示器。虚拟图像504是可以在车窗406上显示的内容的非限制性示例。其它示例可以在窗口406上显示其它类型的虚拟内容(除了虚拟图像504之外或代替虚拟图像504),诸如虚拟视频、虚拟对象、虚拟游戏、虚拟场景、虚拟模拟、虚拟环境、虚拟覆盖、弹出式广告牌或广告、交互式虚拟内容、一个或多个其它对象的虚拟图像等。
另外,虚拟对象408被锚定到在汽车402之外并且从汽车402可见的外部环境502内的位置。虚拟对象408可以被渲染和/或显示为看起来或用户感知虚拟对象408位于外部环境502中的特定位置一样。在一些情况下,虚拟对象408可以看起来或被感知为外部环境502内的真实或物理对象。
图6示出了向汽车402中的用户404提供的示例增强现实体验600。地图602示出了汽车402正在行驶的地理位置,包括地标和道路。当汽车402接近地图602中的设施604时,可以在汽车402的车窗406上为用户404渲染和/或显示虚拟内容606。该示例中的虚拟内容606可以与汽车402正在接近的设施604相关联。例如,虚拟内容606可以包括用于设施604的弹出式广告或广告牌,诸如销售广告或促销。虚拟内容606可以增强对汽车402中的用户404可见的外部或外面环境。例如,虚拟内容606可以对用户404显示为好像虚拟内容606是外部或外面环境的一部分或位于外部或外面环境的区域中一样。在这个意义上,虚拟内容606可以增强用户404从汽车402可见的真实或物理世界。
虚拟内容606可以被锚定到汽车402的移动地图和/或外部或外面环境的全局地图中的特定区域,并且被适配为与汽车402和/或用户404的运动一致(和/或考虑汽车402和/或用户404的运动)。例如,虚拟内容606可以被锚定到与车窗406相对应的汽车402的移动地图中的点。如先前描述地计算的姿势信息可以用于正确或准确地锚定和显示虚拟内容606,使其真实地显示为外部或外面环境的一部分或与外部或外面环境混合。此外,姿势信息和传感器数据可以用于准确地跟踪和适配虚拟内容606的位置,以与汽车402和/或用户404的运动匹配。
当汽车402继续行驶时,可以移除虚拟内容606(例如,一旦虚拟内容606和相关联的设施604与汽车402的位置不太相关和/或离设施604更远)。此外,当汽车402行驶时,可以向用户404呈现新的虚拟内容或体验,其中新的虚拟内容或体验被选择或配置为与跟汽车402相关联的新位置和/或外部环境更相关或集成。在一些示例中,虚拟内容处理系统102可以基于一个或多个因素(诸如用户偏好、用户简档、用户历史、汽车402的当前或预测位置、与用户404相关联的旅行路线、汽车402与一个或多个对象或设施的接近度等)来自动地选择和/或向用户呈现虚拟内容606和/或新的虚拟内容或体验。在其它示例中,可以基于用户404的手动输入或请求来选择和/或向用户404呈现虚拟内容606和/或新的虚拟内容或体验。例如,用户404可以向虚拟内容处理系统102提供用于显示虚拟内容606和/或新的虚拟内容或体验的输入或请求。
图7示出了在地图602上行驶并且改变路线或方向的汽车402的视图700。当汽车402改变方向时,虚拟内容处理系统102可以尝试检测或识别汽车402的方向的改变和新定位或位置。在一些示例中,可以使用GPS设备结合地图602来估计或近似汽车402的位置。GPS设备可以实现或安装在汽车402和/或与用户404相关联的设备(诸如HMD 408)上。
在一些情况下,地图602和来自GPS设备的数据可能不足以准确或清楚地估计汽车402的新定位或位置。例如,当汽车402驶出高速公路时,地图602和来自GPS设备的数据可能不足以准确检测或估计汽车402的方向的变化和/或新位置。因此,在一些示例中,可以实现一个或多个传感器130以消除歧义,从而更好地估计或近似汽车402的新位置(和/或方向)。在一些情况下,用于消除歧义的一个或多个传感器130可以包括一个或多个IMU传感器132。来自一个或多个IMU传感器132的数据可以与GPS数据和地图信息组合,以更好地估计或近似汽车的新位置(和/或方向)。一个或多个IMU传感器132可以位于汽车402和/或与用户404相关联的设备(诸如HMD 408)上。
在一些示例中,除了一个或多个IMU传感器132之外或代替一个或多个IMU传感器132,还可以使用其它类型的传感器来估计汽车402的新位置和/或方向。例如,可以实现磁强计(例如,在汽车402和/或HMD 408上)来近似与汽车402相关联的航向。此外,在一些实现中,可以在短持续时间内实现或使用将一个或多个传感器130(例如,与GPS设备和地图信息结合)用于估计汽车402的新位置和/或方向。例如,一个或多个传感器130可以用于消除歧义,直到更准确地确定汽车402的位置和/或方向为止。一旦已经更准确地确定汽车402的位置和/或方向,系统就可以恢复为使用GPS设备和地图信息来估计和/或跟踪汽车402的位置和/或方向。在其它示例中,可以在更长的持续时间内(或只要虚拟内容处理系统102正在使用)使用一个或多个传感器130来跟踪和估计汽车402的位置和/或方向。
通过更准确地估计汽车402的位置和/或方向,虚拟内容处理系统102可以向用户提供更准确和相关的XR体验和/或更新。例如,当汽车402改变方向时,如图7中可见,虚拟内容处理系统102可以使用汽车402的新估计位置和/或方向来更新呈现给用户404的虚拟内容的相对显示位置和/或更新呈现给用户404的配置或内容。
图8A示出了移动平台802的示例视图800。在该示例中,移动平台802是电梯。视图800描绘了电梯802的内部视图以及从电梯802可见的特征804和806。特征804可以包括与电梯802相关联的移动地图外部的视觉特征。例如,特征804可以包括电梯802外部的特征(例如,外部环境的视图中的特征)。此外,特征804可以表示与电梯802相关联的全局地图上的特征,该全局地图映射从电梯802可见的外部视图或环境。
特征806可以包括电梯802的移动地图内部的视觉特征。例如,特征806可以包括在电梯802内部和/或包含在电梯802的移动地图中的特定特征。
可以基于电梯802上的传感器130和/或与电梯上的用户相关联的设备(诸如HMD或移动计算设备)来跟踪特征804和806。在一些情况下,可以从电梯802的移动地图中的地图点跟踪特征804和806。例如,不是使用全局地图(除了移动地图之外或代替移动地图)来跟踪特征804和806,而是可以仅从移动地图内部的地图点跟踪特征804和806,以便避免在跟踪与电梯802相关联的全局地图的地图点中的特征时可能导致的潜在的轨迹错误。
图8B示出了移动平台812的另一示例视图810。在该示例中,移动平台812是汽车。视图810描绘了汽车812的内部视图以及从汽车812可见的特征814和816。特征814可以包括与汽车812相关联的移动地图外部的视觉特征。例如,特征814可以包括汽车812外部的特征(例如,外部环境的视图中的特征)。此外,特征814可以表示与汽车812相关联的全局地图上的特征,该全局地图映射从汽车812可见的外部视图或环境。
特征816可以包括汽车812的移动地图内部的视觉特征。例如,特征816可以包括在汽车812内部和/或包含在汽车812的移动地图中的特定特征。
可以基于汽车812上的传感器130和/或与电梯上的用户相关联的设备(诸如HMD或移动计算设备)来跟踪特征814和816。在一些情况下,可以从汽车812的移动地图中的地图点跟踪特征814和816。例如,不是使用全局地图(除了移动地图之外或代替移动地图)跟踪特征814和816,而是可以仅从移动地图内部的地图点跟踪特征814和816,以便避免在跟踪与汽车812相关联的全局地图的地图点中的特征时可能导致的潜在的轨迹错误。
图9示出了用于检测用户何时离开移动平台(和/或相关联的移动地图)并且进入新的移动平台(和/或相关联的移动地图)的方案900的图。在该示例中,位于电梯802中的用户离开并且进入汽车812。为了检测用户已经进入新的移动平台(例如,汽车812),环境分类器114和图像分割引擎116可以处理电梯802的图像和汽车812的图像(例如,由一个或多个图像传感器134捕获)。
环境分类器114可以分析图像并且生成移动平台802和812的分类。可以将分类连同图像一起提供给图像分割引擎116,以检测用户已经进入新的移动平台(例如,汽车812)。使用来自环境分类器114的分类信息,图像分割引擎116可以确定哪些图像对应于哪个环境和/或移动平台。图像分割引擎116可以分割图像并且在图像中标记与电梯802和汽车812的移动地图相对应或匹配的一个或多个相应区域。
以这种方式,图像分割引擎116可以确定与当前用户的上下文(例如,最近捕获的图像)相对应的图像与新的移动地图(例如,汽车812的移动地图)匹配或相对应,并且从而确定用户已经进入新的移动地图或平台。该信息将允许虚拟内容处理系统102更新用于用户的移动地图以及跟踪适用移动地图中的特征和/或地图点。
在一些示例中,环境分类器114和图像分割116可以用于确定传感器测量和通过跟踪地图点的子集计算的用户的当前移动地图(例如,电梯802的移动地图)的几何约束之间是否存在矛盾。传感器测量和几何约束之间的这种矛盾可以指示用户已经进入不同的移动地图(例如,汽车812的移动地图),因为来自传感器数据的观测不再匹配先前的移动地图(例如,电梯802的移动地图)。
图10示出了可以由例如环境分类器114和/或图像分割引擎116实现的神经网络1010的示例配置1000。在该示例中,神经网络1010包括输入层1002,其包括输入数据,诸如来自一个或多个图像传感器134的图像(例如,图像数据248)。图像可以捕获与一个或多个移动地图和/或平台相关联的视图、场景、环境、移动平台和/或对象。在一个说明性示例中,输入层1002可以包括表示一个或多个输入图像的像素的数据。
神经网络1010包括隐藏层1004A至1004N(下文统称为“1004”)。隐藏层1004可以包括n个隐藏层,其中n是大于或等于1的整数。可以使隐藏层的数量包括与给定应用所需的一样多的层。神经网络1010还包括输出层1006,其提供由隐藏层1004执行的处理产生的输出。在一个说明性示例中,输出层1006可以提供输入图像中一个或多个对象的分类和/或定位。分类可以包括识别对象或场景的类型的类别(例如,汽车、电梯、火车、船舶、飞机或任何其它对象或场景),并且定位可以包括指示对象或场景位置的边界框。
神经网络1010是互连节点的多层深度学习网络。每个节点可以表示一条信息。与节点相关联的信息在不同层之间共享,并且在处理信息时,每个层保留信息。在一些情况下,神经网络1010可以包括前馈网络,在这种情况下,不存在反馈连接,其中网络的输出被反馈回自身。在一些情况下,神经网络1010可以包括递归神经网络,其可以具有允许在读取输入时跨越节点携带信息的回路。
通过各层之间的节点到节点互连,可以在节点之间交换信息。输入层1002的节点可以激活第一隐藏层1004A中的节点集合。例如,如图所示,输入层1002的输入节点中的每个输入节点连接到第一隐藏层1004A的节点中的每个节点。隐藏层1004A的节点可以通过向信息应用激活函数来变换每个输入节点的信息。然后,从变换推导出的信息可以被传递给下一隐藏层(例如,1004B)的节点并且激活这些节点,这些节点可以执行其自己指定的功能。示例功能包括卷积、上采样、数据变换、池化和/或任何其它合适的功能。然后,隐藏层(例如,1004B)的输出可以激活下一隐藏层(例如,1004N)的节点,以此类推。最后隐藏层的输出可以激活输出层1006的一个或多个节点,此时提供输出。在一些情况下,虽然神经网络1010中的节点(例如,节点1008)被示为具有多条输出线,但是节点具有单个输出,并且被示为从节点输出的所有线表示相同的输出值。
在一些情况下,每个节点或节点之间的互连可以具有权重,该权重是从神经网络1010的训练中推导出的参数集合。例如,节点之间的互连可以表示关于互连节点学习的一条信息。互连可以具有可以调谐的数值权重(例如,基于训练数据集),从而允许神经网络1010自适应于输入并且能够随着更多数据被处理而学习。
可以对神经网络1010进行预训练,以使用不同的隐藏层1004来处理来自输入层1002中的数据的特征,以便通过输出层1006提供输出。在使用神经网络1010来识别图像中的对象或特征的示例中,可以使用包括图像和标签的训练数据来训练神经网络1010。例如,训练图像可以输入到神经网络1010中,其中每个训练图像具有指示每个图像中的一个或多个对象或特征的类别的标签(例如,向网络指示对象是什么以及它们具有什么特征)。
在一些情况下,神经网络1010可以使用被称为反向传播的训练过程来调整节点的权重。反向传播可以包括前向传递、损失函数、反向传递和权重更新。对一次训练迭代执行前向传递、损失函数、反向传递和参数更新。对于每个训练图像集合,该过程可以重复一定次数的迭代,直到神经网络1010得到足够的训练,使得精确地调整层的权重。
对于识别图像中的对象的示例,前向传递可以包括通过神经网络1010传递训练图像。在训练神经网络1010之前,可以首先对权重进行随机化。图像可以包括例如表示图像像素的数字阵列。阵列中的每个数字可以包括从0到255的值,该值描述阵列中该位置的像素强度。在一个示例中,阵列可以包括具有28行28列像素和3个颜色分量(诸如红色、绿色和蓝色、或亮度和两个色度分量等)的28x 28x 3数字阵列。
对于神经网络1010的第一训练迭代,输出可以包括不偏好任何特定类别的值,这是由于权重在初始化时是随机选择的。例如,如果输出是具有对象包括不同类别的概率的向量,则每个不同类别的概率值可以相等或至少非常相似(例如,对于十个可能的类别,每个类别可以具有0.1的概率值)。对于初始权重,神经网络1010无法确定低级别特征,并且因此无法准确确定对象的分类可能是什么。损失函数可以用于分析输出中的错误。可以使用任何合适的损失函数定义。
第一训练图像的损失(或错误)可能是高的,因为实际值将不同于预测输出。培训的目标是使损失量最小化,以便预测输出与训练标签相同。神经网络1010可以通过确定哪些输入(权重)对网络的损失贡献最大来执行反向传递,并且可以调整权重,使得损失减小并且最终最小化。
可以计算损失相对于权重的导数,以确定对网络损失贡献最大的权重。在计算导数之后,可以通过更新滤波器的权重来执行权重更新。例如,可以更新权重,使得它们在梯度的相反方向上改变。学习速率可以被设置为任何合适的值,其中高学习速率包括较大的权重更新,并且低值指示较小的权重更新。
神经网络1010可以包括任何合适的深度网络。一个示例包括卷积神经网络(CNN),其包括输入层和输出层,其中在输入层和输出层之间具有多个隐藏层。CNN的隐藏层包括一系列卷积、非线性、池化(用于下采样)和完全连接层。在其它示例中,神经网络1010可以表示除CNN之外的任何其它深度网络,诸如自动编码器、深度信念网络(DBN)、递归神经网络(RNN)等。
图11示出了被配置为执行深度学习的神经网络1010的示例使用。在该示例中,神经网络1010包括输入层1002、卷积隐藏层1004A、池化隐藏层1004B、完全连接层1004C和输出层1006。神经网络1010可以识别图像中的特定对象、场景、移动平台或环境特征(例如,汽车、电梯、火车、船舶、道路、自行车道、湖泊、公园、建筑物、交通工具等)。首先,图像中的每个像素被视为具有可学习权重和偏差的神经元。每个神经元接收一些输入,执行点积,并且可选地使用非线性函数遵循它。神经网络1010还可以通过表示从一端的原始图像像素到另一端的类别分数的单个可微分数函数以从图像中提取特定特征,来将某些属性编码到架构中。在将图像中的对象识别为对象、移动平台或环境的特定特征之后,神经网络1010可以生成每个特征的平均分数(或z分数),并且在用户定义的缓冲器内取分数的平均值。
在一些示例中,输入层1004A包括表示图像的数据。例如,数据可以包括表示图像的像素的数字阵列,其中阵列中的每个数字包括从0到255的值,该值描述阵列中该位置的像素强度。图像可以通过卷积隐藏层1004A、可选非线性激活层、池化隐藏层1004B和完全连接隐藏层1006传递,以在输出层1006处获得输出。输出1102、1104、1106、1108可以指示对象或移动平台(例如,汽车、电梯、火车、船舶)的类别或最佳地描述图像中的对象的类别的概率。
卷积隐藏层1004A可以分析输入层1002A的图像数据。卷积隐藏层1004A的每个节点可以连接到输入图像的节点(像素)的区域。卷积隐藏层1004A可以被视为一个或多个滤波器(每个滤波器对应于不同的激活或特征图),其中滤波器的每个卷积迭代是卷积隐藏层1004A的节点或神经元。节点与该节点的感受野(节点(像素)的区域)之间的每个连接学习权重,并且在一些情况下学习总体偏差,使得每个节点学习分析输入图像中的其特定的局部感受野。
卷积隐藏层1004A的卷积性质是由于卷积层的每个节点被应用于其对应的感受野。例如,卷积隐藏层1004A的滤波器可以在输入图像阵列的左上角开始,并且可以围绕输入图像卷积。如上所述,滤波器的每个卷积迭代可以被视为卷积隐藏层1004A的节点或神经元。在每个卷积迭代中,滤波器的值与图像的原始像素值的对应数量相乘。来自每个卷积迭代的乘法可以相加在一起,以获得该迭代或节点的总和。接着,根据卷积隐藏层1004A中的下一节点的感受野在输入图像中的下一位置继续该过程。在输入卷的每个唯一位置处处理滤波器产生表示该位置的滤波器结果的数字,从而产生针对卷积隐藏层1004A的每个节点确定总和值。
从输入层1002到卷积隐藏层1004A的映射可以被称为激活图(或特征图)。激活图包括表示输入卷的每个位置处的滤波结果的每个节点的值。激活图可以包括阵列,该阵列包括输入卷上的滤波器的每次迭代产生的各种总和值。卷积隐藏层1004A可以包括若干激活图,以便识别图像中的多个特征。图11中所示的示例包括三个激活图。使用三个激活图,卷积隐藏层1004A可以检测三种不同类型的特征,其中每个特征跨越整个图像可检测。
在一些示例中,可以在卷积隐藏层1004A之后应用非线性隐藏层。非线性层可以用于向一直计算线性运算的系统引入非线性。
可以在卷积隐藏层1004A之后(以及当使用非线性隐藏层时,在使用非线性隐藏层之后)应用池化隐藏层1004B。池化隐藏层1004B用于简化来自卷积隐藏层1004A的输出中的信息。例如,池化隐藏层1004B可以获取从卷积隐藏层1004A输出的每个激活图,并且使用池化功能来生成压缩的激活图(或特征图)。最大池化是池化隐藏层执行的功能的一个示例。池化隐藏层1004B可以使用其它形式的池化功能,诸如平均池化或其它合适的池化功能。向卷积隐藏层1004A中包括的每个激活图应用池化功能(例如,最大池化滤波器)。在图11所示的示例中,三个池化滤波器用于卷积隐藏层1004A中的三个激活图。
池化功能(例如,最大池化)可以确定是否在图像的区域中的任何位置找到给定的特征,并且丢弃精确的位置信息。这可以在不影响特征检测结果的情况下完成,因为一旦发现特征,特征的精确位置就没有其相对于其它特征的近似位置重要。最大池化(以及其它池化方法)提供的好处是池化特征更少,从而减少了后续层中所需的参数数量。
完全连接层1004C可以将来自池化隐藏层1004B的每个节点连接到输出层1006中的每个输出节点。完全连接层1004C可以获得先前池化层1004B的输出(其应当表示高级特征的激活图),并且确定与特定类别相关的特征。例如,完全连接层1004C层可以确定与特定类别最密切相关的高级特征,并且可以包括高级特征的权重(节点)。可以计算完全连接层1004C和池隐藏层1004B的权重之间的乘积,以获得不同类别的概率。
在一些示例中,来自输出层1006的输出可以包括n维向量,其中n可以包括程序在对图像中的对象或移动平台进行分类时必须从中选择的类别的数量。还可以提供其它示例输出。n维向量中的每个数字可以表示对象具有某一类别的概率。
图12示出了用于在移动平台上提供沉浸式扩展现实体验的示例过程1200。在该示例中,在步骤1202处,过程1200可以包括:从在移动平台上部署的多个传感器(130)获得传感器测量(208)。传感器测量可以包括与移动平台和移动平台中的用户相关联的运动参数。例如,传感器测量可以包括IMU传感器数据、图像数据、雷达回波、结构光数据、位置信息等。传感器测量可以提供例如移动平台和/或用户的相对速度、移动平台和/或用户的相对加速度,移动平台和/或用户的位置、移动平台和/或用户的高度、移动平台和/或用户的轨迹、移动平台和/或用户的相对角速率、移动平台和/或用户的相对位置、移动平台和/或用户的运动动力学等。
多个传感器(130)可以位于移动平台和/或与用户相关联的设备(诸如用户佩戴的HMD、用户携带的移动设备、用户佩戴的智能可穿戴设备等)上。移动平台可以包括任何移动的传送或运输系统,诸如车辆、电梯、火车、飞机、传送带、船舶等。在一些示例中,多个传感器(130)可以包括一个或多个IMU传感器(132)、一个或多个图像传感器(134)、一个或多个雷达(136)、里程计设备、一个或多个激光雷达、GPS设备(138)和/或任何其它类型的传感器。
在步骤1204处,过程1200可以包括:识别移动平台的特征和移动平台外部的环境的特征。可以基于传感器测量(208)和/或位置信息(204)、路由信息(206)和/或与移动平台和/或环境相关联的任何其它信息来识别和/或跟踪移动平台和移动平台外部的环境的特征。此外,在一些示例中,可以基于移动平台的移动地图和/或移动平台外部的环境的全局地图来识别和/或跟踪移动平台和移动平台外部的环境的特征。
在步骤1206处,过程1200可以包括:使用传感器测量(208)来跟踪移动平台相对于移动平台外部的环境的第一姿势。在步骤1208处,过程1200可以包括:使用传感器测量(208)来跟踪用户相对于移动平台的特征的第二姿势。在一些示例中,在步骤1208处,过程1200还可以跟踪用户相对于移动平台外部的环境的特征的第二姿势。在一些示例中,在步骤1208处,除了跟踪用户相对于移动平台特征的姿势之外,或者代替跟踪用户相对于移动平台特征的姿势,过程1200还可以跟踪用户相对于移动平台外部环境特征的姿势。
在一些情况下,过程1200可以跟踪用户相对于移动平台外部的环境的特征的第二姿势(例如,除了跟踪用户相对于移动平台的特征的第二姿势之外),并且丢弃跟踪数据、姿势数据和/或与移动平台外部的环境的特征相关的其它数据,以便减少由移动平台外部的环境的特征引起或加剧的噪音或信息过载。在其它情况下,过程1200可以跟踪用户相对于移动平台外部的环境的特征的第二姿势(例如,除了跟踪用户相对于移动平台的特征的姿势之外或代替跟踪用户相对于移动平台的特征的姿势),以用于将虚拟内容锚定到移动平台外部的环境的一个或多个特征,同时考虑用户的感知运动。
可以基于传感器测量(208)并且使用一个或多个跟踪模型和/或滤波器(诸如先前描述的加速度模型(例如,等式1-5)、陀螺仪模型(例如,等式6-10)、EKF算法(例如,预测步骤1和更新步骤2)和/或任何合适的跟踪模型或滤波器来计算移动平台的第一姿势和用户的第二姿势。
在步骤1210处,过程1200可以包括:基于第一姿势(例如,移动平台相对于移动平台外部的环境的姿势)和第二姿势(例如,用户相对于移动平台的特征和/或移动平台外部的环境的特征的姿势)来跟踪用户相对于移动平台外部的环境(和/或移动平台外部的环境的一个或多个特征)的第三姿势。例如,过程1200可以使用移动平台的姿势和/或运动以及用户相对于移动平台(和/或相对于移动平台的一个或多个特征)的姿势和/或运动来确定用户相对于移动平台外部的环境(和/或移动平台外部的环境的一个或多个特征)的第三姿势。
在一些情况下,过程1200可以实现其它额外的信息来计算移动平台的第一姿势和用户的第二姿势。例如,过程1200可以实现位置信息(204)、路由信息(206)、用户数据(202)、GIS数据、来自外部源的数据(142)、地图数据和/或与移动平台和/或环境相关联的任何其它信息。此外,在一些示例中,过程1200可以基于移动平台的移动地图和/或移动平台外部的环境的全局地图来计算或跟踪移动平台的第一姿势和用户的第二姿势。
在一些方面中,过程1200还可以包括:使用环境分类器(114)和由多个传感器(130)中的至少一个传感器(130)捕获的图像数据来检测用户已经进入不同的移动平台。例如,过程1200可以处理与用户相关联的当前上下文或移动平台的图像,以对图像中的环境和/或移动平台进行分类,并且确定由图像捕获的图像和/或环境对应于或匹配与用户的先前移动平台不同的移动平台。在一些情况下,检测用户已经进入不同的移动平台可以包括:检测用户已经进入不同的移动地图和/或识别与不同的移动平台相关联的不同的移动地图。
此外,在一些方面中,检测用户已经进入不同的移动平台可以包括:识别与不同的移动平台相关联的特征,以及跟踪用户相对于与不同的移动平台相关联的特征的额外姿势。在一些情况下,可以使用传感器测量(例如,IMU数据、图像数据、地图数据等)和/或与不同的移动平台相关联的移动地图来识别特征。
在一些示例中,过程1200还可以包括:基于传感器测量(208)与针对移动平台计算的几何约束之间的不一致性来检测用户已经离开移动平台。例如,可以通过跟踪移动平台的地图中的点子集来计算几何约束。
在一些实现中,检测用户已经进入不同的移动平台可以包括:确定传感器测量是否适合与两个或更多个移动平台相关联的两个或更多个地图;以及当传感器测量适合与两个或更多个移动平台相关联的两个或更多个地图时,确定移动平台外部的环境的全局地图包括与两个或更多个移动平台相关联的两个或更多个地图。这里,过程1200可以确定全局地图(例如,与用户相关联的全局环境)包括用户可以进入和离开的多个移动地图。在一些情况下,过程1200可以包括:在全局地图上存储关于全局地图包括与两个或更多个移动平台相关联的两个或更多个地图的指示。
在一些情况下,检测用户已经进入不同的移动平台可以包括:接收与用户相关联的当前环境的图像;使用图像分割算法来将图像分割成多个图像段;以及基于多个图像段来识别图像中与不同的移动平台的地图相对应的一个或多个区域。这里,不同的移动平台可以与当前环境相关联。此外,在一些示例中,识别图像中与不同的移动平台的地图相对应的一个或多个区域可以包括:将与不同的移动平台相关联的特征与不同的移动平台的地图中的一个或多个点进行匹配。
过程1200还可以包括:将虚拟内容锚定到移动平台的第一地图和/或移动平台外部的环境的第二地图中的一个或多个特征;以及在移动平台和/或移动平台外部的环境中的一个或多个区域上显示虚拟内容。在该示例中,一个或多个区域可以对应于移动平台的第一地图和/或移动平台外部的环境的第二地图中的一个或多个特征。在一些情况下,过程1200可以包括:从多个传感器(130)获得额外的传感器测量;以及适配虚拟内容的显示位置和/或虚拟内容的显示配置。
在一些实现中,过程1200可以包括:将虚拟内容锚定到移动平台的第一地图和/或移动平台外部的环境的第二地图中的一个或多个特征;将与移动平台、用户和/或移动平台外部的环境相关联的运动转换为虚拟运动;以及在移动平台和/或移动平台外部的环境的一个或多个区域上显示虚拟内容。一个或多个区域可以对应于移动平台的第一地图和/或移动平台外部的环境的第二地图中的一个或多个特征。此外,所显示的虚拟内容可以反映从与移动平台、用户和/或移动平台外部的环境相关联的运动转换的虚拟运动。在一些示例中,可以基于运动参数、用户相对于移动平台和/或移动平台外部的环境的姿势、和/或移动平台相对于移动平台和/或用户外部的环境的姿势来转换运动。
额外的传感器测量可以包括例如与移动平台和/或用户相关联的相对速度、移动平台和/或用户的相对加速度、移动平台和/或用户的轨迹、移动平台和/或用户的高度、移动平台和/或用户的位置、移动平台和/或用户的相对角速率或速度、与移动平台和/或用户相关联的运动动力学等。此外,在一些情况下,可以基于以下各项来适配虚拟内容的显示位置和/或虚拟内容的显示配置:与移动平台和/或用户相关联的相对速度、移动平台和/或用户的相对加速度、移动平台和/或用户的轨迹、移动平台和/或用户的高度、移动平台和/或用户的位置、移动平台和/或用户的相对角速率或速度、与移动平台和/或用户相关联的运动动力学等。
在一些实现中,过程1200可以包括:在移动平台和/或移动平台外部的环境中的一个或多个区域的虚拟表示内显示虚拟内容。此外,在一些示例中,虚拟内容可以包括音频、虚拟图像、虚拟视频、数字内容、虚拟游戏、交互式虚拟内容、虚拟内容覆盖、虚拟场景、虚拟模拟、虚拟对象、虚拟网页、浏览器的虚拟图像等。
过程1200还可以包括:基于由安装在与用户相关联的可穿戴设备(例如,HMD 408)上的一个或多个传感器和/或安装在移动平台上的一个或多个额外传感器捕获的图像数据,来跟踪安装在可穿戴设备上的一个或多个传感器与安装在移动平台上的一个或多个额外传感器之间的漂移。一个或多个传感器可以被配置为检测与可穿戴设备相关联的特征,并且一个或多个额外传感器可以被配置为检测与移动平台和移动平台外部的环境相关联的特征。在一些示例中,特征可以包括运动参数和/或场景/对象属性。在该示例中,过程1200还可以包括:基于漂移来调整与多个传感器(130)中的任何传感器(130)相关联的一个或多个传感器偏差。多个传感器(130)可以包括安装在可穿戴设备上的一个或多个传感器和安装在移动平台上的一个或多个额外传感器。
在一些情况下,跟踪移动平台相对于移动平台外部的环境的第一姿势可以包括:跟踪移动平台相对于移动平台外部的环境的第一地图(例如,全局地图)的第一姿势,并且跟踪用户的第二姿势可以包括:跟踪用户相对于移动平台的第二地图(例如,移动地图)和/或移动平台外部的环境的第一地图的姿势。此外,识别移动平台的特征和移动平台外部的环境的特征可以包括:跟踪移动平台的第一地图(例如,移动地图)中的第一特征集合和移动平台外部的环境的第二地图(例如,全局地图)中的第二特征集合。
在其它示例中,跟踪移动平台的第一姿势和跟踪用户的第二姿势可以是基于移动平台相对于移动平台外部的环境的速度、移动平台相对于移动平台外部的环境的加速度、移动平台的轨迹、移动平台的高度、移动平台的位置、用户的位置、用户的运动和/或任何其它运动动力学。
在一些示例中,过程1200可以由计算设备或装置来执行。在一个说明性示例中,过程1200可以由图1所示的虚拟内容处理系统和/或具有图13所示的计算设备架构1300的计算设备来执行。在一些情况下,计算设备或装置可以包括处理器、微处理器、微型计算机、或被配置为执行过程1200的步骤的设备的其它组件。在一些示例中,计算设备或装置可以包括被配置为收集传感器测量的一个或多个传感器。例如,计算设备可以包括头戴式显示器、移动设备或其它合适的设备。在一些示例中,计算设备或装置可以包括被配置为捕获一个或多个图像或视频的相机。在一些情况下,计算设备可以包括用于显示图像的显示器。在一些示例中,一个或多个传感器和/或相机与计算设备分离,在这种情况下,计算设备接收传感器测量。计算设备还可以包括被配置为传送数据的网络接口。
过程1200如逻辑流程图所示,其操作表示可以在硬件、计算机指令或其组合中实现的操作序列。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且所描述的操作中的任意数量的描述操作可以以任何顺序和/或并行地组合以实现过程。
另外,过程1200可以在被配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以作为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、通过硬件或其组合来实现。如上所述,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时性的。
图13示出了可以实现本文描述的各种技术的示例计算设备的示例计算设备架构1300。例如,计算设备架构1300可以实现图1所示的虚拟内容处理系统102,并且执行本文描述的色调映射技术。计算设备架构1300的组件被示为使用诸如总线之类的连接1305相互进行电通信。示例计算设备架构1300包括处理单元(CPU或处理器)1310和计算设备连接1305,计算设备连接1305将包括计算设备存储器1315(诸如只读存储器(ROM)1320和随机存取存储器(RAM)1325)的各种计算设备组件耦合到处理器1310。
计算设备架构1300可以包括高速存储器的高速缓存,该高速存储器与处理器1310直接连接、与处理器1310非常接近或集成为处理器1310的一部分。计算设备架构1300可以将数据从存储器1315和/或存储设备1330复制到高速缓存1312,以供处理器1310快速访问。以这种方式,高速缓存可以提供性能提升,其避免处理器1310在等待数据时出现延迟。这些和其它模块可以控制或被配置为控制处理器1310以执行各种动作。其它计算设备存储器1315也可用于供使用。存储器1315可以包括具有不同性能特性的多种不同类型的存储器。处理器1310可以包括任何通用处理器和硬件或软件服务(诸如存储在存储设备1330中的服务1 1332、服务2 1334和服务3 1336),其被配置为控制处理器1310以及软件指令被并入到处理器设计中的专用处理器。处理器1310可以是自包含系统,其包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称的或非对称的。
为了实现用户与计算设备架构1300的交互,输入设备1345可以表示任意数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触摸感应屏、键盘、鼠标、运动输入、语音等。输出设备1335还可以是本领域技术人员已知的多个输出机构中的一个或多个,诸如显示器、投影仪、电视、扬声器设备等。在一些情况下,多模式计算设备可以使得用户能够提供多种类型的输入以与计算设备架构1300进行通信。通信接口1340通常可以控制和管理用户输入和计算设备输出。对任何特定硬件布置的操作没有限制,并且因此,这里的基本特征在被开发时可以很容易地被替代以实现改进的硬件或固件布置。
存储设备1330是非易失性存储器,并且可以是硬盘或可以存储计算机可访问的数据(诸如盒式磁带、闪存卡、固态存储设备、数字多功能磁盘、盒式磁带、随机存取存储器(RAM)1325、只读存储器(ROM)1320以及其混合)的其它类型的计算机可读介质。存储设备1330可以包括用于控制处理器1310的服务1332、1334、1336。可以预期其它硬件或软件模块。存储设备1330可以连接到计算设备连接1305。在一个方面中,执行特定功能的硬件模块可以包括与必要的硬件组件(诸如处理器1310、连接1305、输出设备1335等)以执行该功能的计算机可读介质中存储的软件组件。
为了解释清楚,在一些情况下,本文的技术可以被呈现为包括包含如下的功能块的单独的功能块,这些功能块包括设备、设备组件、以软件体现的方法中的步骤或例程、或者硬件和软件的组合。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。
根据上述示例的方法可以使用计算机可执行指令来实现,计算机可执行指令被存储在计算机可读介质中或者以其它方式可从计算机可读介质得到。这样的指令可以包括例如指令或数据,指令或数据使得通用计算机、专用计算机或处理设备执行或者以其它方式将其配置为执行特定功能或特定的一组功能。可以通过网络访问所使用的计算机资源的部分。计算机可执行指令可以是例如二进制文件、诸如汇编语言之类的中间格式指令、固件、源代码等。可以用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、设置有非易失性存储器的USB设备、网络存储设备等。
实现根据这些公开内容的方法的设备可以包括硬件、固件和/或软件,并且可以采用多种形状因子中的任何一种。此类形状因子的典型示例包括膝上型计算机、智能电话、小型形状因子的个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能还可以体现在外围设备或插件卡中。通过另外的举例,这种功能还可以在单个设备中执行的不同芯片或不同过程之间的电路板上实现。
指令、用于传送这样的指令的介质、用于执行它们的计算资源以及用于支持这样的计算资源的其它结构是用于提供在本公开内容中描述的功能的示例模块。
在前面的描述中,参考本申请的特定实施例描述了本申请的各方面,但是本领域技术人员将认识到,本申请不限于此。因此,尽管本文已经详细描述了本申请的说明性实施例,但是应理解的是,可以以其它方式不同地体现和采用本公开内容的构思,并且所附的权利要求旨在被解释为包括这样的变型, 除了由现有技术限制的变型。可以单独地或共同地使用上述主题的各个特征和方面。此外,在不脱离本说明书的更宽泛的精神和范围的情况下,实施例可以在除了本文描述的环境和应用之外的任何数量的环境和应用中使用。因此,说明书和附图被认为是说明性的而不是限制性的。为了说明的目的, 以特定次序描述了方法。应当明白的是,在替代实施例中,可以以与所描述的次序不同的次序来执行所述方法。
将组件描述为“被配置为”执行某些操作的情况下,这种配置可以例如通过以下方式来实现:将电路或其它硬件设计为执行该操作,将可编程电路(例如,微处理器或其它适当的电路)编程为执行该操作,或其任何组合。
本领域普通技术人员将明白的是,在不脱离本说明书的范围的情况下,本文中使用的小于(“<”)和大于(“>”)符号或术语可以分别用小于或等于(“≤”)以及大于或等于(“≥”)符号来替换。
结合本文公开的示例描述的各种说明性的逻辑框、模块、 电路和算法步骤可以被实现为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,上面已经对各种说明性的组件、框、模块、电路和步骤围绕其功能进行了总体描述。至于这种功能被实现为硬件还是软件取决于特定的应用和被施加在整个系统上的设计约束。技术人员可以针对每种特定应用以不同的方式来实现所描述的功能,但是这种实现决策不应当被解释为导致脱离本申请的范围。
本文描述的技术还可以用电子硬件、计算机软件、固件或其任何组合来实现。这样的技术可以在各种设备中的任何一种中实现,诸如通用计算机、无线通信设备手机或具有多种用途(包括在无线通信设备手机和其它设备中的应用)的集成电路设备。被描述为模块或组件的任何特征都可以在集成逻辑设备中一起实现,或者分别作为分立但是可互操作的逻辑设备来实现。如果用软件来实现,则所述技术可以至少部分地由计算机可读数据存储介质来实现,计算机可读数据存储介质包括程序代码,程序代码包括在被执行时执行上述方法、算法和/或操作中的一个或多个的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,计算机程序产品可以包括包装材料。
计算机可读介质可以包括存储器或数据存储介质,诸如随机存取存储器(RAM)(诸如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。另外或替代地,所述技术可以至少部分地由以指令或数据结构的形式携带或传送程序代码并且可以由计算机访问、读取和/或执行的计算机可读通信介质(诸如传播的信号或波)来实现。
程序代码可以由处理器执行,处理器可以包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或分立逻辑电路。这样的处理器可以被配置为执行在本公开内容中描述的任何技术。通用处理器可以是微处理器,但是在替代方式中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP核的结合、或任何其它这样的配置。因此,如本文所使用的术语“处理器”可以指代任何前述结构、前述结构的任何组合、或适于实现本文描述的技术的任何其它结构或装置。另外,在一些方面中,本文描述的功能可以在被配置用于编码和解码的专用软件模块或硬件模块内提供,或者被合并在组合视频编码器-解码器(CODEC)中。
尽管使用了各种示例和其它信息来解释所附权利要求范围内的各方面,但是不应当基于此类示例中的特定特征或布置来暗示对权利要求的限制,因为普通技术人员将能够使用这些示例来推导出广泛的各种各样的实现。此外,尽管一些主题可能已经用特定于结构特征和/或方法步骤的示例的语言描述,但是应当理解,在所附权利要求中定义的主题不一定限于这些描述的特征或动作。例如,此类功能可以以不同的方式分布或在除本文识别的组件之外的组件中执行。事实上,所描述的特征和步骤被公开为所附权利要求的范围内的组件、计算设备和方法的示例。
记载集合中的“至少一个”的权利要求语言指示该集合中的一个成员或者该集合中的多个成员满足该权利要求。例如,记载“A和B中的至少一个”的权利要求语言意指A、B、或者A和B。
Claims (30)
1.一种方法,包括:
从移动平台中的至少一个移动平台上的一个或多个传感器和与所述移动平台中的用户相关联的设备获得传感器测量,所述传感器测量包括与所述移动平台和所述移动平台中的所述用户相关联的运动参数;
识别所述移动平台的特征和所述移动平台外部的环境的特征;
使用所述传感器测量来跟踪所述移动平台相对于所述移动平台外部的所述环境的第一姿势;
使用所述传感器测量来跟踪所述用户相对于所述移动平台的特征中的至少一个特征的第二姿势;以及
基于所述第一姿势和所述第二姿势来跟踪所述用户相对于所述移动平台外部的所述环境的特征中的至少一个特征的第三姿势。
2.根据权利要求1所述的方法,还包括:
使用环境分类器和由所述一个或多个传感器中的至少一个传感器捕获的图像数据检测所述用户已经进入不同的移动平台;
识别与所述不同的移动平台相关联的额外特征;以及
跟踪所述用户相对于与所述不同的移动平台相关联的额外特征的额外姿势。
3.根据权利要求2所述的方法,其中,检测所述用户已经进入所述不同的移动平台包括:
接收与所述用户相关联的当前环境的图像;
使用图像分割算法来将所述图像分割为多个图像段;以及
基于所述多个图像段来识别所述图像中的与所述不同的移动平台的地图相对应的一个或多个区域,所述不同的移动平台与所述当前环境相关联。
4.根据权利要求3所述的方法,其中,识别所述图像中的与所述不同的移动平台的所述地图相对应的一个或多个区域包括:将与所述不同的移动平台相关联的所述额外特征与所述不同的移动平台的所述地图中的一个或多个点相匹配。
5.根据权利要求1所述的方法,还包括:
基于所述传感器测量与针对所述移动平台计算的几何约束之间的不一致性来检测所述用户已经离开所述移动平台,所述几何约束是通过跟踪所述移动平台的地图中的点子集来计算的。
6.根据权利要求1所述的方法,还包括:
确定所述传感器测量是否适合与两个或更多个移动平台相关联的两个或更多个地图;
当所述传感器测量适合与所述两个或更多个移动平台相关联的所述两个或更多个地图时,确定所述移动平台外部的所述环境的全局地图包括与所述两个或更多个移动平台相关联的所述两个或更多个地图;以及
在所述全局地图上存储关于所述全局地图包括与所述两个或更多个移动平台相关联的所述两个或更多个地图的指示。
7.根据权利要求1所述的方法,还包括:
将虚拟内容锚定到所述移动平台的第一地图和所述移动平台外部的所述环境的第二地图中的至少一项中的一个或多个特征;以及
在所述移动平台和所述移动平台外部的所述环境中的至少一项中的一个或多个区域上显示虚拟内容,其中,所述一个或多个区域对应于所述移动平台的所述第一地图和所述移动平台外部的所述环境的所述第二地图中的至少一项中的一个或多个特征。
8.根据权利要求7所述的方法,还包括:
从所述一个或多个传感器获得额外传感器测量,所述额外传感器测量包括以下各项中的至少一项:与所述移动平台相关联的相对速度、所述移动平台的相对加速度、所述移动平台的轨迹和所述移动平台的高度;以及
基于以下各项中的至少一项来适配所述虚拟内容的显示位置和所述虚拟内容的显示配置中的至少一项:与所述移动平台相关联的所述相对速度、所述移动平台的所述相对加速度、所述移动平台的所述轨迹和所述移动平台的所述高度。
9.根据权利要求7所述的方法,还包括:在所述移动平台和所述移动平台外部的所述环境中的至少一项中的所述一个或多个区域的虚拟表示内显示所述虚拟内容,其中,所述虚拟内容包括以下各项中的至少一项:音频、虚拟图像、虚拟视频、数字内容、一个或多个虚拟游戏、交互式虚拟内容、虚拟内容覆盖、虚拟场景、虚拟模拟、虚拟对象和虚拟网页。
10.根据权利要求1所述的方法,还包括:
基于由安装在与所述用户相关联的可穿戴设备上的第一传感器和安装在所述移动平台上的第二传感器中的至少一者捕获的图像数据,来跟踪安装在所述可穿戴设备上的所述第一传感器与安装在所述移动平台上的所述第二传感器之间的漂移,所述第一传感器被配置为检测与所述可穿戴设备相关联的特征,并且所述第二传感器被配置为检测与所述移动平台和所述移动平台外部的所述环境相关联的特征,所述特征包括运动参数和场景属性中的至少一项;以及
基于所述漂移来调整与所述一个或多个传感器中的至少一个传感器相关联的一个或多个传感器偏差,所述一个或多个传感器包括安装在所述可穿戴设备上的所述第一传感器和安装在所述移动平台上的所述第二传感器。
11.根据权利要求1所述的方法,其中,至少一个传感器安装在与所述用户相关联的可穿戴设备上,并且至少一个额外传感器安装在所述移动平台上,所述至少一个传感器被配置为检测与所述可穿戴设备相关联的一个或多个特征,并且所述至少一个额外传感器可以被配置为检测与所述移动平台和所述移动平台外部的所述环境相关联的一个或多个特征,所述一个或多个特征包括运动参数和场景属性中的至少一项。
12.根据权利要求1所述的方法,其中,跟踪所述移动平台相对于所述移动平台外部的所述环境的所述第一姿势包括:跟踪所述移动平台相对于所述移动平台外部的所述环境的第一地图的所述第一姿势,并且其中,跟踪所述用户的所述第二姿势包括:跟踪所述用户相对于所述移动平台的第二地图的所述第二姿势。
13.根据权利要求1所述的方法,其中,识别所述移动平台的特征和所述移动平台外部的所述环境的特征包括:跟踪所述移动平台的第一地图中的第一特征集合和所述移动平台外部的所述环境的第二地图中的第二特征集合。
14.根据权利要求1所述的方法,其中,所述传感器测量包括以下各项中的至少一项:所述移动平台相对于所述移动平台外部的所述环境的速度、所述移动平台相对于所述移动平台外部的所述环境的加速度、所述移动平台的轨迹、所述移动平台的高度、所述移动平台的位置、所述用户的位置和所述用户的运动。
15.根据权利要求1所述的方法,其中,跟踪所述移动平台的所述第一姿势以及跟踪所述用户的所述第二姿势是基于以下各项中的至少一项的:所述移动平台相对于所述移动平台外部的所述环境的速度、所述移动平台相对于所述移动平台外部的所述环境的加速度、所述移动平台的轨迹、所述移动平台的高度、所述移动平台的位置、所述用户的位置和所述用户的运动。
16.根据权利要求1所述的方法,其中,所述一个或多个传感器包括以下各者中的至少一者:惯性测量单元、一个或多个图像传感器、一个或多个雷达、里程计设备以及一个或多个激光雷达,并且其中,所述移动平台包括以下各者中的至少一者:车辆、电梯、飞机、船舶和运输工具。
17.根据权利要求1所述的方法,还包括:
将虚拟内容锚定到所述移动平台的第一地图和所述移动平台外部的所述环境的第二地图中的至少一项中的一个或多个特征;
将与所述移动平台、所述用户和所述移动平台的外部的所述环境中的至少一项相关联的运动转换为虚拟运动,所述运动是基于所述第一姿势、所述第二姿势、所述第三姿势和所述运动参数中的至少一项被转换的;以及
在所述移动平台和所述移动平台外部的所述环境中的至少一项的一个或多个区域上显示所述虚拟内容,其中,所述一个或多个区域对应于所述移动平台的所述第一地图和所述移动平台外部的所述环境的所述第二地图中的至少一项中的所述一个或多个特征,其中,所显示的所述虚拟内容的至少一部分反映所述虚拟运动。
18.一种装置,包括:
存储器;以及
耦合到所述存储器的处理器,所述处理器被配置为:
从移动平台中的至少一个移动平台上的一个或多个传感器和与所述移动平台中的用户相关联的设备获得传感器测量,所述传感器测量包括与所述移动平台和所述移动平台中的所述用户相关联的运动参数;
识别所述移动平台的特征和所述移动平台外部的环境的特征;
使用所述传感器测量来跟踪所述移动平台相对于所述移动平台外部的所述环境的第一姿势;
使用所述传感器测量来跟踪所述用户相对于所述移动平台的特征中的至少一个特征的第二姿势;以及
基于所述第一姿势和所述第二姿势来跟踪所述用户相对于所述移动平台外部的所述环境的特征中的至少一个特征的第三姿势。
19.根据权利要求18所述的装置,其中,所述处理器被配置为:
使用环境分类器和由所述一个或多个传感器中的至少一个传感器捕获的图像数据检测所述用户已经进入不同的移动平台;
识别与所述不同的移动平台相关联的额外特征;以及
跟踪所述用户相对于与所述不同的移动平台相关联的额外特征的额外姿势。
20.根据权利要求19所述的装置,其中,检测所述用户已经进入所述不同的移动平台包括:
接收与所述用户相关联的当前环境的图像;
使用图像分割算法来将所述图像分割为多个图像段;以及
基于所述多个图像段来识别所述图像中的与所述不同的移动平台的地图相对应的一个或多个区域,所述不同的移动平台与所述当前环境相关联。
21.根据权利要求20所述的装置,其中,识别所述图像中的与所述不同的移动平台的所述地图相对应的一个或多个区域包括:将与所述不同的移动平台相关联的所述额外特征与所述不同的移动平台的所述地图中的一个或多个点相匹配。
22.根据权利要求18所述的装置,其中,所述处理器被配置为:
基于所述传感器测量与针对所述移动平台计算的几何约束之间的不一致性来检测所述用户已经离开所述移动平台,所述几何约束是通过跟踪所述移动平台的地图中的点子集来计算的。
23.根据权利要求18所述的装置,其中,所述处理器被配置为:
确定所述传感器测量是否适合与两个或更多个移动平台相关联的两个或更多个地图;
当所述传感器测量适合与所述两个或更多个移动平台相关联的所述两个或更多个地图时,确定所述移动平台外部的所述环境的全局地图包括与所述两个或更多个移动平台相关联的所述两个或更多个地图;以及
在所述全局地图上存储关于所述全局地图包括与所述两个或更多个移动平台相关联的所述两个或更多个地图的指示。
24.根据权利要求18所述的装置,其中,所述处理器被配置为:
将虚拟内容锚定到所述移动平台的第一地图和所述移动平台外部的所述环境的第二地图中的至少一项中的一个或多个特征;以及
在所述移动平台和所述移动平台外部的所述环境中的至少一项中的一个或多个区域上显示虚拟内容,其中,所述一个或多个区域对应于所述移动平台的所述第一地图和所述移动平台外部的所述环境的所述第二地图中的所述至少一项中的所述一个或多个特征,并且其中,所述虚拟内容包括以下各项中的至少一项:音频、虚拟图像、虚拟视频、数字内容、一个或多个虚拟游戏、交互式虚拟内容、虚拟内容覆盖、虚拟场景、虚拟模拟、虚拟对象和虚拟网页。
25.根据权利要求24所述的装置,其中,所述处理器被配置为:
从所述一个或多个传感器获得额外传感器测量,所述额外传感器测量包括以下各项中的至少一项:与所述移动平台相关联的相对速度、所述移动平台的相对加速度、所述移动平台的轨迹和所述移动平台的高度;以及
基于以下各项中的至少一项来适配所述虚拟内容的显示位置和所述虚拟内容的显示配置中的至少一项:与所述移动平台相关联的所述相对速度、所述移动平台的所述相对加速度、所述移动平台的所述轨迹和所述移动平台的所述高度。
26.根据权利要求18所述的装置,其中,所述处理器被配置为:
基于由安装在与所述用户相关联的可穿戴设备上的第一传感器和安装在所述移动平台上的第二传感器中的至少一者捕获的图像数据,来跟踪安装在所述可穿戴设备上的所述第一传感器与安装在所述移动平台上的所述第二传感器之间的漂移,所述第一传感器被配置为检测与所述可穿戴设备相关联的特征,并且所述第二传感器被配置为检测与所述移动平台和所述移动平台外部的所述环境相关联的特征,所述特征包括运动参数和场景属性中的至少一项;以及
基于所述漂移来调整与所述一个或多个传感器中的至少一个传感器相关联的一个或多个传感器偏差,所述一个或多个传感器包括安装在所述可穿戴设备上的所述第一传感器和安装在所述移动平台上的所述第二传感器。
27.根据权利要求18所述的装置,其中,所述一个或多个传感器包括以下各者中的至少一者:惯性测量单元、图像传感器、雷达、里程计设备和激光雷达,其中,所述移动平台包括以下各者中的至少一者:车辆、电梯、飞机、船舶和运输工具,并且其中,至少一个传感器安装在与所述用户相关联的可穿戴设备上,并且至少一个额外传感器安装在所述移动平台上,所述至少一个传感器被配置为检测与所述可穿戴设备相关联的一个或多个特征,并且所述至少一个额外传感器被配置为检测与所述移动平台和所述移动平台外部的所述环境相关联的一个或多个特征,所述一个或多个特征包括运动参数和场景属性中的至少一项。
28.根据权利要求18所述的装置,其中,所述处理器被配置为:
将虚拟内容锚定到所述移动平台的第一地图和所述移动平台外部的所述环境的第二地图中的至少一项中的一个或多个特征;
将与所述移动平台、所述用户和所述移动平台的外部的所述环境中的至少一项相关联的运动转换为虚拟运动,所述运动是基于所述第一姿势、所述第二姿势、所述第三姿势和所述运动参数中的至少一项被转换的;以及
在所述移动平台和所述移动平台外部的所述环境中的至少一项的一个或多个区域上显示所述虚拟内容,其中,所述一个或多个区域对应于所述移动平台的所述第一地图和所述移动平台外部的所述环境的所述第二地图中的至少一项中的所述一个或多个特征,其中,所显示的所述虚拟内容的至少一部分反映所述虚拟运动。
29.根据权利要求18所述的装置,还包括所述一个或多个传感器。
30.一种非暂时性计算机可读介质,包括:
存储在其上的指令,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器进行以下操作:
从移动平台中的至少一个移动平台上的一个或多个传感器和与所述移动平台中的用户相关联的设备获得传感器测量,所述传感器测量包括与所述移动平台和所述移动平台中的所述用户相关联的运动参数;
识别所述移动平台的特征和所述移动平台外部的环境的特征;
使用所述传感器测量来跟踪所述移动平台相对于所述移动平台外部的所述环境的第一姿势;
使用所述传感器测量来跟踪所述用户相对于所述移动平台的特征中的至少一个特征的第二姿势;以及
基于所述第一姿势和所述第二姿势来跟踪所述用户相对于所述移动平台外部的所述环境的特征中的至少一个特征的第三姿势。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/284,766 US10767997B1 (en) | 2019-02-25 | 2019-02-25 | Systems and methods for providing immersive extended reality experiences on moving platforms |
US16/284,766 | 2019-02-25 | ||
PCT/US2020/019339 WO2020176359A1 (en) | 2019-02-25 | 2020-02-21 | Systems and methods for providing immersive extended reality experiences on moving platforms |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113474825A true CN113474825A (zh) | 2021-10-01 |
CN113474825B CN113474825B (zh) | 2022-02-08 |
Family
ID=69844952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080016574.1A Active CN113474825B (zh) | 2019-02-25 | 2020-02-21 | 用于在移动平台上提供沉浸式扩展现实体验的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10767997B1 (zh) |
CN (1) | CN113474825B (zh) |
WO (1) | WO2020176359A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114964268A (zh) * | 2022-07-29 | 2022-08-30 | 白杨时代(北京)科技有限公司 | 一种无人机导航方法及装置 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108701415B (zh) * | 2016-02-25 | 2021-08-03 | 富士胶片株式会社 | 驾驶辅助装置、驾驶辅助方法及驾驶辅助程序 |
JP7190261B2 (ja) * | 2018-04-27 | 2022-12-15 | 日立Astemo株式会社 | 位置推定装置 |
GB2581331B (en) * | 2019-02-05 | 2021-06-02 | Ford Global Tech Llc | A method and system for vehicle protection |
JP7053516B2 (ja) * | 2019-02-15 | 2022-04-12 | 株式会社日立製作所 | ウェアラブルユーザインタフェース制御システム、それを用いた情報処理システム、および、制御プログラム |
DE102019123740B4 (de) * | 2019-09-04 | 2023-01-26 | Motherson Innovations Company Limited | Verfahren zum Bereitstellen einer Rück- und/oder Seitenansicht eines Fahrzeugs, virtuelleSpiegelvorrichtung und Fahrzeug |
EP4038581A4 (en) * | 2019-10-04 | 2023-11-01 | Waymo Llc | SPATIO-TEMPORAL INTEGRATION |
US11107377B2 (en) * | 2019-10-21 | 2021-08-31 | Dell Products L.P. | Projected information display for IT equipment environments |
KR102457608B1 (ko) * | 2019-10-29 | 2022-10-21 | 홀로리데 게엠베하 | 차량에서 가상 현실용 헤드셋을 동작하는 방법 및 제어 장치 |
KR20210081939A (ko) * | 2019-12-24 | 2021-07-02 | 엘지전자 주식회사 | Xr 디바이스 및 그 제어 방법 |
JP2023514206A (ja) * | 2020-02-13 | 2023-04-05 | マジック リープ, インコーポレイテッド | 大規模環境のためのクロスリアリティシステム |
CN111478902B (zh) * | 2020-04-07 | 2021-03-23 | 江苏润和智融科技有限公司 | 电力边缘网关设备及基于该设备的传感数据上链存储方法 |
US11584295B2 (en) * | 2020-05-07 | 2023-02-21 | Toyota Research Institute, Inc. | Dynamic lighting and sensor adjustment for occupant monitoring |
US11276333B2 (en) * | 2020-07-28 | 2022-03-15 | Firefly Systems Inc. | Determination of parameters for use of an outdoor display unit |
US20220092860A1 (en) * | 2020-09-18 | 2022-03-24 | Apple Inc. | Extended reality for moving platforms |
US20220092859A1 (en) * | 2020-09-18 | 2022-03-24 | Apple Inc. | Inertial data management for extended reality for moving platforms |
US20220148268A1 (en) * | 2020-11-10 | 2022-05-12 | Noderix Teknoloji Sanayi Ticaret Anonim Sirketi | Systems and methods for personalized and interactive extended reality experiences |
CN114765682B (zh) * | 2020-12-31 | 2023-09-19 | 中国联合网络通信集团有限公司 | 沉浸式虚拟场景体验方法、装置及系统 |
EP4095652A1 (en) * | 2021-05-26 | 2022-11-30 | Terma A/S | Orientation tracking of an object co-moving with platform |
DE102021117453B3 (de) * | 2021-07-06 | 2022-10-20 | Holoride Gmbh | Verfahren zum Betreiben einer Datenbrille in einem Kraftfahrzeug während einer Fahrt, entsprechend betreibbare Datenbrille, Prozessorschaltung sowie Kraftfahrzeug |
US11900550B2 (en) | 2021-09-30 | 2024-02-13 | Snap Inc. | AR odometry using sensor data from a personal vehicle |
US11562550B1 (en) * | 2021-10-06 | 2023-01-24 | Qualcomm Incorporated | Vehicle and mobile device interface for vehicle occupant assistance |
US20230170976A1 (en) * | 2021-11-30 | 2023-06-01 | Qualcomm Incorporated | Beam selection and codebook learning based on xr perception |
WO2023122459A1 (en) * | 2021-12-23 | 2023-06-29 | Snap Inc. | An odometry using sensor data from a personal vehicle |
US11822736B1 (en) * | 2022-05-18 | 2023-11-21 | Google Llc | Passive-accessory mediated gesture interaction with a head-mounted device |
US20240005359A1 (en) * | 2022-06-30 | 2024-01-04 | Gm Cruise Holdings Llc | Projected Advertisement Modification |
CN115278204A (zh) * | 2022-07-27 | 2022-11-01 | 浙江极氪智能科技有限公司 | 显示装置使用方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001080736A1 (en) * | 2000-04-21 | 2001-11-01 | Intersense, Inc. | Motion-tracking |
CN105849771A (zh) * | 2013-12-19 | 2016-08-10 | Metaio有限公司 | 移动设备上的同步定位与映射 |
US20170115730A1 (en) * | 2014-07-04 | 2017-04-27 | Bayerische Motoren Werke Aktiengesellschaft | Locating a Head Mounted Display in a Vehicle |
US20170178359A1 (en) * | 2014-09-09 | 2017-06-22 | Bayerische Motoren Werke Aktiengesellschaft | Determining the Pose of a Head Mounted Display |
CN108697936A (zh) * | 2016-03-09 | 2018-10-23 | Vr考斯特有限及两合公司 | 虚拟现实头戴设备的位置确定和定向以及具有虚拟现实头戴设备的游乐设施 |
EP3396631A1 (en) * | 2017-04-28 | 2018-10-31 | Harman International Industries, Incorporated | System and method for presentation and control of augmented vehicle surround views |
CN109069935A (zh) * | 2016-05-05 | 2018-12-21 | 环球城市电影有限责任公司 | 用于生成立体的、增强的和虚拟现实图像的系统和方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9208390B2 (en) * | 2012-11-12 | 2015-12-08 | Wilfred Ludick | Intra-vehicular mobile device management |
US9245387B2 (en) | 2013-04-12 | 2016-01-26 | Microsoft Technology Licensing, Llc | Holographic snap grid |
DE102014206623A1 (de) | 2014-04-07 | 2015-10-08 | Bayerische Motoren Werke Aktiengesellschaft | Lokalisierung eines Head-mounted Displays (HMD) im Fahrzeug |
US9766075B2 (en) | 2014-05-02 | 2017-09-19 | Thales Visionix, Inc. | Registration for vehicular augmented reality using auto-harmonization |
EP3338136B1 (en) * | 2015-08-04 | 2022-09-14 | Yasrebi, Seyed-Nima | Augmented reality in vehicle platforms |
US10404962B2 (en) | 2015-09-24 | 2019-09-03 | Intel Corporation | Drift correction for camera tracking |
US10216265B1 (en) * | 2017-08-07 | 2019-02-26 | Rockwell Collins, Inc. | System and method for hybrid optical/inertial headtracking via numerically stable Kalman filter |
US11221741B2 (en) * | 2018-08-30 | 2022-01-11 | Sony Corporation | Display control of interactive content based on direction-of-view of occupant in vehicle |
-
2019
- 2019-02-25 US US16/284,766 patent/US10767997B1/en active Active
-
2020
- 2020-02-21 CN CN202080016574.1A patent/CN113474825B/zh active Active
- 2020-02-21 WO PCT/US2020/019339 patent/WO2020176359A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001080736A1 (en) * | 2000-04-21 | 2001-11-01 | Intersense, Inc. | Motion-tracking |
CN105849771A (zh) * | 2013-12-19 | 2016-08-10 | Metaio有限公司 | 移动设备上的同步定位与映射 |
US20170115730A1 (en) * | 2014-07-04 | 2017-04-27 | Bayerische Motoren Werke Aktiengesellschaft | Locating a Head Mounted Display in a Vehicle |
US20170178359A1 (en) * | 2014-09-09 | 2017-06-22 | Bayerische Motoren Werke Aktiengesellschaft | Determining the Pose of a Head Mounted Display |
CN108697936A (zh) * | 2016-03-09 | 2018-10-23 | Vr考斯特有限及两合公司 | 虚拟现实头戴设备的位置确定和定向以及具有虚拟现实头戴设备的游乐设施 |
CN109069935A (zh) * | 2016-05-05 | 2018-12-21 | 环球城市电影有限责任公司 | 用于生成立体的、增强的和虚拟现实图像的系统和方法 |
EP3396631A1 (en) * | 2017-04-28 | 2018-10-31 | Harman International Industries, Incorporated | System and method for presentation and control of augmented vehicle surround views |
Non-Patent Citations (1)
Title |
---|
ERIC M. FOXLIN: "Head tracking relative to a moving vehicle or simulator platform using differential inertial sensors", 《DEFENSE, SECURITY, AND SENSING》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114964268A (zh) * | 2022-07-29 | 2022-08-30 | 白杨时代(北京)科技有限公司 | 一种无人机导航方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113474825B (zh) | 2022-02-08 |
US20200271450A1 (en) | 2020-08-27 |
US10767997B1 (en) | 2020-09-08 |
WO2020176359A1 (en) | 2020-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113474825B (zh) | 用于在移动平台上提供沉浸式扩展现实体验的方法和装置 | |
CN110622213B (zh) | 利用3d语义地图进行深度定位和分段的系统和方法 | |
US11966673B2 (en) | Sensor simulation and learning sensor models with generative machine learning methods | |
US10991156B2 (en) | Multi-modal data fusion for enhanced 3D perception for platforms | |
CN107563267B (zh) | 在无人驾驶车辆中提供内容的系统和方法 | |
US10242457B1 (en) | Augmented reality passenger experience | |
US20200180647A1 (en) | Neural network based modeling and simulation of non-stationary traffic objects for testing and development of autonomous vehicle systems | |
JP7269082B2 (ja) | 拡張現実で仮想オブジェクトを表示するための測位方法及び装置 | |
CN113811920A (zh) | 分布式姿势估计 | |
CN109215433A (zh) | 用于自动驾驶仿真的基于视觉的驾驶场景生成器 | |
US20140278847A1 (en) | Systems and methods for virtualized advertising | |
KR20170127342A (ko) | 자율 주행 차량 내에서 증강 가상 현실 콘텐츠를 제공하는 시스템 및 방법 | |
CN105164726A (zh) | 用于3d重构的相机姿态估计 | |
RU2554069C2 (ru) | Смоделированное видео с дополнительными точками обзора и повышенной разрешающей способностью для камер наблюдения за движением транспорта | |
US11282164B2 (en) | Depth-guided video inpainting for autonomous driving | |
CN109389026A (zh) | 车道检测方法和设备 | |
JP2022537636A (ja) | メディア処理および表示のための方法、システム、およびコンピュータ・ プログラム製品 | |
EP3906527B1 (en) | Image bounding shape using 3d environment representation | |
US11516296B2 (en) | Location-based application stream activation | |
US11938819B2 (en) | Evaluation of a simulated vehicle-related feature | |
Reza et al. | An ai-based real-time roadway-environment perception for autonomous driving | |
EP3754615B1 (en) | Location-based application activation | |
US20220383645A1 (en) | Rendering system, display system, moving vehicle, rendering method, and non-transitory storage medium | |
Kang et al. | ETLi: Efficiently annotated traffic LiDAR dataset using incremental and suggestive annotation | |
US20210390407A1 (en) | Training perspective computer vision models using view synthesis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |