CN111880644A - 多用户即时定位与地图构建(slam) - Google Patents

多用户即时定位与地图构建(slam) Download PDF

Info

Publication number
CN111880644A
CN111880644A CN202010340386.6A CN202010340386A CN111880644A CN 111880644 A CN111880644 A CN 111880644A CN 202010340386 A CN202010340386 A CN 202010340386A CN 111880644 A CN111880644 A CN 111880644A
Authority
CN
China
Prior art keywords
electronic device
map
keyframes
mapping
implementations
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010340386.6A
Other languages
English (en)
Inventor
A·戴恩
林昆翰
O·纳洛迪特斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of CN111880644A publication Critical patent/CN111880644A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/024Multi-user, collaborative environment

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)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开涉及多用户即时定位与地图构建(SLAM)。在一些具体实施中,包括第一图像传感器的第一电子设备使用处理器来执行方法。该方法涉及基于由该第一图像传感器捕获的物理环境的图像来获取第一组关键帧。该方法生成限定该第一组关键帧中的关键帧的相对位置的映射。该方法接收对应于在不同的第二电子设备处捕获的物理环境的图像的关键帧,并且将所接收的关键帧定位到该映射。然后该方法从第二电子设备接收锚点,该锚点限定虚拟对象相对于该关键帧的位置。该方法基于该锚点和该映射在位置处显示包括该虚拟对象的CGR环境。

Description

