CN114860857A - 用于执行同步定位与建图的方法以及使用该方法的设备 - Google Patents
用于执行同步定位与建图的方法以及使用该方法的设备 Download PDFInfo
- Publication number
- CN114860857A CN114860857A CN202111261080.2A CN202111261080A CN114860857A CN 114860857 A CN114860857 A CN 114860857A CN 202111261080 A CN202111261080 A CN 202111261080A CN 114860857 A CN114860857 A CN 114860857A
- Authority
- CN
- China
- Prior art keywords
- matrix
- sub
- data
- map points
- memory
- 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
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 title claims description 31
- 230000001360 synchronised effect Effects 0.000 title description 3
- 239000011159 matrix material Substances 0.000 claims abstract description 207
- 238000004364 calculation method Methods 0.000 claims abstract description 107
- 238000005457 optimization Methods 0.000 claims abstract description 41
- 230000004807 localization Effects 0.000 claims abstract description 8
- 239000013598 vector Substances 0.000 claims description 29
- 238000000605 extraction Methods 0.000 claims description 11
- 239000000047 product Substances 0.000 description 49
- 230000000295 complement effect Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 19
- 230000009977 dual effect Effects 0.000 description 9
- 230000014509 gene expression Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0179—Display position adjusting means not related to the information to be displayed
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0138—Head-up displays characterised by optical features comprising image capture systems, e.g. camera
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B2027/0178—Eyeglass type
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0179—Display position adjusting means not related to the information to be displayed
- G02B2027/0187—Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
-
- 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/20021—Dividing image into blocks, subimages or windows
-
- 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/30241—Trajectory
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Optics & Photonics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Remote Sensing (AREA)
- Image Analysis (AREA)
Abstract
提供了一种设置在电子设备中并被配置为执行同步定位与建图(SLAM)的加速器,该加速器包括因子图数据库、存储器和后端处理器,其中后端处理器被配置为从因子图数据库接收对应于地图点和相机位置的第一条数据,将所接收的第一条数据转换为地图点的矩阵和相机位置的矩阵,在存储器中存储通过对地图点的矩阵和相机位置当中对应于地图点的至少一个相机位置的矩阵执行优化计算而获得的结果,并且基于存储在存储器中的结果来获得相对于第一条数据优化的第二条数据。
Description
相关申请的交叉引用
本申请要求于2021年2月4日在韩国知识产权局提交的韩国专利申请No.10-2021-0016286的优先权,其公开内容通过引用整体并入本文。
技术领域
本公开的示例实施例涉及一种加速用于同步定位与建图(SLAM)的计算的方法以及使用该方法的加速器。
背景技术
可以通过分析从诸如相机的传感器接收的图像并通过设置坐标来准备虚拟空间的地图。这样的虚拟空间的地图可以被应用于用户可以穿在他/她的身体部位上的可穿戴电子设备(例如,智能眼镜等)。可穿戴电子设备的用户可以观看虚拟对象或信息与真实环境组合的显示器。此外,虚拟空间的地图被广泛用于诸如自主移动机器人和汽车的各种领域。
同步定位与建图(SLAM)可以指用于实时准备虚拟空间的地图的技术。各种设备可以通过SLAM实时更新虚拟空间的地图。
SLAM可以通过使用前端和后端来实施,其中该前端从传感器接收感测数据并执行关键点提取计算和3D空间坐标计算,该后端优化从前端获取的数据中的累加误差。具体地,后端执行优化所需的计算量可以根据地图的大小、感测数据的大小和精度等来确定。
当相关的SLAM技术被应用于可穿戴电子设备时,可以使用为可穿戴电子设备配备低端处理器的方法、为可穿戴电子设备配备高端处理器的方法、或者通过线将可穿戴电子设备连接到外部设备(例如,智能手机)的方法。
当在可穿戴电子设备中设置低端处理器时,后端的优化计算的速度低,因此虚拟空间的地图可能由于累加误差而不正确。当在可穿戴电子设备中设置高端处理器时,电池的大小和可穿戴电子设备的总体大小可能因为功耗的增加而增加。此外,由于可穿戴电子设备的重量增加,用户在穿戴可穿戴电子设备时可能不舒服。
最近,一直在研究适用于各种设备的SLAM技术,以用于提高SLAM过程的速度,使得更新虚拟空间地图的速度可以对应于穿戴可穿戴设备的用户的移动速度。
发明内容
一个或多个示例实施例提供了一种加速用于同步定位与建图(SLAM)的计算的方法以及使用该方法的加速器。
根据示例实施例的一方面,提供了一种设置在电子设备中并被配置为执行同步定位与建图(SLAM)的加速器,该加速器包括因子图数据库、存储器和后端处理器,其中后端处理器被配置为从因子图数据库接收对应于地图点和相机位置的第一条数据,将所接收的第一条数据转换为地图点的矩阵和相机位置的矩阵,在存储器中存储通过对地图点的矩阵和相机位置当中对应于地图点的至少一个相机位置的矩阵执行优化计算而获得的结果,以及基于存储在存储器中的结果来获得相对于第一条数据优化的第二条数据。
后端处理器还可以被配置为将地图点的矩阵和对应于地图点的至少一个相机位置的矩阵划分为多个子轨迹。
多个子轨迹可以具有基于后端处理器被配置为同时对其执行计算的相机位置的数量而设置的轨迹长度。
后端处理器还可以被配置为基于移位寄存器对对应于多个子轨迹的矩阵执行优化计算。
后端处理器还可以被配置为在存储器中存储第一结果,其中该第一结果是通过对与多个子轨迹中的第一子轨迹相对应的第一地图点的矩阵和对应于第一地图点的至少一个相机位置的矩阵执行优化计算来获得的,以及通过对与多个子轨迹中第一子轨迹之后的第二子轨迹相对应的第二地图点的矩阵和对应于第二地图点的至少一个相机位置的矩阵执行优化计算来获得第二结果。
后端处理器还可以被配置为将所获得的第二结果存储在存储第一结果的存储器中。
基于获得第二结果,后端处理器还可以被配置为重用对应于第二子轨迹的至少一部分的矩阵,该部分对应于第一子轨迹。
基于执行优化计算,后端处理器还可以被配置为并行执行矩阵计算和向量计算。
根据示例实施例的另一方面,提供了一种由设置在电子设备中的加速器执行同步定位与建图(SLAM)的方法,该方法包括从因子图数据库接收对应于地图点和相机位置的第一条数据,将所接收的第一条数据转换为地图点的矩阵和相机位置的矩阵,在存储器中存储通过对地图点的矩阵和相机位置当中对应于地图点的至少一个相机位置的矩阵执行优化计算而获得的结果,以及基于存储在存储器中的结果来获得相对于第一条数据优化的第二条数据。
该方法还可以包括将地图点的矩阵和对应于地图点的至少一个相机位置的矩阵划分为多个子轨迹。
多个子轨迹可以具有基于同时计算的相机位置的数量而设置的轨迹长度。
该方法还可以包括基于移位寄存器对对应于多个子轨迹的矩阵执行优化计算。
该方法还可以包括在存储器中存储第一结果,其中该第一结果是通过对与多个子轨迹中的第一子轨迹相对应的第一地图点的矩阵和对应于第一地图点的相机位置的矩阵执行优化计算来获得的,以及通过对与多个子轨迹中第一子轨迹之后的第二子轨迹相对应的第二地图点的矩阵和对应于第二地图点的相机位置的矩阵执行优化计算来获得第二结果。
该方法还可以包括将所获得的第二结果存储在存储第一结果的存储器中。
基于获得第二结果,该方法还可以包括重用对应于第二子轨迹的至少一部分的矩阵,该部分对应于第一子轨迹。
根据示例实施例的另一方面,提供了一种电子设备,包括传感器、存储器以及被配置为控制传感器和存储器的处理器,其中处理器被配置为对从传感器接收的感测数据执行关键点提取计算和坐标计算,并将关键点提取计算和坐标计算的结果发送到因子图数据库,从因子图数据库获得对应于地图点和相机位置的第一条数据,将所获得的第一条数据转换为地图点的矩阵和相机位置的矩阵,在存储器中存储通过对地图点的矩阵和相机位置当中对应于地图点的至少一个相机位置的矩阵执行优化计算而获得的结果,以及基于存储在存储器中的结果来获得相对于第一条数据优化的第二条数据。
处理器还可以被配置为将地图点的矩阵和对应于地图点的至少一个相机位置的矩阵划分为多个子轨迹。
处理器还可以被配置为基于移位寄存器对对应于多个子轨迹的矩阵执行优化计算。
处理器还可以被配置为在存储器中存储第一结果,其中该第一结果是通过对与多个子轨迹中的第一子轨迹相对应的第一地图点的矩阵和对应于第一地图点的相机位置的矩阵执行优化计算来获得的,以及通过对与多个子轨迹中第一子轨迹之后的第二子轨迹相对应的第二地图点的矩阵和对应于第二地图点的相机位置的矩阵执行优化计算来获得第二结果。
基于获得第二结果,处理器还可以被配置为重用第二子轨迹的至少一部分中的矩阵,该部分对应于第一子轨迹。
附图说明
从以下结合附图的描述中,本公开的示例实施例的以上和/或其他方面、特征和优点将更加显而易见,其中:
图1A是示出根据示例实施例的可穿戴电子设备的透视图;
图1B是示出根据另一示例实施例的可穿戴电子设备的透视图;
图2是示出根据示例实施例的加速器的框图;
图3是示出根据示例实施例的加速器中的数据的优化的流程图;
图4是示出根据示例实施例的加速器中将数据转换为矩阵以用于优化数据的视图;
图5是示出根据示例实施例的加速器中用于执行舒尔补(Schur-complement)计算的海森矩阵(Hessian matrix)的视图;
图6是示出根据示例实施例的加速器中通过划分为多个子轨迹(sub-track)的优化的流程图;
图7是示出根据示例实施例的加速器中用于通过划分为多个子轨迹来执行舒尔补计算的海森矩阵的视图;
图8是示出根据示例实施例的舒尔补计算器的框图;
图9是示出根据示例实施例的舒尔补计算器的W供应器(supplier)的框图;
图10是示出根据示例实施例的舒尔补计算器的Q生成器的框图;
图11是示出根据示例实施例的舒尔补计算器的向量-标量积阵列的框图;并且
图12是示出根据示例实施例的舒尔补计算器的张量积阵列的框图。
具体实施方式
现在将详细参考附图中示出的示例实施例,其中相同的附图标记始终指代相同的元件。在这点上,示例实施例可以具有不同的形式,并且不应该被解释为限于本文阐述的描述。因此,下面仅通过参考附图来描述示例实施例,以解释各方面。如本文所使用的,术语“和/或”包括一个或多个相关列出项的任何和所有组合。诸如“至少一个”的表达在元素列表之前时,修饰整个元素列表,而不修饰列表的单个元素。例如,表达“a、b和c中的至少一个”应该理解为包括仅a、仅b、仅c、a和b、a和c、b和c、或者a、b和c的全部。
示例实施例中使用的术语是基于本领域当前广泛使用的通用术语来选择的,但是该术语可以根据本领域普通技术人员的意图、先例或本领域的新技术而变化。此外,一些术语可以由申请人任意选择,并且在这种情况下,所选择的术语的含义在本公开的详细描述中描述。因此,本文使用的术语不应仅基于术语的名称来解释,而应该基于术语的含义以及贯穿本公开的描述来解释。
在示例实施例的以下描述中,诸如“由……构成”、“由……形成”、“包括”、“包含”的表达或术语不应该被解释为总是包括所有指定的元件、过程或操作,而可以被解释为不包括一些指定的元件、过程或操作,或进一步包括其他元件、过程或操作。
在示例实施例中,当一部分或元件被称为连接到另一部分或元件时,该部分或元件可以直接连接到另一部分或元件,或者可以电连接到另一部分或元件,其之间有中间部分或元件。
此外,在示例实施例中,诸如“第一”和“第二”的术语可以用于描述各种元件,这些元件不应该受这些术语的限制。这些术语仅用于区分一个元件和其他元件。
现在将参考附图描述示例实施例。然而,本公开的思想可以以各种方式实施,并且不限于本文描述的示例实施例。
图1A是示出根据示例实施例的可穿戴电子设备100的透视图。
参考图1A,可穿戴电子设备100可以包括透镜110、用于附接到身体的一部分(例如,头部)的连接器120、以及传感器。
在示例实施例中,可穿戴电子设备100的连接器120可以包括投影仪、加速器130和处理器140。
在示例实施例中,投影仪可以从外部设备接收数据,并且可以向透镜110发射包括所接收的数据的光束。例如,投影仪可以发射包括数据的光束,并且所发射的光束可以被具有任意折射率的物体(例如,棱镜)折射,然后可以被显示在透镜110上。
在示例实施例中,处理器140可以从传感器接收关于周围环境的感测数据。例如,传感器可以包括相机和惯性测量单元(IMU)中的至少一个。在示例实施例中,处理器140可以通过相机获取关于周围环境的图像数据。处理器140可以通过IMU获得关于可穿戴电子设备100在周围环境中的位置和方向的数据。
在示例实施例中,处理器140可以对从传感器接收的感测数据执行关键点提取计算和空间坐标计算,并且可以将关键点提取计算和空间坐标计算的结果发送到加速器130。例如,处理器140可以基于关键点提取算法,从通过相机获取的图像数据中提取至少一个关键点。处理器140可以根据从IMU获取的关于距离成像设备10的位置和方向的数据来计算可穿戴电子设备100的空间坐标。
图1A示出了加速器130和处理器140被布置在可穿戴电子设备100的连接器120上,但是加速器130和处理器140的位置不限于此。例如,加速器130和处理器140可以被布置在可穿戴电子设备100的前侧。在这种情况下,加速器130和处理器140可以被布置在透镜110周围的边缘区域中。
尽管图1A示出了加速器130和处理器140彼此隔开,但是加速器130可以被嵌入处理器140。在另一示例实施例中,嵌入加速器130的处理器140、存储器和传感器可以一体形成。在该示例中,可穿戴电子设备100的大小和重量可以减小,使得可穿戴电子设备100可以穿戴得更舒适并且可以消耗更少的功率。
图1B是示出根据另一示例实施例的可穿戴电子设备100的透视图。在图1B的描述中,可以不描述与参考图1A描述的那些元件相对应或者相同或相似的元件。
参考图1B,可穿戴电子设备100可以包括透镜110、用于附接到身体的一部分(例如,头部)的连接器120、以及传感器。
在示例实施例中,可穿戴电子设备100可以通过线通过接口155连接到外部设备150,例如智能手机。外部设备150可以包括加速器130和处理器140。
在示例实施例中,可穿戴电子设备100可以通过接口155将从传感器接收的感测数据发送到外部设备150。外部设备150的处理器140可以对从可穿戴电子设备100接收的感测数据执行关键点提取计算和空间坐标计算,并且可以将关键点提取计算和空间坐标计算的结果发送到加速器130。
在示例实施例中,可穿戴电子设备100可以通过接口155从外部设备150接收由加速器130获取的数据。
图2是示出根据示例实施例的加速器130的框图。
参考图2,加速器130可以包括后端处理器200、因子图数据库210和存储器220。
在示例实施例中,后端处理器200可以执行用于优化同步定位与建图(SLAM)的计算。例如,后端处理器200可以对通过前端处理器中的传感器融合累加的移动结果执行计算。后端处理器200可以从前端处理器(例如,图1A或图1B中示出的处理器140)接收数据,以执行重复计算。例如,后端处理器200可以使用矩阵和/或向量来执行计算,以估计电子设备(例如,图1A或图1B中示出的可穿戴电子设备100)的位置,并准备地图。
在示例实施例中,后端处理器200可以估计电子设备100在准备的地图上的位置。例如,当电子设备100正在移动时,后端处理器200可以基于重复计算来估计电子设备100在准备的地图上的位置。后端处理器200可以实时估计电子设备100的位置,并且与所估计的位置相关的数据可以被实时更新。
在示例实施例中,因子图数据库210可以存储从前端处理器接收的数据。例如,前端处理器可以从传感器接收感测数据,并且可以对感测数据执行关键点提取计算和空间坐标计算。因子图数据库210可以从前端处理器接收所提取的关键点和所计算的空间坐标,并且可以存储关键点和空间坐标。
在示例实施例中,存储器220可以累加和存储由后端处理器200计算的结果值。例如,存储器220可以包括矩阵累加器存储器和向量累加器存储器。
图3是示出根据示例实施例的加速器中的数据的优化的流程图。图4是示出根据示例实施例的加速器中将数据转换为矩阵以用于优化数据的视图。
参考图3,在操作301中,后端处理器,例如图2中示出的后端处理器200,可以从因子图数据库(例如,图2中示出的被配置为存储数据的因子图数据库210)接收关于地图点和相机位置的第一条数据X1。例如,从因子图数据库210接收的第一条数据X1可以包括地图点状态XP1和相机位置状态XC1。
根据示例实施例,在操作303中,后端处理器200可以将第一条数据转换为地图点和相机位置的矩阵。例如,后端处理器200可以通过将第一条数据转换为海森矩阵来获得地图点和相机位置的矩阵。
在示例实施例中,如图4所示,后端处理器200可以通过对第一条数据执行雅可比更新400和海森更新410来获得海森矩阵。在示例实施例中,后端处理器200可以通过对第一条数据执行雅可比更新400来获得第一条数据的雅可比矩阵。例如,后端处理器200可以对地图点XP1和相机位置XC1执行雅可比更新400,以获得IMU的雅可比矩阵JIMU、相机的雅可比矩阵Jcam、地图点的雅可比矩阵Jpoint以及误差的向量(e)。在示例实施例中,后端处理器200可以通过对通过雅可比更新400获得的雅可比矩阵执行海森更新410来获得第一条数据的海森矩阵。例如,后端处理器200可以通过对通过雅可比更新400获得的雅可比矩阵JIMU、Jcam、Jpoint和(e)执行海森更新410来获得海森矩阵。如等式1所示,海森矩阵H可以包括矩阵U块、矩阵W块和矩阵V块。
[等式1]
后端处理器200通过雅可比更新400和海森更新410获得海森矩阵H,以更容易地计算状态改变ΔX和由状态改变生成的误差。用于计算时间点k和时间点k+1处的状态改变以及由状态改变生成的误差的海森矩阵可以通过下面的等式2至4获得。
[等式2]
[等式3]
[等式4]
H(Xk)ΔX=r(Xk)
在示例实施例中,后端处理器200可以通过由等式2至4获得的海森矩阵H(Xk)获得地图点和相机位置的矩阵。例如,后端处理器200可以获得相机位置的矩阵U、地图点的矩阵V和对应于地图点的相机位置的矩阵W。
根据示例实施例,在操作305中,后端处理器200可以执行优化计算,并且可以将优化计算的结果累加并存储在存储器(例如,图2中示出的存储器220)中。优化计算可以指舒尔补计算。例如,后端处理器200可以通过根据关于在操作303中获得的矩阵U、矩阵V、矩阵W和向量(r)的下面的等式5至9执行使用舒尔补计算器420的计算和使用线性解算器(solver)430的等式计算来获得作为累加误差的优化的状态改变ΔX。状态改变ΔX可以包括相机位置状态改变ΔXc和地图点状态改变ΔXp。
[等式5]
[等式6]
SΔXc=b
[等式7]
S=U-WV-1WT
[等式8]
b=rc-WV-1rp
[等式9]
ΔXp=V-1(rp-WTΔXc)
在示例实施例中,后端处理器200可以首先通过等式7和8计算矩阵S和向量b的值并且使用线性解算器430计算矩阵S和向量b的等式来获得相机位置状态改变ΔXc。此后,后端处理器200可以通过使用线性解算器430的回代(back substitution)来获得地图点状态改变ΔXp。
在示例实施例中,后端处理器200可以顺序执行基于地图点的舒尔补计算。例如,后端处理器200可以对第一地图点的矩阵和对应于第一地图点的至少一个相机位置的矩阵执行舒尔补计算。后端处理器200可以对第一地图点执行计算,并且可以将对第一地图点的计算的结果累加并存储在存储器220中。
此后,后端处理器200对第一地图点之后的第二地图点的矩阵和对应于第二地图点的至少一个相机位置的矩阵执行舒尔补计算。后端处理器200顺序执行基于地图点的舒尔补计算,并将基于地图点的舒尔补计算的结果累加并存储在存储器200中,因此可以减少稍后加载数据所需的时间。
根据示例实施例,在操作307中,后端处理器200可以基于累加并存储在存储器220中的结果来获得相对于第一条数据优化的第二条数据。例如,后端处理器200可以通过将通过舒尔补计算器420的计算和线性解算器430的等式计算获得的状态改变ΔX应用于第一条数据来获得作为第一条数据的新状态440的第二条数据。第二条数据X2可以通过将ΔXp和ΔXc分别应用于第一条数据X1的地图点状态XP1和相机位置状态XC1来获得。第二条数据X2可以包括地图点状态XP2和相机位置状态XC2。
图5是示出了根据示例实施例的加速器中用于执行舒尔补计算的海森矩阵的视图。
参考图5,海森矩阵可以包括矩阵U块、矩阵W块、矩阵WT块和矩阵V块。例如,矩阵U块可以对应于相机位置的矩阵块,并且矩阵V块可以对应于地图点的矩阵块。矩阵W块和矩阵WT块可以对应于地图点的矩阵块和相机位置的矩阵块。
在示例实施例中,矩阵W块和矩阵WT块可以示出地图点和相机位置之间的关系。例如,可以在对应于相机位置C1至C4的四个帧中获得矩阵W块的地图点P1。在另一示例中,可以在对应于矩阵W块的相机位置C1的帧中获得地图点P1至P3。
在示例实施例中,矩阵U块和矩阵V块中的每一个都可以是仅在对角线条目中具有数据并在所有其他条目中不具有数据的对角线矩阵。例如,相机位置C1至C5的矩阵U块可以仅在相机位置C1和C1彼此相遇的条目、相机位置C2和C2彼此相遇的条目、相机位置C3和C3彼此相遇的条目、相机位置C4和C4彼此相遇的条目以及相机位置C5和C5彼此相遇的条目中具有数据。此外,地图点P1至P10的矩阵V块可以仅在地图点P1和P1彼此相遇的条目、地图点P2和P2彼此相遇的条目、......、以及地图点P10和P10彼此相遇的条目中具有数据。
在示例实施例中,当后端处理器200通过海森矩阵执行舒尔补计算时,矩阵S可以通过下面的等式10获得。
[等式10]
在等式10中,i1和i2可以指相机位置索引,并且j可以指地图点索引。例如,在图5中示出的海森矩阵中,i1和i2可以对应于C1至C5,并且j可以对应于P1至P10。
在示例实施例中,后端处理器200可以通过对地图点执行舒尔补计算来生成矩阵S,并且矩阵S的大小可以基于获得地图点的相机位置索引来确定。
例如,当后端处理器200通过对地图点P1执行舒尔补计算来生成矩阵S时,地图点P1的i1和i2中的每一个可以对应于矩阵S中的C1至C4。因此,矩阵S可以是4×4矩阵。
在另一示例中,当后端处理器200通过对地图点P7执行舒尔补计算来生成矩阵S时,地图点P7的i1和i2中的每一个可以对应于矩阵S中的C3至C5。因此,矩阵S可以是3×3矩阵。
图6是示出根据示例实施例的加速器中通过划分为多个子轨迹的优化的流程图。图7是示出根据示例实施例的加速器中用于通过划分为多个子轨迹来执行舒尔补计算的海森矩阵的视图。
参考图6,在图3中示出的操作303中后端处理器(例如,图2的后端处理器200)获取关于第一条数据的地图点和相机位置的矩阵之后,在操作601中,后端处理器200可以将地图点和相机位置的矩阵划分为多个子轨迹。
在示例实施例中,多个子轨迹可以具有基于后端处理器200可以同时对其执行计算的相机位置的数量而设置的轨迹长度。
例如,当后端处理器200能够同时对仅5个相机位置或帧执行计算时,子轨迹的轨迹长度可以被设置为5。例如,当从对应于相机位置C1至C10的十个帧获取地图点(例如,地图点P1)时,地图点的矩阵(例如,图5中示出的“矩阵V块”)和对应于地图点的至少一个相机位置的矩阵(例如,图5中示出的“矩阵W块”)可以基于设置的子轨迹长度来划分。在该示例中,子轨迹的数量可以通过下面的等式11确定。
[等式11]
Nsubtrack=Nframe-(subtrack length)+1
当子轨迹长度subtrack length为5并且从其获取特定地图点的帧的数量Nframe为10时,子轨迹的数量Nsubtrack可以为6,如等式11所示。
根据示例实施例,在操作603中,后端处理器200可以在存储器中存储通过对第一子轨迹执行优化计算而获得的第一结果。优化计算可以是舒尔补计算。
例如,后端处理器200可以对对应于第一子轨迹700的第一地图点P1,1的矩阵V1,1以及对应于第一地图点P1,1的一个或多个相机位置C1和C2的矩阵W1(1)和W1(2)执行舒尔补计算。
在示例实施例中,后端处理器200可以通过对矩阵V1,1、W1(1)和W1(2)执行舒尔补计算来获得作为第一结果的矩阵S1,1和向量b1,1。在示例实施例中,由于矩阵S具有基于对角线条目的对称条目,所以后端处理器200可以通过执行舒尔补计算来仅获得矩阵S1,1的对角线条目和上三角形条目。后端处理器200可以将所获得的作为第一结果的矩阵S1,1和向量b1,1的数据存储在存储器(例如,图2中示出的存储器220)中。
根据示例实施例,在操作605中,后端处理器200可以通过对第二子轨迹执行优化计算来获得第二结果。优化计算可以是舒尔补计算。
例如,后端处理器200可以对第二地图点P1,2的矩阵V1,2以及一个或多个相机位置C2和C3的矩阵W1(2)和W1(3)执行舒尔补计算,其中矩阵V1,2以及矩阵W1(2)和W1(3)对应于第二子轨迹710。
在示例实施例中,后端处理器200可以不加载与第一子轨迹700上的数据重叠的第二子轨迹710上的数据。例如,后端处理器200可以确定第一子轨迹700中对应于第一地图点的相机位置C2的矩阵W1(2)与第二子轨迹710中对应于第二地图点的相机位置C2的矩阵W1(2)重叠。因此,后端处理器200可以不加载相机位置C2的矩阵W1(2),而可以仅加载相机位置C3的矩阵W1(3),从而减少数据加载时间。
在示例实施例中,后端处理器200可以通过对矩阵V1,2、W1(2)和W1(3)执行舒尔补计算来获得作为第二结果的矩阵S1,2和向量b1,2。
根据示例实施例,在操作607中,后端处理器200可以将第二结果累加并存储在存储第一结果的存储器(例如,图2中示出的存储器220)中。在示例实施例中,后端处理器200可以按照通过舒尔补计算输出数据的顺序将数据存储并累加在存储器220中。例如,后端处理器200可以将第二结果累加并存储在存储第一结果的存储器中,然后可以将在第三子轨迹720中获得的第三结果累加并存储在顺序累加并存储第一结果和第二结果的存储器220中。
图8是示出根据示例实施例的舒尔补计算器的框图。
参考图8,舒尔补计算器,例如图4中示出的舒尔补计算器420,可以包括逆乘法器810、q生成器820和W供应器830、向量-标量积阵列840、张量积阵列850、向量累加器存储器860和矩阵累加器存储器870。在示例实施例中,向量累加器存储器860和矩阵累加器存储器870可以对应于图2中示出的存储器220。
在示例实施例中,舒尔补计算器420可以计算矩阵S和向量b,如下面的等式12所示。等式12可以对应于用于对划分为多个子轨迹(例如,五个子轨迹)的矩阵执行舒尔补计算(如图6中示出的操作603和605中)的伪码。
[等式12]
for(i=Csi;i<Csi+track length;i++)
S(i,i+0)+=Wj(i)Qj(i-4,i)Wj(i+0)T
S(i,i+1)+=Wj(i)Qj(i-3,i)Wj(i+1)T
S(i,i+2)+=Wj(i)Qj(i-2,i)Wj(i+2)T
S(i,i+3)+=Wj(i)Qj(i-1,i)Wj(i+3)T
S(i,i+4)+=Wj(i)Qj(i-0,i)Wj(i+4)T
在等式12中,i可以指相机位置索引,并且j可以指地图点索引。
在示例实施例中,逆乘法器810可以接收通过海森更新(例如,图4中示出的海森更新410)获得的V数据和r数据。例如,V数据可以指海森矩阵H(Xk)中地图点的矩阵V块。r数据可以指对应于海森矩阵H(Xk)和状态改变ΔX的乘积的向量。r数据可以指对应于雅可比转置矩阵和误差向量e(Xk)的乘积的向量。在示例实施例中,逆乘法器810可以计算V数据的逆矩阵V-1,以及V数据的逆矩阵V-1和r数据的乘积(V-1r)。
在示例实施例中,Q生成器820可以从逆乘法器810接收V数据的逆矩阵V-1和r数据的乘积(V-1r),以产生向量q和矩阵Qj(a,b)。在实施例中,Q生成器820可以通过下面的等式13和14生成矩阵Qj(a,b)和向量q。
[等式13]
[等式14]
在一个示例实施例中,W供应器830可以接收通过海森更新410获得的W数据。例如,W数据可以指海森矩阵H(Xk)中对应于地图点的相机位置的矩阵W块。
在示例实施例中,向量-标量积阵列840可以将从Q生成器820接收的向量q和矩阵Qj(a,b)乘以从W供应器830接收的W数据。在示例实施例中,张量积阵列850可以对从W供应器830接收的W数据和从向量-标量积阵列840接收的乘法数据执行张量积计算。在这种情况下,张量积阵列850可以在通过基于对角线条目彼此交换行值和列值将从W供应器830接收的W数据转换为转置矩阵之后,执行张量积计算。
在示例实施例中,向量-标量积阵列840可以将向量q和W数据的乘积发送到向量累加器存储器860。在示例实施例中,张量积阵列850可以向矩阵累加器存储器870发送W数据和从向量-标量积阵列840接收的乘法数据的张量积。
图9是示出根据示例实施例的舒尔补计算器的W供应器830的框图。
参考图9,舒尔补计算器的W供应器830,例如图4中示出的舒尔补计算器420,可以接收通过海森更新(例如,图4中示出的海森更新410)获得的W数据作为输入。
在示例实施例中,W供应器830可以包括对应于划分为多个子轨迹的多个W寄存器。例如,当W数据被划分为五个子轨迹时,W供应器830可以包括五个W寄存器。在这种情况下,W寄存器可以包括包含W数据的对角线条目的W寄存器和包含W数据的非对角线条目的多个W寄存器。
在示例实施例中,W供应器830可以包括多个移位寄存器。例如,W供应器830可以通过移位寄存器顺序移动所接收的W数据。在示例实施例中,移位寄存器的数量可以与子轨迹的数量相同。
在示例实施例中,W供应器830可以包括将通过移位寄存器处理的数据发送到张量积阵列850的定时控制器(T-CON)。例如,由移位寄存器处理的数据可以被顺序输入到定时控制器,并且定时控制器可以同时将所接收的数据(例如,Wj(i)、Wj(i+1)、Wj(i+2)、Wj(i+3)和Wj(i+4))发送到张量积阵列850。
在示例实施例中,W供应器830可以将通过移位寄存器处理的数据发送到向量-标量积阵列840。例如,W供应器830可以向向量-标量积阵列840发送由包括W数据的对角线条目的W寄存器处理的数据,例如Wj(i)。
图10是示出根据示例实施例的舒尔补计算器的Q生成器820的框图。
参考图10,舒尔补计算器(例如,图4中示出的舒尔补计算器420)的Q生成器820可以通过接收V数据的逆矩阵V-1以及r数据和逆矩阵V-1的乘积(V-1r)来生成向量q和矩阵Qj(a,b)。
在示例实施例中,Q生成器820可以包括多个双寄存器和多个双加法器,其对应于划分为多个子轨迹。例如,双寄存器和双加法器可以对应于移位寄存器。Q生成器820可以通过双寄存器和双加法器顺序移动V数据的逆矩阵V-1以及逆矩阵V-1和r数据的乘积(V-1r)。在示例实施例中,双寄存器的数量可以等于子轨迹的数量。
在示例实施例中,Q生成器820可以包括将通过双寄存器和双加法器处理的数据发送到向量-标量积阵列840的定时控制器(T-CON)。例如,通过双寄存器和双加法器处理的数据可以被顺序输入到定时控制器,并且定时控制器可以同时将所接收的数据(例如,q、Qj(i-4,i)、Qj(i-3,i)、Qj(i-2,i)、Qj(i-1,i)和Qj(i,i))发送到向量-标量积阵列840。
图11是示出根据示例实施例的舒尔补计算器的向量-标量积阵列840的框图。
参考图11,向量-标量积阵列840可以从W供应器830接收W数据的对角线条目(例如,Wj(i))并从Q生成器820接收向量q和矩阵Qj(a,b)。
在示例实施例中,向量-标量积阵列840可以对W数据、向量q和矩阵Qj(a,b)执行向量-标量积计算。在这种情况下,向量-标量积阵列840可以同时执行对W数据和向量q的乘法计算以及对W数据和矩阵Qj(a,b)的乘法计算。例如,向量-标量积阵列840可以包括多个流水线向量-标量乘法器,并且流水线向量-标量乘法器可以并行执行对W数据和向量q的乘法计算以及对W数据和矩阵Qj(a,b)的乘法计算。
在示例实施例中,向量-标量积阵列840可以将W数据和向量q的乘法的结果(例如,Wj(i)q)存储在向量累加器存储器860中。在实施例中,向量-标量积阵列840可以向张量积阵列850发送W数据和矩阵Qj(a,b)的乘法的结果,例如Wj(i)Qj(i-4,i)、Wj(i)Qj(i-3,i)、Wj(i)Qj(i-2,i)、Wj(i)Qj(i-1,i)和Wj(i)Qj(i,i)。
图12是示出根据示例实施例的舒尔补计算器的张量积阵列850的框图。
参考图12,张量积阵列850可以从W供应器830接收W数据(例如,Wj(i)、Wj(i+1)、Wj(i+2)、Wj(i+3)和Wj(i+4))并从向量-标量积阵列840接收W数据和矩阵Qj(a,b)的乘法的结果(例如,Wj(i)Qj(i-4,i)、Wj(i)Qj(i-3,i)、Wj(i)Qj(i-2,i)、Wj(i)Qj(i-1,i)和Wj(i)Qj(i,i))。
在示例实施例中,张量积阵列850可以对W数据以及W数据和矩阵Qj(a,b)的乘法的结果执行张量积计算。在该示例中,张量积阵列850可以同时对从W供应器830接收的W数据以及从向量-标量积阵列840接收的W数据和矩阵Qj(a,b)的乘法的结果执行张量积计算。例如,张量积阵列850可以在将从W供应器830接收的W数据转换为转置矩阵之后执行张量积计算。也就是说,转换为转置矩阵的W数据可以包括Wj(i)T、Wj(i+1)T、Wj(i+2)T、Wj(i+3)T和Wj(i+4)T。
在示例实施例中,张量积阵列850可以在矩阵累加器存储器870中存储张量积计算的结果,例如Wj(i)Qj(i-4,i)Wj(i)T、Wj(i)Qj(i-3,i)Wj(i+1)T、Wj(i)Qj(i-2,i)Wj(i+2)T、Wj(i)Qj(i-1,i)Wj(i+3)T和Wj(i)Qj(i,i)Wj(i+4)T。
本领域技术人员将会理解,在不脱离本公开的精神和范围的情况下,可以对其中的示例实施例进行形式和细节上的各种改变。因此,本文描述的示例性实施例应该仅被认为是描述意义,而不是为了限制的目的。本公开的范围不是由以上描述限定的,而是由权利要求限定的,并且在本公开的范围的等效范围内的所有差异应当被认为包括在本公开的范围内。
如上所述,根据上述示例实施例中的一个或多个,提供执行SLAM的方法和使用该方法的设备,以通过提高后端处理器的处理速度来缩短SLAM计算所需的时间。
根据执行SLAM的方法和使用上述一个或多个示例实施例的方法的设备,基于地图点处理的数据被顺序累加并存储在存储器中,因此可以减少计算中加载数据所需的时间。此外,由于通过反映硬件的规格以划分的方式执行计算,所以即使当从传感器获取的帧数增加时,处理速度也可以提高。
应该理解,本文描述的示例实施例应该仅被认为是描述意义,而不是为了限制的目的。每个示例实施例中的特征或方面的描述通常应该被认为可用于其他实施例中的其他类似特征或方面。虽然已经参考附图描述了示例性实施例,但是本领域普通技术人员将理解,在不脱离由所附权利要求及其等同物限定的精神和范围的情况下,可以在形式和细节上进行各种改变。
Claims (20)
1.一种设置在电子设备中并被配置为执行同步定位与建图(SLAM)的加速器,所述加速器包括:
因子图数据库;
存储器;和
后端处理器,被配置为:
从所述因子图数据库接收对应于地图点和相机位置的第一条数据;
将所接收的第一条数据转换为所述地图点的矩阵和所述相机位置的矩阵;
在所述存储器中存储通过对所述地图点的矩阵和所述相机位置当中对应于所述地图点的至少一个相机位置的矩阵执行优化计算而获得的结果;以及
基于存储在所述存储器中的所述结果来获得相对于所述第一条数据优化的第二条数据。
2.根据权利要求1所述的加速器,其中,所述后端处理器还被配置为将所述地图点的矩阵和对应于所述地图点的所述至少一个相机位置的矩阵划分为多个子轨迹。
3.根据权利要求2所述的加速器,其中,所述多个子轨迹具有基于所述后端处理器被配置为同时对其执行计算的相机位置的数量而设置的轨迹长度。
4.根据权利要求2所述的加速器,其中,所述后端处理器还被配置为基于移位寄存器对对应于所述多个子轨迹的矩阵执行优化计算。
5.根据权利要求2所述的加速器,其中,所述后端处理器还被配置为:
在所述存储器中存储第一结果,其中所述第一结果是通过对与所述多个子轨迹中的第一子轨迹相对应的第一地图点的矩阵和对应于所述第一地图点的至少一个相机位置的矩阵执行优化计算来获得的;以及
通过对与所述多个子轨迹中所述第一子轨迹之后的第二子轨迹相对应的第二地图点的矩阵和对应于所述第二地图点的至少一个相机位置的矩阵执行优化计算来获得第二结果。
6.根据权利要求5所述的加速器,其中,所述后端处理器还被配置为将所获得的第二结果存储在存储所述第一结果的所述存储器中。
7.根据权利要求5所述的加速器,其中,基于获得所述第二结果,所述后端处理器还被配置为重用对应于所述第二子轨迹的至少一部分的矩阵,所述部分对应于所述第一子轨迹。
8.根据权利要求1所述的加速器,其中,基于执行所述优化计算,所述后端处理器还被配置为并行执行矩阵计算和向量计算。
9.一种由设置在电子设备中的加速器执行同步定位与建图(SLAM)的方法,所述方法包括:
从因子图数据库接收对应于地图点和相机位置的第一条数据;
将所接收的第一条数据转换为所述地图点的矩阵和所述相机位置的矩阵;
在存储器中存储通过对所述地图点的矩阵和所述相机位置当中对应于所述地图点的至少一个相机位置的矩阵执行优化计算而获得的结果;以及
基于存储在所述存储器中的所述结果来获得相对于所述第一条数据优化的第二条数据。
10.根据权利要求9所述的方法,还包括将所述地图点的矩阵和对应于所述地图点的所述至少一个相机位置的矩阵划分为多个子轨迹。
11.根据权利要求10所述的方法,其中,所述多个子轨迹具有基于同时计算的相机位置的数量而设置的轨迹长度。
12.根据权利要求10所述的方法,还包括基于移位寄存器对对应于所述多个子轨迹的矩阵执行优化计算。
13.根据权利要求10所述的方法,还包括:
在所述存储器中存储第一结果,其中所述第一结果是通过对与所述多个子轨迹中的第一子轨迹相对应的第一地图点的矩阵和对应于所述第一地图点的相机位置的矩阵执行优化计算来获得的;以及
通过对与所述多个子轨迹中所述第一子轨迹之后的第二子轨迹相对应的第二地图点的矩阵和对应于所述第二地图点的相机位置的矩阵执行优化计算来获得第二结果。
14.根据权利要求13所述的方法,还包括将所获得的第二结果存储在存储所述第一结果的所述存储器中。
15.根据权利要求13所述的方法,其中,基于获得所述第二结果,所述方法还包括重用对应于所述第二子轨迹的至少一部分的矩阵,所述部分对应于所述第一子轨迹。
16.一种电子设备,包括:
传感器;
存储器;和
处理器,被配置为控制所述传感器和所述存储器,
其中,所述处理器还被配置为:
对从所述传感器接收的感测数据执行关键点提取计算和坐标计算,并将所述关键点提取计算和所述坐标计算的结果发送到因子图数据库;
从所述因子图数据库获得对应于地图点和相机位置的第一条数据;
将所获得的第一条数据转换为所述地图点的矩阵和所述相机位置的矩阵;
在所述存储器中存储通过对所述地图点的矩阵和所述相机位置当中对应于所述地图点的至少一个相机位置的矩阵执行优化计算而获得的结果;以及
基于存储在所述存储器中的所述结果来获得相对于所述第一条数据优化的第二条数据。
17.根据权利要求16所述的电子设备,其中,所述处理器还被配置为将所述地图点的矩阵和对应于所述地图点的所述至少一个相机位置的矩阵划分为多个子轨迹。
18.根据权利要求17所述的电子设备,其中,所述处理器还被配置为基于移位寄存器对对应于所述多个子轨迹的矩阵执行优化计算。
19.根据权利要求17所述的电子设备,其中,所述处理器还被配置为:
在所述存储器中存储第一结果,其中所述第一结果是通过对与所述多个子轨迹中的第一子轨迹相对应的第一地图点的矩阵和对应于所述第一地图点的相机位置的矩阵执行优化计算来获得的;以及
通过对与所述多个子轨迹中所述第一子轨迹之后的第二子轨迹相对应的第二地图点的矩阵和对应于所述第二地图点的相机位置的矩阵执行优化计算来获得第二结果。
20.根据权利要求19所述的电子设备,其中,基于获得所述第二结果,所述处理器还被配置为重用所述第二子轨迹的至少一部分中的矩阵,所述部分对应于所述第一子轨迹。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0016286 | 2021-02-04 | ||
KR1020210016286A KR20220112575A (ko) | 2021-02-04 | 2021-02-04 | Slam 연산을 수행하는 방법 및 이를 이용한 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860857A true CN114860857A (zh) | 2022-08-05 |
Family
ID=79170657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111261080.2A Pending CN114860857A (zh) | 2021-02-04 | 2021-10-28 | 用于执行同步定位与建图的方法以及使用该方法的设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220254046A1 (zh) |
EP (1) | EP4040375A1 (zh) |
KR (1) | KR20220112575A (zh) |
CN (1) | CN114860857A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117705107A (zh) * | 2024-02-06 | 2024-03-15 | 电子科技大学 | 基于两阶段稀疏舒尔补的面向视觉惯性定位方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9658070B2 (en) * | 2014-07-11 | 2017-05-23 | Regents Of The University Of Minnesota | Inverse sliding-window filters for vision-aided inertial navigation systems |
-
2021
- 2021-02-04 KR KR1020210016286A patent/KR20220112575A/ko active Search and Examination
- 2021-10-28 CN CN202111261080.2A patent/CN114860857A/zh active Pending
- 2021-11-02 US US17/516,990 patent/US20220254046A1/en active Pending
- 2021-12-31 EP EP21218438.6A patent/EP4040375A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117705107A (zh) * | 2024-02-06 | 2024-03-15 | 电子科技大学 | 基于两阶段稀疏舒尔补的面向视觉惯性定位方法 |
CN117705107B (zh) * | 2024-02-06 | 2024-04-16 | 电子科技大学 | 基于两阶段稀疏舒尔补的面向视觉惯性定位方法 |
Also Published As
Publication number | Publication date |
---|---|
EP4040375A1 (en) | 2022-08-10 |
KR20220112575A (ko) | 2022-08-11 |
US20220254046A1 (en) | 2022-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6821002B2 (ja) | 処理装置と処理方法 | |
CN110533712B (zh) | 一种基于卷积神经网络的双目立体匹配方法 | |
CN111311685B (zh) | 一种基于imu与单目图像的运动场景重构无监督方法 | |
CN110084832B (zh) | 相机位姿的纠正方法、装置、***、设备和存储介质 | |
US20140206443A1 (en) | Camera pose estimation for 3d reconstruction | |
US11769037B2 (en) | Method and apparatus for processing convolution operation in neural network | |
CN113272713B (zh) | 用于执行自改进的视觉测程法的***和方法 | |
CN110533724B (zh) | 基于深度学习和注意力机制的单目视觉里程计的计算方法 | |
US10937189B2 (en) | Pose estimation method, method of displaying virtual object using estimated pose, and apparatuses performing the same | |
EP4083920A1 (en) | Method and apparatus for accelerating simultaneous localization and mapping | |
KR20220031117A (ko) | 효율적인 곱셈을 위한 대안적인 숫자 형식을 지원하는 시스템 및 방법 | |
CN111868738B (zh) | 跨设备监控计算机视觉*** | |
CN114860857A (zh) | 用于执行同步定位与建图的方法以及使用该方法的设备 | |
KR20200037502A (ko) | 포즈 정보를 출력하는 방법 및 장치 | |
CA3018886C (en) | Three-dimensional measuring system and measuring method with multiple measuring modes | |
WO2023005457A1 (zh) | 位姿计算方法和装置、电子设备、可读存储介质 | |
JP2023068632A (ja) | Slamを加速化させる装置、及びそれを含む電子装置 | |
CN107330934B (zh) | 低维度的集束调整计算方法与*** | |
CN114812601A (zh) | 视觉惯性里程计的状态估计方法、装置、电子设备 | |
CN115496793A (zh) | 立体匹配方法、装置、计算机设备和存储介质 | |
CN115294280A (zh) | 三维重建方法、装置、设备、存储介质和程序产品 | |
CN112880675B (zh) | 用于视觉定位的位姿平滑方法、装置、终端和移动机器人 | |
CN111279364A (zh) | 卷积计算的装置、方法、处理器和可移动设备 | |
US11886491B2 (en) | Method of accelerating simultaneous localization and mapping (SLAM) and device using same | |
CN109325962A (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 |