CN109727288B - 用于单目同时定位与地图构建的***和方法 - Google Patents
用于单目同时定位与地图构建的***和方法 Download PDFInfo
- Publication number
- CN109727288B CN109727288B CN201811633004.8A CN201811633004A CN109727288B CN 109727288 B CN109727288 B CN 109727288B CN 201811633004 A CN201811633004 A CN 201811633004A CN 109727288 B CN109727288 B CN 109727288B
- Authority
- CN
- China
- Prior art keywords
- map
- points
- feature
- current frame
- frame
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000013507 mapping Methods 0.000 title claims abstract description 12
- 230000004807 localization Effects 0.000 title claims abstract description 10
- 239000013598 vector Substances 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 238000013519 translation Methods 0.000 claims description 7
- 238000005259 measurement Methods 0.000 claims description 3
- 238000009877 rendering Methods 0.000 claims description 2
- 230000008901 benefit Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- 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/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- 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
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- 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/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- 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/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Geometry (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Computer Graphics (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种用于同时定位与地图构建的方法。该方法包括以下步骤:从由相机捕获的当前帧中检测二维(2D)特征点;直接将来自当前帧的2D特征点与三维(3D)地图中的3D地图点匹配,以获得2D特征点与3D地图点之间的对应关系;以及基于获得的对应关系来计算相机的当前姿势。每个2D特征点和每个3D地图点都具有特征描述符。匹配的步骤通过比较2D特征点的特征描述符与3D地图点的特征描述符来执行。
Description
相关申请的交叉引用
在本发明的描述中引用和讨论了一些参考文献,其可包括专利、专利申请和各种出版物。提供对这些参考文献的引用和/或讨论仅仅是为了阐明本发明的描述,而不是承认任何这样的参考文献是本文所述发明的“现有技术”。本说明书中引用和讨论的所有参考文献均以引用的方式整体并入本文,其程度如同每篇参考文献被单独并入作为参考。
技术领域
本发明总体涉及图像处理领域,并且更具体地涉及用于单目同时定位与地图构建的***和方法。
背景技术
这里提供的背景描述是为了总体上呈现本发明的上下文。在本背景技术部分中描述的范围内目前指定的发明人的工作以及在提交时可能另外不具有资格作为现有技术的描述的各方面,既不明示也不暗示地被承认为本发明的现有技术。
使用单个相机的同时定位与地图构建(SLAM)的解决方案(也称为单目SLAM)可以被用于同时构建并更新相机所处的环境的三维(3D)地图,同时保持跟踪相机相对于环境的姿势,包括位置和取向。通常,3D地图可以由表示环境的3D点的集合组成。然而,将单个相机收集的帧中的点与3D地图中的点精确地相关联是具有挑战性的。
因此,在本领域中存在要解决上述缺陷和不足的未决需求。
发明内容
在某些方面,本发明涉及一种用于同时定位与地图构建的方法。在某些实施例中,所述方法包括以下步骤:从由相机捕获的当前帧中检测二维(2D)特征点;直接将来自当前帧的2D特征点与三维(3D)地图中的3D地图点匹配,以获得2D特征点与3D地图点之间的对应关系;以及基于获得的对应关系来计算相机的当前姿势。每个2D特征点和每个3D地图点都具有特征描述符,并且通过比较2D特征点的特征描述符与3D地图点的特征描述符来执行所述匹配。
在某些实施例中,所述方法还包括:响应于确定所述当前帧有资格作为关键帧:基于所述当前帧来重建新的3D地图点;以及将所述新的3D地图点合并到所述3D地图中。
在某些实施例中,当所述当前帧的已经与所述3D地图点匹配的2D特征点的百分比低于预定阈值时,确定所述当前帧有资格作为关键帧。在某些实施例中,预定阈值为约30%。
在某些实施例中,所述方法还包括:响应于确定所述当前帧有资格作为关键帧:将更新的3D地图中的3D地图点的年龄分别增加1。
在某些实施例中,对年龄小于预定阈值的3D地图点的至少一部分执行所述匹配。
在某些实施例中,所述方法还包括:基于所述当前帧在所述3D地图上渲染虚拟对象。
在某些实施例中,所述方法还包括:去除年龄大于预定阈值的3D地图点。在某些实施例中,所述年龄在2至100的范围内。在某些实施例中,所述年龄在5至20的范围内。在某些实施例中,所述年龄为约5或10。
在某些实施例中,所述方法还包括:基于预定标准从由所述相机捕获的帧序列中选择一对帧;以及通过以下操作来构建初始3D地图:对来自所述一对帧的2D特征点进行匹配以获得2D特征点对应关系,基于所述2D特征点对应关系来恢复所述相机的相对旋转和平移,以及对对应的2D特征点对进行三角测量以获得所述初始3D地图点。
在某些实施例中,所述方法还包括:基于从以下中的至少一项获得的数据来计算所述相机的当前姿势:加速器;陀螺仪;以及惯性测量单元(IMU)。
在某些实施例中,所述方法还包括:通过束调整来优化所述相机的当前姿势。
在某些实施例中,所述2D特征点和所述3D地图点的特征描述符中的每个特征描述符均包括所述2D特征点和所述3D地图点中的对应一个的矢量或直方图。
在某些方面,本发明涉及一种用于同时定位与地图构建的方法。所述方法包括:从由相机捕获的当前帧中检测2D特征点;将从当前帧检测到的特征点的特征描述符与多个先前帧中的特征点的特征描述符进行匹配;基于匹配结果以及所述多个先前帧的2D特征点的特征描述符与3D地图点的特征描述符之间的对应关系来获得所述2D特征点与所述3D地图点之间的对应关系;以及基于获得的对应关系来计算相机的当前姿势。
在某些实施例中,所述匹配还包括:将从当前帧检测到的特征点的特征描述符与来自多个先前帧的对应特征点的2D特征描述符的“平均”或“组合”或“级联”进行匹配。
在某些方面,本发明涉及一种用于同时定位与地图构建的设备。所述设备包括相机、至少一个处理器,以及包括计算机可执行代码或指令的存储器。所述指令当在所述至少一个处理器中被执行时,被配置为:从由所述相机捕获的当前帧中检测二维(2D)特征点;直接将来自当前帧的2D特征点与三维(3D)地图中的3D地图点匹配,以获得2D特征点与3D地图点之间的对应关系;以及基于获得的对应关系来计算所述相机的当前姿势。每个2D特征点和每个3D地图点都具有特征描述符,并且通过比较2D特征点的特征描述符与3D地图点的特征描述符来执行所述匹配。
在某些实施例中,被执行的指令还被配置为:响应于确定所述当前帧有资格作为关键帧:基于所述当前帧来重建新的3D地图点;以及将所述新的3D地图点合并到所述3D地图中。
在某些实施例中,被执行的指令还被配置为:当所述当前帧的已经与所述3D地图点匹配的2D特征点的百分比低于约30%时,确定所述当前帧有资格作为关键帧。
在某些实施例中,被执行的指令还被配置为:响应于确定所述当前帧有资格作为关键帧:将更新的3D地图中的3D地图点的年龄分别增加1;以及去除年龄大于预定阈值的3D地图点。
在某些实施例中,被执行的指令还被配置为:基于预定标准从由所述相机捕获的帧序列中选择一对帧;以及通过以下操作来构建初始3D地图:将来自所述一对帧中的一个的2D特征点与来自所述一对特征帧中的另一个的2D特征点进行匹配以获得2D特征点对应关系,基于所述2D特征点对应关系来恢复所述相机的相对旋转和平移,以及对对应的2D特征点对进行三角测量以获得初始3D地图点。
在某些实施例中,所述2D特征点和所述3D地图点的特征描述符中的每个特征描述符均包括所述2D特征点和所述3D地图点中的对应一个的矢量或直方图。
在某些实施例中,被执行的指令还被配置为:通过束调整来优化所述相机的当前姿势。
在另一方面,本发明涉及一种增强现实(AR)***,包括如前所述的设备。
在另一方面,本发明涉及一种计算机可读介质,其存储包括指令的计算机程序,所述指令当在至少一个处理器上执行时使所述至少一个处理器执行如前所述的方法。
从结合以下附图及其说明对优选实施例的以下描述中,本发明的这些和其他方面将变得清楚,尽管可以在不脱离本发明新颖概念的精神和范围的情况下进行改变和修改。
附图说明
从详细描述和附图中将会更全面地理解本发明。这些附图示出了本发明的一个或多个实施例,并且与说明书一起用于解释本发明的原理。在任何可能的地方,贯穿附图,相同的附图标记用于表示实施例的相同或类似的元件,其中:
图1示意性地描绘了根据本发明的某些实施例的SLAM解决方案,其中存在错误传播。
图2示意性地描绘了根据本发明的某些实施例的另一SLAM解决方案。
图3示意性地描绘了根据本发明的某些实施例的用于SLAM的方法的流程图。
图4示意性地描绘了根据本发明的某些实施例的SLAM解决方案,其中防止了错误传播。
图5示意性地描绘了根据本发明的某些实施例的SLAM解决方案,其中提供了2D帧与3D地图之间的扩展匹配。
图6示意性地描绘了根据本发明的某些实施例的SLAM解决方案的***。
具体实施方式
在以下示例中更具体地描述了本发明,这些示例旨在仅用于说明,因为其中的许多修改和变化对本领域技术人员来说将是显而易见的。现在,详细描述本发明的各种实施例。参考附图,相同的数字(如果有的话)在全部图中表示相同的组件。如在此说明书和随后的权利要求书中所使用的,除非上下文另有明确说明,否则“一”、“一个”和“该”的含义包括复数引用。此外,如在此说明书和在所附权利要求书中所使用的,“在...中”的含义包括“在......中”和“在......上”,除非上下文另有明确规定。此外,为了方便读者,可以在说明书中使用标题或副标题,这不会影响本发明的范围。另外,在下面更具体地定义本说明书中使用的一些术语。
本说明书中使用的术语在本发明的上下文中以及在使用每个术语的特定上下文中通常具有其在本领域中的普通含义。在下面或说明书中的其他地方讨论用于描述本发明的某些术语,以向从业者提供关于本发明的描述的额外指导。为方便起见,可以例如使用斜体和/或引号来突出显示某些术语。突出显示的使用对术语的范围和含义没有影响;无论术语是否被突出显示,该术语的范围和含义在相同的上下文中是相同的。将理解,可以以不止一种方式说同样的事情。因此,对于本文所讨论的任何一个或多个术语,都可以使用替代语言和同义词,并且对于术语是否在本文中被详细阐述或讨论也没有任何特殊意义。提供了某些术语的同义词。对一个或多个同义词的叙述不排除使用其他同义词。在本说明书中任何地方的示例的使用,包括本文所讨论的任何术语的示例,仅是说明性的,并且绝不限制本发明或任何示例性术语的范围和含义。同样,本发明不限于本说明书中给出的各种实施例。
除非另外定义,否则本文使用的所有技术和科学术语具有与本发明所属领域的普通技术人员通常所理解的含义相同的含义。在发生冲突的情况下,本文档(包括定义)将进行控制。
如本文所使用的,“大约”、“约”或“近似地”通常意味着在给定值或范围的20%内,优选地在10%内,并且更优选地在5%内。本文中给出的数值数量是近似的,意味着如果没有明确说明,则可以推断出术语“大约”、“约”或“近似地”。
如本文所使用的,“多个”意味着两个或更多个。
如本文所使用的,术语“包含”、“包括”、“携带”、“具有”、“含有”、“涉及”等应被理解为开放式的,即意味着包括但不限于。
如本文所使用的,短语“A、B和C中的至少一个”应被解释为表示使用非排他性逻辑“或(OR)”的逻辑(A或B或C)。应当理解,在不改变本发明的原理的情况下,方法中的一个或多个步骤可以以不同的顺序(或同时)执行。
如本文所使用的,术语“模块”或“单元”可以指代以下项,可以是以下项的一部分,或可以包括以下项:专用集成电路(ASIC);电子电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器(共享型、专用型或分组型);提供所述功能的其他合适的硬件组件;或者上述中的一些或全部例如在片上***中的组合。术语“模块”或“单元”可以包括存储由处理器执行的代码的存储器(共享型、专用型或分组型)。
如本文所使用的术语“代码”可以包括软件、固件和/或微代码,并且可以指代程序、例程、函数、类和/或对象。如上所使用的术语“共享型”意味着可以使用单个(共享)处理器来执行来自多个模块的一些或所有代码。另外,来自多个模块的一些或所有代码可以由单个(共享)存储器存储。如上所使用的术语“分组型”意味着可以使用一组处理器执行来自单个模块的一些或所有代码。另外,可以使用一组存储器存储来自单个模块的一些或所有代码。
如本文所使用的术语“接口”通常是指组件之间的用于在组件之间执行数据通信的交互点处的通信工具或装置。通常,接口可以适用于硬件和软件两者的级别,并且可以是单向接口或双向接口。物理硬件接口的示例可以包括电连接器、总线、端口、电缆、端子和其他I/O设备或组件。与接口通信的组件可以是例如计算机***的多个组件或***设备。
本发明可以由计算机***实现。如附图中所描绘的,计算机组件可以包括物理硬件组件和虚拟软件组件。本领域普通技术人员将理解的,除非另有说明,否则这些计算机组件可以用软件、固件或硬件组件或它们的组合的形式来实现,但不限于这些形式。
本文所描述的装置、***和方法可以利用由一个或多个处理器执行的一个或多个计算机程序来实现。计算机程序包括存储在非暂时性有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括存储的数据。非暂时性有形计算机可读介质的非限制性示例是非易失性存储器、磁存储设备和光存储设备。
现在将在下文中参考附图更全面地描述本发明,在附图中示出了本发明的实施例。然而,本发明可以按多种不同形式来实现,并且不应当被解释为受到本文阐述的实施例的限制;相反,这些实施例被提供以使得本发明是透彻和完整的,并且向本领域技术人员充分传达本发明的范围。
在某些方面,本发明涉及若干种类型的SLAM解决方案,例如定向FAST和旋转BRIEFSLAM(ORB-SLAM)、单目视觉惯性***(VINS-Mono)等。在ORB-SLAM和VINS-Mono两者中,来自当前帧的二维(2D)特征点的特征分别与来自先前帧之一(优选地,紧接在当前帧之前的帧)特征点的特征进行匹配;并且然后,可以基于当前帧与先前帧之间的特征匹配的结果来获得3D地图的3D地图点与来自当前帧的特征点之间的对应关系。因此,3D地图的3D地图点与来自当前帧的特征点之间的对应关系显著地取决于3D地图的3D地图点与来自先前帧的特征点之间的对应关系。
在某些实施例中,跟踪错误可能出现并传播。图1示出了SLAM解决方案,其中3D地图的3D地图点与来自一个帧的特征点之间的对应关系中的错误传播到下一帧。如图1所示,建立了帧n的特征点1、2、3和4与3D地图的特征点1′、2′、3′和4′之间的对应关系。当获得帧n+1时,该方法首先确定帧n与帧n+1之间的特征点对应关系。可以基于帧n与帧n+1之间的特征点对应关系,以及帧n与3D地图之间的特征点对应关系,导出帧n+1与3D地图之间的对应关系。如图1所示,由于跟踪中的错误,帧n+1中的特征点2和1分别与帧n中的特征点1和2相对应。因此,所导出的帧n+1与3D地图之间的对应关系也是不正确的,即,帧n+1中的特征点2和1分别与3D地图中的特征点1和2相对应。当获得新的帧n+2时,假设帧n+2与帧n+1之间不存在跟踪错误,即,帧n+2的特征点2和1与帧n+1的特征点2和1相对应。因此,帧n+l的特征点2和1与帧n的特征点1和2相对应,并且帧n的特征点1和2与3D地图的特征点1和2相对应。结果,帧n+2的特征点2和1与3D地图的特征点1和2相对应。在这种情况下,一旦发生如帧n+1所示的跟踪错误,就很难在后续帧中纠正该错误。因此,上述过程不利地影响SLAM解决方***性。
另外,由于3D地图的特征点与来自当前帧的特征点之间的对应关系取决于3D地图的特征点与来自先前帧的特征点之间的对应关系,因此来自当前帧的用于进行匹配的特征点仅限于来自先前帧的特征点。因此,没有另外的来自当前帧的特征点可以与3D地图中与其对应的特征点匹配。具体地,如图2所示,在某些SLAM解决方案中,帧n具有特征点1、2、3和4,它们与3D地图的特征点1′、2′、3′和4’相对应。当获得新的帧n+1时,新的帧n+1具有特征点1、2、3、4、5和6。由于帧n仅具有4个特征点,因此只有帧n+1的特征点1、2、3和4可以在帧n中找到对应关系。结果,***找到来自帧n+1的特征点1、2、3和4与3D地图的特征点1、2、3和4之间的对应关系。由于中间帧n不包括特征点5和6,因此没有途径来找到帧n+1中的特征点5和6与3D地图中的特征点5和6之间的对应关系。换句话说,尽管存在来自当前帧(帧n+1)的更多的特征点(5、6),但这些特征点(5、6)无法找到它们与3D地图点的对应关系,因为3D地图点与来自当前帧的特征点之间的对应关系是基于3D地图点与来自先前帧n的特征点之间的对应关系来获得的。
在某些方面,本发明提供了一种改进的SLAM解决方案,以克服上述缺点。在某些实施例中,独立于3D地图的特征点与来自先前帧中任何一个的特征点之间的对应关系,该解决方案直接将当前2D帧中的特征点与3D地图中的特征点匹配。此外,作为仅使用关键帧的替代,该解决方案使用每个捕获的帧通过束调整(BA)来优化相机的姿势,从而提高了相机的姿势估计的准确性。这里,关键帧是从由相机捕获的帧的序列中选择的具有更多特征点并且具有用于估计相机姿势的高质量的帧。
在某些实施例中,改进的SLAM方法包括初始化、跟踪、地图构建和重新定位的组成。针对初始化,基于有利于大的视觉视差并避免纯平面结构的得分,从捕获的图像序列中选择一对图像。SfM用于根据这对输入图像重建初始结构。更具体地,首先对来自这对图像的ORB特征进行匹配。然后,从两个图像中的对应点恢复相对的相机旋转和平移。通过两个帧之间的相对变换,对所有对应点进行三角测量以获得3D地图点。
针对跟踪,该方法不是逐帧地跟踪,而是将当前帧的2D特征直接与当前的重建结构中的3D地图点匹配。这是根据本发明的某些实施例的方法的区别特征之一。针对每个重建的3D地图点,存储特征描述符(例如,ORB描述符)。当使用三角测量法重建新的3D地图点时,来自两个帧之一的ORB特征描述符被用作3D地图点的描述符。稍后,当再次看到相同的3D点时,可以使用来自最近帧的数据来更新其特征描述符。该方法的优点在于,它提供了用于对比先前帧中的特征更多的特征进行匹配的机会,因为并非所有的3D地图点都在先前帧中可见。然后,给定3D点到2D特征对应关系,使用透视n点(Perspective-n-Point)算法来计算初始相机姿势。
与ORB-SLAM和VINS-mono类似,在滑动窗口上使用束调整(BA)优化来进一步优化相机姿势。BA是一种非线性优化方法,其通过最小化3D地图点在相机视平面上的重新投影错误来一起优化3D地图点的位置和相机的姿势。只要存在新的关键帧,ORB-SLAM和VINS-Mono就执行BA,以便以有规律的或无规律的间隔来纠正姿势跟踪错误。相反,根据本发明的某些实施例的方法在每帧上优化相机姿势,而不管它是否是关键帧。以这种方式,该方法针对每个帧产生优化的姿势,并且因此增加相机姿态估计的时间平滑度。
针对地图构建,一旦该方法决定应该将帧添加到关键帧的集合,就可以使用新的关键帧和来自帧的滑动窗口的最佳图像来创建新的3D地图点。可以使用与初始化步骤中使用的标准相同的标准来选择最佳图像。新的点被进行三角测量并被添加到3D地图。在某些实施例中,所有3D地图点的年龄也增加1。以这种方式,可以去除比某个年龄更老旧的点,从而保持内存占用受控。
当相机移动太快时,地图构建和跟踪变得不稳定,并且需要重新定位。由于存储了3D地图点的描述符,因此通过简单地匹配新的帧中的特征与3D地图点的特征描述符来支持重新定位。
图3说明性地示出了根据本发明的某些实施例的用于SLAM的方法300的流程图,该方法可以在能够进行SLAM的设备(例如图6所示的设备)上执行。在某些实施例中,该设备包括处理器、存储器和存储设备,其中处理器被配置为控制设备的操作,存储器可以是用于在设备的操作期间存储数据和信息的易失性存储器,并且存储设备可以是用于存储计算机可执行代码或指令的非易失性存储器。当在处理器处被执行时,代码被配置为执行方法300。该设备可以是机器人、增强现实(AR)设备、混合现实(MR)设备或虚拟现实(VR)设备的一部分。应特别注意,除非在本发明中另有说明,否则该方法的步骤可以以不同的顺序次序来布置,并且因此不限于如图3所示的顺序。
如图3所示,在步骤301中,当设备在环境中移动时,设备的相机捕获帧。
在获得帧之后,在步骤303中,设备的处理器处理所述帧以获得特征点,并计算每个特征点的特征描述符。可以基于特性点各自的特性来获得该特征点。例如,每个特征点可以位于角落或边缘处。计算特征点以获得特征描述符。描述符可以是表示特征点的颜色、形状、区域、纹理和运动的一般信息描述符,或者可以是表示场景中的对象和事件的特定域信息描述符。在某些实施例中,特征描述符被计算为矢量或直方图。每个特征点的描述符不仅包括该像素的信息,而且还包括该特征点周围的某些其他像素的信息。在某些实施例中,特征点可以包括不止一个像素。在某些实施例中,特征描述符是ORB特征描述符。
在步骤305中,将帧、特征点和相关联的特征描述符存储在缓冲区中。如果缓冲区具有比预定义的阈值更多的图像,则丢弃最旧的图像。该缓冲区也被称为滑动窗口。在某些实施例中,预定义的阈值可以是4至100。在某些实施例中,预定义的阈值是10至40。在一个实施例中,预定义的阈值是20。
在步骤307中,设备确定是否已经存在环境的初始化3D地图。如果“否”,则方法300进行到步骤308以建立初始3D地图,如果“是”,则方法300进行到步骤311以进行跟踪。
当没有可用的初始3D地图时,在步骤308处,设备确定是否存在来自滑动窗口的一对优良的图像(帧)。通过某些预定标准来评估该对图像的质量。例如,具有更多特征点的一对图像是有利的。在某些实施例中,使用视觉视差特征、平面特征等对滑动窗口中的图像序列进行评分,并且具有高得分的一对图像(即,具有大的视觉视差且没有纯平面结构的图像)被选择用来构建初始3D地图。
在某些实施例中,当滑动窗口不具有一对优良的图像时,步骤308进行到步骤301以收集更多的图像。在某些实施例中,相机连续地捕获帧,并且当步骤308中的确定为“否”时,设备可以不做任何事情作为响应,而等待后续帧。
当滑动窗口包含一对优良的图像时,步骤308进行到步骤310以构建初始3D地图。在某些实施例中,设备使用运动结构(SfM)基于所选择的一对帧来重建环境的初始3D地图。在某些实施例中,设备对来自所选择的一对帧的特征点的2D特征进行匹配,根据该对帧中的对应的特征点来恢复相对相机旋转和平移,并且然后对对应的特征点进行三角测量以获得初始3D地图点。3D地图点在该对帧中具有它们各自的对应的特征点,并且每个3D地图点的特征描述符与该对帧中的对应的特征点的特征描述符相对应。3D地图点的特征描述符可以与来自具有较好质量的一个帧或来自在稍后的时间被捕获的一个帧的对应的特征点的特征描述符相同,或者与来自这两个帧的对应的特征描述符的平均值相同。这样,可以获得2D特征点与3D地图点之间的对应关系。在某些实施例中,无论步骤310如何,相机都继续捕获帧。在其他实施例中,相机在从步骤310接收到结果之后重新开始捕获帧。在某些实施例中,成功构建初始映射的结果可以反馈或可以不反馈给相机,但是该结果将存储在设备的存储器或存储设备中以供进一步使用。在某些实施例中,构建的3D地图仅包含与2D帧中的特征点相对应的特征点。在其他实施例中,构件的3D地图还可以被填充一些其他点,例如平坦表面的计算点,使得可以更生动地观看3D地图。
当步骤307中的确定为“是”时,过程300进行到步骤311。此时,设备将当前帧的特征点与3D地图中的地图点相匹配。在某些实施例中,对所有3D地图点执行匹配。在其他实施例中,对年龄小于预定阈值的3D地图点的子集执行匹配,以便相应地增加其匹配速度并改善性能。匹配基于特征描述符,例如2D特征点或3D地图点的ORB特征描述符。在某些实施例中,匹配可能不意味着特征描述符完全相同,而是足够接近。
在匹配之后,在步骤313中,设备确定从步骤311获得的匹配结果的质量。在某些实施例中,基于是否存在足够数量的匹配的特征点来执行该确定。在其他实施例中,该确定还可以包括当前帧中的匹配的特征点与识别的特征点的总数的百分比。高的百分比通常意味着良好的匹配,不错的百分比可能意味着具有一些新的特征点的良好的匹配,而低百分比可能意味着不良的帧。在当前帧与3D地图之间的匹配不够好时,方法300丢弃可能产生不良姿势的当前帧,并且返回到步骤301以继续捕获帧。在某些实施例中,由于相机连续地捕获帧,所以当步骤313中的确定为“否”时,设备可以不做任何事情作为响应,而等待来自后续帧的另一匹配结果。因此,不良匹配的结果可以不被回传给步骤301。
在步骤315中,响应于在步骤313中接收到确定“是”,设备基于获得的对应关系并且可选地或附加地基于从加速器、陀螺仪以及惯性测量单元(IMU)中的至少一个获得的数据来计算相机的当前姿势。在某些实施例中,在束调整之前使用透视n点算法来计算姿势。相机的当前姿势通常可以被表示为三度平移和三度旋转。在某些实施例中,可以在滑动窗口上使用BA优化来进一步优化相机的当前姿势。BA是一种非线性优化方法,其通过最小化3D地图点在相机视平面上的重新投影错误来一起优化3D地图点的位置和相机的姿势。与ORB-SLAM和VINS-Mono不同(ORB-SLAM和VINS-Mono只要有新的关键帧就执行BA,以便以有规律或无规律的间隔来纠正跟踪相机的姿势的错误),在本发明的实施例中,可以在每帧上优化相机的姿势,无论它是否是关键帧。以这种方式,本发明的实施例针对每个帧产生优化的姿势,这因此增加了相机姿态估计的时间平滑度。在实施例中,可以在3D地图上渲染虚拟对象。
在某些实施例中,设备还可以执行步骤317和319。在步骤317中,设备对当前帧执行关键帧测试,以决定当前帧有资格作为关键帧。在某些实施例中,如果当前帧中的已经与3D地图匹配的特征点的百分比低于阈值,则当前帧可以被视为看到环境的新部分,并且应该被添加到关键帧集合。在某些实施例中,阈值为约5%至50%。在某些实施例中,阈值为约10%至30%。在某些实施例中,阈值为约20%。接下来,在步骤319中,设备使用当前帧和来自滑动窗口的最佳帧来执行三角测量,以重建新的3D地图点的集合,并将这些新的点添加到3D全局地图。在某些实施例中,设备将所有3D地图点的年龄增加1以指示该更新。在实施例中,可以去除年龄大于预定阈值的3D地图点,从而节省存储空间。
如果设备确定当前帧中有很高比例的特征点可以在3D帧中找到对应的地图点,则当前帧中没有或没有太多环境的新部分。在这种情况下,当前帧不足以成为关键帧,并且该过程继续到步骤301以捕获新的帧,或者仅是不做任何事情,因为相机可能已经被配置为连续地捕获图像(无论以何种方式)。
前述内容详细地描述了先前提及的本发明的实施例的基本原理。通过独立于3D地图的3D地图点与来自任一先前帧的特征点之间的对应关系、将来自当前帧的2D特征直接与3D地图中的3D地图点匹配,可以实现根据本发明的示例性实施例的用于SLAM方法优于传统的SLAM解决方案的优点,如图4和图5所示。
图4示出了根据本发明的某些实施例的用于SLAM的方法优于图1的用于SLAM方法的优点。如图4所示,帧n中的特征点1、2、3和4与3D地图中的地图点1′、2′、3′和4′之间的对应关系是正确的。虽然在获得帧n+1中的特征点1、2、3和4与3D地图中的地图点1′、2′、3′和4′之间的对应关系时存在错误,但是该错误将不会被传播给帧n+2中的特征点1、2、3和4与3D地图中的地图点1′、2′、3′和4’之间的对应关系(1-1′、2-2′、3-3′、4-4′)。原因是在于帧n、n+1或n+2中的每一个都独立地与3D地图相对应。换句话说,设备直接针对3D地图中的地图点来搜索帧n中的特征点1、2、3、4以找到匹配,设备直接针对3D地图中的地图点来搜索帧n+1中的特征点1、2、3、4以找到匹配,并且设备直接针对3D地图中的地图点来搜索帧n+2中的特征点1、2、3、4以找到匹配,使得一帧与3D地图之间的匹配错误不会影响另一帧与3D地图之间的匹配。
图5示出了根据本发明的某些实施例的用于SLAM的方法优于图2的用于SLAM的方法的另一优点。如图5所示,3D地图的3D地图点1′、2′、3′和4′与来自当前帧(帧n+1)的可以执行匹配的特征点1、2、3、4之间的对应关系不再受限于来自先前帧(帧n)的特征点(1、2、3、4)。当存在来自当前帧(帧n+1)的更多的特征点5、6时,这些特征点5、6可以找到它们与3D地图的3D地图点的对应关系,因为3D地图的3D地图点与来自当前帧的特征点之间的对应关系是独立于3D地图的3D地图点与来自先前帧的特征点之间的对应关系来获得的。
在某些方面,作为匹配来自当前帧的特征与3D地图点的替代,可以将来自当前帧的特征与先前帧的列表进行匹配,以实现增强的匹配能力。作为用来自最近的相机帧的特征描述符来替换3D地图点的特征描述符的替代,可以保持来自若干先前帧的特征描述符的列表;或者甚至可以根据这些特征描述符来计算“平均”或“组合”或“级联”的描述符。可以如下定义平均、组合或级联的描述符,其中特征点的描述符被例示为32个元素的矢量(当然,该矢量可以包括64个或其他数量的元素)。在该示例中,两个帧中的特征点具有作为第一帧中的该特征点的特征描述符的第一矢量,具有作为第二帧中的该特征点的特征描述符的第二矢量,并且第一矢量和第二个向量中的每一个都是32元素矢量。然后,该特征点的平均描述符可以被定义为第一矢量和第二矢量的平均值;组合矢量可以被定义为32元素矢量,其中组合矢量的前16个元素是第一矢量的前16个元素,而组合矢量的后16个元素是第二矢量的后16个元素(当然这种组合可以具有其他形式);级联矢量可以被定义为64元素矢量,其中级联矢量的前32个元素是第一矢量的32个元素,并且级联矢量的后32个元素是第二矢量的32个元素。在其他实施例中,针对不止两个的帧类似地计算平均、组合或级联的描述符。
因此,在某些实施例中,提供了一种用于SLAM的方法。首先,相机捕获多个帧。在某些实施例中,帧的数量在3至50的范围内。在某些实施例中,帧的数量在10至30的范围内。在一个实施例中,帧的数量是20。该多个帧被包括在滑动窗口中。然后从帧中检测特征点。对于可能存在于多个帧中的一些或所有中的对应的2D特征点,计算对应帧中的特征描述符。然后,可以对来自不同帧的相同2D特征点的计算的特征描述符进行平均或组合或级联。类似地,每个特定的2D特征点与一个2D特征描述符相关。然后,通过使用平均或组合或级联的2D特征描述符进行搜索来匹配2D特征点与3D地图点,这产生2D特征点与3D地图点之间的对应关系。可以基于获得的对应关系来计算相机的当前姿势。
在某些方面,作为直接匹配当前帧中的2D特征点与3D地图的替代,也可以将当前帧中的2D特征点与来自多个先前帧的平均的或组合或级联的特征描述符匹配。
图6说明性地示出了根据本发明的某些实施例的用于SLAM的设备600的结构图。设备600可以执行先前参考图3描述的方法300以及根据如前所述的本发明的其他实施例的SLAM的方法。
如图6所示,在某些实施例中,设备600包括至少一个控制器或处理器605,其包括例如能够执行计算机程序指令的任何合适的中央处理单元CPU、微控制器、数字信号处理器DSP等。计算机程序指令可以被存储在存储器607中。存储器607可以是RAM(随机存取存储器)和ROM(只读存储器)的任意组合。存储器607还可以包括持久存储设备,其例如可以是磁存储器、光存储器、固态存储器或甚至远程安装存储器中的任意单独一个或组合。设备600还可以包括相机601和通信接口603,通信接口603被布置用于与其他设备通信。所述指令在由至少一个处理器605执行时,使设备600执行如前所述的方法300。
在另一方面,本发明涉及一种存储计算机可执行代码的非暂时性计算机可读介质。所述代码当由设备600/600′的至少一个处理器605执行时,可以执行方法300以及根据如上所述的本发明的另一示例性实施例的用于SLAM的方法。在某些实施例中,非暂时性计算机可读介质可以包括但不限于任何物理或虚拟存储介质。在某些实施例中,非暂时性计算机可读介质可以被实现为设备600/600′的存储器605,如图6所示。
总之,除了其他方面,本发明的某些实施例相对于相关技术具有以下优点。
首先,每个2D帧中的特征点由特征描述符来表征,并且3D地图存储3D地图点的特征描述符。通过使用特征描述符将每个2D帧中的特征点与3D地图点直接且独立地匹配,每个2D帧与3D地图之间的匹配错误将不会累积到后续的2D帧。此外,作为使用两个2D帧之间的对应关系来计算相机的姿势的替代,可以基于2D帧与3D地图之间的对应关系来计算相机的与每个帧相对应的姿势,这使得相机姿势的计算更准确。
其次,为3D地图点提供了年龄参数。当将2D帧中的特征点与3D地图点匹配时,要被匹配的3D地图点可以受年龄限制。以这种方式,将针对3D地图点的子集(例如3D地图点的最近集合)来搜索2D帧中的特征点。针对3D地图点最近集合的搜索比针对所有3D地图点的搜索更快。
第三,本发明的某些实施例针对每个帧通过BA来优化姿势。结果,可以更准确地估计相机的姿势,并且姿势的变化是平滑的。
此外,滑动窗口或缓冲区包含一定数量的帧,例如10至30个帧,这些帧都可以被用于姿势的优化。
在某些实施例中,本发明的设备包括智能电话、平板计算机、计算机、无人机、机器人等,并且环境包括诸如仓库之类的室内环境或室外环境。在某些实施例中,其他应用可以与3D地图的精确重建和相机姿势的计算相结合。例如,可以将虚拟对象放置在3D地图的确切位置,使得可以评估在真实环境中具有对象的效果。在某些实施例中,本发明仅需要一个相机来实现上述优点。在其他实施例中,可以在对方法和设备进行微小修改的情况下使用两个或更多个相机。
呈现本发明的示例性实施例的前述说明仅是为了说明和描述的目的,而非意在穷举或将本发明限制于所公开的具体形式。鉴于上述教导,许多修改和变化是可能的。
选择和描述实施例以便解释本发明的原理及其实际应用,从而使得本领域的其他技术人员能够利用本发明和各种实施例和具有适合于预期特定用途的各种改型。在不脱离本发明的精神和范围的情况下,替代实施例对于本发明所属领域的技术人员来说将变得显而易见。因此,本发明的范围由随附权利要求、而不是以上描述和本文中描述的示例性实施例来界定。
参考文献:
1.R.MUR-ARTAL、J.M.M.MONTIEL和J.D.ORB-SLAM:“多功能且准确的单目SLAM***(a versatile and accurate monocular SLAM System)”,《IEEE机器人期刊》(IEEE Transactions on Robotics),2015年10月第31卷第5期:1147-1163页。
2.TONG QIN、PEILIANG LI、ZHENFEI YANG、SHAOJIE SHEN,“VINS-Mono:一种稳健且多功能的单目视觉惯性状态估计器”(VINS-Mono:A robust and versatile monocularvisual-inertial state estimator)”,2017年8月《arXiv:1708.03852》:1-17页。
Claims (20)
1.一种用于同时定位与地图构建的方法,包括:
从由相机捕获的当前帧中检测二维2D特征点;
针对所捕获的每个当前帧,
独立于三维3D地图中的3D地图点与来自所述当前帧之前的任一帧的2D特征点之间的对应关系,直接将来自所述当前帧的2D特征点与3D地图中的3D地图点匹配,以获得所述当前帧的2D特征点与3D地图中的3D地图点之间的对应关系;以及
基于获得的所述当前帧的2D特征点与3D地图中的3D地图点之间的对应关系来计算所述相机的当前姿势,
其中,每个2D特征点和每个3D地图点都具有特征描述符,并且通过比较2D特征点的特征描述符与3D地图点的特征描述符来执行所述匹配。
2.根据权利要求1所述的方法,还包括:响应于确定所述当前帧有资格作为关键帧:
基于所述当前帧来重建新的3D地图点;以及
将所述新的3D地图点合并到所述3D地图中。
3.根据权利要求2所述的方法,其中,当所述当前帧的已经与所述3D地图点匹配的2D特征点的百分比低于预定阈值时,确定所述当前帧有资格作为关键帧。
4.根据权利要求3所述的方法,其中,所述预定阈值为约30%。
5.根据权利要求2所述的方法,还包括:响应于确定所述当前帧有资格作为关键帧:
将更新的3D地图中的3D地图点的年龄分别增加1。
6.根据权利要求5所述的方法,其中,对年龄小于预定阈值的3D地图点的至少一部分执行所述匹配。
7.根据权利要求5所述的方法,还包括:
去除年龄大于预定阈值的3D地图点。
8.根据权利要求1所述的方法,还包括:
基于所述当前帧在所述3D地图上渲染虚拟对象。
9.根据权利要求1所述的方法,还包括:
基于预定标准从由所述相机捕获的帧序列中选择一对帧;以及
通过以下操作来构建初始3D地图:对来自所述一对帧的2D特征点进行匹配以获得2D特征点对,基于所述2D特征点对来恢复所述相机的相对旋转和平移,以及对所述2D特征点对进行三角测量以获得所述初始3D地图点。
10.根据权利要求1所述的方法,还包括:基于从以下中的至少一项获得的数据来计算所述相机的当前姿势:
加速器;
陀螺仪;以及
惯性测量单元IMU。
11.根据权利要求1所述的方法,还包括:通过束调整来优化所述相机的当前姿势。
12.根据权利要求1所述的方法,其中,所述2D特征点和所述3D地图点的特征描述符中的每个特征描述符均包括所述2D特征点和所述3D地图点中的对应一个的矢量或直方图。
13.一种用于同时定位与地图构建的设备,包括相机、至少一个处理器、以及包括指令的存储器,所述指令在由所述至少一个处理器执行时使所述设备:
从由所述相机捕获的当前帧中检测二维2D特征点;
针对所捕获的每个当前帧,
独立于三维3D地图中的3D地图点与来自所述当前帧之前的任一帧的2D特征点之间的对应关系,直接将来自所述当前帧的2D特征点与3D地图中的3D地图点匹配,以获得所述当前帧的2D特征点与3D地图中的3D地图点之间的对应关系;以及
基于获得的所述当前帧的2D特征点与3D地图中的3D地图点之间的对应关系来计算所述相机的当前姿势,
其中,每个2D特征点和每个3D地图点都具有特征描述符,并且通过比较2D特征点的特征描述符与3D地图点的特征描述符来执行所述匹配。
14.根据权利要求13所述的设备,其中,所述指令在由所述至少一个处理器执行时还使所述设备:响应于确定所述当前帧有资格作为关键帧,
基于所述当前帧来重建新的3D地图点;以及
将所述新的3D地图点合并到所述3D地图中。
15.根据权利要求14所述的设备,其中,所述指令在由所述至少一个处理器执行时还使所述设备:在所述当前帧的已经与所述3D地图点匹配的2D特征点的百分比低于约30%时,确定所述当前帧有资格作为关键帧。
16.根据权利要求14所述的设备,其中,所述指令在由所述至少一个处理器执行时还使所述设备:响应于确定所述当前帧有资格作为关键帧,
将更新的3D地图中的3D地图点的年龄分别增加1;以及
去除年龄大于预定阈值的3D地图点。
17.根据权利要求13所述的设备,其中,所述指令在由所述至少一个处理器执行时还使所述设备:
基于预定标准从由所述相机捕获的帧序列中选择一对帧;以及
通过以下操作来构建初始3D地图:对来自所述一对帧的2D特征点进行匹配以获得2D特征点对,基于所述2D特征点对来恢复所述相机的相对旋转和平移,以及对所述2D特征点对进行三角测量以获得初始3D地图点。
18.根据权利要求13所述的设备,其中,所述2D特征点和所述3D地图点的特征描述符中的每个特征描述符均包括所述2D特征点和所述3D地图点中的对应一个的矢量或直方图。
19.根据权利要求13所述的设备,其中,所述指令在由所述至少一个处理器执行时还使所述设备:通过束调整来优化所述相机的当前姿势。
20.一种存储有计算机程序的计算机可读存储介质,所述计算机程序包括指令,所述指令当在至少一个处理器上执行时使所述至少一个处理器执行根据权利要求1所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/857,501 US10636198B2 (en) | 2017-12-28 | 2017-12-28 | System and method for monocular simultaneous localization and mapping |
US15/857,501 | 2017-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109727288A CN109727288A (zh) | 2019-05-07 |
CN109727288B true CN109727288B (zh) | 2021-10-01 |
Family
ID=66296136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811633004.8A Active CN109727288B (zh) | 2017-12-28 | 2018-12-28 | 用于单目同时定位与地图构建的***和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10636198B2 (zh) |
CN (1) | CN109727288B (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3062142B1 (en) | 2015-02-26 | 2018-10-03 | Nokia Technologies OY | Apparatus for a near-eye display |
US10650552B2 (en) | 2016-12-29 | 2020-05-12 | Magic Leap, Inc. | Systems and methods for augmented reality |
EP3343267B1 (en) | 2016-12-30 | 2024-01-24 | Magic Leap, Inc. | Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light |
US10578870B2 (en) | 2017-07-26 | 2020-03-03 | Magic Leap, Inc. | Exit pupil expander |
CA3084811A1 (en) | 2017-12-10 | 2019-06-13 | Magic Leap, Inc. | Anti-reflective coatings on optical waveguides |
CN111712751B (zh) | 2017-12-20 | 2022-11-01 | 奇跃公司 | 用于增强现实观看设备的***件 |
US10755676B2 (en) | 2018-03-15 | 2020-08-25 | Magic Leap, Inc. | Image correction due to deformation of components of a viewing device |
US11170224B2 (en) * | 2018-05-25 | 2021-11-09 | Vangogh Imaging, Inc. | Keyframe-based object scanning and tracking |
JP7319303B2 (ja) | 2018-05-31 | 2023-08-01 | マジック リープ, インコーポレイテッド | レーダ頭部姿勢位置特定 |
US11579441B2 (en) | 2018-07-02 | 2023-02-14 | Magic Leap, Inc. | Pixel intensity modulation using modifying gain values |
US11856479B2 (en) | 2018-07-03 | 2023-12-26 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality along a route with markers |
EP3830631A4 (en) | 2018-08-03 | 2021-10-27 | Magic Leap, Inc. | NON-FUSED POSE DRIFT CORRECTION OF A FUSED TOTEM IN A USER INTERACTION SYSTEM |
JP7487176B2 (ja) | 2018-08-22 | 2024-05-20 | マジック リープ, インコーポレイテッド | 患者視認システム |
WO2020076610A1 (en) * | 2018-10-08 | 2020-04-16 | R-Go Robotics Ltd. | System and method for geometrical user interactions via three-dimensional mapping |
EP3899613A4 (en) | 2018-12-21 | 2022-09-07 | Magic Leap, Inc. | AIR POCKET STRUCTURES TO PROMOTE TOTAL INTERNAL REFLECTION IN A WAVEGUIDE |
WO2020185405A1 (en) | 2019-03-12 | 2020-09-17 | Magic Leap, Inc. | Registration of local content between first and second augmented reality viewers |
US11636618B2 (en) | 2019-11-14 | 2023-04-25 | Samsung Electronics Co., Ltd. | Device and method with simultaneous implementation of localization and mapping |
EP4058936A4 (en) * | 2019-11-14 | 2023-05-03 | Magic Leap, Inc. | SYSTEMS AND METHODS FOR VIRTUAL AND AUGMENTED REALITY |
JP2023502927A (ja) | 2019-11-15 | 2023-01-26 | マジック リープ, インコーポレイテッド | 外科手術環境において使用するための視認システム |
CN113094545B (zh) * | 2020-01-09 | 2023-05-16 | 舜宇光学(浙江)研究院有限公司 | 冗余关键帧剔除方法和slam方法及其***和电子设备 |
CN111586360B (zh) * | 2020-05-14 | 2021-09-10 | 佳都科技集团股份有限公司 | 一种无人机投影方法、装置、设备及存储介质 |
CN111795704B (zh) * | 2020-06-30 | 2022-06-03 | 杭州海康机器人技术有限公司 | 一种视觉点云地图的构建方法、装置 |
CN114814872A (zh) * | 2020-08-17 | 2022-07-29 | 浙江商汤科技开发有限公司 | 位姿确定方法及装置、电子设备和存储介质 |
TWI768548B (zh) * | 2020-11-19 | 2022-06-21 | 財團法人資訊工業策進會 | 定位用基礎資訊產生系統與方法以及自身定位判斷裝置 |
CN112633122B (zh) * | 2020-12-17 | 2024-01-23 | 厦门大学 | 一种单目vio***的前端里程计算法及*** |
CN112651997B (zh) * | 2020-12-29 | 2024-04-12 | 咪咕文化科技有限公司 | 地图构建方法、电子设备和存储介质 |
CN113034606A (zh) * | 2021-02-26 | 2021-06-25 | 嘉兴丰鸟科技有限公司 | 一种运动恢复结构计算方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120306850A1 (en) * | 2011-06-02 | 2012-12-06 | Microsoft Corporation | Distributed asynchronous localization and mapping for augmented reality |
CN103646391A (zh) * | 2013-09-30 | 2014-03-19 | 浙江大学 | 一种针对动态变化场景的实时摄像机跟踪方法 |
CN103900583A (zh) * | 2012-12-25 | 2014-07-02 | 联想(北京)有限公司 | 用于即时定位与地图构建的设备和方法 |
CN105469405A (zh) * | 2015-11-26 | 2016-04-06 | 清华大学 | 基于视觉测程的同时定位与地图构建方法 |
CN106446815A (zh) * | 2016-09-14 | 2017-02-22 | 浙江大学 | 一种同时定位与地图构建方法 |
CN106885574A (zh) * | 2017-02-15 | 2017-06-23 | 北京大学深圳研究生院 | 一种基于重跟踪策略的单目视觉机器人同步定位与地图构建方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790690A (en) * | 1995-04-25 | 1998-08-04 | Arch Development Corporation | Computer-aided method for automated image feature analysis and diagnosis of medical images |
US5850469A (en) * | 1996-07-09 | 1998-12-15 | General Electric Company | Real time tracking of camera pose |
US6064749A (en) * | 1996-08-02 | 2000-05-16 | Hirota; Gentaro | Hybrid tracking for augmented reality using both camera motion detection and landmark tracking |
US6765569B2 (en) * | 2001-03-07 | 2004-07-20 | University Of Southern California | Augmented-reality tool employing scene-feature autocalibration during camera motion |
US7197165B2 (en) * | 2002-02-04 | 2007-03-27 | Canon Kabushiki Kaisha | Eye tracking using image data |
US7545965B2 (en) * | 2003-11-10 | 2009-06-09 | The University Of Chicago | Image modification and detection using massive training artificial neural networks (MTANN) |
US7831094B2 (en) * | 2004-04-27 | 2010-11-09 | Honda Motor Co., Ltd. | Simultaneous localization and mapping using multiple view feature descriptors |
US7925049B2 (en) * | 2006-08-15 | 2011-04-12 | Sri International | Stereo-based visual odometry method and system |
US7868772B2 (en) * | 2006-12-12 | 2011-01-11 | Industrial Technology Research Institute | Flame detecting method and device |
NO327279B1 (no) * | 2007-05-22 | 2009-06-02 | Metaio Gmbh | Kamerapositurestimeringsanordning og- fremgangsmate for foroket virkelighetsavbildning |
US8233716B2 (en) * | 2008-06-27 | 2012-07-31 | Palo Alto Research Center Incorporated | System and method for finding stable keypoints in a picture image using localized scale space properties |
US8350846B2 (en) * | 2009-01-28 | 2013-01-08 | International Business Machines Corporation | Updating ray traced acceleration data structures between frames based on changing perspective |
US8442305B2 (en) * | 2009-06-30 | 2013-05-14 | Mitsubishi Electric Research Laboratories, Inc. | Method for determining 3D poses using points and lines |
US9135514B2 (en) * | 2010-05-21 | 2015-09-15 | Qualcomm Incorporated | Real time tracking/detection of multiple targets |
US8761439B1 (en) * | 2011-08-24 | 2014-06-24 | Sri International | Method and apparatus for generating three-dimensional pose using monocular visual sensor and inertial measurement unit |
KR101901961B1 (ko) * | 2011-12-21 | 2018-09-28 | 한국전자통신연구원 | 부품을 인식하기 위한 장치 및 그 방법 |
US8798357B2 (en) * | 2012-07-09 | 2014-08-05 | Microsoft Corporation | Image-based localization |
US10062010B2 (en) * | 2015-06-26 | 2018-08-28 | Intel Corporation | System for building a map and subsequent localization |
-
2017
- 2017-12-28 US US15/857,501 patent/US10636198B2/en active Active
-
2018
- 2018-12-28 CN CN201811633004.8A patent/CN109727288B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120306850A1 (en) * | 2011-06-02 | 2012-12-06 | Microsoft Corporation | Distributed asynchronous localization and mapping for augmented reality |
CN103900583A (zh) * | 2012-12-25 | 2014-07-02 | 联想(北京)有限公司 | 用于即时定位与地图构建的设备和方法 |
CN103646391A (zh) * | 2013-09-30 | 2014-03-19 | 浙江大学 | 一种针对动态变化场景的实时摄像机跟踪方法 |
CN105469405A (zh) * | 2015-11-26 | 2016-04-06 | 清华大学 | 基于视觉测程的同时定位与地图构建方法 |
CN106446815A (zh) * | 2016-09-14 | 2017-02-22 | 浙江大学 | 一种同时定位与地图构建方法 |
CN106885574A (zh) * | 2017-02-15 | 2017-06-23 | 北京大学深圳研究生院 | 一种基于重跟踪策略的单目视觉机器人同步定位与地图构建方法 |
Non-Patent Citations (1)
Title |
---|
ORB-SLAM: A Versatile and Accurate Monocular SLAM System;Raúl Mur-Artal et al.;《IEEE Transactions on Robotics》;20150824;第31卷(第5期);part5-6 * |
Also Published As
Publication number | Publication date |
---|---|
US10636198B2 (en) | 2020-04-28 |
CN109727288A (zh) | 2019-05-07 |
US20190206116A1 (en) | 2019-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109727288B (zh) | 用于单目同时定位与地图构建的***和方法 | |
US11668571B2 (en) | Simultaneous localization and mapping (SLAM) using dual event cameras | |
CN107292949B (zh) | 场景的三维重建方法、装置及终端设备 | |
KR102367361B1 (ko) | 위치 측정 및 동시 지도화 방법 및 장치 | |
Tanskanen et al. | Live metric 3D reconstruction on mobile phones | |
CN110310326B (zh) | 一种视觉定位数据处理方法、装置、终端及计算机可读存储介质 | |
US10033985B2 (en) | Camera pose estimation apparatus and method for augmented reality imaging | |
US8199977B2 (en) | System and method for extraction of features from a 3-D point cloud | |
CN111709973B (zh) | 目标跟踪方法、装置、设备及存储介质 | |
WO2015135323A1 (zh) | 一种摄像机跟踪方法及装置 | |
CN110986969B (zh) | 地图融合方法及装置、设备、存储介质 | |
CN111127524A (zh) | 一种轨迹跟踪与三维重建方法、***及装置 | |
CN111833447A (zh) | 三维地图构建方法、三维地图构建装置及终端设备 | |
Wang et al. | Line flow based simultaneous localization and mapping | |
WO2021027543A1 (zh) | 基于单目图像的模型训练方法、装置及数据处理设备 | |
WO2018214086A1 (zh) | 场景的三维重建方法、装置及终端设备 | |
WO2023005457A1 (zh) | 位姿计算方法和装置、电子设备、可读存储介质 | |
Zhang et al. | Hand-held monocular SLAM based on line segments | |
CN112085842B (zh) | 深度值确定方法及装置、电子设备和存储介质 | |
Hosseinzadeh et al. | Sparse point-plane SLAM | |
US20240221210A1 (en) | Method device and storage medium for back-end optimization of simultaneous localization and mapping | |
CN115937002A (zh) | 用于估算视频旋转的方法、装置、电子设备和存储介质 | |
CN113763468A (zh) | 一种定位方法、装置、***及存储介质 | |
CN112313707A (zh) | 跟踪方法和可移动平台 | |
Du et al. | Fast Scene Reconstruction Based on Improved SLAM. |
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 |