一种基于3D点云的视觉即时定位与建图的方法与系统与流程

文档序号:14176642阅读:406来源:国知局
一种基于3D点云的视觉即时定位与建图的方法与系统与流程

本申请涉及智能驾驶领域,尤其涉及一种基于3d点云的视觉即时定位与建图的技术。



背景技术:

即时定位与地图构建(simultaneouslocalizationandmapping,slam)是机器人等智能设备在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。由于其重要的理论和应用价值,即时定位与地图构建技术已被很多学者认为是实现真正自主移动机器人或智能驾驶的关键。

相比于过去采用激光雷达进行定位与建图,现在采用相机作为传感器的定位与建图方法已逐渐成为主流,称为视觉即时定位与地图构建(vslam)。现阶段的vslam方法主要包括基于特征点、最小化匹配点重投影误差的间接法及基于像素强度、最小化光测误差的直接法,这两种方法依赖于点特征的提取与匹配,能够较好地处理丰富纹理信息的场景。



技术实现要素:

本申请的一个目的是提供一种基于3d点云的视觉即时定位与建图的方法与系统。

根据本申请的一个方面,提供了一种用于视觉即时定位与建图的方法,该方法包括:

确定新获取的图片帧的相机位姿信息;

基于所述相机位姿信息检测所述图片帧是否为关键帧;

若所述图片帧为关键帧,根据所述图片帧对应的3d点云拟合生成地图中的3d直线。

根据本申请的一个方面,提供了一种用于视觉即时定位与建图的系统,该系统包括:

位姿确定模块,用于确定新获取的图片帧的相机位姿信息;

关键帧检测模块,用于基于所述相机位姿信息检测所述图片帧是否为关键帧;

直线拟合模块,若所述图片帧为关键帧,用于根据所述图片帧对应的3d点云拟合生成地图中的3d直线。

根据本申请的一个方面,提供了一种用于视觉即时定位与建图的设备,该设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行:

确定新获取的图片帧的相机位姿信息;

基于所述相机位姿信息检测所述图片帧是否为关键帧;

若所述图片帧为关键帧,根据所述图片帧对应的3d点云拟合生成地图中的3d直线。

根据本申请的一个方面,提供了一种包括指令的计算机可读介质,所述指令在被执行时使得系统进行:

确定新获取的图片帧的相机位姿信息;

基于所述相机位姿信息检测所述图片帧是否为关键帧;

若所述图片帧为关键帧,根据所述图片帧对应的3d点云拟合生成地图中的3d直线。

与现有技术相比,本申请在现有基于点特征的vslam方法的基础上提出了一种全新的基于点线特征的方案,本方案通过直接法提取的特征点在边缘处梯度变化较明显,有利于在三维空间中提取直线;而且,在三维空间的点云中检测直线,不仅减少了不匹配直线的检测,还能够省略直线三角化的计算。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一个实施例的一种用于视觉即时定位与建图的方法流程图;

图2示出了图1中一个步骤的子步骤;

图3示出根据本申请一个实施例的一种用于视觉即时定位与建图的系统结构图;

图4示出根据本申请各实施例的示例性系统。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

