CN110945565B - 利用概率面元地图的密集视觉slam - Google Patents
利用概率面元地图的密集视觉slam Download PDFInfo
- Publication number
- CN110945565B CN110945565B CN201880047802.4A CN201880047802A CN110945565B CN 110945565 B CN110945565 B CN 110945565B CN 201880047802 A CN201880047802 A CN 201880047802A CN 110945565 B CN110945565 B CN 110945565B
- Authority
- CN
- China
- Prior art keywords
- data structure
- bins
- image
- camera
- processor
- 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.)
- Active
Links
- 230000000007 visual effect Effects 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 claims abstract description 77
- 230000004807 localization Effects 0.000 claims description 26
- 238000013507 mapping Methods 0.000 claims description 25
- 238000009826 distribution Methods 0.000 claims description 17
- 230000009466 transformation Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 8
- 238000000844 transformation Methods 0.000 claims description 4
- 238000005457 optimization Methods 0.000 abstract description 45
- 238000005375 photometry Methods 0.000 abstract description 9
- 229920003259 poly(silylenemethylene) Polymers 0.000 abstract 5
- 102000008115 Signaling Lymphocytic Activation Molecule Family Member 1 Human genes 0.000 abstract 2
- 108010074687 Signaling Lymphocytic Activation Molecule Family Member 1 Proteins 0.000 abstract 2
- 238000005259 measurement Methods 0.000 description 22
- 238000013459 approach Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000003190 augmentative effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000004927 fusion Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101100001674 Emericella variicolor andI gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
- G06T7/344—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/579—Depth or shape recovery from multiple images from motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/586—Depth or shape recovery from multiple images from multiple light sources, e.g. photometric stereo
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/08—Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20072—Graph-based image processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20076—Probabilistic image processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Analysis (AREA)
Abstract
公开了用于密集视觉SLAM的称为概率面元地图(PSM)的地图表示。PSM维护全局一致地图,其具有经编码的光度测定和几何不确定性二者,以便解决不一致性和传感器噪声。本文中所公开的视觉SLAM方法的关键方面是对PSM中编码的光度测定和几何不确定性进行恰当的建模和更新。公开了用于应用PSM来用于改善前端姿态估计和后端优化二者的策略。此外,PSM使得能够生成密集的点云。
Description
本申请要求于2017年7月20日提交的、序列号为62/535,038的美国临时申请的优先权权益,所述申请的公开内容通过引用以其全部被并入本文中。
技术领域
本文档中所公开的设备和方法涉及图像处理,并且更具体地涉及密集视觉SLAM(同时定位和地图构建)方法。
背景技术
除非在本文中另行指示,否则在本章节中所描述的材料不是对于本申请中的权利要求的现有技术,并且不通过包括在本章节中而被承认为是现有技术。
三维(3D)定位追踪是对于在增强现实应用中将虚拟和现实世界对准在一起而言所需要的基本技术之一,但是也可应用于许多其它有用的应用。视觉SLAM(同时定位和地图构建)是用于重构相机轨迹和环境的主导技术,尤其是在不存在关于环境的任何先验认知的情况中。视觉SLAM系统典型地由前端和后端组成。视觉测程法是估计每帧相机姿态的前端,其在增强现实应用中对于将虚拟对象与现实世界无缝地对准而言是必需的。通常,在后端中,通过全局优化来细化相机姿态。一些方法还重构环境的模型,所述模型还可以进一步用于许多其它目的,诸如3D地图构建、基于物理的模拟以及动画。多数现有的视觉SLAM技术可以基于后端地图信息如何被维护以及用于前端姿态估计而被分组成两个类别——帧对帧以及帧对模型途径。
帧对帧途径典型地是基于关键帧的,并且依赖于在帧与关键帧之间的姿态-姿态约束来进行姿态估计(例如DVO和σ- DVO)。具体地,在视觉测程法期间标识关键帧的集合。针对与关键帧相关联的每个帧,关于该关键帧来计算相对的相机姿态。当检测到环路闭合的时候,当前关键帧可以与先前关键帧相关联以创建更多的姿态-姿态约束。考虑所有的帧,可以构造姿态图,其表示跨帧的姿态-姿态约束。然后,可以执行姿态图优化以细化每个帧的相机姿态。然而,帧对帧途径不维护场景的全局表示(例如点云)并且遭受累积的相机漂移。
在帧对模型途径、诸如PTAM、KinectFusion和ElasticFusion中,通常维护并且更新场景的全局地图。普及的地图表示包括点云、面元云、以及体积场。这些途径可以提供环境的准确模型。然而,典型地以帧对模型方式来执行相机姿态估计,在所述帧对模型方式中仅仅考虑在全局地图与当前帧观测之间的姿态-点约束。通常,执行后端优化来在具有姿态-点约束的情况下仅仅优化关键帧姿态和全局点云,这意味着从不优化在关键帧之间的其它帧。一些帧对模型途径完全不执行任何形式的全局优化。因此,最终相机轨迹的准确性受限制。对于仅仅维护稀疏点云的途径而言,生成准确的密集网格是非常有挑战性的。此外,使用密集地图表示、尤其是体积表示的途径典型地遭受低空间分辨率,并且严重依赖于GPU加速。
RGBD密集视觉SLAM途径近年来已经在稳健性和准确性方面示出了其优势。然而,仍存在若干挑战,诸如在跨多个帧的RGBD测量方面的传感器噪声以及其它不一致性,其可能危害相机轨迹和场景重构二者的准确性。将有益的是提供一种密集视觉SLAM方法,其恰当地计及传感器测量方面的传感器噪声和其它不一致性。将进一步有利的是,所述方法以高效的方式利用姿态-姿态以及姿态-点约束二者以用于后端优化。
发明内容
公开了一种用于视觉同时定位和地图构建的方法。所述方法包括:在存储器中存储具有对3D环境进行表示的多个面元的第一数据结构,每个面元具有3D定位、3D定位的不确定性、强度、强度的不确定性、以及表面法线,每个面元的3D定位处于第一坐标空间中;利用处理器来从相机接收3D环境的第一图像,第一图像具有像素阵列,每个像素具有强度和深度;利用处理器、基于第一图像和第一数据结构来估计相机从中捕获第一图像的第一相机姿态;以及利用处理器、基于第一图像和第一相机姿态来更新第一数据结构的所述多个面元中的至少一个面元。
公开了一种视觉同时定位和地图构建系统。所述系统包括:相机,其被配置成捕获3D环境的多个图像,每个图像具有像素阵列,每个像素具有强度和深度;存储器,其被配置成存储具有对3D环境进行表示的多个面元的第一数据结构,每个面元具有3D定位、3D定位的不确定性、强度、强度的不确定性、以及表面法线,每个面元的3D定位处于第一坐标空间中;以及处理器。处理器被配置成:从相机接收3D环境的所述多个图像中的第一图像;基于第一图像和第一数据结构来估计相机从中捕获第一图像的第一相机姿态;以及基于第一图像和第一相机姿态来更新第一数据结构的所述多个面元中的至少一个面元。
附图说明
在结合附图而被理解的以下描述中解释方法和系统的前述方面和其它特征。
图1示出了三维定位和地图构建系统的示例性实施例。
图2示出了图1的三维定位和地图构建系统的示例性组件。
图3示出了用于通过使用概率面元地图来执行密集视觉SLAM的方法的逻辑流程图。
图4示出了通过使用新关键帧和全局概率面元地图来生成新关键帧概率面元地图。
图5示出了具有姿态-姿态约束的姿态图。
图6示出了具有姿态-姿态约束以及姿态-点约束的姿态图。
图7示出了交替的姿态-姿态以及姿态-点迭代优化策略。
具体实施方式
为了促进理解本公开内容的原理的目的,现在将参考在附图中所图示的以及在以下所撰写的说明书中所描述的实施例。理解到,由此并不意图对本公开内容范围的任何限制。进一步理解到,本公开内容包括对所说明的实施例的任何变更和修改,并且包括如本公开内容所涉及的领域中的技术人员通常将会想到的本公开内容原理的另外的应用。
三维定位和地图构建系统
参考图1-2,示出了三维定位和地图构建系统10的示例性实施例。如图1中所示,定位和地图构建系统10至少包括相机20。相机20被配置成在它绕场景30移动时捕获场景30的多个图像。场景30包括现实世界环境,并且同样地可以在其中包含各种对象或结构。如所示出的,在给定的相机定位和取向(相机姿态)下,相机20具有受限的视场40,使得由相机20在给定的相机姿态下所捕获的图像仅仅包括场景30的对应部分50。
相机20被配置成生成场景30的图像,所述图像具有光度测定信息(强度、颜色和/或亮度)以及几何信息(深度和/或距离)二者。具体地,在至少一个实施例中,相机20是被配置成生成RGB-D图像的RGB-D相机。每个RGB-D图像包括像素的二维阵列。在至少一个实施例中,每个像素包括RGB颜色强度值和深度值。然而,将领会到,相机20可以包括单色和/或灰度相机,其捕获具有仅仅带有强度值和深度的像素的图像。
图2示出了三维定位和地图构建系统10的一个实施例的示例性组件。具体地,除了相机20之外,定位和地图构建系统10进一步包括至少一个处理器12和存储器14。存储器14被配置成存储程序指令,所述程序指令当由处理器12执行的时候使得三维定位和地图构建系统10能够执行本文中别处描述的各种操作,包括视觉同时定位和地图构建(SLAM)。存储器14可以具有能够存储可由处理器12访问的信息的任何设备类型,诸如存储卡、ROM、RAM、硬驱动器、盘、闪速存储器、或用作数据存储设备的各种其它计算机可读介质中任一个,如本领域普通技术人员将认识到的。另外,本领域普通技术人员将认识到:“处理器”包括处理数据、信号或其它信息的任何硬件系统、硬件机构或硬件组件。处理器12可以包括具有中央处理单元、图形处理单元、多个处理单元、用于实现功能性的专用电路的系统,或其它系统。
处理器12被配置成处理场景30的所捕获的图像,以执行视觉测程法,来跨若干帧而估计相机20关于场景30的定位、取向和轨迹。另外,处理器12被配置成生成场景30的三维模型或地图表示。
将领会到,这样的对场景30的地图构建以及场景30内相机20的定位具有许多有用的应用,诸如增强现实、三维环境地图构建或对象扫描、自主机器人导航(例如交通工具、真空清洁器、飞行无人机)、以及其它类似的机器人应用。因此,三维定位和地图构建系统10可以采取各种不同的形式,诸如智能电话、平板计算机、手持相机、头戴式显示器、或机器人和/或交通工具的传感器/处理系统。
在一些实施例中,特别是对于增强现实应用,三维定位和地图构建系统10进一步包括显示屏16。显示屏16可以包括各种已知类型的显示器中任一个,诸如LCD或OLED屏幕。在一些实施例中,显示屏16可以包括被配置成从用户接收触摸输入的触摸屏。在增强现实应用中,处理器12可以被配置成操作显示屏16以显示由相机20所捕获的实时图像/视频,所述实时图像/视频具有被叠加在其上的虚拟对象。
用于使用概率面元地图的密集视觉SLAM的方法
在以下描述了用于操作增强现实系统10的方法。具体地,描述了用于密集视觉SLAM的方法。在所述方法的描述中,方法正执行某个任务或功能的陈述是指:控制器或通用处理器执行存储在被操作性地连接到控制器或处理器的非暂时性计算机可读存储介质中的编程指令,以操控数据或操作三维定位和地图构建系统10中的一个或多个组件来执行该任务或功能。具体地,以上的三维定位和地图构建系统10的处理器12可以是这样的控制器或处理器。可替换地,控制器或处理器可以利用多于一个处理器以及相关联的电路和组件来实现,所述多于一个处理器以及相关联的电路和组件中的每一个被配置成形成本文中描述的一个或多个任务或功能。将领会的是,所述方法的操作中的一些或全部还可以通过远程服务器或云处理基础设施来执行。另外,所述方法的步骤可以按任何可行的时间次序来被执行,而无论图中所示的次序或用来描述步骤的次序如何。
继续参考图2,三维定位和地图构建系统10的存储器14被配置成存储与实现本文中描述的方法的视觉SLAM程序60相对应的程序指令。视觉SLAM程序60并入地图表示,所述地图表示在本文中被称为“概率面元地图”(PSM)。概率面元地图是一种数据结构,所述数据结构有利地提供具有多个面元或点的全局一致的地图表示,所述面元或点被编码有光度测定(强度)不确定性和几何(深度)不确定性二者,以便解决在RGB-D相机20的情况下的不一致性和测量噪声问题。我们注意到:术语“面元”和“点”在本文中关于PSM数据结构可互换地使用。
在常规的地图表示中,场景点对表示不同性质的属性的集合进行编码。对于SLAM,典型的属性包括3D定位、强度和表面法线。然而,由于诸如传感器测量噪声、光照条件的遮挡和改变之类的各种因素,通常存在跨单个场景点的多个观测的失配。那些失配是视觉测程法中的累积漂移的主要起源。
为了减少相机漂移并且构造更准确且一致的地图,本文中所公开的PSM数据结构对属性以及其不确定性二者进行编码。在数学上,我们根据以下等式来标示PSM中的每个点:
其表示场景点的(累积)测量。它包括3D定位、经由协方差矩阵所表示的定位不确定性、强度值、强度不确定性、以及3D法线。在至少一个实施例中,3D定位不确定性的分布利用三维高斯来被建模,并且强度不确定性的分布独立地利用一维高斯来被建模。
PSM数据结构在前端视觉测程法以及后端地图构造二者中被利用。具体地,如将在以下更详细地讨论的,存储器14被配置成存储全局PSM 62以及关键帧PSM 64。全局PSM 62是已经在来自相机20的图像中被捕获的场景30的所有部分的地图表示,并且在后端优化期间被使用以提供通过经编码的不确定性来恰当地加权的姿态-点约束。相比之下,关键帧PSM 64是在最新近的关键帧K j 中所捕获的场景30的仅仅一部分的地图表示,并且在视觉测程法期间被使用来为相对相机姿态估计提供更准确的参考。如本文中所使用的,将用于标示全局PSM 62,并且将用于标示关键帧PSM 64。
图3示出了用于通过使用概率面元地图来执行密集视觉SLAM的方法100的逻辑流程图。方法100包括:前端105,其通过使用关键帧PSM 64来执行视觉测程法;以及后端110,其构造并且优化全局PSM 62,从所述全局PSM 62导出关键帧PSM 64。方法100通过有利地利用PSM数据结构以用于前端105中的视觉测程法并用于后端110中的优化,而在三维定位和地图构建系统10的运转、并且更具体地其处理器12的运转之上有所改善。相比于体积表示,PSM数据结构有利地仅仅维护离散的点,并且避免将导致有限空间分辨率的巨大存储器消耗。另外,PSM数据结构使得能够实现对全局一致的测量不确定性的恰当建模和更新。如以下进一步详细讨论的,代替于通过使用加权平均值来集成大量点,方法100将经融合的点的分布考虑为来自个体的分布的交集。通过使用该途径,可靠点的光度测定和几何不确定性迅速下降,并且这些点被容易地标识。利用稀疏且可靠的地图,方法100在SLAM期间需要较少的存储器和计算。另外,当请求密集网格的时候,稀疏地图可以被用作控制点,以使来自关键帧的密集点云变形,来产生一致的密集网格。
方法100开始于如下步骤:从相机接收当前图像帧(框115)。具体地,关于本文中详细描述的实施例,三维定位和地图构建系统10的处理器12被配置成执行视觉SLAM程序60的指令以从相机20接收图像帧。具体地,在至少一个实施例中,处理器12被配置成从RGB-D相机20接收RGB-D图像帧。如以上所讨论的,每个RGB-D图像帧包括像素的二维阵列。在至少一个实施例中,每个像素包括RGB颜色值和深度值。
方法100以如下步骤继续:通过使用关键帧PSM来估计针对当前帧的相机姿态(框120)。具体地,关于本文中详细描述的实施例,处理器12被配置成执行视觉SLAM程序60的指令,以估计在当前RGB-D图像帧与关键帧PSM 64之间的相对相机姿态。更具体地,当关键帧PSM 64的点通过使用相对相机姿态而被变换到当前RGB-D图像帧的相机坐标空间中的时候,处理器12被配置成计算最优相对相机姿态,所述最优相对相机姿态最小化在关键帧PSM 64的点与当前RGB-D图像帧的测量之间的光度测定和几何误差。
具体地,当前RGB-D图像帧的每个RGB-D像素可以被视为测量,并且以与PSM数据结构中的点类似的方式被建模。具体地,每个测量被建模为两个高斯分布以及一个法线,其被标示为,其中是从对应的RGB-D像素所生成的相机坐标空间中的3D点,是相机坐标空间中的定位不确定性并且基于针对RGB-D相机20的传感器噪声模型来被计算;是对应的RGB-D像素的强度,是强度不确定性并且被指派大的常量(例如256);并且n是点的法线,并且利用两个向量的叉积来被近似,所述两个向量一个从点到其右方的近邻像素,并且另一个从到其下方的近邻像素。如本文中所使用的,术语“相机坐标空间”是指相对于当前RGB-D图像帧的3D坐标空间。
在至少一个实施例中,处理器12被配置成利用传感器噪声模型来计算定位不确定性,所述传感器噪声模型对不确定性进行建模。例如,零均值多变量高斯分布可以用于基于结构光的RGB-D相机20。在许多实施例中,RGB-D相机20发射红外图案,并且从具有小视差的两个图像视图之间的对应性中恢复深度。在该过程期间,差别被量化为子像素,这在深度测量中引入量化误差。由于量化误差所致的噪声被定义为:
其中是设备的子像素分辨率,b是基线,并且f是焦距。
该误差随范围Z i 而平方地增大,因而防止对来自远处对象的深度观测的使用。RGB-D相机的3D传感器噪声可以利用零均值多变量高斯分布来被建模,所述零均值多变量高斯分布的协方差矩阵具有以下来作为对角分量:
其中沿着射线定向,并且β x 和β y 标示x和y方向中的角分辨率。注意到,射线方向中的误差平方地增大。
因此,针对每个3D点的定位不确定性可以被表述为:
其中Rray标示在射线和相机坐标之间的旋转矩阵,并且是Rray的转置。
相机姿态是特殊欧几里得群SE(3)中的刚性体变换。因而,在当前RGB-D图像帧与关键帧PSM 64之间的相对相机姿态可以被表述为齐次变换矩阵T,其包括旋转矩阵以及3D平移向量。给定关键帧PSM 64中的点以及与某个帧相对应的相机姿态T,我们可以将点的3D定位从PSM坐标空间变换到相机坐标空间,如。逆变换T-1将pi从相机坐标空间变换回到PSM坐标空间。一般,对于姿态优化,变换T被表示为六维扭曲向量(twist vector),其通过李代数se(3)被给出。变换T和可互换地用于标示相机姿态。如本文中所使用的,术语“PSM坐标空间”(其在本文中还可以被称为“世界坐标空间”或“世界空间”)是指关键帧PSM 64以及全局PSM 62的3D坐标空间。
相机坐标空间中的点p i 往RGB-D图像帧的2D图像空间上的投影在本文中通过投影函数 来标示。类似地,具有深度值的2D点往相机坐标空间中的向后投影在本文中被标示为。对于经投影的点2D点,基于相应的RGB-D图像的对应的强度和深度测量在本文中相应地被标示为和,并且可以被确定为RGB-D图像中的近邻像素的内插。
如以上所提及的,处理器12被配置成估计在当前RGB-D图像帧与关键帧PSM 64之间的相对相机姿态。具体地,当关键帧PSM 64的点通过使用相对相机姿态而被变换到当前RGB-D图像帧的相机坐标空间中的时候,处理器12被配置成计算最优相对相机姿态,所述最优相对相机姿态最小化在关键帧PSM 64的点与当前RGB-D图像帧的测量之间的光度测定和几何误差。给定相机投影模型和刚性体运动,每个点的光度测定和几何误差根据以下等式、通过残余误差项来定义:
其中是光度测定误差,是几何误差,2D点表示利用相对相机姿态,最新近的关键帧K j 中的相应点往当前RGB-D图像帧上的投影,表示在当前RGB-D图像帧中的2D点处的光度测定测量,标示关键帧K j 中的对应的光度测定测量,表示在当前RGB-D图像帧中的2D点处的几何测量,并且标示关键帧K j 中的对应的几何测量。
然而,利用关键帧PSM 64,我们可以重定义等式(5)的残余项,其具有以下改变:
其中表示利用相对相机姿态,关键帧PSM 64中的相应点往当前RGB-D图像帧上的投影,标示相应点的光度测定强度,标示PSM坐标空间中的相应点的3D定位,并且标示被变换到相机坐标空间中的相应点的z分量。
通过使用上述记号,可以根据以下能量函数来在数学上表述最优相对相机姿态的计算:
其中n是关键帧PSM 64中的点的总数目或可靠点的数目,是残余误差项的转置,并且W i 是利用每个残余项的重要性的加权矩阵。在至少一个实施例中,该能量函数的优化可以通过图像卷曲(image-warping)优化框架、诸如具有逆组成损失函数的Lucas-Kanade算法来被求解。
由于来自等式(7)的能量函数关于相机姿态是非线性的,所以最小二乘优化对于异常是敏感的。因此,矩阵W i 在拒绝异常/对异常进行不足加权(under-weighting)以实现稳健的相机姿态估计中起至关重要的作用。在至少一个实施例中,光度测定残差的分布被建模为接近于具有五个自由度(即v = 5)的零均值学生-t分布:
。
相比之下,在一个实施例中,上述传感器噪声模型用于对几何残差的分布进行建模。因而,在至少一个实施例中,使用混合加权策略,其应用针对光度测定残差的学生-t分布以及针对几何残差的传感器噪声模型。这样的混合加权有利地实现在稳健性和准确性方面的显著提升。在混合加权策略中,权重矩阵W i 被建模为
。
在等式(9)-(12)中,是基于强度学生-t分布的权重,而经由一阶泰勒展开而从传感器噪声模型传播。和是3D点p i 及其在当前图像中的对应点的协方差。此处的Λ是W i 中所有权重的归一化器(normalizer)。通过组合等式(6)-(12)与等式(7),利用混合途径而对最优相对相机姿态的计算可以被描述为:
。
方法100以如下步骤继续:通过使用当前帧来更新关键帧PSM(框125)。具体地,关于本文中详细描述的实施例,一旦计算了针对当前RGB-D图像帧的相对相机姿态,处理器12就被配置成执行视觉SLAM程序60的指令,以利用当前RGB-D图像帧的观测点来更新关键帧PSM 64。更具体地,一旦计算了针对当前RGB-D图像帧的相对相机姿态,处理器12就被配置成更新在当前RGB-D图像帧中具有相关联的点的在关键帧PSM 64中的每个点的3D定位、定位不确定性、强度和强度不确定性。
如以上所讨论的,由于包括传感器噪声、光照条件改变等等的各种因素,任何特定的RGB-D图像帧中的传感器测量可以被考虑为在具有不确定性建模的情况下的偏置观测。然而,在若干帧之上,处理器12被配置成经由不确定性的相应的概率密度函数的融合来更新不确定性。通过在视觉测程法期间对关键帧PSM 64的逐渐更新,方法100构建环境的一致且可靠的模型。
一旦计算了针对当前RGB-D图像帧的相对相机姿态,处理器12就被配置成利用来自当前RGB-D图像帧的观测来更新关键帧PSM 64。首先,处理器12被配置成计算与当前RGB-D图像帧的2D图像空间中的多个2D点x i 相对应的PSM坐标空间中的多个观测点,所述多个2D点x i 中的每一个是关键帧PSM 64的投影处的近邻RGB-D像素往当前RGB-D图像帧上的内插。具体地,在至少一个实施例中,处理器12被配置成根据以下等式来计算观测点:
其中是相机坐标空间中的相应观测点的3D定位,是PSM坐标空间中的相应观测点的3D定位,是被变换到PSM坐标空间中的相应观测点的定位不确定性,是相应观测点的强度,是相应观测点的强度不确定性,并且n是被变换到PSM坐标空间中的相应观测点的法线。
将领会到,这些观测点中的每一个与关键帧PSM 64中的对应点相关联。因此,给定新的观测点,处理器12被配置成根据以下等式、利用针对定位和强度二者的两个高斯分布的融合来更新关键帧PSM 64中的对应点:
。
我们利用符号来标示该更新操作。利用高斯分布建模,更新操作可以如下被更详细地描述:
以及
其中是关键帧PSM 64中的相应点的经更新的3D定位,是关键帧PSM 64中的相应点的经更新的定位不确定性,是关键帧PSM 64中的相应点的经更新的强度,是关键帧PSM 64中的相应点的经更新的强度不确定性,并且是关键帧PSM 64中的相应点的法线。
通过使用以上操作来在每个图像帧之后更新关键帧PSM 64,如果观测点与关键帧PSM 64的点适当地相关联,则不确定性和将快速下降。这是因为方法100在融合期间取高斯分布之间的交集,这是与常规视觉SLAM方法的主要差异。在至少一个实施例中,法线仅仅用于消除不适当的关联,我们简单地保持原始法线,而不是利用新的测量来更新它。换言之,如果PSM坐标空间中的所生成的观测点的法线不等于关键帧PSM 64的相应点的法线或至少在关键帧PSM 64的相应点的法线的预定阈值紧密度内,则所述关联被考虑为是不适当的,并且不利用观测点来更新相应的点。
步骤115、120和125共同包括方法100的前端105,并且针对由处理器12从RGB-D相机20所接收的每个RGB-D图像帧来被执行。因此,关键帧PSM 64被持续更新、细化直到选择了新的关键帧为止,从而改善关于每个中间RGB-D图像帧所执行的视觉测程法。在下文中,我们描述PSM数据结构、特别是全局PSM 62如何在后端110中被利用以改善关键帧选择以及全局优化方面的性能。
方法100以如下步骤继续:确定当前帧是否应当被选择为新的关键帧(框130)。具体地,关于本文中详细描述的实施例,处理器12被配置成执行视觉SLAM程序60的指令,以基于至少一个准则来确定当前RGB-D图像帧是否应当被视为新的关键帧K j+1。
在一个实施例中,处理器12被配置成:响应于自从捕获了最新近的关键帧K j 以来多于预定阈值量的时间而捕获了当前RGB-D图像帧,来将当前RGB-D图像帧选择成是新的关键帧K j+1。
在一个实施例中,处理器12被配置成:响应于针对当前RGB-D图像帧的所计算的相对相机姿态大于自最新近的关键帧K j 的相机姿态的预定空间距离,来将当前RGB-D图像帧选择成是新的关键帧K j+1。
在一个实施例中,处理器12被配置成:响应于在最新近的关键帧K j 与当前RGB-D图像帧之间的所计算的相对相机姿态的熵低于在最新近的关键帧K j 与其相邻帧K j +1之间的相机姿态的熵的预定阈值比,来将当前RGB-D图像帧选择成是新的关键帧K j+1。
在一个实施例中,处理器12被配置成:响应于关键帧PSM 64中是当前RGB-D图像帧中的活跃点和/或可见点的点的数目低于预定阈值,来将当前RGB-D图像帧选择成是新的关键帧K j+1。
在一个实施例中,处理器12被配置成:响应于当前关键帧K j 的关键帧PSM内的强度的平均不确定性或深度的平均不确定性高于对地图和当前帧之间的显著失配进行指示的相应预定阈值,来将当前RGB-D图像帧选择成是新的关键帧K j+1。
我们注意到,如果当前RGB-D图像帧是第一图像帧并且尚未选择任何关键帧,那么处理器12被配置成将当前RGB-D图像帧自动选择为新的关键帧K j+1。
如果选择了新的关键帧,则方法100以如下步骤继续:基于关键帧PSM来更新全局PSM(框135)。具体地,关于本文中详细描述的实施例,一旦选择了新的关键帧K j+1,处理器12就被配置成执行视觉SLAM程序60的指令,以利用先前关键帧K j 的关键帧PSM 64的点来更新全局PSM 62。更具体地,一旦选择了新的关键帧K j+1,处理器12就被配置成更新在关键帧PSM 64中具有相关联的点的在全局PSM 62中的每个点的3D定位、定位不确定性、强度和强度不确定性。另外,在一些实施例中,处理器12被配置成将在全局PSM 62中没有相关联的点的关键帧PSM 64的任何新点添加到全局PSM 62。
处理器12被配置成以与以上关于图3的框125所描述的类似方式来利用关键帧PSM64的点更新全局PSM 62,其中基于每个中间图像帧来更新关键帧PSM 64。具体地,处理器12被配置成将关键帧PSM 64的点视为多个观测点,并且用以上所讨论的方式、通过使用等式(15)-(17)来更新在关键帧PSM 64中具有相关联的点的在全局PSM62中的每个点的定位不确定性和强度不确定性。
方法100以如下步骤继续:为新的关键帧生成新的关键帧PSM(框140)。具体地,关于本文中详细描述的实施例,处理器12被配置成执行视觉SLAM程序60的指令,以基于全局PSM以及新的关键帧K j +1中的任何新的观测来生成新的关键帧PSM 64。
在视觉测程法期间,关键帧PSM 64典型地仅仅覆盖场景的部分。在新的关键帧K j+1被标识的情况下,非常有可能的是将存在尚不存在于全局PSM 62中的场景的新观测。处理器12被配置成通过组合全局PSM 62中的在新的关键帧K j+1中可见的现有部分与来自新的关键帧K j+1的新观测,来为新的关键帧K j+1生成新的关键帧PSM 64。如图4中所示出的,我们将全局PSM 62投影到新的关键帧K j+1的图像空间上,并且从全局PSM 62(利用对角图案被加阴影)中标识在新的关键帧K j+1中可见的活跃点。另外,对于关键帧中与全局PSM没有任何重叠的新区(利用交叉影线图案被加阴影),处理器12被配置成将它们反投影到新的关键帧K j+1的相机坐标空间中,以获得观测点的另一集合。对于这些点,针对强度不确定性的方差被设置成是默认值,而针对定位不确定性的协方差矩阵从以上所讨论的传感器噪声模型导出。因而,处理器12被配置成利用全局PMS 62的活跃/可见点并且利用不与全局PSM 62重叠的任何新的观测点来生成新的关键帧PSM 64。
在至少一个实施例中,处理器12被配置成删除和/或移除新的关键帧PSM 64的具有超过预定阈值的定位不确定性的点。因而,仅有可靠点被包括在关键帧PSM 64中。另外,在一些实施例中,在初始删除之后,处理器12被配置成仅仅保持删除过后的剩余点的比。因而,关键帧PSM 64与全局PSM 62相比一般更加稀疏地被填入(populate),这改善处理速度。
返回到图3,一旦生成了新的关键帧PSM 64,方法100就返回到前端105的过程,以根据框115、120和125来关于新的关键帧K j+1针对新的RGB-D图像帧执行视觉测程法。
除了返回到前端105的过程之外,方法100在后端110中以如下步骤继续:检测是否存在环路闭合(框145),并且如果检测到环路闭合,则以如下步骤继续:添加姿态-姿态约束(框150)并且执行局部姿态图优化(框155)。具体地,关于本文中详细描述的实施例,处理器12被配置成执行视觉SLAM程序60的指令,以检测新选择的关键帧K j+1是否包括关于先前关键帧的环路闭合,并且如果检测到环路闭合,则基于所检测的环路闭合来生成姿态-姿态约束,并且基于姿态-姿态约束来执行局部姿态图优化。
具体地,在后端110中,处理器12被配置成在存储器14中维护和/或存储具有节点和边的姿态图。如本文中所使用的,“姿态图”是指具有多个节点和连接节点对的多条边的数据结构,所述多个节点定义值或测量,所述多条边定义在所连接的节点的值或测量之间的关系。
在选择了新的关键帧K j 时,处理器12被配置成添加它们的关键帧相机姿态作为姿态图中的新节点,并且添加它们的相对变换作为姿态图中的边,从而创建通过姿态-姿态约束而被链接的关键帧相机姿态链。如本文中所使用的,“姿态-姿态约束”是在两个相机姿态之间的相对变换。图5示出了用于基于姿态-姿态约束的局部优化的姿态图200。姿态图200的每个姿态(被示出为节点/圆圈)是关键帧K j 的关键帧相机姿态。姿态图200的每个姿态-姿态约束(被示出为实边/实线)表示在两个相应的关键帧相机姿态之间的相对变换。
为了针对轨迹中的累积误差进行校正,处理器12被配置成搜索到先前所访问的关键帧的环路闭合。如本文中所使用的,环路闭合是指当关键帧姿态被确定为与先前关键帧姿态相同或在到先前关键帧姿态的预定紧密度内的情况。为了标识可能与新的关键帧形成环路闭合的候选的先前关键帧,处理器12被配置成在kd-树中搜索最近的近邻关键帧姿态。在一个实施例中,为了验证环路闭合,处理器12使用以上所讨论的熵比测试来用于关键帧选择。然而,代替于第一帧到关键帧的变换的熵,处理器12被配置成使用中间帧与关键帧的所有成功匹配的平均熵。如果检测到有效的环路闭合,则处理器12将新的边(姿态-姿态约束)添加到姿态图。如图5中所示,姿态图200包括在关键帧相机姿态和之间的附加姿态-姿态约束,其指示环路闭合。
然后,处理器12被配置成通过对非线性最小二乘优化问题进行求解、基于姿态-姿态约束,来校正关键帧姿态中的误差和/或优化关键帧姿态。在一个实施例中,处理器12使用图优化框架来校正误差,诸如在“G2o: A general framework for graphoptimization”(在2011年关于机器人和自动化的IEEE国际会议(ICRA)中,由R. Kummerle、G. Grisetti、H. Strasdat、K. Konolige和W. Burgard)中所描述的框架。
返回到图3,方法100以如下步骤继续:确定是否应当执行全局优化(框160)。具体地,以上所讨论的基于姿态-姿态约束的局部姿态图优化可以实时地被执行,而方法100继续从相机20接收新的RGB-D图像帧。然而,可以通过使用全局PSM 62来建立姿态-点约束而执行另外的全局优化。在至少一个实施例中,处理器12被配置成确定:一旦方法100已经停止接收新的RGB-D图像帧就将执行全局优化。然而,在一些实施例中,可以实时地周期性地执行全局优化。
如果将执行全局优化,则方法100以如下步骤继续:迭代地在姿态-姿态优化与姿态-点优化之间交替(框165)。具体地,关于本文中详细描述的实施例,处理器12被配置成执行视觉SLAM程序60的指令,以将姿态-点约束添加到姿态图并且基于姿态-点约束和姿态-姿态约束来执行全局优化。
具体地,如以上所讨论的,处理器12被配置成在存储器14中维护和/或存储姿态图,所述姿态图具有多个节点和连接节点对的多条边,所述多个节点定义值或测量,所述多条边定义在所连接的节点的值或测量之间的关系。如上所述,关键帧K j 的多个关键帧相机姿态被添加为姿态图的节点,并且多个姿态-姿态约束被添加为姿态图的边。
当执行全局优化的时候,全局PSM 62提供姿态-点约束,所述姿态-点约束通过经编码的不确定性而被恰当地加权,其将用于改善轨迹和地图准确性二者。具体地,处理器12被配置成将来自全局PSM 62的点添加到姿态图,并且将来自变换/投影的、对在PSM点及其局部观测之间的一致性和/或差异进行指示的姿态-点约束添加到每个关键帧K j 的相机坐标空间,在所述相机坐标空间中PSM点是可见的。图6示出了用于基于姿态-姿态约束和姿态-点约束来进行全局优化的姿态图250。除了关键帧K j 的关键帧相机姿态之外,姿态图250包括PSM点(被示出为节点/圆圈)以及姿态-点约束(被示出为虚边/虚线),所述姿态-点约束表示PSM点往关键帧K j 中的变换/投影。以此方式,在全局优化期间,方法100施行姿态-姿态约束以及姿态-点约束二者。
对于姿态-点约束,来自PSM点的测量是点在关键帧中的投影的强度和深度值;局部测量是来自关键帧K j 的和。处理器12被配置成通过使用与等式(5)类似的残余项来优化与等式(13)类似的误差函数,但是具有以下定义改变:
。
注意到,在等式(18)中,表示从全局PSM 62的PSM坐标空间到对应的关键帧K j 的相机坐标空间的变换,而不是相对相机姿态。通过最小化误差函数,可以优化相机姿态和点的3D定位二者。
给定具有姿态、点、姿态-姿态约束、以及姿态-点约束的完整姿态图,处理器12被配置成通过对非线性最小二乘优化问题进行求解、基于姿态-姿态以及姿态-点约束,来校正关键帧姿态和点中的误差和/或优化关键帧姿态和点。在一个实施例中,处理器12使用图优化框架来校正误差,诸如在“G2o: A general framework for graphoptimization”(在2011年关于机器人和自动化的IEEE国际会议(ICRA)中,由R. Kummerle、G. Grisetti、H. Strasdat、K. Konolige和W. Burgard)中所描述的框架。
然而,针对姿态-点约束的误差函数是非线性的并且对噪声和异常敏感。因此,在至少一个实施例中,处理器12被配置成执行迭代的优化过程,其在仅仅优化姿态-姿态约束与优化姿态-点约束之间交替。该交替策略在图7中被概述,并且与联合优化策略相比可以是更高效并且稳健的。在每次迭代的开始处,处理器12被配置成执行姿态-姿态图优化,以校正相机姿态中的误差,并且根据新的姿态来更新PSM点。在帧的新姿态与旧姿态之间的相对运动将变换每个PSM点以用于下一优化迭代。然后,处理器12被配置成在执行姿态-点图优化以利用固定的PSM点来校正相机姿态中的误差之前,检查姿态-点约束以移除异常约束。由于PSM点仅仅与关键帧配准,所以在该优化步骤期间仅仅更新关键帧姿态。因此,处理器12被配置成更新与每个关键帧相邻的中间帧的局部链以对准整个相机轨迹,并且移除在关键帧姿态之间的异常约束以减小交替优化期间的振荡。通常,优化将在10次迭代内快速收敛。在相机姿态和PSM点的优化收敛之后,处理器12被配置成执行最终的姿态-点图优化以利用固定的相机姿态来校正PSM点中的误差。
返回到图3,如果请求密集网格构造,则方法100以如下步骤继续:通过使用全局PSM来生成密集网格(框170)。具体地,关于本文中详细描述的实施例,处理器12被配置成执行视觉SLAM程序60的指令,以响应于针对密集网格构造的请求,通过使用全局PSM 62来生成密集网格。
针对视觉SLAM的常见任务是要重构环境,并且生成密集网格作为输出。在常规的密集视觉SLAM途径中,地图或是以遭受有限空间分辨率的体积形式或是利用3D点云或面元来表示。
如果请求密集网格重构,则处理器12被配置成通过如下操作生成一致的密集网格:使每个关键帧K j 的深度地图朝向全局PSM 62变形,以及将经变形的深度地图融合在一起以生成密集网格。更具体地,对于每个关键帧K j ,处理器12被配置成将具有与关键帧配准的姿态-点约束的点投影到2D图像坐标空间。每个经投影的点在相应的关键帧K j 中具有深度值及其不确定性。然后,对于相应的关键帧K j 中的每个像素x j ,处理器12被配置成通过在2D图像空间中的KNN搜索而找到经投影的地图点的群。给定经投影的地图点,我们根据以下等式来调整针对每个像素的深度:
。
接下来,处理器12将经变形的深度地图融合在一起以生成密集网格。通过使用该途径,一旦被请求,方法100就能够产生一致的密集网格,并且还在视觉SLAM期间节省内存和计算。
虽然已经在附图和前述描述中详细图示和描述了本公开内容,但是这应当被考虑为在特性方面是说明性的而不是限制性的。理解到,仅仅已经呈现了优选的实施例,并且期望保护落在本公开内容的精神内的所有改变、修改和另外的应用。
Claims (18)
1.一种用于视觉同时定位和地图构建的方法,所述方法包括:
在存储器中存储具有对3D环境进行表示的多个面元的第一数据结构,每个面元具有3D定位、3D定位的不确定性、强度、强度的不确定性、以及表面法线,每个面元的3D定位处于第一坐标空间中,其中第一数据结构的所述多个面元对应于在最新近的先前标识的关键帧图像中可见的3D环境的一部分;
在存储器中存储具有对3D环境进行表示的多个面元的第二数据结构,每个面元具有3D定位、3D定位的不确定性、强度、强度的不确定性、以及表面法线,每个面元的3D定位处于第一坐标空间中,第二数据结构的所述多个面元对应于已在任何先前关键帧图像中可见的3D环境的所有部分;
利用处理器来从相机接收3D环境的第一图像,第一图像具有像素阵列,每个像素具有强度和深度;
利用处理器、基于第一图像和第一数据结构来估计相机从中捕获第一图像的第一相机姿态;
利用处理器、基于第一图像和第一相机姿态来更新第一数据结构的所述多个面元中的至少一个面元;
响应于满足至少一个准则而标识第一图像是新的关键帧图像;以及
响应于第一图像被标识为新的关键帧,利用处理器、基于第一数据结构的所述多个面元中的至少一个对应面元,来更新第二数据结构的所述多个面元中的至少一个面元。
2.根据权利要求1所述的方法,估计第一相机姿态进一步包括:
计算第一相机姿态,其在具有最小光度测定误差和几何误差的情况下将第一数据结构的所述多个面元中的面元从第一坐标空间变换到第一图像的坐标空间,
其中几何误差是在第一数据结构的所述多个面元中的相应面元的3D定位与同被变换到第一图像的坐标空间中的相应面元的3D定位相对应的定位处的第一图像的像素阵列的深度值之间的差异,并且
其中光度测定误差是在第一数据结构的所述多个面元中的相应面元的强度与同被变换到第一图像的坐标空间中的相应面元的3D定位相对应的定位处的第一图像的像素阵列的强度值之间的差异。
3.根据权利要求2所述的方法,计算第一相机姿态进一步包括:
利用传感器噪声模型来对几何误差进行加权;以及
利用学生-t分布来对光度测定误差进行加权。
4.根据权利要求1所述的方法,更新第一数据结构的所述多个面元中的所述至少一个面元进一步包括:
通过将第一数据结构的所述多个面元中的所述至少一个面元投影到第一图像的坐标空间中而生成至少一个观测点,所述至少一个观测点具有基于第一图像的像素阵列中的近邻像素的强度值和深度值而确定的3D定位、3D定位的不确定性、强度、强度的不确定性、以及表面法线;以及
基于所述至少一个观测点来更新第一数据结构的所述多个面元中的所述至少一个面元的3D定位、3D定位的不确定性、强度、和强度的不确定性。
5.根据权利要求2所述的方法,计算第一相机姿态进一步包括:
通过使用传感器噪声模型来确定多个观测点中的至少一个观测点的3D定位的不确定性;以及
通过使用学生-t分布来确定所述多个观测点中的所述至少一个观测点的强度的不确定性。
6.根据权利要求1所述的方法,其中所述至少一个准则是:第一数据结构的所述多个面元中的小于预定阈值数目的面元在第一图像帧中可见。
7.根据权利要求1所述的方法,其中所述至少一个准则是以下各项中之一:(i)第一数据结构的所述多个面元中的每个面元的3D定位的不确定性的平均值超过第一预定阈值,以及(ii)第一数据结构的所述多个面元中的每个面元的强度的不确定性的平均值超过第二预定阈值。
8.根据权利要求1所述的方法,更新第二数据结构的所述多个面元中的所述至少一个面元进一步包括:
基于第一数据结构的所述多个面元中的所述至少一个对应面元来更新第二数据结构的所述多个面元中的所述至少一个面元的3D定位、3D定位的不确定性、强度、和强度的不确定性。
9.根据权利要求1所述的方法,进一步包括:
在更新第二数据结构的所述多个面元中的所述至少一个面元之后、利用处理器来用以下各项的组合取代第一数据结构的所述多个面元:(i)第二数据结构的所述多个面元中在新的关键帧图像中可见的面元,以及(ii)在新的关键帧图像中可见但是没有被包括在第二数据结构的所述多个面元中的新面元。
10.根据权利要求9所述的方法,取代第一数据结构的所述多个面元进一步包括:
通过使用传感器噪声模型来确定在新的关键帧图像中可见但是没有被包括在第二数据结构的所述多个面元中的每个新面元的3D定位的不确定性;以及
通过使用学生-t分布来确定在新的关键帧图像中可见但是没有被包括在第二数据结构的所述多个面元中的每个新面元的强度的不确定性。
11.根据权利要求1所述的方法,进一步包括:
利用处理器来在第三数据结构中存储(i)与多个关键帧图像相对应的多个相机姿态,以及(ii)在所述多个相机姿态中的相机姿态对之间的第一多个相对变换,所述多个关键帧图像包括所标识的新的关键帧图像。
12.根据权利要求11所述的方法,进一步包括:
响应于所标识的新的关键帧图像的相机姿态在先前关键帧图像的相机姿态的预定阈值相似性内,利用处理器来向第三数据结构中的第一多个相对变换添加在所标识的新的关键帧图像的相机姿态与所述多个关键帧图像中的先前关键帧图像的相机姿态之间的新的相对变换;以及
利用处理器、基于包括所添加的新的相对变换的第一多个相对变换,来校正第三数据结构的所述多个相机姿态中的误差。
13.根据权利要求11所述的方法,进一步包括:
利用处理器来在第三数据结构中存储在第一坐标空间与所述多个关键帧图像的相应坐标空间之间的第二多个相对变换。
14.根据权利要求13所述的方法,进一步包括:
利用处理器、基于第一多个相对变换以及第二多个相对变换来校正第三数据结构的所述多个相机姿态中的误差;以及
利用处理器、基于第一多个相对变换以及第二多个相对变换来校正第二数据结构的所述多个面元中的误差。
15.根据权利要求13所述的方法,进一步包括:
利用处理器迭代地重复以下各项,直到针对第三数据结构的所述多个相机姿态的值收敛并且针对第二数据结构的所述多个面元的值收敛为止:
利用处理器、基于第一多个相对变换来校正第三数据结构的所述多个相机姿态中的误差;
在校正所述多个相机姿态中的误差之后,利用处理器、基于所述多个相机姿态来更新第二数据结构的所述多个面元;
利用处理器、基于第二多个相对变换以及第二数据结构的经更新的多个面元来校正第三数据结构的所述多个相机姿态中的误差。
16.根据权利要求15所述的方法,进一步包括:
在针对第三数据结构的所述多个相机姿态的值收敛并且针对第二数据结构的所述多个面元的值收敛之后,利用处理器、基于第二多个相对变换来校正第二数据结构的所述多个面元中的误差。
17.根据权利要求1所述的方法,进一步包括:
通过如下操作生成3D环境的密集网格:使多个关键帧图像中的每个关键帧图像的像素的深度值朝向第二数据结构的所述多个面元变形,以及将每个关键帧图像的像素的经变形的深度值融合在一起。
18.一种视觉同时定位和地图构建系统,所述系统包括:
相机,其被配置成捕获3D环境的多个图像,每个图像具有像素阵列,每个像素具有强度和深度;
存储器,其被配置成存储具有对3D环境进行表示的多个面元的第一数据结构,每个面元具有3D定位、3D定位的不确定性、强度、强度的不确定性、以及表面法线,每个面元的3D定位处于第一坐标空间中,第一数据结构的所述多个面元对应于在最新近的先前标识的关键帧图像中可见的3D环境的一部分,并且存储具有对3D环境进行表示的多个面元的第二数据结构,每个面元具有3D定位、3D定位的不确定性、强度、强度的不确定性、以及表面法线,每个面元的3D定位处于第一坐标空间中,第二数据结构的所述多个面元对应于已在任何先前关键帧图像中可见的3D环境的所有部分;以及
处理器,其被配置成:
从相机接收3D环境的所述多个图像中的第一图像;
基于第一图像和第一数据结构来估计相机从中捕获第一图像的第一相机姿态;
基于第一图像和第一相机姿态来更新第一数据结构的所述多个面元中的至少一个面元;
响应于满足至少一个准则而标识第一图像是新的关键帧图像;以及
响应于第一图像被标识为新的关键帧,基于第一数据结构的所述多个面元中的至少一个对应面元,来更新第二数据结构的所述多个面元中的至少一个面元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762535038P | 2017-07-20 | 2017-07-20 | |
US62/535038 | 2017-07-20 | ||
PCT/EP2018/069483 WO2019016255A1 (en) | 2017-07-20 | 2018-07-18 | DENSE VISUAL SLAM WITH PROBABILISED SURFACE ELEMENT MAP |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110945565A CN110945565A (zh) | 2020-03-31 |
CN110945565B true CN110945565B (zh) | 2024-04-30 |
Family
ID=63108515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880047802.4A Active CN110945565B (zh) | 2017-07-20 | 2018-07-18 | 利用概率面元地图的密集视觉slam |
Country Status (4)
Country | Link |
---|---|
US (1) | US10553026B2 (zh) |
CN (1) | CN110945565B (zh) |
DE (1) | DE112018000332T5 (zh) |
WO (1) | WO2019016255A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016029970A1 (en) * | 2014-08-29 | 2016-03-03 | Toyota Motor Europe Nv/Sa | Method and system for scanning an object using an rgb-d sensor |
KR102472767B1 (ko) * | 2017-09-14 | 2022-12-01 | 삼성전자주식회사 | 신뢰도에 기초하여 깊이 맵을 산출하는 방법 및 장치 |
US10510178B2 (en) * | 2018-02-27 | 2019-12-17 | Verizon Patent And Licensing Inc. | Methods and systems for volumetric reconstruction based on a confidence field |
US10953545B2 (en) * | 2018-08-13 | 2021-03-23 | Beijing Jingdong Shangke Information Technology Co., Ltd. | System and method for autonomous navigation using visual sparse map |
US20200137380A1 (en) * | 2018-10-31 | 2020-04-30 | Intel Corporation | Multi-plane display image synthesis mechanism |
CN110046677B (zh) * | 2019-04-26 | 2021-07-06 | 山东大学 | 数据预处理方法、地图构建方法、回环检测方法及系统 |
CN110335317B (zh) * | 2019-07-02 | 2022-03-25 | 百度在线网络技术(北京)有限公司 | 基于终端设备定位的图像处理方法、装置、设备和介质 |
US20210319568A1 (en) * | 2020-04-10 | 2021-10-14 | Brigham Young University | Cooperative Aircraft Navigation |
US11810595B2 (en) | 2020-04-16 | 2023-11-07 | At&T Intellectual Property I, L.P. | Identification of life events for virtual reality data and content collection |
US11217029B2 (en) * | 2020-04-16 | 2022-01-04 | At&T Intellectual Property I, L.P. | Facilitation of augmented reality-based space assessment |
US11568987B2 (en) | 2020-04-17 | 2023-01-31 | At&T Intellectual Property I, L.P. | Facilitation of conditional do not resuscitate orders |
CN111612847B (zh) * | 2020-04-30 | 2023-10-20 | 湖北煌朝智能自动化装备有限公司 | 机器人抓取操作的点云数据匹配方法及系统 |
US11541903B2 (en) * | 2020-06-03 | 2023-01-03 | Waymo Llc | Autonomous driving with surfel maps |
US11676392B2 (en) * | 2020-06-03 | 2023-06-13 | Waymo Llc | Localization using surfel data |
US11436804B2 (en) * | 2020-06-10 | 2022-09-06 | Arm Limited | Augmented reality system |
KR102449279B1 (ko) * | 2020-06-30 | 2022-10-04 | 한국과학기술원 | 3차원 모델링을 위한 모바일 로봇 제어 장치, 이를 포함하는 3차원 모델링 시스템 및 이를 이용한 3차원 모델링 방법 |
US11853070B2 (en) * | 2020-09-04 | 2023-12-26 | Waymo Llc | Updating road graphs for autonomous driving |
US11417110B2 (en) * | 2020-09-09 | 2022-08-16 | Waymo Llc | Annotated surfel maps |
US11561552B2 (en) * | 2020-09-15 | 2023-01-24 | Waymo Llc | Detecting environment changes using surfel data |
CN114445549A (zh) * | 2020-11-03 | 2022-05-06 | 舜宇光学(浙江)研究院有限公司 | 基于slam的三维稠密面元建图方法及其系统和电子设备 |
CN113671530B (zh) * | 2021-08-06 | 2024-01-12 | 北京京东乾石科技有限公司 | 位姿确定方法、装置及存储介质和电子设备 |
KR102692572B1 (ko) * | 2021-08-23 | 2024-08-05 | 연세대학교 산학협력단 | 특징점-서펠 융합을 이용한 이동체의 위치 추정 및 지도 작성 방법 및 장치 |
CN113792045B (zh) * | 2021-08-25 | 2022-09-13 | 生态环境部卫星环境应用中心 | 会商生态保护红线区生态破坏问题数据的混合存储方法 |
CN114170288A (zh) * | 2021-11-30 | 2022-03-11 | 北京理工大学 | 一种基于面元的三维重建方法及装置 |
DE102023105585A1 (de) | 2023-03-07 | 2024-09-12 | Dspace Gmbh | SLAM-Verfahren |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104374395A (zh) * | 2014-03-31 | 2015-02-25 | 南京邮电大学 | 基于图的视觉slam方法 |
CN104851094A (zh) * | 2015-05-14 | 2015-08-19 | 西安电子科技大学 | 一种基于rgb-d的slam算法的改进方法 |
CN106127739A (zh) * | 2016-06-16 | 2016-11-16 | 华东交通大学 | 一种结合单目视觉的rgb‑d slam方法 |
CN106296812A (zh) * | 2016-08-18 | 2017-01-04 | 宁波傲视智绘光电科技有限公司 | 同步定位与建图方法 |
-
2018
- 2018-07-17 US US16/036,979 patent/US10553026B2/en active Active
- 2018-07-18 WO PCT/EP2018/069483 patent/WO2019016255A1/en active Application Filing
- 2018-07-18 CN CN201880047802.4A patent/CN110945565B/zh active Active
- 2018-07-18 DE DE112018000332.9T patent/DE112018000332T5/de active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104374395A (zh) * | 2014-03-31 | 2015-02-25 | 南京邮电大学 | 基于图的视觉slam方法 |
CN104851094A (zh) * | 2015-05-14 | 2015-08-19 | 西安电子科技大学 | 一种基于rgb-d的slam算法的改进方法 |
CN106127739A (zh) * | 2016-06-16 | 2016-11-16 | 华东交通大学 | 一种结合单目视觉的rgb‑d slam方法 |
CN106296812A (zh) * | 2016-08-18 | 2017-01-04 | 宁波傲视智绘光电科技有限公司 | 同步定位与建图方法 |
Non-Patent Citations (4)
Title |
---|
𝜎-DVO: Sensor Noise Model Meets Dense Visual Odometry;Benzun Wisely Babu 等;2016 IEEE International Symposium on Mixed and Augmented Reality;18-26 * |
ElasticFusion: Real-time dense SLAM and light source estimation;Thomas Whelan 等;The International Journal of Robotics Research;1-20 * |
Multi-Resolution Surfel Maps for Efficient Dense 3D Modeling and Tracking;Jorg Stuckler 等;Journal of Visual Communication and Image Representation;第25卷(第01期);1-30 * |
Thomas Whelan 等.ElasticFusion: Real-time dense SLAM and light source estimation.The International Journal of Robotics Research.2016,1-20. * |
Also Published As
Publication number | Publication date |
---|---|
US10553026B2 (en) | 2020-02-04 |
WO2019016255A1 (en) | 2019-01-24 |
DE112018000332T5 (de) | 2019-09-19 |
CN110945565A (zh) | 2020-03-31 |
US20190026943A1 (en) | 2019-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110945565B (zh) | 利用概率面元地图的密集视觉slam | |
Hsiao et al. | Keyframe-based dense planar SLAM | |
US11210805B2 (en) | Simultaneous localization and dense three-dimensional reconstruction method | |
Zhu et al. | Spatial-temporal fusion for high accuracy depth maps using dynamic MRFs | |
Forster et al. | SVO: Fast semi-direct monocular visual odometry | |
KR20210042942A (ko) | 비디오 데이터를 이용한 객체 인스턴스 매핑 | |
Yan et al. | Dense visual SLAM with probabilistic surfel map | |
US9613420B2 (en) | Method for locating a camera and for 3D reconstruction in a partially known environment | |
Audras et al. | Real-time dense appearance-based SLAM for RGB-D sensors | |
Greene et al. | Multi-level mapping: Real-time dense monocular slam | |
Klose et al. | Efficient compositional approaches for real-time robust direct visual odometry from RGB-D data | |
CN111462207A (zh) | 一种融合直接法与特征法的rgb-d同时定位与地图创建方法 | |
CN106934827A (zh) | 三维场景的重建方法和装置 | |
CN104537709A (zh) | 一种基于位姿变化的实时三维重建关键帧确定方法 | |
Lovi | Incremental free-space carving for real-time 3d reconstruction | |
Della Corte et al. | A general framework for flexible multi-cue photometric point cloud registration | |
Liu et al. | Robust keyframe-based dense SLAM with an RGB-D camera | |
Wang et al. | Feature-based RGB-D camera pose optimization for real-time 3D reconstruction | |
Tykkälä et al. | Live RGB-D camera tracking for television production studios | |
Liu et al. | Real-time dense construction with deep multi-view stereo using camera and IMU sensors | |
KR101766823B1 (ko) | 불규칙한 조도 변화에 강건한 영상 기반 주행거리 측정 시스템 및 방법 | |
Tykkälä et al. | A dense structure model for image based stereo SLAM | |
Cigla et al. | Gaussian mixture models for temporal depth fusion | |
Buck et al. | Capturing uncertainty in monocular depth estimation: Towards fuzzy voxel maps | |
Liao et al. | High completeness multi-view stereo for dense reconstruction of large-scale urban scenes |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |