CN114051626A - 联合环境重建和相机校准 - Google Patents

联合环境重建和相机校准 Download PDF

Info

Publication number
CN114051626A
CN114051626A CN202080047325.9A CN202080047325A CN114051626A CN 114051626 A CN114051626 A CN 114051626A CN 202080047325 A CN202080047325 A CN 202080047325A CN 114051626 A CN114051626 A CN 114051626A
Authority
CN
China
Prior art keywords
observations
environment
camera
model
poses
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
CN202080047325.9A
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.)
Meta Platforms Technologies LLC
Original Assignee
Facebook Technologies LLC
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 Facebook Technologies LLC filed Critical Facebook Technologies LLC
Publication of CN114051626A publication Critical patent/CN114051626A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO 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
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/497Means for monitoring or calibrating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
    • 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

Abstract

在一个实施例中,一种方法包括访问相机装备的校准模型。该方法包括访问通过相机装备根据在环境中的多个姿态捕获的环境的多个观测结果。该方法包括至少基于观测结果、姿态和校准模型生成包括环境的几何结构的环境模型。该方法包括针对一个或更多个姿态,基于环境模型和姿态确定环境的一个或更多个预测的观测结果。该方法包括将预测的观测结果与对应于从其确定预测的观测结果的姿态的观测结果进行比较。该方法包括基于比较修正校准模型。该方法包括至少基于环境的一组观测结果和修正的校准模型来修正环境模型。

Description