本申请所指设备包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于任何一种可与用户进行人机交互(例如通过触摸板进行人机交互)的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、ios操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(asic)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、嵌入式设备等。所述网络设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(cloudcomputing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、vpn网络、无线自组织网络(adhoc网络)等。优选地,所述设备还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的程序。

当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

在本申请的描述中,“多个”的含义是两个或者更多,除非另有明确具体的限定。

图1示出了根据本申请的一种用于视觉即时定位与建图的方法,该方法包括步骤s11、步骤s12和步骤s13。在步骤s11中,视觉即时定位与建图系统确定新获取的图片帧的相机位姿信息;在步骤s12中,视觉即时定位与建图系统基于所述相机位姿信息检测所述图片帧是否为关键帧;在步骤s13中,若所述图片帧为关键帧,视觉即时定位与建图系统根据所述图片帧对应的3d点云拟合生成地图中的3d直线。

具体而言,在步骤s11中,视觉即时定位与建图系统确定新获取的图片帧的相机位姿信息。例如,视觉即时定位与建图系统接收新的图片帧,基于该图片帧与其他帧间的特征点进行匹配,并利用匹配结果通过最小化重投影误差,来获取当前图片帧的相机位姿信息。又如,视觉即时定位与建图系统接收新的图片帧,通过将新的图片帧与该图片帧的前一图片帧进行直接图像配准,使用图像金字塔技术,并采用从粗到细的跟踪方式,确定该图片帧的信息相机位姿信息。还如,视觉即时定位与建图系统将前两例获取的相机位姿信息作为初值,将地图中的点线特征反投回图像中,获取更加精确的相机位姿信息,本方案的实施例中以该方法为例获取精度较高的相机位姿信息。

在步骤s12中,视觉即时定位与建图系统基于所述相机位姿信息检测所述图片帧是否为关键帧。例如,视觉即时定位与建图系统根据当前图片帧的相机位姿信息以及其他关键帧间的相关信息检测该图片帧是否为关键帧。

在步骤s13中,若所述图片帧为关键帧,视觉即时定位与建图系统根据所述图片帧对应的3d点云拟合生成地图中的3d直线。例如,若图片帧经检测确定为关键帧,则视觉即时定位与建图系统根据图片帧的相机位姿将地图中的点线投影到该图片帧生成对应的3d点云,并根据该3d点云拟合生成地图中的3d直线。

例如,视觉即时定位与建图系统接收一张新的图片帧,根据该图片帧与其他图片帧的联系,通过基于像素强度的直接法或基于特征点间接法获取当前图片帧的初始相机位姿信息,并以该初始相机位姿信息为初值,将地图中的点线特征投影到当前图片帧,根据投影点线特征对应的匹配点线特征进行计算,获取精度更高的精确位姿,其中,匹配点特征为距离投影点特征最近的对应点,匹配线特征为投影线特征邻域内用lsd(linesegmentdetector,直线检测分割)算法检测到的直线。视觉即时定位与建图系统选取多个与当前帧在时间和空间上距离较近的关键帧,并基于当前帧的相机位姿信息与多个关键帧的关联检测当前帧是否为关键帧。若当前帧经检测确定为关键帧,视觉即时定位与建图系统将多个关键帧中的关键点投影到当前关键帧,利用投影点周围的邻域信息确定投影点的深度,生成半稠密的深度图,得到该图片帧对应的3d点云。视觉即时定位与建图系统采用ransac(randomsampleconsensus,随机抽样一致性)算法在三维空间中利用当前图片帧的3d点云拟合3d直线,在该过程中为了考虑不确定性的影响,计算采用马氏距离,随后,视觉即时定位与建图系统在内点中用最小二乘法恢复更为准确的直线,并删除对应的内点,恢复过程迭代运行直至提取不出直线为止。

在一些实施例中,该方法还包括步骤s14(未示出)。在步骤s14中,视觉即时定位与建图系统对所述地图中的点线特征以及所述相机位姿信息进行优化。例如,视觉即时定位系统对地图中的点线特征以及当前帧的相机位姿信息进行优化,优化方法包括但不限于:全局优化,局部优化。

例如,视觉即时定位与建图系统建立新的地图点线后,对地图中的点线特征以及当前帧的第二位姿信息进行优化处理。此处考虑到效率,视觉即时定位与建图系统采用滑动窗口滤波器对点线特征以及第二位姿信息进行局部优化,具体包括:

1)对于点线特征以及第二位姿信息中的像素值,视觉即时定位与建图系统采用加权的方式优化多有点特征的测光误差和直线的几何误差,其中,点的测光误差包括各投影点到图像中对应点的空间距离误差,直线的结合误差包括投影直线到图像中对应直线间的空间距离误差;

2)采用huber误差函数,并采用基于梯度的权值,消除离群点的影响,其中,权值公式为:

