一种单目SLAM算法的初始化方法及系统与流程

文档序号:18271464发布日期:2019-07-27 09:43阅读:428来源:国知局
一种单目SLAM算法的初始化方法及系统与流程

本发明涉及汽车技术领域,特别是涉及一种单目slam算法的初始化方法及系统。



背景技术:

目前自动泊车辅助系统(autoparkingassist,apa)的解决方案中,一般会自带4个低成本的鱼眼摄像头,用以实现全车监视系统(aroundviewmonitoring,avm)功能,或者达到与apa相关的视觉显示效果。现有技术中车辆在采用apa寻找车位的过程中,通常需要检测车位及静态障碍物,比如雪糕筒、轮档、杆子及网栏等等,甚至需要检测一些不常见的障碍物,比如自行车、椅子等等。采用目前常用的机器学习方法来检测静态障碍物,需要预先知道障碍物的类别以及大量的训练数据,该方法使得寻找车位的通用性和灵活性较差。

另外,目前最新的研究热点的是使用点云来实现静态障碍物检测,但是通常需要使用比较好的全局相机(globalshuttercamera),或者双目相机,而现有汽车上大量配置的鱼眼相机无法很好的实现。现有的基于单目鱼眼相机的视觉slam(simultaneouslocalizationandmapping)点云生成方法主要存在稳定性差、精度不高、难以获取静态障碍物真实尺度等问题。其中,稳定性差主要表现在点云生成过程中经常出现初始化失败、点云生成偏差较大、噪声较大、以及对于能够生成的点云存在尺度偏差也较大等方面。精度问题及真实尺度问题主要表现在单目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示出了根据本发明一个实施例的车辆上鱼眼相机的采集视野示意图;

图3示出了根据本发明一个实施例的单目slam算法的初始化系统的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

为解决上述技术问题,本发明实施例提供了一种单目slam算法的初始化方法。图1示出了根据本发明一个实施例的单目slam算法的初始化方法的流程示意图。参见图1,该方法至少包括步骤s102至步骤s108。

步骤s102,从采集图像中选取图像交叠区内的像素点,其中,图像交叠区为通过不同角度采集的两个图像的内容交叠区域。

该步骤中,图像交叠区内的像素点实际上是被激活点,在图像交叠区内选取像素点时优选的进行均匀选点,且选点的密度稍大,以满足单目slam算法的初始化的需求。

步骤s104,将选取的像素点转换为对应双目slam算法的像素点,基于双目slam算法计算图像交叠区中转换后的像素点的三维坐标。

该步骤中,转换后的像素点的三维坐标指的是基于世界坐标系的三维坐标信息。

步骤s106,将像素点的三维坐标转换为相机坐标系的坐标信息。

步骤s108,依据相机坐标系的坐标信息对单目slam算法进行初始化。

在本发明实施例中,在从采集图像中选取图像交叠区内的像素点,并将选取的像素点转换为对应双目slam算法的像素点后,基于双目slam算法计算图像交叠区中转换后的像素点的三维坐标,并将像素点的三维坐标转换为相机坐标系的坐标信息,进而可以依据相机坐标系的坐标信息对单目slam算法进行初始化。由此,本发明实施例通过双目slam算法来计算得到图像交叠区中更准确、稳定的像素点的坐标信息,从而利用这些像素点的坐标信息辅助单目slam算法实现初始化,从而能够使单目slam算法对应的单目系统更快、更好的实现初始化,提高了单目slam算法的稳定性和计算精度。

由于目前视觉slam算法都需要基于图像的矫正图,矫正图的视场角fov较小,相邻两个摄像头的交叠区域不够大。而采用双目视觉slam算法可以很好的解决单目算法碰到的稳定性以及尺度精度问题。因此,本发明实施例需要使用至少两个相机做双目,才有足够的视场角重叠区域给双目视觉slam算法使用,至少两个相机可以分别位于车辆上的不同角度的任意位置。

参见上文步骤s102,在本发明一实施例中,图像交叠区可以是安装在车辆不同位置上的任意两个相机分别采集的两个图像中的内容交叠区域。在从采集图像中选取图像交叠区内的像素点时,可以从其中一个相机在初始工作时采集到的一帧或多帧图像中选取图像交叠区内任意物体的像素点。当然,本发明实施例中的采集图像的设备不仅仅限于相机,还可以是其他的图像采集设备,本发明实施例对此不做具体的限定。

为了兼顾相机低成本和大视角的采集图像,车辆不同位置角度安装的相机可以采用采集图像的视角范围较大的鱼眼相机。

例如,参见图2,安装在汽车上的鱼眼相机的采集视野范围以半圆形表示,图2所示实施例的汽车中安装了4个鱼眼相机,分别位于汽车车身的前、后、左、右四个方向,在本发明实施例中,对于任意相邻两个鱼眼相机,其采集的图像均可以分为两部分,一部分是图像交叠区,另一部分是图像非交叠区,其中,图像交叠区为相邻两个鱼眼相机采集图像内容相同的区域,图像非交叠区为相邻两个鱼眼相机采集图像内容不同的区域。假设相邻两个鱼眼相机包括前置鱼眼相机和侧边鱼眼相机,在从侧边鱼眼相机对应的图像中选取任意物体的多个像素点时,需要在图像交叠区和图像非交叠区分别进行均匀选点,且在图像交叠区域内选择的点的密度稍大。

参见上文步骤s102,在本发明一实施例中,从采集图像中选取图像交叠区内的像素点的过程中,为了能够直接使用相机采集的图像,可以在获取到相机采集的图像后,将获取到的图像输入至预设相机模型中,由相机模型对图像进行处理,进而从处理后的图像中根据单目slam算法选取图像交叠区内的像素点。

本发明实施例分别使用单目针孔相机模型和鱼眼相机模型(omnidirectionalcameramodel)对鱼眼相机采集的图像进行处理,通过对各自处理后的图像中的有效地像素点进行对比可知,鱼眼相机模型处理的图像中被激活像素的覆盖范围较大且数量较多。因此,本发明实施例优选地采用鱼眼相机模型,从而可以无需对鱼眼摄像头采集的鱼眼图做畸变校正(即无需将鱼眼图转换为平面图),能够直接将鱼眼图片的内容应用到视觉slam算法中,提高了最终点云的稠密度和质量。并且,使用鱼眼相机模型来可以增大视场角,提升匹配精度。

若选取鱼眼相机模型作为预设相机模型,那么在执行上文步骤s102时,为了能够直接使用鱼眼相机采集的图像,避免将鱼眼摄像头采集的图像矫正成非鱼眼的图片,以防止图像视野缩小。本发明实施例可以先获取两个鱼眼相机分别采集的两个图像,然后将两个图像分别输入至鱼眼相机模型中,进而在图像经鱼眼相机模型处理后,从处理后的图像中选择任一鱼眼相机对应的图像,并从选择的处理后的图像中选取任意物体的多个像素点。

通常情况下,安装在车辆上的相邻两个鱼眼相机之间的距离较远,且朝向不同,采集图像的角度不同。例如,对于汽车上相邻的前置鱼眼相机和侧边鱼眼相机,两者距离较远且分别朝向前侧、左侧/右侧。在选择任一鱼眼相机对应的图像时,需要根据实际应用场景来去确定选择哪个鱼眼相机对应的图像更为合适。

例如,在自动泊车场景中,由于驾驶人员可以直观地看到车辆前方的场景,而无法直观的看到车辆侧边的场景。因此,可以选择侧边鱼眼相机的视野为目标区域,即选取侧边鱼眼相机对应的图像,以方便驾驶员查找车位时检测车辆侧边的静态障碍物。

参见上文步骤s104,在本发明一实施例中,将选取的像素点中位于图像交叠区的像素点转换为对应双目slam算法的像素点的过程中,可以结合图像坐标系来对像素点进行转换,具体转换的过程现有技术可以实现,此处不再赘述。

在本发明另一实施例中,基于双目slam算法计算图像交叠区中转换后的像素点的三维坐标的过程中,可以先获取预先测量的采集图像对应的相机间的基线距离,然后,采用双目slam算法并依据相机间的基线距离计算出图像交叠区中转换后的像素点的三维坐标。该实施例中的三维坐标信息还包括了像素点的深度信息。

