CN117136382A - 使用图像数据对环境进行建模 - Google Patents

使用图像数据对环境进行建模 Download PDF

Info

Publication number
CN117136382A
CN117136382A CN202280026605.0A CN202280026605A CN117136382A CN 117136382 A CN117136382 A CN 117136382A CN 202280026605 A CN202280026605 A CN 202280026605A CN 117136382 A CN117136382 A CN 117136382A
Authority
CN
China
Prior art keywords
model
image data
environment
camera pose
rendered
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
CN202280026605.0A
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.)
Imperial Institute Of Technology Innovation Co ltd
Original Assignee
Imperial Institute Of Technology Innovation Co ltd
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 Imperial Institute Of Technology Innovation Co ltd filed Critical Imperial Institute Of Technology Innovation Co ltd
Publication of CN117136382A publication Critical patent/CN117136382A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • 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
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Processing Or Creating Images (AREA)

Abstract

一种方法,包括获得由相机装置捕获的图像数据。所述图像数据表示对环境的至少一部分的观察。获得与所述观察相关联的相机位姿估计。基于所述相机位姿估计和所述环境的模型生成渲染的图像数据,以用于生成所述环境的所述至少一部分的三维表示。所述渲染的图像数据表示与所述环境的所述至少一部分相对应的至少一个渲染的图像部分。所述方法包括基于所述图像数据和所述渲染的图像数据评估损失函数,从而生成损失。基于所述损失联合优化至少所述相机位姿估计和所述模型,从而生成对所述相机位姿估计的更新和对所述模型的更新。

Description