式中,wp为基于梯度的误差的权值,c为常量,为像素值的梯度变化,

例如,当|p|≤δ,则

当|p|>δ,则

其中,δ为一个阈值,用来判断不同大小的误差所对应的目标函数公式;

3)采用高斯牛顿的优化方法进行优化;

4)采用一阶雅克比近似保证系统的一致性。

在一些实施例中,步骤s13还包括子步骤s133(未示出),在子步骤s133中,视觉即时定位与建图系统根据所述3d直线在所述图片帧中的投影区域确定与所述3d直线关联的2d直线;其中,该方法还包括步骤s15(未示出),在步骤s15中,视觉即时定位与建图系统根据所述3d直线及与所述3d直线关联的2d直线呈现所述地图。例如,视觉即时定位与建图系统根据当前图片帧对应的3d点云拟合生成对应的3d直线后,在当前图片帧图像上3d直线的投影邻域内检测2d直线,将3d直线与对应的2d直线关联起来;随后,视觉即时定位与建图系统根据该关联关系呈现所述地图中的3d直线。

例如,视觉即时定位与建图系统根据当前图片帧对应的3d点云拟合生成对应的3d直线后,在当前图片帧图像上3d直线的投影邻域内利用lsd算法检测2d直线,将3d直线与对应的2d直线位置关联起来,并适应性地调整其他直线的位置;随后,视觉即时定位与建图系统在呈现该地图时,根据3d直线与2d直线的关联关系,更加精确地呈现所述地图中的3d直线。

在一些实施例中,如图2所示,步骤s13包括子步骤s131和子步骤s132。在子步骤s131中,若所述图片帧为关键帧,视觉即时定位与建图系统通过将地图中的激活点投影至所述图片帧,生成所述图片帧对应的3d点云;在子步骤s132中,视觉即时定位与建图系统根据所述3d点云拟合生成所述地图中的3d直线。

例如,若当前图片帧为关键帧,视觉即时定位与建图系统以前一图片帧的位姿信息为初值,基于当前图片帧的位姿信息计算当前帧的刚体变换位姿,将地图中的关键点投影到当前帧,利用投影点周围的邻域信息得到投影点的深度信息,根据各关键点的深度信息生成包括当前帧半稠密的深度图,得到当前帧对应的3d点云。视觉即时定位与建图系统采用ravsac算法在三维空间中利用当前图片帧的3d点云拟合3d直线,在该过程中为了考虑不确定性的影响,计算采用马氏距离,随后,视觉即时定位与建图系统在内点中用最小二乘法恢复更为准确的直线,并删除对应的内点,恢复过程迭代运行直至提取不出直线为止。

在一些实施例中,在子步骤s132中,视觉即时定位与建图系统对所述3d点云进行预处理,并根据预处理后的所述3d点云拟合生成所述地图中的3d直线。在一些实施例中,所述对所述3d点云进行预处理包括但不限于:视觉即时定位与建图系统通过插值处理在所述3d点云中生成新的点;视觉即时定位与建图系统删除所述3d点云中与所述地图中已有直线的距离小于距离阈值的点。例如,视觉即时定位与建图系统对当前帧对应的3d点云进行预处理,例如,通过插值处理在该3d点云中生成新的点,又如,通过删除3d点云中与地图中直线的距离小于距离阈值的点;随后,视觉即时定位与建图系统根据预处理后的3d点云进行直线拟合获取对应的3d直线。

例如,视觉即时定位与建图系统对当前帧对应的3d点云进行预处理,例如,通过插值处理在该3d点云中生成新的点,又如,视觉即时定位定位与建图系统延长地图中已存在的直线,并删除3d点云中与地图中直线的距离小于距离阈值的点,得到新的3d点云;随后,视觉即时定位与建图系统根据预处理后的3d点云进行直线拟合获取对应的3d直线。

在一些实施例中,所述步骤s13还包括子步骤s134(未示出),在子步骤s134中,视觉即时定位与建图系统根据所述3d点云更新所述地图中的点特征的坐标。例如,对于点特征,视觉即时定位与建图系统采用三角化的方式恢复其深度,并传播不确定度。

例如,视觉即时定位与建图系统根据两个视图中的一对匹配点特征,以及点特征对应的当前帧与前一帧间的相机位姿信息,由点特征在前一帧图像中相机坐标系中深度信息三角化计算恢复点特征在当前帧相机坐标系中深度信息,并传播不确定信息。

在一些实施例中,在步骤s12中,视觉即时定位与建图系统选取多个关键帧,基于所述多个关键帧与所述相机位姿信息确定所述图片帧的关键帧参数,并根据所述关键帧参数确定所述图片帧是否为关键帧。在一些实施例中,所述关键帧参数包括但不限于:视野变化信息、相机平移变化信息、曝光时间变化信息。例如,视觉即时定位与建图系统选取多个在时间和空间上与当前帧距离较近的关键帧,通过多个关键帧与当前图片帧的相机位姿信息计算该图片帧的关键帧参数,其中,关键帧参数包括但不限于:包括视野变化信息、相机平移变化信息及曝光时间变化信息;随后,视觉即时定位与建图系统根据当前图片帧对应的关键帧参数判断该图片帧是否为关键帧。

例如,视觉即时定位系统根据当前帧的相关信息选择时间和空间相隔较近的多个关键帧,并基于该多个关键帧及当前图片帧的第二位姿信息确定当前图片帧的关键帧参数。其中,关键帧参数包括:

1)视野变化:

2)相机平移变化:

3)曝光时间变化:

上述1)式中f为距离度量单位,p表示当前帧的关键点的对应点的像素信息,p'表示多个关键帧的多个关键帧中的关键点的像素信息;2)式中ft为距离度量单位,p表示当前帧的关键点的位置信息,pt′为多个关键帧的关键点的投影位置信息;3)式中a为光度标定中的参数。

视觉即时定位与建图系统基于多个关键帧与当前帧的第二位姿信息,确定当前图片帧的三个关键帧参数,并确定三个关键帧的加权和,并将其与预定阈值比较,例如:

式中,wf、wa分别为视觉即时定位与建图系统预设的视野变化信息、相机平移变化信息和曝光时间变化对应的权重,且

若该三个关键参数的加权和等于或大于预定阈值tkf,则视觉即时定位与建图系统确定当前图片帧为关键帧。

在此,本领域技术人员应该能够理解,上述关键帧参数仅为举例,现有或今后出现关键帧参数的其他内容,如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。

在一些实施例中,该方法还包括步骤s15(未示出)。在步骤s15中,若所述图片帧为非关键帧,视觉即时定位与建图系统更新所述地图中的点线特征的坐标。例如,若当前帧不为关键帧,视觉即时定位与建图系统基于当前图片帧,采用一种基于概率的深度滤波器更新地图中各点以及3d直线端点的深度值。

例如,若当前帧不为关键帧,对于其他关键帧上对当前帧上深度还没有确定的点{p,u},根据第二位姿信息找到p对应的极线lp,在极线上寻找和u最相似的点u′,通过三角测量计算得到深度x及不确定性τ,然后利用贝叶斯概率模型更新p点的深度估计。当p的深度估计收敛时,计算其三维坐标,并加入地图。

图3示出了根据本申请的一种用于视觉即时定位与建图的系统,该系统包括位姿确定模块11、关键帧检测12和直线拟合模块13。位姿确定模块11,用于确定新获取的图片帧的相机位姿信息;关键帧检测12,用于基于所述相机位姿信息检测所述图片帧是否为关键帧;直线拟合模块13,若所述图片帧为关键帧,用于根据所述图片帧对应的3d点云拟合生成地图中的3d直线。

具体而言,位姿确定模块11,用于确定新获取的图片帧的相机位姿信息。例如,视觉即时定位与建图系统接收新的图片帧,基于该图片帧与其他帧间的特征点进行匹配,并利用匹配结果通过最小化重投影误差,来获取当前图片帧的相机位姿信息。又如,视觉即时定位与建图系统接收新的图片帧,通过将新的图片帧与该图片帧的前一图片帧进行直接图像配准,使用图像金字塔技术,并采用从粗到细的跟踪方式,确定该图片帧的信息相机位姿信息。还如,视觉即时定位与建图系统将前两例获取的相机位姿信息作为初值,将地图中的点线特征反投回图像中,获取更加精确的相机位姿信息,本方案的实施例中以该系统为例获取精度较高的相机位姿信息。

关键帧检测12,用于基于所述相机位姿信息检测所述图片帧是否为关键帧。例如,视觉即时定位与建图系统根据当前图片帧的相机位姿信息以及其他关键帧间的相关信息检测该图片帧是否为关键帧。

直线拟合模块13,若所述图片帧为关键帧,用于根据所述图片帧对应的3d点云拟合生成地图中的3d直线。例如,若图片帧经检测确定为关键帧,则视觉即时定位与建图系统根据图片帧的相机位姿将地图中的点线投影到该图片帧生成对应的3d点云,并根据该3d点云拟合生成地图中的3d直线。

例如,视觉即时定位与建图系统接收一张新的图片帧,根据该图片帧与其他图片帧的联系,通过基于像素强度的直接法或基于特征点间接法获取当前图片帧的初始相机位姿信息,并以该初始相机位姿信息为初值,将地图中的点线特征投影到当前图片帧,根据投影点线特征对应的匹配点线特征进行计算,获取精度更高的精确位姿,其中,匹配点特征为距离投影点特征最近的对应点,匹配线特征为投影线特征邻域内用lsd(linesegmentdetector,直线检测分割)算法检测到的直线。视觉即时定位与建图系统选取多个与当前帧在时间和空间上距离较近的关键帧,并基于当前帧的相机位姿信息与多个关键帧的关联检测当前帧是否为关键帧。若当前帧经检测确定为关键帧,视觉即时定位与建图系统将多个关键帧中的关键点投影到当前关键帧,利用投影点周围的邻域信息确定投影点的深度,生成半稠密的深度图,得到该图片帧对应的3d点云。视觉即时定位与建图系统采用ransac(randomsampleconsensus,随机抽样一致性)算法在三维空间中利用当前图片帧的3d点云拟合3d直线,在该过程中为了考虑不确定性的影响,计算采用马氏距离,随后,视觉即时定位与建图系统在内点中用最小二乘法恢复更为准确的直线,并删除对应的内点,恢复过程迭代运行直至提取不出直线为止。

在一些实施例中,该系统还包括优化模块14(未示出)。优化模块14,用于对所述地图中的点线特征以及所述相机位姿信息进行优化。例如,视觉即时定位系统对地图中的点线特征以及当前帧的相机位姿信息进行优化,优化方式包括但不限于:全局优化,局部优化。

例如,视觉即时定位与建图系统建立新的地图点线后,对地图中的点线特征以及当前帧的第二位姿信息进行优化处理。此处考虑到效率,视觉即时定位与建图系统采用滑动窗口滤波器对点线特征以及第二位姿信息进行局部优化,具体包括:

1)对于点线特征以及第二位姿信息中的像素值,视觉即时定位与建图系统采用加权的方式优化多有点特征的测光误差和直线的几何误差,其中,点的测光误差包括各投影点到图像中对应点的空间距离误差,直线的结合误差包括投影直线到图像中对应直线间的空间距离误差;

2)采用huber误差函数,并采用基于梯度的权值,消除离群点的影响,其中,权值公式为:

式中,wp为基于梯度的误差的权值,c为常量,为像素值的梯度变化,

例如,当|p|≤δ,则

当|p|>δ,则

其中,δ为一个阈值,用来判断不同大小的误差所对应的目标函数公式;

3)采用高斯牛顿的优化方法进行优化;

4)采用一阶雅克比近似保证系统的一致性。

在一些实施例中,直线拟合模块还包括关联单元133(未示出)。关联单元133,用于根据所述3d直线在所述图片帧中的投影区域确定与所述3d直线关联的2d直线;其中,该系统还包括呈现模块15(未示出)。呈现模块15,用于根据所述3d直线及与所述3d直线关联的2d直线呈现所述地图。例如,视觉即时定位与建图系统根据当前图片帧对应的3d点云拟合生成对应的3d直线后,在当前图片帧图像上3d直线的投影邻域内检测2d直线,将3d直线与对应的2d直线关联起来;随后,视觉即时定位与建图系统根据该关联关系呈现所述地图中的3d直线。

例如,视觉即时定位与建图系统根据当前图片帧对应的3d点云拟合生成对应的3d直线后,在当前图片帧图像上3d直线的投影邻域内利用lsd算法检测2d直线,将3d直线与对应的2d直线位置关联起来,并适应性地调整其他直线的位置;随后,视觉即时定位与建图系统在呈现该地图时,根据3d直线与2d直线的关联关系,更加精确地呈现所述地图中的3d直线。

在一些实施例中,如图2所示,直线拟合模块13包括点云生成单元131和直线拟合单元132。点云生成单元131,若所述图片帧为关键帧,用于通过将地图中的激活点投影至所述图片帧,生成所述图片帧对应的3d点云;直线拟合单元132,用于根据所述3d点云拟合生成所述地图中的3d直线。

例如,若当前图片帧为关键帧,视觉即时定位与建图系统以前一图片帧的位姿信息为初值,基于当前图片帧的位姿信息计算当前帧的刚体变换位姿,将地图中的关键点投影到当前帧,利用投影点周围的邻域信息得到投影点的深度信息,根据各关键点的深度信息生成包括当前帧半稠密的深度图,得到当前帧对应的3d点云。视觉即时定位与建图系统采用ravsac算法在三维空间中利用当前图片帧的3d点云拟合3d直线,在该过程中为了考虑不确定性的影响,计算采用马氏距离,随后,视觉即时定位与建图系统在内点中用最小二乘法恢复更为准确的直线,并删除对应的内点,恢复过程迭代运行直至提取不出直线为止。

在一些实施例中,直线拟合单元132,用于对所述3d点云进行预处理,并根据预处理后的所述3d点云拟合生成所述地图中的3d直线。在一些实施例中,所述对所述3d点云进行预处理包括但不限于:视觉即时定位与建图系统通过插值处理在所述3d点云中生成新的点;视觉即时定位与建图系统删除所述3d点云中与所述地图中已有直线的距离小于距离阈值的点。例如,视觉即时定位与建图系统对当前帧对应的3d点云进行预处理,例如,通过插值处理在该3d点云中生成新的点,又如,通过删除3d点云中与地图中直线的距离小于距离阈值的点;随后,视觉即时定位与建图系统根据预处理后的3d点云进行直线拟合获取对应的3d直线。

例如,视觉即时定位与建图系统对当前帧对应的3d点云进行预处理,例如,通过插值处理在该3d点云中生成新的点,又如,视觉即时定位定位与建图系统延长地图中已存在的直线,并删除3d点云中与地图中直线的距离小于距离阈值的点,得到新的3d点云;随后,视觉即时定位与建图系统根据预处理后的3d点云进行直线拟合获取对应的3d直线。

在一些实施例中,所述直线拟合模块13还包括坐标更新单元134(未示出)。坐标更新单元134,用于根据所述3d点云更新所述地图中的点特征的坐标。例如,对于点特征,视觉即时定位与建图系统采用三角化的方式恢复其深度,并传播不确定度。

例如,视觉即时定位与建图系统根据两个视图中的一对匹配点特征,以及点特征对应的当前帧与前一帧间的相机位姿信息,由点特征在前一帧图像中相机坐标系中深度信息三角化计算恢复点特征在当前帧相机坐标系中深度信息,并传播不确定信息。

在一些实施例中,关键帧检测模块12,用于选取多个关键帧,基于所述多个关键帧与所述相机位姿信息确定所述图片帧的关键帧参数,并根据所述关键帧参数确定所述图片帧是否为关键帧。在一些实施例中,所述关键帧参数包括但不限于:视野变化信息、相机平移变化信息、曝光时间变化信息。例如,视觉即时定位与建图系统选取多个在时间和空间上与当前帧距离较近的关键帧,通过多个关键帧与当前图片帧的相机位姿信息计算该图片帧的关键帧参数,其中,关键帧参数包括但不限于:包括视野变化信息、相机平移变化信息及曝光时间变化信息;随后,视觉即时定位与建图系统根据当前图片帧对应的关键帧参数判断该图片帧是否为关键帧。

例如,视觉即时定位系统根据当前帧的相关信息选择时间和空间相隔较近的多个关键帧,并基于该多个关键帧及当前图片帧的第二位姿信息确定当前图片帧的关键帧参数。其中,关键帧参数包括:

4)视野变化:

5)相机平移变化:

6)曝光时间变化:

上述1)式中f为距离度量单位,p表示当前帧的关键点的对应点的像素信息,p'表示多个关键帧的多个关键帧中的关键点的像素信息;2)式中ft为距离度量单位,p表示当前帧的关键点的位置信息,pt′为多个关键帧的关键点的投影位置信息;3)式中a为光度标定中的参数。

视觉即时定位与建图系统基于多个关键帧与当前帧的第二位姿信息,确定当前图片帧的三个关键帧参数,并确定三个关键帧的加权和,并将其与预定阈值比较,例如:

式中,wf、wa分别为视觉即时定位与建图系统预设的视野变化信息、相机平移变化信息和曝光时间变化对应的权重,且

若该三个关键参数的加权和等于或大于预定阈值tkf,则视觉即时定位与建图系统确定当前图片帧为关键帧。

在此,本领域技术人员应该能够理解,上述关键帧参数仅为举例,现有或今后出现关键帧参数的其他内容,如果能够适用于本申请,也应该包含在本申请的保护范围内,并以引用的形式包含于此。

在一些实施例中,该系统还包括坐标更新模块15(未示出)。坐标更新模块15,若所述图片帧为非关键帧,用于更新所述地图中的点线特征的坐标。例如,若当前帧不为关键帧,视觉即时定位与建图系统基于当前图片帧,采用一种基于概率的深度滤波器更新地图中各点以及3d直线端点的深度值。

例如,若当前帧不为关键帧,对于其他关键帧上对当前帧上深度还没有确定的点{p,u},根据第二位姿信息找到p对应的极线lp,在极线上寻找和u最相似的点u′,通过三角测量计算得到深度x及不确定性τ,然后利用贝叶斯概率模型更新p点的深度估计。当p的深度估计收敛时,计算其三维坐标,并加入地图。

本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。

本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。

本申请还提供了一种计算机设备,所述计算机设备包括:

一个或多个处理器;

存储器,用于存储一个或多个计算机程序;

当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。

如图4所示在一些实施例中,系统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.一种用于视觉即时定位与建图的方法,其中,该方法包括:

确定新获取的图片帧的相机位姿信息;

基于所述相机位姿信息检测所述图片帧是否为关键帧;

若所述图片帧为关键帧,根据所述图片帧对应的3d点云拟合生成地图中的3d直线。

2.根据条款1所述的方法,其中,所述方法还包括:

对所述地图中的点线特征以及所述相机位姿信息进行优化。

3.根据条款1所述的方法,其中,所述若所述图片帧为关键帧,根据所述图片帧对应的3d点云拟合生成地图中的3d直线,还包括:

根据所述3d直线在所述图片帧中的投影区域确定与所述3d直线关联的2d直线;

其中,所述方法还包括:

根据所述3d直线及与所述3d直线关联的2d直线呈现所述地图。

4.根据条款1至3中任一项所述的方法,其中,所述若所述图片帧为关键帧,根据所述图片帧对应的3d点云拟合生成地图中的3d直线,包括:

若所述图片帧为关键帧,通过将地图中的激活点投影至所述图片帧,生成所述图片帧对应的3d点云;

根据所述3d点云拟合生成所述地图中的3d直线。

5.根据条款4所述的方法,其中,所述根据所述3d点云拟合生成所述地图中的3d直线,包括:

对所述3d点云进行预处理;

根据预处理后的所述3d点云拟合生成所述地图中的3d直线。

6.根据条款5所述的方法,其中,所述对所述3d点云进行预处理包括以下至少任一项:

通过插值处理在所述3d点云中生成新的点;

删除所述3d点云中与所述地图中已有直线的距离小于距离阈值的点。

7.根据条款1所述的方法,其中,所述若所述图片帧为关键帧,根据所述图片帧对应的3d点云拟合生成地图中的3d直线,还包括:

根据所述3d点云更新所述地图中的点特征的坐标。

8.根据条款1所述的方法,其中,所述基于所述相机位姿信息检测所述图片帧是否为关键帧,包括:

选取多个关键帧,基于所述多个关键帧与所述相机位姿信息确定所述图片帧确定关键帧参数,并根据所述关键帧参数确定所述图片帧是否为关键帧。

9.根据条款8所述的方法,其中,所述关键帧参数包括视野变化信息、相机平移变化信息、曝光时间变化信息中至少一项。

10.根据条款1所述的方法,其中,所述方法还包括:

若所述图片帧为非关键帧,更新所述地图中的点线特征的坐标。

11.一种用于视觉即时定位与建图的系统,其中,该系统包括:

位姿确定模块,用于确定新获取的图片帧的相机位姿信息;

关键帧检测模块,用于基于所述相机位姿信息检测所述图片帧是否为关键帧;

直线拟合模块,若所述图片帧为关键帧,用于根据所述图片帧对应的3d点云拟合生成地图中的3d直线。

12.根据条款11所述的系统,其中,所述系统还包括:

优化模块,用于对所述地图中的点线特征以及所述相机位姿信息进行优化。

13.根据条款11所述的系统,其中,所述直线拟合模块还包括:

关联单元,根据所述3d直线在所述图片帧中的投影区域确定与所述3d直线关联的2d直线;

其中,所述系统还包括:

呈现模块,用于根据所述3d直线及与所述3d直线关联的2d直线呈现所述地图。

14.根据条款11至13中任一项所述的系统,其中,所述直线拟合模块包括:

点云生成单元,若所述图片帧为关键帧,用于通过将地图中的激活点投影至所述图片帧,生成所述图片帧对应的3d点云;

直线拟合单元,用于根据所述3d点云拟合生成所述地图中的3d直线。

15.根据条款14所述的系统,其中,所述直线拟合单元用于:

对所述3d点云进行预处理;

根据预处理后的所述3d点云拟合生成所述地图中的3d直线。

16.根据条款15所述的系统,其中,所述对所述3d点云进行预处理包括以下至少任一项:

通过插值处理在所述3d点云中生成新的点;

删除所述3d点云中与所述地图中已有直线的距离小于距离阈值的点。

17.根据条款11所述的系统,其中,所述直线拟合模块还包括:

坐标更新单元,用于根据所述3d点云更新所述地图中的点特征的坐标。

18.根据条款11所述的系统,其中,所述关键帧检测模块用于:

选取多个关键帧,基于所述多个关键帧与所述相机位姿信息确定所述图片帧的关键帧参数,并根据所述关键帧参数确定所述图片帧是否为关键帧。

19.根据条款18所述的系统,其中,所述关键帧参数包括视野变化信息、相机平移变化信息、曝光时间变化信息中至少一项。

20.根据条款11所述的系统,其中,所述系统还包括:

坐标更新模块,若所述图片帧为非关键帧,用于更新所述地图中的点线特征的坐标。

21.一种用于视觉即时定位与建图的设备,其中,该设备包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如条款1至10中任一项所述的操作。

22.一种包括指令的计算机可读介质,所述指令在被执行时使得系统进行以下如条款1至10中任一项所述的操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1