在该实施例中,若使用安装在车辆前方和侧边的鱼眼相机组成双目,那么,可以预先测量车辆前方和侧边的鱼眼相机之间的基线距离,进而采用双目slam算法并依据两个鱼眼相机间的基线距离计算出图像交叠区中转换后的像素点的三维坐标。

在对单目slam算法进行初始化之后,还可以利用双目slam算法来辅助初始化后的单目slam算法更快、更精确地实时获取采集图像中的成熟点,并依据图像非交叠区和交叠区内的像素点的三维坐标生成物体的点云。由此,本发明实施例还提供了一种双目点云生成方法,该方法主要包括如下步骤1至步骤5。

步骤1,从采集图像中根据初始化的单目slam算法选取图像交叠区内的像素点。

在该步骤中,图像交叠区为通过不同角度采集的两个图像的内容交叠区域。并且,由于安装在车辆上的相机可以实时的采集图像,因此,该方法可以从实时采集的图像中选取图像交叠区内的像素点。

在该步骤中,从采集图像中选取的多个像素点指的是成熟点,是在从图像中初步选取出像素点之后,又进一步筛选出来的稳定的像素点,成熟点在后续能够计算得到三维坐标信息。

步骤2,将选取的像素点转换为对应双目slam算法的像素点,基于双目slam算法计算图像交叠区中转换后的像素点的三维坐标。

该步骤中,在将选取的像素点转换为对应双目slam算法的像素点时,也可以基于图像坐标系将选取的像素点转换为对应双目slam算法的像素点。

步骤3,将像素点的三维坐标转换为相机坐标系的坐标信息,利用初始化后的单目slam算法基于相机坐标系的坐标信息计算从一个角度采集图像的相机的位姿变化。

步骤4,依据位姿变化计算图像非交叠区内的像素点的三维坐标,其中,图像非交叠区为通过不同角度采集的两个图像的内容不交叠区域。

步骤5,依据图像非交叠区和交叠区内的像素点的三维坐标生成点云。

本发明实施例通过在车辆不同位置角度安装的相机构成双目系统,利用双目系统中的双目slam算法计算出图像交叠区的像素点的三维坐标(即世界坐标系坐标)后,可以根据不同坐标系之间坐值标的转换方式将图像交叠区的像素点的三维坐标转换为一个相机的相机坐标系的坐标信息,进而依据单目slam算法并基于转换得到的相机坐标系的坐标信息计算出图像非交叠区的像素点的三维坐标,由此,该实施例方案可以依据采集图像的图像交叠区域内的像素点信息进行尺度的推算,得到图像非交叠区域的像素点信息。由于双目slam算法具有不需要初始化、能够获取物体更精确的尺度信息、稳定性更好等优点,因此,利用双目slam算法能够辅助单目slam算法更快、更精确地获得采集图像中的成熟点,从而提高了点云生成的稳定性和物体真实尺度获取的准确性。

参见上文步骤1,在本发明一实施例中,选取图像交叠区内的像素点的过程可以参照上文实施例,在获取到相机采集的图像后,将获取到的图像输入至预设相机模型中,由相机模型对图像进行处理,进而从处理后的图像中根据初始化的单目slam算法选取图像交叠区内的像素点。

参见上文步骤4,在本发明一实施例中,依据相机的位姿变化计算图像非交叠区内的像素点的三维坐标的具体过程是,首先,通过初始化后的单目slam算法并依据相机的位姿变化,计算该相机在任意两个不同时刻之间的位移距离。然后,通过初始化后的单目slam算法并依据位移距离计算出图像非交叠区内的像素点的三维坐标。

在该实施例中,位姿变化的相机指的是选取像素点的一个图像对应的相机。因此,计算在任意两个不同时刻之间的位移距离对应的相机是选取像素点的图像对应的相机。例如,任意两个不同角度的相机分别安装在车辆的前方和侧边,上文实施例从侧边的相机采集的图像中选取图像交叠区内任意物体的像素点,在该实施例中,可以通过单目slam算法并依据侧边相机的位姿变化,计算侧边相机在任意两个不同时刻之间的位移距离。

该实施例中,一个相机在任意两个不同时刻之间的位移距离也可以理解成该相机在任意两个不同时刻之间的基线距离。

在本发明一实施例中,相机的位姿变化可以包括相机的旋转矩阵和/或平移矩阵。

基于同一发明构思,本发明实施例还提供了一种单目slam算法的初始化系统。图3示出了根据本发明一个实施例的单目slam算法的初始化系统的结构示意图。参见图3,单目slam算法的初始化系统300包括单目子系统320、转换子系统330、双目子系统340。

现介绍本发明实施例的单目slam算法的初始化系统300的各组成或器件的功能以及各部分间的连接关系:

单目子系统320,从采集图像中选取图像交叠区内的像素点,其中,图像交叠区为通过不同角度采集的两个图像的内容交叠区域;

转换子系统330,与单目子系统320耦合,将选取的像素点转换为适用于双目子系统340、且对应双目slam算法的像素点;

双目子系统340,与转换子系统330耦合,基于双目slam算法计算图像交叠区中转换后的像素点的三维坐标;

转换子系统330,将像素点的三维坐标转换为适用于单目子系统320的相机坐标系的坐标信息;

单目子系统320,依据相机坐标系的坐标信息对单目slam算法进行初始化。

在本发明一实施例中,单目子系统320还可以获取采集图像,并将获取到的图像输入至预设相机模型中,当图像经相机模型处理后,可以从处理后的图像中根据单目slam算法选取图像交叠区内的像素点。

在本发明一实施例中,转换子系统330在将选取的像素点转换为对应双目slam算法的像素点时,可以基于图像坐标系将选取的像素点转换为对应双目slam算法的像素点。

在本发明一实施例中,双目子系统340可以先获取预先测量的采集图像对应的相机间的基线距离,然后基于双目slam算法并根据相机间的基线距离,计算出图像交叠区中转换后的像素点的三维坐标。

在本发明一实施例中,当单目子系统320依据相机坐标系的坐标信息对单目slam算法进行初始化之后,相应的单目子系统320、双目子系统340、转换子系统330还可以执行生成物体点云的过程,具体的过程如下:

单目子系统320,从采集图像中根据初始化的单目slam算法选取图像交叠区内的像素点。

其中,图像交叠区为通过不同角度的相机采集的两个图像的内容交叠区域。并且,由于安装在车辆上的相机可以实时的采集图像,因此,单目子系统320可以从实时采集的图像中选取图像交叠区内的像素点。

转换子系统330,将选取的像素点转换为适用于双目子系统340且对应双目slam算法的像素点。

双目子系统340,基于双目slam算法计算图像交叠区中转换后的像素点的三维坐标。

转换子系统330,将像素点的三维坐标转换为适用于单目子系统320的相机坐标系的坐标信息。

单目子系统320,利用单目slam算法基于相机坐标系的坐标信息计算从一个角度采集图像的相机的位姿变化,并依据位姿变化计算图像非交叠区的任意物体像素点的三维坐标。其中,图像非交叠区为通过不同角度采集的两个图像的内容不交叠区域。

单目子系统320,依据图像非交叠区和交叠区内的像素点的三维坐标生成点云。

在本发明一实施例中,单目子系统320在依据位姿变化计算图像非交叠区内的像素点的三维坐标时,可以通过初始化后的单目slam算法并依据位姿变化,计算从一个角度采集图像的相机在任意两个不同时刻之间的位移距离。然后,通过初始化后的单目slam算法依据位移距离计算图像非交叠区内的像素点的三维坐标。

在本发明一实施例中,相机的位姿变化包括相机的旋转矩阵和/或平移矩阵。

本发明实施例还提供了一种计算机存储介质,计算机存储介质存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行上文任意实施例中的单目slam算法的初始化方法。

根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:

在本发明实施例中,在从采集图像中选取图像交叠区内的像素点,并将选取的像素点转换为对应双目slam算法的像素点后,基于双目slam算法计算图像交叠区中转换后的像素点的三维坐标,并将像素点的三维坐标转换为相机坐标系的坐标信息,进而可以依据相机坐标系的坐标信息对单目slam算法进行初始化。由此,本发明实施例可以通过依据双目slam算法来辅助单目slam算法实现初始化,从而能够使单目slam算法对应的单目系统更快、更好的实现初始化,提高了单目slam算法的稳定性和计算精度。

所属领域的技术人员可以清楚地了解到,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。

另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。

本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram),磁碟或者光盘等各种可以存储程序代码的介质。

或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。

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