CN114972491A - 视觉slam方法、电子设备、存储介质及产品 - Google Patents
视觉slam方法、电子设备、存储介质及产品 Download PDFInfo
- Publication number
- CN114972491A CN114972491A CN202210530318.5A CN202210530318A CN114972491A CN 114972491 A CN114972491 A CN 114972491A CN 202210530318 A CN202210530318 A CN 202210530318A CN 114972491 A CN114972491 A CN 114972491A
- Authority
- CN
- China
- Prior art keywords
- sub
- coordinate system
- slam
- visual slam
- feature
- 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
Images
Classifications
-
- 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
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/005—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/806—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
-
- 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
Abstract
本发明涉及机器人技术领域,提供一种视觉SLAM方法、电子设备、存储介质及产品,所述方法包括:获取多种类型的SLAM特征,所述SLAM特征的类型包括点特征、线特征、面特征和曼哈顿世界特征中的至少两种类型;基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达;基于统一表达后的不同类型的所述SLAM特征进行视觉SLAM,得到视觉SLAM结果数据。本发明实施例提供的视觉SLAM方法,不同类型的视觉SLAM特征均进行统一表达,有利于提高不同类型的视觉SLAM特征的表达统一性,在进行多视觉SLAM特征的视觉SLAM时,有助于提高视觉SLAM系统的鲁棒性和精度。
Description
技术领域
本发明涉及机器人技术领域,尤其涉及一种视觉SLAM方法、电子设备、存储介质及产品。
背景技术
同步定位与建图(Simultaneous Localization and Mapping,SLAM)是机器人实现自主定位、导航规划及任务执行的关键技术。视觉SLAM主要分为基于灰度的直接法和基于特征的间接法两类。基于特征的视觉SLAM方法利用到的特征包括点特征、线特征、面特征以及曼哈顿世界特征等,但是目前的视觉SLAM方法通常只使用其中一种特征,容易导致系统鲁棒不足,比如在低纹理场景下,基于点特征的视觉SLAM就无法正常工作,而且在仅面对一个平面的场景下,基于面特征的视觉SLAM常常会因为约束条件过少而定位丢失;某些使用多种特征的视觉SLAM方法,由于不同特征的表达方式不一致,优化复杂,且无法利用特征间的约束关系,从而导致视觉SLAM精度不高。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。
为此,本发明提出一种视觉SLAM方法,获取SLAM系统对应的多种类型的SLAM特征,基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,使每一个视觉SLAM特征都具有其对应的表达式,即使是不同类型的视觉SLAM特征,有利于提高不同类型的视觉SLAM特征的表达统一性,能够更加精确地表达出每个视觉SLAM特征的位姿,在进行视觉SLAM时,可以根据统一表达后的多种视觉SLAM特征进行基于多视觉SLAM特征的视觉SLAM,有助于提高视觉SLAM系统的鲁棒性和精度。
本发明还提出一种视觉SLAM装置。
本发明还提出一种电子设备。
本发明还提出一种非暂态计算机可读存储介质。
本发明还提出一种计算机程序产品。
根据本发明第一方面实施例的视觉SLAM方法,包括:
获取多种类型的SLAM特征,所述SLAM特征的类型包括点特征、线特征、面特征和曼哈顿世界特征中的至少两种类型;
基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达;
基于统一表达后的不同类型的所述SLAM特征进行视觉SLAM,得到视觉SLAM结果数据。
根据本发明实施例的一种视觉SLAM方法,通过对点特征、线特征、面特征和曼哈顿世界特征等多种类型的SLAM特征进行统一表达,使每一个视觉SLAM特征都具有其对应的统一表达,即使是不同类型的视觉SLAM特征,都能通过统一表达式进行表达,有利于提高不同类型的视觉SLAM特征的表达统一性,能够更加精确地表达出每个视觉SLAM特征的位姿,在进行视觉SLAM时,可以根据统一表达后的多种视觉SLAM特征进行基于多视觉SLAM特征的视觉SLAM,有助于提高视觉SLAM系统的鲁棒性和精度。
根据本发明的一个实施例,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
基于子坐标的统一表达方式分别对每一种类型的所述SLAM特征进行统一表达得到统一表达式,所述统一表达式中包括每一种类型的所述SLAM特征对应的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量。
根据本发明实施例的一种视觉SLAM方法,通过得到每一个视觉SLAM特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,使每一个视觉SLAM特征都具有其对应的表达式,即使是不同类型的视觉SLAM特征,都通过具有子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量四个参数的表达式进行表达,有利于提高不同类型的视觉SLAM特征的表达统一性,能够更加精确地表达出每个视觉SLAM特征的位姿。
根据本发明的一个实施例,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
当所述视觉SLAM特征为点特征时,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
将所述点特征的三维坐标,作为所述点特征的子坐标系原点;
将SLAM系统的参考坐标系与所述点特征的三维坐标的连线方向,作为所述点特征的子坐标系方向向量;
将所述点特征的坐标系方向向量与参考坐标系的Z轴所构成平面的法向量,作为所述点特征的子坐标系法向量;
将所述点特征的子坐标系方向向量与所述点特征的子坐标系法向量的乘积,作为所述点特征的子坐标系正交向量;
结合所述点特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,对所述点特征进行统一表达。
根据本发明实施例的一种视觉SLAM方法,对于点特征,将点特征的三维坐标作为点特征的子坐标系原点,将SLAM系统的参考坐标系与点特征的三维坐标的连线方向作为点特征的子坐标系方向向量,将点特征的坐标系方向向量与参考坐标系的Z轴所构成平面的法向量作为点特征的子坐标系法向量,将点特征的子坐标系方向向量与点特征的子坐标系法向量的乘积,作为点特征的子坐标系正交向量,再结合点特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成点特征的表达式,能够更加精确地表达点特征在参考坐标系中的位姿,有助于提高后续进行视觉SLAM的精度。
当所述视觉SLAM特征为线特征时,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
将SLAM系统的参考坐标系的原点到所述线特征的垂足,作为所述线特征的子坐标系原点;
将所述线特征的方向向量,作为所述线特征的子坐标系方向向量;
将所述线特征的子坐标系方向向量与参考坐标系的Z轴所构成平面的法向量,作为所述线特征的子坐标系法向量;
将所述线特征的子坐标系方向向量与所述线特征的子坐标系法向量的乘积,作为所述线特征的子坐标系正交向量;
结合所述线特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,对所述线特征进行统一表达。
根据本发明实施例的一种视觉SLAM方法,对于线特征,将SLAM系统的参考坐标系的原点到线特征的垂足作为线特征的子坐标系原点,将线特征的方向向量,作为线特征的子坐标系方向向量,将线特征的子坐标系方向向量与参考坐标系的Z轴所构成平面的法向量作为线特征的子坐标系法向量,将线特征的子坐标系方向向量与线特征的子坐标系法向量的乘积作为线特征的子坐标系正交向量,再结合线特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成线特征的表达式,能够更加精确地表达线特征在参考坐标系中的位姿,有助于提高后续进行视觉SLAM的精度。
当所述视觉SLAM特征为面特征时,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
将SLAM系统的参考坐标系的原点到所述面特征的垂足,作为所述面特征的子坐标系原点;
将参考坐标系的Z轴在所述面特征上的投影方向,作为所述面特征的子坐标系方向向量;
将所述面特征的法向量,作为所述面特征的子坐标系法向量;
将所述面特征的子坐标系方向向量与所述面特征的子坐标系法向量的乘积,作为所述面特征的子坐标系正交向量;
结合所述面特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,对所述面特征进行统一表达。
根据本发明实施例的一种视觉SLAM方法,对于面特征,将SLAM系统的参考坐标系的原点到面特征的垂足作为面特征的子坐标系原点,将参考坐标系的Z轴在面特征上的投影方向作为面特征的子坐标系方向向量,将面特征的法向量作为面特征的子坐标系法向量,将面特征的子坐标系方向向量与面特征的子坐标系法向量的乘积作为面特征的子坐标系正交向量,再结合面特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成面特征的表达式,能够更加精确地表达面特征在参考坐标系中的位姿,有助于提高后续进行视觉SLAM的精度。
当所述视觉SLAM特征为曼哈顿世界特征时,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
将所述曼哈顿世界特征的三个正交平面的交点,作为所述曼哈顿世界特征的子坐标系原点;
将所述曼哈顿世界特征的三个正交平面对应的法向量,分别作为所述曼哈顿世界特征的子坐标系方向向量、子坐标系法向量、子坐标系正交向量;
结合所述曼哈顿世界特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,对所述曼哈顿世界特征进行统一表达。
根据本发明实施例的一种视觉SLAM方法,对于曼哈顿世界特征,将曼哈顿世界特征的三个正交平面的交点作为曼哈顿世界特征的子坐标系原点,将曼哈顿世界特征的三个正交平面对应的法向量分别作为曼哈顿世界特征的子坐标系方向向量、子坐标系法向量、子坐标系正交向量,然后结合曼哈顿世界特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成曼哈顿世界特征的表达式,能够更加精确地表达曼哈顿世界特征在参考坐标系中的位姿,有助于提高后续进行视觉SLAM的精度。
根据本发明的一个实施例,所述根据所述视觉SLAM特征的表达式进行视觉SLAM,得到视觉SLAM结果数据,包括:
将实际视觉SLAM特征与预存视觉SLAM特征进行匹配,得到视觉SLAM特征对;
根据所述实际视觉SLAM特征的表达式和所述预存视觉SLAM特征的表达式,得到所述视觉SLAM特征对的两个视觉SLAM特征之间的距离;
根据所述视觉SLAM特征对的两个视觉SLAM特征之间的距离进行视觉SLAM,得到视觉SLAM结果数据。
根据本发明实施例的一种视觉SLAM方法,先将由机器人实际获得的实际视觉SLAM特征与预存在地图中的预存视觉SLAM特征进行一对一的匹配,得到视觉SLAM特征对,再根据实际视觉SLAM特征的表达式和预存视觉SLAM特征的表达式,精确计算视觉SLAM特征对的两个视觉SLAM特征之间的距离,然后能够根据视觉SLAM特征对的两个视觉SLAM特征之间的距离进行足够鲁棒的视觉SLAM,有助于提高得到的视觉SLAM结果数据的精度。
根据本发明的一个实施例,所述根据所述实际视觉SLAM特征的表达式和所述预存视觉SLAM特征的表达式,得到所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,具体为:
根据所述实际视觉SLAM特征的表达式和所述预存视觉SLAM特征的表达式,得到所述实际视觉SLAM特征和预存视觉SLAM特征分别对应子坐标系原点之间的距离、子坐标系方向向量之间的距离和子坐标系法向量之间的距离;
根据所述实际视觉SLAM特征和预存视觉SLAM特征分别对应子坐标系原点之间的距离、子坐标系方向向量之间的距离和子坐标系法向量之间的距离得到所述视觉SLAM特征对的两个视觉SLAM特征之间的距离。
根据本发明实施例的一种视觉SLAM方法,根据特征距离计算式能够基于实际视觉SLAM特征的子坐标系原点、子坐标系方向向量、子坐标系法向量、以及预存视觉SLAM特征的子坐标系原点、子坐标系方向向量、子坐标系法向量,精确地计算出每对视觉SLAM特征对的两个视觉SLAM特征之间的距离,有助于提高进行视觉SLAM的精度,提高得到的视觉SLAM结果数据的准确性。
根据本发明的一个实施例,所述根据所述视觉SLAM特征对的两个视觉SLAM特征之间的距离进行视觉SLAM,之前还包括:
通过优化函数调整所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,得到优化后的所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,其中,所述优化函数通过所述视觉SLAM特征对、实际视觉SLAM特征的特征参数、预存视觉SLAM特征的特征参数以及机器人位姿确定。
根据本发明实施例的一种视觉SLAM方法,通过视觉SLAM特征对、实际视觉SLAM特征的特征参数、预存视觉SLAM特征的特征参数、以及机器人位姿来对视觉SLAM特征对的两个视觉SLAM特征之间的距离进行优化调整,能够进一步提高视觉SLAM特征对的两个视觉SLAM特征之间的距离的精度。
根据本发明的一个实施例,所述调整所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,还包括:
通过词袋模型根据机器人在闭合环路得到的视觉SLAM特征进行闭环检测,以减小所述机器人位姿以及所述预存视觉SLAM特征的累积误差。
根据本发明实施例的一种视觉SLAM方法,通过词袋模型根据机器人在闭合环路得到的视觉SLAM特征进行闭环检测能够显著减小机器人位姿以及预存视觉SLAM特征的累积误差,有助于机器人更精准、快速的进行避障导航工作,从而提高得到的视觉SLAM结果数据的精度。
根据本发明第二方面实施例的视觉SLAM装置,包括:
特征采集模块,用于获取多种类型的SLAM特征,SLAM特征的类型包括点特征、线特征、面特征和曼哈顿世界特征中的至少两种类型。
统一表达模块,用于基于统一表达方式分别对每一种类型的SLAM特征进行统一表达。
视觉SLAM模块,用于基于统一表达后的不同类型的SLAM特征进行视觉SLAM,得到视觉SLAM结果数据。
根据本发明实施例的视觉SLAM装置,有利于提高不同类型的视觉SLAM特征的表达统一性,能够更加精确地表达出每个视觉SLAM特征的位姿,在通过视觉SLAM模块进行视觉SLAM时,可以根据统一表达后的多种视觉SLAM特征进行基于多视觉SLAM特征的视觉SLAM,有助于提高视觉SLAM系统的鲁棒性和精度。
根据本发明第三方面实施例的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述视觉SLAM方法。
根据本发明第四方面实施例的非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一项所述视觉SLAM方法。
根据本发明第五方面实施例的计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的视觉SLAM方法,
本发明实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
通过对点特征、线特征、面特征和曼哈顿世界特征等多种类型的SLAM特征进行统一表达,使每一个视觉SLAM特征都具有其对应的统一表达,即使是不同类型的视觉SLAM特征,都能通过统一表达式进行表达,有利于提高不同类型的视觉SLAM特征的表达统一性,能够更加精确地表达出每个视觉SLAM特征的位姿,在进行视觉SLAM时,可以根据统一表达后的多种视觉SLAM特征进行基于多视觉SLAM特征的视觉SLAM,有助于提高视觉SLAM系统的鲁棒性和精度。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种视觉SLAM方法的流程示意图;
图2是本发明实施例提供的SLAM特征类型示意图;
图3是本发明实施例提供的一种视觉SLAM框架示意图;
图4是本发明实施例提供的一种视觉SLAM装置的结构示意图;
图5是本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明的实施方式作进一步详细描述。以下实施例用于说明本发明,但不能用来限制本发明的范围。
同步定位与建图(simultaneous localization and mapping,SLAM)是机器人在未知环境下自主作业的核心关键技术,是机器人自动化领域的研究重点。未知环境下,基于机器人外部传感器获取的环境感知数据,SLAM为机器人构建周围环境图,同时提供机器人在环境图中的位置,并随着机器人的移动而进行环境图的增量式构建与机器人的连续定位,是实现机器人环境感知与自动化作业的基础。SLAM中一般采用距离传感器作为环境感知的数据源。相比雷达、声呐等测距仪器,视觉传感器具有体积小、功耗低、信息获取丰富等特点,可为各型机器人提供丰富的外部环境纹理信息,因而基于视觉的SLAM成为当前研究的热点。由于相机获取的视觉信息容易受到环境干扰,存在较大噪声,视觉SLAM处理难度大、复杂度高。当前,获取随着计算机视觉技术的不断发展,视觉SLAM的技术水平也随之提高,并在室内自主导航、VR/AR等领域得到初步的应用。
下面结合实施例对本发明提供的视觉SLAM方法、装置、电子设备、存储介质及产品进行详细描述。
图1为本发明实施例提供的一种视觉SLAM方法的流程示意图。
参照图1,本发明实施例提供的一种视觉SLAM方法,可以包括:
步骤110、获取多种类型的SLAM特征,所述SLAM特征的类型包括点特征、线特征、面特征和曼哈顿世界特征中的至少两种类型。
步骤120、基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达。
步骤130、基于统一表达后的不同类型的所述SLAM特征进行视觉SLAM,得到视觉SLAM结果数据。
需要说明的是,本发明提供的一种视觉SLAM方法可应用于多种产品,如机器人、无人机或者移动终端等,同时,对应的产品可以配备3D扫描设备及处理器。其中,机器人可以是家庭服务机器人、清洁机器人、轮式移动机器人、双足或多足移动机器人等。移动终端可以是含激光雷达传感器的手机等。
本发明的一些实施例中,以机器人为例进行描述。机器人设置有能够探测空间的环境数据的传感器组合,传感器组合至少包括一台或以上的激光雷达传感器等3D扫描设备。机器人内还设置有处理器,能够收发指令及处理数据信息。其中,激光雷达传感器类型可以是:单线激光雷达、多线激光雷达或固态激光雷达等。
机器人可以通过3D扫描设备获取导航区域的点云数据;其中,点云数据是指在一个三维坐标系统中的多个点的集合;点云数据除了具有几何位置以外,有的还有颜色信息。颜色信息通常是通过深度相机获取的彩色图像,然后将对应位置的像素的颜色信息赋予点云中对应的点。在具体实施中,机器人基于获取到的点云数据或者深度图像进行数据处理,进而获取多种类型的SLAM特征。
在步骤110中,机器人会获取多种类型的SLAM特征,这些类型包括点特征、线特征、面特征和曼哈顿世界特征等。对于不同类型的视觉SLAM特征,可以根据其具体的位姿来通过子坐标系进行表达。然后,机器人可以根据不同类型的视觉SLAM特征的表达式进行视觉SLAM,避免单一特征导致视觉SLAM系统的鲁棒不足。
在步骤120中,机器人会基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,得到统一表达后的视觉SLAM特征。统一表达即为用同一种表达形式对不同的SLAM特征进行统一描述。
在步骤130中,机器人会基于统一表达后的不同类型的所述SLAM特征进行视觉SLAM,得到视觉SLAM结果数据。
需要说明的是,通过统一表达后多种视觉SLAM特征的表达方式保持一致,能够支持机器人基于表达后的视觉SLAM特征进行任一种基于多类型视觉SLAM特征进行的视觉SLAM方法,在本发明中不作限制。
本发明实施例的视觉SLAM方法,通过对点特征、线特征、面特征和曼哈顿世界特征等多种类型的SLAM特征进行统一表达,使每一个视觉SLAM特征都具有其对应的统一表达,即使是不同类型的视觉SLAM特征,都能通过统一表达式进行表达,有利于提高不同类型的视觉SLAM特征的表达统一性,能够更加精确地表达出每个视觉SLAM特征的位姿,在进行视觉SLAM时,可以根据统一表达后的多种视觉SLAM特征进行基于多视觉SLAM特征的视觉SLAM,有助于提高视觉SLAM系统的鲁棒性和精度。
在本发明的一些实施例中,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:基于子坐标的统一表达方式分别对每一种类型的所述SLAM特征进行统一表达得到统一表达式,所述统一表达式中包括每一种类型的所述SLAM特征对应的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量。
需要说明的是,由于视觉SLAM会基于视觉SLAM系统的参考坐标系来进行,则可以将表达式定义为子坐标系的表达式,例如L=(O,Vd,Vn,Vo),L表示目标表达式,O表示子坐标系原点,Vd表示子坐标系方向向量,Vn表示子坐标系法向量,Vo表示子坐标系正交向量。在形成视觉SLAM特征的表达式时,可以根据不同类型的视觉SLAM特征来得到其对应的子坐标系的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,使得每个视觉SLAM特征均通过其对应的子坐标系进行表达,能够更好地表达视觉SLAM特征与参考坐标系的位姿关系,有助于提高视觉SLAM的精度。
图2是本发明实施例提供的SLAM特征类型示意图,参照图2,可以看到点特征α、线特征β、面特征δ和曼哈顿世界特征ε在以O为原点的子坐标系中的关系。
在本发明的一些实施例中,基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
当视觉SLAM特征为点特征时,机器人可以先通过ORB(Oriented Fast andRotated Brief,特征提取算法)等方法提取二维平面点特征,再利用深度信息获取点特征的三维坐标,然后将点特征的三维坐标作为点特征的子坐标系原点O1,将视觉SLAM系统的参考坐标系与点特征的三维坐标的连线方向作为点特征的子坐标系方向向量Vd1,将点特征的坐标系方向向量与参考坐标系的Z轴所构成平面的法向量作为点特征的子坐标系法向量Vn1,Vd1将点特征的子坐标系方向向量与点特征的子坐标系法向量Vn1的乘积Vd1×Vn1,作为点特征的子坐标系正交向量Vo1,然后结合点特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成点特征的表达式,使点特征的表达式为:L1=(O1,Vd1,Vn1,Vo1),通过点特征的子坐标系能够更加精确地表达点特征在视觉SLAM系统的参考坐标系中的位姿,有助于提高后续进行视觉SLAM的精度。
需要说明的是,ORB是Oriented Fast and Rotated Brief的简称,可以用来对图像中的关键点快速创建特征向量,这些特征向量可以用来识别图像中的对象。其中,Fast和Brief分别是特征检测算法和向量创建算法。ORB首先会从图像中查找特殊区域,称为关键点。关键点即图像中突出的小区域,比如角点,比如它们具有像素值急剧的从浅色变为深色的特征。然后ORB会为每个关键点计算相应的特征向量。ORB算法创建的特征向量只包含1和0,称为二元特征向量。1和0的顺序会根据特定关键点和其周围的像素区域而变化。该向量表示关键点周围的强度模式,因此多个特征向量可以用来识别更大的区域,甚至图像中的特定对象。通过ORB能够快速提取点特征,而且在一定程度上不受噪点和图像变换的影响,例如旋转和缩放变换等。
当视觉SLAM特征为线特征时,机器人可以先通过CannyLines(线段检测法)等方法提取二维平面直线,再利用直线拟合的方式得到直线端点的三维坐标,然后将视觉SLAM系统的参考坐标系的原点到线特征的垂足作为线特征的子坐标系原点O2,将线特征的方向向量作为线特征的子坐标系方向向量Vd2,将线特征的子坐标系方向向量Vd2与参考坐标系的Z轴所构成平面的法向量作为线特征的子坐标系法向量Vn2,将线特征的子坐标系方向向量Vd2与线特征的子坐标系法向量Vn2的乘积Vd2×Vn2,作为线特征的子坐标系正交向量Vo2,再结合线特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成线特征的表达式,使得线特征的表达式为:L2=(O2,Vd2,Vn2,Vo2),通过线特征的子坐标系能够更加精确地表达线特征在视觉SLAM系统的参考坐标系中的位姿,有助于提高后续进行视觉SLAM的精度。
需要说明的是,机器人可以通过现有技术中基于梯度幅值的CannyLines线段检测法检测提取边缘图像,从边缘图像中收集共线点群,用最小二乘拟合方法将共线点群拟合成直线,得到二维平面直线。
当视觉SLAM特征为面特征时,机器人可以先通过AHC(层次聚类法)等方法提取三维平面,得到面特征,再将视觉SLAM系统的参考坐标系的原点到面特征的垂足作为面特征的子坐标系原点O3,将参考坐标系的Z轴在面特征上的投影方向作为面特征的子坐标系方向向量Vd3,将面特征的法向量作为面特征的子坐标系法向量Vn3,将面特征的子坐标系方向向量Vd3与面特征的子坐标系法向量Vn3的乘积Vd3×Vn3,作为面特征的子坐标系正交向量Vo3,然后结合面特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成面特征的表达式,使得面特征的表达式为:L3=(O3,Vd3,Vn3,Vo3),通过面特征的子坐标系能够更加精确地表达面特征在视觉SLAM系统的参考坐标系中的位姿,有助于提高后续进行视觉SLAM的精度。
在一些实施例中,AHC层次聚类法的实现过程可以是:
1)先建立一个最小堆的数据结构,使得能够更有效的找到有最小均方误进行融合;
2)再次计算融合后的平面拟合均方误差,找到获得均方误差最小的对应两个节点;
3)如果均方误差超过一个预先设定的阈值(非固定),一个平面的分割节点就算是找到了,把它从图中提取出来,得到面特征,否则,就把这两个节点融合好,重新加到构建的图中,对建立的最小堆进行更新,再重复步骤2)和3)。
当视觉SLAM特征为曼哈顿世界特征时,机器人可以直接将曼哈顿世界特征的三个正交平面的交点作为曼哈顿世界特征的子坐标系原点O4,将曼哈顿世界特征的三个正交平面对应的法向量分别作为曼哈顿世界特征的子坐标系方向向量Vd4、子坐标系法向量Vn4、子坐标系正交向量Vo4,然后结合曼哈顿世界特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成曼哈顿世界特征的表达式,使得曼哈顿世界特征的表达式为:L4=(O4,Vd4,Vn4,Vo4),通过曼哈顿世界特征的子坐标系能够更加精确地表达曼哈顿世界特征在视觉SLAM系统的参考坐标系中的位姿,有助于提高后续进行视觉SLAM的精度。
具体的,步骤130可以包括:
机器人将实际视觉SLAM特征与预存视觉SLAM特征进行匹配,得到视觉SLAM特征对;
机器人根据所述实际视觉SLAM特征的表达式与所述预存视觉SLAM特征的表达式,得到所述视觉SLAM特征对的两个视觉SLAM特征之间的距离;
机器人根据所述视觉SLAM特征对的两个视觉SLAM特征之间的距离进行视觉SLAM,得到视觉SLAM结果数据。
需要说明的是,视觉SLAM中需要将图像观测信息同环境进行关联,即确定序列图像内容与真实环境的对应关系。当前视觉SLAM中,角点特征经常被用于序列图像间的关联。通过图像间特征点的提取与追踪,在多帧图像间形成空间物方点与同名像方点的对应关系。由于序列图像获取时相机的位置和视角不同,加之环境光照的变化,同名点在序列图像上的外观必然改变,这就要求特征点表达能够不受图像几何变化如旋转、缩放、倾斜及光照亮度等变化的影响。
需要说明的是,实际视觉SLAM特征是机器人在行走过程中实际获得的,当获得实际视觉SLAM特征后,机器人可以先将得到实际视觉SLAM特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,以形成实际视觉SLAM特征的表达式。预存视觉SLAM特征可以是预先通过机器人预存在地图中的,且预存在地图中的预存视觉SLAM特征通过其对应的表达式进行表达。在进行视觉SLAM时,机器人可以先将实际视觉SLAM特征与预存视觉SLAM特征进行一一匹配,将数据关联起来,以得到视觉SLAM特征对,然后机器人可以基于视觉SLAM特征对中的实际视觉SLAM特征的表达式和预存视觉SLAM特征的表达式,计算两个视觉SLAM特征之间的距离,再根据视觉SLAM特征对的两个视觉SLAM特征之间的距离进行视觉SLAM,得到精确的视觉SLAM结果数据。
根据本发明实施例的一种视觉SLAM方法,通过得到每一个视觉SLAM特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,使每一个视觉SLAM特征都具有其对应的表达式,即使是不同类型的视觉SLAM特征,都通过具有子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量四个参数的表达式进行表达,有利于提高不同类型的视觉SLAM特征的表达统一性,能够更加精确地表达出每个视觉SLAM特征的位姿,在进行视觉SLAM时,可以根据统一表达后的多种视觉SLAM特征进行基于多视觉SLAM特征的视觉SLAM,有助于提高视觉SLAM系统的鲁棒性和精度。
进一步的,根据本发明的一个实施例,所述根据所述实际视觉SLAM特征的表达式和所述预存视觉SLAM特征的表达,得到所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,具体可以为:
根据所述实际视觉SLAM特征的表达式和所述预存视觉SLAM特征的表达式,通过特征距离计算式得到所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,所述特征距离计算式为:
其中,e(L′,L″)表示实际视觉SLAM特征与预存视觉SLAM特征之间的距离,eO表示实际视觉SLAM特征的子坐标系原点与预存视觉SLAM特征的子坐标系原点之间的距离,ed表示实际视觉SLAM特征的子坐标系方向向量与预存视觉SLAM特征的子坐标系方向向量之间的距离,en表示实际视觉SLAM特征的子坐标系法向量与预存视觉SLAM特征的子坐标系法向量之间的距离,LO′表示实际视觉SLAM特征的子坐标系原点,LO″表示预存视觉SLAM特征的子坐标系原点,表示实际视觉SLAM特征的子坐标系方向向量,表示预存视觉SLAM特征的子坐标系方向向量,表示实际视觉SLAM特征的子坐标系法向量,表示预存视觉SLAM特征的子坐标系法向量。
根据本发明实施例的一种视觉SLAM方法,根据特征距离计算式能够基于实际视觉SLAM特征的子坐标系原点、子坐标系方向向量、子坐标系法向量、以及预存视觉SLAM特征的子坐标系原点、子坐标系方向向量、子坐标系法向量,精确地计算出每对视觉SLAM特征对的两个视觉SLAM特征之间的距离,有助于提高进行视觉SLAM的精度,提高得到的视觉SLAM结果数据的准确性。
进一步的,根据本发明的一个实施例,根据所述视觉SLAM特征对的两个视觉SLAM特征之间的距离进行视觉SLAM,之前还包括:
对所述视觉SLAM特征对的两个视觉SLAM特征之间的距离进行优化调整。
根据本发明实施例的一种视觉SLAM方法,对视觉SLAM特征对的两个视觉SLAM特征之间的距离进行优化调整,能够进一步提高每对视觉SLAM特征对的两个视觉SLAM特征之间的距离的准确性,从而保证视觉SLAM的精度。
根据本发明的一个实施例,所述优化调整是指通过优化函数调整所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,得到优化后的所述视觉SLAM特征对的两个视觉SLAM特征之间的距离。
其中,所述优化函数为:
根据本发明实施例的一种视觉SLAM方法,通过视觉SLAM特征对、实际视觉SLAM特征的特征参数、预存视觉SLAM特征的特征参数、以及机器人位姿来对视觉SLAM特征对的两个视觉SLAM特征之间的距离进行优化调整,能够进一步提高视觉SLAM特征对的两个视觉SLAM特征之间的距离的精度。
进一步的,根据本发明的一个实施例,所述调整所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,还包括:
通过词袋模型根据机器人在闭合环路得到的视觉SLAM特征进行闭环检测,以减小所述机器人位姿以及所述预存视觉SLAM特征的累积误差。
需要说明的是,词袋模型可以根据机器人在闭合环路得到的且根据目标表达式统一表达后的视觉SLAM特征进行闭环检测,通过词袋模型进行闭环检测可以利用现有技术中任一种方法进行实现,在本文不作限制。
根据本发明实施例的一种视觉SLAM方法,通过词袋模型根据机器人在闭合环路得到的视觉SLAM特征进行闭环检测能够显著减小机器人位姿以及预存视觉SLAM特征的累积误差,有助于机器人更精准、快速的进行避障导航工作,从而提高得到的视觉SLAM结果数据的精度。
另一方面,一般的视觉SLAM系统包括传感器数据、视觉里程计、后端优化、回环检测、以及建图。其中,关于传感器数据,在视觉SLAM中主要为相机图像信息的读取和预处理。如果在机器人中,还可能有码盘,惯性传感器等信息的读取和同步。关于视觉里程计,视觉里程计的主要任务是估算相邻图像间相机运动以及局部地图的样子,最简单的是两张图像之间的运动关系。计算机是如何通过图像确定相机的运动的。在图像上,只能看到一个个的像素,知道他们是某些空间点在相机的成像平面投影的结果。所以必须先了解相机跟空间点的几何关系。Vo(又称为前端)能够通过相邻帧间的图像估计相机运动,并恢复场景的空间结构,称它为里程计。被称为里程计是因为它只计算相邻时刻的运动,而和再往前的过去信息没有关联。相邻时刻运动串联起来,就构成了机器人的运动轨迹,从而解决了定位问题。根据每一时刻的相机位置,计算出各像素对应的空间点的位置,就得到了地图。关于后端优化,后端优化主要是处理SLAM过程中噪声的问题。任何传感器都有噪声,所以除了要处理“如何从图像中估计出相机运动”,还要关心这个估计带有多大的噪声。前端给后端提供待优化的数据,以及这些数据的初始值,而后端负责整体的优化过程,它往往面对的只有数据,不必关系这些数据来自哪里。在视觉SLAM中,前端和计算接视觉研究领域更为相关,比如图像的特征提取与匹配等,后端则主要是滤波和非线性优化算法。关于回环检测,回环检测也可以称为闭环检测,是指机器人识别曾到达场景的能力。如果检测成功,可以显著地减小累积误差。回环检测实质上是一种检测观测数据相似性的算法。对于视觉SLAM,多数系统采用目前较为成熟的词袋模型(Bag-of-Words,BoW)。词袋模型把图像中的视觉特征(SIFT、SURF等)聚类,然后建立词典,进而寻找每个图中含有哪些“单词”(word)。也可以使用传统模式识别的方法,把回环检测建构成一个分类问题,训练分类器进行分类。关于建图,建图主要是根据估计的轨迹建立与任务要求对应的地图,在机器人学中,地图的表示主要有栅格地图、直接表征法、拓扑地图以及特征点地图这4种。而特征点地图是用有关的几何特征(如点、直线、面)表示环境,常见于视觉SLAM技术中。这种地图一般通过如GPS、UWB以及摄像头配合稀疏方式的vSLAM算法产生,优点是相对数据存储量和运算量比较小,多见于最早的SLAM算法中。
为解决上述SLAM问题,本发明实施例提供了一种视觉SLAM系统,参照图3,SLAM系统的输入为点云数据信息或者RGB-D图像(RGB图像以及深度图),然后根据RGB-D图像分别提取点特征、线特征、面特征或曼哈顿世界特征,基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,在得到多类型特征的统一表达后,对所提取特征进行数据关联得到特征对。根据机器人起始位姿和特征对依次进行粗优化和精优化后创建新的关键帧和地标,从而构建地标地图与关键帧地图。在构建地标地图与关键帧地图的同时,还会通过闭环检测进行局部优化,最终对地图以及机器人位姿进行整体优化后输出地图和机器人位姿。
需要说明的是,大多数视觉SLAM系统的工作方式是通过连续的相机帧,跟踪设置关键点,以三角算法定位其3D位置,同时使用此信息来逼近推测相机自己的姿态。简单来说,这些系统的目标是绘制与自身位置相关的环境地图。这个地图可以用于机器人系统在该环境中导航作用。与其他形式的SLAM技术不同,只需一个3D视觉摄像头,就可以做到这一点。通过跟踪摄像头视频帧中足够数量的关键点,可以快速了解传感器的方向和周围物理环境的结构。所有视觉SLAM系统都在不断的工作,以使重新投影误差(ReprojectionError)或投影点与实际点之间的差异最小化,通常是通过一种称为Bundle Adjustment(光束法平差,BA)的算法解决方案。视觉SLAM系统需要实时操作,这涉及到大量的运算,因此位置数据和映射数据经常分别进行Bundle Adjustment,但同时进行,便于在最终合并之前加快处理速度。
进一步的,在上述实施例中,视觉SLAM系统包括MonoSLAM系统、PTAM系统、ORB-SLAM系统和ORB-SLAM2系统。MonoSLAM系统是第一个实时的单目视觉SLAM系统。MonoSLAM以EKF(扩展卡尔曼滤波)为后端,追踪前端稀疏的特征点,以相机的当前状态和所有路标点为状态量,更新其均值和协方差。在EKF中,每个特征点的位置服从高斯分布,可以用一个椭球表示它的均值和不确定性,它们在某个方向上越长,说明在该方向上越不稳定。该方法的缺点:场景窄、路标数有限、稀疏特征点易丢失等。
PTAM系统提出并实现了跟踪和建图的并行化,首次区分出前后端(跟踪需要实时响应图像数据,地图优化放在后端进行),后续许多视觉SLAM系统设计也采取了类似的方法。PTAM是第一个使用非线性优化作为后端的方案,而不是滤波器的后端方案。提出了关键帧(keyframes)机制,即不用精细处理每一幅图像,而是把几个关键图像串起来优化其轨迹和地图。该方法的缺点是:场景小、跟踪容易丢失。
ORB-SLAM系统围绕ORB特征计算,包括视觉里程计与回环检测的ORB字典。ORB特征计算效率比SIFT或SURF高,又具有良好的旋转和缩放不变性。ORB-SLAM创新地使用了三个线程完成SLAM,三个线程是:实时跟踪特征点的Tracking线程,局部Bundle Adjustment的优化线程和全局Pose Graph的回环检测与优化线程。该方法的缺点:每幅图像都计算一遍ORB特征非常耗时,三线程结构给CPU带来了较重负担。稀疏特征点地图只能满足定位需求,无法提供导航、避障等功能。
ORB-SLAM2系统基于单目的ORB-SLAM做了如下贡献:第一个用于单目、双目和RGB-D的开源SLAM系统,包括闭环,重定位和地图重用;RGB-D结果显示,通过使用bundleadjustment,比基于迭代最近点(ICP)或者光度和深度误差最小化的最先进方法获得更高的精度;通过使用近距离和远距离的立体点和单目观察结果,立体效果比最先进的直接立体SLAM更准确;轻量级的本地化模式,当建图不可用时,可以有效地重新使用地图。
下面对本发明实施例提供的视觉SLAM装置进行描述,下文描述的视觉SLAM装置与上文描述的视觉SLAM方法可相互对应参照。
图4为本发明实施例提供的一种视觉SLAM装置的结构示意图。
参照图4,本发明实施例提供一种视觉SLAM装置,可以包括:
根据本发明第二方面实施例的视觉SLAM装置,包括:
特征采集模块410,用于获取多种类型的SLAM特征,SLAM特征的类型包括点特征、线特征、面特征和曼哈顿世界特征中的至少两种类型。
统一表达模块420,用于基于统一表达方式分别对每一种类型的SLAM特征进行统一表达。
视觉SLAM模块430,用于基于统一表达后的不同类型的SLAM特征进行视觉SLAM,得到视觉SLAM结果数据。
根据本发明实施例的视觉SLAM装置,通过特征采集模块获得多种类型的SLAM特征,再通过统一表达模块对每一种类型的SLAM特征进行统一表达,在通过视觉SLAM模块对统一表达多类型SLAM特征进行视觉SLAM。有利于提高不同类型的视觉SLAM特征的表达统一性,能够更加精确地表达出每个视觉SLAM特征的位姿,在通过视觉SLAM模块进行视觉SLAM时,可以根据统一表达后的多种视觉SLAM特征进行基于多视觉SLAM特征的视觉SLAM,有助于提高视觉SLAM系统的鲁棒性和精度。
进一步的,根据本发明的一个实施例,统一表达模块420中基于统一表达方式分别对每一种类型的SLAM特征进行统一表达,包括:
基于子坐标的统一表达方式分别对每一种类型的SLAM特征进行统一表达得到统一表达式,统一表达式中包括每一种类型的SLAM特征对应的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量。
进一步的,根据本发明的一个实施例,统一表达模块420可以包括:
点特征表达子模块:用于在所述视觉SLAM特征为点特征的情况下,将所述点特征的三维坐标,作为所述点特征的子坐标系原点;将SLAM系统的参考坐标系与所述点特征的三维坐标的连线方向,作为所述点特征的子坐标系方向向量;将所述点特征的坐标系方向向量与参考坐标系的Z轴所构成平面的法向量,作为所述点特征的子坐标系法向量;将所述点特征的子坐标系方向向量与所述点特征的子坐标系法向量的乘积,作为所述点特征的子坐标系正交向量;结合所述点特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成所述点特征的表达式。
进一步的,根据本发明的一个实施例,统一表达模块420可以包括:
线特征表达子模块:用于在所述视觉SLAM特征为线特征的情况下,将SLAM系统的参考坐标系的原点到所述线特征的垂足,作为所述线特征的子坐标系原点;将所述线特征的方向向量,作为所述线特征的子坐标系方向向量;将所述线特征的子坐标系方向向量与参考坐标系的Z轴所构成平面的法向量,作为所述线特征的子坐标系法向量;将所述线特征的子坐标系方向向量与所述线特征的子坐标系法向量的乘积,作为所述线特征的子坐标系正交向量;结合所述线特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成所述线特征的表达式。
进一步的,根据本发明的一个实施例,统一表达模块420可以包括:
面特征表达子模块:用于在所述视觉SLAM特征为面特征的情况下,将SLAM系统的参考坐标系的原点到所述面特征的垂足,作为所述面特征的子坐标系原点;将参考坐标系的Z轴在所述面特征上的投影方向,作为所述面特征的子坐标系方向向量;将所述面特征的法向量,作为所述面特征的子坐标系法向量;将所述面特征的子坐标系方向向量与所述面特征的子坐标系法向量的乘积,作为所述面特征的子坐标系正交向量;结合所述面特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成所述面特征的表达式。
进一步的,根据本发明的一个实施例,统一表达模块420可以包括:
曼哈顿世界特征表达子模块:用于在所述视觉SLAM特征为曼哈顿世界特征的情况下,将所述曼哈顿世界特征的三个正交平面的交点,作为所述曼哈顿世界特征的子坐标系原点;将所述曼哈顿世界特征的三个正交平面对应的法向量,分别作为所述曼哈顿世界特征的子坐标系方向向量、子坐标系法向量、子坐标系正交向量;结合所述曼哈顿世界特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,形成所述曼哈顿世界特征的表达式。
进一步的,根据本发明的一个实施例,统一表达模块420可以包括:
视觉SLAM特征匹配子模块,用于:将实际视觉SLAM特征与预存视觉SLAM特征进行匹配,得到视觉SLAM特征对。
视觉SLAM特征距离计算子模块,用于:根据所述实际视觉SLAM特征的表达式和所述预存视觉SLAM特征的表达式,得到所述视觉SLAM特征对的两个视觉SLAM特征之间的距离。
进一步的,根据本发明的一个实施例,视觉SLAM模块430可以包括:
视觉SLAM子模块,用于:根据所述视觉SLAM特征对的两个视觉SLAM特征之间的距离进行视觉SLAM,得到视觉SLAM结果数据。
进一步的,根据本发明的一个实施例,所述视觉SLAM特征距离计算子模块,具体用于:
根据所述实际视觉SLAM特征的表达式和所述预存视觉SLAM特征的表达式,得到所述实际视觉SLAM特征和预存视觉SLAM特征分别对应子坐标系原点之间的距离、子坐标系方向向量之间的距离和子坐标系法向量之间的距离;
根据所述实际视觉SLAM特征和预存视觉SLAM特征分别对应子坐标系原点之间的距离、子坐标系方向向量之间的距离和子坐标系法向量之间的距离得到所述视觉SLAM特征对的两个视觉SLAM特征之间的距离。
进一步的,根据本发明的一个实施例,视觉SLAM模块430还可以包括:
调整子模块,用于根据所述视觉SLAM特征对的两个视觉SLAM特征之间的距离进行视觉SLAM之前,通过优化函数调整所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,得到优化后的所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,其中,所述优化函数通过所述视觉SLAM特征对、实际视觉SLAM特征的特征参数、预存视觉SLAM特征的特征参数以及机器人位姿确定。
进一步的,根据本发明的一个实施例,所述视觉SLAM模块430还可以包括:
第二调整子模块,用于:通过词袋模型根据机器人在闭合环路得到的视觉SLAM特征进行闭环检测,以减小所述机器人位姿以及所述预存视觉SLAM特征的累积误差。
本发明实施例提供的视觉SLAM装置,可以进行基于多视觉SLAM特征的视觉SLAM,不同类型的视觉SLAM特征紧密耦合,可以有效解决低纹理环境下基于视觉SLAM特征的视觉SLAM系统的精度急剧下降、系统失灵等问题;可以很好的依据室内结构环境实现移动平台的定位效果和构建具有结构信息的周围环境特征,可以很好的在多种公开实验数据集上获得高精度的结果,能够实时、高效的利用匹配的点、线、面和曼哈顿世界特征对移动平台的位姿和周围的环境进行构图,并进行回环检测处理,充分利用闭环检测减少累积误差。
图5示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如下方法:
获取多种类型的SLAM特征,所述SLAM特征的类型包括点特征、线特征、面特征和曼哈顿世界特征中的至少两种类型。
基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达。
基于统一表达后的不同类型的所述SLAM特征进行视觉SLAM,得到视觉SLAM结果数据。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
获取多种类型的SLAM特征,所述SLAM特征的类型包括点特征、线特征、面特征和曼哈顿世界特征中的至少两种类型。
基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达。
基于统一表达后的不同类型的所述SLAM特征进行视觉SLAM,得到视觉SLAM结果数据。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:
获取多种类型的SLAM特征,所述SLAM特征的类型包括点特征、线特征、面特征和曼哈顿世界特征中的至少两种类型。
基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达。
基于统一表达后的不同类型的所述SLAM特征进行视觉SLAM,得到视觉SLAM结果数据。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
以上实施方式仅用于说明本发明,而非对本发明的限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行各种组合、修改或者等同替换,都不脱离本发明技术方案的精神和范围,均应涵盖在本发明技术方案的范围中。
Claims (10)
1.一种视觉SLAM方法,其特征在于,包括:
获取多种类型的SLAM特征,所述SLAM特征的类型包括点特征、线特征、面特征和曼哈顿世界特征中的至少两种类型;
基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达;
基于统一表达后的不同类型的所述SLAM特征进行视觉SLAM,得到视觉SLAM结果数据。
2.根据权利要求1所述的视觉SLAM方法,其特征在于,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
基于子坐标的统一表达方式分别对每一种类型的所述SLAM特征进行统一表达得到统一表达式,所述统一表达式中包括每一种类型的所述SLAM特征对应的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量。
3.根据权利要求2所述的视觉SLAM方法,其特征在于,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
当所述视觉SLAM特征为点特征时,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
将所述点特征的三维坐标,作为所述点特征的子坐标系原点;
将SLAM系统的参考坐标系与所述点特征的三维坐标的连线方向,作为所述点特征的子坐标系方向向量;
将所述点特征的坐标系方向向量与参考坐标系的Z轴所构成平面的法向量,作为所述点特征的子坐标系法向量;
将所述点特征的子坐标系方向向量与所述点特征的子坐标系法向量的乘积,作为所述点特征的子坐标系正交向量;
结合所述点特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,对所述点特征进行统一表达;
当所述视觉SLAM特征为线特征时,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
将SLAM系统的参考坐标系的原点到所述线特征的垂足,作为所述线特征的子坐标系原点;
将所述线特征的方向向量,作为所述线特征的子坐标系方向向量;
将所述线特征的子坐标系方向向量与参考坐标系的Z轴所构成平面的法向量,作为所述线特征的子坐标系法向量;
将所述线特征的子坐标系方向向量与所述线特征的子坐标系法向量的乘积,作为所述线特征的子坐标系正交向量;
结合所述线特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,对所述线特征进行统一表达;
当所述视觉SLAM特征为面特征时,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
将SLAM系统的参考坐标系的原点到所述面特征的垂足,作为所述面特征的子坐标系原点;
将参考坐标系的Z轴在所述面特征上的投影方向,作为所述面特征的子坐标系方向向量;
将所述面特征的法向量,作为所述面特征的子坐标系法向量;
将所述面特征的子坐标系方向向量与所述面特征的子坐标系法向量的乘积,作为所述面特征的子坐标系正交向量;
结合所述面特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,对所述面特征进行统一表达;
当所述视觉SLAM特征为曼哈顿世界特征时,所述基于统一表达方式分别对每一种类型的所述SLAM特征进行统一表达,包括:
将所述曼哈顿世界特征的三个正交平面的交点,作为所述曼哈顿世界特征的子坐标系原点;
将所述曼哈顿世界特征的三个正交平面对应的法向量,分别作为所述曼哈顿世界特征的子坐标系方向向量、子坐标系法向量、子坐标系正交向量;
结合所述曼哈顿世界特征的子坐标系原点、子坐标系方向向量、子坐标系法向量和子坐标系正交向量,对所述曼哈顿世界特征进行统一表达。
4.根据权利要求1-3任一项所述的视觉SLAM方法,其特征在于,所述基于统一表达后的不同类型的所述SLAM特征进行视觉SLAM,得到视觉SLAM结果数据,包括:
将当前观测到的实际视觉SLAM特征与预设的预存视觉SLAM特征进行匹配,得到视觉SLAM特征对;
根据所述实际视觉SLAM特征的表达式和所述预存视觉SLAM特征的表达式,得到所述视觉SLAM特征对的两个视觉SLAM特征之间的距离;
根据所述视觉SLAM特征对的两个视觉SLAM特征之间的距离进行视觉SLAM,得到视觉SLAM结果数据。
5.根据权利要求4所述的视觉SLAM方法,其特征在于,所述根据所述实际视觉SLAM特征的表达式和所述预存视觉SLAM特征的表达式,得到所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,具体为:
根据所述实际视觉SLAM特征的表达式和所述预存视觉SLAM特征的表达式,得到所述实际视觉SLAM特征和预存视觉SLAM特征分别对应子坐标系原点之间的距离、子坐标系方向向量之间的距离和子坐标系法向量之间的距离;
根据所述实际视觉SLAM特征和预存视觉SLAM特征分别对应子坐标系原点之间的距离、子坐标系方向向量之间的距离和子坐标系法向量之间的距离得到所述视觉SLAM特征对的两个视觉SLAM特征之间的距离。
6.根据权利要求4所述的视觉SLAM方法,其特征在于,所述根据所述视觉SLAM特征对的两个视觉SLAM特征之间的距离进行视觉SLAM,之前还包括:
通过优化函数调整所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,得到优化后的所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,其中,所述优化函数通过所述视觉SLAM特征对、实际视觉SLAM特征的特征参数、预存视觉SLAM特征的特征参数以及机器人位姿确定。
7.根据权利要求6所述的视觉SLAM方法,其特征在于,所述调整所述视觉SLAM特征对的两个视觉SLAM特征之间的距离,还包括:
通过词袋模型根据机器人在闭合环路得到的视觉SLAM特征进行闭环检测,以减小所述机器人位姿以及所述预存视觉SLAM特征的累积误差。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述视觉SLAM方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述视觉SLAM方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的视觉SLAM方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210530318.5A CN114972491A (zh) | 2022-05-16 | 2022-05-16 | 视觉slam方法、电子设备、存储介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210530318.5A CN114972491A (zh) | 2022-05-16 | 2022-05-16 | 视觉slam方法、电子设备、存储介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114972491A true CN114972491A (zh) | 2022-08-30 |
Family
ID=82983698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210530318.5A Pending CN114972491A (zh) | 2022-05-16 | 2022-05-16 | 视觉slam方法、电子设备、存储介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114972491A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116051815A (zh) * | 2023-03-31 | 2023-05-02 | 四川省寰宇众恒科技有限公司 | 一种基于单目摄像头的目标定位方法及系统 |
-
2022
- 2022-05-16 CN CN202210530318.5A patent/CN114972491A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116051815A (zh) * | 2023-03-31 | 2023-05-02 | 四川省寰宇众恒科技有限公司 | 一种基于单目摄像头的目标定位方法及系统 |
CN116051815B (zh) * | 2023-03-31 | 2023-06-20 | 四川省寰宇众恒科技有限公司 | 一种基于单目摄像头的目标定位方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Monocular object and plane slam in structured environments | |
CN109166149B (zh) | 一种融合双目相机与imu的定位与三维线框结构重建方法与系统 | |
CN112258618B (zh) | 基于先验激光点云与深度图融合的语义建图与定位方法 | |
CN109345588B (zh) | 一种基于Tag的六自由度姿态估计方法 | |
CN110533720B (zh) | 基于联合约束的语义slam系统及方法 | |
US20160189419A1 (en) | Systems and methods for generating data indicative of a three-dimensional representation of a scene | |
KR20150144729A (ko) | 그래디언트 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
CN113537208A (zh) | 一种基于语义orb-slam技术的视觉定位方法及系统 | |
Li et al. | Fast visual odometry using intensity-assisted iterative closest point | |
Munoz-Banon et al. | Targetless camera-lidar calibration in unstructured environments | |
Andreasson et al. | Mini-SLAM: Minimalistic visual SLAM in large-scale environments based on a new interpretation of image similarity | |
CN112419497A (zh) | 基于单目视觉的特征法与直接法相融合的slam方法 | |
Irie et al. | Target-less camera-lidar extrinsic calibration using a bagged dependence estimator | |
Canovas et al. | Onboard dynamic RGB‐D simultaneous localization and mapping for mobile robot navigation | |
CN113052907B (zh) | 一种动态环境移动机器人的定位方法 | |
Nalpantidis et al. | Stereovision-based fuzzy obstacle avoidance method | |
CN114972491A (zh) | 视觉slam方法、电子设备、存储介质及产品 | |
Li et al. | High-precision motion detection and tracking based on point cloud registration and radius search | |
Li et al. | Indoor layout estimation by 2d lidar and camera fusion | |
Zhang et al. | A stereo SLAM system with dense mapping | |
CN113570713B (zh) | 一种面向动态环境的语义地图构建方法及装置 | |
Xu et al. | DOS-SLAM: A real-time dynamic object segmentation visual SLAM system | |
Thapa et al. | A review on visual odometry techniques for mobile robots: Types and challenges | |
Akın et al. | Challenges in Determining the Depth in 2-D Images | |
Morell-Gimenez et al. | A survey of 3D rigid registration methods for RGB-D cameras |
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 |