使用图像数据对环境进行建模
技术领域
本发明涉及用于获得环境的模型的方法和系统,所述模型可例如由机器人装置用来导航和/或与其环境交互。
背景技术
在计算机视觉和机器人领域中,通常需要构建环境的模型,诸如能够使用机器人装置进行导航的三维空间。构建模型允许将真实世界环境映射到虚拟或数字领域,在所述虚拟或数字领域中,环境的表示可由电子装置使用和操纵。例如,可移动机器人装置可需要三维空间的表示,所述表示可使用同时定位和映射(通常称为“SLAM”)来生成,以允许对其环境进行导航和/或与其环境交互。
实时操作SLAM系统仍然具有挑战性。例如,许多现有系统需要对大型数据集进行离线操作(例如,通宵或连续几天)。希望为真实世界应用程序实时提供3D场景映射。
Newcombe等人在2011年混合和增强现实国际研讨会(ISMAR)论文集中发表的论文“KinectFusion:Real-Time Dense Surface Mapping and Tracking”中描述了一种从红、绿、蓝和深度(RGB-D)数据构建场景的方法,其中RGB-D数据的多个帧被配准并融合到三维体素网格中。使用密集的六自由度对齐来跟踪数据帧,然后将其融合到体素网格的体积中。然而,环境的体素网格表示针对每个体素需要大量的内存。此外,针对在所获得的RGB-D数据中不完全可见的环境区域(例如,被遮挡或部分被遮挡的区域),基于体素的表示可能不准确。使用环境的点云表示时会出现类似的问题。
B.Mildenhall等人在2020年欧洲计算机视觉会议(ECCV)上发表的论文“NeRF:Representing Scenes as Neural Radiance Fields for View Synthesis”提出了一种通过使用全连接神经网络处理一组具有已知相机位姿的图像来合成复杂场景的视图的方法。然而,所述方法需要大约1-2天来使用大量训练图像进行离线训练,因此不适合实时使用。此外,这篇论文中提出的方法假设已知给定图像的相机位姿,例如,如果图像是在机器人装置穿越其环境时捕获的,则所述相机位姿可能不可用。
希望改进对环境的建模。
发明内容
根据本公开的第一方面,提供了一种方法,其包括:获得由相机装置捕获的图像数据,图像数据表示对环境的至少一部分的观察;获得与观察相关联的相机位姿估计;基于相机位姿估计和环境的模型生成渲染的图像数据,其中模型用于生成环境的至少一部分的三维表示,其中渲染的图像数据表示与环境的至少一部分相对应的至少一个渲染的图像部分;基于图像数据和渲染的图像数据评估损失函数,从而生成损失;以及基于损失联合优化至少相机位姿估计和模型,从而生成:对相机位姿估计的更新;和对模型的更新。
这种方法允许获得环境的准确模型,例如,而无需预先训练或优化模型。例如,可实时优化模型和相机位姿估计,以便以有效的方式为模型和相机位姿估计两者提供自适应改进。
在一些示例中,模型是神经网络并且对模型的更新是对神经网络的一组参数的更新。例如,使用神经网络可允许对尚未观察到的环境区域进行预测。
在一些示例中,三维表示包括密集三维表示。例如,密集三维表示提供了比其他类型的表示更完整的表示,这在涉及机器人装置与其环境之间的复杂交互的各种任务(诸如机器人导航和抓取)中非常有用。
在一些示例中,生成渲染的图像数据包括:使用模型生成三维表示;以及使用三维表示执行渲染过程,其中渲染过程相对于相机位姿估计和模型的一组参数是可区分的。例如,使用可区分的渲染过程允许直接有效地生成用于损失函数的项,从而允许有效地联合优化模型和相机位姿估计。
在一些示例中,所述方法包括:评估至少渲染的图像部分相对于相机位姿估计的第一梯度,从而生成第一梯度值;以及评估至少一个渲染的图像部分相对于模型的一组参数的第二梯度,从而生成第二梯度值,其中联合优化相机位姿估计和模型包括使用第一梯度值和第二梯度值应用基于梯度的优化算法。例如,这种方法允许以直接的方式迭代地改进模型的参数和相机位姿估计。
在一些示例中,模型被配置来将与环境内的位置相对应的空间坐标映射到:与环境内的位置相关联的光度值;和体积密度值,所述体积密度值用于导出与环境内的位置相关联的深度值。在一些示例中,图像数据包括光度数据,所述光度数据包括至少一个测量的光度图像部分;至少一个渲染的图像部分包括至少一个渲染的光度图像部分;并且损失函数包括基于至少一个测量的光度图像部分和至少一个渲染的光度图像部分的光度误差。在一些示例中,图像数据包括深度数据,所述深度数据包括至少一个测量的深度图像部分;至少一个渲染的图像部分包括至少一个渲染的深度图像部分;并且损失函数包括基于至少一个测量的深度图像部分和至少一个渲染的深度图像部分的几何误差。在这些示例中,在优化程序中可考虑光度和/或几何误差,这例如提高了所获得的优化的模型和相机位姿估计的准确度。
在一些示例中,深度数据包括多个测量的深度图像部分,至少一个渲染的图像部分包括多个渲染的深度图像部分,每个渲染的深度图像部分对应于多个测量的深度图像部分中的相应的测量的深度图像部分,几何误差包括多个几何误差项,每个几何误差项对应于多个测量的深度图像部分中的不同的测量的深度图像部分,并且所述方法包括基于以下中的至少一者相对于与多个测量的深度图像部分中的第二测量的深度图像部分相关联的第二几何误差项减少与多个测量的深度图像部分中的第一测量的深度图像部分相关联的第一几何误差项对几何误差的贡献:与多个测量的深度图像部分中的第一测量的深度图像部分相关联的第一不确定性量度,或者与多个测量的深度图像部分中的第二测量的深度图像部分相关联的第二不确定性量度。这种方法允许针对具有更高不确定性的区域(诸如对象边界)减少对几何误差的贡献,这例如降低了几何误差由不确定区域中的值主导的风险。
在一些示例中,生成渲染的图像数据包括:应用光线跟踪来识别沿着光线的一组空间坐标,其中光线基于相机位姿估计和至少一个渲染的图像部分的像素的像素坐标来确定;以及使用模型来处理所述一组空间坐标,从而生成一组光度值和一组体积密度值,每一组值与所述一组空间坐标中的相应空间坐标相关联;组合所述一组光度值以生成与像素相关联的像素光度值;以及组合所述一组体积密度值以生成与像素相关联的像素深度值。例如,这种方法允许在选定的空间坐标处对光度值和体积密度值进行采样,这允许比以密集的方式获得这些值时更有效地执行优化。
在一些示例中,所述一组空间坐标是第一组空间坐标,所述一组光度值是第一组光度值,所述一组体积密度值是第一组体积密度值,并且应用光线跟踪包括应用光线跟踪来识别沿着光线的第二组空间坐标,其中第二组空间坐标基于概率分布来确定,所述概率分布随第一组体积密度值以及第一组空间坐标中的相邻空间坐标之间的距离而变化,并且所述方法包括:使用模型来处理第二组空间坐标,从而生成第二组光度值和第二组体积密度值;组合第一组光度值和第二组光度值以生成像素光度值;以及组合第一组体积密度值和第二组体积密度值以生成像素深度值。这允许以灵活的方式选择对光度值进行采样的空间位置,例如,以针对包含更大量细节的环境区域对更高密度的点进行采样。
在一些示例中,观察是第一观察,相机位姿估计是第一相机位姿估计,并且所述方法包括:在联合优化相机位姿估计和模型之后:获得与在第一观察之后的对环境的第二观察相关联的第二相机位姿估计;以及基于对环境的第二观察和模型优化第二相机位姿估计,从而生成对第二相机位姿估计的更新。通过这种方法,相机位姿估计可例如比模型更频繁地被更新,这可随时间提供准确的相机跟踪。
在一些示例中,观察包括第一帧和第二帧,并且渲染的图像数据表示与第一帧相对应的至少一个渲染的图像部分和与第二帧相对应的至少一个渲染的图像部分,相机位姿估计是与第一帧相关联的第一帧相机位姿估计,评估损失函数生成与第一帧相关联的第一损失和与第二帧相关联的第二损失,并且所述方法包括:获得与第二帧相对应的第二帧相机位姿估计,其中基于损失联合优化至少相机位姿估计和模型包括基于第一损失和第二损失联合优化第一帧相机位姿估计、第二帧相机位姿估计和模型,从而生成:对第一帧相机位姿估计的更新;对第二帧相机位姿估计的更新;以及对模型的更新。在这些示例中,可使用多个帧来优化模型和相机位姿估计,与使用单帧相比,这可提高准确度。
在一些示例中,图像数据是第一图像数据,观察是对环境的至少第一部分的观察,并且所述方法包括获得由相机装置捕获的第二图像数据,第二图像数据表示对环境的至少第二部分的观察,其中生成渲染的图像数据包括针对环境的第一部分生成渲染的图像数据而不针对环境的第二部分生成渲染的图像数据。换句话说,在这些示例中,用于优化的渲染的图像数据可以是可用图像数据的子集(例如,一帧的像素的子集和/或多个帧的子集),这允许比改为使用所有可用图像数据(例如,每个像素和/或每个帧)时更快地执行联合优化。
在一些示例中,图像数据是第一图像数据,观察是对环境的至少第一部分的观察,并且所述方法包括获得由相机装置捕获的第二图像数据,第二图像数据表示对环境的至少第二部分的观察,其中所述方法包括:确定要针对环境的第二部分生成另一个渲染的图像数据,用于进一步联合优化至少相机位姿估计和模型;基于相机位姿估计和模型生成另一个渲染的图像数据,用于进一步联合优化至少相机位姿估计和模型。以这种方式,例如,如果环境的新部分以前没有见过或者包含重要的新信息,则可选择性地确定是否要针对对环境的新部分的观察生成渲染的图像数据,这比不论每个新部分添加了多少信息都使用它来进行联合优化更有效。
在一些示例中,确定要针对环境的第二部分生成另一个渲染的图像数据包括确定要基于损失生成另一个渲染的图像数据。例如,损失表明新的观察的信息量有多大:对环境的包含更大量信息的部分(诸如高度详细的部分或模型尚未准确表示的部分)的观察往往具有更高的损失。因此,基于损失执行这种确定允许轻松识别此类观察,因此它们可用于联合优化程序。
在一些示例中,确定要针对环境的第二部分生成另一个渲染的图像数据包括:基于损失,针对环境的包括第一部分和第二部分的区域生成损失概率分布;以及基于损失概率分布,选择与第二图像数据相对应的一组像素,针对所述一组像素要生成另一个渲染的图像数据。例如,基于损失概率分布选择所述一组像素允许基于像素可能在更新模型和相机位姿估计时的有用程度(例如,它们与具有大量细节和/或模型未充分表示的环境部分相对应的可能性有多大)来对像素进行采样。
在一些示例中,观察包括由相机装置先前捕获的至少一个帧的至少一部分,并且所述方法包括:基于由相机装置先前捕获的多个帧中的相应帧的至少一部分与相应渲染帧的至少一对应部分之间的差异,从所述多个帧中选择至少一个帧,所述相应渲染帧是基于相机位姿估计和模型渲染的。以这种方式,可识别和选择与先前帧不同(例如,表示新的且先前未探索的环境区域)的帧以用于联合优化。与不论帧与先前帧有多相似都使用所有帧相比,这再次提高了联合优化的效率。
在一些示例中,观察包括由相机装置捕获的最近的帧的至少一部分。使用最近的帧允许在捕获新帧时重复地更新模型和相机位姿估计,以考虑新的观察。
根据本公开的第二方面,提供了一种系统,其包括:图像数据接口,所述图像数据接口用于接收由相机装置捕获的图像数据,图像数据表示对环境的至少一部分的观察;渲染引擎,所述渲染引擎被配置来:获得与观察相关联的相机位姿估计;基于相机位姿估计和环境的模型生成渲染的图像数据,其中模型用于生成环境的至少一部分的三维表示,其中渲染的图像数据表示与环境的至少一部分相对应的至少一个渲染的图像部分;并且基于图像数据和渲染的图像数据评估损失函数,从而生成损失;以及优化器,所述优化器被配置来:基于损失联合优化至少相机位姿估计和模型,从而生成:对相机位姿估计的更新;和对模型的更新。
在一些示例中,渲染引擎被配置来:评估至少一个渲染的图像部分相对于相机位姿估计的第一梯度,从而生成第一梯度值;并且评估至少一个渲染的图像部分相对于模型的一组参数的第二梯度,从而生成第二梯度值;并且优化器被配置来:通过使用第一梯度值和第二梯度值应用基于梯度的优化算法来联合优化相机位姿估计和模型。这种方法提供了模型和相机位姿估计的直接优化。
在一些示例中,观察是第一观察,相机位姿估计是第一相机位姿估计,并且所述系统包括跟踪系统,所述跟踪系统被配置来在优化器联合优化相机位姿估计和模型之后:获得与在第一观察之后的对环境的第二观察相关联的第二相机位姿估计;并且基于对环境的第二观察和模型优化第二相机位姿估计,从而生成对第二相机位姿估计的更新。以这种方式,跟踪系统可更新由优化器获得的相机位姿估计,以继续改进相机位姿估计,例如与模型相比更频繁地更新相机位姿估计。
根据本公开的第三方面,提供了一种机器人装置,其包括:相机装置,所述相机装置被配置来获得表示对环境的至少一部分的观察的图像数据;由本公开的第二方面提供的系统;以及一个或多个致动器,所述一个或多个致动器用于使得机器人装置能够在环境内导航。
在一些示例中,系统被配置来控制一个或多个致动器基于模型控制机器人装置在环境内的导航。以这种方式,机器人装置可根据模型在环境内移动,以便在环境内执行精确的任务和运动模式。
根据本公开的第四方面,提供了一种包括计算机可执行指令的非暂态计算机可读存储介质,所述计算机可执行指令在由处理器执行时使计算装置执行本文描述的方法中的任一种(单独或彼此组合)。
另外的特征将从参考附图进行的以下描述中变得显而易见。
附图说明
图1是示出根据示例的用于联合优化与对环境的至少一部分的观察相关联的至少相机位姿估计和环境的模型的方法的示意图;
图2是示出根据示例的用于生成渲染的图像数据的方法的示意图;
图3是示出根据示例的用于跟踪相机位姿的方法的示意图;
图4是示出根据示例的用于选择图像数据的一部分来优化环境的模型的方法的示意图;
图5A和图5B是示出根据另外的示例的用于选择图像数据的一部分来优化环境的模型的方法的示意图;
图6是示出根据另外的示例的用于选择图像数据的一部分来优化环境的模型的方法的示意图;
图7是示出根据另外的示例的用于选择图像数据的一部分来优化环境的模型的方法的示意图;
图8是示出根据另外的示例的用于选择图像数据的一部分来优化环境的模型的方法的示意图;
图9是示出根据示例的用于同时定位和映射(SLAM)系统的管线的示意图;
图10是示出根据示例的与本文的方法一起使用的系统的示意图;以及
图11是示出根据示例的机器人装置的示意图。
具体实施方式
在本文描述的示例中,图像数据是由相机装置捕获的。图像数据表示对环境的观察,所述环境例如是三维(3D)空间。获得与观察相关联的相机位姿估计。相机位姿估计例如表示相机装置在进行观察的点处的位姿(例如,位置和取向)。渲染的图像数据是基于相机位姿估计和环境的模型生成的。模型用于生成环境的3D表示。例如,模型可以是被配置来将与环境中的位置相对应的空间坐标映射到与所述位置相关联的光度值和体积密度值的神经网络,体积密度值用于导出所述位置处的深度值。渲染的图像数据表示与被观察的环境部分相对应的渲染的图像部分。基于图像数据和渲染的图像数据评估损失函数以生成损失。基于损失,联合优化至少相机位姿估计和模型以生成对相机位姿估计的更新和对模型的更新。例如,这种方法允许对环境进行学习,以便迭代地改进相机位姿估计和环境的模型。例如,以这种方式优化模型可提高使用模型生成的环境的3D表示的准确度。这种联合优化可应用在SLAM系统中,其中与联合优化并行地,跟踪系统相对于所更新的模型针对由相机装置捕获的最新帧不断优化相机位姿估计。
在本文描述的一些示例中,选择图像数据的一部分来优化环境的模型,诸如上文讨论的模型,所述部分表示对环境的观察的一部分。在这些示例中,基于环境的至少一部分(例如,如上文所讨论的图像部分)的二维(2D)表示与对环境的相同至少一部分的观察之间的差异来选择图像数据的所述部分。通过选择图像数据的一部分来优化模型,与其他方法(诸如利用整个图像进行优化的方法)相比,减少了针对对环境的每次观察来优化模型所需的处理能力和存储器容量。
应当理解,在本文描述的示例中,可将用于选择图像数据的一部分的方法与用于联合优化相机位姿估计和模型的方法进行组合,使得使用图像数据的一部分而不是例如所有图像数据来执行联合优化。例如,可使用由相机装置捕获的选定帧集合和/或选定数量的像素来执行联合优化。这些选择可由在图像数据与渲染的图像数据之间评估的差异来指导,其中此类差异可形成用于执行联合优化的所评估损失函数的一部分。例如,这种方法降低了联合优化过程的处理能力和存储器要求。应用于SLAM系统时,这种方法允许SLAM系统具有用于生成环境的密集3D表示的模型,其中可实时执行模型(以及因此能够使用所述模型获得的3D表示)的优化。
图1是示出用于联合优化与对环境的至少一部分的观察相关联的至少相机位姿估计102和环境的模型104的方法100的示意图。下文参考图10更详细地描述应用方法100的系统的示例。在本文描述的示例中,环境例如是3D空间,3D空间可以是内部和/或外部物理空间,例如房间或地理位置的至少一部分。环境可包括下表面,例如地板,或者可以是空中或地外环境。环境的模型104用于生成环境的与观察相对应的至少一部分的三维表示,如将参考图2更详细地描述的。
在图1的方法100中,获得表示对环境的至少一部分的观察的图像数据106。图像数据106由相机装置捕获。相机装置可被布置来以数字或模拟形式记录由于观察环境而产生的数据。图像数据106可包括光度数据(例如颜色数据)。在一些示例中,光度数据可包括针对给定分辨率的红、绿、蓝(RGB)像素值。在其他示例中,可使用其他颜色空间,并且/或者光度数据可包括单像素值或灰度像素值。图像数据106可包括指示距相机装置的距离的深度数据,例如,每个像素或图像元素可表示环境的一部分距相机装置的距离。相机装置可包括被布置来捕获图像数据的所谓的RGB-D相机,所述图像数据包括呈RGB数据形式的光度数据和深度(“D”)数据两者。在一些情况下,图像数据106包括随时间捕获的图像数据,例如多个帧。在此类情况下,图像数据可被认为是视频数据,并且相机装置可被认为是摄像机。
在图1的方法100中,渲染引擎108被配置来获得与观察相关联的相机位姿估计102。在本文描述的示例中,相机位姿估计102是指在捕获表示观察的图像数据106时相机装置的取向和位置。相机装置的取向和位置可参考六自由度(6DOF)在三个维度中限定,即:位置在三个空间维度中的每一个内限定,例如由[x,y,z]坐标来限定,并且取向由表示围绕三个轴线中的每一个的旋转的角度矢量,例如[θxyz]来限定。位置和取向可被视为例如相对于在环境的3D坐标系内限定的原点在三个维度内的变换。3D坐标系可被称为“世界”坐标系,使得相机位姿估计102(有时表示为TWC)将相机装置的位置和取向表示为相对于世界坐标系的原点的变换。例如,[x,y,z]坐标可表示从3D坐标系内的原点到特定位置的平移,并且角度矢量[θxyz]可限定在3D坐标系内的旋转。可将具有6DOF的变换限定为矩阵,使得与矩阵相乘来应用变换。相机装置的位姿可随时间变化,例如随着视频数据或一系列静止图像被记录而变化,使得在时间t+1的相机位姿估计可与在时间t的相机位姿估计不同。在机器人装置包括相机装置的情况下,位姿可随着机器人装置在环境内四处移动而变化。
在图1的方法100中,渲染引擎108基于相机位姿估计102和模型104生成渲染的图像数据110。渲染的图像数据110表示与环境的至少一部分相对应的至少一个渲染的图像部分。例如,渲染的图像数据110可表示环境的一部分的渲染图像或这种渲染图像的至少一部分(例如,渲染图像的一个或多个像素,所述像素可以是连续的或不连续的)。
模型104用于生成环境的至少一部分的3D表示。在一些示例中,模型104被配置来将与环境内的位置相对应的空间坐标映射到光度值和体积密度值,两者都与环境内的位置相关联。体积密度值用于导出与环境内的位置相关联的深度值。以这种方式,光度值和体积密度值提供环境的至少一部分的3D表示。
在一些情况下,模型104可能够用于获得环境的至少一部分的密集3D表示。例如,模型104可用于获得环境内大量位置(例如数十万或数百万个位置)的光度值和体积密度值,以便提供环境的有效连续的3D表示,它可被认为是密集3D表示。可将这种表示与环境的稀疏表示进行比较,所述稀疏表示可例如由十到一百个点来表示。尽管稀疏表示通常具有更低的处理能力和存储器要求,并因此可能使它们更容易用于实时SLAM系统,但密集表示通常更稳健,因为它们提供了环境的更完整的表示。使用密集表示还可改进相机位姿估计102的跟踪和重新定位,这是由于密集表示提供了环境的更完整的表示。在本文的示例中,通过选择图像数据106的一部分来优化环境的模型(例如,而不是使用整个图像),可降低处理能力和存储器要求。这促进了能够在实时SLAM系统内生成密集3D表示的模型104的使用。
在示例中,模型104可将环境内的给定空间坐标映射到光度值和体积密度值。因此,这允许使用模型104获得各种分辨率的3D表示,而不是环境的体素和点云表示,体素和点云表示具有固定分辨率。例如,使用诸如此类的模型还使得模型104能够预测环境内不一定由相机装置直接观察到的位置(诸如被遮挡或部分遮挡的位置)的光度值和体积密度值。因此,模型104在这些情况下可被认为本身提供了环境的隐式连续3D模型,而不是基于体素和点云的表示,基于体素和点云的表示提供了对环境中的离散点的3D表示。
参考图1,在一些示例中,生成渲染的图像数据110包括使用模型104生成环境的至少一部分的3D表示。例如,可针对环境内的特定位置(例如,对应于3D空间中的特定点)获得3D表示。然后可使用3D表示来执行渲染过程以生成至少一个渲染的图像部分,所述至少一个渲染的图像部分提供环境的至少一部分的二维(2D)表示。诸如此类的示例中的渲染过程相对于相机位姿估计102和模型104的一组参数是可区分的。因此,这允许使用基于梯度的优化算法来联合优化相机位姿估计102和模型104。下文参考图2详细地提供如何生成渲染的图像数据110以及渲染过程本身的示例。
在图1的方法100中,渲染引擎108基于图像数据106和渲染的图像数据110来评估损失函数112,从而生成损失114。损失114用于联合优化至少相机位姿估计102和模型104,如下文所讨论。损失函数112可基于图像数据106与渲染的图像数据110之间的比较(例如差异)。因此,所生成的损失114可提供对渲染的图像数据110相对于由相机装置捕获的图像数据106的准确度的测量,图像数据106例如对应于对环境的至少一部分的测量的观察。在示例中,联合优化相机位姿估计102和模型104以便减小损失114的值,从而减少测量的2D表示(由图像数据106表示)与预测的2D表示(由渲染的图像数据110表示)之间的差异。
在一些示例中,由相机装置捕获的图像数据106包括光度数据(例如,颜色数据),所述光度数据包括至少一个测量的光度图像部分。换句话说,至少一个测量的光度图像部分可表示至少一个图像部分的光度特性。在这个示例中,至少一个渲染的图像部分还可包括对应的至少一个渲染的光度图像部分,所述至少一个渲染的光度图像部分类似地表示至少一个渲染的图像部分(它对应于环境的与至少一个图像部分相同的至少一个部分)的光度特性。在这种情况下,损失函数112包括基于至少一个测量的光度图像部分和至少一个渲染的光度图像部分的光度误差Lp。在这种情况下,光度误差可例如是至少一个测量的光度图像部分与至少一个渲染的光度图像部分之间的差异。在这个示例中,至少相机位姿估计102和模型104的联合优化可例如涉及减小图像数据106与渲染的图像数据110之间的光度误差,以便减小测量的2D表示与预测的2D表示之间的光度差异。
在其他示例中,由相机装置捕获的图像数据106另外或替代地包括深度数据,所述深度数据包括至少一个测量的深度图像部分。换句话说,至少一个测量的深度图像部分可表示与至少一个图像部分相对应的深度值。在这个示例中,至少一个渲染的图像部分还可包括对应的至少一个渲染的深度图像部分,所述至少一个渲染的深度图像部分类似地表示至少一个渲染的图像部分的深度值。在这种情况下,损失函数112包括基于至少一个测量的几何图像部分和至少一个渲染的几何图像部分的几何误差Lg。在这种情况下,几何误差可例如是至少一个测量的几何图像部分与至少一个渲染的几何图像部分之间的差异。在这个示例中,至少相机位姿估计102和模型104的联合优化可例如涉及减小图像数据106与渲染的图像数据110之间的几何误差,以便减小测量的2D表示与预测的2D表示之间的深度值差异。
在几何误差Lg被用作损失函数112中的一项的示例中,可修改几何误差以考虑与渲染的深度图像部分相关联的不确定性。以这种方式,可调整损失函数112,例如使得具有更大不确定性的渲染的深度图像部分对损失函数112中所使用的几何误差有更少的贡献,从而提高用于联合优化相机位姿估计102和模型104的几何误差的确定性。具有较大不确定性的渲染的深度图像部分的示例是与环境中的对象边界相对应的渲染的深度图像部分。与对象边界相对应的渲染的深度图像部分通常比与环境中的均匀表面相对应的渲染的深度图像部分具有更大的相关联不确定性,因为对象边界往往对应于突然的且相对大的深度变化。在这些示例中的一些中,深度数据包括多个测量的深度图像部分,并且至少一个渲染的图像部分包括多个渲染的深度图像部分,每个渲染的深度图像部分对应于多个测量的深度图像部分中的相应的测量的深度图像部分。在这种情况下,几何误差包括多个几何误差项,每一项对应于多个测量的深度图像部分中的不同的测量的深度图像部分。在这些示例中,图1的方法100包括相对于与多个测量的深度图像部分中的第二测量的深度图像部分相关联的第二几何误差项减少与多个测量的深度图像部分中的第一测量的深度图像部分相关联的第一几何误差项对几何误差的贡献。贡献的减少可基于与多个测量的深度图像部分中的第一测量的深度图像部分相关联的第一不确定性量度。另外或替代地,贡献的减少可基于与多个测量的深度图像部分中的第二测量的深度图像部分相关联的第二不确定性量度。例如,第一不确定性量度可大于第二不确定性量度(例如,如果第一几何误差项是针对环境的与对象边界相对应的区域,并且第二几何误差项是针对环境的与均匀表面相对应的区域)。在此类情况下,例如如果第一不确定性量度满足特定条件(例如,如果第一不确定性量度的量值超过阈值,或者如果第一不确定性量度的量值比第二不确定性量度大一定比例),则可减少第一几何误差项的贡献。
在图1的方法100中,优化器116基于损失114联合优化至少相机位姿估计102和模型104。这生成对相机位姿估计的更新118和对模型的更新120。对模型的更新120可以是对所使用的模型104的一组参数的更新。联合优化可涉及针对不同相机位姿估计102和模型104的所述一组参数的不同值迭代地评估损失114,以便获得相机位姿估计102和模型104的一组参数,损失114的特定值(例如最小值,或满足特定条件(诸如小于或等于阈值)的值)是针对所述相机位姿估计和模型的所述一组参数获得的。以这种方式,如本文所描述的联合优化可被认为涉及在同一优化过程内(例如在单个优化过程内)优化相机位姿估计102和模型104两者。这可被视为与单独优化相机位姿估计102和模型104相反,单独优化例如是通过:针对不同相机位姿估计102迭代地评估一个损失,直到获得所述损失的与优化的相机位姿估计相对应的特定值,并且针对模型104的所述一组参数的不同值单独迭代地评估另一个损失,直到获得另一个损失的与模型104的优化的一组参数相对应的特定值。因此,本文的示例中的联合优化提供了用于生成对相机位姿估计的更新118和对模型的更新120的更有效的机制。
例如,在光度误差Lp和几何误差Lg都对损失函数112有贡献的情况下,要执行的联合优化可表达如下:
其中θ表示模型104的一组参数,T是相机位姿估计102,并且λp是用于相对于几何误差调整光度误差对损失函数112的贡献的因子,其中因子λp例如可以是预先确定的(例如,通过凭经验识别因子的合适值,这个值适当地对光度误差项和几何误差项的贡献进行平衡)。联合优化可通过应用基于梯度的优化算法来执行,诸如Kingma等人在2015年国际学习表示会议上提出的论文“Adam:A Method for Stochastic Optimization”中描述的Adam优化器算法,其内容通过引用并入本文。
诸如Adam优化器算法的基于梯度的优化算法利用损失函数112相对于任何要优化的变量的梯度,在这种情况下,所述变量是相机位姿估计102和模型104的所述一组参数。在当前情况下,这涉及评估由渲染的图像数据110表示的渲染的图像部分相对于相机位姿估计102和模型104的所述一组参数的梯度(由图像数据106表示的图像部分表示测量的观察,并因此不取决于相机位姿估计102和模型104的所述一组参数)。这些梯度可在用于获得渲染的图像数据110的可区分渲染过程期间获得。在此类示例中,方法100包括渲染引擎108评估至少一个渲染的图像部分相对于相机位姿估计102的第一梯度,从而生成第一梯度值。渲染引擎108还评估至少一个渲染的图像部分相对于模型104的所述一组参数的第二梯度,从而生成第二梯度值。这使得优化器116能够使用第一梯度值和第二梯度值来应用基于梯度的优化算法以生成对相机位姿估计的更新118和对模型的所述一组参数的更新120。
在一些示例中,例如当图像数据106包括随时间捕获的图像数据时,对环境的观察包括多个帧。针对每一帧,都有一个对应的相机位姿估计。在这些情况下,联合优化可包括联合优化模型104和与多个帧相对应的多个相机位姿估计。例如,损失函数112可包括多个误差项,例如每帧至少一个误差项。例如,损失函数112可包括每帧的光度误差或几何误差中的至少一者。与使用单个帧相比,这可提高准确度。
例如,观察可包括与第一帧相机位姿估计相关联的第一帧和与第二帧相机位姿估计相关联的第二帧。在这种示例中,渲染的图像数据110可表示与第一帧相对应的至少一个渲染的图像部分和与第二帧相对应的至少一个渲染的图像部分。在这个示例中,评估损失函数112会生成与第一帧相关联的第一损失和与第二帧相关联的第二损失。然后,优化器116可基于第一损失和第二损失联合优化第一帧相机位姿估计、第二帧相机位姿估计和模型104。这生成对第一帧相机位姿估计的更新、对第二帧相机位姿估计的更新和对模型104的更新。
这个示例可容易推广到要用于联合优化模型104和W个相机位姿估计的W个帧,其中W表示从图像数据106中选择的帧的数量。W个相机位姿估计由集合{Ti}表示,每个相机位姿估计对应于W个帧中的一个。在这种情况下,联合优化可表达如下:
其中光度误差Lp和几何误差Lg可各自包括来自第一损失和第二损失的贡献,并且θ表示模型104的所述一组参数。
在一些示例中,包括由相机装置捕获的至少一个帧的至少一部分的对环境的至少一部分的观察可用于从多个帧中选择至少一个帧来包括在用于联合优化模型104的W个帧内。多个帧可能已经由相机装置先前捕获。以这种方式,可采用选择标准来选择要添加到用于联合优化相机位姿估计102和模型104的W个帧的帧。例如,可基于多个帧中的相应帧的至少一部分与相应渲染帧的至少一对应部分之间的差异来选择至少一个帧。例如,在执行W个相机位姿估计和模型104的进一步联合优化之前,可能已经如上所述基于W个相机位姿估计和模型104渲染了相应的渲染帧。在一些示例中,可选择最近的帧来包括在用于联合优化W个相机位姿估计和模型104的W个帧中。在此类情况下,不论最近的帧与对应的渲染帧之间的差异如何,都可选择最近的帧。例如,使用最近的帧允许随着获得新帧而不断更新相机位姿估计和模型104。下文参考图6更详细地讨论用于选择W个帧(其也可被称为“关键帧”)的方法。
图2是示出用于生成渲染的图像数据(诸如图1的渲染的图像数据110)的方法122的示意图。在这个示例中,用于生成环境的3D表示的模型是由Fθ给出的神经网络124,其中θ表示神经网络124的一组参数。神经网络124可例如是全连接神经网络。在模型是神经网络124的情况下,通过上述联合优化生成的对模型的更新是对神经网络124的所述一组参数的更新。合适的神经网络124例如是具有四个隐藏层的多层感知器(MLP),每个隐藏层具有特征尺寸256和两个输出头。然而,这仅仅是示例,并且在其他示例中可使用其他神经网络(例如,具有不同配置的MLP或与MLP不同的其他类型的神经网络)。
相对于环境内的位置126a示出了由神经网络124执行的映射的示例,所述位置具有由p=(x,y,z)给出的对应的3D空间坐标128。神经网络124将空间坐标128映射到空间坐标128的3D表示130,所述3D表示包括光度值c和用于导出如上所述的深度值的体积密度值ρ。光度值c可例如包括分别指示红、绿、蓝像素值的红、绿、蓝(RGB)矢量[R,G,B]。因此,由神经网络124执行的映射可简明地表示为(c,ρ)=Fθ(p)。
在一些示例中,在将空间坐标128输入到神经网络124中之前,可将空间坐标128映射到更高维空间(例如,n维空间),以提高神经网络124考虑环境中颜色和几何形状的高频变化的能力。例如,在将空间坐标128输入到神经网络124之前,可将映射sin(Bp)应用于所述空间坐标以获得位置嵌入,其中B是从正态分布采样的[n×3]矩阵,它可被称为嵌入矩阵。在这些示例中,可将位置嵌入作为输入供应给神经网络124。位置嵌入还可串接到神经网络124的一层,例如串接到MLP的第二激活层。以这种方式,嵌入矩阵B可被认为是神经网络124的单个全连接层,使得与所述单个全连接层相关联的激活函数是正弦激活函数。在此类情况下,在联合优化过程期间更新的神经网络124的所述一组参数可包括嵌入矩阵B的一组元素。
图2的方法122用于渲染由渲染的图像数据110表示的至少一个渲染的图像部分134的像素132。像素132在这个示例中具有像素坐标[u,v]。方法122包括应用光线跟踪来识别沿着光线136的一组空间坐标126a-c。光线136基于相机装置138的相机位姿估计和要渲染的至少一个渲染的图像部分134的像素132的像素坐标来确定。例如,可使用以下方程式在世界坐标系中确定光线136:
r=TWCK-1[u,v],
其中TWC是相机装置138的相机位姿估计并且K-1是与相机装置138相关联的相机内参矩阵的逆矩阵。相机位姿估计TWC可例如是相对于在如上文所讨论的3D世界坐标系中限定的原点的变换。相机内参矩阵K(例如,3×3矩阵)表示相机装置138的内在特性,诸如焦距、主点偏移和轴倾斜。相机内参矩阵用于将3D世界坐标变换为2D图像坐标,并因此应用逆矩阵K-1将像素坐标[u,v]映射到3D世界坐标。
图2中的所述一组空间坐标126a-c可不一定是沿着光线136的三个点,而是通常可以是沿着光线136的N个点,每个点具有空间坐标pi=dir,其中每个点具有一组深度值{d1,…,dN}中的对应的深度值。方法122包括使用模型124处理所述一组空间坐标126a-c,从而生成一组光度值ci和一组体积密度值ρi。所述一组光度值和所述一组体积密度值中的每一者将与所述一组空间坐标126a-c中的相应空间坐标相关联。
图2的方法122然后包括用于生成渲染的图像数据110的渲染过程140,所述渲染过程在这个示例中是可区分的渲染过程。渲染过程140例如包括组合所述一组光度值以生成与像素132相关联的像素光度值。渲染过程122例如还包括组合所述一组体积密度值以生成与像素132相关联的像素深度值。如本领域技术人员将理解的,可区分的渲染允许例如通过使用渲染函数来获得3D场景的2D表示,所述渲染函数采用各种场景参数作为输入并且输出2D表示(例如,包括光度值和/或深度值)。在这种情况下,输入到渲染函数的参数包括神经网络124的参数和相机位姿估计,并且可包括其他参数,诸如其他相机参数、照明参数等。Loper等人在计算机视觉-ECCV 2014(ECCV 2014,计算机科学讲义,第8695卷)中公开的“OpenDR:AnApproximate Differentiable Rendered”中描述了可区分的渲染的示例,其内容通过引用并入本文。可区分的渲染涉及计算输出表示的梯度,例如以获得渲染的图像部分相对于相机位姿估计和/或神经网络124的至少一个参数的梯度。然后,可在基于梯度的优化程序,诸如上文讨论的由Adam优化器实现的优化程序中使用所计算的梯度,以便联合优化相机位姿估计和神经网络124的至少一个参数。在这种情况下,由以上方程式描述的光线136取决于相机装置138的相机位姿估计TWC,从而允许评估光线136相对于相机位姿估计TWC的梯度。因此,光线的梯度提供了沿着光线136的所述一组空间坐标126a-c相对于相机位姿估计TWC的梯度。然后,例如通过遵循链式法则,可使所述一组空间坐标126a-c的梯度传播通过图2的方法122的其余部分,以获得渲染的图像部分相对于相机位姿估计的梯度。在一个示例中,使用由Fθ给出的神经网络124处理一组空间坐标126a-c,其中θ表示神经网络124的一组参数,以生成所述一组光度值ci和所述一组体积密度值ρi。在这个示例中,可计算所述一组光度值和所述一组体积密度值相对于神经网络124的所述一组参数中的每一个的梯度。使用这些梯度应用链式法则,可计算像素光度值和像素深度值(例如,从如下文所讨论的所述一组光度值和体积密度值获得)相对于神经网络124的所述一组参数中的每一个的梯度。
例如,可将所述一组体积密度值变换成一组占用概率oi,所述占用概率表示对象占用所述一组空间坐标126a-c中的每一个的概率。所述一组占用概率可由下式给出:
其中δi=di+1-di并且表示所述一组空间坐标126a-c中的相邻空间坐标(di+1和di)之间的距离。所述一组占用概率可用于导出一组光线终止概率wi,所述光线终止概率表示光线136在所述一组空间坐标126a-c中的每一个处将会终止(例如将被对象遮挡)的概率。所述一组光线终止概率可由下式给出:
光线终止概率在这个示例中由假设沿着光线136直到点i-1的所有点未被占据的情况下点i被占据的概率给出。
与像素132相关联的像素光度值可通过用所述一组光线终止概率中的相应光线终止概率对所述一组光度值中的每一个进行加权来导出,使得:
类似地,像素深度值可通过用所述一组光线终止概率中的相应光线终止概率对所述一组深度值中的每一个进行加权来导出,使得:
在一些示例中,获得与渲染的图像数据110的渲染相关联的不确定性量度。示例性不确定性量度是沿着光线136的深度变化,由下式给出:
/>
深度变化可用于控制相应像素对几何误差的贡献,如上文参考图1的方法100所描述的。例如,深度变化可用作不确定性量度,所述不确定性量度然后可用于对相应像素对几何误差的贡献进行加权。
在另一个示例中,在图2的方法122中应用光线跟踪包括应用光线跟踪来识别沿着光线136的第二组空间坐标142a-e。第二组空间坐标142a-e可不一定是沿着光线136的五个点,而是通常可以是沿着光线136的N2个点,每个点具有沿着光线136的空间坐标。在这个示例中,第二组空间坐标142a-e基于概率分布来确定,所述概率分布随所述一组体积密度值ρi以及第一组空间坐标126a-c中的相邻空间坐标之间的距离δi而变化。例如,概率分布可基于上文限定的所述一组光线终止概率wi,使得第二组空间坐标包括在具有更大光线终止概率的区域中的更多空间坐标。以这种方式,选定的第二组空间坐标142a-e可位于包含更多可见内容的环境点中,而不是位于在自由空间中或在环境的被遮挡区域中的点中,这两种点都可对生成的像素光度值和深度值具有更少的贡献。例如,沿着光线136的空间坐标144位于对象146后面的被遮挡区域中,并因此不包括在第二组空间坐标142a-e中。通过基于环境点对生成的像素光度值和深度值的预期影响(例如,基于概率分布)来选择环境点中的第二组空间坐标142a-e,这可增加渲染过程140的渲染效率。
在这个示例中,使用模型124处理第二组空间坐标142a-e,从而生成第二组光度值和第二组体积密度值。然后将与所述一组空间坐标126a-c相关联的第一组光度值和第二组光度值组合以生成像素光度值在这种情况下,可使用与上文相同的方法来生成像素光度值/>但是组合来自第一组光度值和第二组光度值两者对像素光度值的贡献。这可提高像素光度值/>的准确度。
在这个示例中,还将与所述一组空间坐标126a-c相关联的第一组体积密度值和第二组体积密度值组合以生成像素深度值在这种情况下,可使用与上文相同的方法来生成像素深度值/>但是组合来自第一组体积密度值和第二组体积密度值两者对像素深度值的贡献,这可类似地提高像素深度值/>的准确度。像素光度值/>和像素深度值/>可被认为对应于环境的至少一部分的2D表示,所述2D表示是使用模型104生成的。
针对由相机装置捕获的每个图像中的每个像素渲染完整图像并且使用完整图像联合优化相机位姿估计和环境的模型,对于实时应用上述方法来说可能太慢(尽管这些方法在不需要对环境进行实时建模的情况下可能有用)。出于类似的原因,渲染与图像数据中所包括的每个帧(例如视频流的每个帧)相对应的图像并且联合优化模型以及与每个帧相关联的相机位姿估计中的每一个对于实时使用上述方法也可能太慢。
为了允许更快速地执行本文的方法并且减少处理和功耗,本文的一些示例涉及针对图像内的选定数量的像素和/或针对视频流内的选定数量的帧执行上述渲染和联合优化。这例如允许例如当机器人装置正在环境中导航时实时执行本文的方法,以允许机器人装置
因此,本文描述的方法可包括获得第一图像数据和第二图像数据,每个图像数据由相机装置捕获。第一图像数据可表示对环境的至少第一部分的观察,并且第二图像数据可表示对环境的至少第二部分的观察。对环境的各部分的这些观察可对应于具有图像的相应像素和/或视频流内的相应帧。在此类示例中,如上所述生成渲染的图像数据110可包括针对环境的第一部分生成渲染的图像数据110而不针对环境的第二部分生成渲染的图像数据110。换句话说,可针对环境的与图像数据106的像素和/或帧的子集相对应的部分生成渲染的图像数据110,而不是例如针对图像数据106的整个帧和/或所接收的图像数据106的每个帧生成渲染的图像数据110。以这种方式,可减少生成渲染的图像数据110所需的处理,并且可减少在联合优化过程中使用的数据量。
在一些示例中,在至少相机位姿估计和模型的第一联合优化期间获取的信息可用于通知至少相机位姿估计和模型的进一步联合优化,例如通知在进一步联合优化中要使用什么数据。例如,这使得能够选择在联合优化模型和相机位姿估计时可能比其他像素和/或帧具有更大的益处的图像内的像素和/或视频流内的帧。例如,选定的像素和/或帧与其他像素和/或帧相比可与更高的损失相关联,因此例如使用这些像素和/或帧联合优化模型和相机位姿估计提供了对模型和相机位姿估计的更大改进。
例如,上述方法可包括确定要针对环境的第二部分生成另一个渲染的图像数据,对第二部分的观察由第二图像数据表示。所述另一个渲染的图像数据可用于联合优化至少相机位姿估计和环境的模型。响应于这样的确定,可使用上述方法基于相机位姿估计和模型生成另一个渲染的图像数据。确定要生成另一个渲染的图像数据可在渲染的图像数据110已经被生成并且用于评估损失函数且基于损失联合优化至少相机位姿估计和模型之后执行。在这种情况下,损失可用于确定要生成另一个渲染的图像数据。例如,可针对环境的具有高损失的部分生成另一个渲染的图像数据。例如,确定要生成另一个渲染的图像数据可包括基于损失生成环境的包括环境的第一部分和第二部分的区域的损失概率分布。损失概率分布可表示损失在环境区域上如何分布,例如以便识别所述区域内具有更高损失的区域。基于损失概率分布,确定要生成另一个渲染的图像数据可包括选择与第二图像数据相对应的一组像素,针对所述一组像素要生成另一个渲染的图像数据。以这种方式,另一个渲染的图像数据可例如针对具有更高损失的区域生成,然后用于联合优化至少相机位姿估计和模型。
下文参考图4至图8更详细地描述了选择像素和/或帧用于渲染和优化的示例性方法。
现在参考图3,图3是示出用于跟踪相机位姿的方法148的示意图。图3的方法148涉及执行第一相机位姿估计102和模型104的联合优化150,例如,如上文参考图1和图2所解释的。
图3的方法148包括获得与对环境的第二观察相关联的第二相机位姿估计152。在这种情况下,第二观察是在与第一相机位姿估计102相关联的第一观察之后。例如,第一观察可包括视频流的第一帧,并且第二观察可包括在第一帧之后的视频流的第二帧。在图3的方法148中,跟踪系统154基于对环境的第二观察和模型104来优化第二相机位姿估计152,从而生成对第二相机位姿估计的更新156。由于模型104已经在联合优化150期间被优化,因此将第二相机位姿估计152与环境的更加新的模型104对齐以提供对第二相机位姿估计的更新156,所述更新更准确地表示与对环境的第二观察相关联的相机位姿。
在一些示例中,方法148可包括基于对环境的第二观察和与第二观察相对应的渲染的图像部分来评估损失函数。可使用模型104来生成与第二观察相对应的渲染的图像部分。以这种方式评估损失函数可生成与对环境的第二观察相关联的损失。第二相机位姿估计152的优化可基于与第二观察相关联的损失来执行。例如,优化可包括针对不同的第二相机位姿估计152迭代地评估与第二观察相关联的损失,以便获得第二相机位姿估计,针对所述第二相机位姿估计获得与第二观察相关联的损失的特定值(例如,最小值,或满足特定条件的值)。所评估的损失函数可与如上文参考图1所讨论的为了联合优化至少相机位姿估计和模型而评估的损失函数相同,并且可使用类似的优化算法,例如Adam优化器算法。然而,可相对于第二位姿估计152而不相对于模型执行优化(因为在这种情况下,模型的参数在跟踪系统154对第二相机位姿估计152的优化期间是固定的)。
如上所述,在本文的示例中,选择由相机装置捕获的图像数据的一部分来优化环境的模型。例如,这降低了处理能力和存储器要求。
图4是示出用于选择图像数据160的一部分来优化环境的模型162的方法158的示意图。下文参考图10更详细地描述应用方法158的系统的示例。
图4的方法158包括获得由相机装置捕获的图像数据162。图像数据162表示对环境(例如,如上所述的3D空间)的观察。图4的方法158包括使用环境的模型166获得环境的至少一部分的2D表示164。模型166可以是上文参考图1描述的模型104,并且可以是如上文参考图2所描述的神经网络124,其中在此类情况下,获得2D表示包括将渲染过程应用于神经网络的输出。以这种方式,模型166可用于生成环境的至少一部分的3D表示。然后可使用3D表示获得环境的至少一部分的2D表示164。
在图4的方法158中,差异评估器168评估2D表示164与观察的至少一部分之间的差异170。观察的至少一部分由图像数据162表示并且是由2D表示164表示的环境的至少一部分。因此,差异170提供了使用模型166获得的2D表示164相对于由相机装置捕获的环境的相同至少一部分的准确度量度。
在一些示例中,差异170表示几何误差。例如,对环境的观察可包括由相机装置(诸如RGB-D相机)捕获的对环境的测量的深度观察。在这种情况下,使用模型166获得的2D表示164包括环境的至少一部分的渲染的深度表示。在此类情况下,由差异170表示的几何误差基于测量的深度观察和渲染的深度表示。以这种方式,与2D表示164相关联的几何误差可用于选择图像数据160的一部分来优化环境的模型166。然而,在其他示例中,差异170可表示不同的误差,诸如光度误差。
基于差异170,选择图像数据160的所述部分来优化环境的模型166。图像数据160的所述部分表示对环境的观察的一部分。通过选择图像数据160的一部分来优化模型166,例如而不是使用整个图像数据162,减少了用于针对对环境的每次观察来优化模型166的处理能力和存储器容量。例如,这允许更有效地优化模型166。在对环境的观察包括至少一个图像的一些示例中,选择图像数据160的所述部分包括选择至少一个图像的像素子集。在此类示例中,至少一个图像可包括多个帧。在此类情况下,选择图像数据160的所述部分可包括选择帧中的一个或者多个帧中的至少两个的像素子集。
例如,基于差异170来选择图像数据160的所述部分使得能够选择存在更大差异170的部分。这可例如使得能够使用图像数据160的一部分执行模型166的优化,所述部分表示由相机装置捕获的对环境的观察的未探索的或探索更少的部分。例如,与基于环境的先前已经频繁探索的部分(所述部分可能已经由模型166准确地表示)来优化模型166相比,这导致优化更快地收敛。例如,可选择存在更高差异的图像数据160的一部分,这表明使用模型166获得的2D表示164与由相机装置捕获的观察的对应的至少一部分的偏差程度更大。选定的图像数据160的所述部分的尺寸(例如,对应于由图像数据160的所述部分表示的环境区域的尺寸)可还或附加地基于差异170。图像数据160的所述部分的尺寸可对应于用于优化模型166的从图像内选择的像素的数量和/或从视频流内选择的帧的数量。
评估差异170可包括通过评估观察的第一部分与2D表示164的对应部分之间的差异来生成第一差异。评估差异170然后可包括通过评估观察的第二部分与2D表示164的对应部分之间的差异来生成第二差异。在这种情况下,选择图像数据160的所述部分例如包括选择与观察的第一部分相对应的图像数据的第一部分以及选择与观察的第二部分相对应的图像数据的第二部分。图像数据的第一部分可表示第一数量的数据点,并且图像数据的第二部分可表示第二数量的数据点。在第二差异小于第一差异的示例中,第二数据点数量小于第一数据点数量,以便使用来自差异170更大的图像数据162的部分的更多数据点来优化模型166。如上所述,第二差异可小于第一差异的一个原因是因为,与第二部分相比,由相机装置捕获的观察的第一部分可表示环境的更少探索的部分。也就是说,模型166的优化的更少迭代可能已经基于图像数据的第一部分而不是图像数据的第二部分,这意味着模型166可生成的第一部分的2D表示比第二部分的2D表示具有更低的准确度(由更大差异示出)。然而,在其他示例中,第二差异可大于第一差异,因为对环境的观察的第二部分比对环境的观察的第一部分具有更低的详细度。例如,观察的第二部分可包括更少的颜色和/或深度变化,这例如是由于与观察的第一部分相比,观察的第二部分中的对象更少或对象边界更少。在另外的示例中,由于模型166的稳定性失败,第二差异可小于第一差异,其中由模型166保存的对环境的观察的第一部分的知识比观察的第二部分的知识更少。在模型166是神经网络的情况下,这可被称为“灾难性遗忘”,其中根据更近的优化迭代对模型166的更新可覆盖对模型166的先前更新。应当理解,在一些情况下,由于各种因素的组合,诸如这些因素中的两个或更多个的组合,第二差异可大于第一差异。
在图4的方法158中,优化器172使用图像数据160的所述部分来优化模型166。优化器由此可生成对模型的更新174,诸如对模型166的一组参数的更新。在模型166是神经网络的示例中,优化模型可包括优化神经网络的一组参数,从而生成对神经网络的所述一组参数的更新(例如,如参考图2所解释的)。在一些示例中,优化模型166可以是针对对环境的观察来联合优化模型166和相机位姿估计的一部分,如上文参考图1和图2所讨论的。在这种情况下,图4的方法158可包括针对对环境观察获得相机位姿估计。在此类示例中,2D表示164可基于相机位姿估计和模型166来生成。优化器172然后可基于差异170来联合优化相机位姿估计和神经网络的所述一组参数。这可生成对相机位姿估计的更新和对神经网络的所述一组参数的更新。以这种方式,本文描述的方法中的联合优化可使用图像数据160的选定部分,例如使用图4的方法158选择的部分。
在一些示例中,图4的方法158包括基于2D表示164和对环境的观察的至少一部分来评估损失函数,从而生成用于优化模型166的损失。评估损失函数可包括评估差异170,使得损失函数包括2D表示与对环境的观察的至少一部分之间的差异170。在这种情况下,基于损失来选择图像数据160的所述部分,并且优化器172基于损失来优化模型166。以这种方式,损失可用于两个目的:进一步提高方法158的效率,和降低处理和功耗。
图5A和图5B是示出用于选择图像数据的一部分来优化环境的模型的方法176的示意图,所述方法可被称为“图像主动采样”。在这种情况下,对环境的观察包括至少一个图像,如图像178所示。在这个示例中,如上文参考图4所描述的,选择图像数据的所述部分包括选择至少一个图像的像素子集来优化环境的模型。在这个示例中,选定的像素子集在至少一个图像上的分布是基于通过针对观察的至少一部分(例如,针对图像178的多个像素中的每一个)评估损失函数而生成的损失概率分布。在图5A的示例中,这是由通过针对区域178a-p中的每一个评估平均损失(例如,基于针对每个区域内的图像178的像素对损失值进行求平均,所述像素可以是每个区域内的像素的子集)而生成的区域178a-p中的每一个的损失值来示出。以这种方式,可在具有更高损失的图像区域中选择更大数量的像素。在一些示例中,像素子集在至少一个图像上的分布可使得像素子集中的至少一个像素与像素子集中的每个其他像素在空间上不相连。这在图5B的示例中由图像178中的点示出,这些点表示选定的像素子集中的每个像素。这使得像素子集的选择不是具体定位在图像的特定区域中,而是分布在图像上的多个不相连的图像区域中,每个区域可能具有显著的损失。
图5A和图5B示出可生成损失概率分布并将其用作基础来选择要用于优化模型的像素子集的方式。
图5A和图5B示出已被划分成多个区域178a-p的图像178。在图5A和图5B的示例中,图像178被划分成[4x4]网格,但在其他示例中,图像178可被划分成任何尺寸的网格,它不必具有相等数量的行和列。针对多个区域178a-p中的每一个,评估损失函数,从而生成多个区域178a-p中的每一个的区域损失。这由针对图5A中的多个区域178a-p中的每一个给出的区域损失的值来示出。例如,可针对每个区域Rj中的一组像素rj来评估损失函数,其中在图5A和图5B的示例中j={1,2,…,16}(其中所述一组像素可以是给定区域中的所有像素,或所述区域的像素的子集)。在一些示例中,所述一组像素最初可均匀地分布在图像178上,例如使得多个区域178a-p中的每一个包括形成所述一组像素的相同数量和分布的像素(针对所述一组像素评估损失函数)。然后可例如基于区域损失迭代地调整选定的像素的分布。
可使用诸如几何误差的误差来评估损失函数,以便计算每个区域内的平均损失,由下式给出:
其中D[u,v]是由相机装置捕获的观察的至少一部分的像素深度值,并且是来自使用环境的模型生成的2D表示的对应像素深度值。应当理解,在其他示例中可替代地或另外使用不同的误差,诸如光度误差。
在一些示例中,最初选择的所述一组像素rj(所述一组像素可例如均匀分布)和多个区域178a-p中的每一个的区域损失可用于优化环境的模型,或者联合优化模型以及与图像178相关联的相机位姿估计。以这种方式,评估多个区域178a-p中的每一个的损失函数可用于优化模型,然后基于损失概率分布选择像素子集,像素子集用于进一步优化模型。
在图5A和图5B的示例中,然后基于图像178的损失和多个区域178a-p中的每一个的区域损失来生成损失概率分布。在一些示例中,图像178的损失由多个区域178a-p中的每一个的区域损失的总和提供。在这种示例中,图像的损失可用于对区域损失进行归一化,使得损失概率分布由下式给出:
对于图5A和图5B的示例,其中有16个区域。因此,给定像素子集中的像素的总数量为n,从多个区域178a-p中的每一个中选择作为像素子集的一部分的像素的数量由nf[j]给出。以这种方式,损失概率分布因此可用于选择用于优化模型的像素,使得在具有更高损失的区域中选择更多的像素。在一些示例中,针对多个区域178a-p中的每一个选择的数量为nf[j]的像素可随机分布在它们相应的区域中的每一个内,但是每个区域选择的像素的数量基于损失概率分布。
在图5A中,示出多个区域178a-p中的每一个的区域损失,并且在图5B中,示出像素子集在同一图像178上的分布。在这种情况下,在诸如178j、178k和178p的区域中发现像素子集中更多的像素,在这些区域中区域损失比诸如178c、178h和178m的区域更大,在178c、178h和178m中,在选定的像素子集中发现更少的像素。
下文参考图8描述了如何导出选定的像素子集中的像素的总数量n的另一个示例。
图6是示出用于选择图像数据的一部分来优化环境的模型186的另一示例性方法180的示意图,所述方法可被称为“关键帧选择”。模型186可例如是在本文的其他示例中描述的模型中的任一个。在图8的示例中,获得的图像数据182表示对环境的观察,其中观察包括多个帧184。基于多个帧184中的每个帧来优化模型186在处理能力和存储器要求方面可能在计算上不可行,尤其是对于在本文描述的系统中实时应用来说。因此,图6的方法180涉及选择帧集合188来优化模型186。帧集合188可被称为关键帧,它们被选择用于优化环境的模型186。当相机装置探索环境的新区域时,由相机装置捕获的帧可被添加到帧集合188,使得帧集合188更全面地跨越环境,这可提高使用模型186获得的2D表示的准确度。存储用于优化模型186的帧集合188使得模型186的后续优化能够涉及使用帧集合188而不是多个帧184中的每一个,从而减少用于优化模型186的帧的数量。此外,帧集合188提供了相机装置先前捕获的帧的存档,使得使用帧集合188来优化模型186可起到减轻模型186的灾难性遗忘的作用。例如,当模型186是神经网络时,仅基于由相机装置捕获的最近的帧来优化神经网络可允许神经网络遗忘从基于先前帧的先前优化获取的知识,例如由于神经网络缺乏稳定性。相反,通过使用帧集合188来优化模型,可重新使用神经网络从先前捕获的帧获取的知识来优化神经网络,从而降低模型186的灾难性遗忘的可能性。
在图6的方法180中,将多个帧184中的相应帧与相应帧的2D表示190进行比较。在这种情况下,差异评估器192评估多个帧184中的相应帧与相应帧的2D表示190之间的差异194。
在这个示例中,如上文参考图4所讨论的,选择图像数据的所述部分包括基于差异194来选择要添加到用于优化模型186的帧集合188的多个帧184的子集。这在图6的方法180中是针对多个帧184中的单个帧来考虑的,其中基于差异194来确定196是否要将所述帧添加到帧集合188。响应于确定要将所述帧添加到帧集合188,将所述帧添加198到用于优化模型186的帧集合188。
为了确定是否要将多个帧184中的帧添加到帧集合188,图6的方法180可包括获得由相机装置捕获的帧的第一组像素。使用模型186,可对应于由相机装置捕获的帧的第一组像素来生成2D表示的第二组像素。差异评估器192然后可评估差异194,在这种情况下,所述差异包括第一组像素中的每个像素与第二组像素中的对应像素之间的差异。应当理解,在这种情况下,像素可指光度像素(例如,表示光度值),或者深度像素(例如,表示深度值)。确定步骤196然后可包括确定差异低于第一阈值的第一组像素的比例。在一些示例中,这可表示使用模型186生成的2D表示已经很好地解释的帧的比例。在这种情况下,选择要添加到帧集合188的帧包括确定所述比例低于第二阈值。通过低于第二阈值,这例如表明由模型186生成的2D表示很好地解释的帧的比例不足,并且因此所述帧将被添加到用于优化模型186的帧集合188,以便改进模型186,使其更准确地表示所述帧。以这种方式,当所述帧被认为与帧集合188中的其他帧提供的信息相比,向模型186提供了环境的足够量的新信息时,可将所述帧添加到帧集合188。
例如,差异194可表示与第一组像素中的每个深度像素值D[u,v]和第二组像素中的对应深度像素值之间的差异相对应的几何误差。在这种情况下,上述比例可由以下公式给出:
其中td表示第一阈值,并且s表示针对其评估了差异194的帧的第一组像素的像素坐标。在一些示例中,第一组像素均匀地分布在帧上。当生成差异194低于第一阈值P的第一组像素的比例td时,与第一组像素分布成在帧的某些区域中比在其他区域中更集中的情况相比,这可给出更能表示帧上的差异194的比例。然而,在其他示例中,差异194可表示不同的误差,诸如光度误差。
如上所述,然后可评估比例P以确定它是否低于第二阈值tp,并且因此确定所述帧是否被选择为处于帧集合188中。针对给定的第二阈值tp,具有更低比例P的帧可更有可能被添加到帧集合188,因为此类帧可具有大的差异194。以这种方式,与低细节区域(例如,环境中具有均匀深度的表面)相比,针对存在大量细节的环境区域(例如,其中相机装置更靠近环境中的对象,或者其中存在许多对象边界),可将更多的帧添加到帧集合188。
第一阈值和第二阈值可被预先确定以使得能够调整将帧添加到帧集合188所需的标准。这可具有以下效果:例如基于执行方法180的系统的处理能力来调整用于优化模型186的帧集合188中的帧的数量。
在一些情况下,图6的方法180包括选择由相机装置捕获的最近的帧来添加到帧集合188。这可与相对于最近的帧所计算的差异194无关。针对由相机装置捕获的最近的帧,模型可能尚未使用所述帧进行优化,这意味着最近的帧的2D表示与由相机装置捕获的最近的帧之间可能存在较大差异。因此,可能希望不论最近的帧的差异194如何,都选择最近的帧作为用于优化模型186的帧集合188中的一个。这是因为最近的帧可示出环境的新探索的或最近尚未探索的区域,模型186可能无法准确地对所述区域进行建模或者可随时间已经开始遗忘所述区域,例如由于上述灾难性遗忘。
图7是示出用于选择图像数据的一部分来优化环境的模型(诸如在本文的示例中描述的模型中的任一个)的另一示例性方法200的示意图。图7示出被存储以用于优化环境的模型的帧组202。帧组202可被称为关键帧。如图6的方法180所示,帧组202中的帧的数量,即关键帧的数量,可随着相机装置探索环境的新区域并且将新帧添加到所述数量的关键帧而增长。这可能意味着基于大量关键帧来优化模型的计算成本越来越高。图7的方法200包括从帧组202中选择关键帧的有界窗口以用于优化环境的模型。有界窗口的选择可基于损失在帧组202上的分布,使得关键帧的有界窗口包括存在更高损失的帧,因为这些帧可表示模型需要更大程度的优化的帧。例如,有界窗口是有界的,因为它包括预先确定数量的帧。然而,所述帧不必是由相机装置捕获的连续帧。
在这个示例中,帧组202包括五个RGB-D帧204-212。五个RGB-D帧204-212中的每一个可基于上文参考图6描述的方法180被选择为处于帧组202中。还示出可用于优化环境的模型的最近的帧(RGB-D)当前。因此,最近的帧(RGB-D)当前也可被认为是包括在帧组202中的关键帧。
在图7的方法200中,基于相应帧和由模型生成的相应帧的2D表示来评估帧组202中的每一个的损失函数,从而生成帧组202中的每一个的损失L1-L5和L当前。根据帧组202中的每一个的损失,图7的方法200包括选择帧组202的有界窗口以用于优化模型(其中有界窗口例如对应于用于优化模型的帧202的选定子集)。在这个示例中,被选择为处于有界窗口中的帧由周围带有虚线框的帧示出,即帧(RGB-D)2 206、(RGB-D)3 208、(RGB-D)5 212。在这个示例中,选择这些帧是由于这些帧在帧组202内具有最大的损失。在这种情况下,由相机装置捕获的最近的帧(RGB-D)当前214也被选择为处于关键帧的有界窗口中。在这个示例中,模型尚未使用最近的帧进行优化,这意味着与同其他帧相关联的损失相比,最近的帧的2D表示与最近的帧之间存在更大的损失。这由针对最近的帧评估的损失L当前=0.27来示出,所述损失是图7中所示的帧的损失中的最高损失。在这个示例中,从帧组202中选择的三个关键帧以及由相机装置捕获的最近的帧处于关键帧的有界窗口中。然而,在其他示例中,有界窗口中的关键帧的数量可以是不同的数量,所述数量可根据要用于优化模型的关键帧的期望数量来预先确定。这可根据要结合模型优化的系统的需求来固定用于优化模型的帧的数量,例如,可用于在实时SLAM系统中优化环境的模型的帧的数量可能存在限制。
图8是示出用于选择图像数据的一部分来优化环境的模型的方法216的示意图。图8的方法216示出图5A和图5B的方法176与图7的方法200的组合的示例。图8示出从帧(RGB-D)2 206、(RGB-D)3208、(RGB-D)5 212和(RGB-D)当前214中的每一个中选择的用于优化模型的像素的数量,这些帧在图7的方法200中被选择为处于关键帧的有界窗口中。
以帧(RGB-D)2 206和(RGB-D)3 208为例,已经基于相应帧和相应帧的2D表示来评估损失函数,从而生成与每个帧相关联的损失。在这个示例中,与(RGB-D)3 208相关联的损失(即L3=0.21)大于与(RGB-D)2 206相关联的损失(即L2=0.14)。在这种情况下,响应于确定L3大于L2,基于损失选择图像数据的所述部分来优化模型包括从帧(RGB-D)3 208中选择多个像素(n3)和从帧(RGB-D)2206中选择多个像素(n2)。在这种情况下,如在图8的帧(RGB-D)2 206和(RGB-D)3 208中选择的像素的分布所示,来自帧(RGB-D)3 208的像素的数量(n3)大于来自帧(RGB-D)2206的像素的数量(n2)。以这种方式,基于针对相应帧中的每一个评估的损失来确定从关键帧的有界窗口中的帧中的每一个中选择的用于优化模型的像素的数量(ni)。这在图8的示例中通过从最近的帧(RGB-D)当前214中选择的像素的数量(n当前)大于从关键帧的有界窗口中的其他帧中选择的像素的数量(由于对应的损失L当前最大)进一步示出。
从帧(RGB-D)3208中选择的像素的数量(n3)可例如通过首先确定图7所示的用于优化模型的帧组202的总损失来确定。确定总损失包括基于帧组202和帧组202的对应的一组2D表示来评估损失函数。然后可基于损失L3对总损失的贡献(例如损失L3与总损失之间的比率)来确定从帧(RGB-D)3 208中选择的像素的数量(n3)。以这种方式,从关键帧的有界窗口内的帧中的每一个中选择的像素的数量例如与同相应帧相关联的损失对帧组202上的总损失的贡献成比例。因此,这使得可从具有更高损失的帧中选择更多的像素,如图8所示。
将这个示例一般应用于关键帧的有界窗口中的第i个关键帧,从第i个关键帧中选择的用于优化模型的像素的数量(ni)可由下式给出:
其中M表示要从关键帧的有界窗口中选择的像素的总数量,si表示针对其评估了损失函数的第i个关键帧的一组像素的像素坐标,损失函数在这个示例中包括由相机装置捕获的第i个关键帧的深度值Di[u,v]与第i个关键帧的2D表示的深度值之间的差异。Lg是帧组202上的总几何损失。
在图8的方法216中,关键帧的有界窗口中的帧中的每一个已被划分成多个区域,这与上文参考图5A和图5B描述的图像主动采样方法176类似。遵循图5A和图5B的方法176,可评估第i个关键帧上的损失概率分布fi[j](其中,在这个示例中j={1,2,…,16},因为每个帧被划分成[4x4]网格)以确定要在第i个关键帧的不同相应区域中选择的像素的数量(ni)。以这种方式,针对第i个关键帧的每个区域选择的像素的数量可由nifi[j]给出。在一些示例中,nifi[j]个像素可随机分布在它们相应的区域中的每一个上。
以这种方式,图8的方法216包括通过采用参考图7描述的方法来对帧组202内的关键帧的有界窗口进行基于损失的选择以用于优化环境的模型。此外,图8的方法216使得能够通过采用参考图5A和图5B描述的方法来从这些选定的关键帧中的每一个中对所述数量的像素进行基于损失的选择并且使这些像素分布在关键帧中的每一个上。
图9是示出用于同时定位和映射(SLAM)系统的管线218的示意图。在这个示例中,示出了可如何组合上文所讨论的方法以应用于能够获得环境的3D密集表示和/或能够实时工作的SLAM系统中。
在图9的示例性管线218中,获得由相机装置捕获的图像数据220。在这个示例中,图像数据包括由RGB-D相机捕获的帧,使得针对所述帧的像素坐标(u,v),光度像素值由可以是[R,G,B]矢量的I[u,v]给出,并且深度像素值由D[u,v]给出。
跟踪系统222被配置来使用模型226(它可与本文的其他示例中描述的模型中的任一个相似或相同)针对由RGB-D相机捕获的图像获得相机位姿估计224。模型226用于生成与帧相对应的环境的2D表示,因此针对像素坐标(u,v),2D表示的对应光度像素值由给出,并且2D表示的对应深度像素值由/>给出。在这个示例中,跟踪系统基于帧和模型226来优化相机位姿估计224,如上文参考图3所解释的。这可包括基于帧和使用模型226生成的帧的相应2D表示来评估损失函数,以及基于所生成的损失优化相机位姿估计224。
在管线218中的步骤228处,确定是否要将所述帧添加到在对模型226和关键帧集合230的相机位姿估计的联合优化过程232中使用的关键帧集合230。这可遵循上文参考图6描述的方法180。可对由相机装置捕获的每个帧执行确定步骤228,以便从图像数据220中选择用于对模型226和关键帧集合230的相机位姿估计的联合优化的帧。
关键帧集合230中的每个关键帧可包括来自图像数据220的光度和深度测量以及来自跟踪系统222的相机位姿估计,使得第i个关键帧可由一组参数{Ii,Di,Ti}表示,其中Ti表示相机位姿估计。
在对模型226和关键帧集合230的相机位姿估计的联合优化232之前,可从关键帧集合230中选择关键帧的有界窗口以用于联合优化232。这可遵循图7的方法200中描述的基于损失的方法。被选择为处于关键帧的有界窗口中的关键帧的数量可由W给出。此外,选择来自每个关键帧的多个像素以用于联合优化过程232以及选定的所述数量的像素在每个关键帧上的分布。这可遵循在图8中阐述的方法216。
然后,可基于选定的关键帧的选定像素来执行联合优化232,以生成对模型226和对在联合优化232中使用的选定的关键帧中的每一个的相机位姿估计的更新。联合优化232可遵循上文参考图1描述的方法100。在这种情况下,针对W个关键帧并且针对来自每个关键帧的选定的一组像素坐标(u,v)∈si评估损失函数(例如,而不针对其他关键帧和选定的W个关键帧内的其他像素评估损失函数)。因此,针对要从关键帧的有界窗口中选择的像素的总数量M,在上文参考图1描述的联合优化232中使用的总光度损失可由下式给出:
此外,在联合优化232中使用的总几何损失可由下式给出:
其中深度变化可用于减少帧的不确定区域(诸如对象边界)中对几何误差的贡献,如上文参考图1的方法100所描述的。
在SLAM系统的这个管线218中,跟踪系统222与联合优化232一起操作以提供SLAM。跟踪系统222相对于已根据最新的联合优化232迭代进行更新的固定模型226针对由相机装置捕获的最新帧(或针对由相机捕获的最新帧的子集,例如被选择用于优化的帧,或针对每第n个帧)重复地优化相机位姿估计。然后可例如在相机位姿估计和模型的联合优化之后或与所述联合优化至少部分并行地执行模型226和选定的关键帧的相机位姿估计的联合优化。以这种方式,SLAM系统构建并更新环境的模型226,同时跟踪相机装置的位姿。在一些示例中,跟踪系统222执行上述跟踪过程的频率高于执行联合优化过程232的频率,以便稳健地跟踪相机装置的相对小的位移。
在图像数据220是视频数据的示例中,由相机装置捕获的视频数据内的视频流的第一帧可被无条件地选择为处于关键帧集合228中(即,与确定步骤226的结果无关)。这个第一帧可用于初始化环境的模型226。例如,第一帧可用于限定环境的3D世界坐标系的原点,使得后面的帧的相机位姿估计相对于这个原点来限定。以这种方式,环境的模型226可以相机装置在探索环境时开始的位置为中心。然后可使用第一帧来执行第一联合优化迭代,以至少生成对第一帧的相机位姿估计的更新和对模型226的更新。然后,当获得图像数据220内的后续帧时,执行联合优化232所基于的关键帧集合230可扩展,以便重复地更新模型226。以这种方式,SLAM系统可例如实时操作,而模型226不需要基于任何训练数据的训练阶段,因为可例如使用视频流的第一帧来执行模型226的初始化。
图10是示出被配置来执行本文描述的方法中的任一种的系统234的示意图。系统234例如可用在例如SLAM系统内。如本文参考图10所描述的部件可包括专用处理电子器件和/或可通过由至少一个计算装置的处理器执行的计算机程序代码来实现。在某些情况下,可使用一个或多个嵌入式计算装置。
系统234接收在以上方法中描述的图像数据,所述图像数据由相机装置捕获。图像数据经由图像数据接口236来接收。图像数据接口236可通信地耦接到在先前示例中描述的相机装置。图像数据接口236可包括诸如USB或网络接口的硬件接口,以及实现软件驱动程序的计算机程序代码,或者可以是或包括软件接口。在一种情况下,系统234可被配置来对流式数据(例如实况视频数据)进行操作,并且因此可包括合适的图像数据接口236,用于例如经由合适的通信协议接收流式传输到系统234的数据。在另一种情况下,系统234可经由图像数据接口236通信地耦接到相机装置,并且被布置来将从相机装置接收的图像数据存储在持久性或非持久性数据存储装置中的一个或多个中。例如,数据帧可存储在系统234的存储器和/或硬盘驱动器或固态存储装置中。
系统234包括渲染引擎238,所述渲染引擎用于根据上述示例基于针对由图像数据表示的对环境的观察所获得的相机位姿估计和环境的模型来生成渲染的图像数据。渲染引擎238可被配置来基于图像数据和渲染的图像数据评估损失函数。渲染引擎238可以是可区分的渲染引擎,因为所执行的渲染过程可相对于相机位姿估计和环境的模型的一组参数两者都是可区分的,如以上方法中所解释的。
渲染引擎238可包括图像数据部分选择引擎240,用于根据上述示例选择图像数据的一部分来优化模型。图像数据部分选择引擎240可如以上示例中所描述来评估使用模型获得的环境的至少一部分的2D表示与环境的对应的至少一部分之间的差异。
系统234还包括优化器242,所述优化器被配置来根据上述示例优化环境的模型。这种优化可以是至少对环境的观察的相机位姿估计和环境的模型的联合优化的一部分。在这种情况下,优化器242可被配置来执行如上所述的联合优化方法以生成对相机位姿估计的更新和对模型的更新。
在图10的示例中,系统234包括跟踪系统244,所述跟踪系统被配置来跟踪相机装置的位姿,从而在观察场景期间跟踪相机装置的位姿。跟踪系统244可被配置来根据以上示例使用由联合优化过程更新的模型来优化对环境的后续观察的第二相机位姿估计。
图11是示出根据示例的机器人装置246的示意图。
机器人装置246包括用于捕获图像数据的相机装置248。相机装置248可以是如以上示例中所描述的RGB-D相机。相机装置248可机械地耦接到机器人装置246。例如,相机装置248可相对于机器人装置246静态安装,或者能够相对于机器人装置246移动。
机器人装置246包括系统234,所述系统被配置来执行如上文参考图10描述的以上方法中的任一种。系统234经由如上所述的图像数据接口236从相机装置248接收图像数据。
机器人装置246还包括一个或多个致动器250以使得机器人装置246能够在环境(例如3D空间)内导航。一个或多个致动器250可包括轨道、挖掘机构、转子等,使得机器人装置可在环境内移动。
一个或多个致动器250可通信地耦接到系统234,使得由系统234执行的方法的结果可用于控制一个或多个致动器250的运动。例如,响应于使用由优化器242获得的模型的优化版本获得环境的表示,一个或多个致动器250可更新机器人装置246在环境内的导航方向,其中模型可与至少相机位姿估计被联合优化,如本文的各个示例中所描述的。以这种方式,针对模型生成的更新可用于生成环境的所更新的表示(例如,密集表示),所述表示继而可用于控制机器人装置246在环境内的导航方向。
以上示例应当被理解为说明性示例。设想了另外的示例。例如,在另外的示例中,非暂态介质包括计算机可执行指令。计算机可执行指令在由计算机装置的处理器执行时使计算装置执行本文描述的方法中的任一种(单独或彼此组合)。
应当理解,关于任一个示例描述的任何特征都可单独使用,或者与描述的其他特征结合使用,并且还可与任何其他示例的一个或多个特征结合使用,或者与任何其他示例的任何组合结合使用。此外,在所附权利要求的范围内还可采用上文未描述的等同物和修改。

