CN111091621A - 双目视觉的同步定位与构图方法、装置、设备及存储介质 - Google Patents
双目视觉的同步定位与构图方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111091621A CN111091621A CN201911270955.8A CN201911270955A CN111091621A CN 111091621 A CN111091621 A CN 111091621A CN 201911270955 A CN201911270955 A CN 201911270955A CN 111091621 A CN111091621 A CN 111091621A
- Authority
- CN
- China
- Prior art keywords
- camera
- adjacent
- binocular
- pose
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 102
- 239000000203 mixture Substances 0.000 title claims abstract description 32
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 14
- 230000000007 visual effect Effects 0.000 claims abstract description 134
- 238000000605 extraction Methods 0.000 claims abstract description 18
- 238000004422 calculation algorithm Methods 0.000 claims description 29
- 238000013519 translation Methods 0.000 claims description 27
- 238000001514 detection method Methods 0.000 claims description 21
- 238000005457 optimization Methods 0.000 claims description 19
- 238000012546 transfer Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004807 localization Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000011084 recovery Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- 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/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本申请提供一种双目视觉的同步定位与构图方法、装置、设备及存储介质,涉及机器视觉技术领域。该方法包括:获取双目相机的相邻帧图像;对所述双目相机中每个相机的相邻帧图像进行视觉特征提取,得到所述每个相机的相邻帧图像的视觉特征;根据所述双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到所述相邻帧的相机位姿;根据所述相邻帧的相机位姿,构建地图。本申请可提高双目视觉的SLAM的定位以及构图精度。
Description
技术领域
本申请涉及机器视觉技术领域,具体而言,涉及一种双目视觉的同步定位与构图(Simultaneous Localization And Mapping,SLAM)方法、装置、设备及存储介质。
背景技术
随着机器视觉技术的不断发展,基于机器视觉的同步定位与构图(SimultaneousLocalization And Mapping,SLAM)技术的研究以及应用也越来越多。
现有的SLAM技术中,单目视觉的SLAM技术的算法相对比较多,但由于单目视觉的SLAM技术的原始数据不够全面,其精度通常不够高。因此,双目视觉的SLAM技术应运而生。但目前的双目相机的SLAM技术中,通常是对每个帧图像单独进行特征提取继而进行位姿估计。
因此,现有的双目视觉的SLAM技术进行定位以及构图的精度较差。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种双目视觉的同步定位与构图方法、装置、设备及存储介质,以解决双目视觉的SLAM技术进行定位以及构图的精度较差的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种双目视觉的同步定位与构图SLAM方法,包括:
获取双目相机的相邻帧图像;
对所述双目相机中每个相机的相邻帧图像进行视觉特征提取,得到所述每个相机的相邻帧图像的视觉特征;
根据所述双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到所述相邻帧的相机位姿;
根据所述相邻帧的相机位姿,构建地图。
可选的,所述根据所述双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到所述相邻帧的相机位姿,包括:
对所述双目相机中预设相机的相邻帧图像的视觉特征进行特征匹配;
根据特征匹配结果,从所述双目相机的相邻帧图像的视觉特征中确定所述双目相机的相邻帧图像中的目标视觉特征;
根据所述双目相机的相邻帧图像中的目标视觉特征,进行相邻帧的位姿估计,得到所述相邻帧的相机位姿。
可选的,所述相邻帧中每帧的相机位姿包括:相机平移信息以及相机转移信息;所述根据所述双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到所述相邻帧的相机位姿,包括:
根据所述双目相机的相邻帧图像的视觉特征,分别进行所述相邻帧的三角化定位,确定所述相邻帧的三维特征;
根据所述相邻帧的三维特征,确定所述相邻帧中当前帧的相机平移信息;
根据所述当前帧的相机平移信息,以及所述相邻帧中前一帧的相机转移信息,确定所述当前帧的相机转移信息。
可选的,所述对所述双目相机中每个相机的相邻帧图像进行视觉特征提取,得到所述每个相机的相邻帧图像的视觉特征,包括:
若所述双目相机的相邻帧图像中,存在无法提取视觉特征的失败帧图像,则采用所述失败帧图像的前一帧图像的视觉特征作为所述失败帧图像的视觉特征。
可选的,所述方法还包括:
采用预设的非线性优化算法,对所述相邻帧的相机位姿进行优化;
根据优化后的相机位姿,对所述地图进行更新。
可选的,所述根据优化后的相机位姿,对所述地图进行更新,包括:
根据所述优化后的相机位姿,对预设的相机位姿队列中的位姿数据,进行数据关联;所述相机位姿队列中包括:所述当前帧之前至少一帧的相机位姿数据;
根据数据关联之后的所述相机位姿队列,对所述地图进行更新。
可选的,所述方法还包括:
采用预设的回环检测算法,对所述相邻帧中当前帧的图像进行回环检测;
根据回环检测的结果,对所述当前帧之前构建的地图进行更新。
第二方面,本申请实施例还提供一种双目视觉的同步定位与构图SLAM装置,包括:
获取模块,用于获取双目相机的相邻帧图像;
特征提取模块,用于对所述双目相机中每个相机的相邻帧图像进行视觉特征提取,得到所述每个相机的相邻帧图像的视觉特征;
位姿估计模块,用于根据所述双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到所述相邻帧的相机位姿;
地图构建模块,用于根据所述相邻帧的相机位姿,构建地图。
第三方面,本申请实施例还提供一种双目视觉设备,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所提供的任一双目视觉的同步定位与构图SLAM方法。
第四方面,本申请实施例还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面所提供的任一双目视觉的同步定位与构图SLAM方法。
本申请的有益效果是:
本申请所提供的双目视觉的同步定位与构图方法、装置、设备及存储介质中,可通过获取双目相机的相邻帧图像,并对该双目相机中每个相机的相邻帧图像进行视觉特征提取,得到该每个相机的相邻帧图像的视觉特征,继而根据该双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到相邻帧的相机位姿;根据该相邻帧的相机位姿,构建地图。该实施例所提供的方法,可基于该双目相机的相邻帧图像进行视觉特征提取,基于提取的视觉特征进行相邻帧的位姿估计,继而基于估计的相机位姿构建地图,实现了基于双目视觉的定位和构图,并且通过双目相机的相邻帧的位姿估计,充分考虑了双目相机的相邻帧的位姿变换,有效提高了双目视觉的SLAM的定位以及构图精度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例提供的双目视觉的SLAM方法的流程示意图;
图2为本申请一实施例提供的双目视觉的SLAM方法中一种相机位姿估计的流程示意图;
图3为本申请一实施例提供的双目视觉的SLAM方法中另一种相机位姿估计的流程示意图;
图4为本申请一实施例提供的双目视觉的SLAM方法中一种后端优化的流程示意图;
图5为本申请实施例一实施例提供的双目视觉的SLAM方法中一种数据关联的流程示意图;
图6为本申请实施例一实施例提供的双目视觉的SLAM方法中一种回环检测的流程示意图;
图7为本申请实施例提供的一种双目视觉的SLAM装置的示意图;
图8为本申请实施例提供的一种双目视觉设备的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
本申请下述各实施例提供的双目视觉的SLAM方法、装置、设备及存储介质等,可适用于无人飞行器又称无人机、地面机器人、无人车又称无人驾驶车辆、水下机器人等支持双目视觉的机器或设备。
双目视觉,顾名思义,以双目相机也就是两个相机作为机器的“眼睛”,识别外部环境。双目相机由两个单目相机构成,每个单目相机可以为一个图像采集设备或者图像传感器或者摄像头。本申请下述实施例通过的双目视觉的SLAM方法,即采用从双目相机获取的图像进行定时以及构图。
如下通过多个实例对本申请所提供的双目视觉的SLAM方法进行示例说明。
图1为本申请一实施例提供的双目视觉的SLAM方法的流程示意图,该双目视觉的SLAM方法可由具有双目相机的设备通过软件和/或硬件的方式实现。图1所示,该方法可包括:
S101、获取双目相机的相邻帧图像。
该方法中,可获取相邻两对帧图像,其中,该相邻两对帧图像可包括:当前帧的一对帧图像,以及前一帧的一对帧图像。也就是说,对于双目相机中的每个相机,可获取相邻两帧的图像,即当前帧图像以及前一帧图像。
该双目相机可以为设置在不同位置,对应不同视觉的相机。例如,该双目相机包括:左相机,和右相机,则该相邻两对帧图像可包括如下两对帧图像:fl,k-1、fr,k-1以及fl,k、fr,k。其中,fl,k-1为左相机的前一帧图像,fr,k-1为右相机的前一帧图像,fl,k为左相机的当前帧图像,fr,k为右相机的当前帧图像。
S102、对该双目相机中每个相机的相邻帧图像进行视觉特征提取,得到该每个相机的相邻帧图像的视觉特征。
具体实现中,可采用预设的视觉特征提取算法,对该每个相机的相邻帧图像中每个帧图像均进行视觉特征提取,得到该每个帧图像的视觉特征。该每个帧图像的视觉特征可以包括:该每个帧图像中的所有或部分特征点。
在提取得到该每个相机的相邻帧图像的视觉特征的情况下,还可采用预设的特征过滤算法,对该每个相机的相邻帧图像的视觉特征进行过滤,以过滤其中的稀疏特征点,从而减小后续操作的计算量。
继续结合上述示例,该方法中,可对右相机的前一帧图像、右相机的当前帧图像、左相机的前一帧图像以及左相机的当前帧图像,分别进行特征提取,提取对应帧图像的视觉特征。
S103、根据该双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到该相邻帧的相机位姿。
该方法中,可根据该双目相机的当前帧图像的视觉特征,采用预设的位姿估计算法,进行当前帧的位姿估计,得到该当前帧的相机位姿;根据该双目相机的前一帧图像的视觉特征,采用该预设的位姿估计算法,进行前一帧的位姿估计,得到该前一帧的相机位姿;从而得到相邻帧的相机位姿。其中,相机位姿可包括:相机的位置,以及姿态。
对于双目相机的相邻帧图像的视觉特征,无论在进行当前帧的位姿估计,还是前一帧的位姿估计,还需获取该双目相机的基线,即双面相机的实际物理间距等信息,基于根据该双目相机的基线,进行相应帧的位姿估计。
该实施例中,该相邻帧的相机位姿是基于双目相机的相邻帧图像进行位姿估计所得到的,那么该相邻帧的相机位姿便可准确反应双目相机在相邻帧的移动过程的位姿变化。
S104、根据该相邻帧的相机位姿,构建地图。
该方法中,可根据该相邻帧的相机位姿,采用预设的构图算法,构建地图。由于该相邻帧的相机位姿,反应了移动过程中的相机位姿,那么基于该相邻帧的相机位姿所构建的地图即为移动过程中的相机行走地图。该构建的地图上具有该双目相机当前帧所在的位置的特征,以及该双目相机在该当前帧之前时间所在位置的特征,以及该双目相机的移动过程中的移动路线等信息。
本实施例所提供的双目视觉的SLAM方法,可获取双目相机的相邻帧图像,并对该双目相机中每个相机的相邻帧图像进行视觉特征提取,得到该每个相机的相邻帧图像的视觉特征,继而根据该双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到相邻帧的相机位姿;根据该相邻帧的相机位姿,构建地图。该实施例所提供的方法,可基于该双目相机的相邻帧图像进行视觉特征提取,基于提取的视觉特征进行相邻帧的位姿估计,继而基于估计的相机位姿构建地图,实现了基于双目视觉的定位和构图,并且通过双目相机的相邻帧的位姿估计,充分考虑了双目相机的相邻帧的位姿变换,有效提高了双目视觉的SLAM的定位以及构图精度。
在可实现的示例中,本申请在上述所示的双目视觉的SLAM方法的基础上,还可通过提供一种相机位姿估计的实现示例,对双目视觉的SLAM方法进行示例说明。如下主要以相机位姿估计的实现示例进行说明,双目视觉的SLAM方法中其余操作,也参照上述,本申请不对此限制。
图2为本申请一实施例提供的双目视觉的SLAM方法中一种相机位姿估计的流程示意图。如图2所示,如上所示的S103中根据该双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到该相邻帧的相机位姿可包括:
S201、对该双目相机中预设相机的相邻帧图像的视觉特征进行特征匹配。
该预设相机可以为该双目相机中的任一相机,如左相机或右相机。该方法中,对该预设相机的前一帧图像和当前帧图像的视觉特征,进行特征匹配,以确定该预设相机的视角内,在相邻帧中均出现的视觉特征。
移动过程中,该预设相机的前一帧图像的视觉特征,可能在当前帧图像中,也可能不在当前帧图像中,当前帧图像中具有与前一帧图像中的视觉特征相同特征,也可具有不同的视觉特征。也就是说,在相邻帧图像中,存在相同的视觉特征,通过对同一相机的相邻帧图像的视觉特征进行特征匹配,可实现了相邻帧的关联。
例如,该方法中,可对该双目相机中左相机的当前帧图像fl,k和前一帧图像fl,k-1进行特征匹配。
S202、根据特征匹配结果,从该双目相机的相邻帧图像的视觉特征中确定该双目相机的相邻帧图像中的目标视觉特征。
该特征匹配结果可包括:该预设相机的相邻帧图像中匹配成功的视觉特征,以及匹配失败的视觉特征。其中,匹配成功的视觉特征可以为在该预设相机的相邻帧图像中均出现的视觉特征;匹配失败的视觉特征可以为在该预设相机的相邻帧图像中,一个帧图像中具有,而另一个帧图像中没有的视觉特征。
双目相机中,两个相机实际为设置于不同位置的,对应不同视角的相机。因而,该方法中,可基于该预设相机的特征匹配结果,确定该预设相机的相邻帧图像中匹配成功的视觉特征,即为该预设相机的相邻帧图像中的目标视觉特征;基于该预设相机的特征匹配结果,根据匹配成功的视觉特征,从该双目相机中的另一相机的相邻帧图像的视觉特征中,确定该匹配成功的视觉特征在该另一个相机的相邻帧图像中对应的视觉特征,为该另一相机的相邻帧图像中的目标视觉特征。
该实施例中,基于特征匹配结果,确定该双目相机的相邻帧图像中的目标视觉特征,确定了双目相机的相邻帧图像中的相同特征,便于准确进行相机位姿估计。
S203、根据该双目相机的相邻帧图像中的目标视觉特征,进行相邻帧的位姿估计,得到该相邻帧的相机位姿。
该方法中,可根据该双目相机的当前帧图像的目标视觉特征,采用预设的位姿估计算法,进行当前帧的位姿估计,得到该当前帧的相机位姿;根据该双目相机的前一帧图像的目标视觉特征,采用该预设的位姿估计算法,进行前一帧的位姿估计,得到该前一帧的相机位姿;从而得到相邻帧的相机位姿。
本实施例提供的方法,可通过对预设相机的相邻帧图像的视觉特征进行特征匹配,并根据匹配结果,从该双目相机的相邻帧图像的视觉特征中确定该双目相机的相邻帧图像中的目标视觉特征,继而基于目标视觉特征进行位姿估计,可提高双目视觉的SLAM方法中位姿估计的准确度。
在其它的可实现示例中,本申请在上述所示的双目视觉的SLAM方法的基础上,还可通过提供另一种相机位姿估计的实现示例,对双目视觉的SLAM方法进行示例说明。如下主要以相机位姿估计的实现示例进行说明,双目视觉的SLAM方法中其余操作,也参照上述,本申请不对此限制。
对于相邻帧的位姿估计,估计得到的每帧的相机位姿可包括:相机平移信息,以及相机转移信息。其中,相机平移信息可用于表示双目相机的直线移动距离等信息,相机转移信息可用于表示该双目相机的移动方向等信息。需要指出是,本申请下述实现方式中的相机位姿估计,可以与上述图2所示的相机位姿估计结合,即先进行特征匹配,继而对于得到的目标视觉特征,可采用本实施例提供的方案实现,在此不再赘述。
图3为本申请一实施例提供的双目视觉的SLAM方法中另一种相机位姿估计的流程示意图。如图3所示,如上所示的S103中根据该双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到该相邻帧的相机位姿可包括:
S301、根据该双目相机的相邻帧图像的视觉特征,分别进行该相邻帧的三角化定位,确定该相邻帧的三维特征。
该方法中,可根据该双目相机的前一帧图像的视觉特征,进行前一帧的三角化定位,得到该前一帧的三维特征;根据该双目相机的当前帧的视觉特征,进行当前帧的三角化定位,得到该当前帧的三维特征。
例如,可根据左相机的前一帧图像fl,k-1以及右相机的前一帧图像fr,k-1,进行前一帧的三角化定位,得到该前一帧的三维特征Xk-1;可根据左相机的当前帧图像fl,k以及右相机的当前帧图像fr,k,进行当前帧的三角化定位,得到该当前帧的三维特征Xk。
S302、根据该相邻帧的三维特征,确定该相邻帧中当前帧的相机平移信息。
该方法中,可根据该前一帧的三维特征Xk-1,以及该当前帧的三维特征Xk,采用预设的平移信息计算方法,得到该当前帧的相机平移矩阵Tk,该相机平移矩阵中包括:当前帧的多个相机平移信息。
S303、根据该当前帧的相机平移信息,以及该相邻帧中前一帧的相机转移信息,确定该当前帧的相机转移信息。
具体实现中,可根据该当前准的相机平移信息,以及该前一帧的相机转移信息,采用预设的算法,计算得到该当前帧的相机转移信息。例如,可根据该当前准的相机平移信息,以及该前一帧的相机转移信息,采用下述公式(1)所示的乘积运算,得到该当前帧的相机转移信息。
Ck=Ck-1Tk公式(1)
其中,Ck为该当前帧的相机转移信息,Ck-1为该前一帧的相机转移信息。
本申请通过根据该双目相机的相邻帧图像的视觉特征,分别进行该相邻帧的三角化定位,确定该相邻帧的三维特征,并根据该相邻帧的三维特征,确定该相邻帧中当前帧的相机平移信息,继而根据该当前帧的相机平移信息,以及该相邻帧中前一帧的相机转移信息,确定该当前帧的相机转移信息,从而得到当前帧的相机平移信息以及相机转移信息,保证了对当前帧的相机位姿估计的准确度,从而提高了双目视觉的SLAM方法的定位以及构图的精度。
在上述任一所示的实现方式的基础上,本申请实施例还提供一种双目视觉的SLAM方法中的失败恢复实现示例。如下主要主双目视觉的SLAM方法中的失败恢复的实现示例进行说明,其余参见上述,在此不再赘述。可选的,该双目视觉的SLAM方法还可包括:
若该双目相机的相邻帧图像中,存在无法提取视觉特征的失败帧图像,则采用该失败帧图像的前一帧图像的视觉特征作为该失败帧图像的视觉特征。
从双目相机中获取的帧图像可能由于过曝或者其它因素,而无法提取视觉特征。该双目相机的相邻帧图像中,存在无法提取视觉特征的失败帧图像,为避免由于提取特征,导致的后续定位以及构图故障,本实施例的方案,可将该失败帧图像的前一帧图像的视觉特征作为该失败帧图像的视觉特征,进行后续的定位以及构图。然而,具体如何基于该失败帧图像的视觉特征进行定位以及构图,可参照上述,在此不再赘述。
在具体实现过程中,若双目相机中一个相机的当前帧图像出现失败故障,无法提取视觉特征,则可将该一个相机在前一帧图像的视觉特征作为该当前帧图像的视觉特征;若该一个相机的前一帧图像出现失败故障,无法提取视觉特征,则可将该一个相机的前一帧图像之前的帧图像的视觉特征,作为该前一帧图像的视觉特征。
以左相机的前一帧图像fl,k-1为例,若该左相机的前一帧图像fl,k-1出现失败故障,无法提取视觉特征,则可将该左相机的前二帧图像fl,k-1的视觉特征作为该左相机的前一帧图像fl,k-1的视觉特征。
本实施例的方法,可在该双目相机的相邻帧图像中,存在无法提取视觉特征的失败帧图像的情况下,则采用该失败帧图像的前一帧图像的视觉特征作为该失败帧图像的视觉特征,可避免由于提取特征,导致的后续定位以及构图故障,实现了双目视觉的SLAM方法的失败恢复。
在其它的可能实现中,在上述任一实施例的基础上,本申请实施例还提供一种双目视觉的SLAM方法中后端优化的实现示例。如下主要主双目视觉的SLAM方法中的失败恢复的实现示例进行说明,其余参见上述,在此不再赘述。图4为本申请一实施例提供的双目视觉的SLAM方法中一种后端优化的流程示意图。如图4所示,该方法在上述任一所示方法的基础上,还可包括:
S401、采用预设的非线性优化算法,对该邻帧的相机位姿进行优化。
该非线性优化算法例如可以为光束调整(Bundle Adjustment,BA)算法,又称最小重影化误差算法。当然,也可采用其它的非线性优化算法,BA算法仅为示例,本申请不对此限制。
示例地,本实施例中采用的非线性优化算法例如可以为非线性优化库中的BA算法,以及非线性优化库中坐标函数、各类损失函数等。该非线性优化库例如可以为开源代码项目的非线性优化库,如Ceres Solver。
该BA算法例如可以为如下所示:
eres::Problem problem;
problem.AddParameterBlock();
problem.SetParameterBlockConstant();
problem.AddParameterBlock(intrinsic);
ceres::LossFunction*loss_function=new ceres::HuberLoss();
ceres::CostFunction*cost_function=newceres::AutoDiffCostFunction();
problem.AddResidualBlock(cost_function,loss_function,intrinsic,extrinsics);
//Solve BA
ceres::Solver::Options ceres_config_options;
ceres_config_options.minimizer_progress_to_stdout=false;
ceres_config_options.logging_type=ceres::SILENT;
ceres_config_options.num_threads=1;
ceres_config_options.preconditioner_type=ceres::JACOBI;
ceres_config_options.linear_solver_type=ceres::SPARSE_SCHUR;
ceres_config_options.sparse_linear_algebra_library_type=ceres::EIGEN_SPARSE;
ceres::Solver::Summary summary;
ceres::Solve(ceres_config_options,&problem,&summary);
std::cout summary;
S402、根据优化后的相机位姿,对该地图进行更新。
该方法中,可基于优化后的相机位姿,采用上述非线性算法所在非线性优化库中的空间名称(namespace)类,对该地图进行更新。
非线性优化库中的空间名称(namespace)类例如可以为如下所示:
namespace SDEDI_SLAM
{class Tracking;
class Viewer;
class Map;
class MapPoint;
class LocalMapping;
class MapDrawer
class MapMaintanace;
class Frame;
class KeyFrame;
class KeyFrameVector;
class FrameDrawer;
class LoopClosing;
class FectureExtractor;
class FailRecovery;
Class DataAssociation;
}
namespace ceres
{class Problem;
Class Solver;
Class CostFunction;
class EvaluationCallback;
class LossFunction;
struct CRSMatrix;
class LocalParameterization;
}
本实施例提供的方法,通过采用预设的非线性优化算法,对该相邻帧的相机位姿进行优化,可使得后端的优化效率更高,那么根据优化后的相机位姿,对该地图进行更新的效率也更高,从而使得得到的构图也更精确。
可选的,在上述图4所示的方法中,本申请实施例还提供一种对优化后的相机位姿进行数据关联,以使得相机位姿队列中相同或相似的不同帧的位姿数据实际为一个帧的位姿数据。如下进行示例说明。图5为本申请实施例一实施例提供的双目视觉的SLAM方法中一种数据关联的流程示意图。如图5所示,该方法在上述图4所示方法的基础上,其中,S402中根据优化后的相机位姿,对该地图进行更新可包括:
S501、根据该优化后的相机位姿,对预设的相机位姿队列中的位姿数据,进行数据关联;该相机位姿队列中包括:该当前帧之前至少一帧的相机位姿数据。
具体实现中,可根据该优化后的相机位姿,将该相机位姿队列中,与该优化后的相机位姿数据的差异在预设范围内的位姿数据,替换为该优化后的位姿数据;或者,直接将该优化后的相机位姿插入该相机位姿队列中。
S502、根据数据关联之后的该相机位姿队列,对该地图进行更新。
本申请实施例提供的方法,可将根据该优化后的相机位姿,对预设的相机位姿队列中的位姿数据,进行数据关联,继而根据数据关联之后的该相机位姿进行地图更新,可提高双目视觉SLAM方法中的构图精度,便于精确导航。
可选的,在上述任一所示的方法中,本申请实施例还提供一种回环检测方案实现示例,如下进行示例说明。图6为本申请实施例一实施例提供的双目视觉的SLAM方法中一种回环检测的流程示意图。如图6所示,该方法在上述任一所示方法的基础上,该双目视觉的SLAM方法还可包括:
S601、采用预设的回环检测算法,对该相邻帧中当前帧的图像进行回环检测。
具体实现中,可采用预设的回环检测算法,对该相邻帧中当前帧的图像以及之前构建地图进行回环检测,以检测当前帧图像的场景是否为之前到达的场景,若是,则采用该当前帧图像的视觉特征的参数,对之前场景中的视觉特征的参数进行替换,保证同一场景的特征参数一致,避免了误差累计造成的偏差。
S602、根据回环检测的结果,对该当前帧之前构建的地图进行更新。
本申请实施例提供的方法,可采用预设的回环检测算法,对所述双目相机的相邻帧图像进行回环检测,并根据回环检测的结果,对该相邻帧中当前帧之前构建的地图进行更新,可提高双目视觉设备可识别到曾经到达某一场景,实现了双目视觉的SLAM方法中的构图闭环,显著的减小累积误差,便于双目视觉设备更精准、快速的进行避障导航工作。
下述对用以执行的本申请所提供的双目视觉的SLAM方法的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图7为本申请实施例提供的一种双目视觉的SLAM装置的示意图,如图7所示,该双目视觉的SLAM装置700可包括:
获取模块701,用于获取双目相机的相邻帧图像。
特征提取模块702,用于对该双目相机中每个相机的相邻帧图像进行视觉特征提取,得到该每个相机的相邻帧图像的视觉特征;
位姿估计模块703,用于根据该双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到该相邻帧的相机位姿。
地图构建模块704,用于根据该相邻帧的相机位姿,构建地图。
可选的,位姿估计模块703,具体用于对该双目相机中预设相机的相邻帧图像的视觉特征进行特征匹配;根据特征匹配结果,从该双目相机的相邻帧图像的视觉特征中确定该双目相机的相邻帧图像中的目标视觉特征;根据该双目相机的相邻帧图像中的目标视觉特征,进行相邻帧的位姿估计,得到该相邻帧的相机位姿。
可选的,该相邻帧中每帧的相机位姿包括:相机平移信息以及相机转移信息。
位姿估计模块703,具体用于根据该双目相机的相邻帧图像的视觉特征,分别进行该相邻帧的三角化定位,确定该相邻帧的三维特征;根据该相邻帧的三维特征,确定该相邻帧中当前帧的相机平移信息;根据该当前帧的相机平移信息,以及该相邻帧中前一帧的相机转移信息,确定该当前帧的相机转移信息。
可选的,该双目视觉的SLAM装置700还包括:
失败恢复模块,用于若该双目相机的相邻帧图像中,存在无法提取视觉特征的失败帧图像,则采用该失败帧图像的前一帧图像的视觉特征作为该失败帧图像的视觉特征。
可选的,该双目视觉的SLAM装置700还包括:
非线性优化模块,用于采用预设的非线性优化算法,对该相邻帧的相机位姿进行优化;
地图更新模块,用于根据优化后的相机位姿,对该地图进行更新。
可选的,该双目视觉的SLAM装置700还可包括:
数据关联模块,用于根据该优化后的相机位姿,对预设的相机位姿队列中的位姿数据,进行数据关联;该相机位姿队列中包括:该当前帧之前至少一帧的相机位姿数据;
第一地图更新模块,具体用于根据数据关联之后的该相机位姿队列,对该地图进行更新。
可选的,该双目视觉的SLAM装置700还包括:
回环检测模块,用于采用预设的回环检测算法,对该相邻帧中当前帧的图像进行回环检测。
第二地图更新模块,用于根据回环检测的结果,对该当前帧之前构建的地图进行更新。
本申请上述提供的各模块,可采用多线程技术并行实现,其也应用于视窗操作系统,也可应用于linux操作系统。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图8为本申请实施例提供的一种双目视觉设备的示意图,该双目视觉设备800包括:存储器801、处理器802。存储器801和处理器802通过总线连接。该双目视觉设备800还可包括:双目相机,该处理器802与双目相机连接,以获取双目相机的相邻帧图像。
存储器801用于存储程序,处理器802调用存储器801存储的程序,以执行上述任一所述的双目视觉的SLAM方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种双目视觉的同步定位与构图SLAM方法,其特征在于,包括:
获取双目相机的相邻帧图像;
对所述双目相机中每个相机的相邻帧图像进行视觉特征提取,得到所述每个相机的相邻帧图像的视觉特征;
根据所述双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到所述相邻帧的相机位姿;
根据所述相邻帧的相机位姿,构建地图。
2.根据权利要求1所述的方法,其特征在于,所述根据所述双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到所述相邻帧的相机位姿,包括:
对所述双目相机中预设相机的相邻帧图像的视觉特征进行特征匹配;
根据特征匹配结果,从所述双目相机的相邻帧图像的视觉特征中确定所述双目相机的相邻帧图像中的目标视觉特征;
根据所述双目相机的相邻帧图像中的目标视觉特征,进行相邻帧的位姿估计,得到所述相邻帧的相机位姿。
3.根据权利要求1所述的方法,其特征在于,所述相邻帧中每帧的相机位姿包括:相机平移信息以及相机转移信息;所述根据所述双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到所述相邻帧的相机位姿,包括:
根据所述双目相机的相邻帧图像的视觉特征,分别进行所述相邻帧的三角化定位,确定所述相邻帧的三维特征;
根据所述相邻帧的三维特征,确定所述相邻帧中当前帧的相机平移信息;
根据所述当前帧的相机平移信息,以及所述相邻帧中前一帧的相机转移信息,确定所述当前帧的相机转移信息。
4.根据权利要求1所述的方法,其特征在于,所述对所述双目相机中每个相机的相邻帧图像进行视觉特征提取,得到所述每个相机的相邻帧图像的视觉特征,包括:
若所述双目相机的相邻帧图像中,存在无法提取视觉特征的失败帧图像,则采用所述失败帧图像的前一帧图像的视觉特征作为所述失败帧图像的视觉特征。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
采用预设的非线性优化算法,对所述相邻帧的相机位姿进行优化;
根据优化后的相机位姿,对所述地图进行更新。
6.根据权利要求5所述的方法,其特征在于,所述根据优化后的相机位姿,对所述地图进行更新,包括:
根据所述优化后的相机位姿,对预设的相机位姿队列中的位姿数据,进行数据关联;所述相机位姿队列中包括:当前帧之前至少一帧的相机位姿数据;
根据数据关联之后的所述相机位姿队列,对所述地图进行更新。
7.根据权利要求1-6中任一所述的方法,其特征在于,所述方法还包括:
采用预设的回环检测算法,对所述相邻帧中当前帧的图像进行回环检测;
根据回环检测的结果,对所述当前帧之前构建的地图进行更新。
8.一种双目视觉的同步定位与构图SLAM装置,其特征在于,包括:
获取模块,用于获取双目相机的相邻帧图像;
特征提取模块,用于对所述双目相机中每个相机的相邻帧图像进行视觉特征提取,得到所述每个相机的相邻帧图像的视觉特征;
位姿估计模块,用于根据所述双目相机的相邻帧图像的视觉特征,进行相邻帧的位姿估计,得到所述相邻帧的相机位姿;
地图构建模块,用于根据所述相邻帧的相机位姿,构建地图。
9.一种双目视觉设备,其特征在于,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-7任一项所述的双目视觉的同步定位与构图SLAM方法。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述权利要求1-7任一项所述的双目视觉的同步定位与构图SLAM方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911270955.8A CN111091621A (zh) | 2019-12-11 | 2019-12-11 | 双目视觉的同步定位与构图方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911270955.8A CN111091621A (zh) | 2019-12-11 | 2019-12-11 | 双目视觉的同步定位与构图方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111091621A true CN111091621A (zh) | 2020-05-01 |
Family
ID=70394966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911270955.8A Pending CN111091621A (zh) | 2019-12-11 | 2019-12-11 | 双目视觉的同步定位与构图方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111091621A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111921885A (zh) * | 2020-08-05 | 2020-11-13 | 东南数字经济发展研究院江山分院 | 木门板材尺寸智能检测方法与装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017011793A1 (en) * | 2015-07-16 | 2017-01-19 | Google Inc. | Camera pose estimation for mobile devices |
CN107747941A (zh) * | 2017-09-29 | 2018-03-02 | 歌尔股份有限公司 | 一种双目视觉定位方法、装置及系统 |
CN107845114A (zh) * | 2017-11-10 | 2018-03-27 | 北京三快在线科技有限公司 | 地图的构建方法、装置及电子设备 |
CN107941217A (zh) * | 2017-09-30 | 2018-04-20 | 杭州迦智科技有限公司 | 一种机器人定位方法、电子设备、存储介质、装置 |
CN108682027A (zh) * | 2018-05-11 | 2018-10-19 | 北京华捷艾米科技有限公司 | 基于点、线特征融合的vSLAM实现方法及系统 |
CN109166149A (zh) * | 2018-08-13 | 2019-01-08 | 武汉大学 | 一种融合双目相机与imu的定位与三维线框结构重建方法与系统 |
CN109443320A (zh) * | 2019-01-10 | 2019-03-08 | 轻客小觅智能科技(北京)有限公司 | 基于直接法和线特征的双目视觉里程计及测量方法 |
CN109631855A (zh) * | 2019-01-25 | 2019-04-16 | 西安电子科技大学 | 基于orb-slam的高精度车辆定位方法 |
CN109741372A (zh) * | 2019-01-10 | 2019-05-10 | 哈尔滨工业大学 | 一种基于双目视觉的里程计运动估计方法 |
CN109887087A (zh) * | 2019-02-22 | 2019-06-14 | 广州小鹏汽车科技有限公司 | 一种车辆的slam建图方法及系统 |
CN110009681A (zh) * | 2019-03-25 | 2019-07-12 | 中国计量大学 | 一种基于imu辅助的单目视觉里程计位姿处理方法 |
WO2019205852A1 (zh) * | 2018-04-27 | 2019-10-31 | 腾讯科技(深圳)有限公司 | 确定图像捕捉设备的位姿的方法、装置及其存储介质 |
CN110490900A (zh) * | 2019-07-12 | 2019-11-22 | 中国科学技术大学 | 动态环境下的双目视觉定位方法及系统 |
-
2019
- 2019-12-11 CN CN201911270955.8A patent/CN111091621A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017011793A1 (en) * | 2015-07-16 | 2017-01-19 | Google Inc. | Camera pose estimation for mobile devices |
CN107747941A (zh) * | 2017-09-29 | 2018-03-02 | 歌尔股份有限公司 | 一种双目视觉定位方法、装置及系统 |
WO2019062291A1 (zh) * | 2017-09-29 | 2019-04-04 | 歌尔股份有限公司 | 一种双目视觉定位方法、装置及系统 |
CN107941217A (zh) * | 2017-09-30 | 2018-04-20 | 杭州迦智科技有限公司 | 一种机器人定位方法、电子设备、存储介质、装置 |
CN107845114A (zh) * | 2017-11-10 | 2018-03-27 | 北京三快在线科技有限公司 | 地图的构建方法、装置及电子设备 |
WO2019205852A1 (zh) * | 2018-04-27 | 2019-10-31 | 腾讯科技(深圳)有限公司 | 确定图像捕捉设备的位姿的方法、装置及其存储介质 |
CN108682027A (zh) * | 2018-05-11 | 2018-10-19 | 北京华捷艾米科技有限公司 | 基于点、线特征融合的vSLAM实现方法及系统 |
CN109166149A (zh) * | 2018-08-13 | 2019-01-08 | 武汉大学 | 一种融合双目相机与imu的定位与三维线框结构重建方法与系统 |
CN109443320A (zh) * | 2019-01-10 | 2019-03-08 | 轻客小觅智能科技(北京)有限公司 | 基于直接法和线特征的双目视觉里程计及测量方法 |
CN109741372A (zh) * | 2019-01-10 | 2019-05-10 | 哈尔滨工业大学 | 一种基于双目视觉的里程计运动估计方法 |
CN109631855A (zh) * | 2019-01-25 | 2019-04-16 | 西安电子科技大学 | 基于orb-slam的高精度车辆定位方法 |
CN109887087A (zh) * | 2019-02-22 | 2019-06-14 | 广州小鹏汽车科技有限公司 | 一种车辆的slam建图方法及系统 |
CN110009681A (zh) * | 2019-03-25 | 2019-07-12 | 中国计量大学 | 一种基于imu辅助的单目视觉里程计位姿处理方法 |
CN110490900A (zh) * | 2019-07-12 | 2019-11-22 | 中国科学技术大学 | 动态环境下的双目视觉定位方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111921885A (zh) * | 2020-08-05 | 2020-11-13 | 东南数字经济发展研究院江山分院 | 木门板材尺寸智能检测方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110322500B (zh) | 即时定位与地图构建的优化方法及装置、介质和电子设备 | |
US10636198B2 (en) | System and method for monocular simultaneous localization and mapping | |
US9286717B2 (en) | 3D modeling motion parameters | |
CN108352071B (zh) | 用于计算机视觉系统中的运动结构处理的方法 | |
CN108955718B (zh) | 一种视觉里程计及其定位方法、机器人以及存储介质 | |
WO2017008516A1 (zh) | 双摄像头相对位置计算方法、装置和设备 | |
CN108700946B (zh) | 用于并行测距和建图的故障检测和恢复的系统和方法 | |
JP4985516B2 (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
KR102367361B1 (ko) | 위치 측정 및 동시 지도화 방법 및 장치 | |
KR20190042187A (ko) | 깊이 값을 추정하는 방법 및 장치 | |
KR101926563B1 (ko) | 카메라 추적을 위한 방법 및 장치 | |
JP2019096294A (ja) | 視差推定装置及び方法 | |
US9934585B2 (en) | Apparatus and method for registering images | |
CN110349212B (zh) | 即时定位与地图构建的优化方法及装置、介质和电子设备 | |
JP2011008687A (ja) | 画像処理装置 | |
EP3786891A1 (en) | Method and system for visual localization based on dual dome cameras | |
CN113711276A (zh) | 尺度感知单目定位和地图构建 | |
CN111882655A (zh) | 三维重建的方法、装置、系统、计算机设备和存储介质 | |
US10346949B1 (en) | Image registration | |
Poling et al. | Better feature tracking through subspace constraints | |
CN111091621A (zh) | 双目视觉的同步定位与构图方法、装置、设备及存储介质 | |
CN111089579B (zh) | 异构双目slam方法、装置及电子设备 | |
KR100961616B1 (ko) | 컨투어 정합을 이용한 전방향 카메라 보정 방법 및 시스템 | |
WO2019058487A1 (ja) | 3次元復元画像処理装置、3次元復元画像処理方法及び3次元復元画像処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体 | |
KR20230060029A (ko) | 평면 검출 장치 및 방법 |
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 | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240517 |