多用户即时定位与地图构建(SLAM)
技术领域
本公开整体涉及计算机视觉,并且具体地涉及用于执行定位和映射的系统、方法和设备。
背景技术
对于单个用户或单个设备,存在用于执行即时定位与地图构建(SLAM)的各种技术。需要允许多个用户在物理环境中执行SLAM的多个用户之间共享虚拟对象的技术。
发明内容
本文所公开的各种具体实施包括能够跨在物理环境中执行多用户SLAM的不同用户设备共享关于物理环境或虚拟对象的信息的设备、系统和方法。在一些具体实施中,每个用户设备都有助于重建物理环境,该物理环境可用于促进用户体验,诸如计算机生成现实(CGR)体验。在一些具体实施中,多用户SLAM中的每个用户设备创建物理环境的本地唯一重建,该物理环境包括来自每个其他用户重建物理环境的贡献。在一些具体实施中,贡献包括关于包括在一个用户设备的CGR体验中的虚拟对象的信息,以更一致地在其他用户设备上的CGR体验中定位虚拟对象。
在一些具体实施中,实现了多用户SLAM的分散方法,其中中央设备或主设备无需协调来自所涉及的多用户设备的信息。在一些具体实施中,涉及多用户SLAM的用户设备各自独立地相对于其自身的三维(3D)坐标空间中的其自身映射来执行SLAM。在一些具体实施中,每个用户设备合并来自每个其他用户重建物理环境的贡献以提供更一致的重建结果或更有效地在物理环境的多用户SLAM中包括的不同用户设备之间提供重建。在一些具体实施中,在多个用户电子设备处保持的物理环境的冗余映射消除了对中央或主非用户设备的需要,同时还允许任何用户设备加入或离开多用户SLAM。
在一些具体实施中,包括第一图像传感器的第一电子设备使用处理器来执行方法。该方法涉及基于由该第一图像传感器捕获的物理环境的图像来获取第一组关键帧。该方法生成限定该第一组关键帧中的关键帧的相对位置的映射。在一些具体实施中,该映射在由第一电子设备保持的第一3D坐标系中。例如,该映射可包括第一组中的关键帧相对于彼此和相对于由第一电子设备保持的3D坐标系中的第一图像传感器的相对3D位置(或那些关键帧中示出的物理特征)。
该方法还涉及接收和使用关于由不同的第二电子设备捕获或在不同的第二电子设备处使用的物理环境或虚拟对象的信息。具体地,该方法接收对应于在不同的第二电子设备处捕获的物理环境的图像的关键帧,并且将所接收的关键帧定位到其自身映射。例如,可修改第一电子设备的映射以添加从第二电子设备接收的关键帧的3D位置或所接收的关键帧中所示的物理特征。因此,经修改的映射将提供所接收的关键帧相对于已经在映射中表示的关键帧和相对于第一图像传感器的位置。
该方法还可从第二电子设备接收锚点,该锚点限定虚拟对象相对于所接收的关键帧的位置。例如,在第二电子设备上,用户可已在第二电子设备相对于其自身的关键帧中的一者或多者跟踪(例如,锚点)的特定位置处添加虚拟对象,例如,其相对于已由第一电子设备接收的关键帧的位置。第一电子设备接收锚点,并且因此具有关于虚拟对象相对于先前接收的定位关键帧的位置和虚拟对象相对于第一电子设备自身的映射的位置的信息。
因此,该方法基于该锚点和该映射在位置处显示包括该虚拟对象的CGR环境。在一些具体实施中,该方法使用第一电子设备的3D坐标系在显示器中显示具有虚拟对象的CGR环境。第一电子设备和第二电子设备上的CGR体验可彼此更一致,因为虚拟对象相对于相同的关键帧定位,并且在每个设备的相应映射中包括或以其他方式使用相同的关键帧。放置在第二电子设备上的真实世界桌面上的虚拟花瓶可能也被放置在第一电子设备上的桌面上。将相同的关键帧和锚点并入两个设备上的映射中可有助于确保在两种CGR体验中的桌子上精确或更一致地定位花瓶。
在一些具体实施中,方法由包括第一图像传感器的第一电子设备和包括第二图像传感器的第二电子设备执行。该方法涉及基于由所述第一图像传感器捕获的物理环境的图像来获取第一组一个或多个关键帧,所述第一组关键帧在第一坐标系中限定。在该方法中,第一电子设备接收对应于在第二电子设备处捕获的所述物理环境的图像的第二组一个或多个关键帧,所述第二组关键帧在不同于所述第一坐标系的第二坐标系中限定。在该方法中,第一电子设备生成第一映射,所述第一映射限定所述第一组关键帧和所述第二组关键帧中的关键帧在所述第一坐标系中的相对位置。在该方法中,第二电子设备接收对应于在第一电子设备处捕获的物理环境的图像的第一组关键帧,并且生成第二映射,所述第二映射限定所述第一组关键帧和所述第二组关键帧中的关键帧在所述第二坐标系中的相对位置。在一些具体实施中,该方法使用共享关键帧来实现具有不同3D坐标系的并发独立映射(例如,姿态图)。
根据一些具体实施,一种设备包括一个或多个处理器、非暂态存储器以及一个或多个程序;该一个或多个程序被存储在非暂态存储器中并且被配置为由一个或多个处理器执行,并且该一个或多个程序包括用于执行或使得执行本文所述方法中的任一种的指令。根据一些具体实施,一种非暂态计算机可读存储介质中存储有指令,这些指令在由设备的一个或多个处理器执行时使该设备执行或使执行本文所述方法中的任一种。根据一些具体实施,一种设备包括:一个或多个处理器、非暂态存储器以及用于执行或使执行本文所述方法中的任一种的装置。
附图说明
因此,本公开可被本领域的普通技术人员理解,更详细的描述可参考一些例示性具体实施的方面,其中一些具体实施在附图中示出。
图1是根据一些具体实施的示例性操作环境的框图。
图2是根据一些具体实施的示例性控制器的框图。
图3是根据一些具体实施的示例性头戴式设备(HMD)的框图。
图4A-4D是根据一些具体实施的使用多用户SLAM技术的电子设备的示意图。
图5A-5U是根据一些具体实施的示出示例性场景和技术的示意图,这些场景和技术允许各自执行物理环境的定位和映射的多个用户共享虚拟对象。
图6是根据一些具体实施的用于在CGR体验中呈现虚拟对象的方法的流程图表示。
根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的系统、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。
具体实施方式
描述了许多细节以便提供对附图中所示的示例具体实施的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不应被视为限制。本领域的普通技术人员将会知道,其他有效方面或变体不包括本文所述的所有具体细节。此外,没有详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。尽管图1-图3示出了涉及头戴式设备(HMD)的示例性具体实施,但其他具体实施不一定涉及HMD,并且可涉及其他类型的设备,包括但不限于手表和其他可穿戴电子设备、移动设备、膝上型计算机、台式计算机、游戏设备、家庭自动化设备以及包括或使用图像捕获设备的其他设备。
图1是根据一些具体实施的示例性操作环境100的框图。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,操作环境100包括控制器110和头戴式设备(HMD)120,该控制器和头戴式设备中的一者或两者可处于物理环境中。物理环境是指人们在没有电子系统帮助的情况下能够感测和/或交互的物理世界。物理环境诸如物理公园包括物理物品,诸如物理树木、物理建筑物和物理人。人们能够诸如通过视觉、触觉、听觉、味觉和嗅觉来直接感测物理环境和/或与物理环境交互。
在一些具体实施中,控制器110被配置为管理和协调用户的计算机生成现实(CGR)体验。在一些具体实施中,控制器110包括软件、固件或硬件的合适组合。下文参考图2更详细地描述控制器110。在一些具体实施中,控制器110是相对于物理环境105处于本地或远程位置的计算设备。
在一个示例中,控制器110是位于物理环境105内的本地服务器。在另一个示例中,控制器110是位于物理环境105之外的远程服务器(例如,云服务器、中央服务器等)。在一些具体实施中,控制器110经由一个或多个有线或无线通信信道144(例如,蓝牙、IEEE802.11x、IEEE802.16x、IEEE 802.3x等)与HMD 120通信耦接。
在一些具体实施中,控制器110和HMD 120被配置为一起向用户呈现CGR体验。
在一些具体实施中,HMD 120被配置为向用户呈现CGR体验。在一些具体实施中,HMD 120包括软件、固件或硬件的合适组合。下文参考图3更详细地描述HMD 120。在一些具体实施中,控制器110的功能由HMD120提供或与HMD 120组合,例如,在用作独立单元的HMD的情况下。
根据一些具体实施,当用户出现在物理环境105内时,HMD 120向用户呈现CGR体验。CGR环境是指人们经由电子系统感测和/或交互的完全或部分模拟的环境。在CGR中,跟踪人的物理运动的一个子集或其表示,并且作为响应,以符合至少一个物理定律的方式调节在CGR环境中模拟的一个或多个虚拟对象的一个或多个特征。例如,CGR系统可以检测人的头部转动,并且作为响应,以与此类视图和声音在物理环境中变化的方式类似的方式调节呈现给人的图形内容和声场。在一些情况下(例如,出于可达性原因),对CGR环境中虚拟对象的特征的调节可以响应于物理运动的表示(例如,声音命令)来进行。
人可以利用其感官中的任一者来感测CGR对象和/或与CGR对象交互,包括视觉、听觉、触觉、味觉和嗅觉。例如,人可以感测音频对象和/或与音频对象交互,该音频对象创建3D或空间音频环境,该3D或空间音频环境提供3D空间中点音频源的感知。又如,音频对象可以使能音频透明度,该音频透明度在有或者没有计算机生成的音频的情况下选择性地引入来自物理环境的环境声音。在某些CGR环境中,人可以感测和/或只与音频对象交互。
CGR的示例包括虚拟现实和混合现实。虚拟现实(VR)环境是指被设计成对于一个或多个感官完全基于计算机生成的感官输入的模拟环境。VR环境包括人可以感测和/或与之交互的虚拟对象。例如,树木、建筑物和代表人的化身的计算机生成的图像是虚拟对象的示例。人可以通过在计算机生成的环境内人的存在的模拟、和/或通过在计算机生成的环境内人的物理运动的一个子组的模拟来感测和/或与VR环境中的虚拟对象交互。
与被设计成完全基于计算机生成的感官输入的VR环境相比,混合现实(MR)环境是指被设计成除了包括计算机生成的感官输入(例如,虚拟对象)之外还引入来自物理环境的感官输入或其表示的模拟环境。在虚拟连续体上,混合现实环境是完全物理环境作为一端和虚拟现实环境作为另一端之间的任何状况,但不包括这两端。
在一些MR环境中,计算机生成的感官输入可以对来自物理环境的感官输入的变化进行响应。另外,用于呈现MR环境的一些电子系统可以跟踪相对于物理环境的位置和/或取向,以使虚拟对象能够与真实对象(即,来自物理环境的物理物品或其表示)交互。例如,系统可以导致运动使得虚拟树木相对于物理地面看起来是静止的。
混合现实的示例包括增强现实和增强虚拟。增强现实(AR)环境是指其中一个或多个虚拟对象叠加在物理环境或其表示之上的模拟环境。例如,用于呈现AR环境的电子系统可具有透明或半透明显示器,人可以透过该显示器直接查看物理环境。该系统可以被配置成在透明或半透明显示器上呈现虚拟对象,使得人利用该系统感知叠加在物理环境之上的虚拟对象。另选地,系统可以具有不透明显示器和一个或多个成像传感器,成像传感器捕获物理环境的图像或视频,这些图像或视频是物理环境的表示。系统将图像或视频与虚拟对象组合,并在不透明显示器上呈现组合物。人利用系统经由物理环境的图像或视频而间接地查看物理环境,并且感知叠加在物理环境之上的虚拟对象。如本文所用,在不透明显示器上显示的物理环境的视频被称为“透传视频”,意味着系统使用一个或多个图像传感器捕获物理环境的图像,并且在不透明显示器上呈现AR环境时使用那些图像。进一步另选地,系统可以具有投影系统,该投影系统将虚拟对象投射到物理环境中,例如作为全息图或者在物理表面上,使得人利用该系统感知叠加在物理环境之上的虚拟对象。
增强现实环境也是指其中物理环境的表示被计算机生成的感官信息进行转换的模拟环境。例如,在提供透传视频中,系统可以对一个或多个传感器图像进行转换以施加与成像传感器所捕获的视角不同的选择视角(例如,视点)。又如,物理环境的表示可以通过图形地修改(例如,放大)其部分而进行转换,使得经修改部分可以是原始捕获图像的代表性的但不是真实的版本。再如,物理环境的表示可以通过以图形方式消除其部分或将其部分进行模糊处理而进行转换。
增强虚拟(AV)环境是指其中虚拟或计算机生成的环境结合来自物理环境的一个或多个感官输入的模拟环境。感官输入可以是物理环境的一个或多个特征的表示。例如,AV公园可以具有虚拟树木和虚拟建筑物,但人的脸部是从对物理人拍摄的图像逼真再现的。又如,虚拟对象可以采用一个或多个成像传感器所成像的物理物品的形状或颜色。再如,虚拟对象可以采用符合太阳在物理环境中的位置的阴影。
有许多不同类型的电子系统使人能够感测和/或与各种CGR环境交互。示例包括头戴式系统、基于投影的系统、平视显示器(HUD)、集成有显示能力的车辆挡风玻璃、集成有显示能力的窗户、被形成为被设计用于放置在人眼睛上的透镜的显示器(例如,类似于隐形眼镜)、耳机/听筒、扬声器阵列、输入系统(例如,具有或没有触觉反馈的可穿戴或手持控制器)、智能电话、平板电脑、和台式/膝上型计算机。头戴式系统可以具有一个或多个扬声器和集成的不透明显示器。另选地,头戴式系统可以被配置成接受外部不透明显示器(例如,智能电话)。头戴式系统可以结合用于捕获物理环境的图像或视频的一个或多个成像传感器、和/或用于捕获物理环境的音频的一个或多个麦克风。头戴式系统可以具有透明或半透明显示器,而不是不透明显示器。透明或半透明显示器可以具有媒介,代表图像的光通过该媒介被引导到人的眼睛。显示器可以利用数字光投影、OLED、LED、uLED、硅基液晶、激光扫描光源或这些技术的任意组合。媒介可以是光学波导、全息图媒介、光学组合器、光学反射器、或它们的任意组合。在一个实施方案中,透明或半透明显示器可被配置成选择性地变得不透明。基于投影的系统可以采用将图形图像投影到人的视网膜上的视网膜投影技术。投影系统也可以被配置成将虚拟对象投影到物理环境中,例如作为全息图或在物理表面上。
图2是根据一些具体实施的控制器110的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,控制器110包括一个或多个处理单元202(例如,微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、中央处理单元(CPU)、处理核心等)、一个或多个输入/输出(I/O)设备206、一个或多个通信接口208(例如,通用串行总线(USB)、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、全球移动通信系统(GSM),码分多址(CDMA)、时分多址(TDMA)、全球定位系统(GPS)、红外(IR)、蓝牙、ZIGBEE或相似类型接口)、一个或多个编程(例如,I/O)接口210、存储器220以及用于互连这些部件和各种其他部件的一条或多条通信总线204。
在一些具体实施中,所述一条或多条通信总线204包括互连系统部件和控制系统部件之间的通信的电路。在一些具体实施中,一个或多个I/O设备206包括键盘、鼠标、触控板、操纵杆、一个或多个麦克风、一个或多个扬声器、一个或多个图像捕获设备或其他传感器、一个或多个显示器等中的至少一者。
存储器220包括高速随机存取存储器,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(CGRAM)、双倍数据速率随机存取存储器(DDR RAM)或者其他随机存取固态存储器设备。在一些具体实施中,存储器220包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器220任选地包括远离所述一个或多个处理单元202定位的一个或多个存储设备。存储器220包括非暂态计算机可读存储介质。在一些具体实施中,存储器220或者存储器220的非暂态计算机可读存储介质存储下述程序、模块和数据结构或者它们的子集,其中包括任选的操作系统230和计算机生成现实(CGR)体验模块240。
操作系统230包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。
在一些具体实施中,CGR模块240被配置为创建、编辑或体验CGR体验。在一些具体实施中,CGR模块240包括3D内容创建单元242和协作SLAM单元244。3D内容创建单元242被配置为创建和编辑将用作一个或多个用户的CGR体验的一部分的3D内容(例如,用于一个或多个用户的单个CGR体验,或用于一个或多个用户的相应组的多个CGR体验)。可由CGR模块240提供内容创建CGR体验以有利于创建此类内容。例如,用户可查看或以其他方式体验基于CGR的用户界面,该用户界面允许用户例如基于经由手势提供输入、语音命令、输入设备输入等在正被创建或编辑的3D内容中选择、放置、移动和以其他方式配置虚拟对象。协作SLAM单元244被配置为有利于使用来自多用户SLAM中另一用户的共享相对信息的一种或多种合并技术在此类3D内容创建或编辑体验期间在多用户SLAM中的用户之间共享虚拟对象。
尽管这些模块和单元被示出为驻留在单个设备(例如,控制器110)上,但应当理解,在其他具体实施中,这些模块和单元的任何组合可位于单独的计算设备中。此外,图2更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图2中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征部将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定具体实施选择的硬件、软件或固件的特定组合。
图3是根据一些具体实施的头戴式设备(HMD)120的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,HMD 120包括一个或多个处理单元302(例如,微处理器、ASIC、FPGA、GPU、CPU、处理核心等)、一个或多个输入/输出(I/O)设备及传感器306、一个或多个通信接口308(例如,USB、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、GSM、CDMA、TDMA、GPS、IR、BLUETOOTH、ZIGBEE、SPI、I2C或类似类型的接口)、一个或多个编程(例如,I/O)接口310、一个或多个显示器312、一个或多个面向内部或面向外部的图像传感器314、存储器320以及用于互连这些部件和各种其他部件的一条或多条通信总线304。
在一些具体实施中,一条或多条通信总线304包括互连和控制系统部件之间的通信的电路。在一些具体实施中,一个或多个I/O设备及传感器306包括惯性测量单元(IMU)、加速度计、磁力计、陀螺仪、温度计、一个或多个生理传感器(例如,血压监测仪、心率监测仪、血液氧传感器、血糖传感器等)、一个或多个传声器、一个或多个扬声器、触觉引擎或者一个或多个深度传感器(例如,结构光、飞行时间等)等。
在一些具体实施中,一个或多个显示器312被配置为向用户呈现CGR体验。在一些具体实施中,一个或多个显示器312对应于全息、数字光处理(DLP)、液晶显示器(LCD)、硅上液晶(LCoS)、有机发光场效应晶体管(OLET)、有机发光二极管(OLED)、表面传导电子发射器显示器(SED)、场发射显示器(FED)、量子点发光二极管(QD-LED)、微机电系统(MEMS)或者类似显示器类型。在一些具体实施中,一个或多个显示器312对应于衍射、反射、偏振、全息等波导显示器。例如,HMD120包括单个显示器。又如,HMD 120包括针对用户的每只眼睛的显示器。
存储器320包括高速随机存取存储器,诸如DRAM、CGRAM、DDR RAM或其他随机存取固态存储器设备。在一些具体实施中,存储器320包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器320任选地包括远离所述一个或多个处理单元302定位的一个或多个存储设备。存储器320包括非暂态计算机可读存储介质。在一些具体实施中,存储器320或者存储器320的非暂态计算机可读存储介质存储下述程序、模块和数据结构或者它们的子集,其中包括任选的操作系统330和CGR模块340。
操作系统330包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。
在一些具体实施中,CGR模块340被配置为创建、编辑或体验CGR体验。在一些具体实施中,CGR模块340包括3D内容创建单元342和协作SLAM单元344。3D内容创建单元342被配置为创建和编辑将用作一个或多个用户的CGR体验的一部分的3D内容(例如,用于一个或多个用户的单个CGR体验,或用于一个或多个用户的相应组的多个CGR体验)。可由CGR模块340提供内容创建CGR体验以有利于创建此类内容。例如,用户可查看或以其他方式体验基于CGR的用户界面,该用户界面允许用户例如基于经由手势提供输入、语音命令、输入设备输入等在正被创建或编辑的3D内容中选择、放置、移动和以其他方式配置虚拟对象。协作SLAM单元344被配置为有利于使用来自多用户SLAM中另一用户的共享相对信息的一种或多种合并技术在3D内容创建或编辑体验期间在多用户SLAM中的用户之间共享虚拟对象。尽管这些模块和单元被示出为驻留在单个设备(例如,HMD 120)上,但应当理解,在其他具体实施中,这些模块和单元的任何组合可位于单独的计算设备中。
此外,图3更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图3中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征部将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定具体实施选择的硬件、软件或固件的特定组合。
图4A示出了电子设备400A和电子设备400B。电子设备400A或电子设备400B可包括控制器110和HMD 120中的一者或两者的特征中的一些或全部。
在图4A处,电子设备400A和电子设备400B提供多用户CGR体验。电子设备400A和电子设备400B显示由相应设备的图像传感器(例如,图像传感器)捕获的物理环境的图像。除了显示物理对象诸如立方体402A和402B的图像之外,电子设备400A和电子设备400B还显示虚拟对象,使得虚拟对象看起来存在于物理环境中,由此增强用户对物理环境的视图。然而,为了显示或共享虚拟对象(或以某种其他方式增强物理环境(例如,改变物理对象的外观颜色)),有利的是电子设备400A和电子设备400B一致地确定物理环境的映射或其自身的相对图像传感器姿态(例如,位置和取向)。
根据一些具体实施,下文参考图4B-4D描述用于确定物理环境的更一致的映射或电子设备姿态的估计的技术。
在图4B处,电子设备400A发起用于使用例如SLAM技术将设备400A相对于物理环境进行映射和定位的过程。电子设备400A经由位于电子设备400A上的图像传感器(例如,图像传感器)捕获立方体402A和402B的图像。电子设备400A经由显示器401A上的CGR体验405A来显示这些捕获的图像。在一些具体实施中,为了确定其相对于物理环境的姿态,电子设备400A将所捕获的图像与经由附加传感器(例如,运动传感器、深度传感器、取向传感器等)和对应的传感器参数获取的数据组合使用。在一些具体实施中,电子设备400A从所捕获的图像检测显著特征(例如,线、区段、平面、点、或其他3D几何元素和形状,诸如图像传感器的视场中立方体402A和402B的边缘或角部),并且通过利用所捕获图像和经由图像传感器和附加传感器获取的数据迭代地减小或最小化3D位置和姿态估计的误差函数来估计其在3D空间中的位置,同时也估计其自身的姿态。电子设备400A可创建并存储包括图像、图像中的特征的位置或与图像相关联的图像传感器姿态的关键帧。如图4C所示,在定位和映射过程期间,电子设备400A移动到物理环境中的另一位置。在立方体402A和402B仍在图像传感器的视场中的情况下,电子设备400A从另一视角捕获立方体402A和402B的图像。电子设备400A经由显示器401A上的CGR体验405A来显示这些捕获的图像。电子设备400A检测在图4B处检测到的特征中的至少一些。通过比较所捕获图像中的特征的位置或结合来自附加传感器的数据,电子设备400A更新其对特征的3D位置(例如,点在3D空间中的位置)以及其自身相对于物理环境的估计的姿态的估计。电子设备400A可创建并存储各自包括图像、图像中所示特征的位置或与图像相关联的图像传感器姿态的关键帧。此类关键帧、图像传感器姿态信息和来自其他来源的信息(例如,设备运动检测数据)的特征可用于确定在3D坐标空间中提供关键帧彼此相对位置的映射。在一些具体实施中,电子设备400A通过同时确定其当前姿态(例如,定位)并确定相对关键帧位置(例如,映射)来执行SLAM。
在一些具体实施中,在成功地定位和映射时,电子设备400A能够在CGR体验中的适当位置处显示虚拟内容。在一个示例中,电子设备400A使用图像传感器相对于物理环境的所确定的姿态来确定在何处显示虚拟对象404A。在一些具体实施中,在成功地定位和映射之后,电子设备400A使用姿态估计来显示虚拟对象404A,以将虚拟对象404A定位在显示器401A上的CGR体验405A中。又如,电子设备400A将虚拟对象404A锚定到关键帧特征位置,并且在所生成的CGR体验的视图中相应地定位虚拟对象。
在一些具体实施中,在成功地执行定位和映射之后,电子设备400A从电子设备400B接收捕获的图像和捕获图像的电子设备400B的估计姿态。在一些具体实施中,在成功地执行定位和映射之后,电子设备400A从附加传感器和电子设备400B的对应传感器参数接收数据。利用所捕获的图像及其对应的电子设备400B姿态(以及任选地还有附加数据),电子设备400A通过执行类似的标测功能估计所捕获图像中的显著特征(例如,一组3D点、线、区段、平面、和/或其他3D几何元素和形状)的位置数据来执行重建。例如,位置数据包括由图像捕获的立方体402A和402B的角部的笛卡尔坐标。在一些具体实施中,电子设备400A接收与在电子设备400B处捕获的图像相关联的关键帧。所接收的关键帧可包括图像、图像中的特征的位置、或电子设备400B的图像传感器姿态。在一些具体实施中,电子设备400A使用网络协议、层或服务从电子设备400B接收信息。在一些具体实施中,电子设备400A仅在电子设备400B自身成功执行定位和映射之后从电子设备400B接收信息。
在一些具体实施中,电子设备400A然后通过将使用从电子设备400B接收到的信息而重建的物理场景与CGR体验405A进行比较来尝试本地注册。在一些具体实施中,电子设备400A然后在使用从电子设备400B接收到的信息而重建的物理场景与CGR体验405A之间执行定位。在电子设备400A处的一些具体实施中,定位是使用从电子设备400B接收的信息而重建的物理场景与CGR体验405A中的多个显著特征之间的相对变换。一旦电子设备400A将使用从电子设备400B接收到的信息而重建的物理场景与CGR体验405A匹配,电子设备400A就使用相对变换将从电子设备400B接收到的信息添加(例如,合并)到显示器401A上的CGR体验405A中。在一些具体实施中,电子设备400A在将从电子设备400B接收到的信息添加到CGR体验405A之后,更新其针对CGR体验的其自身的估计姿态。在一些具体实施中,电子设备400A通过匹配在关键帧间发现的公共特征来确定所接收的关键帧对已经包括在其自身映射中的关键帧的相对位置。在一些具体实施中,电子设备400A改变其自身的映射/姿态图以包括所接收的关键帧。
在一些具体实施中,在电子设备400A使用从电子设备400B接收到的信息将物理场景的重建本地注册到CGR体验405A之后,从电子设备400B接收的后续信息可直接添加到电子设备400A处的CGR体验405A中。在一些具体实施中,从电子设备400B接收的后续信息可使用本地确定的相对变换直接添加到电子设备400A处的CGR体验405A中。在一些具体实施中,从电子设备400B接收的后续信息可使用从电子设备400B接收的已在CGR体验405A中的先前添加的信息直接添加到电子设备400A处的CGR体验405A中。
在一些具体实施中,在电子设备400A处从电子设备400B接收的信息包括由第二电子设备或利用由第二电子设备获取的信息而获取的三维空间(例如,物理环境)中一个或多个特征的表示。在一些示例中,所述一个或多个特征的表示是物理环境中一个或多个特征的关键帧或笛卡尔坐标(例如,图像传感器的视场中的立方体202A和202B的角部)。在一些示例中,特征包括点、线、区段、平面和/或其他3D几何元素和形状。在一些示例中,一个或多个特征的表示对应于物理环境中的物理对象(例如,202A、202B)(例如,一个或多个特征的表示包括物理对象的某些特征的空间中位置)。在一些具体实施中,在电子设备400A处从电子设备400B接收的信息包括图像或附加传感器参数、地图注册数据、虚拟对象信息或电子设备400B处的CGR体验405B和在电子设备400B处从多用户SLAM中的其他电子设备接收的信息之间的本地确定的相对变换。
返回图4B,电子设备400B还可使用例如即时定位与地图构建(SLAM)技术发起用于相对于物理环境来对设备400B进行映射和定位的过程。电子设备400B经由位于设备背部的图像传感器(例如,图像传感器)捕获立方体402A和402B的图像。电子设备400B经由显示器401B显示这些捕获图像。在一些具体实施中,为了确定其相对于物理环境的姿态,电子设备400A将所捕获的图像与经由附加传感器(例如,运动传感器、深度传感器、取向传感器等)和对应的传感器参数获取的数据组合使用。在一些具体实施中,电子设备400B从所捕获的图像检测显著特征(例如,线、区段、平面、点、和/或其他3D几何元素和形状)(例如,图像传感器的视场中立方体402A和402B的边缘或角部),并且通过利用所捕获图像和经由图像传感器和附加传感器获取的数据迭代地减小或最小化3D位置和姿态估计的误差函数来估计其在3D空间中的位置,同时也估计其自身的姿态。电子设备400B可在移动电子设备400B时,通过经由附加传感器获取的附加捕获图像和附加数据更新3D位置和姿态估计。在一些具体实施中,在成功地定位和映射时,电子设备400B能够在显示器上提供CGR体验,因为电子设备400B可相对于物理环境使用所确定的姿态。因此,在成功地定位和映射之后,电子设备400B使用姿态估计在显示器401B上显示CGR体验405B。
如上所述,对于电子设备400A,在成功地执行定位和映射之后,电子设备400B从电子设备400A接收信息,诸如捕获的图像和通过网络协议、层或服务捕获图像的电子设备400A的估计姿态。如上所述,关于电子设备400A,在电子设备400B将使用从电子设备400A接收到的信息而重建的物理场景本地注册到CGR体验405B,电子设备400B就使用相对变换将从电子设备400A接收的信息添加(例如,合并)到显示器401B上的CGR体验405B中。
如图4D所示,电子设备400B在使用从电子设备400A接收的信息而重建的物理场景本地注册到CGR体验405B之后,一致地显示虚拟对象404A。如上所述,关于电子设备400A,在电子设备400B使用从电子设备400A接收到的信息将物理场景的重建本地注册到CGR体验405B之后,从电子设备400A接收的后续信息可直接添加到电子设备400B处的CGR体验405B中。在一些具体实施中,电子设备400B和电子设备400A交换相同类型的信息。
根据一些具体实施,现在将描述用于在多用户SLAM中的电子设备之间共享虚拟对象的技术。图5A-5U是示出其中各自执行物理环境的SLAM的多个用户共享虚拟对象的示例性场景的示意图。
在各种具体实施中,两个用户各自在共享物理环境中开始单独的CGR体验(例如,定位和映射)。如图5A所示,电子设备500A开始,并且在成功地定位和映射时,电子设备500A(例如,第一用户)具有两个关键帧KF_A1和KF_A2。电子设备500A经由CGR体验505A来显示这些捕获的图像。类似地,电子设备500B开始,并且在成功地定位和映射时,电子设备500B(例如,第二用户)具有两个关键帧KF_B1和KF_B2。电子设备500B经由CGR体验505B来显示这些捕获的图像。如图5A所示,关键帧KF_A1,KF_A2,KF_B1和KF_B2被突出显示。
在一些具体实施中,关键帧是由图像传感器(例如,RGB相机、RGB-D相机(例如,在CGR片段内))生成的数据的所有图像传感器帧的子集。在一些具体实施中,每个关键帧,像相机数据的所有帧,包括与已知时间的相机姿态(例如,在空间中的位置和取向)相关联的对准的图像(例如,RGB颜色)信息和附加传感器信息(例如,深度信息)。在各种具体实施中,使用满足物理环境的CGR体验的关键帧表示的技术来选择关键帧。在各种具体实施中,可基于相机的运动来识别(例如,在多个帧中选择)关键帧。在当前相机帧或视点和邻近关键帧(例如,紧接于前的关键帧)之间有充分移动(例如,阈值以上的3D空间距离)或足够移动时,创建或发起新的关键帧。在另选的具体实施中,关键帧的发起可基于相机的其他特性(诸如时间、移动速度等)或物理环境。每个关键帧可存储在存储器中并且包括RGB信息(例如,像素数据的帧)、深度信息(例如,深度信息的帧)和姿态(例如,在3D坐标系中的取向和3D位置)。
可以对相对图像传感器(例如,电子设备)移动进行历史记录,这被称为姿态图。在一些具体实施中,沿姿态图分配或定位关键帧,并且可突出显示当前相机位置。根据一些具体实施,姿态图被示出在当前观察片段的全局点云之内。
如图5B所示,在各种具体实施中,要开始共享多用户SLAM过程,将电子设备500A与电子设备500B连接;或者将电子设备500B与电子设备500A连接。在各种具体实施中,可使用网络层来连接多用户SLAM体验。在一些具体实施中,网络层可以是由电子设备实现的任何常规网络层。在一些具体实施中,网络层不具有延迟要求(例如,最小消息传输时间)。在一些具体实施中,在连接共享CGR体验并开始多用户SLAM过程时,共享或交换地图注册数据。在一些具体实施中,共享地图注册数据包括向多用户SLAM共享CGR体验中的所有其他电子设备发送每个电子设备的本地3D地图的当前状态。
在各种具体实施中,对于电子设备500A,本地3D地图510的当前状态包括所生成的所有关键帧(例如,电子设备500A的姿态图)和3D地图注册数据。在一些具体实施中,3D地图注册数据包括电子设备500A的所有硬件信息。例如,硬件信息包括图像传感器(例如,相机)参数和附加传感器(例如,深度、运动、惯性)参数,以允许正确使用每个其他电子设备的数据(例如,关键帧数据)。在一些具体实施中,分别发送关键帧和3D地图注册数据。在一些具体实施中,首先发送3D地图注册数据,然后随后发送每个关键帧。在一些具体实施中,仅发送电子设备的当前状态的关键帧的子集或预设数量(例如,以减少数据量)。在一些具体实施中,仅发送3D地图注册数据或硬件信息。
如图5B所示,电子设备500B从电子设备500A接收电子设备500A3D地图510(例如,MAP_A)的当前状态,并且在一些具体实施中,将该MAP_A数据存储在电子设备500B处的用户队列552中。另外如图5B所示,电子设备500A从电子设备500B接收设备500B 3D地图550(例如,MAP_B)的当前状态,并且在一些具体实施中,将该MAP_B数据存储在电子设备500A处的用户队列502中。如图5B所示,MAP_A和MAP_B被突出显示。
在各种具体实施中,存储在电子设备500B和电子设备500A处的队列中的信息被保持在该处,直到相应的电子设备能够正确处理已排队的信息。
如图5C所示,电子设备500B已使用MAP_A信息创建共享物理环境的本地3D外部地图559(例如,本地重建CGR体验505A)。因此,已从用户队列552中移除MAP_A信息。电子设备500B已通过创建第一用户外部地图559来注册第一用户(例如,电子设备500A)。电子设备500B已创建电子设备500A 3D地图的本地副本(例如,在电子设备500A已连接的状态下)。在一些具体实施中,如图5C所示,本地外部地图559使用两个关键帧KF_A1和KF_A2以及电子设备500A的硬件信息。
在一些具体实施中,在电子设备500B为对应的电子设备创建外部3D地图(例如,为电子设备500A创建外部3D地图559)之前,不能处理关键帧队列554、RL队列556或锚点队列558。
如图5C所示,同时,电子设备500A向其3D地图添加第三关键帧KF_A3。电子设备500B接收第三关键帧KF_A3并将第三关键帧KF_A3存储在本地关键帧队列554中。电子设备500B将第三关键帧KF_A3保持在关键帧队列554中,直到电子设备500B具有处理排队信息的时间或所有相关信息。
如图5D所示,电子设备500A已使用MAP_B信息创建共享物理环境的本地3D外部地图509(例如,本地重建CGR体验505B)。因此,已从用户队列502中移除MAP_B信息。电子设备500A已通过创建第二用户外部地图509来注册第二用户(例如,电子设备500B)。电子设备500A已创建电子设备500B 3D地图的本地副本(例如,在电子设备500B已连接的状态下)。如图5D所示,本地外部地图509使用两个关键帧KF_B1和KF_B2以及电子设备500B的硬件信息。
同样,如图5D所示,电子设备500B已使用MAP_A信息创建共享物理环境的本地3D外部地图559。此时,如图5E所示,电子设备500B可处理第三关键帧KF_A3,因为已创建外部地图559。
在各种具体实施中,在图5E中,电子设备500A具有用于电子设备500B的对应3D地图509。类似地,电子设备500B具有用于电子设备500A的对应3D地图559。然而,在CGR体验505A中,电子设备500A不可显现或看到来自电子设备500B的任何信息。进一步的,在CGR体验505B中,电子设备500B不可显现或看到来自电子设备500A的任何信息。电子设备500A尚未将来自电子设备500B的任何信息合并到CGR体验505A的其本地3D地图559中。
如图5F所示,电子设备500B将第一虚拟对象(VO)锚点OA_B2添加到其自身的3D地图550中。在一些具体实施中,每个锚点与关键帧相关联或附接。在图5F中,第二用户在电子设备500B处创建第一VO,并且第一VO附接到关键帧KF_B2(例如,置于CGR体验505B中)。同时,电子设备500B将第一锚点OA_B2传输至共享CGR体验的其他电子设备。因此,电子设备500A接收第一锚点OA_B2并将第一锚点OA_B2存储在本地锚点队列508中。电子设备500A将第一锚点OA_B2保持在锚点队列508中,直到电子设备500A具有处理排队信息的时间或相关信息。
如图5F所示,同时,电子设备500A向其3D地图510添加第四关键帧KF_A4。电子设备500B接收第四关键帧KF_A4并将第四关键帧KF_A4存储在本地关键帧队列554中。电子设备500B将第四关键帧KF_A3保持在关键帧队列554中,直到电子设备500B能够正确处理排队信息。
在一些具体实施中,每个队列中的条目以不同的预设频率被处理。在一些具体实施中,在相应的电子设备处以不同的可变速率处理用户队列、KF队列、RL队列和锚点队列。
如图5G所示,电子设备500A使用锚点OA_B2将第一虚拟对象添加到其外部3D地图509中。在一些具体实施中,第一锚点OA_B2再次附接到外部3D地图509中的关键帧KF_B2(例如,在电子设备500B处创建第一锚点OA_B2的相同关键帧)。
一旦电子设备500B使用MAP_A信息创建共享物理环境的本地3D外部地图559,电子设备500B就尝试将3D外部地图559与电子设备500B的本地3D地图550匹配。在各种具体实施中,匹配包括各种已知的优化技术。在一些具体实施中,匹配包括3D外部地图559和本地3D地图550中的多个公共特征之间的3D至3D特征匹配技术。在一些具体实施中,匹配包括3D外部地图559和本地3D地图550中的多个公共特征之间的2D至3D特征匹配技术。在一些具体实施中,由电子设备500A和电子设备500B捕获的图像数据(或附加传感器数据,诸如深度)对应于物理环境中相同物理对象的一个或多个部分(例如,包括关于其的数据)。在一些具体实施中,3D外部地图559和本地3D地图550中的多个匹配的公共特征在3D地图550中的电子设备500B的相机的估计姿态与3D地图559中的电子设备500A的相机的估计姿态之间生成重新定位(例如,3D空间转换)。
在一些具体实施中,多个匹配的公共特征位于3D外部地图559中的单个关键帧中,并且位于本地3D地图550中的单个关键帧中,并且在3D地图550的一个关键帧中的相机的估计姿态与3D地图559中相应关键帧中的相机的估计姿态之间生成重新定位结果。
如图5H所示,重新定位结果RL_A4_B1用于将用于3D地图510中的关键帧A4中的电子设备500A的相机的估计3D几何形状的姿态转换成用于3D外部地图509中的关键帧B1中的电子设备500B的相机的估计3D几何形状的姿态。在一些具体实施中,重新定位数据允许电子设备500A将3D外部地图509组合到本地3D地图510中(例如,姿态图)。在一些具体实施中,电子设备500A使用重新定位结果将3D外部地图509的一部分合并到本地3D地图510中。
如图5I所示,电子设备500A将电子设备500B的3D外部地图509合并到本地3D地图510中,并且共享用于由电子设备500A执行合并的信息。在一些具体实施中,通过将来自外部3D地图509中的电子设备500B的关键帧的特征与来自3D地图510中的电子设备500A的关键帧的特征进行匹配来确定重新定位结果RL_A4_B1。在一些具体实施中,匹配使用来自电子设备500B的关键帧的特征的2D或3D空间位置估计以及来自电子设备500A的关键帧的特征的2D或3D空间位置估计。在一些具体实施中,来自电子设备500B的关键帧的特征的空间位置估计与来自电子设备500A的关键帧的特征的空间位置估计的匹配取决于相应电子设备上的成像传感器或相机的类型。在一些具体实施中,对电子设备500B的特征的空间位置估计和对电子设备500A的特征的空间位置估计的匹配取决于相应电子设备上的附加传感器(例如,深度传感器、惯性传感器、IR传感器、运动传感器等)的类型。
在各种具体实施中,重新定位结果RL_A4_B1使用来自外部3D地图509中的电子设备500B和3D地图510中的电子设备500A的匹配特征的对应,以选择降低或最小化匹配特征的估计空间位置之间的误差(例如,优化过程)的电子设备500B的估计姿态。在一些具体实施中,重新定位结果RL_A4_B1是用于关键帧B4的电子设备500B的相机的所选择的姿态与用于电子设备500A已知的关键帧A4的相机的估计姿态之间的转换。
在一些具体实施中,因为3D地图509包括将每个关键帧(例如,KF_B1,KF_B2)与3D地图509中的每个其他关键帧相关的信息,所以一旦关键帧B1被合并到3D地图510中,就可以使用相对于合并的关键帧B1的关系信息将来自3D地图509的所有其他关键帧(例如,电子设备500B)合并到3D地图510中。因此,如图5I所示,在电子设备500A处,重新定位结果RL_A4_B1用于将3D地图509信息合并到3D地图510中。
此外,如图5I所示,同时,电子设备500B将第四关键帧KF_A4添加到外部3D地图559中,并且电子设备500A将第二虚拟对象锚点OA_A1添加至其自身的3D地图510。在图5I中,第一用户在与关键帧KF_A1相关联或附接至关键帧KF_A1的电子设备500A处创建第二VO。同时,电子设备500A将第二锚点OA_A1传输至共享CGR体验的其他电子设备。因此,电子设备500B接收第二锚点OA_A1并将第二锚点OA_A1存储在本地锚点队列558中。电子设备500B将第二锚点OA_A1保持在锚点队列558中,直到电子设备500B具有处理排队信息的时间。
如图5J所示,重新定位结果RL_B1_A4用于将用于3D地图550中的关键帧B1中的电子设备500B的相机的估计3D几何形状的姿态转换成用于3D外部地图559中的关键帧A4中的电子设备500A的相机的估计3D几何形状的姿态。在一些具体实施中,重新定位数据允许电子设备500B将3D外部地图559的一部分或全部合并到本地3D地图550中。本文参照图5H和电子设备500A描述了用于确定重新定位结果RL_B1_A4的示例性技术。
如图5K所示,电子设备500B使用重新定位结果RL_B1_A4将3D地图信息从关键帧A4合并到3D地图550中。因为3D地图559(例如,姿态图)包括将每个关键帧(例如,KF_A1、KF_A2、KF_A3,KF_A4)与3D地图559中的每个其他关键帧相关的信息,所以一旦关键帧A4被合并到3D地图550中,就使用相对于合并的关键帧A4的关系信息将来自3D地图559的所有其他关键帧(例如,电子设备500B)合并到3D地图550中。因此,如图5K所示,在电子设备500B处,重新定位结果RL_B1_A4用于将3D地图559信息合并到3D地图550中。在一些具体实施中,可在共享CGR体验的一组电子设备的每个单独的电子设备处使用不同的配对关键帧,以将相应的外部3D地图合并到本地3D地图。
如图5K所示,电子设备500B将第二虚拟对象锚点OA_A1添加到其3D地图550中。在图5K中,第二VO锚点OA_A1附接到3D地图550中的关键帧KF_A1(例如,在电子设备500A处创建第二VO锚点OA_A1的相同关键帧)。
如图5K所示,电子设备500A和电子设备500B具有用于相应的CGR体验505A和CGR体验505B的对应或“类似”3D地图。在一些具体实施中,当各自具有相同量的信息(例如,关键帧、姿态图、传感器参数、虚拟对象等)时,3D地图510对应于3D地图550,并且每个电子设备单独使用该信息(例如,在其SLAM优化器中)来估计其单独3D地图中的关键帧姿态。在一些具体实施中,当各自具有相同的信息时,3D地图510对应于3D地图550,但是每个电子设备单独使用该信息(例如,在其SLAM优化器中)来估计本地3D坐标系中其单独3D地图中的关键帧姿态。在一些具体实施中,当各自具有相同的相对信息时,3D地图510对应于3D地图550,但每个电子设备在其本地3D地图上分别和单独地合并该信息。在一些具体实施中,当各自具有相同量的相对信息时,3D地图510对应于3D地图550,但CGR体验的控制被分散至其本地3D地图处的CGR体验中的每个单独的电子设备。
如图5L所示,电子设备500A向其3D地图510添加第五关键帧KF_A5。电子设备500B接收第五关键帧KF_A5并且可将第五关键帧KF_A5从关键帧队列554直接添加至3D地图550(参见图5M)。在一些具体实施中,电子设备500B可将第五关键帧KF_A5从关键帧队列554直接添加至3D地图550,因为与电子设备500A的一个或多个其他关键帧的关系是已知的并且允许将第五关键帧KF_A5立即包括到3D地图550。在一些具体实施中,在重新定位结果允许将外部地图A 559合并至3D地图550之后,不使用外部地图A 559。
如图5M所示,两个用户属于共享物理环境中的共享多用户CGR体验。如图5M所示,电子设备500C开始并且在成功地定位和映射时,电子设备500C(例如,第三用户)将共享的CGR体验与单个关键帧KF_C1连接。
在一些具体实施中,在连接共享CGR体验并开始多用户SLAM过程时,交换共享地图注册数据。在一些具体实施中,共享地图注册数据包括向多用户SLAM共享CGR体验中的所有其他电子设备发送每个电子设备的本地3D地图的当前状态。本文参照图5B描述了共享地图注册数据。
如图5M所示,电子设备500A从电子设备500C接收电子设备500C3D地图570(例如,MAP_C)的当前状态,并且将该MAP_C数据存储在电子设备500A处的用户队列502中。电子设备500B从电子设备500C接收电子设备500C 3D地图570(例如,MAP_C)的当前状态,并且将该MAP_C数据存储在电子设备500B处的用户队列552中。如图5M所示,电子设备500C从电子设备500A接收电子设备500A 3D地图510(例如,MAP_A)的当前状态以及从电子设备500B接收电子设备500B 3D地图550(例如,MAP_B)的当前状态,并且将该MAP_A和MAP_B数据存储在电子设备500C处的用户队列572中。在另选的具体实施中,共享CGR体验中的一个电子设备将所有电子设备的当前状态传输到连接电子设备(例如,电子设备500A向电子设备500C发送MAP_A和MAP_B数据)。在一些具体实施中,电子设备500A和电子设备500B的当前状态的传输可使用其他指定的责任来执行。
如图5N所示,电子设备500A已使用MAP_C信息(例如,关键帧KF_C1和电子设备500C的硬件信息)创建共享物理环境的本地3D外部地图507。如图5N所示,电子设备500B已使用MAP_C信息创建共享物理环境的本地3D外部地图557。本文参照图5C描述了本地拷贝或外部3D地图。
另外,在图5N中,电子设备500B将重新定位结果RL_B1_A4发送至电子设备500C,该电子设备将其存储在RL队列576中。类似地,电子设备500A将重新定位结果RL_A4_B1发送至电子设备500C,该电子设备将其存储在RL队列576中。
如图5O所示,电子设备500C已使用MAP_A信息创建共享物理环境的本地3D外部地图577。因此,已从用户队列572中移除MAP_A信息。在一些具体实施中,如图5O所示,外部3D地图577使用关键帧KF_A1、KF_A2、KF_A3、KF_A4和KF_A5、虚拟对象A1以及电子设备500A的硬件信息。此时,如图5O所示,电子设备500B在其3D地图550中创建第三关键帧KF_B3。电子设备500A和电子设备500C接收第三关键帧KF_B3并将其分别存储在KF队列504和KF队列574中。
如图5P所示,电子设备500C已使用MAP_B信息创建共享物理环境的本地3D外部地图579。因此,已从用户队列572中移除MAP_B信息。在一些具体实施中,如图5P所示,外部3D地图579使用关键帧KF_B1、KF_B2和KF_B3、虚拟对象B2以及电子设备500B的硬件信息。另外如图5P所示,电子设备500A将第三关键帧KF_B3从关键帧队列504直接添加至3D地图510。
如图5Q所示,重新定位结果RL_B3_C1用于将用于3D地图550中的关键帧B3中的电子设备500B的相机的估计3D几何形状的姿态转换成用于3D外部地图557中的关键帧C1中的电子设备500C的相机的估计3D几何形状的姿态。在一些具体实施中,重新定位数据允许电子设备500B将3D外部地图557的一部分或全部合并到本地3D地图550中。本文参照图5H描述了用于确定和使用重新定位结果(例如,RL_B1_A4)的示例性技术。另外在图5Q中,电子设备500A接收重新定位结果RL_B3_C1并将其存储在RL队列506中,并且电子设备500C接收重新定位结果RL_B3_C1并将其存储在RL队列576中。
如图5R所示,电子设备500B使用重新定位结果RL_B3_C1以将3D地图信息从关键帧C1合并到3D地图550中。同样,如图5R所示,重新定位结果RL_C1_B3用于将用于3D地图570中的关键帧C1中的电子设备500C的相机的估计3D几何形状的姿态转换成用于3D外部地图579中的关键帧B3中的电子设备500B的相机的估计3D几何形状的姿态。在一些具体实施中,在确定重新定位结果RL_C1_B3时,从RL队列中移除重新定位结果RL_B3_C1。在一些具体实施中,重新定位结果RL_B3_C1有助于在电子设备500C处确定重新定位结果RL_C1_B3。
如图5S所示,电子设备500A使用重新定位结果RL_B3_C1以将3D地图信息从关键帧C1合并到3D地图510中。同样,如图5S所示,电子设备500C使用重新定位结果RL_A4_B1以将3D地图信息从关键帧KF_A1-KF_A5合并到3D地图570中。
在一些具体实施中,电子设备500A使用重新定位结果RL_C1_B3来修改3D地图510的3D地图信息。在一些具体实施中,电子设备500A忽略图5S中的重新定位结果RL_C1_B3。在一些具体实施中,电子设备500C使用重新定位结果RL_B1_A4来修改3D地图570的3D地图信息。在一些具体实施中,电子设备500C任选地忽略图5S中的重新定位结果RL_B1_A4。
如图5T所示,电子设备500A、电子设备500B和电子设备500C具有用于相应的CGR体验505A、CGR体验505B和CGR体验505C的对应或“类似”3D地图。在一些具体实施中,当各自具有相同量的信息(例如,关键帧、姿态图、传感器参数、虚拟对象等)时,3D地图510对应于3D地图550和3D地图550,并且每个电子设备单独使用该信息(例如,在其SLAM优化器中)来估计其单独3D地图中的关键帧姿态。根据一些具体实施,本文参照图5T描述了对应的3D地图。
如图5U所示,电子设备500A离开共享的多用户CGR体验,并且电子设备500B和电子设备500C继续共享的多用户CGR体验。
图6是用于在第一用户(例如,共享多用户CGR体验中的用户之间)处从不同始发用户的角度来表示CGR体验中的虚拟对象的方法600的流程图表示。在一些具体实施中,方法600由电子设备执行(例如,图1-3)。方法600可在移动设备、HMD、台式计算机、膝上型计算机或服务器设备上执行。方法600可在具有用于显示2D图像的屏幕或用于观看立体图像的屏幕的头戴式设备上执行。在一些具体实施中,方法600由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法600由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。
在框610处,方法600基于由第一电子设备的第一图像传感器(例如,相机)捕获的物理环境的图像来获取第一组关键帧(例如,1个或多个关键帧)。在一些具体实施中,关键帧包括来自第一电子设备处的附加传感器的信息。在一些具体实施中,关键帧包括特征数据,该特征数据限定特征相对于第一图像传感器的第一姿态的位置。
在框620处,方法600生成限定第一电子设备处的该第一组关键帧中的关键帧的相对位置的映射。在一些具体实施中,映射包括姿态图。在一些具体实施中,该映射包括3D坐标系中的共享CGR环境的3D地图。
在框630处,方法600接收对应于由第二电子设备在第一电子设备处捕获的物理环境的图像的关键帧。在一些具体实施中,第一电子设备还接收由第二电子设备获取的附加信息。在一些具体实施中,第一电子设备还接收与第二电子设备相关联的定位信息、图像传感器参数和深度传感器参数。
在框640处,方法600将所接收的关键帧定位到映射。在一些具体实施中,第一电子设备基于确定或接收重新定位数据来将所接收的关键帧定位到映射。在一些具体实施中,第一电子设备通过确定第二电子设备的关键帧与来自第一电子设备的已经是映射的一部分的一组关键帧中的一个或多个关键帧的相对位置来将所接收的关键帧定位到映射。在一些具体实施中,第一电子设备通过使用第一电子设备处的第一坐标系确定第二电子设备的关键帧与第一电子设备的估计姿态的相对位置来将所接收的关键帧定位到映射。
在框650处,方法600在第一电子设备处接收来自第二电子设备的锚点,其中锚点限定虚拟对象相对于所接收的关键帧的位置。在一些具体实施中,锚点与所接收的关键帧中的特征相关联。
在框660处,方法600基于该锚点和该映射在位置处显示包括该虚拟对象的CGR环境。在一些具体实施中,方法600在第一电子设备处的第一3D坐标系中显示CGR环境。在一些具体实施中,第一电子设备在第一电子设备处的显示器上显示CGR环境。
在一些具体实施中,系统包括非暂态计算机可读存储介质;以及耦接至所述非暂态计算机可读存储介质的一个或多个处理器,其中所述非暂态计算机可读存储介质包括程序指令,所述程序指令在所述一个或多个处理器上执行时使得所述系统在具有第一图像传感器的第一电子设备处执行操作:基于由所述第一图像传感器捕获的物理环境的图像来获取第一组关键帧;生成限定所述第一组关键帧中的关键帧的相对位置的映射;接收对应于在第二电子设备处捕获的所述物理环境的图像的关键帧;将所述关键帧定位到所述映射;从所述第二电子设备接收锚点,所述锚点限定虚拟对象相对于所述关键帧的位置;以及基于所述锚点和所述映射在位置处显示包括所述虚拟对象的CGR环境。
在一些具体实施中,系统包括非暂态计算机可读存储介质;以及耦接至所述非暂态计算机可读存储介质的一个或多个处理器,其中所述非暂态计算机可读存储介质包括程序指令,所述程序指令在所述一个或多个处理器上执行时使得所述系统在具有第一图像传感器的第一电子设备处执行操作:基于由所述第一图像传感器捕获的物理环境的图像来获取第一组关键帧,所述第一组关键帧在第一坐标系中限定;接收对应于在第二电子设备处捕获的所述物理环境的图像的第二组关键帧,所述第二组关键帧在不同于所述第一坐标系的第二坐标系中限定;生成第一映射,所述第一映射限定所述第一组关键帧和所述第二组关键帧中的关键帧在所述第一坐标系中的相对位置;以及在具有第二图像传感器的第二电子设备处:接收对应于在所述第一电子设备处捕获的所述物理环境的图像的所述第一组关键帧;以及生成第二映射,所述第二映射限定所述第一组关键帧和所述第二组关键帧中的关键帧在所述第二坐标系中的相对位置。
在一些具体实施中,非暂态计算机可读存储介质存储计算机上的计算机可执行的程序指令以执行操作,包括在具有第一图像传感器的第一电子设备处:基于由第一图像传感器捕获的物理环境的图像来获取第一组关键帧;生成限定所述第一组关键帧中的关键帧的相对位置的映射;接收对应于在第二电子设备处捕获的所述物理环境的图像的关键帧;将所述关键帧定位到所述映射;从所述第二电子设备接收锚点,所述锚点限定虚拟对象相对于所述关键帧的位置;以及基于所述锚点和所述映射在位置处显示包括所述虚拟对象的CGR环境。
在一些具体实施中,非暂态计算机可读存储介质存储计算机上的计算机可执行的程序指令以执行操作,包括在具有第一图像传感器的第一电子设备处:基于由第一图像传感器捕获的物理环境的图像来获取第一组关键帧,所述第一组关键帧在第一坐标系中限定;接收对应于在第二电子设备处捕获的所述物理环境的图像的第二组关键帧,所述第二组关键帧在不同于所述第一坐标系的第二坐标系中限定;生成第一映射,所述第一映射限定所述第一组关键帧和所述第二组关键帧中的关键帧在所述第一坐标系中的相对位置;以及在具有第二图像传感器的第二电子设备处:接收对应于在所述第一电子设备处捕获的所述物理环境的图像的所述第一组关键帧;以及生成第二映射,所述第二映射限定所述第一组关键帧和所述第二组关键帧中的关键帧在所述第二坐标系中的相对位置。
本文阐述了许多具体细节以提供对要求保护的主题的全面理解。然而,本领域的技术人员将理解,可以在没有这些具体细节的情况下实践要求保护的主题。在其他实例中,没有详细地介绍普通技术人员已知的方法、装置或系统,以便不使要求保护的主题晦涩难懂。
除非另外特别说明,否则应当理解,在整个说明书中,利用诸如“处理”、“计算”、“计算出”、“确定”和“识别”等术语的论述是指计算设备的动作或过程,诸如一个或多个计算机或类似的电子计算设备,其操纵或转换表示为计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的物理电子量或磁量的数据。
本文论述的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括部件的提供以一个或多个输入为条件的结果的任何合适的布置。合适的计算设备包括基于多用途微处理器的计算机系统,其访问存储的软件,该软件将计算系统从通用计算设备编程或配置为实现本发明主题的一种或多种具体实施的专用计算设备。可以使用任何合适的编程、脚本或其他类型的语言或语言的组合来在用于编程或配置计算设备的软件中实现本文包含的教导内容。
本文所公开的方法的具体实施可以在这样的计算设备的操作中执行。上述示例中呈现的框的顺序可以变化,例如,可以将框重新排序、组合或者分成子框。某些框或过程可以并行执行。
本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。本文包括的标题、列表和编号仅是为了便于解释而并非旨在为限制性的。
还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重命名。第一节点和第二节点都是节点,但它们不是同一个节点。
本文中所使用的术语仅仅是为了描述特定具体实施并非旨在对权利要求进行限制。如在本具体实施的描述和所附权利要求中所使用的那样,单数形式的“一个”和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“comprises”或“comprising”)本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件或其分组。
如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。
本公开的前述描述和概述应被理解为在每个方面都是例示性和示例性的,而非限制性的,并且本文所公开的本公开的范围不仅由例示性具体实施的详细描述来确定,而是根据专利法允许的全部广度。应当理解,本文所示和所述的具体实施仅是对本公开原理的说明,并且本领域的技术人员可以在不脱离本公开的范围和实质的情况下实现各种修改。

Claims (19)

1.一种方法,包括:
在具有第一图像传感器的第一电子设备处:
基于由所述第一图像传感器捕获的物理环境的图像来获取第一组关键帧;
生成限定所述第一组关键帧中的关键帧的相对位置的映射;
接收对应于在第二电子设备处捕获的所述物理环境的图像的关键帧;
将所述关键帧定位到所述映射;
从所述第二电子设备接收锚点,所述锚点限定虚拟对象相对于所述关键帧的位置;以及
基于所述锚点和所述映射在位置处显示包括所述虚拟对象的CGR环境。
2.根据权利要求1所述的方法,还包括将所述锚点与所述映射中的所述定位关键帧相关联。
3.根据权利要求1所述的方法,其中关键帧包括相机图像数据、附加传感器数据和所述电子设备的姿态的表示。
4.根据权利要求1所述的方法,其中所述第一电子设备处的所述映射基于从所述第二电子设备接收的地图注册数据。
5.根据权利要求1所述的方法,其中所述映射的生成和所述关键帧到所述映射的定位是即时定位与地图构建过程的一部分。
6.根据权利要求1所述的方法,还包括:
在所述第一电子设备处:
接收对应于在第三电子设备处捕获的所述物理环境的图像的第二关键帧;
将所述第二关键帧定位到所述映射;
从所述第三电子设备接收第二锚点,所述第二锚点限定第二虚拟对象相对于所述第二关键帧的位置;以及
基于所述第二锚点和所述映射在位置处显示包括所述第二虚拟对象的CGR体验。
7.一种方法,包括:
在具有第一图像传感器的第一电子设备处:
基于由所述第一图像传感器捕获的物理环境的图像来获取第一组关键帧,所述第一组关键帧在第一坐标系中限定;
接收对应于在第二电子设备处捕获的所述物理环境的图像的第二组关键帧,所述第二组关键帧在不同于所述第一坐标系的第二坐标系中限定;以及
生成第一映射,所述第一映射限定所述第一组关键帧和所述第二组关键帧中的关键帧在所述第一坐标系中的相对位置;以及
在具有第二图像传感器的所述第二电子设备处:
接收对应于在所述第一电子设备处捕获的所述物理环境的图像的所述第一组关键帧;以及
生成第二映射,所述第二映射限定所述第一组关键帧和所述第二组关键帧中的关键帧在所述第二坐标系中的相对位置。
8.根据权利要求7所述的方法,还包括:
在所述第一电子设备处:
接收对应于在第三电子设备处捕获的所述物理环境的图像的第三组关键帧,所述第三组关键帧在不同于所述第一坐标系的第三坐标系中限定;
通过将所述第三组关键帧中的所选择的关键帧的相对位置包括在所述第一坐标系中来修改所述第一映射;以及
在所述第二电子设备处:
接收对应于在所述第三电子设备处捕获的所述物理环境的图像的所述第三组关键帧;
通过将所述第三组关键帧中的所选择的关键帧的相对位置包括在所述第二坐标系中来修改所述第二映射。
9.根据权利要求8所述的方法,还包括:
在所述第三电子设备处:
接收对应于在所述第一电子设备处捕获的所述物理环境的图像的所述第一组关键帧;
接收对应于在所述第二电子设备处捕获的所述物理环境的图像的所述第二组关键帧;以及
生成第三映射,所述第三映射限定所述第一组关键帧、所述第二组关键帧和所述第三组关键帧中的关键帧在所述第三坐标系中的相对位置。
10.根据权利要求7所述的方法,还包括:
在所述第一电子设备处:
从所述第二设备接收第二锚点,所述第二锚点限定第二虚拟对象相对于所述第二组关键帧中的一个关键帧的位置;以及
基于所述第二锚点和所述第一映射在位置处显示包括所述第二虚拟对象的CGR体验;以及
在所述第二电子设备处:
从所述第一设备接收第一锚点,所述第一锚点限定第一虚拟对象相对于所述第一组关键帧中的一个关键帧的位置;以及
基于所述第一锚点和所述第二映射在位置处显示包括所述第一虚拟对象的CGR体验。
11.根据权利要求7所述的方法,其中关键帧包括相机图像数据、附加传感器数据和所述电子设备的姿态的表示。
12.根据权利要求7所述的方法,其中关键帧包括所述物理环境中的一个或多个特征的表示。
13.根据权利要求7所述的方法,其中所述关键帧包括虚拟对象的表示。
14.根据权利要求7所述的方法,其中所述第一电子设备处的所述第一映射或所述第二电子设备处的所述第二映射包括重新定位信息的表示。
15.根据权利要求7所述的方法,其中所述第一电子设备处的所述第一映射或所述第二电子设备处的所述第二映射包括附加传感器信息。
16.根据权利要求7所述的方法,其中所述第一电子设备处的所述第一映射或所述第二电子设备处的所述第二映射包括地图注册数据。
17.根据权利要求7所述的方法,其中所述第一电子设备正在执行定位和映射,并且其中所述第二电子设备正在执行定位和映射。
18.根据权利要求7所述的方法,还包括:
在所述第一电子设备处:
生成内部映射,所述内部映射限定所述第一组关键帧在所述第一坐标系中的相对位置;
生成限定所述第二组关键帧的相对位置的外部映射;
将包括一组匹配特征的所述第一组关键帧中的关键帧与所述第二组关键帧中的关键帧进行配对;
确定来自所述配对关键帧的第一定位信息;以及
使用所述第一定位信息将所述外部映射合并到内部映射中;以及
在所述第二电子设备处:
生成内部映射,所述内部映射限定所述第二组关键帧在所述第二坐标系中的相对位置;
生成限定所述第一组关键帧的相对位置的外部映射;
将包括一组匹配特征的所述第一组关键帧中的关键帧与所述第二组关键帧中的关键帧进行配对;
确定来自所述配对关键帧的第二定位信息;以及
使用所述第二定位信息将所述外部映射合并到所述内部映射中。
19.根据权利要求7所述的方法,还包括:
在所述第一电子设备处:
基于所述第一映射来显示包括所述物理环境中的物理对象的表示和虚拟对象的CGR体验;以及
在所述第二电子设备处:
基于所述第二映射来显示包括所述物理环境中的物理对象的表示和虚拟对象的CGR体验。
CN202010340386.6A 2019-05-02 2020-04-26 多用户即时定位与地图构建(slam) Pending CN111880644A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/401,287 US10748302B1 (en) 2019-05-02 2019-05-02 Multiple user simultaneous localization and mapping (SLAM)
US16/401,287 2019-05-02

Publications (1)

Publication Number Publication Date
CN111880644A true CN111880644A (zh) 2020-11-03

Family

ID=72045852

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010340386.6A Pending CN111880644A (zh) 2019-05-02 2020-04-26 多用户即时定位与地图构建(slam)

Country Status (3)

Country Link
US (2) US10748302B1 (zh)
CN (1) CN111880644A (zh)
DE (1) DE102020110662A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114812381A (zh) * 2021-01-28 2022-07-29 华为技术有限公司 电子设备的定位方法及电子设备

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10466953B2 (en) * 2017-03-30 2019-11-05 Microsoft Technology Licensing, Llc Sharing neighboring map data across devices
KR102236957B1 (ko) 2018-05-24 2021-04-08 티엠알더블유 파운데이션 아이피 앤드 홀딩 에스에이알엘 가상 세계를 통해 가상 현실 응용 프로그램을 개발, 테스트하고, 실제 세계로 배포하기 위한 시스템 및 방법
US10957112B2 (en) 2018-08-13 2021-03-23 Magic Leap, Inc. Cross reality system
US11227435B2 (en) 2018-08-13 2022-01-18 Magic Leap, Inc. Cross reality system
WO2020072985A1 (en) 2018-10-05 2020-04-09 Magic Leap, Inc. Rendering location specific virtual content in any location
CN111973979A (zh) 2019-05-23 2020-11-24 明日基金知识产权控股有限公司 经由持久性虚拟世界系统对现实世界进行实况管理
CN112100798A (zh) 2019-06-18 2020-12-18 明日基金知识产权控股有限公司 用于将现实世界元素的虚拟副本部署到持久性虚拟世界系统中的系统和方法
US11196964B2 (en) 2019-06-18 2021-12-07 The Calany Holding S. À R.L. Merged reality live event management system and method
CN114600064A (zh) 2019-10-15 2022-06-07 奇跃公司 具有定位服务的交叉现实系统
CN114616534A (zh) 2019-10-15 2022-06-10 奇跃公司 具有无线指纹的交叉现实系统
JP2023504775A (ja) 2019-11-12 2023-02-07 マジック リープ, インコーポレイテッド 位置特定サービスおよび共有場所ベースのコンテンツを伴うクロスリアリティシステム
WO2021118962A1 (en) 2019-12-09 2021-06-17 Magic Leap, Inc. Cross reality system with simplified programming of virtual content
KR20220119123A (ko) * 2019-12-20 2022-08-26 나이앤틱, 인크. 매핑 장치로부터의 로컬 지도 병합
CN115398484A (zh) 2020-02-13 2022-11-25 奇跃公司 具有用于定位的地理定位信息优先级的交叉现实系统
EP4103910A4 (en) 2020-02-13 2024-03-06 Magic Leap, Inc. CROSS-REALLY SYSTEM WITH ACCURATE COMMON MAPS
US11562525B2 (en) 2020-02-13 2023-01-24 Magic Leap, Inc. Cross reality system with map processing using multi-resolution frame descriptors
US11551430B2 (en) 2020-02-26 2023-01-10 Magic Leap, Inc. Cross reality system with fast localization
US11900547B2 (en) 2020-04-29 2024-02-13 Magic Leap, Inc. Cross reality system for large scale environments
US11113894B1 (en) * 2020-09-11 2021-09-07 Microsoft Technology Licensing, Llc Systems and methods for GPS-based and sensor-based relocalization
EP4226334A1 (en) 2020-10-06 2023-08-16 Nokia Technologies Oy Network-based spatial computing for extended reality (xr) applications
US11875462B2 (en) * 2020-11-18 2024-01-16 Adobe Inc. Systems for augmented reality authoring of remote environments
US20220198764A1 (en) * 2020-12-18 2022-06-23 Arkh, Inc. Spatially Aware Environment Relocalization
CN112950711A (zh) * 2021-02-25 2021-06-11 深圳市慧鲤科技有限公司 一种对象的控制方法、装置、电子设备及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120306850A1 (en) * 2011-06-02 2012-12-06 Microsoft Corporation Distributed asynchronous localization and mapping for augmented reality
US20140267234A1 (en) * 2013-03-15 2014-09-18 Anselm Hook Generation and Sharing Coordinate System Between Users on Mobile
US20140323148A1 (en) * 2013-04-30 2014-10-30 Qualcomm Incorporated Wide area localization from slam maps
US20140354685A1 (en) * 2013-06-03 2014-12-04 Gavin Lazarow Mixed reality data collaboration
US20150193982A1 (en) * 2014-01-03 2015-07-09 Google Inc. Augmented reality overlays using position and orientation to facilitate interactions between electronic devices
US20160117822A1 (en) * 2014-10-23 2016-04-28 Qualcomm Incorporated Selection strategy for exchanging map information in collaborative multi-user slam systems
US20160179830A1 (en) * 2014-12-19 2016-06-23 Qualcomm Incorporated Scalable 3d mapping system
US9384594B2 (en) * 2011-03-29 2016-07-05 Qualcomm Incorporated Anchoring virtual images to real world surfaces in augmented reality systems
US9928656B2 (en) * 2015-09-11 2018-03-27 Futurewei Technologies, Inc. Markerless multi-user, multi-object augmented reality on mobile devices
CN108171733A (zh) * 2016-12-07 2018-06-15 赫克斯冈技术中心 扫描仪vis
CN108430032A (zh) * 2017-12-08 2018-08-21 深圳新易乘科技有限公司 一种实现vr/ar设备位置共享的方法及设备
US20180285052A1 (en) * 2017-03-30 2018-10-04 Microsoft Technology Licensing, Llc Sharing neighboring map data across devices

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10290049B1 (en) * 2018-06-27 2019-05-14 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for multi-user augmented reality shopping
US10573057B1 (en) * 2018-09-05 2020-02-25 Citrix Systems, Inc. Two-part context-based rendering solution for high-fidelity augmented reality in virtualized environment
US10482677B1 (en) * 2018-11-20 2019-11-19 Dell Products, L.P. Distributed simultaneous localization and mapping (SLAM) in virtual, augmented, and mixed reality (xR) applications

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384594B2 (en) * 2011-03-29 2016-07-05 Qualcomm Incorporated Anchoring virtual images to real world surfaces in augmented reality systems
US20120306850A1 (en) * 2011-06-02 2012-12-06 Microsoft Corporation Distributed asynchronous localization and mapping for augmented reality
US20140267234A1 (en) * 2013-03-15 2014-09-18 Anselm Hook Generation and Sharing Coordinate System Between Users on Mobile
US20140323148A1 (en) * 2013-04-30 2014-10-30 Qualcomm Incorporated Wide area localization from slam maps
US20140354685A1 (en) * 2013-06-03 2014-12-04 Gavin Lazarow Mixed reality data collaboration
US20150193982A1 (en) * 2014-01-03 2015-07-09 Google Inc. Augmented reality overlays using position and orientation to facilitate interactions between electronic devices
US20160117822A1 (en) * 2014-10-23 2016-04-28 Qualcomm Incorporated Selection strategy for exchanging map information in collaborative multi-user slam systems
US20160179830A1 (en) * 2014-12-19 2016-06-23 Qualcomm Incorporated Scalable 3d mapping system
US9928656B2 (en) * 2015-09-11 2018-03-27 Futurewei Technologies, Inc. Markerless multi-user, multi-object augmented reality on mobile devices
CN108171733A (zh) * 2016-12-07 2018-06-15 赫克斯冈技术中心 扫描仪vis
US20180285052A1 (en) * 2017-03-30 2018-10-04 Microsoft Technology Licensing, Llc Sharing neighboring map data across devices
CN108430032A (zh) * 2017-12-08 2018-08-21 深圳新易乘科技有限公司 一种实现vr/ar设备位置共享的方法及设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114812381A (zh) * 2021-01-28 2022-07-29 华为技术有限公司 电子设备的定位方法及电子设备

Also Published As

Publication number Publication date
US20200349735A1 (en) 2020-11-05
US11127161B2 (en) 2021-09-21
DE102020110662A1 (de) 2020-11-05
US10748302B1 (en) 2020-08-18

Similar Documents

Publication Publication Date Title
US11127161B2 (en) Multiple user simultaneous localization and mapping (SLAM)
US11132546B2 (en) Plane detection using semantic segmentation
JP2020042802A (ja) 3次元コンテンツ内の場所に基づく仮想要素モダリティ
US20190371072A1 (en) Static occluder
CN110633617B (zh) 使用语义分割的平面检测
US11100659B2 (en) Object detection using multiple three dimensional scans
CN112116716A (zh) 基于检测到的对象来定位的虚拟内容
US11682138B2 (en) Localization and mapping using images from multiple devices
CN114514493A (zh) 增强设备
US10984607B1 (en) Displaying 3D content shared from other devices
US11961195B2 (en) Method and device for sketch-based placement of virtual objects
US11430198B1 (en) Method and device for orientation-based view switching
CN112987914A (zh) 用于内容放置的方法和设备
CN112561071A (zh) 根据3d语义网格的对象关系估计
US11468611B1 (en) Method and device for supplementing a virtual environment
US11315278B1 (en) Object detection and orientation estimation
CN116583870A (zh) 用于多相机孔填充的方法和设备
CN112017126A (zh) 增强的局部对比度
US10964056B1 (en) Dense-based object tracking using multiple reference images
US20230298278A1 (en) 3d photos
CN117136542A (zh) 用于观看3d照片和3d视频的技术
CN112581628A (zh) 用于解决焦点冲突的方法和设备
CN112465988A (zh) 具有实例检测的对象检测以及一般场景理解
CN116157766A (zh) 具有基于观看者位置的音频的视觉内容呈现

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