Claims (25)

1.一种方法,其包括:
获得由相机装置捕获的图像数据,所述图像数据表示对环境的至少一部分的观察;
获得与所述观察相关联的相机位姿估计;
基于所述相机位姿估计和所述环境的模型生成渲染的图像数据,其中所述模型用于生成所述环境的所述至少一部分的三维表示,其中所述渲染的图像数据表示与所述环境的所述至少一部分相对应的至少一个渲染的图像部分;
基于所述图像数据和所述渲染的图像数据评估损失函数,从而生成损失;以及
基于所述损失联合优化至少所述相机位姿估计和所述模型,从而生成:
对所述相机位姿估计的更新;和
对所述模型的更新。
2.根据权利要求1所述的方法,其中,所述模型是神经网络,并且对所述模型的所述更新是对所述神经网络的一组参数的更新。
3.根据权利要求1或权利要求2所述的方法,其中,所述三维表示包括密集三维表示。
4.根据权利要求1至3中任一项所述的方法,其中,生成所述渲染的图像数据包括:
使用所述模型生成所述三维表示;以及
使用所述三维表示执行渲染过程,其中所述渲染过程相对于所述相机位姿估计和所述模型的一组参数是可区分的。
5.根据权利要求1至4中任一项所述的方法,其包括:
评估所述至少一个渲染的图像部分相对于所述相机位姿估计的第一梯度,从而生成第一梯度值;以及
评估所述至少一个渲染的图像部分相对于所述模型的一组参数的第二梯度,从而生成第二梯度值,其中联合优化所述相机位姿估计和所述模型包括使用所述第一梯度值和所述第二梯度值应用基于梯度的优化算法。
6.根据权利要求1至5中任一项所述的方法,其中,所述模型被配置来将与所述环境内的位置相对应的空间坐标映射到:
与所述环境内的所述位置相关联的光度值;和
体积密度值,所述体积密度值用于导出与所述环境内的所述位置相关联的深度值。
7.根据权利要求1至6中任一项所述的方法,其中:
所述图像数据包括光度数据,所述光度数据包括至少一个测量的光度图像部分;
所述至少一个渲染的图像部分包括至少一个渲染的光度图像部分;并且
所述损失函数包括基于所述至少一个测量的光度图像部分和所述至少一个渲染的光度图像部分的光度误差。
8.根据权利要求1至7中任一项所述的方法,其中:
所述图像数据包括深度数据,所述深度数据包括至少一个测量的深度图像部分;
所述至少一个渲染的图像部分包括至少一个渲染的深度图像部分;并且
所述损失函数包括基于所述至少一个测量的深度图像部分和所述至少一个渲染的深度图像部分的几何误差。
9.根据权利要求8所述的方法,其中,所述深度数据包括多个测量的深度图像部分,所述至少一个渲染的图像部分包括多个渲染的深度图像部分,每个渲染的深度图像部分对应于所述多个测量的深度图像部分中的相应的测量的深度图像部分,所述几何误差包括多个几何误差项,每个几何误差项对应于所述多个测量的深度图像部分中的不同的测量的深度图像部分,并且所述方法包括基于以下中的至少一者相对于与所述多个测量的深度图像部分中的第二测量的深度图像部分相关联的第二几何误差项减少与所述多个测量的深度图像部分中的第一测量的深度图像部分相关联的第一几何误差项对所述几何误差的贡献:与所述多个测量的深度图像部分中的所述第一测量的深度图像部分相关联的第一不确定性量度,或者与所述多个测量的深度图像部分中的所述第二测量的深度图像部分相关联的第二不确定性量度。
10.根据权利要求1至9中任一项所述的方法,其中,生成所述渲染的图像数据包括:
应用光线跟踪来识别沿着光线的一组空间坐标,其中,所述光线基于所述相机位姿估计和所述至少一个渲染的图像部分的像素的像素坐标来确定;以及
使用所述模型来处理所述一组空间坐标,从而生成一组光度值和一组体积密度值,每一组值与所述一组空间坐标中的相应空间坐标相关联;
组合所述一组光度值以生成与所述像素相关联的像素光度值;以及
组合所述一组体积密度值以生成与所述像素相关联的像素深度值。
11.根据权利要求10所述的方法,其中,所述一组空间坐标是第一组空间坐标,所述一组光度值是第一组光度值,所述一组体积密度值是第一组体积密度值,并且应用所述光线跟踪包括应用所述光线跟踪来识别沿着所述光线的第二组空间坐标,其中,所述第二组空间坐标基于概率分布来确定,所述概率分布随所述第一组体积密度值以及所述第一组空间坐标中的相邻空间坐标之间的距离而变化,并且所述方法包括:
使用所述模型来处理所述第二组空间坐标,从而生成第二组光度值和第二组体积密度值;
组合所述第一组光度值和所述第二组光度值以生成所述像素光度值;以及
组合所述第一组体积密度值和所述第二组体积密度值以生成所述像素深度值。
12.根据权利要求1至11中任一项所述的方法,其中,所述观察是第一观察,所述相机位姿估计是第一相机位姿估计,并且所述方法包括:在联合优化所述相机位姿估计和所述模型之后:
获得与在所述第一观察之后的对所述环境的第二观察相关联的第二相机位姿估计;并且
基于对所述环境的所述第二观察和所述模型优化所述第二相机位姿估计,从而生成对所述第二相机位姿估计的更新。
13.根据权利要求1至12中任一项所述的方法,其中,所述观察包括第一帧和第二帧,并且所述渲染的图像数据表示与所述第一帧相对应的至少一个渲染的图像部分和与所述第二帧相对应的至少一个渲染的图像部分,所述相机位姿估计是与所述第一帧相关联的第一帧相机位姿估计,评估所述损失函数生成与所述第一帧相关联的第一损失和与所述第二帧相关联的第二损失,并且所述方法包括:
获得与所述第二帧相对应的第二帧相机位姿估计,
其中,基于所述损失联合优化至少所述相机位姿估计和所述模型包括基于所述第一损失和所述第二损失联合优化所述第一帧相机位姿估计、所述第二帧相机位姿估计和所述模型,从而生成:
对所述第一帧相机位姿估计的更新;
对所述第二帧相机位姿估计的更新;和
对所述模型的所述更新。
14.根据权利要求1至13中任一项所述的方法,其中,所述图像数据是第一图像数据,所述观察是对所述环境的至少第一部分的观察,并且所述方法包括获得由所述相机装置捕获的第二图像数据,所述第二图像数据表示对所述环境的至少第二部分的观察,
其中,生成所述渲染的图像数据包括针对所述环境的所述第一部分生成所述渲染的图像数据而不针对所述环境的所述第二部分生成渲染的图像数据。
15.根据权利要求1至14中任一项所述的方法,其中,所述图像数据是第一图像数据,所述观察是对所述环境的至少第一部分的观察,并且所述方法包括获得由所述相机装置捕获的第二图像数据,所述第二图像数据表示对所述环境的至少第二部分的观察,其中所述方法包括:
确定要针对所述环境的所述第二部分生成另一个渲染的图像数据,用于进一步联合优化至少所述相机位姿估计和所述模型;以及
基于所述相机位姿估计和所述模型生成所述另一个渲染的图像数据,用于进一步联合优化至少所述相机位姿估计和所述模型。
16.根据权利要求15所述的方法,其中,确定要针对所述环境的所述第二部分生成所述另一个渲染的图像数据包括确定要基于所述损失生成所述另一个渲染的图像数据。
17.根据权利要求16所述的方法,其中,确定要针对所述环境的所述第二部分生成所述另一个渲染的图像数据包括:
基于所述损失,针对所述环境的包括所述第一部分和所述第二部分的区域生成损失概率分布;以及
基于所述损失概率分布,选择与所述第二图像数据相对应的一组像素,针对所述一组像素要生成所述另一个渲染的图像数据。
18.根据权利要求1至17中任一项所述的方法,其中,所述观察包括由所述相机装置先前捕获的至少一个帧的至少一部分,并且所述方法包括:
基于由所述相机装置先前捕获的多个帧中的相应帧的至少一部分与相应渲染帧的至少一对应部分之间的差异,从所述多个帧中选择所述至少一个帧,所述相应渲染帧是基于所述相机位姿估计和所述模型渲染的。
19.根据权利要求18所述的方法,其中,所述观察包括由所述相机装置捕获的最近的帧的至少一部分。
20.一种包括计算机可执行指令的非暂态计算机可读存储介质,所述计算机可执行指令在由处理器执行时使计算装置执行根据权利要求1至19中任一项所述的方法。
21.一种系统,其包括:
图像数据接口,所述图像数据接口用于接收由相机装置捕获的图像数据,所述图像数据表示对环境的至少一部分的观察;
渲染引擎,所述渲染引擎被配置来:
获得与所述观察相关联的相机位姿估计;
基于所述相机位姿估计和所述环境的模型生成渲染的图像数据,其中所述模型用于生成所述环境的所述至少一部分的三维表示,其中所述渲染的图像数据表示与所述环境的所述至少一部分相对应的至少一个渲染的图像部分;并且
基于所述图像数据和所述渲染的图像数据评估损失函数,从而生成损失;以及
优化器,所述优化器被配置来:
基于所述损失联合优化至少所述相机位姿估计和所述模型,从而生成:
对所述相机位姿估计的更新;和
对所述模型的更新。
22.根据权利要求21所述的系统,其中:
所述渲染引擎被配置来:
评估所述至少一个渲染的图像部分相对于所述相机位姿估计的第一梯度,从而生成第一梯度值;并且
评估所述至少一个渲染的图像部分相对于所述模型的一组参数的第二梯度,从而生成第二梯度值;并且
所述优化器被配置来:通过使用所述第一梯度值和所述第二梯度值应用基于梯度的优化算法来联合优化所述相机位姿估计和所述模型。
23.根据权利要求21或权利要求22所述的系统,其中,所述观察是第一观察,所述相机位姿估计是第一相机位姿估计,并且所述系统包括跟踪系统,所述跟踪系统被配置来在所述优化器联合优化所述相机位姿估计和所述模型之后:
获得与在所述第一观察之后的对所述环境的第二观察相关联的第二相机位姿估计;并且
基于对所述环境的所述第二观察和所述模型优化所述第二相机位姿估计,从而生成对所述第二相机位姿估计的更新。
24.一种机器人装置,其包括:
相机装置,所述相机装置被配置来获得表示对环境的至少一部分的观察的图像数据;
根据权利要求21至23中任一项所述的系统;以及
一个或多个致动器,所述一个或多个致动器用于使得所述机器人装置能够在所述环境内导航。
25.根据权利要求24所述的机器人装置,其中,所述系统被配置来控制所述一个或多个致动器基于所述模型控制所述机器人装置在所述环境内的导航。
CN202280026605.0A 2021-03-19 2022-03-15 使用图像数据对环境进行建模 Pending CN117136382A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB2103886.4 2021-03-19
GB2103886.4A GB2604928B (en) 2021-03-19 2021-03-19 Modelling an environment using image data
PCT/GB2022/050657 WO2022195269A1 (en) 2021-03-19 2022-03-15 Modelling an environment using image data

