CN113950609A - 使用信号指纹和会话特定标识符的粗略重定位 - Google Patents
使用信号指纹和会话特定标识符的粗略重定位 Download PDFInfo
- Publication number
- CN113950609A CN113950609A CN202080040809.0A CN202080040809A CN113950609A CN 113950609 A CN113950609 A CN 113950609A CN 202080040809 A CN202080040809 A CN 202080040809A CN 113950609 A CN113950609 A CN 113950609A
- Authority
- CN
- China
- Prior art keywords
- display device
- map data
- session
- specific identifier
- fingerprint
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 74
- 230000033001 locomotion Effects 0.000 claims description 11
- 238000007619 statistical method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 9
- 238000012937 correction Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 239000013598 vector Substances 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000004807 localization Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000005484 gravity Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000007177 brain activity Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011982 device technology Methods 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000004146 energy storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000002366 time-of-flight method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- 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
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
-
- 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
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
- G01S19/48—Determining position by combining or switching between position solutions derived from the satellite radio beacon positioning system and position solutions derived from a further system
- G01S19/485—Determining position by combining or switching between position solutions derived from the satellite radio beacon positioning system and position solutions derived from a further system whereby the further system is an optical system or imaging system
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
- G01S5/0252—Radio frequency fingerprinting
- G01S5/02521—Radio frequency fingerprinting using a radio-map
- G01S5/02523—Details of interaction of receiver with radio-map
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- 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
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/023—Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S2205/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S2205/01—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations specially adapted for specific applications
- G01S2205/02—Indoor
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/16—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using electromagnetic waves other than radio waves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/10—Recognition assisted with metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/025—Services making use of location information using location based information parameters
- H04W4/027—Services making use of location information using location based information parameters using movement velocity, acceleration information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/38—Services specially adapted for particular environments, situations or purposes for collecting sensor information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
Abstract
提供了第一显示设备和方法以用于通过生成会话特定标识符并且将其发送到第二显示设备来加速第一显示设备的粗略重定位过程,第二显示设备将标识符传送到云服务,云服务返回与标识符相对应的地图数据集的至少一部分。然后将返回的地图数据集拼接到第一显示设备的局部地图数据内以创建集成的地图,该集成的地图被用于渲染一个或多个全息图。第一显示设备可以包括处理器、可操作地耦合到处理器的存储器、以及存储在存储器中并且由处理器执行的指纹程序。
Description
背景技术
6-DoF跟踪,也称为六自由度跟踪,是一种由设备(例如混合现实头戴式设备(HMD)、机器人、智能电话等)使用传感器(例如相机、惯性测量单元等)用来定位自身或确定其相对于周围物理环境的定位的方法。当设备在新环境中开启时,设备最初执行粗略重定位步骤,其中在设备执行更细粒度的定位步骤以确定自身相对于其周围物理环境的更精确位置之前,设备的当前位置的大致的附近被确定。例如,混合现实HMD或智能电话可以使用这种定位理解来放置全息图或数字内容,以便看起来与物理世界中的某个定位是世界锁定的,并且机器人可以使用该定位理解来相对它的周围来对自身进行导航。
设备在进行更细粒度的定位步骤之前通过有效加载适当的地图数据集以加速粗略重定位步骤,从而快速定向自身或确定其自身相对于物理环境的三维坐标空间的定位的能力越来越有价值。自定向的传统方法是在设备开始自身定向之前将物理环境的所有地图数据集加载到存储器内。然而,这种传统方法可能与包括大存储器需求和长加载时间的实际缺点相关联。
发明内容
为了解决这些问题,提供了第一显示设备和方法以简化和加速第一显示设备的粗略重定位过程。第一显示设备可以包括处理器、可操作地耦合到处理器的存储器、以及存储在存储器中并且由处理器执行的客户端指纹程序。
客户端指纹程序可以被配置为从第二设备接收会话特定标识符,该会话特定标识符与地图数据集相对应;将会话特定标识符传送到远程系统;从远程系统接收与会话特定标识符相对应的地图数据集;将地图数据集拼接到第一显示设备的局部地图数据内,以创建集成的地图。
本发明内容被提供来以简化的形式介绍在下面的详细描述中进一步描述的一系列概念。本发明内容不旨在识别要求保护的主题的关键特征或必要特征,也不旨在被用来限制要求保护的主题的范围。此外,要求保护的主题不限于解决在本公开的任何部分中指出的任何或所有缺点的实现。
附图说明
图1示出了根据本公开的示例实施例的头戴式显示设备形式的计算设备。
图2是在物理环境内由图1的计算设备用于同时定位和映射的示例预测性校正算法的示意图。
图3是数据的时间序列视图,该数据由图1的计算设备的各种传感器捕获并且处理以生成一系列由姿态图链接的关键帧。
图4A是根据本公开第一实施例的用于生成当前指纹、将当前指纹与指纹数据进行比较并且发送针对匹配地图数据集的请求的计算设备的示意图。
图4B是描绘图4A中所示的信号和信号源的一个示例的计算设备的示意图。
图4C是图4A中所示的指纹、指纹数据和对应的地图数据集的一个示例的详细示意图。
图5是根据本公开第二实施例的用于生成当前指纹、将当前指纹与指纹数据进行比较并且发送针对匹配地图数据集的请求的计算设备的示意图。
图6示出了根据本公开示例的在餐厅中佩戴图1的头戴式显示设备的用户。
图7是根据本公开第二实施例的包括对应的地图数据集的地图数据的一个实施例的示意图。
图8A、图8B和图8C是根据本公开的三个示例的生成当前指纹并且取回对应的地图数据集的方法的流程图。
图9示出了根据本公开实施例的计算系统。
图10是根据本公开第三实施例的用于获取会话特定标识符并且使用会话特定标识符来发送针对匹配地图数据集的请求的计算设备的示意图。
图11A、图11B、图11C和图11D是根据本公开的四个示例的获取会话特定标识符并且取回对应的地图数据集的方法的流程图。
具体实施方式
图1图示了根据本公开的一个实施例的计算设备10的头戴式显示设备10实施例,其已经被构想来解决上面讨论的问题。如所示的,计算设备10包括处理器12、易失性存储设备14、非易失性存储设备16、相机18、显示器20、有源深度相机21。处理器12被配置为执行使用易失性存储设备14的各部分而存储在非易失性存储设备16中的软件程序,以执行本文叙述的各种功能。在一个示例中,处理器12、易失性存储设备14和非易失性存储设备16可以被包括在头戴式显示设备10中包括的片上系统配置中。可以理解,计算设备10还可以采取其他类型的移动计算设备的形式,诸如例如智能电话设备、平板设备、膝上型计算机、用于自主车辆的机器视觉处理单元、机器人、无人机或其他类型的自主设备等等。在本文所描述的系统中,计算设备10形式的设备可以被利用以作为显示设备,如下面讨论的图2-图8C中所图示的。
显示器20被配置为至少部分透视,并且包括被配置为向用户的每只眼睛显示不同图像的右和左显示区域120A、120B。通过控制在这些右侧和左侧显示区域120A、120B上显示的图像,全息图50可以以使得在用户的眼睛看来与定位在物理环境9内的用户相距一定距离处的方式进行显示。如本文中所使用的,全息图是通过在相应的左和右近眼显示器上显示左和右图像而形成的图像,其由于立体效果而看起来像被定位在距离用户一定距离处。通常,全息图通过虚拟锚64而被锚定到物理环境的地图,虚拟锚64根据它们的坐标而被放置在地图内并且通常被定位在通过环境的捕获图像的图像处理可辨识的视觉特征上。这些锚是世界锁定的,并且全息图被配置为被显示在相对于锚计算的位置。通常,全息图被定义为使得被显示在与它们对应的锚相距阈值距离内,诸如3米,但是也可以使用其他阈值距离。
在图1中所图示的配置中,在计算设备10上提供多个相机18并且相机18被配置为捕获计算设备10的周围物理环境的图像。在一个实施例中,提供了四个相机18,但是相机18的精确数目可以变化。在一些配置中,来自相机18的原始图像可以以透视校正而被拼接在一起以形成物理环境的360度视图。通常,相机18是可见光相机。可以使用无源立体深度估计技术来比较来自两个或更多相机18的图像以提供深度估计。
除了可见光相机18之外,可以提供深度相机21,其使用有源非可见光照明器23和非可见光传感器22来以分阶段或门控方式发射光并且使用飞行时间技术来估计深度,或者以结构化模式发射光并使用结构化光技术来估计深度。
计算设备10通常还包括六自由度惯性运动单元19,其包括加速度计、陀螺仪和可能的磁力计,其被配置为在六个自由度(即x、y、z、俯仰、横滚和偏航)上测量计算设备的定位。
由可见光相机18、深度相机21和惯性运动单元19捕获的数据可以被用来在物理环境9内执行同步定位和映射(SLAM),从而产生包括重建表面的网格的物理环境的地图,并且在物理环境9的地图内定位计算设备10。在六个自由度中计算计算设备10的位置,这对于在至少部分透视的显示器20上显示世界锁定的全息图50较重要。如果没有计算设备10的定位和定向的准确标识,则显示在显示器20上的全息图50当它们在世界锁定的定位应该保持就位时可能看起来相对于物理环境稍微移动或振动。该数据也可用于在计算设备10开启时重定位计算设备10,该过程涉及确定其在物理环境的地图内的定位,并将适当的数据从非易失性存储器加载到易失性存储器以显示位于在物理环境内的全息图50。
IMU 19在六个自由度中测量计算设备10的定位和定向,并且还测量加速度和旋转速度。这些值可以被记录以作为姿态图以帮助跟踪显示设备10。因此,即使在很少有视觉线索来实现视觉跟踪时,例如在光线不足的区域或无纹理的环境中,加速度计和陀螺仪在没有视觉跟踪的情况下仍然可以实现由显示设备10进行空间跟踪。显示设备10中的其他组件可以包括但不限于扬声器、麦克风、重力传感器、Wi-Fi传感器、温度传感器、触摸传感器、生物识别传感器、其他图像传感器、眼睛注视检测系统、能量存储组件(例如电池)、通信设施等。
图2图示了由计算设备10用于同时定位和映射的一种可能的SLAM算法的一般概述。根据SLAM算法,通常应用预测性校正模型28,其例如可以是卡尔曼滤波器。在每一帧(即,时间步长)中,下一帧中的预测的姿态29由积分引擎27基于来自IMU 19的测距数据119A来计算,然后对预测的姿态29的修正由预测性校正模型(例如,卡尔曼滤波器)28基于由诸如相机18和深度相机21的传感器在物理环境9中感测到的特征的估计和观察定位来计算,最后预测的姿态29被更新并且更新的姿态35被反馈到积分引擎27,以用于在随后的时间步长计算预测的姿态29。还可以使用诸如激光雷达、麦克风阵列等的附加传感器来获取对环境中的特征的观察,其可以被用来计算预测性校正模型28的校正和更新的姿态。
特征描述符111A描述通过图像处理技术可检测的诸如边缘、角和其他图案的特征,特征描述符111A被预先存储在非易失性存储设备16中的特征库11中。实时地,图像118A和深度图像121A分别由相机18和深度相机21捕获,并且由处理器12执行的特征匹配引擎13处理,以通过在捕获的图像中寻找与预先存储的特征描述符111A相匹配的区域来检测捕获的图像118A、121A中是否存在与特征描述符111A相匹配的特征。一些检测到的特征可以具有与其相关联的锚64,因为锚常常被定位于环境中的这种视觉上可识别的特征上。针对每个检测到的特征,特征的位置(例如,坐标区域)和类型被存储为与每帧相关联的观察数据17。可以理解,可以在图像中识别出数十个或数百个这样的特征,并且这些特征观察17的集合可以非正式地称为图像中检测到的特征的点云。此外,对于至少在图像中选择的检测到的特征,围绕选择的检测到的特征从图像中获取小块15(patch)并且将其存储在存储器中以用于之后调用。该小块15通常是来自捕获图像的区域中的像素或体素的二维阵列,并且可以在未来的定位步骤中被使用——当计算设备10从另一角度捕获选择的检测到的特征的图像时,通过在小块上执行透视校正以确定透视校正的小块中的选择的检测到的特征是否(以及在哪里)出现在后续图像中。这些选择的检测到的特征在物理环境中的物理表现也被称为锚。与针对每帧的特征描述符111A、观察17和小块15相匹配的特征被统称为特征匹配数据113A。特征匹配数据113A通常不包括深度图像121A或RGB图像数据118A。如下面所讨论的,特征匹配数据113A可以被存储在用于某些帧(被称为关键帧)的非易失性或易失性存储器中。姿态图80、特征匹配数据113A、表面重建数据82和由姿态图80链接的关键帧84可以被统称为地图数据86。当计算设备10在整个物理环境9中移动时,它映射环境并将其聚合的环境知识存储为地图数据86。如下文将讨论的,直接或通过中间设备(诸如服务器)来与另一设备共享该聚合的地图数据的一部分可以使得其他设备能够更快速且准确地在物理环境中定位它们自己,为其他设备节省时间和处理功率。
图3示出了由计算设备10的传感器套件中的相机18、深度相机21、IMU 19和GPS接收器25收集并且由计算设备10的处理器12处理的数据的示例示意图。图3中的数据点被示为沿时间轴布置,其中较晚时间被显示在较早时间的右侧。通常,数据是从每个传感器以一定的采样率被定期收集的。为便于说明,图中将各种传感器的采样率描绘为以相同的采样率进行量化(尽管实践中采样率可以不同),并且从传感器对数据进行采样的每个时间步长被称为帧546。因此,在第一帧546A、第二帧546B以及之后的每一帧中,图像数据118A由相机18(在该示例中为四个相机)收集,深度相机数据121A使用深度相机21收集,测距数据119A由IMU 19收集,并且GPS数据125A由GPS接收器25收集。
处理器12可以使用上面讨论的同时定位和映射(SLAM)技术,基于包括图像数据118A、深度图像数据121A、测距数据119A和GPS数据125A的传感器套件输入,来生成姿态图80、特征匹配数据113A和表面重建数据82。姿态图80是具有节点的有向图,节点是随时间检测到的一系列更新的姿态35。姿态通常是一个单位向量,其原点在预先确定的位置(x,y和z)处并且沿物理空间中的预先确定的定向(俯仰、偏航和横滚)延伸,并且如关于图2所描述的那样进行计算。原点对应于计算设备上的预先确定的固定位置,诸如左右显示器之间的等距,并且单位向量在用户的注视方向上以固定姿势从显示器向外延伸。处理器12通常在每一帧中生成姿态图80,但是备选地可以不那么频繁地生成姿态图80,诸如每隔一帧等。表面重建数据82通常包括物理环境中检测到的表面的网格,其使用深度图像数据121A和/或图像数据118A的立体分析而被检测到。如上面所讨论的,特征数据113A通常包括与姿态图80的每个姿态相关联的一个或多个小块、观察和/或特征描述符。
处理器12可以生成包括多个关键帧84的关键帧数据并将其存储在存储器中。每个关键帧84包括姿态图80的一个姿态,因此关键帧84由姿态图80链接。每个关键帧84还包括特征匹配数据113A,其包括一个或多个(通常是多个)观察17、匹配特征描述符的特征111A、以及针对该帧的相关联的小块15。关键帧数据还可以包括元数据,元数据例如可以包括适用于该帧的GPS数据125A、测距数据119A、硬件数据(例如,相机镜头类型)、周围环境温度等。关键帧84可以在一系列连续帧内以定期间隔来生成,例如每隔一帧或每10帧等。备选地,关键帧84可以随着计算设备10移动通过物理环境9而以预先确定的空间间隔(诸如每1或2米)来生成。
图4A是根据本公开第一实施例的生成当前信号指纹(以下简称“当前指纹”)并且与服务器计算设备交互的显示设备的示意图。如下文更详细解释的,服务器计算设备200可以被用于存储信号指纹数据54(以下称为“指纹数据”)和地图数据集58。计算设备200可以采取如下形式:服务器、联网计算机、游戏机、移动通信设备、台式计算机、膝上型计算机、平板计算机、机顶盒(例如有线电视盒、卫星电视盒)或任何其他类型的合适的计算设备。在一些示例中,计算设备200可以包括更大的电子或机械设备或系统内的嵌入式系统。在其他示例中,计算设备200可以与显示设备30相同。关于计算设备200的组件和计算方面的附加细节在下面关于图9更详细地描述。
服务器计算设备200可以包括可以被存储在计算设备200的大容量存储装置218中的服务器指纹程序214。服务器指纹程序214可以被加载到存储器220中并且由服务器计算设备200的处理器260执行,以执行一个或多个方法和过程,以用于响应于从显示设备30接收到指纹请求52而将指纹数据54发送到显示设备30,并且响应于从显示设备30接收到地图数据请求48而取回一个或多个对应的地图数据集并且将对应的地图数据集发送到显示设备30,如下文更详细描述的。服务器计算设备200可以配置有无线收发器230,其与显示设备30进行无线通信以从显示设备30接收指纹请求52和地图数据请求48,并且将指纹数据54和匹配地图数据集66传送到显示设备30。可以理解,匹配的地图数据集66是与一个或多个最接近匹配指纹相对应的一个或多个地图数据集。本公开中应用的地图数据的类型没有特别限制,可以理解为将物理环境中的三维坐标空间中的点与帮助在三维空间中定向和定位显示设备的信息相关的任何数据集。下面关于图6和图7更详细地描述该地图数据的一个可能的实施例,并且包括关键帧60、姿态图62和锚数据形式的锚64。锚数据的格式没有特别限制,可以被编码为标识锚的唯一字符串标识符,以及标识锚在地图内的位置的坐标。
服务器计算设备200可以经由到网络的有线连接或无线连接而可通信地耦合到一个或多个其他设备。在一些示例中,网络可以采取如下形式:局域网(LAN)、广域网(WAN)、有线网络、无线网络、个域网或其组合,并且可以包括互联网。在图4A的示例中,服务器计算设备200经由一个或多个网络而可通信地耦合到显示设备30。在其他示例中,服务器计算设备200可以与附加的设备可操作地连接。显示设备30的显示器20可以从显示设备30的优势点在虚拟地点定位锚64处显示一个或多个全息图。在一些示例中,虚拟地点定位锚64的虚拟位置可以被世界锁定到一个虚拟定位,该虚拟定位被固定在覆盖在真实世界三维环境上的三维坐标空间中。在其他示例中,虚拟地点定位锚64的虚拟位置可以相对于真实世界三维环境中的对象而被世界锁定到一个虚拟定位。
显示设备30的一个或多个处理器执行客户端指纹程序38。显示设备30将局部地图数据36存储到本地存储器中。局部地图数据36可以包括由显示设备30中的视觉传感器和/或惯性测量传感器18跟踪的显示设备30的记录的旋转和平移运动。显示设备30可以经由到网络的有线连接或无线连接而可通信地耦合到一个或多个其他设备,但是通信耦合没有特别限制,可以涵盖任何形式的数据流,包括Wi-Fi、电子邮件、外部数据存储设备、云存储设备等。在一些示例中,网络可以采取如下形式:局域网(LAN)、广域网(WAN)、有线网络、无线网络、个域网或它们的组合,并且可以包括互联网。
显示设备中的传感器18从一个或多个信号源32接收信号33。信号源32可以包括射频源、电磁源、光源、声源和热源中的至少一个源。信号33可以包括电磁信号、重力、磁场和温度中的至少一个信号。电磁信号可以包括FM信号、GPS信号、蜂窝信号和Wi-Fi信号中的至少一个信号。参考图4B,信号源可以包括对信标帧133A-C进行广播的一个或多个无线接入点132A-C。每个信标帧133C包括以太网报头135C,其中包括MAC地址137C。信标帧133C的主体可以包括SSID(未图示)。信标帧133C提供关于始发无线接入点132C的类型、品牌或型号的信息。
返回图4A,响应于传感器18从信号源32A-C接收信号33A-C,显示设备30记录这些检测到的信号33A-C并且将它们打包成与当前时间相关联的当前指纹。当前指纹的生成可以实时连续地执行,也可以分批定期或不定期地执行。在其他实施例中,当前指纹可以在一个或多个预先确定的事件处生成,诸如当显示设备30开启时。应该理解,当前指纹的格式类似于服务器计算设备的大规模存储装置218中的指纹56的格式,以使得可以将当前指纹中的数据与指纹56的指纹数据54进行比较和对比。
独立于当前指纹的生成,显示设备30还从服务器计算设备200取回指纹数据54。服务器计算设备200可以响应于由显示设备30发送的指纹请求52而将指纹数据54发送到显示设备30。然而,可以理解,服务器计算设备200可以备选地或附加地发起向显示设备30发送指纹数据54——即使在没有指令或请求提示这样做的情况下。
转向图4C,描绘了指纹56、指纹数据54和地图数据集58的一个可能示例,其中指纹对应于物理环境中不同的、有区别的区域,并且指纹数据包括一个或多个向量。在该示例中,分别为办公环境和家庭环境提供两个不同的指纹,并且每个向量是包括一个MAC地址和一个信号强度的配对。然而,可以理解,也可以使用SSID来代替MAC地址。指纹数据54A指示通常将由办公环境中的显示设备检测或接收的信标帧信号的MAC地址和信号强度。同样,指纹数据54B指示通常将由家庭环境中的显示设备接收的信标帧信号的MAC地址和信号强度。每个指纹链接到它自己的对应地图数据集:办公室指纹56A链接到办公室地图数据集58A,而家庭指纹56B链接到家庭地图数据集58B。可以理解,指纹数据的格式没有特别限制,可以仅包括一个环境变量(例如,仅MAC地址、仅SSID或仅信号强度),或多个环境变量。例如,指纹数据可以包括不同类型的信号的混合,包括蜂窝信号和Wi-Fi信号的组合,或者红外测量和Wi-Fi信号的组合。来自两个或更多不同指纹的指纹数据可以存在重叠——例如,办公室指纹56A和家庭指纹56B可以包含具有相同MAC地址的信标帧(在该示例中,MAC地址<C>由两个指纹56A和56B共享)。在其他实施例中,一个公共指纹可以与多个地图数据集链接,和/或一个地图数据集可以与多个指纹链接。指纹数据54可以包括预测显示设备30检测到的预测的信号,或者显示设备已经检测到并且记录在服务器计算设备200中的实际信号。
返回图4A,由显示设备30执行的客户端指纹程序38将当前指纹与从服务器计算设备200取回的指纹数据54进行比较,然后通过与当前指纹的接近度来评估指纹数据中的候选指纹并对候选指纹进行排序。在这个示例中,候选指纹是办公室指纹56A和家庭指纹56B。当前指纹与指纹数据54的比较可以一维或多维地执行。例如,对候选指纹与当前指纹的接近度或消歧程度的评估可以仅根据信号源一维地进行,或者根据信号源和信号强度多维地进行。可以基于相似度或消歧程度的统计分析来评估接近度,并且可以包括置信值和距离函数以及距离度量。距离函数的示例包括余弦距离函数和Ln距离函数。距离度量的示例包括汉明距离和欧几里德距离。也可以应用以降序排序置信度的置信度算法和/或结合距离函数的消歧程度算法来评估接近度。当前指纹和/或指纹数据可以经历过滤以筛选出异常值或去除其他不想要的数据。例如,客户端指纹程序38可以被配置为过滤掉来自选择的无线接入点的数据,或者移除信号强度低于预先确定的阈值的MAC地址。例如,客户端指纹程序38还可以对当前指纹或指纹数据中的向量数目施加门限或预先确定的上限,例如允许每个指纹在指纹数据中最多三个向量。在统计分析的过程中也可以索求用户输入。例如,如果多个候选指纹在预设的相似度阈值内,在没有明确的决定因素的情况下,则在对候选指纹的评估下结论之前,可以索求用户输入以提供用于在多个候选指纹之间进行消歧和选择的输入。索求用户输入的一个示例可以是向用户呈现两个选项:“高置信度”候选指纹,其具有足够高的置信度值,可以成为由预先确定的阈值所确定的合理匹配;以及“相似置信度”候选指纹指纹,其被确定为由另一预定阈值所确定的第二高匹配,因此用户输入将在“高置信度”和“相似置信度”候选指纹之间进行消歧。
在评估候选指纹与当前指纹的接近度之后,客户端指纹程序38确定候选指纹中的一个候选指纹与当前指纹最接近匹配,然后生成并且发送对与最接近匹配指纹相对应的地图数据集的地图数据请求48。例如,如果客户指纹程序38确定办公室指纹56A是最接近匹配指纹,则程序38生成并且发送针对办公室地图数据集58A的地图数据请求。服务器计算设备200接收地图数据请求48,然后取回办公室地图数据集58A以作为匹配的地图数据集66发送给显示设备30。显示设备30接收办公室地图数据集58A,将其拼接到局部地图数据36中以创建集成的地图,并且基于集成的地图在显示器20上渲染一个或多个全息图。
图5是根据本公开第二实施例的生成当前指纹并与服务器计算设备交互的显示设备的示意图。由于图4A和图5的实施例之间的差异主要涉及地图数据集、指纹和指纹数据的结构差异,因此为了简洁起见,省略了对显示设备30和服务器计算设备200的详细描述。应当注意,贯穿详细描述和附图,相似的部分由相似的参考标号来标明。在这个实施例中,不是针对不同环境存在多个不同的、有区别的地图数据集,而是只存在一个统一全局地图数据集158,其表示一个包含多个不同物理环境的统一物理环境。在一些示例中,全局地图数据集158中的多个不同物理环境可以包括整个世界。每个指纹156被链接到它自己对应的关键帧160而不是链接到对应的地图数据集。至少两个关键帧可以链接到公共指纹,尤其是当这两个关键帧在物理上彼此靠近时。因此,客户端指纹程序38可以确定多个候选指纹与当前指纹最接近匹配,然后生成并且发送针对全局地图数据集158内与链接到最接近匹配候选指纹的标识的关键帧相对应的地图数据集或多个地图数据集的地图数据请求48。在一些示例中,客户端指纹程序38可以标识链接到最接近匹配候选指纹的标识关键帧周围的邻域,其可以包括落在标识关键帧的预先确定的距离内的锚、关键帧和姿态图。然而,可以理解,邻域可以被任意定义为包含标识的关键帧周围或附近的任何形状或大小的三维空间,包括可能不一定包括标识的关键帧中的至少一个的邻域。与指纹和关键帧相关的该邻域的一个可能的实施例在下面关于图7详细描述。然后,服务器计算设备200将与标识的关键帧相对应的一个或多个匹配的地图数据集66发送到显示设备30以拼接到局部地图数据36内。
参考图6,现在将呈现说明本公开的各方面的示例用例。如图6中示意性示出的那样,第一用户302可以站在餐厅306中,佩戴着第一显示设备30,在该示例中,第一显示设备30可以采取图1中所示的HMD设备的形式。然而,可以理解,显示设备并不特别限于HMD设备,并且可以采取任何允许用户查看覆盖在真实世界3D环境上的全息图像的形式,诸如专用智能电话和平板设备,自主机器人等。如上面所指出,第一显示设备30(HMD设备)和第二显示设备34可以包括至少部分透视的显示器,其被配置为通过餐厅306的真实世界三维环境的显示器分别在视觉上增强第一用户302和第二用户304的视图。第一显示设备30可以使用覆盖在真实世界餐厅上的三维坐标空间来生成餐厅306的虚拟模型。在图6的示例中,这样的三维坐标空间由x、y和z轴来指示。
如以下更详细地描述的,第一显示设备30和第二显示设备34还可以包括客户端指纹程序38的程序逻辑,其取回餐厅306的一个或多个地图数据集。地图数据集合可以被构造为由姿态图62链接的关键帧60和与全息图50的渲染相关联的锚64。在该示例中,全息图50使用位于图片310上的目标锚64A而被投影到桌子308上。用于另一全息图的另一相邻锚64B位于图片310附近的时钟312中。第一用户302和第二用户304在他们分别操作第一显示设备30和第二显示设备34以房间306中的各个角度从他们各自的有利位置观看全息图50时在房间306中漫游。当用户在房间306漫游时,第一显示设备30和第二显示设备34内的传感器18捕获视觉和/或惯性跟踪数据,从而通过传感器设备18跟踪显示设备的旋转和平移运动,传感器设备18观察传感器设备18的三维旋转和平移以被记录为姿态62A-G和关键帧60A-G,其随后被存储为第一显示设备30中的局部地图数据36和第二显示设备34中的局部地图数据。局部地图数据36可以被传送到服务器计算设备200以被存储在服务器计算设备200的大容量存储装置218中,并且如果地图数据集对应于由地图数据请求48所指示的一个或多个最接近匹配的指纹,则稍后作为一个或多个匹配的地图数据集66而被取回。关于图7更详细地描述姿态62A-G和关键帧60A-G。显示设备30和34随后使用取回到的匹配的地图数据集66来定向和定位它们自己,并确定它们自己相对于餐厅306的物理环境的更精确位置。
转向图7,更详细地讨论了应用于本公开的地图数据的一种可能实施例。用于地图数据的信息可以由多个显示设备中的至少一个传感器设备生成,该传感器设备以被配置为关键帧60A-G和连接姿态62A-H的姿态图80的集合的形式向计算设备200发送包括由传感器设备跟踪的旋转和平移运动在内的传感器数据。此处,描绘了显示设备及其关键帧和姿态图,但其他实施例的特征可以是两个或更多彼此靠近的显示设备,每个显示设备具有它们自己的关键帧和姿态图的轨迹。地图数据中还包含多个虚拟地点定位锚64,其包括在物理环境中具有已知三维坐标的世界锁定虚拟位置处的目标锚64A和相邻锚64B。这些锚可以包括物理环境中明显的显眼的特征,诸如图6中所示的图片310和时钟312。在姿态图80中被描绘为小箭头的姿态62A-H通常是单位向量,其指向显示设备的显示器外的固定直前注视的方向,如上所述,并且姿态图记录姿态随着时间的推移在三维空间中的位置。单独的关键帧60A-G在姿态图80中彼此链接,姿态图80链接姿态62A-H。因此,姿态图包括在有向图中彼此链接的多个这样的姿态,以便在显示设备穿过物理环境的三维坐标空间时跟踪姿态的变化。姿态图80形成地图数据的线性轨迹,显示设备将其留下以存储为局部地图数据,随后在显示设备随着时间的推移穿过三维坐标空间时作为地图数据发送到服务器计算设备200以用于编译和分析。
关键帧60A-G包含可以被用于提高显示设备确定其位置的能力的信息集,并因此帮助在稳定位置渲染全息图。如上面所讨论的,包括在关键帧60A-G中的数据的示例包括元数据、观察和小块、和/或图像特征描述符。元数据可以包括相机的外部数据、拍摄关键帧时的时间、重力数据、温度数据、磁力数据、校准数据、全球定位数据等。观察和小块可以提供有关捕获的图像中检测到的特征点的信息,诸如角和高对比度颜色变化,其帮助校正对显示设备的定位和定向的估计,并相应地有助于在三维空间中经由显示器20更好地对准和定位全息图像的显示。图像特征描述符可以是特征点,有时在小数据集(在一些示例中小至32字节)中被有效地表示,其被上述特征匹配引擎13使用来快速识别实时捕获的图像118A和深度图像中的特征121A,准确估计显示设备的位置,从而准确地在物理环境的地图上渲染全息图。
将关键帧互相链接的姿态图80可以是多个连续连接的姿态,其传达了显示设备随时间在关键帧之间经历了多少旋转和平移。多个锚可以经由姿态62A-H相互链接。可以理解,对于给定的关键帧,可以通过首先计算设备的当前姿态和与全息图相关联的锚之间的距离、然后计算锚和全息图本身之间的距离来计算显示设备和全息图之间的几何关系。
在图7中,客户端指纹程序38针对与当前指纹的接近度或消歧程度而评估候选指纹56A-G,基于统计分析根据与当前指纹的接近度或消歧程度来生成候选指纹56A-G的排序列表68。在该示例中,将前7个最接近的候选指纹包括在排序列表68中,但是排序列表68中包括的指纹数目没有特别限制,可以包括一个或多个候选指纹。在对接近度或消歧程度进行评估之后,客户端指纹程序38确定排序列表68中的多个候选指纹与当前指纹最接近匹配,然后生成并且发送对全局地图数据集158内与链接到最接近匹配候选指纹的标识的关键帧相对应的地图数据集或多个地图数据集的地图数据请求。在该示例中,客户端指纹程序38已经标识链接到最接近匹配候选指纹56D的标识的关键帧60D周围的邻域67。备选地,客户端指纹程序38可以标识分别链接到最接近匹配候选指纹56D和56E的多个标识的关键帧60D和60E周围的邻域。在该示例中,这个邻域67包括锚64A、关键帧60B-E和落入链接到最接近匹配的指纹56D的标识的关键帧60D的预先确定的距离内的姿态62C-F,并且邻域67被取回并作为匹配地图数据集66被发送到显示设备30。
然而,可以理解,邻域67可以备选地被任意定义为包含标识的关键帧周围或附近的任何形状或大小的三维空间,包括可能不一定包括标识的关键帧中的至少一个关键帧的邻域。匹配地图数据集66还可以包括将关键帧加载到显示设备30中的排序顺序的指令。例如,指令可以指示显示设备30分别按照指纹56D、56E、56C、56B、56F、56A和56G的排序顺序来依次加载关键帧60D、60E、60C、60B、60F、60F、60A和60G。备选地,如果多个匹配地图数据集被发送到显示设备30,则指令可以包括将单独的地图数据集加载到显示设备30的存储器中的排序顺序。当显示设备30遇到存储器限制时,因为显示设备30不断地合并新的地图数据集,指纹或地图数据集的这个排序顺序被也可以被显示设备30用来确定关键帧或地图数据集被丢弃或逐出的顺序。在该示例中,当显示设备30清空其旧地图数据集的存储器时,显示设备30将依次丢弃关键帧60G、60A、60F、60B、60C、60E和60D。可以理解,指纹的排序顺序也可以被用来确定从显示设备30的存储器中逐出其他数据集(诸如姿态图和锚)的顺序。
图8A图示了根据本公开示例的用于执行粗略定位的方法600的第一配置的流程图。方法600的以下描述是参考在图1-图7中示出并且在上面描述的软件和硬件组件来提供的。可以理解,方法600也可以使用其他合适的硬件和软件组件在其他上下文中执行。
参考图8A,在602处,方法600可以包括显示设备的传感器从一个或多个信号源接收信号,诸如无线接入点。在604处,显示设备基于接收信号来生成当前指纹。在606处,显示设备向服务器计算设备发送针对指纹数据的请求。在608处,服务器计算设备接收针对指纹数据的请求。在610处,服务器计算设备将指纹数据发送到显示设备。在612处,显示设备从服务器计算设备接收指纹数据。在614处,显示设备将当前指纹与指纹数据进行比较。在616处,显示设备通过与当前指纹的接近度来评估指纹数据中的候选指纹并且对候选指纹进行排序。在618处,显示设备发送针对与一个或多个最接近匹配指纹相对应的一个或多个地图数据集的请求。在620处,服务器计算设备接收针对与一个或多个最接近匹配的指纹相对应的一个或多个地图数据集的请求。在622处,服务器计算设备取回与一个或多个最接近匹配的指纹相对应的一个或多个地图数据集并且将其发送到显示设备。在624处,显示设备接收一个或多个对应的地图数据集。在626处,显示设备将对应的地图数据集拼接到局部地图数据内以创建集成的地图。在628处,显示设备基于集成的地图来渲染一个或多个全息图。
图8B图示了根据本公开的示例的用于执行粗略定位的方法700的第二配置的流程图。方法700的以下描述是参考在图1-图7中示出并且在上面描述的软件和硬件组件来提供的。可以理解,方法700也可以使用其他合适的硬件和软件组件在其他上下文中执行。
参考图8B,在702处,方法700可以包括显示设备的传感器从一个或多个信号源接收信号,诸如无线接入点。在704处,显示设备基于接收信号来生成当前指纹。在706处,显示设备向服务器计算设备发送针对指纹数据的请求。在708处,服务器计算设备接收针对指纹数据的请求。在710处,服务器计算设备将当前指纹与指纹数据进行比较。在712处,服务器计算设备通过与当前指纹的接近度来评估指纹数据中的候选指纹并对候选指纹进行排序。在714处,服务器计算设备取回与一个或多个最接近匹配指纹相对应的一个或多个地图数据集并且将其发送到显示设备。在716处,显示设备接收一个或多个对应的地图数据集。在718处,显示设备将对应的地图数据集拼接到局部地图数据内以创建集成的地图。在720处,显示设备基于集成的地图来渲染一个或多个全息图。
图8C图示了根据本公开的示例的用于执行粗略定位的方法800的第三配置的流程图。方法800的以下描述是参考在图1-图7中示出并且在上面描述的软件和硬件组件来提供的。可以理解,方法800也可以使用其他合适的硬件和软件组件在其他上下文中执行。
参考图8C,在802处,方法800可以包括显示设备的传感器从一个或多个信号源接收信号。在804处,显示设备基于接收信号来生成当前指纹。在806处,显示设备将当前指纹与指纹数据进行比较。在808处,显示设备通过与当前指纹的接近度来评估指纹数据中的候选指纹并且对候选指纹进行排序。在810处,显示设备取回与一个或多个最接近匹配指纹相对应的一个或多个地图数据集。在812处,显示设备将对应的地图数据集拼接到局部地图数据内以创建集成的地图。在814处,显示设备基于集成的地图来渲染一个或多个全息图。
可以理解,方法600、700和800是作为示例来提供的,并不意味着是限制性的。因此,可以理解,方法600、700和800可以包括相对于图8A、图8B和图8C中所图示的那些步骤的附加和/或备选步骤。此外,可以理解,方法600、700和800可以以任何合适的顺序执行。此外,可以理解,在不脱离本公开的范围的情况下,可以从方法600、700和800中省略一个或多个步骤。例如,当前指纹与指纹数据的比较以及候选指纹的评估和排序可以由显示设备、服务器计算设备或另一计算设备执行。此外,将对应的地图数据集拼接到局部地图数据中可以备选地由服务器计算设备或另一计算设备来执行。要被取回的地图数据集可以被存储在显示设备、服务器计算设备或另一计算设备中。
总之,当显示设备取回一个或多个地图数据集以对自身进行定向和定位时,它使用由显示设备中的传感器检测到的信号数据来生成当前指纹。将该当前指纹与现有指纹数据进行比较,并针对与指纹数据的候选指纹的接近度或消歧程度进行统计分析。生成最接近匹配的指纹的排序列表,随后将与最接近匹配的指纹相对应的地图数据发送到显示设备,以使得显示设备可以高效加载地图数据并将其合并到显示设备存储器中存储的局部地图数据中以在物理环境中有效地定向和定位自身。然后,随着6-DoF跟踪继续在显示设备上运行以留下存储为局部地图数据的线性地图数据的轨迹,设备可以基于最接近匹配的指纹的排序列表的相反顺序丢弃或驱逐地图数据。
因此,粗略重定位步骤被加速,使得显示设备可以相对于其周围的物理环境更快速且可靠地定向和定位自身,允许用户轻松地在不同环境之间物理地移动并自动适应所发现的相关地图数据以用于新环境。显示设备的存储器需求也降低,使得可以增量加载更大的环境数据而不会对用户体验产生不利影响。可以应用各种统计分析工具来针对不同的场景进行优化,例如进行校准以有利于加载速度或降低存储器需求。可以实现各种现有的地图数据格式,以保留基于关键帧的地图数据的灵活性,其例如允许灵活调整采样距离。
在一些实施例中,本文描述的方法和过程可以绑定到一个或多个计算设备的计算系统。特别地,这样的方法和过程可以被实现为计算机应用程序或服务、应用编程接口(API)、库和/或其他计算机程序产品。
图9示意性地示出了可以执行上述方法和过程中的一个或多个的计算系统900的非限制性实施例。以简化形式示出计算系统900。计算系统900可以体现图1的计算设备10或图4A和图5的服务器计算设备200。计算系统900可以采取如下形式:一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)、和/或其他计算设备,以及可穿戴计算设备,诸如智能手表和头戴式增强现实设备。
计算系统900包括逻辑处理器902、易失性存储器904和非易失性存储设备906。计算系统900可以可选地包括显示子系统908、输入子系统910、通信子系统912和/或在图9中未示出的其他组件。
逻辑处理器902包括被配置为执行指令的一个或多个物理设备。例如,逻辑处理器可以被配置为执行作为一个或多个应用、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。此类指令可以被实现以执行任务、实现数据类型、转换一个或多个组件的状态、实现技术效果或以其他方式达到期望的结果。
逻辑处理器可以包括被配置为执行软件指令的一个或多个物理处理器(硬件)。附加地或备选地,逻辑处理器可以包括一个或多个硬件逻辑电路或固件设备,其被配置为执行硬件实现的逻辑或固件指令。逻辑处理器902的处理器可以是单核或多核,并且在其上执行的指令可以被配置用于顺序、并行和/或分布式处理。逻辑处理器的各个组件可选地可以分布在两个或更多单独的设备之中,这些设备可以被定位在远处和/或被配置用于协调处理。逻辑处理器的各方面可以由在云计算配置中所配置的可远程访问的联网计算设备虚拟化和执行。在这种情况下,将理解,这些虚拟化方面在各种不同机器的不同物理逻辑处理器上运行。
非易失性存储设备906包括一个或多个物理设备,其被配置为保存可由逻辑处理器执行的指令以实现本文描述的方法和过程。当实现这样的方法和过程时,非易失性存储设备906的状态可以被转换——例如,以保持不同的数据。
非易失性存储设备906可以包括可移除和/或内置的物理设备。非易失性存储设备906可以包括光学存储器(例如,CD、DVD、HD-DVD、蓝光光盘等)、半导体存储器(例如,ROM、EPROM、EEPROM、闪存等),和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)或其他大容量存储设备技术。非易失性存储设备906可以包括非易失性、动态、静态、读/写、只读、顺序访问、位置可寻址、文件可寻址和/或内容可寻址设备。可以理解,非易失性存储设备906被配置为即使在非易失性存储设备906的电源被切断时也保持指令。
易失性存储器904可以包括物理设备,该物理设备包括随机存取存储器。易失性存储器904通常由逻辑处理器902利用来在软件指令的处理期间临时存储信息。可以理解,当易失性存储器904断电时,易失性存储器904通常不会继续存储指令。
逻辑处理器902、易失性存储器904和非易失性存储设备906的各方面可以一起被集成到一个或多个硬件逻辑组件中。例如,这种硬件逻辑组件可以包括现场可编程门阵列(FPGA)、程序专用和专用集成电路(PASIC/ASIC)、程序专用和专用标准产品(PSSP/ASSP)、片上系统(SOC)和复杂可编程逻辑器件(CPLD)。
术语“模块”、“程序”和“引擎”可以被用来描述计算系统900的一个方面,通常由处理器以软件来实现,以使用易失性存储器的部分来执行特定功能,该功能涉及专门配置处理器以执行该功能的变革性处理。因此,模块、程序或引擎可以经由逻辑处理器902使用易失性存储器904的部分执行由非易失性存储设备906保持的指令来实例化。可以理解,不同的模块、程序和/或引擎可以是从相同的应用、服务、代码块、对象、库、例程、API、函数等来实例化。同样,相同的模块、程序和/或引擎可以由不同的应用、服务、代码块、对象、例程、API、函数等来。术语“模块”、“程序”和“引擎”可以包括单个或一组可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
当被包括时,显示子系统908可以被用来呈现非易失性存储设备906所保持的数据的视觉表示。视觉表示可以采取图形用户界面(GUI)的形式。由于本文所描述的方法和过程改变了非易失性存储设备所保持的数据,并且因此转换了非易失性存储设备的状态,所以显示子系统908的状态同样可以被转换为在视觉上表示底层数据的改变。显示子系统908可以包括利用几乎任何类型的技术的一个或多个显示设备。这样的显示设备可以在共享外壳中与逻辑处理器902、易失性存储器904和/或非易失性存储设备906相组合,或者这样的显示设备可以是外围显示设备。
当被包括时,输入子系统910可以包括一个或多个用户输入设备或与一个或多个用户输入设备进行接合,诸如键盘、鼠标、触摸屏或游戏控制器。在一些实施例中,输入子系统可以包括选择的自然用户输入(NUI)组件或与选择的自然用户输入(NUI)组件进行接口。这样的组件可以是集成的或外围的,并且输入动作的变换和/或处理可以在板上或板外处理。示例NUI组件可以包括用于语音和/或话音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼部跟踪器、加速度计和/或陀螺仪;以及用于评估大脑活动的电场感测组件;和/或任何其他合适的传感器。
当被包括时,通信子系统912可以被配置为将本文所描述的各种计算设备彼此通信耦合,并且与其他设备通信耦合。通信子系统912可以包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可以被配置用于经由无线电话网络或有线或无线局域网或广域网(诸如通过Wi-Fi连接的HDMI和蓝牙)进行通信。在一些实施例中,通信子系统可以允许计算系统900经由诸如互联网的网络向和/或从其他设备发送和/或接收消息。
图10是根据本公开第三实施例的显示设备获取会话特定标识符并且与服务器计算设备的云服务交互的示意图。由于图5和图10的实施例之间的差异主要涉及显示设备向服务器计算设备请求地图数据的方式的不同,因此为了简洁起见,省略了显示设备30a和30b以及服务器计算设备200的详细描述。应当注意,贯穿详细描述和附图,相似的部分由相似的参考标号来标明。在这个示例中,第一显示设备30a捕获视觉和/或惯性跟踪数据,从而通过传感器设备18a跟踪显示设备30a的旋转和平移运动,传感器设备18a观察将被记录为姿态和关键帧的传感器设备18a的三维旋转和平移,随后将姿态和关键帧作为局部地图数据36a存储在第一显示设备30a中。第一显示设备30a还生成与局部地图数据36a相关联的会话特定标识符155。如果地图数据集与由地图数据请求48所指示的会话特定标识符155相对应,则第一显示设备30a然后将会话特定标识符155和局部地图数据36a传送到服务器计算设备200以被存储在服务器计算设备200的大容量存储装置218中,并且随后作为一个或多个匹配地图数据集66而被取回。对应的地图数据可以包括链接到会话特定标识符155的一个或多个关键帧周围的邻域的相邻地图数据。
会话特定标识符155是与预先确定的会话相关联的标识符。例如,会话特定标识符155可以是唯一代码或仅在预定会话的持续时间内有效的临时非唯一代码。会话特定标识符155可以基于由一个或多个无线接入点32A-C广播的无线信号33A-C的信标帧。可以理解,会话特定标识符155不限于MAC地址,并且可以基于无线信号33A-C的信标帧内的一个或多个特征。会话特定标识符155可以指示特定类别的设备,诸如增强现实设备。可以理解,会话特定标识符155优选地不包含第一显示设备30a或第二显示设备30b的用户的隐私信息,以便保护用户的个人数据的隐私。
在该实施例中,第一显示设备30a是在第二显示设备30b之前已经进入环境306的设备。当第二显示设备30b进入环境306时,第二显示设备30b通过获取与新环境306相对应的局部地图数据36b来开始对自身进行定向的过程。第二显示设备30b可以向周围的显示设备(诸如第一显示设备30a)传送标识符请求51,以确定是否有其他设备订阅了相同的远程系统215,从而可以访问服务器计算设备200的远程系统215的服务器指纹程序214。标识符请求51可以包括被第一显示设备30a的客户端指纹程序38a识别为请求的标识符,可以利用低能量信标(诸如信标)来执行标识符请求51的传输,以检测物理上靠近第二显示设备30b的附近设备。也可以使用WIFI信标帧。由第一显示设备30a执行的客户端指纹程序38a和由第二显示设备30b执行的客户端指纹程序38b被配置为使用相同的云服务215,其包括托管在服务器计算设备200上的服务器指纹程序214。因此,客户端指纹程序38a和客户端指纹程序38b都被配置为识别标识符请求51和会话特定标识符155,因为这些参数是根据每个客户端指纹程序38a、38b和云服务215已知并在它们之间传达的模式而被定义的。
可以理解,服务器计算设备200可以采取如下形式:服务器、联网计算机、游戏控制台、移动通信设备、边缘计算设备、台式计算机、膝上型计算机、平板计算机、机顶盒(例如有线电视盒、卫星电视盒)或任何其他类型的合适的计算设备,其被配置为执行响应于来自客户端的请求的服务器软件。在一些示例中,服务器计算设备200可以是更大的电子或机械设备或系统内的嵌入式系统。
可以理解,远程系统215(以下描述为云服务)没有特别限制,可以是私有的、公共的、混合的或社区的云服务,内部部署的或外部部署的,其可由第一显示设备30a和第二显示设备30b访问。当云服务215被配置为单独为组织操作的私有云时,可以启用基于会话特定标识符155的第二显示设备30b的定位,同时仍然允许组织维持对显示设备30a和30b与服务器计算设备200之间生成的所有数据。当云服务215被配置为公众或大型工业集团可用的公共云时,可以理解,附加的数据安全基础设施可以被部署以维持对在服务器计算设备200和操作在环境306内的公众的多个显示设备之间生成的数据的控制。
第一显示设备30a检测或接收标识符请求51。作为响应,第一显示设备30a将会话特定标识符155传送到第二显示设备30b。第二显示设备30b从第一显示设备30a接收会话特定标识符155。响应于从第一显示设备30a接收到会话特定标识符155,第二显示设备30b将包含会话特定标识符155的地图数据请求48传送到服务器计算设备200的云服务215,请求在全局地图数据集158内与会话特定标识符155相对应的地图数据集。服务器计算设备200接收包含会话特定标识符155的地图数据请求48,然后取回并将与会话特定标识符155相对应的匹配地图数据集以作为匹配地图数据集66发送给第二显示设备30b。第二显示设备30b从云服务215接收与会话特定标识符155相对应的匹配地图数据集66。然后第二显示设备30b将对应的匹配地图数据集66拼接到局部地图数据36b内以创建集成的地图。第二显示设备30b然后基于集成的地图来渲染一个或多个全息图,使得第二显示设备30b的显示器基于取回的与会话特定标识符155相对应的地图数据集66来显示一个或多个全息图。如上面所讨论的,取回的地图数据集66的类型将被理解为将物理环境中的三维坐标空间中的点与帮助在三维空间中定向和定位显示设备的信息相关联的任何数据集。如图6和图7中所述,取回的地图数据集66可以包括关键帧60、姿态图62和锚数据形式的锚64。在一些实施例中,可以理解,取回的地图数据集66可以不包括关键帧60、姿态图62或锚64;相反,取回的地图数据集66可以包括与对应于会话特定标识符155的匹配地图数据集66中的锚相关联的一个或多个全息图的位置数据。根据该配置,通过取回与会话特定标识符155相对应的地图数据集66,第二显示设备的存储器需求也降低,使得可以增量加载更大的环境数据而不会对用户体验产生不利影响,并且可以通过利用设备之间的近场通信来简化地图数据或全息位置数据的共享从而缩短加载时间。
参考图11A,图示了根据本公开的示例的用于执行粗略定位的方法1000的第四配置的流程图。方法1000的以下描述是参考在图1-图7中示出并且在上面描述的软件和硬件组件来提供的。可以理解,方法1000也可以使用其他合适的硬件和软件组件在其他上下文中执行。尽管在该流程图中仅描绘了两个显示设备,但是可以理解,方法1000也可以被应用于包括订阅或注册到相同云服务的若干设备在内的环境中的多对设备。
参考图11A,在1006处,第一显示设备发射包括会话特定标识符的无线信号。在1008处,第二显示设备接收无线信号,该无线信号包括与地图数据集相对应的会话特定标识符。在1010处,第二显示设备向云服务发送会话特定标识符和针对地图数据集的请求。在1012处,云服务从第二显示设备接收会话特定标识符和地图数据请求。在1014处,响应于接收到会话特定标识符和地图数据请求,云服务取回与会话特定标识符相对应的地图数据集并将其发送到第二显示设备。在1016处,第二显示设备接收与会话特定标识符相对应的地图数据集。在1018处,第二显示设备将对应的地图数据集拼接到局部地图数据内以创建集成的地图。在1020处,第二显示设备基于集成的地图来渲染一个或多个全息图。
参考图11B,图示了根据本公开的示例的用于执行粗略定位的方法1100的第五配置的流程图。方法1100的以下描述是参考在图1-图7中示出并且在上面描述的软件和硬件组件来提供的。可以理解,方法1100也可以使用其他合适的硬件和软件组件在其他上下文中执行。尽管在该流程图中仅描绘了两个显示设备,但是可以理解,方法1100也可以被应用于包括订阅或注册到相同云服务的若干设备在内的环境中的多对设备。
参考图11B,在1102处,第二显示设备发射请求会话特定标识符的无线信号。在1104处,第一显示设备接收第二显示设备对会话特定标识符的请求。在1106处,第一显示设备传送包括会话特定标识符的无线信号。在1108处,第二显示设备从第一显示设备接收无线信号,该无线信号包括针与地图数据集相对应的会话特定标识符。在1110处,第二显示设备向云服务发送会话特定标识符和针对地图数据集的请求。在1112处,云服务从第二显示设备接收会话特定标识符和地图数据请求。在1114处,响应于接收到会话特定标识符和地图数据请求,云服务取回与会话特定标识符相对应的地图数据集并将其发送到第二显示设备。在1116处,第二显示设备接收与会话特定标识符相对应的地图数据集。在1118处,第二显示设备将对应的地图数据集拼接到局部地图数据内以创建集成的地图。在1120处,第二显示设备基于集成的地图来渲染一个或多个全息图。
图11C图示了根据本公开的示例的用于执行粗略定位的方法1200的第六配置的流程图。在方法1200的第六配置中,显示设备最初尝试从一个或多个信号源接收信号以创建当前指纹。如果确定接收信号的质量足以生成当前指纹,那么显示设备基于当前指纹来进行地图数据集请求。否则,如果确定接收信号的质量不足以生成当前指纹,那么显示设备向相邻设备请求并接收会话特定标识符,并基于会话特定标识符来进行地图数据集请求。方法1200的以下描述是参考在图1-图7中示出并且在上面描述的软件和硬件组件来提供的。可以理解,方法1200也可以使用其他合适的硬件和软件组件在其他上下文中执行。
参考图11C,在1202处,方法1200可以包括显示设备的传感器从一个或多个信号源接收信号。在1204处,方法1200确定接收信号是否足以生成当前指纹。当确定接收信号不足以生成当前指纹时,方法1200进行到1206。低于预先确定的阈值的接收到的无线信号的数目或低于预先确定的阈值的信噪比可以指示接收信号不足以生成当前指纹。
在1206处,显示设备发射无线信号,请求来自相邻设备的会话特定标识符。在1208处,显示设备从相邻设备接收包括会话特定标识符的无线信号。在1210处,显示设备向云服务发送会话特定标识符和针对地图数据集的请求。在1212处,显示设备从云服务接收与会话特定标识符相对应的地图数据集。在1214处,显示设备将对应的地图数据集拼接到局部地图数据内以创建集成的地图。在1216处,显示设备基于集成的地图来渲染一个或多个全息图。
在1204处,当确定接收信号足以生成当前指纹时,方法1200进行到1218。高于预先确定的阈值的接收到的无线信号的数目或者高于预先确定的阈值的信噪比可以指示接收信号足以生成当前指纹。
在1218处,显示设备基于接收信号来生成当前指纹。在1220处,显示设备将当前指纹与指纹数据进行比较。在1222处,显示设备通过与当前指纹的接近度来评估指纹数据中的候选指纹并且对候选指纹进行排序。在1224处,显示设备取回与一个或多个最接近匹配指纹相对应的一个或多个地图数据集。在1226处,显示设备将对应的地图数据集拼接到局部地图数据内以创建集成的地图。在1228处,显示设备基于集成的地图来渲染一个或多个全息图。
图11D图示了根据本公开的示例的用于执行粗略定位的方法1300的第七配置的流程图。在方法1300的第七配置中,显示设备最初尝试联系订阅相同云服务的相邻设备,其向显示设备提供会话特定标识符。当显示设备从相邻设备成功获取会话特定标识符时,那么显示设备基于会话特定标识符来进行地图数据集请求。否则,当显示设备未成功从相邻设备获取会话特定标识符时,显示设备从一个或多个信号源接收信号以创建当前指纹,然后基于当前指纹来进行地图数据集请求。方法1300的以下描述是参考在图1-图7中示出并且在上面描述的软件和硬件组件来提供的。可以理解,方法1300也可以使用其他合适的硬件和软件组件在其他上下文中执行。
在1302处,显示设备发射无线信号,请求来自相邻设备的会话特定标识符。在1304处,当显示设备从相邻设备接收到包括会话特定标识符的无线信号时,则该方法进行到1310。在1310处,显示设备将会话特定标识符和针对地图数据集的请求发送到云服务。在1312处,显示设备从云服务接收与会话特定标识符相对应的地图数据集。在1314处,显示设备将对应的地图数据集拼接到局部地图数据内以创建集成的地图。在1316处,显示设备基于集成的地图来渲染一个或多个全息图。
在1304处,当显示设备无法从相邻设备接收到包括会话特定标识符的无线信号时,方法1300进行到1317。在1317处,显示设备的传感器从一个或多个信号源接收信号。在1318处,显示设备基于接收信号来生成当前指纹。在1320处,显示设备将当前指纹与指纹数据进行比较。在1322处,显示设备通过与当前指纹的接近度来评估指纹数据中的候选指纹并且对候选指纹进行排序。在1324处,显示设备取回与一个或多个最接近匹配的指纹相对应的地图数据集。在1326处,显示设备将对应的地图数据集拼接到局部地图数据内以创建集成的地图。在1328处,显示设备基于集成的地图来渲染一个或多个全息图。
以下段落为本申请的权利要求提供了附加的支持。一个方面提供了一种第一显示设备,包括:处理器;显示器;可操作地耦合到处理器和显示器的存储器;存储在存储器中并且由第一显示设备的处理器执行的客户端指纹程序,该客户端指纹程序被配置为:从第二设备接收会话特定标识符,该会话特定标识符与地图数据集相对应;将会话特定标识符传送到远程系统;从远程系统接收与会话特定标识符相对应的地图数据集的至少一部分;并且将地图数据集拼接到第一显示设备的局部地图数据内,以创建集成的地图。在该方面中,附加地或备选地,客户端指纹程序还可以被配置为基于与会话特定标识符相对应的地图数据使第一显示设备的显示器显示一个或多个全息图。在该方面中,附加地或备选地,地图数据集可以包括关键帧;以及关键帧和姿态图可以通过真实世界三维环境记录第一显示设备的旋转和平移运动。在该方面中,附加地或备选地,关键帧中的至少两个关键帧可以链接到公共指纹。在该方面中,附加地或备选地,与会话特定标识符相对应的地图数据集可以包括链接到会话特定标识符的一个或多个关键帧周围的邻域的相邻地图数据。在该方面中,附加地或备选地,当客户端指纹程序未成功从第二设备接收会话特定标识符时,客户端指纹程序可以被配置为由第一显示设备的至少一个传感器从一个或多个信号源接收一个或多个信号;基于接收到的信号来生成当前信号指纹;通过将当前信号指纹与信号指纹数据进行比较以生成匹配指纹的排序列表来确定要加载的地图数据,包括执行统计分析以评估当前信号指纹与信号指纹数据的接近度或消歧程度;以及基于排序列表,取回与排序列表中的匹配指纹相对应的对应地图数据。在该方面中,附加地或备选地,客户端指纹程序可以基于来自信号源的信号生成会话特定标识符,信号源包括无线接入点、射频源、电磁源、光源、声源、和热源中的至少一个源。在该方面中,附加地或备选地,信号可以包括信标帧。在该方面中,附加地或备选地,可以经由低能量信标从第二设备接收会话特定标识符。在该方面中,附加地或备选地,客户端指纹程序可以传送标识符请求;并且客户端指纹程序可以从接收到所传送的标识符请求的第二设备接收会话特定标识符。
另一方面提供了一种方法,包括:在第一显示设备处从第二设备接收会话特定标识符,该会话特定标识符与地图数据集相对应;将会话特定标识符从第一显示设备传送到远程系统;在第一显示设备处从远程系统接收与会话特定标识符相对应的地图数据集的至少一部分;以及在第一显示设备处将地图数据集拼接到局部地图数据内,以创建集成的地图。在该方面中,附加地或备选地,该方法还可以包括在第一显示设备处基于与会话特定标识符相对应的地图数据集来显示一个或多个全息图。在该方面中,附加地或备选地,地图数据集可以包括关键帧;以及关键帧和姿态图可以通过真实世界三维环境记录第一显示设备的旋转和平移运动。在该方面中,附加地或备选地,关键帧中的至少两个关键帧可以链接到公共指纹。在该方面中,附加地或备选地,与会话特定标识符相对应的地图数据集可以包括链接到会话特定标识符的一个或多个关键帧周围的邻域的相邻地图数据。在该方面中,附加地或备选地,可以基于来自信号源的信号的信标帧在第二设备处生成会话特定标识符。在该方面中,附加地或备选地,可以基于来自信号源的信号在第二设备处生成会话特定标识符,该信号源包括无线接入点、射频源、电磁源、光源、声源和热源中的至少一个源。在该方面中,附加地或备选地,可以在第一显示设备处经由低能量信标从第二设备接收会话特定标识符。在该方面中,附加地或备选地,该方法还可以包括在第一显示设备处传送标识符请求;并且在第一显示设备处,从接收到所传送的标识符请求的第二设备接收会话特定标识符。
另一方面提供了一种服务器计算设备,包括处理器;可操作地耦合到处理器的存储器;存储在存储器中的信号指纹数据;存储在存储器中并且由计算设备的处理器执行的服务器指纹程序,该服务器指纹程序被配置为:从第一移动设备接收由第二移动设备基于由第二移动设备的至少一个传感器接收的来自一个或多个信号源的一个或多个信号而;以及向第一移动设备发送与会话特定标识符相对应的对应的地图数据集,该对应的地图数据集包括链接到会话特定标识符的一个或多个关键帧周围的邻域的相邻地图数据,该相邻地图数据由第二移动设备捕获和记录。
可以理解,本文所描述的配置和/或方法本质上是示例性的,并且这些具体实施例或示例不应被视为限制性的,因为许多变型是可能的。本文所描述的特定程序或方法可以表示任何数量的处理策略中的一种或多种。因此,所图示和/或描述的各种动作可以按照所图示和/或描述的顺序执行、以其他顺序执行、并行执行或被省略。同样,上述过程的顺序可以改变。
本公开的主题包括本文所公开的各种过程、系统和配置以及其他特征、功能、作用和/或属性的所有新颖和非明显的组合和子组合,以及任何及其所有等效物。
Claims (15)
1.一种第一显示设备,包括:
处理器;
显示器;
存储器,所述存储器可操作地耦合到所述处理器和所述显示器;以及
客户端指纹程序,所述客户端指纹程序被存储在所述存储器中并且由所述第一显示设备的所述处理器执行,其中
所述客户端指纹程序被配置为:
从第二设备接收会话特定标识符,所述会话特定标识符与地图数据集相对应;
将所述会话特定标识符传送到远程系统;
从所述远程系统接收与所述会话特定标识符相对应的所述地图数据集的至少一部分;以及
将所述地图数据集拼接到所述第一显示设备的局部地图数据内,以创建集成的地图。
2.根据权利要求1所述的第一显示设备,其中
所述客户端指纹程序还被配置为:基于与所述会话特定标识符相对应的所述地图数据,使所述第一显示设备的所述显示器显示一个或多个全息图。
3.根据权利要求2所述的第一显示设备,其中
所述地图数据集包括关键帧;以及
所述关键帧和姿态图通过真实世界三维环境记录所述第一显示设备的旋转和平移运动。
4.根据权利要求3所述的第一显示设备,其中
与所述会话特定标识符相对应的所述地图数据集包括链接到所述会话特定标识符的一个或多个关键帧周围的邻域的相邻地图数据。
5.根据权利要求1所述的第一显示设备,其中
当所述客户端指纹程序未成功从所述第二设备接收所述会话特定标识符时,所述客户端指纹程序被配置为:
由所述第一显示设备的至少一个传感器从一个或多个信号源接收一个或多个信号;
基于接收到的所述信号来生成当前信号指纹;
通过将所述当前信号指纹与信号指纹数据进行比较以生成匹配指纹的排序列表来确定要加载的地图数据,包括执行统计分析以评估所述当前信号指纹与所述信号指纹数据的接近度或消歧程度;以及
基于所述排序列表,取回与所述排序列表中的所述匹配指纹相对应的地图数据。
6.根据权利要求1所述的第一显示设备,其中
经由低能量信标从所述第二设备接收所述会话特定标识符。
7.根据权利要求1所述的第一显示设备,其中
所述客户端指纹程序传送标识符请求;以及
所述客户端指纹程序从接收到所传送的所述标识符请求的所述第二设备接收所述会话特定标识符。
8.一种方法,包括:
在第一显示设备处从第二设备接收会话特定标识符,所述会话特定标识符与地图数据集相对应;
将所述会话特定标识符从所述第一显示设备传送到远程系统;
在所述第一显示设备处从所述远程系统接收与所述会话特定标识符相对应的所述地图数据集的至少一部分;以及
在所述第一显示设备处将所述地图数据集拼接到局部地图数据内,以创建集成的地图。
9.根据权利要求8所述的方法,还包括:
在所述第一显示设备处,基于与所述会话特定标识符相对应的所述地图数据集来显示一个或多个全息图。
10.根据权利要求9所述的方法,其中
所述地图数据集包括关键帧;以及
所述关键帧和姿态图通过真实世界三维环境记录所述第一显示设备的旋转和平移运动。
11.根据权利要求10所述的方法,其中
所述关键帧中的至少两个关键帧链接到公共指纹。
12.根据权利要求10所述的方法,其中
与所述会话特定标识符相对应的所述地图数据集包括链接到所述会话特定标识符的一个或多个关键帧周围的邻域的相邻地图数据。
13.根据权利要求8所述的方法,其中
基于来自信号源的信号的信标帧,在所述第二设备处,所述会话特定标识符被生成。
14.根据权利要求8所述的方法,其中
经由低能量信标,在所述第一显示设备处,所述会话特定标识符从所述第二设备被接收。
15.根据权利要求8所述的方法,还包括:
在所述第一显示设备处传送标识符请求;以及
在所述第一显示设备处,从接收到所传送的所述标识符请求的所述第二设备接收所述会话特定标识符。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/429,512 | 2019-06-03 | ||
US16/429,512 US10600252B2 (en) | 2017-03-30 | 2019-06-03 | Coarse relocalization using signal fingerprints |
PCT/US2020/018929 WO2020247034A1 (en) | 2019-06-03 | 2020-02-20 | Coarse relocalization using signal fingerprints and session-specific identifiers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113950609A true CN113950609A (zh) | 2022-01-18 |
Family
ID=69845588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080040809.0A Pending CN113950609A (zh) | 2019-06-03 | 2020-02-20 | 使用信号指纹和会话特定标识符的粗略重定位 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3977053A1 (zh) |
CN (1) | CN113950609A (zh) |
WO (1) | WO2020247034A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110081919A1 (en) * | 2009-10-01 | 2011-04-07 | Qualcomm Incorporated | Mobile Device Locating In Conjunction With Localized Enviornments |
US20110224902A1 (en) * | 2010-03-09 | 2011-09-15 | Oi Kenichiro | Information processing device, map update method, program, and information processing system |
CN103946836A (zh) * | 2011-09-26 | 2014-07-23 | 谷歌公司 | 使用非光栅地图数据的修改来渲染地图图像 |
CN107430858A (zh) * | 2015-03-20 | 2017-12-01 | 微软技术许可有限责任公司 | 传送标识当前说话者的元数据 |
US20180288386A1 (en) * | 2017-03-30 | 2018-10-04 | Microsoft Technology Licensing, Llc | Coarse relocalization using signal fingerprints |
CN109240588A (zh) * | 2015-05-27 | 2019-01-18 | 苹果公司 | 用于在触敏设备上主动识别和显示相关内容的系统和方法 |
-
2020
- 2020-02-20 CN CN202080040809.0A patent/CN113950609A/zh active Pending
- 2020-02-20 WO PCT/US2020/018929 patent/WO2020247034A1/en unknown
- 2020-02-20 EP EP20712148.4A patent/EP3977053A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110081919A1 (en) * | 2009-10-01 | 2011-04-07 | Qualcomm Incorporated | Mobile Device Locating In Conjunction With Localized Enviornments |
US20110224902A1 (en) * | 2010-03-09 | 2011-09-15 | Oi Kenichiro | Information processing device, map update method, program, and information processing system |
CN103946836A (zh) * | 2011-09-26 | 2014-07-23 | 谷歌公司 | 使用非光栅地图数据的修改来渲染地图图像 |
CN107430858A (zh) * | 2015-03-20 | 2017-12-01 | 微软技术许可有限责任公司 | 传送标识当前说话者的元数据 |
CN109240588A (zh) * | 2015-05-27 | 2019-01-18 | 苹果公司 | 用于在触敏设备上主动识别和显示相关内容的系统和方法 |
US20180288386A1 (en) * | 2017-03-30 | 2018-10-04 | Microsoft Technology Licensing, Llc | Coarse relocalization using signal fingerprints |
Also Published As
Publication number | Publication date |
---|---|
WO2020247034A1 (en) | 2020-12-10 |
EP3977053A1 (en) | 2022-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10600252B2 (en) | Coarse relocalization using signal fingerprints | |
US10531065B2 (en) | Coarse relocalization using signal fingerprints | |
US11853639B2 (en) | Sharing neighboring map data across devices | |
US11748963B2 (en) | Cross reality system with simplified programming of virtual content | |
US20240062491A1 (en) | Cross reality system with accurate shared maps | |
US10007349B2 (en) | Multiple sensor gesture recognition | |
JP6602889B2 (ja) | 移動体装置ローカリゼーションのためのエリア記述ファイルのクラウドソーシングによる作成および更新 | |
US20180181119A1 (en) | Method and electronic device for controlling unmanned aerial vehicle | |
US9978174B2 (en) | Remote sensor access and queuing | |
US8660362B2 (en) | Combined depth filtering and super resolution | |
US9424461B1 (en) | Object recognition for three-dimensional bodies | |
CN113874870A (zh) | 基于图像的定位 | |
CN115803788A (zh) | 用于大规模环境的交叉现实系统 | |
CN115461787A (zh) | 具有快速定位的交叉现实系统 | |
JP2018526698A (ja) | ローカライゼーション・エリア記述ファイルのプライバシ機密クエリ | |
KR20160003553A (ko) | 지도 정보를 제공하기 위한 전자 장치 | |
JP6609640B2 (ja) | 電子デバイス上における環境マッピング用のフィーチャ・データの管理 | |
US11842514B1 (en) | Determining a pose of an object from rgb-d images | |
CN113950609A (zh) | 使用信号指纹和会话特定标识符的粗略重定位 | |
US11448884B2 (en) | Image based finger tracking plus controller tracking |
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 |