CN116529767A - 使用捕获多个光谱的相机的同时定位和建图 - Google Patents

使用捕获多个光谱的相机的同时定位和建图 Download PDF

Info

Publication number
CN116529767A
CN116529767A CN202080105593.1A CN202080105593A CN116529767A CN 116529767 A CN116529767 A CN 116529767A CN 202080105593 A CN202080105593 A CN 202080105593A CN 116529767 A CN116529767 A CN 116529767A
Authority
CN
China
Prior art keywords
image
feature
environment
camera
coordinates
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
CN202080105593.1A
Other languages
English (en)
Inventor
康学阳
徐磊
邹燕明
徐晧
马磊
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN116529767A publication Critical patent/CN116529767A/zh
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • 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
    • G06F3/012Head tracking input arrangements
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0317Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/285Analysis of motion using a sequence of stereo image pairs
    • 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/593Depth or shape recovery from multiple images from stereo images
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/60Extraction of image or video features relating to illumination properties, e.g. using a reflectance or lighting model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10048Infrared image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Remote Sensing (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Studio Devices (AREA)
  • Image Processing (AREA)

Abstract

描述了一种执行图像处理技术的设备。设备包括第一相机和第二相机,第一相机和第二相机响应于不同的光谱,诸如可见光光谱和红外光谱。当设备处于环境中的第一位置中时,第一相机捕获环境的第一图像,并且第二相机捕获环境的第二图像。设备基于在第一图像和第二图像两者中标识的特征的描绘来确定针对特征的单个坐标集合。设备基于针对特征的坐标集合来生成和/或更新环境的地图。设备可以移动到环境中的其他定位,并且继续捕获图像并基于图像更新地图。

Description

使用捕获多个光谱的相机的同时定位和建图
技术领域
本申请与图像处理有关。更具体地,本申请涉及用于使用捕获第一光谱的第一相机和捕获第二光谱的第二相机的同时定位和建图(SLAM)的技术(technology)和技艺(technique)。
背景技术
同时定位和建图(SLAM)是在诸如机器人系统和自主车辆系统的设备中使用的计算几何技术。在SLAM中,设备构建并更新未知环境的地图。设备可以同时地跟踪设备在该环境内的位置。设备通常基于设备上的一个或多个传感器所收集的传感器数据来执行建图和定位。例如,设备可以在建筑物的特定房间中被激活,并且可以在建筑物的整个内部移动,从而捕获传感器测量。当设备在建筑物的整个内部移动时,设备可以基于传感器测量来生成和更新建筑物内部的地图。当设备在建筑物的整个内部移动并形成地图时,设备可以跟踪其自身在地图中的位置。视觉SLAM(VSLAM)是基于设备的一个或多个相机所收集的视觉数据来执行建图和定位的SLAM技术。不同类型的相机可以基于不同光谱(诸如可见光光谱或红外光谱)来捕获图像。一些相机不利于在某些环境或情形中使用。
发明内容
本文描述了用于使用具有多个相机的设备来执行视觉同时定位和建图(VSLAM)的系统、装置、方法和计算机可读介质(本文统称为“系统和技术”)。当设备在整个环境中移动时,设备基于由设备的相机收集的视觉数据(和/或其他数据)来执行环境的建图和其自身在环境内的定位。相机可以包括通过接收来自第一光谱的光来捕获图像的第一相机和通过接收来自第二光谱的光来捕获图像的第二相机。例如,第一光谱可以是可见光光谱,并且第二光谱可以是红外光谱。不同类型的相机可以在某些环境中提供优点而在其他环境中提供缺点。例如,可见光相机可以在照明良好的环境中捕获清晰图像,但对照明的改变敏感。当环境照明不良时或在照明随时间改变时(例如,当照明是动态的和/或不一致时),VSLAM可能无法仅使用可见光相机。使用捕获多个光谱的相机执行VSLAM可以保留不同类型的相机中的每一个的优点,同时减轻不同类型的相机中的每一个的缺点。例如,设备的第一相机和第二相机都可以捕获环境的图像,并且环境中的特征的描绘可以出现在两个图像中。设备可以基于特征的这些描绘来生成针对特征的坐标集合,并且可以基于针对特征的坐标集合来更新环境的地图。在其中相机中的一个处于劣势的情形中,劣势相机可以被禁用。例如,如果环境的照明水平低于照明阈值,则可见光相机可以被禁用。
在另一示例中,提供了一种用于图像处理的装置。装置包括存储指令的一个或多个存储器单元。装置包括执行指令的一个或多个处理器,其中一个或多个处理器对指令的执行致使一个或多个处理器执行方法。方法包括接收由第一相机捕获的环境的第一图像。第一相机响应于第一光谱。方法包括接收由第二相机捕获的环境的第二图像。第二相机响应于第二光谱。方法包括标识环境的特征被描绘于第一图像和第二图像两者中。方法包括基于第一图像中的特征的第一描绘和第二图像中的特征的第二描绘来确定特征的坐标集合。方法包括基于针对特征的坐标集合来更新环境的地图。
在一个示例中,提供了一种图像处理的方法。方法包括接收由图像传感器捕获的图像数据。方法包括接收由第一相机捕获的环境的第一图像。第一相机响应于第一光谱。方法包括接收由第二相机捕获的环境的第二图像。第二相机响应于第二光谱。方法包括标识环境的特征被描绘于第一图像和第二图像两者中。方法包括基于第一图像中的特征的第一描绘和第二图像中的特征的第二描绘来确定特征的坐标集合。方法包括基于针对特征的坐标集合来更新环境的地图。
在另一示例中,提供了一种其上具有程序的非暂态计算机可读存储介质。程序可以由处理器执行以执行图像处理的方法。方法包括接收由第一相机捕获的环境的第一图像。第一相机响应于第一光谱。方法包括接收由第二相机捕获的环境的第二图像。第二相机响应于第二光谱。方法包括标识环境的特征被描绘于第一图像和第二图像两者中。方法包括基于第一图像中的特征的第一描绘和第二图像中的特征的第二描绘来确定特征的坐标集合。方法包括基于针对特征的坐标集合来更新环境的地图。
在另一示例中,提供了一种用于图像处理的装置。装置包括用于接收由第一相机捕获的环境的第一图像的部件,第一相机响应于第一光谱。装置包括用于接收由第二相机捕获的环境的第二图像的部件,第二相机响应于第二光谱。装置包括用于标识环境的特征被描绘于第一图像和第二图像两者中的部件。装置包括用于基于第一图像中的特征的第一描绘和第二图像中的特征的第二描绘来确定特征的坐标集合的部件。装置包括用于基于针对特征的坐标集合来更新环境的地图的部件。
在一些方面中,第一光谱是可见光(VL)光谱的至少部分,并且第二光谱与VL光谱不同。在一些方面中,第二光谱是红外(IR)光谱的至少部分,并且其中第一光谱与IR光谱不同。
在一些方面中,特征的坐标集合包括对应于三个空间维度的三个坐标。在一些方面中,设备或装置包括第一相机和第二相机。在一些方面中,设备和装置包括移动手持装置、头戴式显示器(HMD)、车辆和机器人中的至少一个。
在一些方面中,第一相机在设备或装置处于第一位置中时捕获第一图像,并且其中第二相机在设备或装置处于第一位置中时捕获第二图像。在一些方面中,上述方法、装置和计算机可读介质还包括:基于针对特征的坐标集合来确定设备或装置在环境内的第一位置的坐标集合。在一些方面中,上文所述的方法、装置和计算机可读介质还包括:基于针对特征的坐标集合来确定在设备或装置处于第一位置中时设备或装置的姿势,其中设备或装置的姿势包括设备或装置的俯仰、设备或装置的滚动以及设备或装置的偏航中的至少一个。
在一些方面中,上述方法、装置和计算机可读介质还包括:标识设备或装置已从第一位置移动到第二位置;接收由第二相机在设备或装置处于第二位置中时捕获的环境的第三图像;标识环境的特征被描绘于第三图像和来自第一相机的第四图像中的至少一个中;以及基于第三图像和第四图像中的至少一个中的特征的一个或多个描绘来跟踪特征。在一些方面中,上述方法、装置和计算机可读介质还包括:基于跟踪特征来确定设备或装置在环境内的第二位置的坐标集合。在一些方面中,上文所述的方法、装置和计算机可读介质还包括:基于跟踪特征来确定在设备或装置处于第二位置中时设备或装置的姿势,其中设备或装置的姿势包括设备或装置的俯仰、设备或装置的滚动以及设备或装置的偏航中的至少一个。在一些方面中,上述方法、装置和计算机可读介质还包括:通过基于跟踪特征更新环境中的特征的坐标集合来生成环境中的特征的经更新坐标集合;以及基于特征的经更新坐标集合来更新环境的地图。
在一些方面中,上述方法、装置和计算机可读介质还包括:标识当设备或装置处于第二位置中时环境的照明水平高于最小照明阈值;以及接收由第一相机在设备或装置处于第二位置中时捕获的环境的第四图像,其中跟踪特征基于第三图像中的特征的第三描绘和第四图像中的特征的第四描绘。在一些方面中,上述方法、装置和计算机可读介质还包括:标识当设备或装置处于第二位置中时环境的照明水平低于最小照明阈值,其中跟踪特征基于第三图像中的特征的第三描绘。在一些方面中,上述方法、装置和计算机可读介质还包括:其中跟踪特征还基于特征的坐标集合、第一图像中的特征的第一描绘和第二图像中的特征的第二描绘中的至少一个。
在一些方面中,上述方法、装置和计算机可读介质还包括:标识设备或装置已从第一位置移动到第二位置;接收由第二相机在设备或装置处于第二位置中时捕获的环境的第三图像;标识环境的第二特征被描绘于第三图像和来自第一相机的第四图像中的至少一个中;基于第三图像和第四图像中的至少一个中的第二特征的一个或多个描绘来确定针对第二特征的第二坐标集合;以及基于针对第二特征的第二坐标集合来更新环境的地图。在一些方面中,上述方法、装置和计算机可读介质还包括:基于更新地图来确定设备或装置在环境内的第二位置的坐标集合。在一些方面中,上文所述的方法、装置和计算机可读介质还包括:基于更新地图来确定在设备或装置处于第二位置中时设备或装置的姿势,其中设备或装置的姿势包括设备或装置的俯仰、设备或装置的滚动以及设备或装置的偏航中的至少一个。
在一些方面中,上述方法、装置和计算机可读介质还包括:标识当设备或装置处于第二位置中时环境的照明水平高于最小照明阈值;以及接收由第一相机在设备或装置处于第二位置中时捕获的环境的第四图像,其中确定第二特征的第二坐标集合基于第三图像中的第二特征的第一描绘和第四图像中的第二特征的第二描绘。在一些方面中,上述方法、装置和计算机可读介质还包括:标识当设备或装置处于第二位置中时环境的照明水平低于最小照明阈值,其中确定针对第二特征的第二坐标集合基于第三图像中的第二特征的第一描绘。
在一些方面中,确定针对特征的坐标集合包括确定对应于第一图像的针对特征的第一坐标集合与对应于第二图像的针对特征的第二坐标集合之间的变换。在一些方面中,上述方法、装置和计算机可读介质还包括:在更新环境的地图之前生成环境的地图。在一些方面中,基于针对特征的坐标集合来更新环境的地图包括向地图添加新的地图区域,新的地图区域包括针对特征的坐标集合。在一些方面中,基于针对特征的坐标集合来更新环境的地图包括修订地图的地图区域,该地图区域包括针对特征的坐标集合。在一些方面中,特征是边缘和角中的至少一个。
在一些方面中,设备或装置包括相机、移动设备或设备或装置(例如,移动电话或所谓的“智能电话”或其他移动设备或设备或装置)、无线通信设备或设备或装置、移动手持装置、可穿戴设备或设备或装置、头戴式显示器(HMD)、扩展现实(XR)设备或设备或装置(例如,虚拟现实(VR)设备或设备或装置、增强现实(AR)设备或设备或装置、或混合现实(MR)设备或设备或装置)、机器人、车辆、无人车辆、自主车辆、个人计算机、膝上型计算机、服务器计算机或其他设备或设备或装置。在一些方面中,一个或多个处理器包括图像信号处理器(ISP)。在一些方面中,设备或装置包括第一相机。在一些方面中,设备或装置包括第二相机。在一些方面中,设备或装置包括用于捕获一个或多个附加图像的一个或多个附加相机。在一些方面中,设备或装置包括图像传感器,该图像传感器捕获与第一图像、第二图像、和/或一个或多个附加图像相对应的图像数据。在一些方面中,设备或装置还包括显示器,该显示器用于显示第一图像、第二图像、另一图像、地图、与图像处理相关联的一个或多个通知、和/或其他可显示数据。
本概述不旨在标识所要求保护的主题的关键或必要特征,也不旨在被单独用于确定所要求保护的主题的范围。应该通过参考本发明的整篇说明书的适当部分、任何或全部附图以及每个权利要求来理解主题。
通过参考以下说明书、权利要求以及所附附图,前述内容以及其他特征和实施例将变得更加显而易见。
附图说明
下面参考以下附图对本申请的说明性实施例进行详细描述:
图1是图示出根据一些示例的图像捕获和处理设备的架构的示例的框图;
图2是图示出根据一些示例的用于使用视觉同时定位和建图(VSLAM)设备的相机来执行VSLAM的技术的示例的概念图;
图3是图示出根据一些示例的用于使用VSLAM设备的可见光(VL)相机和红外(IR)相机来执行VSLAM的技术的示例的概念图;
图4是图示出根据一些示例的用于使用VSLAM设备的红外(IR)相机来执行VSLAM的技术的示例的概念图;
图5是图示出根据一些示例的在不同照明条件下捕获的相同环境的两个图像的概念图;
图6A是图示出根据一些示例的执行VSLAM的无人地面车辆(UGV)的透视图;
图6B是图示出根据一些示例的执行VSLAM的无人飞行器(UAV)的透视图;
图7A是图示出根据一些示例的执行VSLAM的头戴式显示器(HMD)的透视图;
图7B是图示出根据一些示例的图7A的头戴式显示器(HMD)由用户穿戴的透视图;
图7C是图示出根据一些示例的使用前向相机来执行VSLAM的移动手持装置的前表面的透视图;
图7D是图示出根据一些示例的使用后向相机来执行VSLAM的移动手持装置的后表面的透视图;
图8是图示出根据一些示例的VL相机和IR相机的外参标定的概念图;
图9是图示出根据一些示例的由IR相机检测到的特征的坐标与由VL相机检测到的相同特征的坐标之间的变换的概念图;
图10A是图示出根据一些示例的由IR相机检测到的特征的坐标与由VL相机检测到的相同特征的坐标之间的特征关联的概念图;
图10B是图示出根据一些示例的用于特征的示例描述符样式的概念图;
图11是图示出根据一些示例的联合地图优化的示例的概念图;
图12是图示出根据一些示例的特征跟踪和立体匹配的概念图;
图13A是图示出根据一些示例的由IR相机检测到的特征的坐标与由VL相机检测到的相同特征的坐标之间的立体匹配的概念图;
图13B是图示出根据一些示例的由IR相机检测到的特征的坐标与由VL相机检测到的相同特征的坐标之间的三角测量的概念图;
图14A是图示出根据一些示例的相机在图像帧中检测到的特征的坐标与相机在后续图像帧中检测到的相同特征的坐标之间的单目匹配的概念图;
图14B是图示出根据一些示例的相机在图像帧中检测到的特征的坐标与相机在后续图像帧中检测到的相同特征的坐标之间的三角测量的概念图;
图15是图示出基于关键帧的快速重定位的概念图;
图16是图示出根据一些示例的基于关键帧和形心点的快速重定位的概念图;
图17是图示出根据一些示例的图像处理技术的示例的流程图;以及
图18是图示出用于实现本技术的某些方面的系统的示例的图。
具体实施方式
以下提供本公开的某些方面和实施例。如对本领域技术人员将显而易见的,这些方面和实施例的某些可以被独立地应用,而其中某些可以被组合地应用。在以下描述中,出于解释的目的,阐述了具体细节以便提供对本申请的实施例的全面理解。然而,将显而易见的是,各种实施例可以在没有这些具体细节的情况下被实践。附图和描述不旨在是限制性的。
随后的描述仅提供示例性实施例,并且不旨在限制本公开的范围、适用性或配置。确切地说,对示例性实施例的随后描述将为本领域技术人员提供用于实现示例性实施例的实现描述。应该理解,在功能和元件布置方面可以进行各种改变,而不脱离如所附权利要求阐述的本申请的精神和范围。
图像捕获设备(例如,相机)是使用图像传感器接收光并且捕获图像帧(诸如静止图像或视频帧)的设备。术语“图像”、“图像帧”和“帧”在本文中可互换使用。图像捕获设备通常包括至少一个透镜,其接收来自场景的光并且使光朝向图像捕获设备的图像传感器弯曲。由透镜接收的光穿过由一个或多个控制机构控制的孔径并且由图像传感器接收。一个或多个控制机构可以基于来自图像传感器的信息和/或基于来自图像处理器(例如,主机或应用进程和/或图像信号处理器)的信息来控制曝光、焦点和/或变焦。在一些示例中,一个或多个控制机构包括将图像捕获设备的透镜移动到目标透镜定位的电机或其他控制机构。
同时定位和建图(SLAM)是在诸如机器人系统、自主车辆系统、扩展现实(XR)系统、头戴式显示器(HMD)等设备中使用的计算几何技术。如上所述,XR系统可以包括例如增强现实(AR)系统、虚拟现实(VR)系统和混合现实(MR)系统。XR系统可以是头戴式显示器(HMD)设备。使用SLAM,设备可以构建和更新未知环境的地图,同时跟踪设备在该环境内的位置。设备通常可以基于由设备上的一个或多个传感器收集的传感器数据来执行这些任务。例如,设备可以在建筑物的特定房间中被激活,并且可以在整个建筑物中移动,从而对建筑物的整个内部进行建图,同时在设备形成地图时跟踪其自身在地图内的位置。
视觉SLAM(VSLAM)是基于设备的一个或多个相机所收集的视觉数据来执行建图和定位的SLAM技术。在一些情况下,单目VSLAM设备可以使用单个相机来执行VLAM。例如,单目VSLAM设备可以利用相机来捕获环境的一个或多个图像,并且可以确定区别性视觉特征,诸如一个或多个图像中的角点或其他点。设备可以移动通过环境并且可以捕获更多图像。设备可以跟踪在设备在环境中处于不同定位、方位和/或姿势时捕获的连续图像中的那些特征的移动。设备可以使用这些跟踪的特征来生成三维(3D)地图并且确定其自身在地图内的定位。
VSLAM可以是使用检测对人眼可见的光谱内的光的可见光(VL)相机来执行的。一些VL相机仅检测对人眼可见的光谱内的光。VL相机的示例是捕获红(R)、绿(G)和蓝(B)图像数据(被称为RGB图像数据)的相机。RGB图像数据随后可以被合并成全彩图像。捕获RGB图像数据的VL相机可以被称为RGB相机。相机还可以捕获其他类型的彩色图像,诸如具有亮度(Y)和色度(被称作U或Cb的色度蓝,和被称作V或Cr的色度红)分量的图像。此类图像可以包括YUV图像、YCbCr图像等。
VL相机通常捕获照明良好的环境的清晰图像。诸如边缘和角的特征在照明良好的环境的清晰图像中是容易辨认的。然而,VL相机通常难以捕获照明不良的环境(诸如在夜间和/或在昏暗光照的情况下拍摄的环境)的清晰图像。由VL相机捕获的照明不良的环境的图像可能是不清楚的。例如,在照明不良的环境的不清晰图像中,诸如边缘和角的特征可能难以或者甚至不可能辨认。使用VL相机的VSLAM设备可能无法在照明不良的环境中检测到VSLAM设备在环境照明良好的情况下可以检测到的某些特征。在一些情况下,因为取决于环境的照明,环境在VL相机看来可能是不同的,所以使用VL相机的VSLAM设备有时可能由于环境中的光照条件的改变而无法识别VSLAM设备早已观察到的环境部分。无法识别VSLAM设备早已观察到的环境部分可能导致VSLAM设备的定位和/或建图中的误差。
如下文更详细描述的,本文描述了用于使用具有多种类型的相机的VSLAM设备来执行VSLAM的系统和技术。例如,系统和技术可以使用包括VL相机和红外(IR)相机(或多个VL相机和/或多个IR相机)的VSLAM设备来执行VSLAM。VSLAM设备可以使用VL相机来捕获环境的一个或多个图像,并且可以使用IR相机来捕获环境的一个或多个图像。在一些示例中,VSLAM设备可以检测来自VL相机的VL图像数据中和来自IR相机的IR图像数据中的一个或多个特征。VSLAM设备可以基于VL图像数据中和IR图像数据中的特征的描绘来确定针对一个或多个特征中的特征的单个坐标集合(例如,三维坐标)。VSLAM设备可以基于针对特征的坐标集合来生成和/或更新环境的地图。
本文相对于各个附图提供了关于系统和技术的进一步细节。图1是图示出图像捕获和处理系统100的架构的示例的框图。图像捕获和处理系统100包括用于捕获和处理场景的图像(例如,场景110的图像)的各种组件。图像捕获和处理系统100可以捕获独立的帧(或照片)和/或可以捕获包括特定序列中的多个图像(或视频帧)的视频。系统100的透镜115面向场景110并接收来自场景110的光。透镜115使光朝向图像传感器130弯曲。由透镜115接收的光穿过由一个或多个控制机构120控制的孔径并由图像传感器130接收。
一个或多个控制机构120可以基于来自图像传感器130的信息和/或基于来自图像处理器150的信息来控制曝光、焦点和/或变焦。一个或多个控制机构120可以包括多个机构和组件;例如,控制机构120可以包括一个或多个曝光控制机构125A、一个或多个焦点控制机构125B和/或一个或多个变焦控制机构125C。一个或多个控制机制120还可以包括除了图示出的那些之外的附加控制机构,诸如控制模拟增益、闪光、HDR、景深和/或其他图像捕获性质的控制机构。
控制机构120中的焦点控制机构125B可以获得焦点设置。在一些示例中,焦点控制机构125B将焦点设置存储在存储器寄存器中。基于焦点设置,焦点控制机构125B可以相对于图像传感器130的位置调整透镜115的位置。例如,基于焦点设置,焦点控制机构125B可以通过致动电机或伺服装置(或其他透镜机构)来将透镜115移动得更靠近图像传感器130或更远离图像传感器130,从而调整焦点。在一些情况下,系统100中可以包括附加透镜,诸如图像传感器130的每个光电二极管上的一个或多个微透镜,每个微透镜使从透镜115接收的光朝向对应的光电二极管弯曲(在光到达光电二极管之前)。焦点设置可以是经由对比度检测自动聚焦(CDAF)、相位检测自动聚焦(PDAF)、混合自动聚焦(HAF)或其某种组合来确定的。焦点设置可以是使用控制机构120、图像传感器130和/或图像处理器150来确定的。焦点设置可以被称为图像捕获设置和/或图像处理设置。
控制机构120中的曝光控制机构125A可以获得曝光设置。在一些情况下,曝光控制机构125A将曝光设置存储在存储器寄存器中。基于此曝光设置,曝光控制机构125A可以控制孔径的大小(例如,孔径大小或光圈)、孔径打开的时间的持续时间(例如,曝光时间或快门速度)、图像传感器130的灵敏度(例如,ISO速度或胶片速度)、图像传感器130应用的模拟增益或其任何组合。曝光设置可以被称为图像捕获设置和/或图像处理设置。
控制机构120的变焦控制机构125C可以获得变焦设置。在一些示例中,变焦控制机构125C将变焦设置存储在存储器寄存器中。基于变焦设置,变焦控制机构125C可以控制包括透镜115和一个或多个附加透镜的一组透镜元件(透镜组)的焦距。例如,变焦控制机构125C可以通过致动一个或多个电机或伺服装置(或其他透镜机构)以相对于彼此移动透镜中的一个或多个来控制透镜组的焦距。变焦设置可以被称为图像捕获设置和/或图像处理设置。在一些示例中,透镜组可以包括齐焦变焦透镜或变焦距变焦透镜。在一些示例中,透镜组可以包括首先接收来自场景110的光的聚焦透镜(在一些情况下可以是透镜115),随后在光到达图像传感器130之前,该光穿过聚焦透镜(例如,透镜115)与图像传感器130之间的无焦变焦系统。在一些情况下,无焦变焦系统可以包括具有相等或类似焦距(例如,在彼此的阈值差内)的两个正(例如,会聚、凸)透镜以及它们之间的负(例如,发散、凹)透镜。在一些情况下,变焦控制机构125C移动无焦变焦系统中的一个或多个透镜,诸如负透镜以及正透镜中的一者或两者。
图像传感器130包括一个或多个光电二极管阵列或其他光敏元件。每个光电二极管测量最终对应于由图像传感器130产生的图像中的特定像素的光量。在一些情况下,不同的光电二极管可能被不同的滤色器覆盖,并且因此可以测量匹配覆盖光电二极管的过滤器的色彩的光。例如,拜耳滤色器包括红色滤色器、蓝色滤色器和绿色滤色器,其中图像的每个像素是基于来自以红色滤色器覆盖的至少一个光电二极管的红光数据、来自以蓝色滤色器覆盖的至少一个光电二极管的蓝光数据、以及来自以绿色滤色器覆盖的至少一个光电二极管的绿光数据来生成的。其他类型的滤色器可以使用黄色、品红色和/或青色(也被称为“翠绿色”)滤色器来作为红色、蓝色和/或绿色滤色器的替代或附加。一些图像传感器(例如,图像传感器130)可能完全缺少滤色器,并且可以替代地遍及像素阵列来使用不同的光电二极管(在一些情况下垂直堆叠)。遍及像素阵列的不同光电二极管可以具有不同的光谱灵敏度曲线,因此响应不同波长的光。单色图像传感器也可能缺少滤色器,并且因此缺少色彩深度。
在一些情况下,图像传感器130可以替代地或附加地包括不透明和/或反射掩模,其阻止光在某些时间和/或从某些角度到达某些光电二极管或某些光电二极管的部分,其可以被用于相位检测自动聚焦(PDAF)。图像传感器130还可以包括模拟增益放大器以放大光电二极管输出的模拟信号,和/或模数转换器(ADC)以将光电二极管的模拟信号输出(和/或经模拟增益放大器放大)转换为数字信号。在一些情况下,关于控制机构120中的一个或多个讨论的某些组件或功能可以替代地或附加地被包括在图像传感器130中。图像传感器130可以是电荷耦合器件(CCD)传感器、电子倍增CCD(EMCCD)传感器、有源像素传感器(APS)、互补金属氧化物半导体(CMOS)、N型金属氧化物半导体(NMOS)、混合CCD/CMOS传感器(例如,sCMOS),或其某些其他组合。
图像处理器150可以包括一个或多个处理器,诸如一个或多个图像信号处理器(ISP)(包括ISP 154)、一个或多个主机处理器(包括主机处理器152)和/或关于计算设备1800讨论的任何其他类型的处理器1810中的一个或多个。主机处理器152可以是数字信号处理器(DSP)和/或其他类型的处理器。在某些实现中,图像处理器150是包括主机处理器152和ISP 154的单个集成电路或芯片(例如,被称为片上系统或SoC)。在一些情况下,芯片还可以包括一个或多个输入/输出端口(例如,输入/输出(I/O)端口156)、中央处理单元(CPU)、图形处理单元(GPU)、宽带调制解调器(例如,3G、4G或LTE、5G等)、存储器、连接组件(例如,蓝牙TM、全球定位系统(GPS)等)、其任何组合,和/或其他组件。I/O端口156可以包括根据一个或多个协议或规范的任何合适的输入/输出端口或接口,诸如集成电路间2(Inter-Integrated Circuit 2,I2C)接口、集成电路间3(Inter-Integrated Circuit 3,I3C)接口、串行外围接口(SPI)接口、串行通用输入/输出(GPIO)接口、移动工业处理器接口(MIPI)(诸如MIPI CSI-2物理(PHY)层端口或接口、先进高性能总线(AHB)总线、其任何组合,和/或其他输入/输出端口。在一个说明性示例中,主机处理器152可以使用I2C端口与图像传感器130通信,并且ISP 154可以使用MIPI端口与图像传感器130通信。
图像处理器150可以执行数个任务,诸如去马赛克、色彩空间转换、图像帧下采样、像素插值、自动曝光(AE)控制、自动增益控制(AGC)、CDAF、PDAF、自动白平衡、合并图像帧以形成HDR图像、图像识别、对象识别、特征识别、接收输入、管理输出、管理存储器或其某种组合。图像处理器150可以将图像帧和/或经处理图像存储在随机存取存储器(RAM)140/1020、只读存储器(ROM)145/1025、缓存、存储器单元、另一存储设备或其某种组合中。
各种输入/输出(I/O)设备160可以连接到图像处理器150。I/O设备160可以包括显示器屏幕、键盘、小键盘、触摸屏、触控板、触敏表面、打印机、任何其他输出设备1835、任何其他输入设备1845、或其某种组合。在一些情况下,题注可以通过I/O设备160的物理键盘或小键盘、或通过I/O设备160的触摸屏的虚拟键盘或小键盘来被输入到图像处理设备105B中。I/O 160可以包括一个或多个端口、插孔或其他连接器,这些连接器实现系统100与一个或多个外围设备之间的有线连接,系统100可以通过这些连接器从一个或多个外围设备接收数据和/或向一个或多个外围设备发送数据。I/O 160可以包括一个或多个无线收发器,这些无线收发器实现系统100与一个或多个外围设备之间的无线连接,系统100可以通过这些无线收发器从一个或多个外围设备接收数据和/或向一个或多个外围设备发送数据。外围设备可以包括先前讨论的类型的I/O设备160中的任一个,并且一旦它们耦合到端口、插孔、无线收发器或其他有线和/或无线连接器,它们自身便可以被视为I/O设备160。
在一些情况下,图像捕获和处理系统100可以是单个设备。在一些情况下,图像捕获和处理系统100可以是两个或更多个单独的设备,包括图像捕获设备105A(例如,相机)和图像处理设备105B(例如,耦合到相机的计算设备)。在某些实现中,图像捕获设备105A和图像处理设备105B可以例如经由一个或多个电线、电缆或其他电连接器耦合在一起,和/或经由一个或多个无线收发器而无线地耦合在一起。在某些实现中,图像捕获设备105A和图像处理设备105B可以彼此不连接。
如图1所示,垂直虚线将图1的图像捕获和处理系统100划分为分别表示图像捕获设备105A和图像处理设备105B的两个部分。图像捕获设备105A包括透镜115、控制机构120和图像传感器130。图像处理设备105B包括图像处理器150(包括ISP 154和主机处理器152)、RAM 140、ROM 145和I/O160。在一些情况下,图像捕获设备105A中所示的某些组件,诸如ISP 154和/或主机处理器152,可以被包括在图像捕获设备105A中。
图像捕获和处理系统100可以包括电子设备,诸如移动或固定电话手持装置(例如,智能电话、蜂窝电话等)、台式计算机、膝上型或笔记本计算机、平板计算机、机顶盒、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备、互联网协议(IP)相机或任何其他合适的电子设备。在一些示例中,图像捕获和处理系统100可以包括用于无线通信的一个或多个无线收发器,诸如蜂窝网络通信、802.11wi-fi通信、无线局域网(WLAN)通信或其某种组合。在某些实现中,图像捕获设备105A和图像处理设备105B可以是不同的设备。例如,图像捕获设备105A可以包括相机设备并且图像处理设备105B可以包括计算设备,诸如移动手持装置、台式计算机或其他计算设备。
虽然图像捕获和处理系统100被示为包括某些组件,但普通技术人员将理解,图像捕获和处理系统100可以包括比图1中所示的组件更多的组件。图像捕获和处理系统100的组件可以包括软件、硬件或者软件和硬件的一个或多个组合。例如,在某些实现中,图像捕获和处理系统100的组件可以包括电子电路或其他电子硬件和/或可以使用电子电路或其他电子硬件来实现,这些电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、GPU、DSP、CPU、和/或其他合适的电子电路),和/或可以包括计算机软件、固件或它们的任何组合和/或使用计算机软件、固件或它们的任何组合来实现,以执行本文描述的各种操作。软件和/或固件可以包括被存储在计算机可读存储介质上并且可由实现图像捕获和处理系统100的电子设备的一个或多个处理器执行的一个或多个指令。
在一些情况下,图像捕获和处理系统100可以是能够执行VSLAM的设备(被称为VSLAM设备)的部分或由其实现。例如,VSLAM设备可以包括一个或多个图像捕获和处理系统100、图像捕获系统105A、图像处理系统105B、计算系统1800或其任何组合。例如,VSLAM设备可以包括可见光(VL)相机和红外(IR)相机。VL相机和IR相机可以各自包括图像捕获和处理系统100、图像捕获设备105A、图像处理设备105B、计算系统1800、或其某种组合中的至少一个。
图2是图示出用于使用视觉同时定位和建图(VSLAM)设备205的相机210来执行VSLAM的技术的示例的概念图200。在一些示例中,VSLAM设备205可以是虚拟现实(VR)设备、增强现实(AR)设备、混合现实(MR)设备、扩展现实(XR)设备、头戴式显示器(HMD)或其某种组合。在一些示例中,VSLAM设备205可以是无线通信设备、移动设备(例如,移动电话或所谓的“智能电话”或其他移动设备)、可穿戴设备、扩展现实(XR)设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR0设备)、头戴式显示器(HMD)、个人计算机、膝上型计算机、服务器计算机、无人地面车辆、无人飞行器、无人水上航行器、无人水下航行器、无人车辆、自主车辆、车辆、机器人、其任何组合和/或其他设备。
VSLAM设备205包括相机210。相机210可以响应于来自特定光谱的光。光谱可以是电磁(EM)频谱的子集。例如,相机210可以是响应于可见光(VL)光谱的VL相机、响应于红外(IR)光谱的IR相机、响应于紫外(UV)光谱的UV相机、响应于来自电磁频谱的另一部分的另一光谱的光的相机、或其某种组合。在一些情况下,相机210可以是响应于近红外(NIR)光谱的NIR相机。NIR光谱可以是IR光谱的接近和/或邻近VL光谱的子集。
相机210可以被用于捕获一个或多个图像,包括图像215。VSLAM系统270可以使用特征提取引擎220来执行特征提取。特征提取引擎220可以使用图像215通过检测图像内的一个或多个特征来执行特征提取。特征可以是例如边缘、角、色彩改变的区域、光度改变的区域或其组合。在一些情况下,当特征提取引擎220未能检测到图像215中的任何特征时,特征提取引擎220可能无法执行对图像215的特征提取。在一些情况下,特征提取引擎220可能在其未能检测到图像215中的至少预定最小数量的特征时失败。如果特征提取引擎220未能成功地执行对图像215的特征提取,则VSLAM系统270不进一步继续,并且可以等待由相机210捕获的下一图像帧。
当特征提取引擎220在图像215中检测到至少预定最小数量的特征时,特征提取引擎220可以成功地执行对图像215的特征提取。在一些示例中,特征的预定最小数量可以是一,在这种情况下,特征提取引擎220通过检测到图像215中的至少一个特征而成功地执行特征提取。在一些示例中,特征的预定最小数量可以大于一,并且可以例如是2、3、4、5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95、100、大于100的数字或任何两个先前列出的数字之间的数字。具有清晰描绘的一个或多个特征的图像可以作为关键帧被维持于地图数据库中,其对特征的描绘可以被用于跟踪其他图像中的那些特征。
一旦特征提取引擎220成功执行对一个或多个图像215的特征提取,VSLAM系统270就可以使用特征跟踪引擎225来执行特征跟踪。特征跟踪引擎225可以通过识别图像215中先前早已在一个或多个先前图像中识别的特征来执行特征跟踪。特征跟踪引擎225还可以跟踪不同图像之间特征的一个或多个定位的改变。例如,特征提取引擎220可以检测到特定人的面部来作为在第一图像中描绘的特征。特征提取引擎220可以检测到在第一图像之后由相机210捕获且从其接收的第二图像中描绘的相同特征(例如,同一人的面部)。特征跟踪225可以识别出在第一图像和第二图像中检测到的这些特征是相同特征(例如,同一人的面部)的两个描绘。特征跟踪引擎225可以识别出在第一图像与第二图像之间特征已移动。例如,特征跟踪引擎225可以识别出特征被描绘于第一图像的右手侧,并且被描绘于第二图像的中心。
第一图像与第二图像之间的特征的移动可以是由相机210对第一图像的捕获与对第二图像的捕获之间所拍摄场景内的所拍摄对象的移动导致的。例如,如果特征是人的面部,那么人可能在相机210对第一图像的捕获与对第二图像的捕获之间走过所拍摄场景的部分,从而导致特征在第二图像中处于与第一图像中不同的定位中。第一图像与第二图像之间的特征的移动可以是由相机210对第一图像的捕获与对第二图像的捕获之间相机210的移动导致的。在一些示例中,VSLAM设备205可以是机器人或车辆,并且可以在相机210对第一图像的捕获和对第二图像的捕获之间移动其自身和/或其相机210。在一些示例中,VSLAM设备205可以是用户穿戴的头戴式显示器(HMD)(例如,XR头戴装置),并且用户可以在相机210对第一图像的捕获与对第二图像的捕获之间移动他或她的头部和/或身体。
VSLAM系统270可以标识用于由VSLAM系统270使用特征提取引擎220和/或特征跟踪引擎225标识的每个特征的坐标集合,其可以被称作地图点。用于每个特征的坐标集合可以被用于确定地图点240。局部地图引擎250可以使用地图点240来更新局部地图。局部地图可以是环境的地图的局部区域的地图。局部区域可以是VSLAM设备205当前所在的区域。局部区域可以是例如环境内的房间或房间集合。局部区域可以是例如在图像215中可见的一个或多个房间的集合。用于对应于特征的地图点的坐标集合可以由VSLAM系统270使用地图优化引擎235来更新以增加准确性。例如,通过跟踪跨在不同时间捕获的多个图像的特征,VSLAM系统270可以根据每个图像生成用于特征的地图点的坐标集合。可以通过基于从不同图像确定的针对特征的多个地图点进行三角测量或生成平均坐标来针对特征的地图点确定准确坐标集合。地图优化引擎235可以使用局部建图引擎250更新局部地图来更新针对特征的坐标集合,以使用利用三角测量和/或求平均确定的准确坐标集合。从不同角度观察相同特征可以提供关于特征的真实位置的附加信息,其可以被用于增加地图点240的准确性。
局部地图250连同全局地图255可以是建图系统275的部分。全局地图255可以对环境的全局区域进行建图。VSLAM设备205可以位于环境的全局区域中和/或环境的局部区域中。环境的局部区域可以小于环境的全局区域。环境的局部区域可以是环境的全局区域的子集。环境的局部区域可以与环境的全局区域重叠。在一些情况下,环境的局部区域可以包括环境的尚未由地图合并引擎257和/或全局建图引擎255合并到全局地图中的部分。在一些示例中,局部地图可以包括环境的尚未合并到全局地图中的此类部分内的地图点。在一些情况下,全局地图255可以对VSLAM设备205观察到的环境的全部进行建图。可以使用地图合并引擎257和/或全局建图引擎255将局部建图引擎250对局部地图的更新合并到全局地图中,从而使全局地图保持最新。在一些情况下,在已使用地图优化引擎235优化局部地图之后,可以使用地图合并引擎257和/或全局建图引擎255将局部地图与全局地图合并,使得全局地图是经优化的地图。地图点240可以由局部建图引擎250馈送到局部地图中,和/或可以使用全局建图引擎255将其馈送到全局地图中。地图优化引擎235可以改进地图点240以及局部地图和/或全局地图的准确性。在一些情况下,如在图11的概念图1100中图示并且关于该图进行讨论的,地图优化引擎235可以通过用形心地图点替换地图点束来简化局部地图和/或全局地图。
VSLAM系统270还可以基于由特征提取引擎220和/或特征跟踪引擎225执行的特征提取和/或特征跟踪来确定设备205的姿势245。设备205的姿势245可以指代设备205的位置、设备205的俯仰、设备205的滚动、设备205的偏航或其某种组合。设备205的姿势245可以指代相机210的姿势,因此可以包括相机210的位置、相机210的俯仰、相机210的滚动、相机210的偏航或其某种组合。设备205的姿势245可以是相对于局部地图和/或全局地图来确定的。设备205的姿势245可以由局部建图引擎250标记在局部地图上和/或由全局建图引擎255标记在全局地图上。在一些情况下,姿势245的历史可以由局部建图引擎250和/或由全局建图引擎255存储在局部地图和/或全局地图内。姿势245的历史在一起可以指示VSLAM设备205已经行进的路径。
在一些情况下,当在图像215中未识别出先前已在较早捕获的图像的集合中识别的特征时,特征跟踪引擎225可能无法成功地执行对图像215的特征跟踪。在一些示例中,较早捕获的图像的集合可以包括在图像215的捕获之前结束且在预定开始时间开始的时间段期间捕获的所有图像。预定开始时间可以是绝对时间,诸如特定时间和日期。预定开始时间可以是相对时间,诸如在图像215的捕获之前的预定时间量(例如,30分钟)。预定开始时间可以是VSLAM设备205最近被初始化的时间。预定开始时间可以是VSLAM设备205最近接收到开始VSLAM过程的指令的时间。预定开始时间可以是VSLAM设备205最近确定其进入环境的新房间或新区域的时间。
如果特征跟踪引擎225未能成功地执行对图像的特征跟踪,则VSLAM系统270可以使用重定位引擎230来执行重定位。重定位引擎230尝试确定VSLAM设备205位于环境中的何处。例如,特征跟踪引擎225可能无法识别来自一个或多个先前捕获的图像和/或来自局部地图250的任何特征。重定位引擎230可以尝试查看由特征提取引擎220识别的任何特征是否与全局地图中的任何特征匹配。如果由VSLAM系统270的特征提取引擎220标识的一个或多个特征与全局地图255中的一个或多个特征匹配,则重定位引擎230通过确定针对一个或多个特征的地图点240和/或确定VSLAM设备205的姿势245而成功地执行重定位。重定位引擎230还可以将由特征提取引擎220在图像215中标识的任何特征与伴随局部地图和/或全局地图存储的关键帧中的特征进行比较。每个关键帧可以是清晰地描绘特定特征的图像,使得可以将图像230与关键帧进行比较以确定图像230是否也描绘该特定特征。如果VSLAM系统270在特征提取220期间标识的特征中没有一个与全局地图中和/或任何关键帧中的任何特征匹配,则重定位引擎230未能成功执行重定位。如果重定位引擎230未能成功执行重定位,则VSLAM系统270可以退出并重新初始化VSLAM过程。退出和重新初始化可以包括从头开始生成局部地图250和/或全局地图255。
VSLAM设备205可以包括运输工具,VSLAM设备205可以通过该运输工具在环境周围移动自身。例如,VSLAM设备205可以包括一个或多个电机、一个或多个致动器、一个或多个轮、一个或多个螺旋桨、一个或多个涡轮、一个或多个转子、一个或多个翼、一个或多个机翼、一个或多个滑翔机、一个或多个踏板、一个或多个腿、一个或多个脚、一个或多个活塞、一个或多个喷嘴、一个或多个推进器、一个或多个帆、本文讨论的一个或多个其他运输模式或其组合。在一些示例中,VSLAM设备205可以是车辆、机器人或本文所讨论的任何其他类型的设备。包括运输工具的VSLAM设备205可以使用路径规划引擎260来执行路径规划,以规划用于VSLAM设备205移动的路径。一旦路径规划引擎260为VSLAM设备205规划了路径,VSLAM设备205就可以使用移动致动器265执行移动致动以致动运输工具,并且沿着由路径规划引擎260规划的路径移动VSLAM设备205。在一些示例中,路径规划引擎260可以使用Dijkstra算法来规划路径。在一些示例中,路径规划引擎260可以在规划路径时包括静止障碍物避免和/或移动障碍物避免。在一些示例中,路径规划引擎260可以包括关于在规划路径时如何最佳地从第一姿势移动到第二姿势的确定。在一些示例中,路径规划引擎260可以在规划路径时规划被优化以在继续移动到其他房间之前到达和观察每个房间的每个部分的路径。在一些示例中,路径规划引擎260可以规划被优化以尽可能快地到达和观察环境中的每个房间的路径。在一些示例中,路径规划引擎260可以规划返回到先前观察的房间以再次观察特定特征以改进局部地图和/或全局地图中对应于特征的一个或多个地图点的路径。在一些示例中,路径规划引擎260可以规划返回到先前观察的房间以观察先前观察的房间的在局部地图和/或全局地图中缺少地图点的部分以查看在房间的该部分中是否可以观察到任何特征的路径。
虽然概念图200的各种元件与VSLAM设备205被分开地示出,但应理解,VSLAM设备205可以包括概念图200的元件的任何组合。例如,VSLAM系统270的至少一个子集可以是VSLAM设备205的部分。建图系统275的至少一个子集可以是VSLAM设备205的部分。例如,VSLAM设备205可以包括相机210、特征提取引擎220、特征跟踪引擎225、重定位引擎230、地图优化引擎235、局部建图引擎250、全局建图引擎255、地图合并引擎257、路径规划引擎260、移动致动器255或其某种组合。在一些示例中,VSLAM设备205可以捕获图像215、通过特征提取引擎220标识图像215中的特征、通过特征跟踪引擎225跟踪特征、使用地图优化引擎235优化地图、使用重定位引擎230执行重定位、确定地图点240、确定设备姿势245、使用局部建图引擎250生成局部地图、使用局部建图引擎250更新局部地图、使用地图合并引擎257执行地图合并、使用全局建图引擎255生成全局地图、使用全局建图引擎255更新全局地图、使用路径规划引擎260规划路径、使用移动致动器265致动移动或其某种组合。在一些示例中,特征提取引擎220和/或特征跟踪引擎225是VSLAM设备205的前端的部分。在一些示例中,重定位引擎230和/或地图优化引擎235是VSLAM设备205的后端的部分。基于图像215和/或先前图像,VSLAM设备205可以通过特征提取220标识特征、通过特征跟踪225跟踪特征、执行地图优化235、执行重定位230、确定地图点240、确定姿势245、生成局部地图250、更新局部地图250、执行地图合并、生成全局地图255、更新全局地图255、执行路径规划260或其某种组合。
在一些示例中,地图点240、设备姿势245、局部地图、全局地图、由路径规划引擎260规划的路径或其组合被存储在VSLAM设备205处。在一些示例中,地图点240、设备姿势245、局部地图、全局地图、由路径规划引擎260规划的路径或其组合被存储在远离VSLAM设备205处(例如,在远程服务器上),但是可由VSLAM设备205通过网络连接访问。建图系统275可以是VSLAM设备205和/或VSLAM系统270的部分。建图系统275可以是远离VSLAM设备205但与VSLAM设备205通信的设备(例如,远程服务器)的部分。
在一些情况下,VSLAM设备205可以与远程服务器通信。远程服务器可以包括VSLAM系统270的至少一个子集。远程服务器可以包括建图系统275的至少一个子集。例如,VSLAM设备205可以包括相机210、特征提取引擎220、特征跟踪引擎225、重定位引擎230、地图优化引擎235、局部建图引擎250、全局建图引擎255、地图合并引擎257、路径规划引擎260、移动致动器255或其某种组合。在一些示例中,VSLAM设备205可以捕获图像215并且向远程服务器发出图像215。基于图像215和/或先前图像,远程服务器可以通过特征提取引擎220标识特征、通过特征跟踪引擎225跟踪特征、使用地图优化引擎235优化地图、使用重定位引擎230执行重定位、确定地图点240、确定设备姿势245、使用局部建图引擎250生成局部地图、使用局部建图引擎250更新局部地图、使用地图合并引擎257执行地图合并、使用全局建图引擎255生成全局地图、使用全局建图引擎255更新全局地图、使用路径规划引擎260规划路径或其某种组合。远程服务器可以将这些处理的结果发回VSLAM设备205。
图3是图示出用于使用视觉同时定位和建图(VSLAM)设备305的可见光(VL)相机310和红外(IR)相机315来执行VSLAM的技术的示例的概念图300。图3的VSLAM设备305可以是任何类型的VSLAM设备,包括关于图2的VSLAM设备205讨论的VSLAM设备的类型中的任一个。VSLAM设备305包括VL相机310和IR相机315。在一些情况下,IR相机315可以是近红外(NIR)相机。IR相机315可以通过接收和捕获NIR光谱中的光来捕获IR图像325。NIR光谱可以是IR光谱的接近和/或邻近VL光谱的子集。
VSLAM设备305可以使用VL相机310和/或环境光传感器来确定VSLAM设备305所在的环境是照明良好还是照明不良。例如,如果由VL相机310捕获的VL图像320中的平均亮度超过预定亮度阈值,则VSLAM设备305可以确定环境是照明良好的。如果由VL相机310捕获的VL图像320中的平均亮度低于预定亮度阈值,则VSLAM设备305可以确定环境是照明不良的。如图3的概念图300所示,如果VSLAM设备305确定环境是照明良好的,则VSLAM设备305可以将VL相机310和IR相机315两者用于VSLAM过程。如图4的概念图400所示,如果VSLAM设备305确定环境是照明不良的,则VSLAM设备305可以禁止将VL相机310用于VSLAM过程并且可以仅将IR相机315用于VSLAM过程。
VSLAM设备305可以在整个环境中移动,沿着穿过环境的路径到达多个定位。路径规划引擎395可以规划如本文讨论的路径的至少一个子集。VSLAM设备305可以通过使用移动致动器397致动电机或其他运输工具来沿路径移动其自身。例如,如果VSLAM设备305是机器人或车辆,则VSLAM设备305可以沿着路径移动其自身。VSLAM设备305可以由用户沿着路径移动。例如,如果VSLAM设备305是用户穿戴的头戴式显示器(HMD)(例如,XR头戴装置),则VSLAM设备305可以由用户沿着路径移动。在一些情况下,环境可以是至少部分地由VSLAM设备305渲染的虚拟环境或部分虚拟环境。例如,如果VSLAM设备305是AR、VR或XR头戴装置,则环境的至少部分可以是虚拟的。
在沿着穿过环境的路径的数个定位中的每个定位处,VSLAM设备305的VL相机310捕获环境的VL图像320,并且VSLAM设备305的IR相机315捕获环境的一个或多个IR图像。在一些情况下,VL图像320和IR图像325是被同时捕获的。在一些示例中,VL图像320和IR图像325是在相同的时间窗口内被捕获的。时间窗口可以较短,诸如1秒、2秒、3秒、小于1秒、大于3秒或在先前列出的持续时间中的任一个之间的持续时间。在一些示例中,VL图像320的捕获与IR图像325的捕获之间的时间低于预定阈值时间。短暂的预定时间阈值可以是短暂的持续时间,诸如1秒、2秒、3秒、小于1秒、大于3秒或在先前列出的持续时间中的任一个之间的持续时间。
在VSLAM设备305被用于执行VSLAM过程之前,VSLAM设备305的外参标定引擎385可以执行VL相机310和IR相机315的外参标定385。外参标定引擎385可以确定一种变换,通过该变换,由IR相机315捕获的IR图像325中的坐标可以被转换成由VL相机310捕获的VL图像320中的坐标,反之亦然。在一些示例中,该变换是直接线性变换(DLT)。在一些示例中,该变换是立体匹配变换。外参标定引擎385可以确定一种变换,利用该变换,VL图像320和/或IR图像325中的坐标可以被转换成三维地图点。图8的概念图800图示出如由外参标定引擎385执行的外参标定的示例。变换840可以是由外参标定引擎385确定的变换的示例。
VSLAM设备305的VL相机310捕获VL图像320。在一些示例中,VSLAM设备305的VL相机310可以捕获灰度的VL图像320。在一些示例中,VSLAM设备305的VL相机310可以捕获彩色的VL图像320,并且可以在ISP 154、主机处理器152或图像处理器150处将VL图像320从彩色转换为灰度。VSLAM设备305的IR相机315捕获IR图像325。在一些情况下,IR图像325可以是灰度图像。例如,灰度IR图像325可以将发射或反射大量IR光的对象表示为白色或浅灰色,并且可以将发射或反射少量IR光的对象表示为黑色或深灰色,反之亦然。在一些情况下,IR图像325可以是彩色图像。例如,彩色IR图像325可以以接近可见色谱的一端的色彩(例如,红色)来表示发射或反射大量IR光的对象,并且可以以接近可见色谱的另一端的色彩(例如,蓝色或紫色)来表示发射或反射少量IR光的对象,反之亦然。在一些示例中,VSLAM设备305的IR相机315可以在ISP 154、主机处理器152或图像处理器150处将IR图像325从彩色转换为灰度。在一些情况下,在VL图像320和/或IR图像325被捕获之后,VSLAM设备305向另一设备(诸如远程服务器)发出VL图像320和/或IR图像325。
VL特征提取引擎330可以执行对VL图像320的特征提取。VL特征提取引擎330可以是VSLAM设备305和/或远程服务器的部分。VL特征提取引擎330可以标识如在VL图像320中描绘的一个或多个特征。使用VL特征提取引擎330对特征的标识可以包括确定如在VL图像320中描绘的特征的二维(2D)坐标。2D坐标可以包括VL图像320的像素阵列中的行和列。具有清晰描绘的许多特征的VL图像320可以作为VL关键帧被维持于地图数据库中,其对特征的描绘可以被用于跟踪其他VL图像和/或IR图像中的那些特征。
IR特征提取引擎335可以执行对IR图像325的特征提取。IR特征提取引擎335可以是VSLAM设备305和/或远程服务器的部分。IR特征提取引擎335可以标识如在IR图像325中描绘的一个或多个特征。使用IR特征提取引擎335对特征的标识可以包括确定如在IR图像325中描绘的特征的二维(2D)坐标。2D坐标可以包括IR图像325的像素阵列中的行和列。具有清晰描绘的许多特征的IR图像325可以作为IR关键帧被维持于地图数据库中,其对特征的描绘可以被用于跟踪其他IR图像和/或VL图像中的那些特征。特征可以包括例如环境中的对象的角或其他区别性特征。VL特征提取引擎330和IR特征提取引擎335还可以执行关于概念图200的特征提取引擎220讨论的任何过程。
VL/IR特征关联引擎365和/或立体匹配引擎367中的任一者或两者可以是VSLAM设备305和/或远程服务器的部分。VL特征提取引擎330和IR特征提取引擎335可以标识在VL图像320和IR图像325两者中描绘的一个或多个特征。VL/IR特征关联引擎365例如基于使用由外参标定引擎385执行的外参标定确定的变换来标识在VL图像320和IR图像325两者中描绘的这些特征。变换可以将IR图像325中的2D坐标变换成VL图像320中的2D坐标,反之亦然。立体匹配引擎367可以基于从稍微不同的角度捕获的、IR图像325中的2D坐标和VL图像320中的2D坐标来进一步确定三维(3D)地图坐标集合——地图点。立体约束可以由立体匹配引擎367在VL相机310与IR相机315的取景之间确定,以加速用于特征跟踪和/或重定位的特征搜索和匹配性能。
VL特征跟踪引擎340可以是VSLAM设备305和/或远程服务器的部分。VL特征跟踪引擎340跟踪使用VL特征提取引擎330在VL图像320中标识的、也在VL相机310在捕获VL图像320之前捕获的先前捕获的VL图像中被描绘和检测到的特征。在一些情况下,VL特征跟踪引擎330还可以跟踪在VL图像320中标识的、也在IR相机315在捕获VL图像320之前捕获的先前捕获的IR图像中被描绘和检测到的特征。IR特征跟踪引擎345可以是VSLAM设备305和/或远程服务器的部分。IR特征跟踪引擎345跟踪使用IR特征提取引擎335在IR图像325中标识的、也在IR相机315在捕获IR图像325之前捕获的先前捕获的IR图像中被描绘和检测到的特征。在一些情况下,IR特征跟踪引擎335还可以跟踪在IR图像325中标识的、也在IR相机315在捕获VL图像320之前捕获的先前捕获的IR图像中被描绘和检测到的特征。可以使用VL特征跟踪引擎340、IR特征跟踪引擎345或两者来跟踪使用VL/IR特征关联引擎365和/或立体匹配引擎367确定为在VL图像320和IR图像325两者中描绘的特征。VL特征跟踪引擎340和IR特征跟踪引擎345还可以执行关于概念图200的特征跟踪引擎225讨论的任何过程。
VL地图点350中的每一个是地图中的坐标集合,该坐标集合是使用建图系统390基于使用VL特征提取引擎330提取的特征、使用VL特征跟踪引擎340跟踪的特征、和/或使用VL/IR特征关联引擎365和/或立体匹配引擎367标识的共同特征来确定的。IR地图点355中的每一个是地图中的坐标集合,该坐标集合是使用建图系统390基于使用IR特征提取引擎335提取的特征、使用IR特征跟踪引擎345跟踪的特征、和/或使用VL/IR特征关联引擎365和/或立体匹配引擎367标识的共同特征来确定的。VL地图点350和IR地图点355可以是三维(3D)地图点,例如具有三个空间维度。在一些示例中,VL地图点350和/或IR地图点355中的每一个可以具有X坐标、Y坐标和Z坐标。每个坐标可以表示沿不同轴的定位。每个轴可以延伸到垂直于其他两个空间维度的不同空间维度。使用建图引擎390确定VL地图点350和IR地图点355还可以包括关于概念图200的地图点240的确定讨论的任何过程。建图引擎390可以是VSLAM设备305的部分和/或远程服务器的部分。
联合地图优化引擎360将VL地图点350和IR地图点355添加到地图和/或优化地图。联合地图优化引擎360可以将对应于被确定为在VL图像320和IR图像325两者中描绘(例如,使用VL/IR特征关联引擎365和/或立体匹配引擎367)的特征的VL地图点350和IR地图点355合并为单个地图点。联合地图优化引擎360还可以将对应于被确定为在来自一个或多个先前IR图像的先前IR地图点和/或来自一个或多个先前VL图像的先前VL地图点中描绘的特征的VL地图点350合并为单个地图点。联合地图优化引擎360还可以将对应于被确定为在来自一个或多个先前VL图像的先前VL地图点和/或来自一个或多个先前IR图像的先前IR地图点中描绘的特征的IR地图点350合并为单个地图点。随着捕获到描绘特定特征的更多VL图像320和IR图像325,联合地图优化引擎360可以更新地图中对应于该特征的地图点的定位以使其更准确(例如,基于三角测量)。例如,用于针对特征的地图点的经更新坐标集合可以是通过更新或修订用于针对该特征的地图点的先前坐标集合来生成的。地图可以是如关于局部建图引擎250讨论的局部地图。在一些情况下,使用建图系统290的地图合并引擎257将该地图与全局地图合并。地图可以是如关于全局建图引擎255讨论的全局地图。在一些情况下,如在图11的概念图1100中图示并且关于该图进行讨论的,联合地图优化引擎360可以通过用形心地图点替换地图点束来简化地图。联合地图优化引擎360还可以执行关于概念图200中的地图优化引擎235讨论的任何过程。
建图系统290可以基于VSLAM设备305针对所有检测到的和/或跟踪的特征的所有地图点(包括VL地图点350和IR地图点355)确定的坐标集合来生成环境的地图。在一些情况下,当建图系统390最初生成地图时,地图可以作为环境的小部分的地图来开始。随着从更多图像中检测到更多特征,并且随着更多特征被转换为地图系统更新地图以包括的地图点,建图系统390可以扩展地图以对环境的越来越大的部分进行建图。地图可以是稀疏的或半密集的。在一些情况下,建图系统390针对对应于特征的地图点使用的选择准则对于支持使用VL特征跟踪引擎340和/或IR特征跟踪引擎345对特征的稳健跟踪而言可能是苛刻的。
设备姿势确定引擎370可以确定VSLAM设备305的姿势。设备姿势确定引擎370可以是VSLAM设备305和/或远程服务器的部分。VSLAM设备305的姿势可以是基于以下来确定的:VL特征提取引擎330的特征提取、IR特征提取引擎335的特征提取、VL/IR特征关联引擎365的特征关联、立体匹配引擎367的立体匹配、VL特征跟踪引擎340的特征跟踪、IR特征跟踪引擎345的特征跟踪、建图系统390对VL地图点350的确定、建图系统390对IR地图点355的确定、联合地图优化引擎360的地图优化、建图系统390对地图的生成、建图系统390对地图的更新、或其某种组合。设备305的姿势可以指VSLAM设备305的位置、VSLAM设备305的俯仰、VSLAM设备305的滚动、VSLAM设备305的偏航、或其某种组合。VSLAM设备305的姿势可以指VL相机310的姿势,并且因此可以包括VL相机310的位置、VL相机310的俯仰、VL相机310的滚动、VL相机310的偏航或其某种组合。VSLAM设备305的姿势可以指IR相机315的姿势,并且因此可以包括IR相机315的位置、IR相机315的俯仰、IR相机315的滚动、IR相机315的偏航或其某种组合。设备姿势确定引擎370可以在一些情况下使用建图系统390确定VSLAM设备305相对于地图的姿势。设备姿势确定引擎370可以在一些情况下使用建图系统390在地图上标记VSLAM设备305的姿势。在一些情况下,设备姿势确定引擎370可以在地图内或以其他方式确定和存储姿势的历史。姿势的历史可以表示VSLAM设备305的路径。设备姿势确定引擎370还可以执行关于概念图200的VSLAM设备205的姿势245的确定讨论的任何过程。在一些情况下,设备姿势确定引擎370可以通过确定VSLAM设备305的主体的姿势、确定VL相机310的姿势、确定IR相机315的姿势或其某种组合来确定VSLAM设备305的姿势。那三个姿势中的一个或多个可以是设备姿势确定引擎370的单独输出。设备姿势确定引擎370在一些情况下可以将那三个姿势中的两个或更多个合并或组合成设备姿势确定引擎370的单个输出,例如通过对对应于那三个姿势中的两个或更多个的姿势值求平均。
重定位引擎375可以确定VSLAM设备305在地图内的位置。例如,如果VL特征跟踪引擎340和/或IR特征跟踪引擎345未能在VL图像320和/或IR图像325中识别来自在先前VL和/或IR图像中标识的特征的任何特征,则重定位375可以在地图内对VSLAM设备305进行重定位。重定位引擎375可以通过将经由VL特征提取引擎330和/或IR特征提取引擎335在VL图像320中和/或在IR图像325中标识的特征与对应于地图中的地图点的特征、与在VL关键帧中描绘的特征、与在IR关键帧中描绘的特征或其某种组合进行匹配来确定VSLAM设备305在地图中的位置。重定位引擎375可以是VSLAM设备305和/或远程服务器的部分。重定位引擎375还可以执行关于概念图200的重定位引擎230讨论的任何过程。
环路闭合检测引擎380可以是VSLAM设备305和/或远程服务器的部分。环路闭合检测引擎380可以标识VSLAM设备305何时完成沿着形状类似于闭合环路或没有间隙或开口的另一闭合形状的路径行进。例如,环路闭合检测引擎380可以标识在VL图像320中和/或在IR图像325中描绘和检测到的特征中的至少某些与在沿着VSLAM设备305正在其上行进的路径行进期间较早识别的特征匹配。环路闭合检测引擎380可以基于如由建图系统390生成和更新的地图并且基于由设备姿势确定引擎370确定的姿势来检测环路闭合。由环路闭合检测引擎380进行的环路闭合检测防止VL特征跟踪引擎340和/或IR特征跟踪引擎345将VL图像320和/或IR图像325中描绘和检测到的某些特征不正确地视为新特征(当这些特征与先前在沿着VSLAM设备305已经沿着其行进的路径行进期间在相同位置和/或区域中较早检测到的特征相匹配时)。
VSLAM设备305可以包括关于VSLAM设备205讨论的任何类型的运输工具。路径规划引擎395可以规划VSLAM设备305将使用运输工具行进的路径。路径规划引擎395可以基于地图、基于VSLAM设备305的姿势、基于重定位引擎375的重定位和/或基于环路闭合检测引擎380的环路闭合检测来规划路径。路径规划引擎395可以是VSLAM设备305和/或远程服务器的部分。路径规划引擎395还可以执行关于概念图200的路径规划引擎260讨论的任何过程。移动致动器397可以是VSLAM设备305的部分并且可以被VSLAM设备305或远程服务器激活以致动运输工具,以沿着路径规划引擎395规划的路径移动VSLAM设备305。例如,移动致动器397可以包括致动VSLAM设备305的一个或多个电机的一个或多个致动器。移动致动器397还可以执行关于概念图200的移动致动器265讨论的任何过程。
VSLAM设备305可以使用地图来执行关于在地图中描绘或定义的定位的各种功能。例如,使用机器人作为利用本文描述的技术的VSLAM设备305的示例,机器人可以经由移动致动器397致动电机以将机器人从第一位置移动到第二位置。第二个位置可以是使用环境的地图来确定的,例如,以确保机器人避免撞到定位已在地图中标识的墙壁或其他障碍物,或者避免无意中重新访问机器人已访问过的定位。在一些情况下,VSLAM设备305可以规划重新访问VSLAM设备305已访问过的定位。例如,VSLAM设备305可以重新访问先前的定位以验证先前的测量、以在结束环路路径或以其他方式到达长路径的终点之后校正测量中的漂移、以改进看起来不准确(例如,离群值)或具有低权重或置信度值的地图点的准确性、以检测包括少量和/或稀疏地图点的区域中的更多特征、或其某种组合。VSLAM设备305可以致动电机以从初始定位向目标定位移动其自身来实现目标,诸如食物递送、包裹递送、包裹取回、捕获图像数据、对环境进行建图、寻找和/或到达充电站或电源插座、寻找和/或到达基站、寻找和/或到达环境的出口、寻找和/或到达环境或另一环境的入口、或其某种组合。
一旦VSLAM设备305被成功地初始化,VSLAM设备305就可以在VSLAM设备305的每个新定位处重复概念图300中示出的许多过程。例如,VSLAM设备305可以在VSLAM设备305的每个新定位处迭代地启动VL特征提取引擎330、IR特征提取引擎335、VL/IR特征关联引擎365、立体匹配引擎367、VL特征跟踪引擎340、IR特征跟踪引擎345、建图系统390、联合地图优化系统360、设备姿势确定引擎370、重定位引擎375、环路闭合检测引擎380、路径规划引擎395、移动致动器397、或其某种组合。在VSLAM设备305的每个新定位处的每个VL图像320和/或每个IR图像325中检测到的特征可以包括也在先前捕获的VL和/或IR图像中观察到的特征。VSLAM设备305可以跟踪这些特征从先前捕获的图像到最近图像的移动以确定VSLAM设备305的姿势。VSLAM设备305可以更新对应于特征中每一个的3D地图点坐标。
建图系统390可以为地图中的每个地图点指派特定权重。地图中的不同地图点可以具有与其相关联的不同权重。由于使用外参标定引擎385标定的变换的可靠性,从VL/IR特征关联365和立体匹配367生成的地图点通常可以具有良好的准确性,因此可以具有比仅用VL相机310或仅用IR相机315看到的地图点更高的权重。与在较低数量的VL和/或IR图像中描绘的特征相比,在较高数量的VL和/或IR图像中描绘的特征通常具有改进的准确性。因此,与在较低数量的VL和/或IR图像中描绘的地图点相比,针对在较高数量的VL和/或IR图像中描绘的特征的地图点在地图中可以具有更大的权重。联合地图优化引擎360可以包括全局优化和/或局部优化算法,其可以基于较高权重地图点的定位来校正较低权重地图点的定位,从而改进地图的总体准确性。例如,如果墙壁的长边缘包括形成大致直线的数个高权重地图点以及稍微破坏线的线性的低权重地图点,那么低权重地图点的定位可以被调整以使其进入(或接近)线,以便不再破坏线的线性(或较小程度地破坏线的线性)。在一些情况下,联合地图优化引擎360可以移除或移动具有低权重的某些地图点(例如,如果未来的观察似乎指示那些地图点被错误定位)。在VSLAM设备305到达新定位时捕获的VL图像320和/或IR图像325中标识的特征还可以包括先前未在任何先前捕获的VL和/或IR图像中标识的新特征。建图系统390可以更新地图以整合这些新特征,从而有效地扩展地图。
在一些情况下,VSLAM设备305可以与远程服务器通信。远程服务器可以执行上文讨论的如由VSLAM设备305执行的过程中的某些。例如,VSLAM设备305可以如上所述捕获环境的VL图像320和/或IR图像325,并且向远程服务器发出VL图像320和/或IR图像325。远程服务器随后可以通过VL特征提取引擎330和IR特征提取引擎335标识在VL图像320和IR图像325中描绘的特征。远程服务器可以包括并且可以运行VL/IR特征关联引擎365和/或立体匹配引擎367。远程服务器可以使用VL特征跟踪引擎340执行特征跟踪、使用IR特征跟踪引擎345执行特征跟踪、生成VL地图点350、生成IR地图点355、使用联合地图优化引擎360执行地图优化、使用建图系统390生成地图、使用建图系统390更新地图、使用设备姿势确定引擎370确定VSLAM设备305的设备姿势、使用重定位引擎375执行重定位、使用环路闭合检测引擎380执行环路闭合检测、使用路径规划引擎395规划路径、发出移动致动信号以启动移动致动器397并且因此触发VSLAM设备305的移动、或其某种组合。远程服务器可以将这些过程中的任一个的结果发回VSLAM设备305。通过将计算上资源密集的任务转移到远程服务器,VSLAM设备305可以更小、可以包括不那么强大的处理器、可以节约电池电量并因此在电池充电之间持续更长时间、更快速和高效地执行任务、以及不那么资源密集。
如果环境是照明良好的,则由VL相机310捕获的环境的VL图像320和由IR相机315捕获的IR图像325两者都是清晰的。当环境照明不良时,由VL相机310捕获的环境的VL图像320可能不清晰,但是由IR相机315捕获的IR图像325可以仍然保持清晰。因此,环境的照明水平可以影响VL图像320和VL相机310的有用性。
图4是图示出用于使用视觉同时定位和建图(VSLAM)设备的红外(IR)相机315来执行VSLAM的技术的示例的概念图400。图4的概念图400中所示的VSLAM技术类似于图3的概念图300中所示的VSLAM技术。然而,在图4的概念图400中所示的VSLAM技术中,由于照明检查引擎405检测到VSLAM设备305所在的环境照明不良,可见光相机310可以被照明检查引擎405禁用420。在一些示例中,可见光相机310被禁用420意味着可见光相机310被关闭并且不再捕获VL图像。在一些示例中,可见光相机310被禁用420意味着可见光相机310仍捕获VL图像,例如供照明检查引擎405用于检查环境中的照明条件是否已改变,但那些VL图像原本不被用于VSLAM。
在一些示例中,照明检查引擎405可以使用VL相机310和/或环境光传感器430来确定VSLAM设备305所在环境的照明水平是照明良好还是照明不良。照明水平可以被称为照明条件。为了检查环境的照明水平,VSLAM设备305可以捕获VL图像和/或可以使用环境光传感器430进行环境光传感器测量。如果由VL相机捕获的VL图像中的平均亮度超过预定亮度阈值410,则VSLAM设备305可以确定环境是照明良好的。如果由VL相机捕获的VL图像中的平均亮度低于预定亮度阈值410,则VSLAM设备305可以确定环境是照明不良的。平均亮度可以指VL图像中的均值亮度、VL图像中的中位数亮度、VL图像中的众数亮度、VL图像中的中列数亮度、或其某种组合。在一些情况下,确定平均亮度可以包括将VL图像缩小一倍或多倍,并确定经缩小图像的平均亮度。类似地,如果环境光传感器测量的亮度超过预定亮度阈值410,则VSLAM设备305可以确定环境是照明良好的。如果环境光传感器测量的亮度低于预定亮度阈值410,则VSLAM设备305可以确定环境是照明不良的。预定亮度阈值410可以被称为预定照明阈值、预定照明水平、预定最小照明水平、预定最小照明阈值、预定亮度水平、预定最小亮度水平、预定最小亮度阈值、或其某种组合。
环境的不同区域可以具有不同的照明水平(例如,照明良好或照明不良)。照明检查引擎405可以在每次VSLAM设备305从VSLAM设备305的一个姿势移动到另一姿势时检查环境的照明水平。环境中的照明水平也可以随时间而改变,例如由于日出或日落、百叶窗或窗帘改变定位、人工光源被打开或关闭、人工光源的调光器开关修改人工光源输出多少光、人工光源被移动或指向不同方向、或其某种组合。照明检查引擎405可以基于特定时间间隔周期性地检查环境的照明水平。照明检查引擎405可以在每次VSLAM设备305使用VL相机310捕获VL图像320时和/或每次VSLAM设备305使用IR相机315捕获IR图像325时检查环境的照明水平。自照明检查引擎405上一次检查照明水平起,照明检查引擎405可以在每次VSLAM设备305捕获特定数量的VL图像和/或IR图像时周期性地检查环境的照明水平。
图4的概念图400中所示的VSLAM技术可以包括IR相机315对IR图像325的捕获、使用IR特征提取引擎335的特征检测、使用IR特征跟踪引擎345的特征跟踪、使用建图系统390对IR地图点355的生成、使用联合地图优化引擎360的性能地图优化、使用建图系统390对地图的生成、使用建图系统390对地图的更新、使用设备姿势确定引擎370对VSLAM设备305的设备姿势的确定、使用重定位引擎375的重定位、使用环路闭合检测引擎380的环路闭合检测、使用路径规划引擎395的路径规划、使用移动致动器397的移动致动、或其某种组合。在一些情况下,图4的概念图400中所示的VSLAM技术可以在图3的概念图300中所示的VSLAM技术之后被执行。例如,最初照明良好的环境可能随时间而变得照明不良,诸如当太阳在一段时间之后落下并且白天转向夜晚时。
在图4的概念图400中所示的VSLAM技术被启动之前,地图可能已由建图系统390使用图3的概念图300中所示的VSLAM技术生成和/或更新。图4的概念图400中所示的VSLAM技术可以使用已使用图3的概念图300中所示的VSLAM技术部分或完全生成的地图。图4的概念图400中所示的建图系统390可以继续更新和细化地图。即使环境的照明突然改变,使用图3和图4的概念图300和400中所示的VSLAM技术的VSLAM设备305仍可以良好、可靠且弹性地工作。可以使用图3的概念图300中所示的VSLAM技术生成的地图的初始部分可以被重用,而不是从开始重新建图,以节省计算资源和时间。
VSLAM设备305可以标识用于IR图像325中描绘的新特征的IR地图点355的3D坐标集合。例如,VSLAM设备305可以基于IR图像325中的新特征的描绘以及其他IR图像和/或其他VL图像中的新特征的描绘来对用于针对新特征的IR地图点355的3D坐标进行三角测量。VSLAM设备305可以基于IR图像325中的特征的描绘来更新用于针对先前标识的特征的地图点的现有3D坐标集合。
IR相机315被用于图3和图4的概念图300和400中所示的两个VSLAM技术中,并且在外参标定期间由外参标定引擎385确定的变换可以在两个VSLAM技术期间被使用。因此,使用图4的概念图400中所示的VSLAM技术确定的地图中的新地图点和对现有地图点的更新是准确的并且与使用图3的概念图300中所示的VSLAM技术确定的新地图点和对现有地图点的更新一致。
对于某环境区域,如果新特征(先前未在地图中被标识)与现有特征(先前在地图中被标识)的比率较低,那么这意味着对于该环境区域,地图已基本完成。如果对于某环境区域地图基本完成,则VSLAM设备305可以放弃更新用于该环境区域的地图,并且替代地,至少在VSLAM设备305处于该环境区域中时,仅专注于跟踪其在地图内的定位、方位和姿势。随着更多的地图被更新,环境区域可以包括整个环境。
在一些情况下,VSLAM设备305可以与远程服务器通信。远程服务器可以执行图4的概念图400中所示的VSLAM技术中的、本文中所讨论的如在图3的概念图300中所示的VSLAM技术中由远程服务器执行的过程中的任一个。此外,远程服务器可以包括检查环境的照明水平的照明检查引擎405。例如,VSLAM设备305可以使用VL相机310捕获VL图像和/或使用环境光传感器430捕获环境光测量。VSLAM设备305可以向远程服务器发出VL图像和/或环境光测量。远程服务器的照明检查引擎405可以基于VL图像和/或环境光测量来确定环境是照明良好还是照明不良,例如通过确定VL图像的平均亮度并且将VL图像的平均亮度与预定亮度阈值410进行比较和/或通过将环境光测量的亮度与预定亮度阈值410进行比较。
图4的概念图400中所示的VSLAM技术可以被称为“夜晚模式”VSLAM技术、“夜间模式”VSLAM技术、“黑暗模式”VSLAM技术、“低光”VSLAM技术、“照明不良环境”VSLAM技术、“不良照明”VSLAM技术、“昏暗照明”VSLAM技术、“不良光照”VSLAM技术、“昏暗光照”VSLAM技术、“仅IR”VSLAM技术、“IR模式”VSLAM技术或其某种组合。图3的概念图300中所示的VSLAM技术可以被称为“白昼模式”VSLAM技术、“日间模式”VSLAM技术、“光模式”VSLAM技术、“明亮模式”VSLAM技术、“高光”VSLAM技术、“照明良好环境”VSLAM技术、“良好照明”VSLAM技术、“明亮照明”VSLAM技术、“良好光照”VSLAM技术、“明亮光照”VSLAM技术、“VL-IR”VSLAM技术、“混合”VSLAM技术、“混合VL-IR”VSLAM技术或其某种组合。
图5是图示出在不同照明条件下捕获的相同环境的两个图像的概念图。具体地,第一图像510是由VL相机310在环境照明良好时捕获的环境的VL图像的示例。各种特征(诸如各种墙壁之间的边缘和角,以及挂在墙上的画中星形540上的点)都清晰可见,并且可以被VL特征提取引擎330提取。
另一方面,第二图像520是由VL相机310在环境照明不良时捕获的环境的VL图像的示例。由于第二图像520中的环境的不良照明,在第一图像510中清晰可见的许多特征在第二图像520中根本不可见或者在第二图像520中不清晰可见。例如,第二图像520的右下角中的非常暗的区域530几乎是漆黑,使得在非常暗的区域530中根本没有特征可见。例如,该非常暗的区域530覆盖挂在墙上的画中的星形540的五个点中的三个。第二图像520的剩余部分仍然被稍微照亮。然而,由于环境照明不良,因此有很大风险在第二图像520中将检测不到许多特征。由于环境的不良照明,还有很大风险在第二图像520中检测到的某些特征将不被识别为匹配先前检测到的特征,即使它们确实匹配。例如,即使VL特征提取引擎330检测到在第二图像520中仍然微弱可见的星形540的两个点,VL特征跟踪引擎340也可能无法将星形540的两个点识别为属于在一个或多个其他图像(诸如第一图像510)中检测到的同一星形540。
第一图像510也可以是环境的由IR相机315捕获的IR图像的示例,而第二图像520是相同环境的由VL相机310捕获的VL图像的示例。即使在不良照明中,IR图像也可以是清晰的。
图6A是图示出执行视觉同时定位和建图(VSLAM)的无人地面车辆(UGV)610的透视图600。图6A的透视图600中所示的UGV610可以是执行图2的概念图200中所示的VSLAM技术的VSLAM设备205、执行图3的概念图300中所示的VSLAM技术的VSLAM设备305和/或执行图4的概念图400中所示的VSLAM技术的VSLAM设备305的示例。UGV610包括VL相机310,VL相机310沿着UGV 610的前表面与IR相机315邻近。UGV610包括沿着UGV610的底表面的多个轮615。轮615可以充当UGV 610的运输工具,并且可以使用一个或多个电机来将其机动化。电机并且因此轮615可以经由移动致动器265和/或移动致动器397来被致动以移动UGV 610。
图6B是图示出执行视觉同时定位和建图(VSLAM)的无人飞行器(UAV)620的透视图650。图6B的透视图650中所示的UAV 620可以是执行图2的概念图200中所示的VSLAM技术的VSLAM设备205、执行图3的概念图300中所示的VSLAM技术的VSLAM设备305和/或执行图4的概念图400中所示的VSLAM技术的VSLAM设备305的示例。UAV 620包括VL相机310,VL相机310沿着UGV 610主体的前部与IR相机315邻近。UAV 620包括沿UAV 620顶部的多个螺旋桨625。螺旋桨625可以通过一个或多个附件与UAV 620的主体间隔开,以防止螺旋桨625卡在UAV620主体上的电路上和/或防止螺旋桨625遮挡VL相机310和/或IR相机315的视野。螺旋桨625可以充当UAV 620的运输工具,并且可以使用一个或多个电机来将其机动化。电机并且因此螺旋桨625可以经由移动致动器265和/或移动致动器397来被致动以移动UAV 620。
在一些情况下,UAV 620的螺旋桨625或VSLAM设备205/305的另一部分(例如,天线)可能部分地遮挡VL相机310和/或IR相机315的视野。在一些示例中,可以在执行特征提取之前从出现此部分遮挡的任何VL图像和/或IR图像中删掉此部分遮挡。在一些示例中,在执行特征提取之前不从出现此部分遮挡的VL图像和/或IR图像中删掉此部分遮挡,但是VSLAM算法被配置为出于特征提取的目的而忽略该部分遮挡,并且因此不将该部分遮挡的任何部分视为环境的特征。
图7A是图示出执行视觉同时定位和建图(VSLAM)的头戴式显示器(HMD)710的透视图700。HMD 710可以是XR头戴装置。图7A的透视图700中所示的HMD 710可以是执行图2的概念图200中所示的VSLAM技术的VSLAM设备205、执行图3的概念图300中所示的VSLAM技术的VSLAM设备305和/或执行图4的概念图400中所示的VSLAM技术的VSLAM设备305的示例。HMD710包括沿着HMD 710的前部的VL相机310和IR相机315。HMD 710可以是例如增强现实(AR)头戴装置、虚拟现实(VR)头戴装置、混合现实(MR)头戴装置或其某种组合。
图7B是图示出图7A的头戴式显示器(HMD)由用户720穿戴的的透视图730。用户720将HMD 710穿戴在用户720的头上,覆盖在用户720的眼睛上面。HMD 710可以用VL相机310捕获VL图像和/或用IR相机315捕获IR图像。在一些示例中,HMD 710向用户720的眼睛显示基于VL图像和/或IR图像的一个或多个图像。例如,HMD 710可以向用户720提供环境的视图上的覆盖信息。在一些示例中,HMD 710可以生成向用户720显示的两个图像——一个图像用于向用户720的左眼显示,一个图像用于向用户720的右眼显示。尽管HMD710被示为仅具有一个VL相机310和一个IR相机315,但在一些情况下,HMD 710(或任何其他VSLAM设备205/305)可以具有多于一个VL相机310和/或多于一个IR相机315。例如,在一些示例中,HMD710可以在HMD710的任一侧包括一对相机,其中每对相机包括VL相机310和IR相机315。因此,立体VL和IR视图可以由相机捕获和/或显示给用户。在一些情况下,其他类型的VSLAM设备205/305也可以包括多于一个VL相机310和/或多于一个IR相机315以用于立体图像捕获。
HMD 710不包括轮615、螺旋桨625或其自身的其他运输工具。替代地,HMD 710依赖于用户720的移动来在环境周围移动HMD 710。因此,在一些情况下,HMD 710在执行VSLAM技术时可以跳过使用路径规划引擎260/395的路径规划和/或使用移动致动器265/397的移动致动。在一些情况下,HMD 710仍可以使用路径规划引擎260/395执行路径规划,并且可以向用户720指示遵循建议路径的方向以沿着使用路径规划引擎260/395规划的建议路径引导用户。在一些情况下,例如在HMD 710是VR头戴装置的情况下,环境可以是完全虚拟或部分虚拟的。如果环境是至少部分虚拟的,则穿过虚拟环境的移动也可以是虚拟的。例如,穿过虚拟环境的移动可以由一个或多个操纵杆、按钮、视频游戏控制器、鼠标、键盘、触控板和/或其他输入设备控制。移动致动器265/397可以包括任何此类输入设备。穿过虚拟环境的移动可以不需要轮615、螺旋桨625、腿或任何其他形式的运输工具。如果环境是虚拟环境,则HMD 710仍然可以使用路径规划引擎260/395来执行路径规划和/或执行移动致动265/397。如果环境是虚拟环境,则HMD 710可以通过在虚拟环境内执行虚拟移动来使用移动致动器265/397执行移动致动。即使环境是虚拟的,VSLAM技术也仍可以有价值,因为虚拟环境可能是未建图的和/或由VSLAM设备205/305以外的设备(诸如与视频游戏或视频游戏平台相关联的远程服务器或控制台)生成的。在一些情况下,VSLAM甚至可以由具有其自己的物理运输系统(允许其在物理环境周围物理地移动)的VSLAM设备205/305在虚拟环境中执行。例如,VSLAM可以在虚拟环境中被执行以测试VSLAM设备205/305是否正在正确地工作,而不在移动上浪费时间或能量并且不磨损VSLAM设备205/305的物理运输系统。
图7C是图示出根据一些示例的使用前向相机310和315来执行VSLAM的移动手持装置750的前表面755的透视图740。移动手持装置750可以是例如蜂窝电话、卫星电话、便携式游戏控制台、音乐播放器、健康跟踪设备、可穿戴设备、无线通信设备、膝上型计算机、移动设备或其组合。移动手持装置750的前表面755包括显示屏745。移动手持装置750的前表面755包括VL相机310和IR相机315。VL相机310和IR相机315被示为在移动设备750的前表面755上的显示屏745周围的边框中。在一些示例中,VL相机310和/或IR相机315可以被定位在从移动设备750的前表面755上的显示屏745切出的凹口或切口。在一些示例中,VL相机310和/或IR相机315可以是位于显示屏210与移动手持装置750的其余部分之间的显示器下相机,使得光在到达VL相机310和/或IR相机315之前穿过显示屏210的部分。透视图740的VL相机310和IR相机315是前向的。VL相机310和IR相机315面向与移动设备750的前表面755的平面表面垂直的方向。
图7D是图示出根据一些示例的使用后向相机310和315来执行VSLAM的移动手持装置750的后表面765的透视图760。透视图760的VL相机310和IR相机315是后向的。VL相机310和IR相机315面向与移动设备750的后表面765的平面表面垂直的方向。虽然如透视图760中所示,移动手持装置750的后表面765不具有显示屏745,但在一些示例中,移动手持装置750的后表面765可以具有显示屏745。如果移动手持装置750的后表面765具有显示屏745,则可以使用如关于移动手持装置750的前表面755所讨论的VL相机310和IR相机315相对于显示屏745的任何定位。
类似于HMD 710,移动手持装置750不包括轮615、螺旋桨625或其自身的其他运输工具。替代地,移动手持装置750依赖于握持或穿戴移动手持装置750的用户的移动来在环境周围移动手持装置750。因此,在一些情况下,移动手持装置750在执行VSLAM技术时可以跳过使用路径规划引擎260/395的路径规划和/或使用移动致动器265/397的移动致动。在一些情况下,移动手持装置750仍可以使用路径规划引擎260/395执行路径规划,并且可以向用户指示遵循建议路径的方向以沿着使用路径规划引擎260/395规划的建议路径引导用户。在一些情况下,例如在移动手持装置750被用于AR、VR、MR或XR的情况下,环境可以是完全虚拟或部分虚拟的。在一些情况下,移动手持装置750可以被插入到头戴式设备中,使得移动手持装置750用作HMD 710的显示器,其中移动手持装置750的显示屏745用作HMD 710的显示器。如果环境是至少部分虚拟的,则穿过虚拟环境的移动也可以是虚拟的。例如,穿过虚拟环境的移动可以由一个或多个操纵杆、按钮、视频游戏控制器、鼠标、键盘、触控板和/或以有线或无线方式耦合到移动手持装置750的其他输入设备来控制。移动致动器265/397可以包括任何此类输入设备。穿过虚拟环境的移动可以不需要轮615、螺旋桨625、腿或任何其他形式的运输工具。如果环境是虚拟环境,则移动手持装置750仍然可以使用路径规划引擎260/395来执行路径规划和/或执行移动致动265/397。如果环境是虚拟环境,则移动手持装置750可以通过在虚拟环境内执行虚拟移动来使用移动致动器265/397执行移动致动。
如图3、图4、图6A、图6B、图7A、图7B、图7C和图7D中所示的VL相机310可以被称为第一相机310。如图3、图4、图6A、图6B、图7A、图7B、图7C和图7D中所示的IR相机315可以被称为第二相机315。第一相机310可以响应于第一光谱,而第二相机315响应于第二光谱。虽然贯穿这些附图和本文的描述将第一相机310标记为VL相机,但是应当理解,VL光谱仅仅是第一相机310所响应的第一光谱的一个示例。虽然贯穿这些附图和本文的描述将第二相机315标记为IR相机,但是应当理解,IR光谱仅仅是第二相机315所响应的第二光谱的一个示例。第一光谱可以包括以下中的至少一个:VL光谱的至少部分、IR光谱的至少部分、紫外(UV)光谱的至少部分、微波频谱的至少部分、无线电频谱的至少部分、X射线频谱的至少部分、伽马频谱的至少部分、电磁(EM)频谱的至少部分或其组合。第二光谱可以包括以下中的至少一个:VL光谱的至少部分、IR光谱的至少部分、紫外(UV)光谱的至少部分、微波频谱的至少部分、无线电频谱的至少部分、X射线频谱的至少部分、伽马频谱的至少部分、电磁(EM)频谱的至少部分或其组合。第一光谱可以与第二光谱不同。在一些示例中,第一光谱和第二光谱在一些情况下可以没有任何重叠部分。在一些示例中,第一光谱和第二光谱可以至少部分重叠。
图8是图示出可见光(VL)相机310和红外(IR)相机315的外参标定的概念图800。当VSLAM设备位于标定环境中时,外参标定引擎385执行VL相机310和IR相机315的外参标定。标定环境包括具有已知样式的样式表面830,其在已知定位处具有一个或多个特征。在一些示例中,如图8的概念图800中所示,样式表面830可以具有棋盘样式。棋盘表面可以是有用的,因为其具有规则间隔的特征,诸如棋盘表面上的每个方形的角。棋盘样式可以被称为棋局样式。在一些示例中,样式表面830可以具有另一样式,诸如十字准线、快速响应(QR)码、ArUco标记、一个或多个字母数字字符的样式、或其某种组合。
VL相机310捕获描绘样式表面830的VL图像810。IR相机315捕获描绘样式表面830的IR图像820。样式表面830的特征(诸如棋盘样式的方形角)在VL图像810和IR图像820中的样式表面830的描绘内被检测到。变换840被确定,该变换840将如在IR图像820中描绘的每个特征的2D像素坐标(例如,行和列)转换为如在VL图像810中描绘的相同特征的2D像素坐标(例如,行和列)。变换840可以是基于相同特征在实际样式表面830中的已知实际定位和/或基于该特征相对于样式表面830中的其他特征的已知相对定位来确定的。在一些情况下,变换840也可以被用于将如在IR图像820和/或VL图像810中描绘的每个特征的2D像素坐标(例如,行和列)映射到环境中的地图点的、具有对应于三个空间维度的三个坐标的三维(3D)坐标集合。
在一些示例中,外参标定引擎385在棋盘样式的左上角构建用于外参标定的世界坐标系。变换840可以是直接线性变换(DLT)。基于样式表面830上的特征的已知3D定位与VL图像810和IR图像820中的2D像素坐标(例如,行和列)之间的3D-2D对应关系,某些参数可以被标识。为清楚起见,表示矩阵的参数或变量在本文中在方括号(“[”和“[”)内被引用。括号本身应被理解为不表示等价类或任何其他数学概念。VL相机310的相机内参[KVL]和IR相机IR 315的相机内参[KIR]可以是基于VL相机310和IR相机315的性质和/或基于3D-2D对应关系来确定的。在VL图像810的捕获期间VL相机310的相机姿势以及在IR图像820的捕获期间IR相机315的相机姿势可以是基于3D-2D对应关系来确定的。变量pVL可以表示VL图像810中的点的2D坐标集合。变量pIR可以表示IR图像820中的对应点的2D坐标集合。
确定变换840可以包括使用方程来求解旋转矩阵R和/或平移t。pIR和pVL可以是齐次坐标。用于[R]和t的值可以被确定,使得变换840成功地将IR图像820中的点pIR一致地转化为VL图像810中的点pVL(例如,通过针对样式表面830的不同特征多次求解此方程、使用奇异值分解(SVD)、和/或使用迭代优化)。因为外参标定引擎385可以在VSLAM设备205/305被用于执行VSLAM之前执行外参标定,所以时间和计算资源在确定变换840时通常不是问题。在一些情况下,变换840可以类似地用于将VL图像810中的点pVL变换成IR图像820中的点pIR
图9是图示出由红外(IR)相机315捕获的IR图像920中检测到的特征的坐标与由可见光(VL)相机310捕获的VL图像910中检测到的相同特征的坐标之间的变换840的概念图900。概念图图示出由VL相机310和IR相机315观察到的环境中的数个特征。三个灰色样式着色圆表示在VL图像910和IR图像920中描绘的共同观察特征930。共同观察特征930可以在特征提取期间由特征提取引擎220/330/335在VL图像910和IR图像920中描绘、观察到和/或检测到。三个白色着色圆表示在VL图像910中而未在IR图像920中描绘、观察到和/或检测到的VL特征940。VL特征940可以在VL特征提取330期间在VL图像910中被检测到。三个黑色着色圆表示在IR图像920中而未在VL图像910中描绘、观察到和/或检测到的IR特征945。IR特征945可以在IR特征提取335期间在IR图像920中被检测到。
用于针对共同观察特征930中的共同观察特征的地图点的3D坐标集合可以是基于VL图像910和IR图像920中的共同观察特征的描绘来确定的。例如,可以使用中点算法对用于针对共同观察特征的地图点的3D坐标集合进行三角测量。点O表示IR相机315。点O’表示VL相机310。沿着从点O到共同观察特征930的共同观察特征的箭头的点U表示IR图像920中的共同观察特征的描绘。沿着从点O’到共同观察特征930的共同观察特征的箭头的点U’表示VL图像910中的共同观察特征的描绘。
用于针对VL特征940中的VL特征的地图点的3D坐标集合可以是基于VL图像910中的VL特征的描绘以及一个或多个其他VL图像中和/或一个或多个IR图像中的VL特征的一个或多个其他描绘来确定的。例如,可以使用中点算法对用于针对VL特征的地图点的3D坐标集合进行三角测量。沿着从点O’到VL特征940的VL特征的箭头的点W’表示VL图像910中的VL特征的描绘。
用于针对IR特征945中的IR特征的地图点的3D坐标集合可以是基于IR图像920中的IR特征的描绘以及一个或多个其他IR图像中和/或一个或多个VL图像中的IR特征的一个或多个其他描绘来确定的。例如,可以使用中点算法对用于针对IR特征的地图点的3D坐标集合进行三角测量。沿着从点O到IR特征945的IR特征的箭头的点W表示IR图像920中的IR特征的描绘。
在一些示例中,变换840可以将在IR图像920中检测到的特征的2D定位变换成VL相机310的视角中的2D定位。VL相机310的视角中的2D定位可以基于VL相机310的姿势而被变换成在地图中使用的地图点的3D坐标集合。在一些示例中,与第一VL关键帧相关联的VL相机310的姿势可以由建图系统390初始化为地图的世界坐标系的原点。使用概念图200、300和/或400中的至少一个中图示的VSLAM技术,在第一VL关键帧之后由VL相机310捕获的第二VL关键帧被登记到地图的世界坐标系中。IR关键帧可以与第二VL关键帧同时或在相同的时间窗口内被IR相机315捕获。时间窗口可以持续预定持续时间,诸如一或多皮秒、一或多纳秒、一或多毫秒或一或多秒。IR关键帧用于三角测量以确定用于对应于共同观察特征930的地图点(或部分地图点)的3D坐标集合。
图10A是图示出由红外(IR)相机315捕获的IR图像1020中检测到的特征的坐标与由可见光(VL)相机310捕获的VL图像1010中检测到的相同特征的坐标之间的特征关联的概念图1000。标记为P的灰色样式着色圆表示共同观察特征P。沿着从点O到共同观察特征P的箭头的点u表示IR图像1020中的共同观察特征P的描绘。沿着从点O’到共同观察特征P的箭头的点u’表示VL图像1010中的共同观察特征P的描绘。
变换840可以被用于IR图像1020中的点u,这可以产生VL图像1010中所示的点在一些示例中,VL/IR特征关联365可以通过以下来标识点u和u’表示共同观察特征P:基于使用变换840从IR图像1020变换到VL图像1010的点在VL图像1010的点u’的定位周围的区域1030内搜索IR图像1020中的针对点u’的匹配,以及确定区域1030内的点/>与点u’匹配。在一些示例中,VL/IR特征关联365可以通过以下来标识点u和u’表示共同观察特征P:在从IR图像1020变换到VL图像1010中的点/>的定位周围的区域1030内搜索针对点/>的匹配,以及确定区域1030内的点uu与点/>匹配。
图10B是图示出用于特征的示例描述符样式的概念图1050。点u’和是否匹配可以是基于与点u’和/>相关联的描述符样式是否在彼此的预定最大百分比变化内匹配来确定的。描述符样式包括特征像素1060,其是表示特征的点。描述符样式包括特征像素1060周围的数个像素。概念图1050中所示的示例描述符样式采取像素的5像素乘5像素方形的形式,其中特征像素1060在描述符样式的中心。可以使用不同的描述符样式形状和/或大小。在一些示例中,描述符样式可以是像素的3像素乘3像素方形,其中特征像素1060在中心。在一些示例中,描述符样式可以是像素的7像素乘7像素方形,或像素的9像素乘9像素方形,其中特征像素1060在中心。在一些示例中,描述符样式可以是像素的圆形、椭圆形、长方形矩形或另一形状,其中特征像素1060在中心。
描述符样式包括5个黑色箭头,每个都穿过特征像素1060。黑色箭头中的每一个从描述符样式的一端穿行到描述符样式的相对端。黑色箭头表示特征像素1060周围的强度梯度,并且可以沿箭头的方向被导出。强度梯度可以对应于沿着每个箭头的像素的光度的差异。如果VL图像是彩色的,那么每个强度梯度可以对应于沿着每个箭头的像素在色彩集合(例如,红、绿、蓝)中的一个色彩上的色彩强度的差异。强度梯度可以被归一化以落在0和1之间的范围内。强度梯度可以根据它们对应的箭头所面向的方向来被排序,并且可以被连接成直方图分布。在一些示例中,直方图分布可以被存储到256位长度的二进制串中。
如上所述,点u’和是否匹配可以是基于与点u’和/>相关联的描述符样式是否在彼此的预定最大百分比变化内匹配来确定的。在一些示例中,可以将存储对应于针对点u’的描述符样式的直方图分布的二进制串与存储对应于针对点/>的描述符样式的直方图分布的二进制串进行比较。在一些示例中,如果对应于点u’的二进制串与对应于点/>的二进制串相差小于最大百分比变化,那么点u’与/>’被确定为匹配,并且因此描绘相同特征P。在一些示例中,最大百分比变化可以是5%、10%、15%、20%、25%、小于5%、大于25%、或者介于先前列出的百分比值中的任意两个之间的百分比值。如果对应于点u’的二进制串与对应于点/>的二进制串相差大于最大百分比变化,那么点u’与/>被确定为不匹配,并且因此不描绘相同特征P。
图11是图示出联合地图优化的示例的概念图1100。概念图1100图示出点束1110。束1110包括以灰色样式着色的点,其表示如使用VL/IR特征关联365确定的由VL相机310和IR相机315两者在相同时间或在不同时间观察到的共同观察特征。束1110包括以白色着色的点,其表示由VL相机310而非由IR相机315观察到的特征。束1110包括以黑色着色的点,其表示由IR相机315而非由VL相机310观察到的特征。
束调整(BA)是用于执行联合地图优化360的示例技术。成本函数(诸如2D点到3D地图点的重投影误差)可以被用于BA,以作为优化的目标。联合地图优化引擎360可以根据残差梯度使用BA修改关键帧姿势和/或地图点信息以最小化重投影误差。在一些示例中,VL地图点350和IR地图点355可以被分别优化。然而,使用BA的地图优化可能是计算密集的。因此,VL地图点350和IR地图点355可以由联合地图优化引擎360一起优化而不是分别优化。在一些示例中,从IR、RGB通道或两者生成的重投影误差项将被置入用于BA的目标损失函数中。
在一些情况下,由束1110表示的局部搜索窗口可以是基于对应于束1110中以灰色样式着色的共同观察特征的地图点来确定的。其他地图点(诸如仅由VL相机310观察到的以白色着色的地图点或仅由IR相机315观察到以黑色着色的地图点)可以在损失函数中被忽略或丢弃,或者可被赋予比共同观察特征更小的权重。在BA优化之后,如果束中的地图点分布得彼此非常接近,那么可以计算束1110中的这些地图点的形心1120。在一些示例中,形心1120的定位被计算为在束1110的中心。在一些示例中,形心1120的定位是基于束1110中的点的定位的平均来计算的。在一些示例中,形心1120的定位是基于束1110中的点的定位的加权平均来计算的,其中某些点(例如,共同观察点)比其他点(例如,非共同观察的点)权重更大。形心1120在图11的概念图1100中由星形表示。形心1120随后可以被建图系统390用作用于地图的地图点,并且束中的其他点可以被建图系统390从地图中丢弃。形心1120的使用支持一致的空间优化,并且避免了对具有类似描述符的点或分布较窄的点(例如,分布在彼此预定范围内的点)的冗余计算。
图12是图示出特征跟踪1250/1255和立体匹配1240/1245的概念图1200。概念图1200图示出由VL相机310捕获的VL图像帧t 1220。概念图1200图示出在捕获VL图像帧t1220之后由VL相机310捕获的VL图像帧t+1 1230。一个或多个特征被描绘于VL图像帧t1220和VL图像帧t+1 1230中,并且特征跟踪1250跟踪这一个或多个特征的定位从VL图像帧t 1220到VL图像帧t+1 1230的改变。
概念图1200图示出由IR相机315捕获的IR图像帧t 1225。概念图1200图示出在捕获IR图像帧t 1225之后由IR相机315捕获的IR图像帧t+1 1235。一个或多个特征被描绘于IR图像帧t 1225和IR图像帧t+1 1235中,并且特征跟踪1255跟踪这一个或多个特征的定位从IR图像帧t 1225到IR图像帧t+1 1235的改变。
VL图像帧t 1220可以与IR图像帧t 1225同时被捕获。VL图像帧t 1220可以与IR图像帧t 1225在相同时间窗口内被捕获。立体匹配1240将VL图像帧t 1220中描绘的一个或多个特征与IR图像帧t1225中描绘的匹配特征进行匹配。立体匹配1240标识在VL图像帧t1220和IR图像帧t 1225中共同观察到的特征。立体匹配1240可以使用如在图10A和图10B的概念图1000和1050中图示并且关于概念图1000和1050讨论的变换840。变换840可以在任一方向或两个方向上被使用,将VL图像帧t 1220中对应于特征的点(它们的表示)变换为IR图像帧t 1225中的对应表示,反之亦然。
VL图像帧t+1 1230可以与IR图像帧t+1 1235同时被捕获。VL图像帧t+1 1230可以与IR图像帧t+1 1235在相同时间窗口内被捕获。立体匹配1245将VL图像帧t+1 1230中描绘的一个或多个特征与IR图像帧t+1 1235中描绘的匹配特征进行匹配。立体匹配1240可以使用如在图10A和图10B的概念图1000和1050中图示并且关于概念图1000和1050讨论的变换840。变换840可以在任一方向或两个方向上被使用,将VL图像帧t+1 1230中对应于特征的点(它们的表示)变换为IR图像帧t+1 1235中的对应表示,反之亦然。
VL地图点350与IR地图点355的对应关系可以是在立体匹配1240/1245期间建立的。类似地,VL关键帧与IR关键帧的对应关系可以是在立体匹配1240/1245期间建立的。
图13A是图示出由红外(IR)相机315捕获的IR图像1320中检测到的特征的坐标与由可见光(VL)相机310捕获的VL图像1310中检测到的相同特征的坐标之间的立体匹配的概念图1300。3D点P’和P”表示相同特征的观察到的样本位置。特征的更准确的位置P稍后通过图13B的概念图1350中所示的三角测量来被确定。
3D点P”表示在VL相机帧O’1310中观察到的特征。因为特征的深度尺度是未知的,所以P”是沿着VL图像帧1310前面的线O’U’被均匀采样的。IR图像1320中的点表示经由变换840([R]和t)变换到IR通道中的点U’,CVL是VSLAM输出的3D VL相机定位,[TVL]是从VSLAM输出导出的变换矩阵,包括方位和定位两者。[KIR]是用于IR相机的内参矩阵。许多P”样本被投影到IR图像帧1320上,随后这些投影样本/>的窗口内的搜索被执行,以寻找IR图像帧1320中具有类似描述符的对应特征观察。随后根据最小重投影误差,最佳样本/>及其对应的3D点P”被选取。因此,从VL相机帧1310中的点P”到IR图像1320中的点/>的最终变换可以如下被写为:
3D点P’表示在IR相机帧1320中观察到的特征。VL图像1310中的点表示经由变换840([R]和t)的逆变换到VL通道中的点U,CIR是VSLAM输出的3D IR相机定位,[TIR]是从VSLAM输出导出的变换矩阵,包括方位和定位两者。[KVL]是用于VL相机的内参矩阵。许多P’样本被投影到VL图像帧1310上,随后这些投影样本/>的窗口内的搜索被执行,以寻找VL图像帧1310中具有类似描述符的对应特征观察。随后根据最小重投影误差,最佳样本/>及其对应的3D样本点P’被选取。因此,从IR相机帧1320中的点P’到VL图像1310中的点/>的最终变换可以如下被写为:
用于针对特征的位置点P’的3D坐标集合是基于从点O到点U绘制的第一条线和从点O’到点绘制的第二条线的交点来确定的。用于针对特征的位置点P”的3D坐标集合是基于从点O’到点U’绘制的第一条线和从点O到点/>绘制的第二条线的交点来确定的。
图13B是图示出由红外(IR)相机捕获的IR图像中检测到的特征的坐标与由可见光(VL)相机捕获的VL图像中检测到的相同特征的坐标之间的三角测量的概念图1350。基于图13A的概念图1300中所示的立体匹配变换,针对特征的位置点P’被确定。基于立体匹配变换,针对相同特征的位置点P”被确定。在概念图1350中所示的三角测量操作中,从点P’到点P”绘制线段。在概念图1350中,线段由虚线表示。针对特征的更准确的位置P被确定为沿着线段的中点。
图14A是图示出相机在图像帧t 1410中检测到的特征的坐标与相机在后续图像帧t+1 1420中检测到的相同特征的坐标之间的单目匹配的概念图1400。相机可以是VL相机310或IR相机315。当相机处于由坐标O’示出的姿势C’时,图像帧t1410被相机捕获。当相机处于由坐标O示出的姿势C时,图像帧t+1 1420被相机捕获。
点P”表示在图像帧t 1410的捕获期间由相机观察到的特征。图像帧t 1410中的点U’表示图像帧t 1410内的点P”的特征观察。图像帧t+1 1420中的点表示经由变换1440(包括[R]和t)变换到图像帧t+1 1420中的点U’。变换1440可以类似于变换840。C是图像帧t1410的相机定位,[T]是从运动预测生成的变换矩阵,包括方位和定位两者。[K]是对应相机的内参矩阵。许多P”样本被投影到图像帧t+1 1420上,随后这些投影样本/>的窗口内的搜索被执行,以寻找图像帧t+1 1420中具有相同描述符的对应特征观察。随后根据最小重投影误差,最佳样本/>及其对应的3D点P”被选取。因此,从相机帧t 1410中的点P”到图像帧t+1 1420中的点/>的最终变换1440可以如下被写为:
与用于立体匹配的变换840不同,用于变换1440的R和t可以是基于通过恒定速度模型v×Δt的预测来确定的,该模型基于相机在先前图像帧t-1(未图示)与图像帧t1410的捕获之间的速度。
图14B是图示出相机在图像帧中检测到的特征的坐标与相机在后续图像帧中检测到的相同特征的坐标之间的三角测量的概念图1450。
用于针对特征的位置点P’的3D坐标集合是基于从点O到点U绘制的第一条线和从点O’到点绘制的第二条线的交点来确定的。用于针对特征的位置点P”的3D坐标集合是基于从点O’到点U’绘制的第一条线和从点O到点/>绘制的第二条线的交点来确定的。在概念图1450中所示的三角测量操作中,从点P’到点P”绘制线段。在概念图1450中,线段由虚线表示。针对特征的更准确的位置P被确定为沿着线段的中点。
图15是图示出基于关键帧的快速重定位的概念图1500。如概念图1500中使用关键帧的重定位加速了重定位并且改进了夜间模式(图4的概念图400中所示的VSLAM技术)中的成功率。如概念图1500中使用关键帧的重定位保持了日间模式(图3的概念图300中所示的VSLAM技术)中的速度和高成功率。
概念图1500中用灰色样式着色的圆表示针对在夜间模式期间由IR相机315观察到的特征的3D地图点。概念图1500中的黑色阴影圆表示针对在日间模式期间由VL相机310、IR相机315或两者观察到的特征的3D地图点。为了帮助克服夜间模式下的特征稀疏性,IR相机315当前观察到的地图点范围内的未观察到的地图点也可以被检索以帮助重定位。
在概念图1500中所示的重定位算法中,将IR相机315捕获的当前IR图像与其他IR相机关键帧进行比较,以寻找由高于预定阈值的词袋分数(BoWs)指示的、关键帧图像中具有最为共同的描述符的匹配候选。例如,对照概念图1500中的子地图来匹配属于当前IR相机关键帧1510的所有地图点,子地图是由候选关键帧(未图示)的地图点以及候选关键帧的邻近关键帧(未图示)的地图点组成的。这些子地图包括关键帧视图中观察到的和未观察到的点。对照概念图1500中的此子地图地图点来匹配每个随后的连续IR相机关键帧1515和第n IR相机关键帧1520的地图点。子地图地图点可以包括候选关键帧的地图点和候选关键帧的邻近关键帧的地图点两者。以此方式,重定位算法可以通过多个连续IR关键帧之间对照子地图的一致匹配来验证候选关键帧。此处,搜索算法检索特定范围区域(如图15中最左边的虚线圆圈区域)中的观察到的地图点及其相邻的未观察到的地图点。最后,最佳候选关键帧在其子地图可以与连续IR关键帧的地图点一致地匹配时被选取出来。这种匹配可以随时执行。由于匹配过程采用了更多的3D地图点信息,因此重定位可以比没有此附加地图点信息(IR相机关键帧、第五IR相机关键帧之后的较晚IR相机关键帧、或另一IR相机关键帧)时更准确。
图16是图示出基于关键帧(例如,IR相机关键帧m 1610)和形心1620(也被称为形心点)的快速重定位的概念图1600。如在概念图1500中,概念图1600中用灰色样式着色的圆1650表示针对IR相机关键帧m 1610中在夜间模式期间由IR相机315观察到的特征的3D地图点。概念图1600中的黑色阴影圆表示针对在日间模式期间由VL相机310、IR相机315或两者观察到的特征的3D地图点。
以白色着色的星形表示基于概念图1600的内圆1625中的四个黑点生成的形心1620。形心1620可以是基于内圆1625中的四个黑点来生成的,因为内圆1625中的四个黑点在3D空间中彼此不是非常接近,并且这些地图点都具有类似的描述符。
重定位算法可以将对应于圆1650的特征与外圆1630中的其他特征进行比较。由于形心1620已被生成,所以重定位算法可以出于重定位的目的而丢弃内圆1625中的四个黑点,因为考虑内圆1625中的所有四个黑点将是重复的。在一些示例中,重定位算法可以将对应于圆1650的特征与形心1620而不是内圆1625中的四个黑点中的任一个进行比较。在一些示例中,重定位算法可以将对应于圆1650的特征仅与内圆1625中的四个黑点之一而不是与内圆1625中的所有四个黑点进行比较。在一些示例中,重定位算法可以既不将对应于圆1650的特征与形心1620进行比较也不将其与内圆1625中的四个黑点中的任一个进行比较。在这些示例的任一个中,重定位算法使用较少的计算资源。
图15的概念图1500和图16的概念图1600中所示的快速重定位技术可以是图2的概念图200中所示的VSLAM技术的重定位230、图3的概念图300中所示的VSLAM技术的重定位375和/或图4的概念图400中所示的VSLAM技术的重定位375的示例。
图8、图9、图10A、图12、图13A和图13B中的各种VL图像(810、910、1010、1220、1230、1310)可以各自被称为第一图像或第一类型的图像。第一类型的图像中的每一个可以是由第一相机310捕获的图像。图8、图9、图10A、图12、图13A、图13B、图15和图16中的各种IR图像(820、920、1020、1225、1235、1320、1510、1515、1520、1610)可以各自被称为第二图像或第二类型的图像。第二类型的图像中的每一个可以是由第二相机315捕获的图像。第一相机310可以响应于第一光谱,而第二相机315响应于第二光谱。虽然第一相机310在本文中有时被称为VL相机310,但是应当理解,VL光谱仅仅是第一相机310所响应的第一光谱的一个示例。虽然第二相机315在本文中有时被称为IR相机315,但是应当理解,IR光谱仅仅是第二相机315所响应的第二光谱的一个示例。第一光谱可以包括以下中的至少一个:VL光谱的至少部分、IR光谱的至少部分、紫外(UV)光谱的至少部分、微波频谱的至少部分、无线电频谱的至少部分、X射线频谱的至少部分、伽马频谱的至少部分、电磁(EM)频谱的至少部分或其组合。第二光谱可以包括以下中的至少一个:VL光谱的至少部分、IR光谱的至少部分、紫外(UV)光谱的至少部分、微波频谱的至少部分、无线电频谱的至少部分、X射线频谱的至少部分、伽马频谱的至少部分、电磁(EM)频谱的至少部分或其组合。第一光谱可以与第二光谱不同。在一些示例中,第一光谱和第二光谱在一些情况下可以没有任何重叠部分。在一些示例中,第一光谱和第二光谱可以至少部分重叠。
图17是图示出图像处理技术的示例的流程图1700。图17的流程图1700所示的图像处理技术可以由设备执行。设备可以是图像捕获和处理系统100、图像捕获设备105A、图像处理设备105B、VSLAM设备205、VSLAM设备305、UGV 610、UAV 620、XR头戴装置710、一个或多个远程服务器、云服务的一个或多个网络服务器、计算系统1800、或其某种组合。
在操作1705处,设备接收由第一相机捕获的环境的第一图像。第一相机响应于第一光谱。在操作1710处,设备接收由第二相机捕获的环境的第二图像。第二相机响应于第二光谱。设备可以包括第一相机、第二相机或两者。设备可以包括除第一相机和第二相机之外的一个或多个附加相机和/或传感器。在一些方面中,设备包括移动手持装置、头戴式显示器(HMD)、车辆和机器人中的至少一个。
第一光谱可以与第二光谱不同。在一些示例中,第一光谱和第二光谱在一些情况下可以没有任何重叠部分。在一些示例中,第一光谱和第二光谱可以至少部分重叠。在一些示例中,第一相机是本文讨论的第一相机310。在一些示例中,第一相机是本文讨论的VL相机310。在一些方面中,第一光谱是可见光(VL)光谱的至少部分,并且第二光谱与VL光谱不同。在一些示例中,第一相机是本文讨论的第二相机315。在一些示例中,第一相机是本文讨论的IR相机315。在一些方面中,第二光谱是红外(IR)光谱的至少部分,并且其中第一光谱与IR光谱不同。第一光谱和第二光谱中的任一个可以包括以下中的至少一个:VL光谱的至少部分、IR光谱的至少部分、紫外(UV)光谱的至少部分、微波频谱的至少部分、无线电频谱的至少部分、x射线频谱的至少部分、伽马频谱的至少部分、电磁(EM)频谱的至少部分或其组合。
在一些示例中,第一相机在设备处于第一位置中时捕获第一图像,并且其中第二相机在设备处于第一位置中时捕获第二图像。设备可以基于针对特征的坐标集合来确定设备在环境内的第一位置的坐标集合。设备在环境内的第一位置的坐标集合可以被称为设备在第一位置中的位置或者第一位置的位置。设备可以基于由于特征的坐标集合来确定设备处于第一位置中时设备的姿势。设备的姿势可以包括设备的俯仰、设备的滚动、设备的偏航或其组合中的至少一个。在一些情况下,设备的姿势还可以包括设备在环境内的第一位置的坐标集合。
在操作1715处,设备标识环境的特征被描绘于第一图像和第二图像两者中。特征可以是第一图像和第二图像中在视觉上可检测和/或可识别的环境的特征。例如,特征可以包括边缘或角中的至少一个。
在操作1720处,设备基于第一图像中的特征的第一描绘和第二图像中的特征的第二描绘来确定特征的坐标集合。特征的坐标集合可以包括对应于三个空间维度的三个坐标。确定针对特征的坐标集合可以包括确定对应于第一图像的针对特征的第一坐标集合与对应于第二图像的针对特征的第二坐标集合之间的变换。
在操作1725处,设备基于针对特征的坐标集合来更新环境的地图。设备可以在操作1725处更新环境的地图之前生成环境的地图(例如如果地图尚未被生成)。基于由于特征的坐标集合更新环境的地图可以包括向地图添加新的地图区域。新的地图区域可以包括针对特征的坐标集合。基于针对特征的坐标集合来更新环境的地图可以包括修订地图的地图区域(例如,修订已至少部分地在地图中表示的现有地图区域)。地图区域可以包括针对特征的坐标集合。修订地图区域可以包括基于特征的坐标集合来修订特征的先前坐标集合。例如,如果特征的坐标集合比特征的先前坐标集合更准确,那么修订地图区域可以包括以特征的坐标集合替换特征的先前坐标集合。修订地图区域可以包括以特征的平均坐标集合来替换特征的先前坐标集合。设备可以通过对特征的先前坐标集合与特征的坐标集合(和/或特征的一个或多个附加坐标集合)求平均来确定特征的平均坐标集合。
在一些情况下,设备可以标识设备已从第一位置移动到第二位置。设备可以接收由第二相机在设备处于第二位置中时捕获的环境的第三图像。设备可以标识环境的特征被描绘于第三图像和来自第一相机的第四图像中的至少一个中。设备可以基于第三图像和第四图像中的至少一个中的特征的一个或多个描绘来跟踪特征。设备可以基于跟踪特征来确定设备在环境内的第二位置的坐标集合。设备可以基于跟踪特征来确定设备处于第二位置中时设备的姿势。设备的姿势可以包括设备的俯仰、设备的滚动、设备的偏航或其组合中的至少一个。在一些情况下,设备的姿势可以包括设备在环境内的第二位置的坐标集合。设备可以通过基于跟踪特征更新环境中的特征的坐标集合来生成环境中的特征的经更新坐标集合。设备可以基于特征的经更新坐标集合来更新环境的地图。跟踪特征可以基于特征的坐标集合、第一图像中的特征的第一描绘、和第二图像中的特征的第二描绘中的至少一个。
环境可以是照明良好的,例如经由阳光、月光和/或人工光照。设备可以标识当设备处于第二位置中时环境的照明水平高于最小照明阈值。基于照明水平高于最小照明阈值,设备可以接收由第一相机在设备处于第二位置中时捕获的环境的第四图像。在此类情况下,跟踪特征基于第三图像中的特征的第三描绘和第四图像中的特征的第四描绘。
环境可以是照明不良的,例如经由缺乏阳光、缺乏月光、昏暗的月光、缺乏人工光照和/或昏暗的人工光照。设备可以标识当设备处于第二位置中时环境的照明水平低于最小照明阈值。基于照明水平低于最小照明阈值,跟踪特征可以基于第三图像中的特征的第三描绘。
设备可以标识设备已从第一位置移动到第二位置。设备可以接收由第二相机在设备处于第二位置中时捕获的环境的第三图像。设备可以标识环境的第二特征被描绘于第三图像和来自第一相机的第四图像中的至少一个中。设备可以基于第三图像和第四图像中的至少一个中的第二特征的一个或多个描绘来确定针对第二特征的第二坐标集合。设备可以基于针对第二特征的第二坐标集合来更新环境的地图。设备可以基于更新地图来确定设备在环境内的第二位置的坐标集合。设备可以基于更新地图来确定设备处于第二位置中时设备的姿势。设备的姿势可以包括设备的俯仰、设备的滚动、设备的偏航或其组合中的至少一个。在一些情况下,设备的姿势还可以包括设备在环境内的第二位置的坐标集合。
环境可以是照明良好的。设备可以标识当设备处于第二位置中时环境的照明水平高于最小照明阈值。基于照明水平高于最小照明阈值,设备可以接收由第一相机在设备处于第二位置中时捕获的环境的第四图像。在此类情况下,确定第二特征的第二坐标集合基于第三图像中的第二特征的第一描绘和第四图像中的第二特征的第二描绘。
环境可以是照明不良的。设备可以标识当设备处于第二位置中时环境的照明水平低于最小照明阈值。基于照明水平低于最小照明阈值,确定针对第二特征的第二坐标集合可以基于第三图像中的第二特征的第一描绘。
第一相机可以具有第一帧速率,并且第二相机可以具有第二帧速率。第一帧速率可以不同于(例如,大于或小于)第二帧速率。第一帧速率可以与第二帧速率相同。设备的有效帧速率可以指每秒(或每其他时间单位)有多少帧从所有激活的相机进入。当第一相机和第二相机都被激活时,例如当环境的照明水平超过最小照明阈值时,设备可以具有第一有效帧速率。当两个相机中仅一个(例如,仅第一相机或仅第二相机)被激活时,例如当环境的照明水平低于最小照明阈值时,设备可以具有第二有效帧速率。设备的第一有效帧速率可以超过设备的第二有效帧速率。
在一些情况下,流程图1700和概念图200、300、400、800、900、1000、1050、1100、1200、1300、1350、1400、1450、1500和1600所示的技术的至少一个子集可以由关于图17讨论的设备执行。在一些情况下,流程图1700和概念图200、300、400、800、900、1000、1050、1100、1200、1300、1350、1400、1450、1500和1600所示的技术的至少一个子集可以由云服务的一个或多个网络服务器执行。在一些示例中,流程图1700和概念图200、300、400、800、900、1000、1050、1100、1200、1300、1350、1400、1450、1500和1600所示的技术的至少一个子集可以由图像捕获和处理系统100、图像捕获设备105A、图像处理设备105B、VSLAM设备205、VSLAM设备305、UGV 610、UAV 620、XR头戴装置710、一个或多个远程服务器、云服务的一个或多个网络服务器、计算系统1800或其某种组合来执行。计算系统可以包括任何合适的设备,诸如移动设备(例如,移动电话)、台式计算设备、平板计算设备、可穿戴设备(例如,VR头戴装置、AR头戴装置、AR眼镜、联网手表或智能手表、或其他可穿戴设备)、服务器计算机、自主车辆或自主车辆的计算设备、机器人设备、电视和/或具有执行本文描述的过程的资源能力的任何其他计算设备。在一些情况下,计算系统、设备或装置可以包括各种组件,诸如一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机、一个或多个相机、一个或多个传感器和/或被配置为执行本文描述的过程的步骤的其他组件。在一些示例中,计算系统、设备或装置可以包括显示器、被配置为通信和/或接收数据的网络接口、其任何组合、和/或其他组件。网络接口可以被配置为通信和/或接收基于互联网协议(IP)的数据或其他类型的数据。
计算系统、设备或装置的组件可以被实现于电路中。例如,组件可以包括电子电路或其他电子硬件和/或可以使用电子电路或其他电子硬件来实现,电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其他合适的电子电路),和/或可以包括计算机软件、固件或其任何组合和/或使用计算机软件、固件或其任何组合来实现,以执行本文描述的各种操作。
流程图1700和概念图200、300、400和1200所示的过程被组织为逻辑流程图,该逻辑流程图的操作表示可以被实现于硬件、计算机指令或其组合中的操作序列。在计算机指令的上下文中,这些操作表示被存储在一个或多个计算机可读存储介质上的计算机可执行指令,该计算机可执行指令在由一个或多个处理器执行时执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的次序不旨在被解释为限制,并且可以用任何次序和/或并行地组合任何数量的所描述操作以实现过程。
另外,流程图1700和本文描述的概念图200、300、400、800、900、1000、1050、1100、1200、1300、1350、1400、1450、1500和1600所示的技术的至少一个子集可以在配置有可执行指令的一个或多个计算机系统的控制下被执行,并且可以被实现为在一个或多个处理器上、通过硬件、或其组合共同执行的代码(例如,可执行指令、一个或多个计算机程序、或一个或多个应用)。如上所述,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式被存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂态的。
图18是图示出用于实现本技术的某些方面的系统的示例的图。具体地,图18图示出计算系统1800的示例,其可以是例如构成内部计算系统、远程计算系统、相机或其任何组件的任何计算设备,其中系统的组件使用连接1805彼此通信。连接1805可以是使用总线的物理连接,或者到处理器1810的直接连接(诸如在芯片组架构中)。连接1805也可以是虚拟连接、网络连接或逻辑连接。
在某些实施例中,计算系统1800是分布式系统,其中本公开中描述的功能可以被分布在数据中心、多个数据中心、对等网络等内。在某些实施例中,所描述的系统组件中的一个或多个表示许多此类组件,每个组件执行针对该组件描述的功能的某些或全部。在某些实施例中,组件可以是物理或虚拟设备。
示例系统1800包括至少一个处理单元(CPU或处理器)1810,以及将各种系统组件耦合到处理器1810的连接1805,各种系统组件包括系统存储器1815,诸如只读存储器(ROM)1820和随机存取存储器(RAM)1825。计算系统1800可以包括高速存储器的缓存1812,缓存1812与处理器1810直接连接、紧邻、或被集成为处理器1810的部分。
处理器1810可以包括任何通用处理器以及被配置为控制处理器1810的硬件服务或软件服务,诸如被存储在存储设备1830中的服务1832、1834和1836,以及其中软件指令被合并到实际处理器设计中的专用处理器。处理器1810本质上可以是完全独立的计算系统,包含多个核或处理器、总线、存储器控制器、缓存等。多核处理器可以是对称的或非对称的。
为了实现用户交互,计算系统1800包括输入设备1845,其可以代表任何数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等等。计算系统1800还可以包括输出设备1835,其可以是数个输出机构中的一个或多个。在某些实例中,多模式系统可以使用户能够提供多种类型的输入/输出以与计算系统1800通信。计算系统1800可以包括通信接口1840,其通常可以支配和管理用户输入和系统输出。通信接口可以使用有线和/或无线收发器来执行或促进接收和/或发送有线或无线通信,这些收发器包括使用以下的那些:音频插孔/插头、麦克风插孔/插头、通用串行总线(USB)端口/插头、/插头、以太网端口/插头、光纤端口/插头、专有有线端口/插头、/>无线信号传输、/>低功耗(BLE)无线信号传输、/>无线信号传输、射频标识(RFID)无线信号传输、近场通信(NFC)无线信号传输、专用短距通信(DSRC)无线信号传输、802.11Wi-Fi无线信号传输、无线局域网(WLAN)信号传输、可见光通信(VLC)、微波存取全球互通(WiMAX)、红外(IR)通信无线信号传输、公共交换电话网络(PSTN)信号传输、综合业务数字网络(ISDN)信号传输、3G/4G/5G/LTE蜂窝数据网络无线信号传输、ad-hoc网络信号传输、无线电波信号传输、微波信号传输、红外信号传输、可见光信号传输、紫外光信号传输、沿电磁频谱的无线信号传输,或其某种组合。通信接口1840还可以包括一个或多个全球导航卫星系统(GNSS)接收器或收发器,其被用于基于从与一个或多个GNSS系统相关联的一个或多个卫星接收一个或多个信号来确定计算系统1800的位置。GNSS系统包括但不限于美国的全球定位系统(GPS)、俄罗斯的全球导航卫星系统(GLONASS)、中国的北斗导航卫星系统(BDS)和欧洲的伽利略GNSS。没有在任何特定硬件布置上操作的限制,并且因此这里的基本特征可以很容易地被替换为改进的硬件或固件布置(随着它们被开发出来)。
存储设备1830可以是非易失性和/或非暂态和/或计算机可读存储器设备并且可以是硬盘或其他类型的计算机可读介质(其可以存储可由计算机访问的数据),诸如磁盒、闪存卡、固态存储器设备、数字多功能盘、卡带、软盘、柔性盘、硬盘、磁带、磁条/条带、任何其他磁性存储介质、闪存、忆阻器存储器、任何其他固态存储器、紧凑盘只读存储器(CD-ROM)光盘、可重写紧凑(CD)光盘、数字视频盘(DVD)光盘、蓝光盘(BDD)光盘、全息光盘、另一光学介质、安全数字(SD)卡、微型安全数字(microSD)卡、 卡、智能卡芯片、EMV芯片、订户身份模块(SIM)卡、mini/micro/nano/pico SIM卡、另一集成电路(IC)芯片/卡、随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存EPROM(FLASHEPROM)、缓存存储器(L1/L2/L3/L4/L5/L#)、电阻式随机存取存储器(RRAM/ReRAM)、相变存储器(PCM)、自旋转移扭矩RAM(STT-RAM)、另一存储器芯片或盒、和/或其组合。
存储设备1830可以包括软件服务、服务器、服务等,当定义此类软件的代码被处理器1810执行时,其导致系统执行功能。在某些实施例中,执行特定功能的硬件服务可以包括被存储在计算机可读介质中的软件组件,该软件组件与必要硬件组件(诸如处理器1810、连接1805、输出设备1835等)连接以执行功能。
如本文所使用的,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备以及能够存储、包含或携带指令和/或数据的各种其他介质。计算机可读介质可以包括其中可以存储数据并且不包括无线地或通过有线连接传播的载波和/或暂态电子信号的非暂态介质。非暂态介质的示例可以包括但不限于磁盘或磁带、诸如紧凑盘(CD)或数字多功能盘(DVD)的光学存储介质、闪存、存储器或存储器设备。计算机可读介质可以在其上存储代码和/或机器可执行指令,该代码和/或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类,或者指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一代码段或硬件电路。可以使用任何合适的手段来传递、转发或发送信息、自变量、参数、数据等,包括存储器共享、消息传递、令牌传递、网络发送等。
在某些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的有线或无线信号。然而,当被提及时,非暂态计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号本身的介质。
在以上描述中提供了具体细节以提供对本文提供的实施例和示例的透彻理解。然而,本领域普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。为了解释的清楚,在一些情况下,本技术可以被呈现为包括单独的功能块,这些功能块包括包含设备、设备组件、以软件或者硬件和软件的组合体现的方法中的步骤或例程的功能块。可以使用除了图中所示和/或本文描述的那些之外的附加组件。例如,电路、系统、网络、过程和其他组件可以以框图形式被示为组件,以免在不必要的细节上模糊实施例。在其他实例中,可以在没有不必要的细节的情况下示出众所周知的电路、过程、算法、结构和技术,以免模糊实施例。
上文可以将个别实施例描述为过程或方法,过程或方法被描绘为流程图、流程图表、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但操作中的许多可以被并行或并发地执行。另外,操作的次序可以被重新布置。过程在其操作完成时被终止,但可以有图中未包含的附加步骤。过程可以对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,其终止可以对应于函数返回到调用函数或主函数。
可以使用被存储的或以其他方式从计算机可读介质可用的计算机可执行指令来实现根据上述示例的过程和方法。此类指令可以包括例如导致或以其他方式配置通用计算机、专用计算机或处理设备执行某些功能或功能组的指令和数据。所使用的计算机资源的部分可以通过网络来访问。计算机可执行指令可以是例如二进制、中间格式指令(诸如汇编语言)、固件、源代码等。可以被用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、提供有非易失性存储器的USB设备、网络存储设备、等等。
实现根据这些公开的过程和方法的设备可以包括硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合,并且可以采用各种形状因子中的任何一种。当被实现于软件、固件、中间件或微码中时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可以被存储在计算机可读或机器可读介质中。(多个)处理器可以执行必要的任务。形状因子的典型示例包括膝上型计算机、智能电话、移动电话、平板设备或其他小形状因子的个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能也可以被体现于外围设备或附加卡中。作为进一步的示例,此类功能也可以被实现于不同芯片之间的电路板上或在单个设备中执行的不同过程上。
指令、用于运送此类指令的介质、用于执行它们的计算资源以及用于支持此类计算资源的其他结构是用于提供本公开中描述的功能的示例手段。
在前面的描述中,参考其具体实施例描述了本申请的方面,但是本领域技术人员将认识到本申请不限于此。因此,虽然本文已经详细描述了本申请的说明性实施例,但是应当理解,本发明概念可以用其他方式而被不同地体现和采用,并且所附权利要求旨在被解释为包括除被现有技术限制之外的此类变体。上述申请的各种特征和方面可以被单独或联合使用。此外,实施例可以在超过本文描述的环境和应用的任何数量的环境和应用中被利用,而不背离本说明书的更广泛的精神和范围。相应地,说明书和附图应被认为是说明性而非限制性的。出于说明的目的,方法以特定的次序被描述。应理解,在替代实施例中,方法可以以与所描述的次序不同的次序来被执行。
普通技术人员将理解,本文中使用的小于(“<”)和大于(“>”)的符号或术语可以相应地用小于或等于(“≤”)和大于或等于(“≥”)的符号来代替,而不背离本说明书的范围。
在将组件描述为“被配置为”执行某些操作的情况下,可以例如通过设计电子电路或其他硬件以执行这些操作、通过对可编程电子电路(例如,微处理器或其他合适的电子电路)进行编程以执行这些操作或其任何组合来实现此类配置。
短语“耦合到”是指任何组件直接或间接地物理连接到另一组件,和/或任何组件与另一组件直接或间接地通信(例如,通过有线或无线连接、和/或其他合适的通信接口连接到另一组件)。
表述集合中的“至少一个”或集合中的“一个或多个”的权利要求语言指示集合的一个成员或集合的多个成员(以任何组合)满足权利要求。例如,表述“A和B中的至少一个”的权利要求语言意指A、B或者A和B。在另一示例中,表述“A、B和C中的至少一个”的权利要求语言意指A、B、C,或者A和B,或者A和C,或者B和C,或者A和B和C。语言集合中的“至少一个”和/或集合中的“一个或多个”不将该集合限制为该集合中列出的项。例如,表述“A和B中的至少一个”的权利要求语言可以意指A、B或者A和B,并且可以附加地包括未在A和B的集合中列出的项。
结合本文所公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件、固件或其组合。为清楚地说明硬件与软件的此可互换性,上文已大体上就其功能而言描述了各种说明性组件、块、模块、电路和步骤。此类功能被实现为硬件还是软件取决于特定应用以及施加于整体系统的设计约束。本领域技术人员可以针对每个特定应用以不同方式实现所描述的功能,但不应将此类实现决策解释为致使背离本申请的范围。
本文所描述的技术可以被实现于电子硬件、计算机软件、固件或其任何组合中。此类技术可以被实现于诸如以下各项的各种设备中的任一种中:通用计算机、无线通信设备手持装置,或者具有包括无线通信设备手持装置和其他设备中的应用的多种用途的集成电路设备。被描述为模块或组件的任何特征可以一起被实现于集成逻辑设备中,或者被单独实现为离散但可互操作的逻辑设备。如果被实现于软件中,则技术可以至少部分由包括程序代码的计算机可读数据存储介质实现,该程序代码包括在被执行时执行上文描述的方法中的一个或多个的指令。计算机可读数据存储介质可以形成计算机程序产品的部分,该计算机程序产品可以包括封装材料。计算机可读介质可以包括存储器或数据存储介质,诸如:诸如同步动态随机存取存储器(SDRAM)的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁性或光学数据存储介质等。该技术附加地或替代地可以至少部分地通过计算机可读通信介质来实现,该计算机可读通信介质以指令或数据结构的形式携带或通信程序代码并且可以由计算机访问、读取和/或执行,诸如传播的信号或波。
程序代码可以由处理器执行,处理器可以包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效的集成或离散逻辑电路。此类处理器可以被配置为执行本公开中描述的技术中的任一个。通用处理器可以是微处理器,但在替代情况下,该处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、与DSP核结合的一个或多个微处理器、或任何其他此类配置。相应地,如本文中所使用的术语“处理器”可以指前述结构中的任一个、前述结构的任何组合、或者适于实现本文中描述的技术的任何其他结构或装置。另外,在一些方面中,本文中所描述的功能可以在被配置用于编码和解码的专用软件模块或硬件模块内被提供,或被并入组合视频编码器-解码器(编解码器)中。
权利要求书(按照条约第19条的修改)
1.一种用于处理图像数据的装置,所述装置包括:
一个或多个存储器单元,其存储指令;以及
一个或多个处理器,其执行所述指令,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
接收由第一相机捕获的环境的第一图像,所述第一相机响应于第一光谱;
接收由第二相机捕获的所述环境的第二图像,所述第二相机响应于第二光谱;
标识所述环境的特征被描绘于所述第一图像和所述第二图像两者中;
基于所述第一图像中的所述特征的第一描绘和所述第二图像中的所述特征的第二描绘来确定所述特征的坐标集合;以及
基于针对所述特征的所述坐标集合来更新所述环境的地图。
2.如权利要求1所述的装置,其中所述装置是移动手持装置、头戴式显示器(HMD)、车辆和机器人中的至少一个。
3.如权利要求1所述的装置,其中所述装置包括所述第一相机和所述第二相机中的至少一个。
4.如权利要求1所述的装置,其中所述第一光谱是可见光(VL)光谱的至少部分,并且所述第二光谱与所述VL光谱不同。
5.如权利要求1所述的装置,其中所述第二光谱是红外(IR)光谱的至少部分,并且所述第一光谱与所述IR光谱不同。
6.如权利要求1所述的装置,其中所述特征的所述坐标集合包括对应于三个空间维度的三个坐标。
7.如权利要求1所述的装置,其中所述第一相机在所述装置处于第一位置中时捕获所述第一图像,并且其中所述第二相机在所述装置处于所述第一位置中时捕获所述第二图像。
8.如权利要求7所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于针对所述特征的所述坐标集合来确定所述装置的所述第一位置在所述环境内的坐标集合。
9.如权利要求7所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于针对所述特征的所述坐标集合来确定在所述装置处于所述第一位置中时所述装置的姿势,其中所述装置的所述姿势包括所述装置的俯仰、所述装置的滚动以及所述装置的偏航中的至少一个。
10.如权利要求7所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识所述装置已从所述第一位置移动到第二位置;
接收由所述第二相机在所述装置处于所述第二位置中时捕获的所述环境的第三图像;
标识所述环境的所述特征被描绘于所述第三图像和来自所述第一相机的第四图像中的至少一个中;以及
基于所述特征在所述第三图像和所述第四图像中的至少一个中的一个或多个描绘来跟踪所述特征。
11.如权利要求10所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于跟踪所述特征来确定所述装置的所述第二位置在所述环境内的坐标集合。
12.如权利要求10所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于跟踪所述特征来确定在所述装置处于所述第二位置中时所述装置的姿势,其中所述装置的所述姿势包括所述装置的俯仰、所述装置的滚动以及所述装置的偏航中的至少一个。
13.如权利要求10所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
通过基于跟踪所述特征更新所述环境中的所述特征的所述坐标集合来生成所述环境中的所述特征的经更新坐标集合;以及
基于所述特征的所述经更新坐标集合来更新所述环境的所述地图。
14.如权利要求10所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识当所述装置处于所述第二位置中时所述环境的照明水平高于最小照明阈值;以及
接收由所述第一相机在所述装置处于所述第二位置中时捕获的所述环境的所述第四图像,其中跟踪所述特征基于所述第三图像中的所述特征的第三描绘和所述第四图像中的所述特征的第四描绘。
15.如权利要求10所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识当所述装置处于所述第二位置中时所述环境的照明水平低于最小照明阈值,其中跟踪所述特征基于所述第三图像中的所述特征的第三描绘。
16.如权利要求10所述的装置,其中跟踪所述特征还基于所述特征的所述坐标集合、所述第一图像中的所述特征的所述第一描绘、和所述第二图像中的所述特征的所述第二描绘中的至少一个。
17.如权利要求7所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识所述装置已从所述第一位置移动到第二位置;
接收由所述第二相机在所述装置处于所述第二位置中时捕获的所述环境的第三图像;
标识所述环境的第二特征被描绘于所述第三图像和来自所述第一相机的第四图像中的至少一个中;
基于所述第二特征在所述第三图像和所述第四图像中的至少一个中的一个或多个描绘来确定针对所述第二特征的第二坐标集合;以及
基于针对所述第二特征的所述第二坐标集合来更新所述环境的所述地图。
18.如权利要求17所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于更新所述地图来确定所述装置的所述第二位置在所述环境内的坐标集合。
19.如权利要求17所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于更新所述地图来确定在所述装置处于所述第二位置中时所述装置的姿势,其中所述装置的所述姿势包括所述装置的俯仰、所述装置的滚动以及所述装置的偏航中的至少一个。
20.如权利要求17所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识当所述装置处于所述第二位置中时所述环境的照明水平高于最小照明阈值;以及
接收由所述第一相机在所述装置处于所述第二位置中时捕获的所述环境的所述第四图像,其中确定所述第二特征的所述第二坐标集合基于所述第三图像中的所述第二特征的第一描绘和所述第四图像中的所述第二特征的第二描绘。
21.如权利要求17所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识当所述装置处于所述第二位置中时所述环境的照明水平低于最小照明阈值,其中确定针对所述第二特征的所述第二坐标集合基于所述第三图像中的所述第二特征的第一描绘。
22.如权利要求1所述的装置,其中确定针对所述特征的所述坐标集合包括确定对应于所述第一图像的针对所述特征的第一坐标集合与对应于所述第二图像的针对所述特征的第二坐标集合之间的变换。
23.如权利要求1所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
在更新所述环境的所述地图之前生成所述环境的所述地图。
24.如权利要求1所述的装置,其中基于针对所述特征的所述坐标集合来更新所述环境的所述地图包括向所述地图添加新的地图区域,所述新的地图区域包括针对所述特征的所述坐标集合。
25.如权利要求1所述的装置,其中基于针对所述特征的所述坐标集合来更新所述环境的所述地图包括修订所述地图的地图区域,所述地图区域包括针对所述特征的所述坐标集合。
26.如权利要求1所述的装置,其中所述特征是边缘和角中的至少一个。
27.一种处理图像数据的方法,所述方法包括:
接收由第一相机捕获的环境的第一图像,所述第一相机响应于第一光谱;
接收由第二相机捕获的所述环境的第二图像,所述第二相机响应于第二光谱;
标识所述环境的特征被描绘于所述第一图像和所述第二图像两者中;
基于所述第一图像中的所述特征的第一描绘和所述第二图像中的所述特征的第二描绘来确定所述特征的坐标集合;以及
基于针对所述特征的所述坐标集合来更新所述环境的地图。
28.如权利要求27所述的方法,其中所述第一光谱是可见光(VL)光谱的至少部分,并且所述第二光谱与所述VL光谱不同。
29.如权利要求27所述的方法,其中所述第二光谱是红外(IR)光谱的至少部分,并且所述第一光谱与所述IR光谱不同。
30.如权利要求27所述的方法,其中所述特征的所述坐标集合包括对应于三个空间维度的三个坐标。
31.如权利要求27所述的方法,其中设备包括所述第一相机和所述第二相机,其中所述第一相机在所述设备处于第一位置中时捕获所述第一图像,并且其中所述第二相机在所述设备处于所述第一位置中时捕获所述第二图像。
32.如权利要求31所述的方法,还包括:
基于针对所述特征的所述坐标集合来确定所述设备的所述第一位置在所述环境内的坐标集合。
33.如权利要求31所述的方法,还包括:
基于针对所述特征的所述坐标集合来确定在所述设备处于所述第一位置中时所述设备的姿势,其中所述设备的所述姿势包括所述设备的俯仰、所述设备的滚动以及所述设备的偏航中的至少一个。
34.如权利要求31所述的方法,还包括:
标识所述设备已从所述第一位置移动到第二位置;
接收由所述第二相机在所述设备处于所述第二位置中时捕获的所述环境的第三图像;
标识所述环境的所述特征被描绘于所述第三图像和来自所述第一相机的第四图像中的至少一个中;以及
基于所述特征在所述第三图像和所述第四图像中的至少一个中的一个或多个描绘来跟踪所述特征。
35.如权利要求31所述的方法,还包括:
标识所述设备已从所述第一位置移动到第二位置;
接收由所述第二相机在所述设备处于所述第二位置中时捕获的所述环境的第三图像;
标识所述环境的第二特征被描绘于所述第三图像和来自所述第一相机的第四图像中的至少一个中;
基于所述第二特征在所述第三图像和所述第四图像中的至少一个中的一个或多个描绘来确定针对所述第二特征的第二坐标集合;以及
基于针对所述第二特征的所述第二坐标集合来更新所述环境的所述地图。

Claims (53)

1.一种用于处理图像数据的装置,所述装置包括:
一个或多个存储器单元,其存储指令;以及
一个或多个处理器,其执行所述指令,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
接收由第一相机捕获的环境的第一图像,所述第一相机响应于第一光谱;
接收由第二相机捕获的所述环境的第二图像,所述第二相机响应于第二光谱;
标识所述环境的特征被描绘于所述第一图像和所述第二图像两者中;
基于所述第一图像中的所述特征的第一描绘和所述第二图像中的所述特征的第二描绘来确定所述特征的坐标集合;以及
基于针对所述特征的所述坐标集合来更新所述环境的地图。
2.如权利要求1所述的装置,其中所述装置是移动手持装置、头戴式显示器(HMD)、车辆和机器人中的至少一个。
3.如权利要求1所述的装置,其中所述装置包括所述第一相机和所述第二相机中的至少一个。
4.如权利要求1所述的装置,其中所述第一光谱是可见光(VL)光谱的至少部分,并且所述第二光谱与所述VL光谱不同。
5.如权利要求1所述的装置,其中所述第二光谱是红外(IR)光谱的至少部分,并且所述第一光谱与所述IR光谱不同。
6.如权利要求1所述的装置,其中所述特征的所述坐标集合包括对应于三个空间维度的三个坐标。
7.如权利要求1所述的装置,其中所述第一相机在所述装置处于第一位置中时捕获所述第一图像,并且其中所述第二相机在所述装置处于所述第一位置中时捕获所述第二图像。
8.如权利要求7所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于针对所述特征的所述坐标集合来确定所述装置的所述第一位置在所述环境内的坐标集合。
9.如权利要求7所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于针对所述特征的所述坐标集合来确定在所述装置处于所述第一位置中时所述装置的姿势,其中所述装置的所述姿势包括所述装置的俯仰、所述装置的滚动以及所述装置的偏航中的至少一个。
10.如权利要求7所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识所述装置已从所述第一位置移动到第二位置;
接收由所述第二相机在所述装置处于所述第二位置中时捕获的所述环境的第三图像;
标识所述环境的所述特征被描绘于所述第三图像和来自所述第一相机的第四图像中的至少一个中;以及
基于所述特征在所述第三图像和所述第四图像中的至少一个中的一个或多个描绘来跟踪所述特征。
11.如权利要求10所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于跟踪所述特征来确定所述装置的所述第二位置在所述环境内的坐标集合。
12.如权利要求10所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于跟踪所述特征来确定在所述装置处于所述第二位置中时所述装置的姿势,其中所述装置的所述姿势包括所述装置的俯仰、所述装置的滚动以及所述装置的偏航中的至少一个。
13.如权利要求10所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
通过基于跟踪所述特征更新所述环境中的所述特征的所述坐标集合来生成所述环境中的所述特征的经更新坐标集合;以及
基于所述特征的所述经更新坐标集合来更新所述环境的所述地图。
14.如权利要求10所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识当所述装置处于所述第二位置中时所述环境的照明水平高于最小照明阈值;以及
接收由所述第一相机在所述装置处于所述第二位置中时捕获的所述环境的所述第四图像,其中跟踪所述特征基于所述第三图像中的所述特征的第三描绘和所述第四图像中的所述特征的第四描绘。
15.如权利要求10所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识当所述装置处于所述第二位置中时所述环境的照明水平低于最小照明阈值,其中跟踪所述特征基于所述第三图像中的所述特征的第三描绘。
16.如权利要求10所述的装置,其中跟踪所述特征还基于所述特征的所述坐标集合、所述第一图像中的所述特征的所述第一描绘、和所述第二图像中的所述特征的所述第二描绘中的至少一个。
17.如权利要求7所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识所述装置已从所述第一位置移动到第二位置;
接收由所述第二相机在所述装置处于所述第二位置中时捕获的所述环境的第三图像;
标识所述环境的第二特征被描绘于所述第三图像和来自所述第一相机的第四图像中的至少一个中;
基于所述第二特征在所述第三图像和所述第四图像中的至少一个中的一个或多个描绘来确定针对所述第二特征的第二坐标集合;以及
基于针对所述第二特征的所述第二坐标集合来更新所述环境的所述地图。
18.如权利要求17所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于更新所述地图来确定所述装置的所述第二位置在所述环境内的坐标集合。
19.如权利要求17所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
基于更新所述地图来确定在所述装置处于所述第二位置中时所述装置的姿势,其中所述装置的所述姿势包括所述装置的俯仰、所述装置的滚动以及所述装置的偏航中的至少一个。
20.如权利要求17所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识当所述装置处于所述第二位置中时所述环境的照明水平高于最小照明阈值;以及
接收由所述第一相机在所述装置处于所述第二位置中时捕获的所述环境的所述第四图像,其中确定所述第二特征的所述第二坐标集合基于所述第三图像中的所述第二特征的第一描绘和所述第四图像中的所述第二特征的第二描绘。
21.如权利要求17所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
标识当所述装置处于所述第二位置中时所述环境的照明水平低于最小照明阈值,其中确定针对所述第二特征的所述第二坐标集合基于所述第三图像中的所述第二特征的第一描绘。
22.如权利要求1所述的装置,其中确定针对所述特征的所述坐标集合包括确定对应于所述第一图像的针对所述特征的第一坐标集合与对应于所述第二图像的针对所述特征的第二坐标集合之间的变换。
23.如权利要求1所述的装置,其中所述一个或多个处理器对所述指令的执行致使所述一个或多个处理器:
在更新所述环境的所述地图之前生成所述环境的所述地图。
24.如权利要求1所述的装置,其中基于针对所述特征的所述坐标集合来更新所述环境的所述地图包括向所述地图添加新的地图区域,所述新的地图区域包括针对所述特征的所述坐标集合。
25.如权利要求1所述的装置,其中基于针对所述特征的所述坐标集合来更新所述环境的所述地图包括修订所述地图的地图区域,所述地图区域包括针对所述特征的所述坐标集合。
26.如权利要求1所述的装置,其中所述特征是边缘和角中的至少一个。
27.一种处理图像数据的方法,所述方法包括:
接收由第一相机捕获的环境的第一图像,所述第一相机响应于第一光谱;
接收由第二相机捕获的所述环境的第二图像,所述第二相机响应于第二光谱;
标识所述环境的特征被描绘于所述第一图像和所述第二图像两者中;
基于所述第一图像中的所述特征的第一描绘和所述第二图像中的所述特征的第二描绘来确定所述特征的坐标集合;以及
基于针对所述特征的所述坐标集合来更新所述环境的地图。
28.如权利要求27所述的方法,其中所述第一光谱是可见光(VL)光谱的至少部分,并且所述第二光谱与所述VL光谱不同。
29.如权利要求27所述的方法,其中所述第二光谱是红外(IR)光谱的至少部分,并且所述第一光谱与所述IR光谱不同。
30.如权利要求27所述的方法,其中所述特征的所述坐标集合包括对应于三个空间维度的三个坐标。
31.如权利要求27所述的方法,其中设备包括所述第一相机和所述第二相机。
32.如权利要求31所述的方法,其中所述设备是移动手持装置、头戴式显示器(HMD)、车辆和机器人中的至少一个。
33.如权利要求31所述的方法,其中所述第一相机在所述设备处于第一位置中时捕获所述第一图像,并且其中所述第二相机在所述设备处于所述第一位置中时捕获所述第二图像。
34.如权利要求33所述的方法,还包括:
基于针对所述特征的所述坐标集合来确定所述设备的所述第一位置在所述环境内的坐标集合。
35.如权利要求33所述的方法,还包括:
基于针对所述特征的所述坐标集合来确定在所述设备处于所述第一位置中时所述设备的姿势,其中所述设备的所述姿势包括所述设备的俯仰、所述设备的滚动以及所述设备的偏航中的至少一个。
36.如权利要求33所述的方法,还包括:
标识所述设备已从所述第一位置移动到第二位置;
接收由所述第二相机在所述设备处于所述第二位置中时捕获的所述环境的第三图像;
标识所述环境的所述特征被描绘于所述第三图像和来自所述第一相机的第四图像中的至少一个中;以及
基于所述特征在所述第三图像和所述第四图像中的至少一个中的一个或多个描绘来跟踪所述特征。
37.如权利要求36所述的方法,还包括:
基于跟踪所述特征来确定所述设备的所述第二位置在所述环境内的坐标集合。
38.如权利要求36所述的方法,还包括:
基于跟踪所述特征来确定在所述设备处于所述第二位置中时所述设备的姿势,其中所述设备的所述姿势包括所述设备的俯仰、所述设备的滚动以及所述设备的偏航中的至少一个。
39.如权利要求36所述的方法,还包括:
通过基于跟踪所述特征更新所述环境中的所述特征的所述坐标集合来生成所述环境中的所述特征的经更新坐标集合;以及
基于所述特征的所述经更新坐标集合来更新所述环境的所述地图。
40.如权利要求36所述的方法,还包括:
标识当所述设备处于所述第二位置中时所述环境的照明水平高于最小照明阈值;以及
接收由所述第一相机在所述设备处于所述第二位置中时捕获的所述环境的所述第四图像,其中跟踪所述特征基于所述第三图像中的所述特征的第三描绘和所述第四图像中的所述特征的第四描绘。
41.如权利要求36所述的方法,还包括:
标识当所述设备处于所述第二位置中时所述环境的照明水平低于最小照明阈值,其中跟踪所述特征基于所述第三图像中的所述特征的第三描绘。
42.如权利要求36所述的方法,其中跟踪所述特征还基于所述特征的所述坐标集合、所述第一图像中的所述特征的所述第一描绘、和所述第二图像中的所述特征的所述第二描绘中的至少一个。
43.如权利要求33所述的方法,还包括:
标识所述设备已从所述第一位置移动到第二位置;
接收由所述第二相机在所述设备处于所述第二位置中时捕获的所述环境的第三图像;
标识所述环境的第二特征被描绘于所述第三图像和来自所述第一相机的第四图像中的至少一个中;
基于所述第二特征在所述第三图像和所述第四图像中的至少一个中的一个或多个描绘来确定针对所述第二特征的第二坐标集合;以及
基于针对所述第二特征的所述第二坐标集合来更新所述环境的所述地图。
44.如权利要求43所述的方法,还包括:
基于更新所述地图来确定所述设备的所述第二位置在所述环境内的坐标集合。
45.如权利要求43所述的方法,还包括:
基于更新所述地图来确定在所述设备处于所述第二位置中时所述设备的姿势,其中所述设备的所述姿势包括所述设备的俯仰、所述设备的滚动以及所述设备的偏航中的至少一个。
46.如权利要求43所述的方法,还包括:
标识当所述设备处于所述第二位置中时所述环境的照明水平高于最小照明阈值;以及
接收由所述第一相机在所述设备处于所述第二位置中时捕获的所述环境的所述第四图像,其中确定所述第二特征的所述第二坐标集合基于所述第三图像中的所述第二特征的第一描绘和所述第四图像中的所述第二特征的第二描绘。
47.如权利要求43所述的方法,还包括:
标识当所述设备处于所述第二位置中时所述环境的照明水平低于最小照明阈值,其中确定针对所述第二特征的所述第二坐标集合基于所述第三图像中的所述第二特征的第一描绘。
48.如权利要求27所述的方法,其中确定针对所述特征的所述坐标集合包括确定对应于所述第一图像的针对所述特征的第一坐标集合与对应于所述第二图像的针对所述特征的第二坐标集合之间的变换。
49.如权利要求27所述的方法,还包括:
在更新所述环境的所述地图之前生成所述环境的所述地图。
50.如权利要求27所述的方法,其中基于针对所述特征的所述坐标集合来更新所述环境的所述地图包括向所述地图添加新的地图区域,所述新的地图区域包括针对所述特征的所述坐标集合。
51.如权利要求27所述的方法,其中基于针对所述特征的所述坐标集合来更新所述环境的所述地图包括修订所述地图的地图区域,所述地图区域包括针对所述特征的所述坐标集合。
52.如权利要求27所述的方法,其中所述特征是边缘和角中的至少一个。
53.一种其上具有程序的非暂态计算机可读存储介质,其中所述程序能由处理器执行以执行处理图像数据的方法,所述方法包括:
接收由第一相机捕获的环境的第一图像,所述第一相机响应于第一光谱;
接收由第二相机捕获的所述环境的第二图像,所述第二相机响应于第二光谱;
标识所述环境的特征被描绘于所述第一图像和所述第二图像两者中;
基于所述第一图像中的所述特征的第一描绘和所述第二图像中的所述特征的第二描绘来确定所述特征的坐标集合;以及
基于针对所述特征的所述坐标集合来更新所述环境的地图。
CN202080105593.1A 2020-10-01 2020-10-01 使用捕获多个光谱的相机的同时定位和建图 Pending CN116529767A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/119769 WO2022067836A1 (en) 2020-10-01 2020-10-01 Simultaneous localization and mapping using cameras capturing multiple spectra of light

Publications (1)

Publication Number Publication Date
CN116529767A true CN116529767A (zh) 2023-08-01

Family

ID=80951177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080105593.1A Pending CN116529767A (zh) 2020-10-01 2020-10-01 使用捕获多个光谱的相机的同时定位和建图

Country Status (6)

Country Link
US (1) US20230177712A1 (zh)
EP (1) EP4222702A4 (zh)
KR (1) KR20230078675A (zh)
CN (1) CN116529767A (zh)
BR (1) BR112023005103A2 (zh)
WO (1) WO2022067836A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112348893B (zh) * 2020-10-30 2021-11-19 珠海一微半导体股份有限公司 一种局部点云地图构建方法及视觉机器人

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016050290A1 (en) * 2014-10-01 2016-04-07 Metaio Gmbh Method and system for determining at least one property related to at least part of a real environment
US20170374342A1 (en) * 2016-06-24 2017-12-28 Isee, Inc. Laser-enhanced visual simultaneous localization and mapping (slam) for mobile devices
US10572002B2 (en) * 2018-03-13 2020-02-25 Facebook Technologies, Llc Distributed artificial reality system with contextualized hand tracking
US10728518B2 (en) * 2018-03-22 2020-07-28 Microsoft Technology Licensing, Llc Movement detection in low light environments
US10948297B2 (en) * 2018-07-09 2021-03-16 Samsung Electronics Co., Ltd. Simultaneous location and mapping (SLAM) using dual event cameras
WO2020024603A1 (zh) * 2018-08-01 2020-02-06 Oppo广东移动通信有限公司 图像处理方法和装置、电子设备、计算机可读存储介质

Also Published As

Publication number Publication date
KR20230078675A (ko) 2023-06-02
EP4222702A4 (en) 2024-07-03
EP4222702A1 (en) 2023-08-09
BR112023005103A2 (pt) 2023-04-18
WO2022067836A1 (en) 2022-04-07
US20230177712A1 (en) 2023-06-08

Similar Documents

Publication Publication Date Title
US11500536B2 (en) Neural network system for gesture, wear, activity, or carry detection on a wearable or mobile device
US10755425B2 (en) Automatic tuning of image signal processors using reference images in image processing environments
US11727576B2 (en) Object segmentation and feature tracking
US11600039B2 (en) Mechanism for improved light estimation
US20240112404A1 (en) Image modification techniques
US11598976B1 (en) Object recognition for improving interfaces on an eyewear device and other wearable and mobile devices
WO2022067836A1 (en) Simultaneous localization and mapping using cameras capturing multiple spectra of light
US11769258B2 (en) Feature processing in extended reality systems
US11800242B2 (en) Low-power fusion for negative shutter lag capture
US20240153245A1 (en) Hybrid system for feature detection and descriptor generation
US20230095621A1 (en) Keypoint detection and feature descriptor computation
US20240177329A1 (en) Scaling for depth estimation
US20240096049A1 (en) Exposure control based on scene depth
WO2024112458A1 (en) Scaling for depth estimation
WO2024097469A1 (en) Hybrid system for feature detection and descriptor generation
US20230281835A1 (en) Wide angle eye tracking
US20240161418A1 (en) Augmented reality enhanced media
US20240193873A1 (en) Independent scene movement based on mask layers
WO2024118233A1 (en) Dynamic camera selection and switching for multi-camera pose estimation
US11871107B2 (en) Automatic camera selection
US20240013351A1 (en) Removal of objects from images
WO2024107554A1 (en) Augmented reality enhanced media
WO2024064548A2 (en) Systems and methods of image reprojection

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