Publications (1)

Publication Number Publication Date
CN117136382A true CN117136382A (zh) 2023-11-28

Family

ID=75689924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280026605.0A Pending CN117136382A (zh) 2021-03-19 2022-03-15 使用图像数据对环境进行建模

Country Status (4)

Country Link
US (1) US20240005598A1 (zh)
CN (1) CN117136382A (zh)
GB (1) GB2604928B (zh)
WO (1) WO2022195269A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117226854B (zh) * 2023-11-13 2024-02-02 之江实验室 一种夹取任务的执行方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
US20240005598A1 (en) 2024-01-04
GB202103886D0 (en) 2021-05-05
WO2022195269A1 (en) 2022-09-22
GB2604928A (en) 2022-09-21
GB2604928B (en) 2024-02-07

Similar Documents

Publication Publication Date Title
CN110945565B (zh) 利用概率面元地图的密集视觉slam
CN107980150B (zh) 对三维空间建模
CN110853075B (zh) 一种基于稠密点云与合成视图的视觉跟踪定位方法
WO2020232174A1 (en) Distributed pose estimation
JP2022519194A (ja) 奥行き推定
JP2022547288A (ja) 画像処理を使用したシーン表示
CN111750864A (zh) 一种基于视觉地图的重定位方法和装置
CN117136383A (zh) 使用图像数据对环境进行建模
CN111667535B (zh) 一种针对遮挡场景下的六自由度位姿估计方法
CN110838122B (zh) 点云的分割方法、装置及计算机存储介质
JP7138361B2 (ja) 3次元仮想空間モデルを利用したユーザポーズ推定方法および装置
KR20220161341A (ko) 이미지 처리 시스템 및 방법
US20240005598A1 (en) Modelling an environment using image data
CN110428461B (zh) 结合深度学习的单目slam方法及装置
WO2023094271A1 (en) Using a neural network scene representation for mapping
Baur et al. Real-time 3D LiDAR flow for autonomous vehicles
KR20230150867A (ko) 얼굴 표정, 신체 자세 형상 및 의류 퍼포먼스 캡처를 위해 암시적 구별가능 렌더러를 사용하는 멀티뷰 신경 사람 예측
KR20230049969A (ko) 글로벌 측위 장치 및 방법
CN115661252A (zh) 一种实时位姿估计方法、装置、电子设备以及存储介质
JP2022189901A (ja) 学習方法、学習装置、プログラムおよび記録媒体
US11915449B2 (en) Method and apparatus for estimating user pose using three-dimensional virtual space model
JP2023519725A (ja) 画像処理システム及び方法
CN113850900B (zh) 三维重建中基于图像和几何线索恢复深度图的方法及系统
Sun et al. Single Image Based Depth Estimation for Maritime Surface Targets
CN116433768A (zh) 一种基于神经辐射场的可扩展增量式视觉建图方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination