CN107784671B - 一种用于视觉即时定位与建图的方法与*** - Google Patents
一种用于视觉即时定位与建图的方法与*** Download PDFInfo
- Publication number
- CN107784671B CN107784671B CN201711251324.2A CN201711251324A CN107784671B CN 107784671 B CN107784671 B CN 107784671B CN 201711251324 A CN201711251324 A CN 201711251324A CN 107784671 B CN107784671 B CN 107784671B
- Authority
- CN
- China
- Prior art keywords
- picture frame
- frame
- key
- information
- map
- 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
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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/08—Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请的目的是提供一种用于视觉即时定位与建图的方法与***,具体包括:确定新获取的图片帧的第一位姿信息;通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息;根据所述第二位姿信息检测所述图片帧是否为关键帧;若所述图片帧为关键帧,基于所述图片帧在所述地图中建立新的点线。本申请在现有基于点特征的vSLAM方法的基础上提出了一种全新的基于点线特征的方法,该方法获取第二位姿信息精度较高,建立的点线特征精度相应的精度有所提升,且在传统基于点特征vSLAM方法的基础上,较好地利用了线特征,因而在低纹理场景更加鲁棒。
Description
技术领域
本申请涉及智能驾驶领域,尤其涉及一种用于视觉即时定位与建图的技术。
背景技术
即时定位与地图构建(simultaneous localization and mapping,SLAM)是机器人等智能设备在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。由于其重要的理论和应用价值,即时定位与地图构建技术已被很多学者认为是实现真正自主移动机器人或智能驾驶的关键。
相比于过去采用激光雷达进行定位与建图,现在采用相机作为传感器的定位与建图方法已逐渐成为主流,称为视觉即时定位与地图构建(vSLAM)。现阶段的vSLAM方法主要包括基于特征点、最小化匹配点重投影误差的间接法及基于像素强度、最小化光测误差的直接法,这两种方法依赖于点特征的提取与匹配,能够较好地处理丰富纹理信息的场景。
发明内容
本申请的一个目的是提供一种用于视觉即时定位与建图的方法与***。
根据本申请的一个方面,提供了一种用于视觉即时定位与建图的方法,该方法包括:
确定新获取的图片帧的第一位姿信息;
通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息;
根据所述第二位姿信息检测所述图片帧是否为关键帧;
若所述图片帧为关键帧,基于所述图片帧在所述地图中建立新的点线。
根据本申请的一个方面,提供了一种用于视觉即时定位与建图的***,该***包括:
第一位姿确定模块,用于确定新获取的图片帧的第一位姿信息;
第二位姿确定模块,用于通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息;
检测模块,用于根据所述第二位姿信息检测所述图片帧是否为关键帧;
建立模块,若所述图片帧为关键帧,用于基于所述图片帧在所述地图中建立新的点线。
根据本申请的一个方面,提供了一种用于视觉即时定位与建图的设备,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行:
确定新获取的图片帧的第一位姿信息;
通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息;
根据所述第二位姿信息检测所述图片帧是否为关键帧;
若所述图片帧为关键帧,基于所述图片帧在所述地图中建立新的点线。
根据本申请的一个方面,提供了一种包括指令的计算机可读介质,所述指令在被执行时使得***进行:
确定新获取的图片帧的第一位姿信息;
通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息;
根据所述第二位姿信息检测所述图片帧是否为关键帧;
若所述图片帧为关键帧,基于所述图片帧在所述地图中建立新的点线。
与现有技术相比,本申请在现有基于点特征的vSLAM方法的基础上提出了一种全新的基于点线特征的方案,本方案通过直接法确定当前图片帧的第一位姿信息,在第一位姿信息的基础上将地图中的点线特征反投回当前图片帧所在的图像中获取更加精确的第二位姿信息,并依据第二位姿信息检测当前图片帧是否为关键帧并建立新的地图点线,由于本方案的第二位姿信息精度较高,建立的点线特征精度相应的精度有所提升。而且,该方案在传统基于点特征vSLAM方法的基础上,较好地利用了线特征,因而在低纹理场景更加鲁棒。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个实施例的一种用于视觉即时定位与建图的方法流程图;
图2示出了跟踪点周边领域选取的点;
图3示出了的图像金字塔跟踪算法;
图4示出根据本申请另一个实施例的一种用于视觉即时定位与建图的***结构图;
图5示出根据本申请各个实施例的示例性***。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在本申请的描述中,“多个”的含义是两个或者更多,除非另有明确具体的限定。
图1示出了根据本申请的一个方面的一种用于视觉即时定位与建图的方法,其中,该方法包括步骤S11、步骤S12、步骤S13及步骤S14。在步骤S11中,视觉即时定位与建图***确定新获取的图片帧的第一位姿信息;在步骤S12中,视觉即时定位与建图***通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息;在步骤S13中,视觉即时定位与建图***根据所述第二位姿信息检测所述图片帧是否为关键帧;在步骤S14中,若所述图片帧为关键帧,视觉即时定位与建图***基于所述图片帧在所述地图中建立新的点线。
具体而言,在步骤S11中,视觉即时定位与建图***确定新获取的图片帧的第一位姿信息。例如,视觉即时定位与建图***接收新的图片帧,并基于该图片帧与该图片帧的前一图片帧的关联,利用基于特征点的间接法或基于像素强度的直接法,计算该图片帧第一位姿信息,其中,第一位姿信息包括该图片帧对应的相机位姿。此处,我们采用直接法进行该图片帧对应的第一位姿信息的计算。
在步骤S12中,视觉即时定位与建图***通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息。例如,视觉即时定位与建图***根据该图片帧的第一位姿信息将地图中的点线特征投影到该图片帧中,在图片帧中确定点特征的对应点以及线特征的对应直线,并以第一位姿信息为初值,利用点特征的对应点以及线特征的对应直线计算更精确的第二位姿信息。
在步骤S13中,视觉即时定位与建图***根据所述第二位姿信息检测所述图片帧是否为关键帧。例如,视觉即时定位与建图***选取足够多的关键帧,并边缘化其中在时间或空间上距离较远的关键帧,随后根据剩下的关键帧与该图片帧的第二位姿信息确定该图片帧是否为关键帧。
在步骤S14中,若所述图片帧为关键帧,视觉即时定位与建图***基于所述图片帧在所述地图中建立新的点线。例如,若该图片帧经检测确定为关键帧,视觉即时定位与建图***将剩下的关键帧中的点特征投影至该图片帧,利用投影点周围的邻域信息确定投影点的深度信息,生成半稠密的深度图;视觉即时定位与建图***在三维空间中通过该图片帧对应的点云来拟合直线,对于点特征,采用三角化的方式恢复点的深度。
例如,视觉即时定位与建图***接收到新的图片帧,采用常速运动模型,将新的图片帧与前一图片帧进行直接图像配准。为了提高跟踪的准确性与速度,视觉即时定位与建图***在进行直接图像配准时使用图像金字塔技术,并采用从粗到细的跟踪方式,确定该图片帧的第一位姿信息。在获得第一位姿信息后,视觉即时定位与建图***将地图中的点线特征反投回该图片帧,并最小化误差模型,获得精度更高的第二位姿信息。视觉即时定位与进图***选取多个与当前帧在时间和空间上距离较近的关键帧,并基于当前帧的第二位姿信息检测当前帧是否为关键帧。若当前帧经检测确定为关键帧,视觉即时定位与建图***将选取的关键帧中的点投影到当前关键帧,利用投影点周围的邻域信息确定投影点的深度信息,生成半稠密的深度图。视觉即时定位与建图***在三维空间中通过该图片帧对应的点云来拟合直线,对于点特征,采用三角化的方式恢复点的深度,从而在三维空间中提取线特征、更新点坐标以建立新的地图点线。
在此,本领域技术人员应该能够理解,上述第一位姿信息仅为举例,现有或今后出现第一位姿信息的其他内容,如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。
在一些实施例中,在步骤S11中,视觉即时定位与建图***基于新获取图片帧的前一图片帧,确定所述图片帧的第一位姿信息。例如,视觉即时定位与建图***基于前一图片帧的第一位姿信息以及前一图片帧与当前图片帧间关键点,使用常速运动模型和图像金字塔技术以及Lukas-kanade(卢卡斯·卡纳德)光流法的流程计算当前帧的第一位姿信息。
例如,视觉即时定位与建图***接收到新的图片帧,将前一图片帧的跟踪点线特征用常速运动模型投影到当前图片帧,并以一种递归的方式建立金字塔模型,基于金字塔从粗到细的方式进行点线特征跟踪,最小化对应点的光测误差模型。在这里,为了鲁棒性,我们采用如下误差模型:
其中,Np为点周边邻域的选取,为了加速计算,视觉即时定位与建图***选取邻域内8个点进行计算(如图2)。式中,Ij[p′]表示前一图片帧在该点处的像素值,Ii[p]表示当前图片帧在该点出的像素值,ti,tj为两帧的曝光时间;ai,aj,bi,bj为光度标定得到的相机的参数;γ表示范数运算,当γ取值的时候分别是以下几种最简单的情形:
1-范数:║x║1=│x1│+│x2│+…+│xn│;
2-范数:║x║2=(│x1│2+│x2│2+…+│xn│2)1/2;
∞-范数:║x║∞=max(│x1│,│x2│,…,│xn│)。
在金字塔跟踪过程中,如图3所示,将上一层的计算结果作为初始值传递给下一层图像,这一层的图像在这个初始值的基础上,计算这一层的光流和仿射变化矩阵;再将这一层的光流和仿射矩阵作为初始值传递给下一层图像,直到传递给最后一层,即原始图像层,这一层计算出来的光流和仿射变换矩阵作为最后的光流和仿射变换矩阵的结果。在此过程中,若这一层的RMSE(root-mean-square error,均方根误差)大于上一次跟踪的两倍,则在最上层的金字塔从给定的X,Y,Z方向用27个小的旋转进行搜索,以重新初始化。
在一些实施例中,在步骤S12中,视觉即时定位与建图***基于所述第一位姿信息将地图中的点线特征投影到所述图片帧,确定所述点线特征在所述图片帧中的对应点线,根据所述第一位姿信息以及所述对应点线,确定所述图片帧的第二位姿信息。例如,视觉即时定位与建图***基于所述第一位姿信息将地图中的点线特征投影到该图片帧,并在图像平面内确定点特征的对应点,在直线投影的邻域内确定线特征的对应直线,随后,以第一位姿信息为初值,利用确定的对应点以及对应直线计算精度更高的第二位姿信息。
例如,视觉即时定位与建图***计算出第一位姿信息后,基于第一位姿信息将地图中的点线特征投影至当前图片帧,具体过程包括:1)将地图中的激活点(在时间和空间上距离当前帧较近的点)投影到当前帧,并在当前帧图像平面上匹配像素值相同且距离最近的点,作为点特征的对应点;2)将地图中的3D直线投影到当前图片帧,在直线投影的图像邻域内,用LSD(Line Segment Detector,直线检测分割)算法检测直线,作为线特征的对应直线,其中,LSD算法复杂度为O(n),n为像素数,本算法以投影直线的邻域作为搜索的先验位置;3)再以第一位姿信息为初值,利用点特征投影确定的对应点和线特征投影确定的对应直线,进行PnPL(Perspective-n-Point-Line,点线PnP)计算,计算精度更高的第二位姿信息。
在此,本领域技术人员应该能够理解,上述第二位姿信息仅为举例,现有或今后出现第二位姿信息的其他内容,如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。
在一些实施例中,在步骤S13中,视觉即时定位与建图***根据所述地图的多个关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。例如,视觉即时定位与建图***选取地图中的与当前关键帧在时间和空间相隔较近的多个关键帧,并基于该多个关键帧,和当前图片帧的第二位姿信息,检测当前图片帧所述为关键帧。
在一些实施例中,步骤S13包括子步骤S131(未示出)和子步骤S132(未示出)。在子步骤S131中,视觉即时定位与建图***根据所述地图的多个关键帧及所述图片帧的第二位姿信息,确定所述图片帧的关键帧参数;在子步骤S132中,视觉即时定位与建图***基于所述关键帧参数检测所述图片帧是否为关键帧。例如,视觉即时定位与建图***根据选取的多个关键帧和当前图片帧的第二位姿信息,确定当前图片帧的关键帧参数。视觉即时定位与建图***根据当前图片帧的关键帧参数,检测当前图片帧是否为关键帧。
在一些实施例中,所述关键帧参数包括视野变化信息、相机平移变化信息及曝光时间变化信息。
例如,视觉即时定位***根据当前帧的相关信息选择时间和空间相隔较近的多个关键帧,并基于该多个关键帧及当前图片帧的第二位姿信息确定当前图片帧的关键帧参数。其中,关键帧参数包括:
1)视野变化:
2)相机平移变化:
3)曝光时间变化:
上述1)式中f为距离度量单位,p表示当前帧的关键点的对应点的像素信息,p'表示多个关键帧的多个关键帧中的关键点的像素信息;2)式中ft为距离度量单位,p表示当前帧的关键点的位置信息,pt′为多个关键帧的关键点的投影位置信息;3)式中a为光度标定中的参数。
视觉即时定位与建图***根据这三个参数,检测当前帧是否为关键帧,例如,取三个参数的加权和与预定阈值比较。
在此,本领域技术人员应该能够理解,上述关键帧参数仅为举例,现有或今后出现关键帧参数的其他内容,如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。
在一些实施例中,在子步骤S132中,视觉即时定位与建图***确定所述关键帧参数的加权和,当所述加权和等于或大于预定阈值,确定所述所述图片帧为关键帧。例如,视觉即时定位与建图***基于多个关键帧与当前帧的第二位姿信息,确定当前图片帧的三个关键帧参数,并确定三个关键帧的加权和,若该加权和等于或大于预定阈值,则视觉即时定位与建图***确定当前图片帧为关键帧。
例如,视觉即时定位与建图***基于多个关键帧与当前帧的第二位姿信息,确定当前图片帧的三个关键帧参数,并确定三个关键帧的加权和,并将其与预定阈值比较,例如:
若该三个关键参数的加权和等于或大于预定阈值Tkf,则视觉即时定位与建图***确定当前图片帧为关键帧。
在一些实施例中,在步骤S13中,视觉即时定位与建图***从所述地图的多个关键帧中选择所述图片帧的多个参考关键帧,并根据所述多个参考关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。例如,视觉即时定位与建图***先取足够多的关键帧,随后根据当前帧的第二位姿信息,边缘化多余的关键帧,例如,去除在时间或空间上相隔较远的关键帧,将余下的关键帧作为参考关键帧。
例如,视觉即时定位与建图***先取足够多的关键帧,随后根据当前帧的第二位姿信息,去除在时间或空间上相隔较远的关键帧,将余下的多个关键帧作为多个参考关键帧。视觉即时定位与建图***基于该多个参考关键帧与当前图片帧的第二位姿信息,确定当前帧的关键帧参数,并根据该关键帧参数检测当前图片帧是否为关键帧。
在一些实施例中,该方法还包括步骤S15(未示出)。在步骤S15中,若所述图片帧为非关键帧,视觉即时定位与建图***基于所述图片帧更新所述地图中点线特征的深度信息。例如,若当前帧不为关键帧,视觉即时定位与建图***基于当前图片帧,采用一种基于概率的深度滤波器更新地图中各点以及3D直线端点的深度值。
例如,若当前帧不为关键帧,对于其他关键帧上对当前帧上深度还没有确定的点{p,u},根据第二位姿信息找到p对应的极线Lp,在极线上寻找和u最相似的点u′,通过三角测量计算得到深度x及不确定性τ,然后利用贝叶斯概率模型更新p点的深度估计。当p的深度估计收敛时,计算其三维坐标,并加入地图。
在一些实施例中,该方法还包括步骤S16(未示出)。在步骤S16中,视觉即时定位与建图***对更新后的所述地图以及所述第二位姿信息进行优化。例如,视觉即时定位与建图***建立新的地图点线后,对点线特征以及当前帧的第二位姿信息进行优化处理,优化处理包括但不限于:全局优化、局部优化等。
例如,视觉即时定位与建图***建立新的地图点线后,对点线特征以及当前帧的第二位姿信息进行优化处理。此处考虑到效率,视觉即时定位与建图***采用滑动窗口滤波器对点线特征以及第二位姿信息进行局部优化,具体包括:1)采用加权的方式优化所有点特征的测光误差和直线的几何误差;2)采用Huber误差函数,并采用基于梯度的权值,消除离群点的影响;3)采用高斯牛顿的优化方法进行优化;4)采用一阶雅克比近似保证***的一致性。
在此,本领域技术人员应该能够理解,上述优化处理仅为举例,现有或今后出现优化处理的其他内容,如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。
图4示出了根据本申请的一个方面的一种用于视觉即时定位与建图的***,其中,该***包括第一位姿确定模块11、第二位姿确定模块12、检测模块13及建立模块14。第一位姿确定模块11确定新获取的图片帧的第一位姿信息;第二位姿确定模块12通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息;检测模块13根据所述第二位姿信息检测所述图片帧是否为关键帧;若所述图片帧为关键帧,建立模块14基于所述图片帧在所述地图中建立新的点线。
具体而言,第一位姿确定模块11确定新获取的图片帧的第一位姿信息。例如,视觉即时定位与建图***接收新的图片帧,并基于该图片帧与该图片帧的前一图片帧的关联,利用基于特征点的间接法或基于像素强度的直接法,计算该图片帧第一位姿信息,其中,第一位姿信息包括该图片帧对应的相机位姿。此处,我们采用直接法进行该图片帧对应的第一位姿信息的计算。
第二位姿确定模块12通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息。例如,视觉即时定位与建图***根据该图片帧的第一位姿信息将地图中的点线特征投影到该图片帧中,在图片帧中确定点特征的对应点以及线特征的对应直线,并以第一位姿信息为初值,利用点特征的对应点以及线特征的对应直线计算更精确的第二位姿信息。
检测模块13根据所述第二位姿信息检测所述图片帧是否为关键帧。例如,视觉即时定位与建图***选取足够多的关键帧,并边缘化其中在时间或空间上距离较远的关键帧,随后根据剩下的关键帧与该图片帧的第二位姿信息确定该图片帧是否为关键帧。
若所述图片帧为关键帧,建立模块14视觉即时定位与建图***基于所述图片帧在所述地图中建立新的点线。例如,若该图片帧经检测确定为关键帧,视觉即时定位与建图***将剩下的关键帧中的点特征投影至该图片帧,膨胀生成半稠密的深度图;视觉即时定位与建图***在三维空间中提取更为准确的直线并与检测的直线关联,对于点特征,采用三角化的方式恢复点的深度。
例如,视觉即时定位与建图***接收到新的图片帧,采用常速运动模型,将新的图片帧与前一图片帧进行直接图像配准。为了提高跟踪的准确性与速度,视觉即时定位与建图***在进行直接图像配准时使用图像金字塔技术,并采用从粗到细的跟踪方式,确定该图片帧的第一位姿信息。在获得第一位姿信息后,视觉即时定位与建图***将地图中的点线特征反投回该图片帧,并最小化误差模型,获得精度更高的第二位姿信息。视觉即时定位与进图***选取多个与当前帧在时间和空间上距离较近的关键帧,并基于当前帧的第二位姿信息检测当前帧是否为关键帧。若当前帧经检测确定为关键帧,视觉即时定位与建图***将选取的关键帧中的点投影到当前关键帧,膨胀生成半稠密的深度图,并在三维空间中提取当前帧的点线特征以建立新的地图点线。视觉即时定位与建图***对地图中的点线特征以及当前帧的第二位姿信息进行优化。
在此,本领域技术人员应该能够理解,上述第一位姿信息仅为举例,现有或今后出现第一位姿信息的其他内容,如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。
在一些实施例中,第一位姿确定模块11基于新获取图片帧的前一图片帧,确定所述图片帧的第一位姿信息。例如,视觉即时定位与建图***基于前一图片帧的第一位姿信息以及前一图片帧与当前图片帧间关键点,使用常速运动模型和图像金字塔技术以及Lukas-kanade(卢卡斯·卡纳德)光流法的流程计算当前帧的第一位姿信息。
例如,视觉即时定位与建图***接收到新的图片帧,将前一图片帧的跟踪点线特征用常速运动模型投影到当前图片帧,并以一种递归的方式建立金字塔模型,基于金字塔从粗到细的方式进行点线特征跟踪,最小化对应点的光测误差模型。在这里,为了鲁棒性,我们采用如下误差模型:
其中,Np为点周边邻域的选取,为了加速计算,视觉即时定位与建图***选取邻域内8个点进行计算(如图2)。式中,Ij[p′]表示前一图片帧在该点处的像素值,Ii[p]表示当前图片帧在该点出的像素值,ti,tj为两帧的曝光时间;ai,aj,bi,bj为光度标定得到的参数;γ表示范数运算,当γ取值的时候分别是以下几种最简单的情形:
1-范数:║x║1=│x1│+│x2│+…+│xn│
2-范数:║x║2=(│x1│2+│x2│2+…+│xn│2)1/2
∞-范数:║x║∞=max(│x1│,│x2│,…,│xn│)。
在金字塔跟踪过程中,如图3所示,将上一层的计算结果作为初始值传递给下一层图像,这一层的图像在这个初始值的基础上,计算这一层的光流和仿射变化矩阵;再将这一层的光流和仿射矩阵作为初始值传递给下一层图像,直到传递给最后一层,即原始图像层,这一层计算出来的光流和仿射变换矩阵作为最后的光流和仿射变换矩阵的结果。在此过程中,若这一层的RMSE(root-mean-square error,均方根误差)大于上一次跟踪的两倍,则在最上层的金字塔从给定的X,Y,Z方向用27个小的旋转进行搜索,以重新初始化。
在一些实施例中第二位姿确定模块12基于所述第一位姿信息将地图中的点线特征投影到所述图片帧,确定所述点线特征在所述图片帧中的对应点线,根据所述第一位姿信息以及所述对应点线,确定所述图片帧的第二位姿信息。例如,视觉即时定位与建图***基于所述第一位姿信息将地图中的点线特征投影到该图片帧,并在图像平面内确定点特征的对应点,在直线投影的邻域内确定线特征的对应直线,随后,以第一位姿信息为初值,利用确定的对应点以及对应直线计算精度更高的第二位姿信息。
例如,视觉即时定位与建图***计算出第一位姿信息后,基于第一位姿信息将地图中的点线特征投影至当前图片帧,具体过程包括:1)将地图中的激活点(在时间和空间上距离当前帧较近的点)投影到当前帧,并在当前帧图像平面上匹配像素值相同且距离最近的点,作为点特征的对应点;2)将地图中的3D直线投影到当前图片帧,在直线投影的图像邻域内,用LSD(Line Segment Detector,直线检测分割)算法检测直线,作为线特征的对应直线,其中,LSD算法复杂度为O(n),n为像素数,本算法以投影直线的邻域作为搜索的先验位置;3)再以第一位姿信息为初值,利用点特征投影确定的对应点和线特征投影确定的对应直线,进行PnPL(Perspective-n-Point-Line,点线PnP)计算,计算精度更高的第二位姿信息。
在此,本领域技术人员应该能够理解,上述第二位姿信息仅为举例,现有或今后出现第二位姿信息的其他内容,如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。
在一些实施例中,检测模块13根据所述地图的多个关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。例如,视觉即时定位与建图***选取地图中的与当前关键帧在时间和空间相隔较近的多个关键帧,并基于该多个关键帧,和当前图片帧的第二位姿信息,检测当前图片帧所述为关键帧。
在一些实施例中,检测模块13包括参数确定单元S131(未示出)和检测单元S132(未示出)。参数确定单元S131根据所述地图的多个关键帧及所述图片帧的第二位姿信息,确定所述图片帧的关键帧参数;检测单元S132基于所述关键帧参数检测所述图片帧是否为关键帧。例如,视觉即时定位与建图***根据选取的多个关键帧和当前图片帧的第二位姿信息,确定当前图片帧的关键帧参数。视觉即时定位与建图***根据当前图片帧的关键帧参数,检测当前图片帧是否为关键帧。
在一些实施例中,所述关键帧参数包括视野变化信息、相机平移变化信息及曝光时间变化信息。
例如,视觉即时定位***根据当前帧的相关信息选择时间和空间相隔较近的多个关键帧,并基于该多个关键帧及当前图片帧的第二位姿信息确定当前图片帧的关键帧参数。其中,关键帧参数包括:
4)视野变化:
5)相机平移变化:
6)曝光时间变化:
上述1)式中f为距离度量单位,p表示当前帧的关键点的对应点的像素信息,p'表示多个关键帧的多个关键帧中的关键点的像素信息;2)式中ft为距离度量单位,p表示当前帧的关键点的位置信息,pt′为多个关键帧的关键点的投影位置信息;3)式中a为光度标定中的参数。
视觉即时定位与建图***根据这三个参数,检测当前帧是否为关键帧,例如,取三个参数的加权和与预定阈值比较。
在此,本领域技术人员应该能够理解,上述关键帧参数仅为举例,现有或今后出现关键帧参数的其他内容,如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。
在一些实施例中,检测单元S132确定所述关键帧参数的加权和,当所述加权和等于或大于预定阈值,确定所述所述图片帧为关键帧。例如,视觉即时定位与建图***基于多个关键帧与当前帧的第二位姿信息,确定当前图片帧的三个关键帧参数,并确定三个关键帧的加权和,若该加权和等于或大于预定阈值,则视觉即时定位与建图***确定当前图片帧为关键帧。
例如,视觉即时定位与建图***基于多个关键帧与当前帧的第二位姿信息,确定当前图片帧的三个关键帧参数,并确定三个关键帧的加权和,并将其与预定阈值比较,例如:
若该三个关键参数的加权和等于或大于预定阈值Tkf,则视觉即时定位与建图***确定当前图片帧为关键帧。
在一些实施例中,检测模块13从所述地图的多个关键帧中选择所述图片帧的多个参考关键帧,并根据所述多个参考关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。例如,视觉即时定位与建图***先取足够多的关键帧,随后根据当前帧的第二位姿信息,边缘化多余的关键帧,例如,去除在时间或空间上相隔较远的关键帧,将余下的关键帧作为参考关键帧。
例如,视觉即时定位与建图***先取足够多的关键帧,随后根据当前帧的第二位姿信息,去除在时间或空间上相隔较远的关键帧,将余下的多个关键帧作为多个参考关键帧。视觉即时定位与建图***基于该多个参考关键帧与当前图片帧的第二位姿信息,确定当前帧的关键帧参数,并根据该关键帧参数检测当前图片帧是否为关键帧。
在一些实施例中,该***还包括更新模块S15(未示出)。若所述图片帧为非关键帧,更新模块S15基于所述图片帧更新所述地图中点线特征的深度信息。例如,若当前帧不为关键帧,视觉即时定位与建图***基于当前图片帧,采用一种基于概率的深度滤波器更新地图中各点以及3D直线端点的深度值。
例如,若当前帧不为关键帧,对于其他关键帧上对r上深度还没有确定的点{p,u},根据第二位姿信息找到p对应的极线Lp,在极线上寻找和u最相似的点u′,通过三角测量计算得到深度x及不确定性τ,然后利用贝叶斯概率模型更新p点的深度估计。当p的深度估计收敛时,计算其三维坐标,并加入地图。
在一些实施例中,该***还包括优化模块S16(未示出)。优化模块S16对更新后的所述地图以及所述第二位姿信息进行优化。例如,视觉即时定位与建图***建立新的地图点线后,对点线特征以及当前帧的第二位姿信息进行优化处理,优化处理包括但不限于:全局优化、局部优化等。
例如,视觉即时定位与建图***建立新的地图点线后,对点线特征以及当前帧的第二位姿信息进行优化处理。此处考虑到效率,视觉即时定位与建图***采用滑动窗口滤波器对点线特征以及第二位姿信息进行局部优化,具体包括:1)采用加权的方式优化所有点特征的测光误差和直线的几何误差;2)采用Huber误差函数,并采用基于梯度的权值,消除离群点的影响;3)采用高斯牛顿的优化方法进行优化;4)采用一阶雅克比近似保证***的一致性。
在此,本领域技术人员应该能够理解,上述优化处理仅为举例,现有或今后出现优化处理的其他内容,如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
如图5所示在一些实施例中,***300能够作为以上各图所示的实施例或其他所述实施例中的任意一个计算机设备。在一些实施例中,***300可包括具有指令的一个或多个计算机可读介质(例如,***存储器或NVM/存储设备320)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器305)。
对于一个实施例,***控制模块310可包括任意适当的接口控制器,以向(一个或多个)处理器305中的至少一个和/或与***控制模块310通信的任意适当的设备或组件提供任意适当的接口。
***控制模块310可包括存储器控制器模块330,以向***存储器315提供接口。存储器控制器模块330可以是硬件模块、软件模块和/或固件模块。
***存储器315可被用于例如为***300加载和存储数据和/或指令。对于一个实施例,***存储器315可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,***存储器315可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,***控制模块310可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备320及(一个或多个)通信接口325提供接口。
例如,NVM/存储设备320可被用于存储数据和/或指令。NVM/存储设备320可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备320可包括在物理上作为***300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备320可通过网络经由(一个或多个)通信接口325进行访问。
(一个或多个)通信接口325可为***300提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。***300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
对于一个实施例,(一个或多个)处理器305中的至少一个可与***控制模块310的一个或多个控制器(例如,存储器控制器模块330)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器305中的至少一个可与***控制模块310的一个或多个控制器的逻辑封装在一起以形成***级封装(SiP)。对于一个实施例,(一个或多个)处理器305中的至少一个可与***控制模块310的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器305中的至少一个可与***控制模块310的一个或多个控制器的逻辑集成在同一模具上以形成片上***(SoC)。
在各个实施例中,***300可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,***300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,***300包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个***传送到另一***的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机***使用的计算机可读信息/数据。
在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
在权利要求书中规定了各个实施例的各个方面。在下列编号条款中规定了各个实施例的这些和其他方面:
1.一种用于视觉即时定位与建图的方法,其中,该方法包括:
确定新获取的图片帧的第一位姿信息;
通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息;
根据所述第二位姿信息检测所述图片帧是否为关键帧;
若所述图片帧为关键帧,基于所述图片帧在所述地图中建立新的点线。
2.根据条款1所述的方法,其中,所述确定新获取的图片帧的第一位姿信息,包括:
基于新获取图片帧的前一图片帧,确定所述图片帧的第一位姿信息。
3.根据条款1所述的方法,其中,所述通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息,包括:
基于所述第一位姿信息将地图中的点线特征投影到所述图片帧,确定所述点线特征在所述图片帧中的对应点线;
根据所述第一位姿信息以及所述对应点线,确定所述图片帧的第二位姿信息。
4.根据条款1所述的方法,其中,所述根据所述第二位姿信息检测所述图片帧是否为关键帧,包括:
根据所述地图的多个关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。
5.根据条款4所述的方法,其中,所述根据所述地图的多个关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧,包括:
根据所述地图的多个关键帧及所述图片帧的第二位姿信息,确定所述图片帧的关键帧参数;
基于所述关键帧参数检测所述图片帧是否为关键帧。
6.根据条款5所述的方法,其中,所述关键帧参数包括视野变化信息、相机平移变化信息及曝光时间变化信息。
7.根据条款6所述的方法,其中,所述基于所述关键帧参数检测所述图片帧是否为关键帧包括:
确定所述关键帧参数的加权和;
当所述加权和等于或大于预定阈值,确定所述图片帧为关键帧。
8.根据条款4所述的方法,其中,所述根据所述地图的多个关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧,包括:
从所述地图的多个关键帧中选择所述图片帧的多个参考关键帧;
根据所述多个参考关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。
9.根据条款1所述的方法,其中,所述方法还包括:
若所述图片帧为非关键帧,基于所述图片帧更新所述地图中点线特征的深度信息。
10.根据条款1所述的方法,其中,所述方法还包括:
对更新后的所述地图以及所述第二位姿信息进行优化。
11.一种用于视觉即时定位与建图的***,其中,该***包括:
第一位姿确定模块,用于确定新获取的图片帧的第一位姿信息;
第二位姿确定模块,用于通过基于所述第一位姿信息将地图中点线特征投影至所述图片帧,确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息;
检测模块,用于根据所述第二位姿信息检测所述图片帧是否为关键帧;
建立模块,若所述图片帧为关键帧,用于基于所述图片帧在所述地图中建立新的点线。
12.根据条款11所述的***,其中,所述第一位姿确定模块用于:
基于新获取图片帧的前一图片帧,确定所述图片帧的第一位姿信息。
13.根据条款11所述的***,其中,所述第二位姿确定模块用于:
基于所述第一位姿信息将地图中的点线特征投影到所述图片帧,确定所述点线特征在所述图片帧中的对应点线;
根据所述第一位姿信息以及所述对应点线,确定所述图片帧的第二位姿信息。
14.根据条款11所述的***,其中,所述检测模块用于:
根据所述地图的多个关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。
15.根据条款14所述的***,其中,所述检测模块包括:
参数确定单元,用于根据所述地图的多个关键帧及所述图片帧的第二位姿信息,确定所述图片帧的关键帧参数;
检测单元,用于基于所述关键帧参数检测所述图片帧是否为关键帧。
16.根据条款15所述的***,其中,所述关键帧参数包括视野变化信息、相机平移变化信息及曝光时间变化信息。
17.根据条款16所述的***,其中,所述检测单元用于:
确定所述关键帧参数的加权和;
当所述加权和等于或大于预定阈值,确定所述图片帧为关键帧。
18.根据条款14所述的***,其中,所述检测模块用于:
从所述地图的多个关键帧中选择所述图片帧的多个参考关键帧;
根据所述多个参考关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。
19.根据条款11所述的***,其中,所述***还包括:
更新模块,若所述图片帧为非关键帧,用于基于所述图片帧更新所述地图中点线特征的深度信息。
20.根据条款11所述的***,其中,所述***还包括:
优化模块,用于对更新后的所述地图以及所述第二位姿信息进行优化。
21.一种用于视觉即时定位与建图的设备,其中,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如条款1至10中任一项所述的方法。
22.一种包括指令的计算机可读介质,所述指令在被执行时使得***进行以下如条款1至10中任一项所述的方法。
Claims (20)
1.一种用于视觉即时定位与建图的方法,其中,该方法包括:
确定新获取的图片帧的第一位姿信息;
基于所述第一位姿信息分别将地图中点特征和线特征投影至所述图片帧;
基于所述点特征,在所述图片帧平面上匹配像素值相同且距离最近的点作为点特征的对应点,基于所述线特征,在直线投影的图像邻域内检测直线,作为线特征的对应直线,基于所述对应点和所述对应直线确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息;
根据所述第二位姿信息检测所述图片帧是否为关键帧;
若所述图片帧为关键帧,基于所述图片帧在所述地图中建立新的点线。
2.根据权利要求1所述的方法,其中,所述确定新获取的图片帧的第一位姿信息,包括:
基于新获取图片帧的前一图片帧,确定所述图片帧的第一位姿信息。
3.根据权利要求1所述的方法,其中,所述根据所述第二位姿信息检测所述图片帧是否为关键帧,包括:
根据所述地图的多个关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。
4.根据权利要求3所述的方法,其中,所述根据所述地图的多个关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧,包括:
根据所述地图的多个关键帧及所述图片帧的第二位姿信息,确定所述图片帧的关键帧参数;
基于所述关键帧参数检测所述图片帧是否为关键帧。
5.根据权利要求4所述的方法,其中,所述关键帧参数包括视野变化信息、相机平移变化信息及曝光时间变化信息。
6.根据权利要求5所述的方法,其中,所述基于所述关键帧参数检测所述图片帧是否为关键帧包括:
确定所述关键帧参数的加权和;
当所述加权和等于或大于预定阈值,确定所述图片帧为关键帧。
7.根据权利要求3所述的方法,其中,所述根据所述地图的多个关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧,包括:
从所述地图的多个关键帧中选择所述图片帧的多个参考关键帧;
根据所述多个参考关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。
8.根据权利要求1所述的方法,其中,所述方法还包括:
若所述图片帧为非关键帧,基于所述图片帧更新所述地图中点线特征的深度信息。
9.根据权利要求1所述的方法,其中,所述方法还包括:
对更新后的所述地图以及所述第二位姿信息进行优化。
10.一种用于视觉即时定位与建图的***,其中,该***包括:
第一位姿确定模块,用于确定新获取的图片帧的第一位姿信息;
第二位姿确定模块,用于基于所述第一位姿信息分别将地图中点特征和线特征投影至所述图片帧;基于所述点特征,在所述图片帧平面上匹配像素值相同且距离最近的点作为对应点,基于所述线特征,在直线投影的图像邻域内检测直线,作为线特征的对应直线,基于所述对应点和所述对应直线确定所述图片帧的第二位姿信息,其中,所述第二位姿信息的精确度高于所述第一位姿信息;
检测模块,用于根据所述第二位姿信息检测所述图片帧是否为关键帧;
建立模块,若所述图片帧为关键帧,用于基于所述图片帧在所述地图中建立新的点线。
11.根据权利要求10所述的***,其中,所述第一位姿确定模块用于:
基于新获取图片帧的前一图片帧,确定所述图片帧的第一位姿信息。
12.根据权利要求10所述的***,其中,所述检测模块用于:
根据所述地图的多个关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。
13.根据权利要求12所述的***,其中,所述检测模块包括:
参数确定单元,用于根据所述地图的多个关键帧及所述图片帧的第二位姿信息,确定所述图片帧的关键帧参数;
检测单元,用于基于所述关键帧参数检测所述图片帧是否为关键帧。
14.根据权利要求13所述的***,其中,所述关键帧参数包括视野变化信息、相机平移变化信息及曝光时间变化信息。
15.根据权利要求14所述的***,其中,所述检测单元用于:
确定所述关键帧参数的加权和;
当所述加权和等于或大于预定阈值,确定所述图片帧为关键帧。
16.根据权利要求12所述的***,其中,所述检测模块用于:
从所述地图的多个关键帧中选择所述图片帧的多个参考关键帧;
根据所述多个参考关键帧以及所述图片帧的第二位姿信息,检测所述图片帧是否为关键帧。
17.根据权利要求10所述的***,其中,所述***还包括:
更新模块,若所述图片帧为非关键帧,用于基于所述图片帧更新所述地图中点线特征的深度信息。
18.根据权利要求10所述的***,其中,所述***还包括:
优化模块,用于对更新后的所述地图以及所述第二位姿信息进行优化。
19.一种用于视觉即时定位与建图的设备,其中,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至9中任一项所述的方法。
20.一种包括指令的计算机可读介质,所述指令在被执行时使得***进行以下如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711251324.2A CN107784671B (zh) | 2017-12-01 | 2017-12-01 | 一种用于视觉即时定位与建图的方法与*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711251324.2A CN107784671B (zh) | 2017-12-01 | 2017-12-01 | 一种用于视觉即时定位与建图的方法与*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107784671A CN107784671A (zh) | 2018-03-09 |
CN107784671B true CN107784671B (zh) | 2021-01-29 |
Family
ID=61429839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711251324.2A Active CN107784671B (zh) | 2017-12-01 | 2017-12-01 | 一种用于视觉即时定位与建图的方法与*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107784671B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111179162B (zh) * | 2018-11-12 | 2023-10-24 | 北京魔门塔科技有限公司 | 一种特殊环境下的定位初始化方法及车载终端 |
CN111209353B (zh) * | 2018-11-21 | 2024-06-14 | 驭势科技(北京)有限公司 | 一种视觉定位地图加载方法、装置、***和存储介质 |
CN109712170B (zh) * | 2018-12-27 | 2021-09-07 | 广东省智能制造研究所 | 基于视觉惯性里程计的环境对象追踪方法和装置 |
CN109443320A (zh) * | 2019-01-10 | 2019-03-08 | 轻客小觅智能科技(北京)有限公司 | 基于直接法和线特征的双目视觉里程计及测量方法 |
CN112013844B (zh) * | 2019-05-31 | 2022-02-11 | 北京小米智能科技有限公司 | 建立室内环境地图的方法及装置 |
CN110361005B (zh) * | 2019-06-26 | 2021-03-26 | 达闼机器人有限公司 | 定位方法、定位装置、可读存储介质及电子设备 |
CN110647609B (zh) * | 2019-09-17 | 2023-07-18 | 上海图趣信息科技有限公司 | 视觉地图定位方法及*** |
CN111060948B (zh) * | 2019-12-14 | 2021-10-29 | 深圳市优必选科技股份有限公司 | 一种定位方法、装置、头盔及计算机可读存储介质 |
CN113284224B (zh) * | 2021-04-20 | 2024-06-18 | 北京行动智能科技有限公司 | 基于单纯码的自动建图方法和装置、定位方法及设备 |
CN113298014B (zh) * | 2021-06-09 | 2021-12-17 | 安徽工程大学 | 基于逆向索引关键帧选取策略的闭环检测方法、存储介质及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101739996B1 (ko) * | 2010-11-03 | 2017-05-25 | 삼성전자주식회사 | 이동 로봇 및 이동 로봇의 위치 인식 및 지도 작성 방법 |
CN104537709B (zh) * | 2014-12-15 | 2017-09-29 | 西北工业大学 | 一种基于位姿变化的实时三维重建关键帧确定方法 |
CN106446815B (zh) * | 2016-09-14 | 2019-08-09 | 浙江大学 | 一种同时定位与地图构建方法 |
CN106909877B (zh) * | 2016-12-13 | 2020-04-14 | 浙江大学 | 一种基于点线综合特征的视觉同时建图与定位方法 |
CN107193279A (zh) * | 2017-05-09 | 2017-09-22 | 复旦大学 | 基于单目视觉和imu信息的机器人定位与地图构建*** |
-
2017
- 2017-12-01 CN CN201711251324.2A patent/CN107784671B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107784671A (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107784671B (zh) | 一种用于视觉即时定位与建图的方法与*** | |
CN107909612B (zh) | 一种基于3d点云的视觉即时定位与建图的方法与*** | |
CN110322500B (zh) | 即时定位与地图构建的优化方法及装置、介质和电子设备 | |
CN108717710B (zh) | 室内环境下的定位方法、装置及*** | |
CN110657803B (zh) | 机器人定位方法、装置以及存储装置 | |
CN112219222B (zh) | 用于3d数据的几何形状表示的运动补偿的方法、装置及*** | |
CN111311684B (zh) | 一种进行slam初始化的方法与设备 | |
US8755630B2 (en) | Object pose recognition apparatus and object pose recognition method using the same | |
US10706567B2 (en) | Data processing method, apparatus, system and storage media | |
JP6283152B2 (ja) | ハンドヘルド測地デバイスによるグラフィック支援遠隔位置測定 | |
CN111094895B (zh) | 用于在预构建的视觉地图中进行鲁棒自重新定位的***和方法 | |
US20150269441A1 (en) | Context-aware tracking of a video object using a sparse representation framework | |
CN110349212B (zh) | 即时定位与地图构建的优化方法及装置、介质和电子设备 | |
CN110660098B (zh) | 基于单目视觉的定位方法和装置 | |
CN108829116B (zh) | 基于单目摄像头的避障方法及设备 | |
US20170169603A1 (en) | Method and apparatus for creating 3-dimensional model using volumetric closest point approach | |
CN112673277B (zh) | 用于雷达应用的运动辅助泄漏去除 | |
CN108520543B (zh) | 一种对相对精度地图进行优化的方法、设备及存储介质 | |
Raza et al. | Comparing and evaluating indoor positioning techniques | |
WO2023035301A1 (en) | A camera calibration method | |
CN111161347A (zh) | 一种进行slam初始化的方法与设备 | |
CN115205128A (zh) | 基于结构光的深度相机温漂校正方法、***、设备及介质 | |
CN112233148A (zh) | 目标运动的估计方法、设备及计算机存储介质 | |
US20220114813A1 (en) | Detecting obstacle | |
US20240029350A1 (en) | Computing apparatus and model generation method |
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 |