联合环境重建和相机校准
技术领域
本公开总体上涉及相机校准。
背景
为了确保准确性,相机通常在它们被用于捕获计算机视觉和相关应用中使用的测量值或其他数据之前进行校准。不准确的测量,无论误差来源如何,都可能在依赖基本测量的应用中加剧和造成严重误差。随着计算机视觉应用越来越复杂,测量误差加剧的机会也越来越多。许多相机校准方法通常需要特殊的配置设备、特殊配置的环境或环境中的特殊几何结构。许多方法还消耗大量的时间和计算资源,增加了频繁执行校准所造成的负担,尽管先前的校准很大可能由于处理不当、环境变化和设备退化而变得不准确。相机校准技术可以用于具有数字输出的许多类型的相机。
移动计算设备(例如智能手机、平板计算机或膝上型计算机)可以包括用于确定它的位置、方向或定向的功能,例如GPS接收器、罗盘、陀螺仪或加速度计。这种设备还可以包括用于无线通信(例如蓝牙通信、近场通信(NFC)、或红外(IR)通信、或与无线局域网(WLAN)或蜂窝电话网络的通信)的功能。这种设备还可以包括一个或更多个相机、扫描仪、触摸屏、麦克风或扬声器。移动计算设备还可以执行软件应用,例如游戏、web浏览器或社交网络应用。使用社交网络应用,用户可以与他们的社交网络中的其他用户关连(connect)、通信和分享信息。
特定实施例的概述
在特定实施例中,一种用于由与相机装备(camera rig)相关联的计算设备进行联合环境重建和相机校准的方法包括访问相机装备的校准模型。初始校准模型可以例如通过作为制造商过程的一部分的标准校准程序来预先确定。该方法可以包括访问通过相机装备根据在环境中的多个姿态(pose)捕获的环境的第一多个观测结果(observations)。当捕获环境的观测结果时,也可以捕获关于相机装备的姿态的信息。在特定实施例中,环境的观测结果可以包括基于对投射到环境中的结构光图案的检测的(例如,从深度相机生成的)深度图。
在特定实施例中,该方法可以包括至少基于第一多个观测结果、多个姿态和校准模型生成包括环境几何结构的环境模型。校准模型可用于基于姿态解释观测结果。环境模型可以包括通过融合环境的多个估计形成的环境的数字重建,其中环境的每个估计可以来自单个观测结果和姿态配对。
该方法可以包括针对多个姿态中的一个或更多个姿态,基于环境模型和一个或更多个姿态确定环境的一个或更多个预测的观测结果。可以通过基于收集的姿态(例如,通过环境模型)创建环境的模拟观测结果来生成预测的观测结果。该方法可以包括将一个或更多个预测的观测结果与对应于从其确定一个或更多个预测的观测结果的一个或更多个姿态的第一观测结果中的一个或更多个第一观测结果进行比较。该比较可以包括确定预测的观测结果和捕获的观测结果之间的任何差异。相机校准模型可以例如基于比较(例如基于比较的结果)来被修正。该方法可以包括至少基于环境的第二多个观测结果和修正的校准模型来修正环境模型。该过程可以继续,在基于新捕获的观测结果修正环境模型和基于修正的环境模型修正相机校准模型之间交替。
本发明的实施例可以包括人工现实系统或者结合人工现实系统来实现。人工现实是一种在呈现给用户之前已经以某种方式进行了调整的现实形式,其可以包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混杂现实或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,并且它们中的任何一个都可以在单个通道或多个通道中呈现(例如向观看者产生三维效果的立体视频)。另外,在一些实施例中,人工现实可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合例如用于在人工现实中创建内容和/或在人工现实中被使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(HMD)、独立的HMD、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。
本文公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括本文公开的实施例的部件、元件、特征、功能、操作或步骤中的全部、一些,或不包括这些部件、元件、特征、功能、操作或步骤。根据本发明的实施例在所附权利要求中具体公开,涉及方法、存储介质、系统和计算机程序产品,其中在一个权利要求类别(例如方法)中提到的任何特征,也可以在另一个权利要求类别(例如系统)中要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何先前权利要求的有意往回引用(特别是多个从属关系)而产生的任何主题,从而权利要求及其特征的任何组合被公开并且可以被要求保护,而不管所附权利要求中选择的从属关系如何。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。
提供了一种方法,包括由计算设备:
访问相机装备的校准模型;
访问通过相机装备根据在环境中的多个姿态捕获的环境的第一多个观测结果;
至少基于第一多个观测结果、多个姿态和校准模型,生成包括环境的几何结构的环境模型;
针对多个姿态中的一个或更多个姿态,基于环境模型和一个或更多个姿态确定环境的一个或更多个预测的观测结果;
将所述一个或更多个预测的观测结果与对应于从其确定一个或更多个预测的观测结果的一个或更多个姿态的第一观测结果中的一个或更多个第一观测结果进行比较;
基于比较修正校准模型;和
至少基于环境的第二多个观测结果和修正的校准模型来修正环境模型。
该方法还可以包括通过以下操作捕获环境的第一多个观测结果:
由相机装备将结构光图案投射到环境中;
由相机装备的相机检测环境中投射的结构光图案;和
将检测到的结构光图案与模板结构光图案进行比较。
该方法还可以包括通过以下方式捕获环境的第一多个观测结果:
由相机装备将包括多个点的结构光图案投射到环境中;
由相机装备的相机检测环境中的结构光图案的一个或更多个点;
识别检测到的点中的每一个;和
对于每个识别的点,将识别的点的位置与结构光图案中该识别的点的相应预期方位(bearing)进行比较。
该方法还可以包括:
通过从相机装备的定位系统接收相机装备的姿态来捕获相机装备的从其捕获每个第一观测结果的姿态。
该方法还可以包括:
基于来自相机装备的运动传感器(motion sensor)的输出来初始化相机装备的定位系统。
该方法还可以包括:
通过至少基于观测结果和校准模型定位相机装备来捕获相机装备的从其捕获每个观测结果的姿态。
至少基于第一多个观测结果、多个姿态和校准模型来生成可以包括环境的几何结构的环境模型包括:
根据每个观测结果和相机装备的从其捕获观测结果的姿态生成环境的几何结构的估计;和
组合从每个观测结果生成的估计,以形成环境模型。
一个或更多个预测的观测结果和第一多个观测结果可以包括结构光图案的点的位置信息;和
将一个或更多个预测的观测结果与对应于从其确定一个或更多个预测的观测结果的一个或更多个姿态的第一观测结果中的一个或更多个第一观测结果进行比较可以包括,将每个预测的观测结果的位置信息与相应对应的第一观测结果的位置信息进行比较。
相机装备的校准模型包括:
相机装备的相机的固有参数;
相机装备的发射器的固有参数;
用于执行相机装备在环境中的定位的参数;或者
与相机装备的相机和发射器之间的关系相关联的参数。
基于比较修正校准模型可以包括:
修改校准模型的参数中的一个或更多个,以最小化一个或更多个预测的观测结果与对应于从其确定一个或更多个预测的观测结果的一个或更多个姿态的第一观测结果中的一个或更多个第一观测结果之间的差异。
或者,基于该比较修正校准模型可以包括:
计算建议的修正的校准模型;
基于该建议的修正的校准模型、通过相机装备根据在环境中的一个或更多个姿态捕获的环境的一个或更多个观测结果,生成环境的几何结构的预测;
将一个或更多个预测的观测结果与一个或更多个第一观测结果的比较结果和几何结构的预测进行比较;和
确定该比较满足修正阈值。
至少基于环境的第二多个观测结果和修正的校准模型修正环境模型可以包括:
根据第二多个观测结果、从其收集观测结果的第二多个姿态以及修正的校准模型生成建议的修正的环境模型;和
比较环境模型和建议的修正的环境模型。
可以响应于从相机装备的移动传感器(movement sensor)接收到相机装备的移动来确定环境的一个或更多个预测的观测结果;或者
响应于从相机装备的移动传感器接收到相机装备的移动,修正环境模型。
该方法还可以包括:
在修正环境模型之前,将接收到的相机装备的移动与至少基于修正的相机校准模型和环境的第二多个观测结果确定的相机装备的移动进行比较。
相机装备的移动传感器可以包括:
加速度计;
陀螺仪;
超声波移动传感器;
磁力计;或者
光学移动传感器。
相机装备的相机可以被配置成检测红外光或紫外光。
相机装备可以被结合到头戴式设备中。
相机装备可以被结合到手持式计算设备中。
还提供了一个或更多个计算机可读非暂时性存储介质,其体现软件,该软件在被执行时可操作来:
访问相机装备的校准模型;
访问通过相机装备根据在环境中的多个姿态捕获的环境的第一多个观测结果;
至少基于第一多个观测结果、多个姿态和校准模型,生成包括环境的几何结构的环境模型;
针对多个姿态中的一个或更多个姿态,基于环境模型和一个或更多个姿态确定环境的一个或更多个预测的观测结果;
将一个或更多个预测的观测结果与对应于从其确定一个或更多个预测的观测结果的一个或更多个姿态的第一观测结果中的一个或更多个第一观测结果进行比较;
基于该比较修正校准模型;和
至少基于环境的第二多个观测结果和修正的校准模型来修正环境模型。
还提供了一种系统,包括:
一个或更多个处理器;和
一个或更多个计算机可读非暂时性存储介质,其耦合到一个或更多个处理器,并且包括指令,该指令当由一个或更多个处理器执行时可操作来使系统:
访问相机装备的校准模型;
访问通过相机装备根据在环境中的多个姿态捕获的环境的第一多个观测结果;
至少基于第一多个观测结果、多个姿态和校准模型,生成包括环境的几何结构的环境模型;
针对多个姿态中的一个或更多个姿态,基于环境模型和一个或更多个姿态确定环境的一个或更多个预测的观测结果;
将一个或更多个预测的观测结果与对应于从其确定一个或更多个预测的观测结果的一个或更多个姿态的第一观测结果中的一个或更多个第一观测结果进行比较;
基于该比较修正校准模型;和
至少基于环境的第二多个观测结果和修正的校准模型来修正环境模型。
应当理解,本文中描述的适于结合到本发明的一个或更多个方面或实施例中的任何特征都旨在可推广到本公开的任何和所有方面和实施例。
附图简述
图1示出了示例深度相机装备。
图2示出了用于校准和重建的示例方法。
图3示出了校准和重建的示例。
图4示出了示例计算机系统。
示例实施例的描述
在特定实施例中,相机装备可以包括允许装备确定相机装备周围环境的几何结构的部件。这些实施例可以包括深度感测相机,或简称为“深度相机”,其被配置为测量相机视场中的对象距相机的距离。深度相机的输出可以包括深度图,该深度图传达图像中各个像素离相机的距离。该每像素深度可以与由相机的另一个传感器(例如,图像传感器)提供的颜色信息合并,以产生具有深度信息的图像。在特定实施例中,深度相机可以提供静态图像或输出实时视频,显示相机视场中的几何结构的深度图。因此,深度相机具有广泛的潜在用途。
在特定实施例中,深度相机的各个帧的输出可用于生成或重建深度相机环境的模型。例如,在“几何融合(geometric fusion)”中,环境的深度信息可以跨帧(或其他输入跨度)合并或“融合”到环境模型中。相机可检测到的对象可以被识别,并且对象的位置被跨帧记录。这可以允许基于该对象随时间的深度的组合(例如,加权平均)来确定该对象或环境的其他被识别的部分(诸如后壁)的深度。在特定应用中,环境模型可以提供比使用(例如来自单个图像的)单个深度图可得的更精确的环境表示。来自多个深度图的像素颜色和每像素深度可用于生成详细的环境模型。所得模型可以是深度相机周围环境的体积重建(volumetric reconstruction)。然而,随着时间的推移,执行精确几何融合的计算要求可能相当高,导致某些实时操作的性能较差。
在特定实施例中,环境模型可以用作在环境中定位深度相机的过程的一部分。在计算机视觉的一个问题中,称为即时定位与地图构建(“SLAM”),目标是广泛地使用来自一个或更多个传感器的传感器数据来确定代理周围环境的地图和代理在环境中的位置。例如,来自相机的图像数据随时间的共性可以用来解决SLAM问题。在特定实施例中,环境模型可以用于比其他解决方案更有效地(在速度和计算资源方面)和更准确地定位深度相机。例如,从相机接收的图像数据可以与环境模型进行比较,以确定相机相对于环境的姿态。来自深度相机的深度信息也可以用于增强该过程,允许系统效率更高地解决模糊性(例如,比例、投影等)。在一些实施例中,姿态可以用世界坐标系来表示,例如,将相机放置在环境中。在一些实施例中,姿态可以用相机坐标系来表示,例如,放置相机环境的对象。在其环境中定位深度相机有多种应用。提高定位过程的速度进一步开放了用途,以包括各种领域中的实时应用,例如制造(例如,产品的设计或测试)、娱乐和生产力(例如,用于人工现实应用的头戴式设备或用于内部地图构建(internal mapping)的头戴式设备)、自主操作、辅助生活(assisted living)(例如,向视力或听力受损的人提供关于环境的信息)以及许多其他领域。
与许多计算机视觉相关技术一样,深度相机部件的校准可能会影响环境模型的准确性。在一些实施例中,可以使用高度专业化的设备来执行校准,以尝试为深度相机生成精确的校准模型。例如,制造商或质量保证提供商可以使用检查设备来确定深度相机是否表现出制造缺陷或异常。类似地,自动化技术可能依赖于精心构建的校准环境,该校准环境可能包括专门的校准目标和精确测量的距离。使用由深度相机检测到的深度信息与基准真相值(ground truth value)(例如,校准环境的已知值)进行比较,可以对深度相机的校准模型进行校正。在典型的使用情况下,一旦深度相机已经被校准,那么它可以被终端用户使用。
环境模型的质量可能受到将深度相机的校准与实际使用分开的实际必要性的限制。在特定实施例中,校准参数可以随时间变化,在某些情况下是可预测的,但通常是出乎意料的。例如,由于所使用的校准的精确性质,自然发生的环境因素,甚至是不明显的因素,可能会影响深度相机校准模型。环境热量或压力的变化可能会给相机校准带来不规则性。作为另一个例子,如果深度相机应用需要移动相机,例如如果它被结合到头戴式显示器或手持式设备中,则用户的正常移动可能引入不规则性。此外,深度相机可能会遭受到意外的压力,例如震动(例如,运输或使用过程中的跌落和推挤),遭受到极端温度、篡改或其他恶意活动或各种其他情况。在精确校准是高优先级的应用中,例如在高性能设备或实时操作中使用,在深度相机可以被带到校准专家那里之前,或者在它经历耗时的校准程序之前,深度相机可能会变得不可用。
在特定实施例中,联合深度相机校准和环境重建程序可以显著提高重建质量,同时减少甚至消除对额外校准目标或定制环境的需要。此外,在特定实施例中,联合程序的计算效率可以允许校准作为后台操作发生,其中校准在系统的非校准使用期间随着时间的推移发生。联合校准和重建程序可以分解成两个相关的估计问题,可以在交替的迭代过程中求解这两个问题。在第一步骤中,可以访问或估计深度相机的校准模型。例如,可以使用标称制造校准参数。作为另一个例子,校准可以作为制造过程的一部分来执行。使用先验校准,可以估计深度相机周围环境的几何结构。如在本公开中详细描述的,环境估计可以基于校准模型和深度测量、姿态或由深度相机在指定时间范围(time frame)中的各个点收集的其他传感器数据。作为一个例子,姿态可以由相机装备确定或用其SLAM子系统确定。作为另一个例子,姿态可以基于相机装备的一个或更多个移动传感器来确定。环境几何结构的多个单独估计可以被组合到环境模型的第一次迭代中,例如使用几何融合。在第二步骤中,环境模型然后可以用于更新深度相机校准。来自第一步骤的姿态和环境模型可以用于生成环境的预测。可以将预测与来自第一步骤的与每个给定姿态相关联的相机深度或图像计算进行比较。预测和捕获的数据之间的差异可以被解释为误差。可以通过修正相机校准模型来校正误差。在该描述的技术中,深度测量可以被解释为用于深度相机的校准参数的函数。现在将参考本公开的附图更详细地解释相机校准模型、环境模型以及联合深度相机校准和环境重建程序。
图1示出了装备中的示例深度相机100。示例深度相机100包括两个部件:相机110和发射器120。发射器120可以将结构光图案投射到深度相机100周围的环境中。发射器120可以产生光图案,该光图案通过一个或更多个衍射光学元件125投射,这可以导致光图案在环境中扩散。光图案可以包括照射(strike)环境中的表面135的多条光线130a。从表面135反射的光线130b可以到达相机110。为了简单起见,仅示出了到达相机110的光线。实际上,当光线130a照射环境中的表面135时,多条光线可以在任意数量的可能方向上被反射,其中一部分到达相机110。使用各种参数,包括但不限于相机固有参数、发射器固有参数、相机-发射器转换参数以及关于结构光图案的其他已知信息,相机130或相机的计算系统可以解释反射光线130b以确定环境的深度映射信息。
投射的光线可以包括特定的光图案,例如图案160。在特定实施例中,投射图案可以包括从发射器120投射的数百个以上的光点。光点可以由发射器120形成,并通过衍射光学器件(例如衍射光学元件125)通过复制过程倍增。发射器120可以被配置成在可见光谱中产生光点。在特定实施例中,发射器120可以被配置成产生超过可见光谱的光点,包括但不限于红外光或紫外光。相机110可以被配置成检测光点,而不管光点的所选波长。在特定实施例中,由发射器120发射的图案,例如图案160,可以包括模板结构光图案。在特定实施例中,来自发射器的图案的点的预期方位也可以是已知的(无论在点中是绝对的还是相对的)。点的方位可以被校准,作为独立校准程序的一部分或作为本文所述程序的一部分。如本文所述,可以使用关于点的方位的信息来更准确地检测图案中的扰动(disturbance)。然后,扰动可用于解决图案中特定扰动原因的模糊性。例如,通过在图案的点已经被投射到环境中之后,将检测到的点的方位或位置与点的预期个体方位进行比较,可以检测到图案的更细微的扰动。这反过来可以允许更精确地测量环境。
某些参数在图1中被象征性地表示。一组这样的参数是相机固有参数140(KC)。相机固有参数通常可以指用于相对于理想化相机模拟真实世界相机的参数。在特定实施例中,相机固有参数140可以包括相机的焦距、主点偏移、轴偏斜(axis skew)或任何其他合适的相机固有参数。焦距可以指镜头和图像传感器之间的距离。主点偏移可以指主光线(穿过标准相机针孔(canonical camera pinhole)的光线)相对于图像传感器平面的原点的位置。轴偏斜可以指捕获图像中的剪切变形(shear distortion)。图1中象征性表示的另一组参数是发射器固有参数145(KE)。发射器固有参数可以指用于描述相对于理想化发射器的发射器操作的参数。在特定实施例中,发射器固有参数可以包括诸如以下项的信息:发射器的功率、衍射光栅125相对于发射器主体120的二极管的布置、一个或更多个衍射光栅125的取向、倾斜、折射率、所使用的光的波长、任何其他合适的参数或其任何合适的组合。图1中象征性表示的另一组参数是相机-发射器转换参数150(TEC)。在特定实施例中,相机-发射器转换参数150可以指用于测量发射器和相机的物理放置和取向的参数。因为在特定实施例中,发射到环境中的光的原点不同于深度相机的图像传感器的位置,所以相机-发射器转换参数150可用于模拟统一的深度相机-发射器(例如,其中发射器和相机共享相同的物理空间,或者是相同的设备)。由于相机和/或发射器可能由于使用而移动,尤其是损伤(例如跌落),因此在深度相机离开制造商后,参数可能需要修正。
图2示出了用于深度相机校准和环境重建的示例方法200。在特定实施例中,方法200的步骤可以作为标准化校准程序的一部分来执行,该标准化校准程序在系统的第一次使用期间、在新环境中的第一次使用期间或作为定期维护来执行。在特定实施例中,方法200的步骤可以由计算系统在正常使用期间在后台执行(例如,当系统参与其他非校准操作时)。该方法可以在步骤201开始,其中与深度相机110相关联的计算系统可以执行深度相机110的初始校准。初始校准可由制造商、质量保证代理商或其他合格的校准代理商执行。初始校准可以使用一个或更多个基准真相配置来执行,基准真相配置包括包含具有已知尺寸、形状、颜色或距离的对象的环境。初始校准可以在深度相机被运送给中间用户或最终用户之前执行。在特定实施例中,初始校准可以由用户在深度相机或包括深度相机的系统的初始化或激活时执行。初始校准可作为首次使用程序的一部分或定期维护的一部分进行。
在步骤210,计算系统可以访问相机校准模型。在该方法的第一次迭代期间,可以从初始校准接收相机校准。然而,如将在本公开中描述的,可以重复执行所描述的程序,迭代地细化环境模型和相机校准模型。在这些情况下,在步骤210期间访问的相机校准模型可以是修正的相机校准模型。计算系统可以使用相机校准模型来解释来自深度相机的观测结果。
在步骤211,相机装备的发射器可以投射光图案。发射器可以将光图案投射到深度相机的环境中。光图案可以是基于模板的结构光图案。模板可以包括特定的图案,这可以使确定图案的偏差发生在哪里变得更简单。例如,图案可以包括均匀间隔的点的网格。如果投射到没有几何结构但有后表面的环境中,当被相机检测到时,图案可能是相同的网格。当然,即使那样,检测到的网格也可能会因基于后壁与相机装备的距离的比例调整而产生差异。如果投射到具有几何结构的环境中,可以通过检测到的网格与模板的偏差来检测几何结构。这些偏差可用于推断导致偏差的环境中的几何结构的形状。在特定实施例中,光图案可以是结构光图案,其中每个点的位置是已知的,并且每个点是可单独识别的。因此,除了整体图案之外,通过识别与每个单独点相关联的偏离程度,可以更准确地确定环境的几何结构。
在步骤212,相机装备的深度相机可以捕获对环境的观测结果。观测结果可以包括环境的传统颜色和/或亮度强度图像。在特定实施例中,所捕获的观测结果可以包括由相机装备的发射器投射到环境中的光图案的观测结果。例如,相机装备的相机可以检测环境中已经由相机装备的发射器投射到环境中的结构光图案。结构光图案可以基于结构光图案的模板来生成。计算设备(或相机的系统)可以将在环境中检测到的结构光图案与模板结构光图案进行比较。作为另一个例子,每个捕获的观测结果可以包括捕获由环境中的表面引起的投射光图案的变形的一组点对点对应关系。由相机装备的发射器投射到环境中的光图案可以基于结构光图案,其中图案的每个点的位置是已知的或者可以被确定。当相机捕获观测结果时,它可以检测结构光图案的各个点。相机或相关系统可以识别结构光图案的每个单独点,并且可以将每个识别点的位置或方位与结构光图案中该识别点的相应预期位置或方位进行比较。通过比较点对点对应关系(例如,观测到的结构光图案中特定点的预期位置与特定点的观测位置之间的差异),相机和计算系统可以产生更精确的深度图,该深度图可以考虑到更细微的变化。该系统能够确定结构光图案中潜在的模糊性,例如由表面拐角附近的光图案的观测结果引起的模糊性。根据点到点的对应关系,计算系统可以解决模糊性,因为每个点的位置可以被解析。在特定实施例中,根据捕获的观测结果,深度相机(或与深度相机相关联的计算系统)可以生成一个或更多个深度图。
在步骤213,相机装备可以确定相机装备在环境中的姿态。姿态可以对应于相机装备的深度相机捕获观测结果时的相机装备的姿态。在特定实施例中,步骤212和213可以顺序执行,因为针对每个观测结果确定姿态。在特定实施例中,定位系统可以计算环境中相机装备的多个姿态。计算的姿态数量可以等于由深度相机捕获的环境的离散观测结果的数量。例如,如果深度相机能够捕获与视频一致的观测结果(例如,每秒捕获24个、30个或60个观测结果),则计算系统可以计算相等数量的姿态。可以根据捕获的观测结果实时确定姿态,例如,通过基于捕获的观测数据和相机校准模型的参数在环境中定位深度相机。例如,定位系统可以根据由深度相机捕获的图像使用一种或更多种SLAM方法来生成深度相机相对于环境的近似姿态。姿态然后可以对应于在观测结果被捕获时深度相机的定位。在特定实施例中,可以基于结合到定位系统中的相机装备的硬件部件来确定姿态。硬件部件可以包括移动传感器,例如一个或更多个多轴加速度计、多轴陀螺仪(单独或与多轴加速度计组合成惯性测量单元)、超声波移动传感器、磁力计、光学移动传感器、任何其他合适的硬件移动传感器或其任何部件。在捕获每个观测结果的同时,可以从定位系统的一个或更多个硬件部件中检索姿态。
在步骤214,计算系统可以生成环境的多个估计。在特定实施例中,可以基于每个捕获到的观测结果、捕获到观测结果时相机装备的对应姿态以及相机校准模型来生成估计。为了生成环境的估计,计算系统可以访问捕获的观测结果和相应的姿态。如上所述,计算的姿态的数量可以与捕获的观测结果的数量一致。每个姿态可以直接与由深度相机捕获的观测结果按时间相关联,使得姿态表示深度相机在捕获观测结果时的姿态。几何估计系统可以访问相机校准模型、捕获的观测结果和相关联的姿态。几何估计系统可以使用相机校准模型的参数来解释深度相机观测结果。几何估计系统可以使用与每个深度相机观测结果相关联的姿态来估计、近似或确定在捕获观测结果时相机的视点。由此,几何观测系统可以确定环境的“视图”。几何观测系统可以对多个观测结果(直到并包括所有观测结果)执行这些步骤。单独来看,这些视图可能被解释为对环境的一次性估计。它们可能包括诸如环境的深度图和颜色图的信息,也可能包括诸如环境中的单个对象的深度图和颜色图的信息。
在步骤215,计算系统可以基于估计形成环境模型。计算系统可以组合这些估计来形成环境的环境模型。在特定实施例中,可以使用几何融合或相关技术来组合估计。例如,来自捕获的环境观测结果的深度信息可以跨不同观测结果合并。融合可以产生深度相机的环境的环境模型。环境模型可以是,例如,在捕获观测结果的时间段内的环境的三维重建。在一些实施例中,为了提高处理速度,可以假设当深度相机(或其他成像设备)捕获观测结果时,环境不会随着时间而显著改变。注意,在一些实施例中,计算系统可以直接从观测结果、姿态和相机校准模型形成环境模型。
步骤210-215(以及其他中间步骤)可以被称为该过程的环境重建部分。步骤220-224可以被称为该方法的相机校准部分。在步骤210-215中,可以基于捕获的观测结果根据需要创建和/或更新环境模型。在步骤220-224中,为了相机模型校准的目的,可以假设环境模型是准确的,并且在相机校准模型的相机校准参数被调整时保持恒定。
在步骤220,计算系统可以基于姿态和环境模型来确定预测观测结果。计算系统可以基于环境模型和多个姿态中的一个或更多个姿态,为一个或更多个姿态确定环境的一个或更多个预测观测结果。在特定实施例中,使用姿态信息,计算系统可以模拟在环境模型中捕获的环境的视图。给定环境模型、相机校准模型(包括诸如深度相机或发射器固有参数、深度相机或发射器外在参数(extrinsic parameters)以及相机-发射器转换参数之类的参数)和姿态,计算系统可以预测当被深度相机成像时光投射的所投射的发射器点将出现在哪里。为了生成预测观测结果(或简单地说,预测),计算系统可以模拟投射到环境中的结构光图案。光图案可以是由相机装备的发射器发射的相同结构光图案的模型。该预测然后可以包括关于由环境中的几何结构引起的、如在环境模型中捕获的、在由姿态指示的环境的视图中可见的光图案的变化的信息。该过程可以针对多个姿态(直到并包括所有姿态)来执行。在特定实施例中,计算系统可以响应于检测到相机装备的移动来确定预测的观测结果。移动可以由移动传感器(例如,上面描述到的移动传感器之一)检测到。因此,相机装备的移动可以用作开始该过程的相机模型校准部分的触发器。该移动可以用作相关过程的一部分,以确定是否需要重新校准(例如,确定重新校准是否可能改善整个系统的性能)。
在步骤221,对于每个姿态,计算系统可以将预测的观测结果与捕获的观测结果进行比较,其中捕获的观测结果和用于确定预测的观测结果的姿态相关联。例如,计算系统可以将每个预测的观测结果与从姿态(从该姿态确定预测的观测结果)捕获的观测结果进行比较。如上所述,每个姿态可以(例如,按时间)与由深度相机捕获的环境观测结果相关联。在特定实施例中,捕获的观测结果可以包括投射到环境中的光图案的变化。因为预测和捕获的观测结果是基于相同的光图案,所以可以通过比较每个预测和观测结果中的结构光图案的扰动来比较预测和观测结果。对于特定的捕获的观测结果,计算系统可以确定预测的观测结果有多准确。因为假设环境模型是准确的,所以预测的观测结果可以用作相机校准模型如何准确地考虑可以被执行的相机装备校准的因素的度量。
在特定实施例中,当在步骤221中将预测的观测结果和捕获的观测结果进行比较时,计算系统可以在步骤222中比较捕获的观测结果和相关的预测的观测结果之间的变化,以计算与每个姿态相关的观测结果和预测值之间的模型误差。在特定实施例中,预测的观测结果和捕获的观测结果可以包括结构光图案的点的位置信息。然后,将预测的观测结果与捕获的观测结果进行比较可以包括将每个预测的观测结果的位置信息与相应对应的捕获观测结果的位置信息进行比较。假设比较导致观测到的光投射图案与发射的光投射图案的关联,则计算系统可以将每个预测(例如,预测的点图案)与观测到的现实进行比较。观测结果和预测之间的差异可以被组合以计算模型误差(例如,由相机校准模型引起的误差)。直观地,由于在该阶段中环境模型被假设为近似准确,误差的一个来源可以被假设为相机校准模型,其与姿态一起用于生成预测。在特定实施例中,误差的附加来源可以是所确定的姿态本身。在特定实施例中,运动传感器或运动检测系统可以用于为定位系统生成初始化条件,这可以提高定位系统的精度。此外,可以将运动传感器的输出与定位系统的结果进行比较,以例如通过比较运动传感器和定位系统的位置的相对变化来确定个体姿态的精度。在特定实施例中,由于每个捕获的观测结果的姿态被用于生成预测,因此姿态可以被假设为不是误差源,以简化校准程序。目标变成找到最小化模型误差的相机参数(例如,深度相机或发射器固有参数、深度相机或发射器外在参数以及相机-发射器转换参数)。
在步骤223,计算系统可以确定模型误差是否满足用于修正相机校准模型的阈值。一般来说,很难预测计算和应用一组新的相机校准参数的效果。在某些情况下,尽管努力提高相机校准参数的质量,但对相机校准程序的修改可能会降低观测结果和最终环境模型的准确性。由于生成新的或修正的相机校准模型的操作可能消耗大量计算资源,因此计算系统可以检查以确定重新校准是否可能导致改进。这样做的一种方法可以是确定模型误差(或用于跟踪预测的观测结果与捕获的观测结果的比较结果的任何度量)是否使得所做的改变有可能减小误差。例如,如果模型误差足够高,任何改变都可能成功。如果模型误差一开始就很低,那么重新计算相机校准模型可能不会显著改善误差。在特定实施例中,为了节省资源,计算系统可以选择跳过为这组观测结果重新计算相机校准模型。因此,在一个示例中,如果模型误差不满足用于修正相机校准模型的阈值,则该过程可以继续回到步骤210,相机校准模型不变。如果模型误差确实满足阈值,则该过程可以前进到步骤224。在特定实施例中,阈值可以被逆转。也就是说,阈值可以被用于确定相机校准模型的精度是否已经是可接受的。这可以由低模型误差来表示,并且阈值可以是模型误差的下限,当相机校准模型可接受地精确时,该下限划分界线。可以使用用于确定是否修正相机校准模型的其他方法。
在步骤224,计算系统可以修正相机校准模型。在一些实施例中,修正相机校准模型可以包括调整现有模型。在一些实施例中,修正过程可以包括基于新收集的信息(例如,预测的和捕获的观测结果及其比较)生成新的相机校准模型。在特定实施例中,修正相机校准模型可以包括修改或替换校准模型的参数中的一个或更多个,以最小化模型误差(在计算模型误差的情况下)或一个或更多个预测的观测结果与一个或更多个捕获的观测结果之间的差异,其中一个或更多个捕获的观测结果对应于从其确定一个或更多个预测的观测结果的一个或更多个姿态。
形式上,为了从环境的预测的观测结果和捕获的观测结果生成相机校准模型,计算系统可以最小化IR图像i中所有观测到的点或点到点对应关系
Figure BDA0003436792930000181
的重投影误差的以下平方和:
Figure BDA0003436792930000182
其中
Figure BDA0003436792930000183
是观测结果i(解释为图像)中的点位置的预测观测结果:
Figure BDA0003436792930000184
这里,其中:
πi:
Figure BDA0003436792930000185
是将IR相机帧i中的一点
Figure BDA0003436792930000186
转换为像素坐标
Figure BDA0003436792930000191
的函数。
πe -1
Figure BDA0003436792930000192
是表示发射器反投影(back-projection)的函数,其将发射器2D点图案
Figure BDA0003436792930000193
转换为发射器帧向量
Figure BDA0003436792930000194
χ(n,d,r):
Figure BDA0003436792930000195
是计算光线r和平面N=[n,r]之间交点的函数,
Figure BDA0003436792930000196
其中
Ne=[ne,de]T=Twr·β·Tre·Nw
Figure BDA0003436792930000197
是分别对应于环境和发射器参考系w和e中表面线性化的平面。
Twr,Tri∈SE(3)分别是从装备到世界(world-from-rig)和从深度相机到装备(rig-from-depth-camera)的转换。
α和β是对帧姿态和相机外在参数的未知更新。
xi和xe分别是深度相机的参数和发射器投影仪的参数。
在特定实施例中,修正相机校准模型可以包括例如使用本文描述的方法来计算建议的修正的校准模型。计算系统可以基于所建议的修正的校准模型、由相机装备从环境中的一个或更多个姿态捕获的环境的一个或更多个观测结果来生成环境几何结构的预测。例如,计算系统可以使用与一个或更多个捕获的观测结果相关联的一个或更多个姿态来使用新的相机校准模型确定预测的观测结果。用于确定预测的观测结果的过程可以类似于本文描述的过程。计算系统可以将一个或更多个预测的观测结果与一个或更多个捕获的观测结果的上述比较和几何结构的预测进行比较。在特定实施例中,计算系统可以基于该比较来计算修正效果。计算系统然后可以将修正效果与修正阈值进行比较。在确定修正阈值被满足时,修正的相机校准模型可以被接受并替代初始相机校准模型。
如方法200所示,在修正相机校准模型之后,或者可选地,在确定模型误差不满足阈值误差之后,该方法可以再次进行到步骤210。在特定实施例中,计算系统可以基于修正的相机校准模型再次修正环境模型。例如,计算系统可以使用相同的捕获的观测结果再次执行方法200的操作。因为校准程序不一定会影响观测结果的捕获,所以可以重复使用相同的观测结果,直到达到所需的校准精度水平。作为另一个例子,计算系统可以捕获环境的第二组观测结果。在步骤210-215之后,计算系统可以另外执行方法200的包括多达步骤210-215的环境重建部分的步骤。这可以包括在步骤212捕获第二组观测结果,并且在步骤213确定第二组姿态。计算系统可以至少基于环境的第二组观测结果和修正的相机校准模型来修正环境模型。
在特定实施例中,在修正环境模型之前,计算系统可以检测相机装备的移动。例如,计算系统可以从相机装备的移动传感器接收相机装备的移动。可以响应于该移动来确定环境模型。在特定实施例中,计算系统可以在修正环境模型之前,将接收到的相机装备的移动与至少基于修正的相机校准模型和环境的第二多个观测结果确定的相机装备的移动进行比较。基于该比较,计算系统可以确定该移动是否是真正的移动,或者该移动是否被错误地检测到。如果确定该移动是错误的,则计算系统可以不启动用于修正环境模型的过程以节约资源。
在特定实施例中,计算系统可以通过使用与本文所述相同的程序,从第二组观测结果、观测结果被从其收集的第二多个姿态和修正的校准模型生成建议的修正的环境模型,来至少基于环境的第二组观测结果和修正的校准模型修正环境模型。计算系统可以比较环境模型和建议的修正的环境模型。计算系统可以确定用建议的修正的环境模型替代当前环境模型的效果,以确定修正环境模型是否将有益于相机装备和系统的操作。如果建议的修正的环境模型被确定不是改进(例如,计算误差超过阈值),则建议的修正的环境模型可以不被使用。
本文描述的程序可以为用于针对深度相机的环境重建精确的环境模型的当前的程序提供许多显著的优点。本文描述的程序可以使用较少的有限资源,在计算上更有效率。这又可以允许体现这些技术的计算设备用于额外的任务,或者变得更节能。程序可以在两个近似模型(例如,相机校准模型和环境模型)方面更快地收敛,因为两者都被允许以几乎同时的方式变化。这允许两者根据需要相互调整并根据关于环境的新的信息进行调整。因为该过程使用深度图和来自深度相机的图像,所以该程序可以与系统正在使用的任何应用协同使用。因此,该系统可以在正常操作期间支持相机校准模型和环境模型的改进,减少用户参与系统和使用之间的延迟。例如,当用户以其他方式参与系统时,系统可以执行所描述的联合校准和重建程序。用户不需要采取与促进校准特别相关的动作(例如,遵循系统的提示以促进精确校准)。用户甚至可能不会被告知正在进行校准。相机装备和计算系统可以在正常使用期间检测用户移动,并使用该移动作为触发来确定是否应该执行进一步的相机装备校准或环境重建。对于本领域技术人员来说,这些以及许多其他益处是明显的。
在适当的情况下,特定实施例可以重复图2的方法的一个或更多个步骤。尽管本公开描述并示出了以特定顺序发生的图2的方法的特定步骤,但是本公开设想了以任何合适的顺序发生的图2的方法的任何合适的步骤。此外,尽管本公开描述并示出了包括图2的方法的特定步骤的用于深度相机的校准和环境的重建的示例方法,但是本公开设想了用于深度相机的校准和环境的重建的任何合适的方法,这样的方法包括任何合适的步骤,在适当的情况下,可以包括图2的方法的所有、一些步骤或没有这些步骤。此外,尽管本公开描述并示出了执行图2的方法的特定步骤的特定部件、设备或系统,但是本公开设想了执行图2的方法的任何合适步骤的任何合适的部件、设备或系统的任何合适的组合。
图3以示意方式示出了用于校准和重建的交替迭代过程。图3的中央分界线左侧可以表示“重建”阶段,而图3的中央线右侧可以表示“校准”阶段。在重建阶段期间,相机装备(例如,相机装备100)的计算系统可以被提供有相机装备的校准模型的一个或更多个参数(例如,在方法200的步骤210之后)。例如,相机装备的校准模型的参数可以包括相机固有参数(KC)301a、发射器固有参数(KE)302a和相机到发射器的转换参数(TEC)303a。
与相机装备相关联的计算系统可以生成环境模型。如在方法200的步骤211中,发射器(例如,发射器120)可以将结构光图案305发射到环境中。图案305可以包括关于光图案的整体结构的信息和/或可以包括关于光图案的每个点的预期方位或预期位置的信息。如在方法200的步骤212中,相机(例如,深度相机110)可以在一系列捕获的观测结果310a、310b和310c等中检测结构光图案。这些观测结果可以包括结构光图案305的变化。每个观测结果310a、310b和310c可以在特定时间被捕获,并且每个观测结果310a、310b和310c可以分别与捕获观测结果时相机的姿态315a、315b和315c相关联。在特定实施例中,捕获姿态可以作为用于捕获每个观测结果的部分过程(例如,方法200的步骤212和213可以快速连续地执行)。在特定实施例中,根据观测结果310a、310b和310c,相机(或相关联的计算系统)可以分别生成多个深度图320a、320b和320c。如在步骤214中,计算系统可以确定环境的一系列估计325a、325b和325c。在特定实施例中,除了相机校准参数301a、302a和302a之外,计算系统可以使用结构光观测结果310a、310b和310c、深度图320a、320b和320c以及相应的姿态315a、315b和315c来确定估计。每一个估计都可以提供一个独特的环境视图。如在步骤215中,可以通过一种或更多种合适的融合技术来组合许多估计,例如估计325a、325b和325c,以生成环境模型330。
在生成环境模型330之后,过程可以转移到过程的相机模型校准阶段,如图3的中央分界线右侧所示。在该阶段,环境模型330被认为是近似精确的,并且相机校准模型(例如,参数301a、302a和302c)可能变化。如在步骤220中,计算系统可以使用环境模型330、结构光图案305以及姿态315a、315b和315c来生成基于环境模型330的环境的预测的观测结果340a、340b和340c。预测的观测结果340a、340b和340c可以是基于所确定的环境模型330的物理环境的预测。
如在步骤221中,计算系统可以将预测的观测结果340a、340b和340c与从用于生成预测的相同姿态315a、315b和315c捕获的观测结果320a、320b和320c进行比较。例如,因为预测的观测结果340a是使用姿态315a和环境模型330生成的,所以将其与捕获的观测结果320a进行比较。类似地,因为预测的观测结果340b是使用姿态315b和环境模型330生成的,所以将其与捕获的观测结果320b进行比较。捕获的观测结果和预测的观测结果可以以类似的格式表示。例如,捕获的观测结果和预测的观测结果可以由深度图表示,作为结构光图案相对于模板结构光图案的偏差,作为结构光图案的点对点偏差,或者任何其他合适的格式。因为环境模型300被假设为对于该步骤近似准确,所以预测的观测结果和捕获的观测结果之间的任何差异可以被假设为从相机校准模型导出。在特定实施例中,可以假设并考虑其他误差源。例如,一个额外的误差源可能是检测到的姿态本身。在某些实施例中,如本文所述,运动检测系统可以用作检查检测到的姿态的准确性的方法。
预测的观测结果340a、340b和340c与捕获的观测结果320a、320b和320c的比较结果在图3中被示为一系列模型误差345a、345b和345c。在许多实施例中,该比较结果可以以任何合适的格式体现。模型误差可以捕获预测的观测结果和在从其生成预测的观测结果的姿态捕获的捕获观测结果之间的差异。模型误差可以包括捕获的观测结果和预测的观测结果的结构光图案(或深度图)之间的多个点对点差异。捕获的观测结果和预测的观测结果之间的差异可能自然地由用于生成环境模型的融合过程产生,该融合过程基于多个观测结果提供环境模型的“平均”。例如,模型误差345a体现了预测的观测结果340a和捕获的观测结果320a(其在从其捕获预测的观测结果340a的姿态315a被捕获)之间的偏差。类似地,模型误差345b体现了预测的观测结果340b和捕获的观测结果320b之间的偏差。模型误差345c体现了预测的观测结果340c和捕获的观测结果320c之间的偏差。
如在方法200的步骤224中,相机校准模型可以被修正。在特定实施例中,相机校准模型中包括的一个或更多个参数(例如,301a、302a和303a)可以被修正以最小化收集的模型误差。修正后的相机校准模型参数(例如,301b、302b和302c)可以在过程再次翻转到过程的重建阶段时使用,在重建阶段,可以使用新捕获的环境观测结果再次重建环境模型。该过程可以以这种方式迭代地交替。该过程可以继续,直到达到多个停止条件中的一个或更多个。例如,一个停止条件可以是任何建议的修正(例如,使用本文描述的方法)被确定低于特定阈值,指示一个或两个模型近似准确。
图4示出了示例计算机系统400。在特定实施例中,一个或更多个计算机系统400执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机系统400提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机系统400上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机系统400的一个或更多个部分。在本文,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或更多个计算机系统。
本公开设想了任何合适数量的计算机系统400。本公开设想了采取任何合适的物理形式的计算机系统400。作为示例而不是作为限制,计算机系统400可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网状网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、增强/虚拟现实设备、或者这些系统的两个或更多个的组合。在适当的情况下,计算机系统400可以包括一个或更多个计算机系统400;是整体式的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云部件。在适当的情况下,一个或更多个计算机系统400可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机系统400可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机系统400可以在不同的时间或在不同的位置处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。
在特定实施例中,计算机系统400包括处理器402、存储器404、存储装置406、输入/输出(I/O)接口408、通信接口410和总线412。尽管本公开描述并示出了具有在特定布置中的特定数量的特定部件的特定计算机系统,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适部件的任何合适的计算机系统。
在特定实施例中,处理器402包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而不是作为限制,为了执行指令,处理器402可以从内部寄存器、内部高速缓存、存储器404或存储装置406中检索(或取回)指令;将他们解码并执行它们;以及然后将一个或更多个结果写到内部寄存器、内部高速缓存、存储器404或存储装置406。在特定实施例中,处理器402可以包括用于数据、指令或地址的一个或更多个内部高速缓存。在适当的情况下,本公开设想了处理器402包括任何合适数量的任何合适的内部高速缓存。作为示例而不是作为限制,处理器402可以包括一个或更多个指令高速缓存、一个或更多个数据高速缓存、以及一个或更多个转译后备缓冲器(TLB)。在指令高速缓存中的指令可以是在存储器404或存储装置406中的指令的副本,并且指令高速缓存可以加速处理器402对那些指令的检索。在数据高速缓存中的数据可以是:在存储器404或存储装置406中的数据的副本,用于使在处理器402处执行的指令进行操作;在处理器402处执行的先前指令的结果,用于由在处理器402处执行的后续指令访问或者用于写到存储器404或存储装置406;或其他合适的数据。数据高速缓存可以加速由处理器402进行的读或写操作。TLB可以加速关于处理器402的虚拟地址转译。在特定实施例中,处理器402可以包括用于数据、指令或地址的一个或更多个内部寄存器。在适当的情况下,本公开设想了处理器402包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器402可以包括一个或更多个算术逻辑单元(ALU);是多核处理器;或者包括一个或更多个处理器402。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。
在特定实施例中,存储器404包括用于存储用于使处理器402执行的指令或用于使处理器402操作的数据的主存储器。作为示例而不是作为限制,计算机系统400可以将指令从存储装置406或另一个源(例如,另一个计算机系统400)加载到存储器404。处理器402然后可以将指令从存储器404加载到内部寄存器或内部高速缓存。为了执行指令,处理器402可以从内部寄存器或内部高速缓存中检索指令并将它们解码。在指令的执行期间或之后,处理器402可以将一个或更多个结果(其可以是中间结果或最终结果)写到内部寄存器或内部高速缓存。处理器402然后可以将这些结果中的一个或更多个写到存储器404。在特定实施例中,处理器402仅执行在一个或更多个内部寄存器或内部高速缓存中或在存储器404(而不是存储装置406或其他地方)中的指令,并且仅对在一个或更多个内部寄存器或内部高速缓存中或在存储器404(而不是存储装置406或其他地方)中的数据进行操作。一个或更多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器402耦合到存储器404。如下所述,总线412可以包括一个或更多个存储器总线。在特定实施例中,一个或更多个存储器管理单元(MMU)驻留在处理器402和存储器404之间,并且便于由处理器402请求的对存储器404的访问。在特定实施例中,存储器404包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开设想了任何合适的RAM。在适当的情况下,存储器404可以包括一个或更多个存储器404。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。
在特定实施例中,存储装置406包括用于数据或指令的大容量存储装置。作为示例而不是作为限制,存储装置406可以包括硬盘驱动器(HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器、或这些中的两个或更多个的组合。在适当的情况下,存储装置406可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置406可以在计算机系统400的内部或外部。在特定实施例中,存储装置406是非易失性固态存储器。在特定实施例中,存储装置406包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可变ROM(EAROM)、或闪存、或这些中的两个或更多个的组合。本公开设想了采用任何合适的物理形式的大容量存储装置406。在适当的情况下,存储装置406可以包括便于在处理器402和存储装置406之间的通信的一个或更多个存储装置控制单元。在适当的情况下,存储装置406可以包括一个或更多个存储装置406。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。
在特定实施例中,I/O接口408包括提供用于在计算机系统400和一个或更多个I/O设备之间的通信的一个或更多个接口的硬件、软件或两者。在适当的情况下,计算机系统400可以包括这些I/O设备中的一个或更多个。这些I/O设备中的一个或更多个可以实现在人和计算机系统400之间的通信。作为示例而不是作为限制,I/O设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像机、触笔、平板计算机、触摸屏、跟踪球、视频摄像机、另一个合适的I/O设备、或这些中的两个或更多个的组合。I/O设备可以包括一个或更多个传感器。本公开设想了任何合适的I/O设备以及用于它们的任何合适的I/O接口408。在适当的情况下,I/O接口408可以包括使处理器402能够驱动这些I/O设备中的一个或更多个的一个或更多个设备或软件驱动器。在适当的情况下,I/O接口408可以包括一个或更多个I/O接口408。尽管本公开描述并示出了特定的I/O接口,但是本公开设想了任何合适的I/O接口。
在特定实施例中,通信接口410包括提供用于在计算机系统400和一个或更多个其他计算机系统400或一个或更多个网络之间的通信(例如,基于包(packet-based)的通信)的一个或更多个接口的硬件、软件或两者。作为示例而不是作为限制,通信接口410可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络(例如Wi-Fi网络)进行通信的无线NIC(WNIC)或无线适配器。本公开设想了任何合适的网络和用于它的任何合适的通信接口410。作为示例而不是作为限制,计算机系统400可以与自组织网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或更多个部分、或这些中的两个或更多个的组合进行通信。这些网络中的一个或更多个的一个或更多个部分可以是有线的或无线的。作为示例,计算机系统400可以与无线PAN(WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(GSM)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合进行通信。在适当的情况下,计算机系统400可以包括用于这些网络中的任一个的任何合适的通信接口410。在适当的情况下,通信接口410可以包括一个或更多个通信接口410。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。
在特定实施例中,总线412包括将计算机系统400的部件耦合到彼此的硬件、软件或两者。作为示例而不是作为限制,总线412可以包括加速图形端口(AGP)或其他图形总线、扩展工业标准体系结构(EISA)总线、前端总线(FSB)、HYPERTRANSPORT(HT)互连、工业标准体系结构(ISA)总线、INFINIBAND互连、低引脚数(LPC)总线、存储器总线,微通道体系结构(MCA)总线、外围部件互连(PCI)总线、PCI-Express(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或任何其他合适的总线、或这些中的两个或更多个的组合。在适当的情况下,总线412可以包括一个或更多个总线412。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。
在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的或其他集成电路(IC)(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字(SECURE DIGITAL)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的任何合适组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括一切的而非排他性的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A或B”意指“A、B或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A和B”意指“A和B,联合地或各自地”。
本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示为包括特定的组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解的在本文任何地方描述或示出的任何组件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或系统或装置或系统的组件的引用包括该装置、系统、组件,无论它或那个特定功能是否被激活、开启或解锁,只要该装置、系统或组件是这样被调整、被布置、使能够、被配置、被实现、可操作的、或操作的。此外,尽管本公开将特定实施例描述或示为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。

Claims (15)

1.一种方法,包括由计算设备:
访问相机装备的校准模型;
访问通过所述相机装备根据在环境中的多个姿态捕获的所述环境的第一多个观测结果;
至少基于所述第一多个观测结果、所述多个姿态和所述校准模型,生成包括所述环境的几何结构的环境模型;
针对所述多个姿态中的一个或更多个姿态,基于所述环境模型和所述一个或更多个姿态确定所述环境的一个或更多个预测的观测结果;
将所述一个或更多个预测的观测结果与对应于从其确定所述一个或更多个预测的观测结果的所述一个或更多个姿态的所述第一观测结果中的一个或更多个第一观测结果进行比较;
基于所述比较修正所述校准模型;和
至少基于所述环境的第二多个观测结果和修正的校准模型来修正所述环境模型。
2.根据权利要求1所述的方法,还包括通过以下操作捕获所述环境的所述第一多个观测结果:
由所述相机装备将结构光图案投射到所述环境中;
由所述相机装备的相机检测所述环境中的投射的结构光图案;和
将检测到的结构光图案与模板结构光图案进行比较。
3.根据权利要求1或权利要求2所述的方法,还包括通过以下操作捕获所述环境的所述第一多个观测结果:
由所述相机装备将包括多个点的结构光图案投射到所述环境中;
由所述相机装备的相机检测所述环境中的结构光图案的一个或更多个点;
识别检测到的点中的每一个;和
对于每个识别的点,将所述识别的点的位置与所述结构光图案中该识别的点的相应预期方位进行比较。
4.根据权利要求1、权利要求2或权利要求3所述的方法,还包括:
通过从所述相机装备的定位系统接收所述相机装备的姿态来捕获所述相机装备的从其捕获每个第一观测结果的姿态;并且优选地还包括:
基于来自所述相机装备的运动传感器的输出来初始化所述相机装备的定位系统。
5.根据权利要求1至4中任一项所述的方法,还包括:
通过至少基于所述观测结果和所述校准模型定位所述相机装备来捕获所述相机装备的从其捕获每个观测结果的姿态。
6.根据权利要求1至5中任一项所述的方法,其中,至少基于所述第一多个观测结果、所述多个姿态和所述校准模型生成包括所述环境的几何结构的所述环境模型包括:
根据每个观测结果和所述相机装备的从其捕获该观测结果的姿态生成所述环境的几何结构的估计;和
组合从每个观测结果生成的估计,以形成所述环境模型。
7.根据权利要求1至6中任一项所述的方法,其中,所述一个或更多个预测的观测结果和所述第一多个观测结果包括结构光图案的点的位置信息;和
将所述一个或更多个预测的观测结果与对应于从其确定所述一个或更多个预测的观测结果的一个或更多个姿态的所述第一观测结果中的一个或更多个第一观测结果进行比较包括,将每个预测的观测结果的位置信息与相应对应的第一观测结果的位置信息进行比较。
8.根据权利要求1至7中任一项所述的方法,其中,所述相机装备的所述校准模型包括:
所述相机装备的相机的固有参数;
所述相机装备的发射器的固有参数;
用于执行所述相机装备在环境中的定位的参数;或者
与所述相机装备的所述相机和所述发射器之间的关系相关联的参数。
9.根据权利要求1至8中任一项所述的方法,其中,基于所述比较修正所述校准模型包括:
修改所述校准模型的参数中的一个或更多个,以最小化一个或更多个预测的观测结果与对应于从其确定所述一个或更多个预测的观测结果的一个或更多个姿态的所述第一观测结果中的一个或更多个第一观测结果之间的差异。
10.根据权利要求1至9中任一项所述的方法,其中,基于所述比较修正所述校准模型包括:
计算建议的修正的校准模型;
基于所述建议的修正的校准模型、通过所述相机装备根据在所述环境中的一个或更多个姿态捕获的所述环境的一个或更多个观测结果,生成所述环境的几何结构的预测;
将所述一个或更多个预测的观测结果与所述第一观测结果中的一个或更多个第一观测结果的比较结果和所述几何结构的预测进行比较;和
确定所述比较满足修正阈值。
11.根据权利要求1至10中任一项所述的方法,其中,至少基于所述环境的所述第二多个观测结果和所述修正的校准模型来修正所述环境模型包括:
根据所述第二多个观测结果、从其收集所述观测结果的第二多个姿态以及所述修正的校准模型生成建议的修正的环境模型;和
比较所述环境模型和所述建议的修正的环境模型。
12.根据权利要求1至11中任一项所述的方法,其中:
响应于从所述相机装备的移动传感器接收到所述相机装备的移动,确定所述环境的一个或更多个预测的观测结果;或者
响应于从所述相机装备的移动传感器接收到所述相机装备的移动,修正所述环境模型;并且优选地还包括:
在修正所述环境模型之前,将接收到的所述相机装备的移动与至少基于修正的相机校准模型和所述环境的第二多个观测结果确定的所述相机装备的移动进行比较;和/或优选地,其中所述相机装备的移动传感器包括:
加速度计;
陀螺仪;
超声波移动传感器;
磁力计;或者
光学移动传感器。
13.根据权利要求1至12中任一项所述的方法,其中,所述相机装备的相机被配置为检测红外光或紫外光;和/或优选地,其中所述相机装备被结合到头戴式设备中;和/或优选地,其中所述相机装备被结合到手持式计算设备中。
14.一个或更多个计算机可读非暂时性存储介质,其体现软件,所述软件在被执行时能够操作来:
访问相机装备的校准模型;
访问通过所述相机装备根据在环境中的多个姿态捕获的所述环境的第一多个观测结果;
至少基于所述第一多个观测结果、所述多个姿态和所述校准模型,生成包括所述环境的几何结构的环境模型;
针对所述多个姿态中的一个或更多个姿态,基于所述环境模型和所述一个或更多个姿态确定所述环境的一个或更多个预测的观测结果;
将所述一个或更多个预测的观测结果与对应于从其确定所述一个或更多个预测的观测结果的所述一个或更多个姿态的所述第一观测结果中的一个或更多个第一观测结果进行比较;
基于所述比较修正所述校准模型;和
至少基于所述环境的第二多个观测结果和修正的校准模型来修正所述环境模型。
15.一种系统,包括:
一个或更多个处理器;和
一个或更多个计算机可读非暂时性存储介质,其耦合到所述一个或更多个处理器并且包括指令,所述指令当由所述一个或更多个处理器执行时能够操作来使所述系统:
访问相机装备的校准模型;
访问通过所述相机装备根据在环境中的多个姿态捕获的所述环境的第一多个观测结果;
至少基于所述第一多个观测结果、所述多个姿态和所述校准模型,生成包括所述环境的几何结构的环境模型;
针对所述多个姿态中的一个或更多个姿态,基于所述环境模型和所述一个或更多个姿态确定所述环境的一个或更多个预测的观测结果;
将所述一个或更多个预测的观测结果与对应于从其确定所述一个或更多个预测的观测结果的所述一个或更多个姿态的所述第一观测结果中的一个或更多个第一观测结果进行比较;
基于所述比较修正所述校准模型;和
至少基于所述环境的第二多个观测结果和修正的校准模型来修正所述环境模型。
CN202080047325.9A 2019-07-22 2020-07-16 联合环境重建和相机校准 Pending CN114051626A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/518,862 2019-07-22
US16/518,862 US11488324B2 (en) 2019-07-22 2019-07-22 Joint environmental reconstruction and camera calibration
PCT/US2020/042426 WO2021016051A1 (en) 2019-07-22 2020-07-16 Joint environmental reconstruction and camera calibration

Publications (1)

Publication Number Publication Date
CN114051626A true CN114051626A (zh) 2022-02-15

Family

ID=71995110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080047325.9A Pending CN114051626A (zh) 2019-07-22 2020-07-16 联合环境重建和相机校准

Country Status (6)

Country Link
US (2) US11488324B2 (zh)
EP (1) EP4004874A1 (zh)
JP (1) JP2022541100A (zh)
KR (1) KR20220035250A (zh)
CN (1) CN114051626A (zh)
WO (1) WO2021016051A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11727597B2 (en) * 2018-12-21 2023-08-15 Sony Group Corporation Calibrating volumetric rig with structured light
CN113242421A (zh) * 2021-04-02 2021-08-10 青岛小鸟看看科技有限公司 相机校准方法、装置及虚拟现实设备
US11909950B1 (en) * 2021-09-21 2024-02-20 Amazon Technologies, Inc. Three-dimensional (3D) sensor performance evaluation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9734419B1 (en) * 2008-12-30 2017-08-15 Cognex Corporation System and method for validating camera calibration in a vision system
KR102059311B1 (ko) * 2013-12-19 2019-12-24 애플 인크. 모바일 디바이스에서의 slam
US10187629B2 (en) * 2016-04-06 2019-01-22 Facebook, Inc. Camera calibration system
WO2018134686A2 (en) 2017-01-19 2018-07-26 Mindmaze Holding Sa Systems, methods, device and apparatuses for performing simultaneous localization and mapping
US10089750B2 (en) 2017-02-02 2018-10-02 Intel Corporation Method and system of automatic object dimension measurement by using image processing
GB201702118D0 (en) * 2017-02-09 2017-03-29 Cathx Ocean Ltd Method and system for calibrating imaging system
US10692244B2 (en) * 2017-10-06 2020-06-23 Nvidia Corporation Learning based camera pose estimation from images of an environment
US20200042656A1 (en) * 2018-07-31 2020-02-06 Toyota Research Institute, Inc. Systems and methods for persistent simulation

Also Published As

Publication number Publication date
KR20220035250A (ko) 2022-03-21
WO2021016051A1 (en) 2021-01-28
US20230169686A1 (en) 2023-06-01
EP4004874A1 (en) 2022-06-01
US20210027492A1 (en) 2021-01-28
JP2022541100A (ja) 2022-09-22
US11488324B2 (en) 2022-11-01

Similar Documents

Publication Publication Date Title
US11004223B2 (en) Method and device for obtaining image, and recording medium thereof
KR102334139B1 (ko) 적응적 호모그래피 매핑에 기초한 눈 시선 추적
US20230169686A1 (en) Joint Environmental Reconstruction and Camera Calibration
JP6283152B2 (ja) ハンドヘルド測地デバイスによるグラフィック支援遠隔位置測定
JP6594129B2 (ja) 情報処理装置、情報処理方法、プログラム
US9978147B2 (en) System and method for calibration of a depth camera system
US11657535B2 (en) System and method for optimal camera calibration
JP6980639B2 (ja) 仮想スクリーンのパラメータ推定方法及び装置
CN112399158B (zh) 投影图像校准方法、装置及投影设备
CN109906471B (zh) 实时三维相机校准
JP2016099742A (ja) 情報処理装置、映像投影装置、情報処理方法及びプログラム
US20220253131A1 (en) Systems and methods for object tracking using fused data
EP4165871A1 (en) System for correcting rolling shutter artifacts
JP2012048393A (ja) 情報処理装置およびその動作方法
WO2021082771A1 (en) Augmented reality 3d reconstruction
US20160349918A1 (en) Calibration for touch detection on projected display surfaces
US20230300290A1 (en) Information display system, information display method, and non-transitory recording medium
JP6486083B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2019121076A (ja) 情報処理装置、プログラム及び情報処理方法
JP5464671B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
US20230410340A1 (en) Device and method for depth measurement of 3d irregular surfaces
WO2023141491A1 (en) Sensor calibration system
US11949843B1 (en) System and method for enhancing three-dimensional (3D) depth acquisition
US11917273B2 (en) Image generating device and method thereof
US20220292878A1 (en) Apparatus and method for detecting facial pose, image processing system, and storage medium

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
CB02 Change of applicant information

Address after: California, USA

Applicant after: Yuan Platform Technology Co.,Ltd.

Address before: California, USA

Applicant before: Facebook Technologies, LLC

CB02 Change of applicant information