视觉定位的方法、装置及计算机可读介质技术领域
本公开涉及实时定位的技术领域,特别涉及视觉定位的方法、定位装置及可读介质。
背景技术
一般来说,定位设备在定位过程中,需要借助电子地图(简称地图),通过将实时检测到的环境信息,与电子地图中预存的环境信息进行匹配,从而得到定位设备自身在场景中的相对位置信息。
现有技术中,地图的构建,特别是室内地图的构建,一般借助激光雷达。激光雷达能够获取包括室内等场景的点云数据,探测范围广、精度高、效率高,且几乎不受光照条件影响,能够精确描述场景结构信息。
而为了配合此类地图而实现定位,现有的定位设备需要具有/配置激光雷达,通过激光雷达实时扫描获得的点云数据与(由激光点云数据生成)此类地图的数据进行匹配,从而推算出定位设备自身的位置。
然而,随着科技发展,定位设备的种类越来越多,如智能手机、电脑、机器人、车载导航仪等,其中的一些产品结构不一定适合安装激光雷达,而且激光雷达的成本是相对高昂的。
也有一些地图是借助视觉相机而构建的。为了配合这一类视觉地图而实现定位,定位设备配置了视觉相机(或摄像模块),但总体而言,利用视觉地图进行定位,成本虽然较低,但精度也是较低的,不一定适用于高精度的场合需求。
可见,现有的激光点云定位方式或视觉点云定位方式,未必能满足到部分用户在定位设备配置以及定位精度上的综合需求。
发明内容
为解决前述的至少一个技术问题,本公开一方面提出了一种视觉定位的方法,其技术方案如下:
视觉定位的方法,包括以下步骤:获取由摄像模块生成的场景的图像;以第一方式处理所述图像,获得视觉点云数据;调取预先生成的场景地图数据,所述场景地图数据由激光点云数据生成;将所述视觉点云数据与所述场景地图数据进行匹配,生成视觉定位数据。
优选地,以第二方式处理所述图像:识别所述图像中的标签的特征信息,根据所述特征信息向标签信息库发送匹配请求;获得标签信息库响应所述匹配请求而返回的标签坐标的数据;根据所述标签坐标的数据获得自定位坐标的数据;以所述自定位坐标为基准点,在场景地图空间体系中生成粒子群;根据所述视觉定位数据修正粒子的状态和分布;计算粒子评分并输出定位结果。
优选地,所述标签坐标的数据包括标签角点的世界坐标数据;“以第二方式处理所述图像”还包括:在图像中提取标签角点的像素坐标数据;根据所述标签角点的世界坐标数据以及像素坐标数据,运用PnP算法求解,获得所述自定位坐标的数据;所述自定位坐标的数据包括摄像模块的位置以及姿态数据。
优选地,获取里程计数据;在计算粒子评分前,根据所述里程计数据更新粒子的状态。
优选地,所述摄像模块至少具有两个摄像单元;“以第一方式处理所述图像”包括:对所述摄像模块的至少两个摄像单元同步采集到的图像进行处理,获得图像视差数据;根据所述图像视差数据,生成像素深度数据;根据所述像素深度数据,生成视觉点云数据。
优选地,所述摄像模块包括依次排列的第一摄像单元、第二摄像单元;以第一方式处理所述图像包括:处理后获得第一摄像单元以及第二摄像单元的视觉点云数据P1;对视觉点云数据P1进行筛选,得到点云集合Pa,使Pa={P1≤T},其中T为设定的距离阈值,{P1≤T}为视觉点云数据P1中,与所述摄像模块的距离在T以内的景物对应的点云数据;以所述点云集合Pa作为待匹配数据中的视觉点云数据。
优选地,所述摄像模块包括依次排列的第一摄像单元、第二摄像单元以及第三摄像单元;以第一方式处理所述图像包括:处理后获得第一摄像单元以及第二摄像单元的视觉点云数据P1;处理后获得第一摄像单元以及第三摄像单元的视觉点云数据P2;进行点云数据融合,得到点云集合Pb,Pb={P1≤T}∪{P2>T};其中T为设定的距离阈值,{P1≤T}为视觉点云数据P1中,与所述摄像模块的距离在T以内的景物对应的点云数据,{P2>T}为视觉点云数据P2中,与所述摄像模块的距离大于T的景物对应的点云数据;以所述点云集合Pb作为待匹配数据中的视觉点云数据。
优选地,进行点云数据融合前,对T进行赋值,包括以下步骤:选取两个摄像单元同步采集到的图像,获得像素深度数据;在所述像素深度数据中选取出至少一个待比较的像素点,获得该像素点的深度值D1;通过测量获得该像素点对应的位置与所述摄像模块的真实距离D2;根据所述深度值D1与所述真实距离D2计算得到标准精度误差值;对T进行赋值,使{P1≤T}以及{P2>T}的点云数据的精度误差值小于等于所述标准精度误差值。
一方面,本公开提出了视觉定位的装置,包括:摄像模块,至少包括第一摄像单元及第二摄像单元,用于响应拍摄指令而对场景进行拍摄,生成场景的图像;存储模块,用于存储预先生成的场景地图数据,所述场景地图数据由激光点云数据生成;处理模块,用于执行以下动作:从摄像模块处调取场景的图像,以第一方式处理所述图像,获得视觉点云数据;调取预先生成的场景地图数据,将包括所述视觉点云数据的待匹配数据与所述场景地图数据进行匹配,处理获得所述摄像模块的位置信息。
一方面,本公开提出了计算机可读介质,所述计算机可读介质中存储有计算机程序,所述计算机程序由处理模块加载并执行以实现视觉定位的方法。
本公开的一些技术效果在于:利用可实时处理而获得的视觉点云数据与场景地图数据进行匹配,使得定位设备可以在不使用激光雷达进行测量的情况下而很好地利用了激光点云数据构建的场景地图进行定位,同时由于不需要借助相对低精度的视觉地图进行定位,获得的定位结果具有较高精度。
附图说明
为更好地理解本公开的技术方案,可参考下列的、用于对现有技术或实施例进行辅助说明的附图。这些附图将对现有技术或本公开部分实施例中,涉及到的产品或方法有选择地进行展示。这些附图的基本信息如下:
图1为一个实施例中,PnP投影关系示意图;
图2为一个实施例中,双目相机的成像示意图。
上述附图中,附图标记及其所对应的技术特征如下:
11-第一图像,12-第二图像。
具体实施方式
下文将对本公开涉及的技术手段或技术效果作进一步的展开描述,显然,所提供的实施例仅是本公开的部分实施方式,而并非全部。基于本公开中的实施例以及图文的明示或暗示,本领域技术人员在没有作出创造性劳动的前提下所能获得的所有其他实施例,都将在本公开保护的范围之内。
在总体思路上,本公开提出了一种视觉定位的方法,包括以下步骤:获取由摄像模块生成的场景的图像;以第一方式处理所述图像,获得视觉点云数据;调取预先生成的场景地图数据,所述场景地图数据由激光点云数据生成;将所述视觉点云数据与所述场景地图数据进行匹配,生成视觉定位数据。
如此,利用可实时处理而获得的视觉点云数据与场景地图数据进行匹配,使得定位设备可以在不使用激光雷达进行测量的情况下而很好地利用了激光点云数据构建的场景地图进行定位,同时由于不需要借助相对低精度的视觉地图进行定位,获得的定位结果具有较高精度。
本公开提出的总体思路,适用于多种场景及对象。在场景的应用上,尤其适用于室内定位,当然也可以适用于室外定位、半露天场景等,本质上需要定位设备或定位装置具有摄像模块,摄像模块用于在场景中进行拍摄,以获得场景的图像。一般来说,摄像模块需要具备两个或更多的摄像单元(也可理解为摄像头),这样能从不同角度对场景的物体的至少一个部位进行拍摄,在一个时刻同步地获得该物体的至少一个部位的两张以上的图像。如此,对不同摄像单元在同一时刻拍摄到的物体的同一个部位的图像进行处理,结合摄像单元之间的距离(可以理解为相机的基线,或摄像模块的基线),利用现有技术即可算出图像中像素的深度,并处理得到视觉点云数据。
对于视觉点云数据,现有技术一般是采用预先生成的视觉点云地图作为匹配(或配准)的基础,通过匹配,计算得到摄像模块在视觉点云地图的空间体系下的的位置,或者通过匹配,推算出定位设备在视觉点云地图的空间体系下的的位置,从而实现定位。
本公开提出,对于视觉点云数据,无需利用视觉点云地图作为匹配的基础,而是利用激光点云地图(即前述的场景地图数据)作为匹配的基础,这样的好处包括但不限于:
(1)提供了一种新的定位方法,使得摄像模块获得的图像经过处理后,能适用于激光点云构建出来的场景地图,即无视觉点云地图的情况下也可灵活地实现定位;
(2)一般来说,由于激光点云建图比视觉点云建图具有诸多优势(如可靠性更高、技术更成熟、精度高、不存在累计误差等),因此以激光点云地图作为匹配基础,对于提高定位精度具有更可靠之处;
(3)激光雷达的成本较高(例如当前的价格从几万到十几万元不等),用户的定位设备很有可能不适合配置激光雷达,去实现激光点云的实时定位,但本公开提出的方法,只需定位设备具有摄像模块,适用范围极广;
(4)在无需对市面上大多数定位设备的硬件进行改造的基础上,保证了定位的精度。
需要进一步说明的是,“将所述视觉点云数据与所述场景地图数据进行匹配”可以有多种方法,本质上主要是将两者数据格式统一、将两者的坐标系进行统一,包括但不限于:
(1)将视觉点云数据格式先转换为激光点云数据格式,然后与场景地图数据进行匹配:
(2)将场景地图数据格式调整至于视觉点云数据格式一致,然后进行匹配;
(3)分别将视觉点云数据格式与场景地图数据格式调整至同一的第三类格式,然后进行匹配。
视觉点云数据的格式、激光点云数据的格式、场景地图数据的格式,这些格式本身都是现有技术,其种类在此不作展开。
步骤“以第一方式处理所述图像,获得视觉点云数据;调取预先生成的场景地图数据,所述场景地图数据由激光点云数据生成;将所述视觉点云数据与所述场景地图数据进行匹配,生成视觉定位数据”,既可以在定位设备或定位装置内部的处理器(或处理模块)内实施,也可以交由其他外部设备进行执行,即进行相关的数据处理和计算,得到视觉定位数据后返回给定位设备。
场景地图数据的生成方式可以采用现有技术,在此不作展开。在具体实施时,既可以借助高精度、高性能的激光雷达以及其他仪器先对场景进行扫描以及记录,生成场景地图数据然后存储到外部服务器内或者定位设备本机内;也可以直接借助定位设备自身的激光雷达(当自身具有时)进行激光点云的获取以及建图;还可以采取其他现有的已被披露的方式。本公开更关注的是如何借助预先生成的场景地图数据进行视觉定位。
在场景地图数据的调取方式上,可以预先将场景地图数据存储在定位设备内,在需要时直接调取;也可以实时地接至外部服务器(包括云端)进行场景地图数据的加载。可以每次只调取区域性的数据,也可以一次调取完全场景的数据。
需要注意的是,处理图像而获得视觉点云数据,可以采用现有技术(如根据摄像单元获得的图像,处理得到深度图,从而得到视觉点云数据),“第一方式”主要是区别于下文所说的“第二方式”,区别点在于处理的图像的内容不同、得到的数据类型也不同。
在一个实施例中,以第二方式处理所述图像:识别所述图像中的标签的特征信息,根据所述特征信息向标签信息库发送匹配请求;获得标签信息库响应所述匹配请求而返回的标签坐标的数据;根据所述标签坐标的数据获得自定位坐标的数据;以所述自定位坐标为基准点,在场景地图空间体系中生成粒子群;根据所述视觉定位数据修正粒子的状态和分布;计算粒子评分并输出定位结果。
所述第二方式与第一方式的明显区别是,以第二方式进行图像处理,主要的处理对象是图像中的标签。
一般来说,存在两个以上摄像头/摄像单元时,为提高数据处理效率,可以选取其中的一幅图像对标签的特征信息进行识别。当然,为了确保较高的定位精度,也可以选取多幅图像对标签的特征信息进行识别,然后求出自定位坐标。
标签的特征信息包括了标签的边缘坐标,例如:当标签是矩形时,特征信息包括了矩形的四个角的相关像素的坐标(或称角点的像素坐标);当标签是其他多边形时,特征信息包括了部分或全部的角、边的相关的像素坐标;当标签是具有不同色彩的图案时,特征信息包括了图案边沿或中心或其他部位的角、边的相关的像素坐标。总的来说,标签的特征信息的选取或者预设,应符合突出的特性(一般可以考虑色彩或形状特性),使在进行图像识别时,能快速被区分于图像的背景或其他内容。
标签信息库不同于场景地图数据库,前者用于存放标准的标签的特征信息以及该标签的位置信息的相关关系数据,后者用于存放场景地图数据。
标签信息库预存了场景中的多个标签的特征信息与对应标签所在的(空间)位置信息(即标签坐标的数据)的对应关系,使得通过根据特征信息可以搜索(或匹配)到标签信息库中的预存的对应的标签坐标数据,该标签坐标数据可以包括标签整体或其相关部位(如某个边沿、某个角)的世界坐标,也可以包括标签整体或其相关部位在场景中的相对坐标。如此,根据成像原理,便可依据标签坐标计算出摄像模块或者摄像模块光心的位置(即自定位坐标)。
至此,作为一个实施例,利用第一方式处理图像,结合场景地图数据可以得到视觉定位数据,即通过一种方法获得了摄像模块的位置信息;利用第二方式处理图像,结合标签信息库进行后续处理,可以得到自定位坐标的数据,即通过另一种方法获得了摄像模块的位置信息。在融合定位技术领域,技术人员可以利用现有的融合定位技术(如粒子滤波、卡尔曼滤波技术等)对这两种位置信息进行融合,从而得到修正后的位置信息,输出定位结果。
在一个实施例中,利用粒子滤波技术对前述两种位置信息进行融合,具体为:以所述自定位坐标为基准点,在场景地图空间体系中生成粒子群;根据所述视觉定位数据修正粒子的状态和分布;计算粒子评分并输出定位结果。
粒子滤波的步骤一般包括:生成粒子群(也可表述为:初始化粒子群)、模拟粒子运动(也可表述为:根据运动数据和运动模型更新粒子的状态,根据测量数据和测量模型来修正粒子的状态和分布)、计算粒子评分(也可表述为:选择得分最高的粒子作为该时间点目标的位置)。本领域技术人员可以根据技术常识合理地采用现有的模型来构建相关算法,在此不作过多展开。在生成粒子群的步骤中,可以选取自定位坐标作为基准点,能提升定位速度,利用视觉定位数据作为测量数据来修正粒子的状态和分布,能得到较可靠的定位结果。
一般来说,在“场景地图空间体系中”指的是以场景地图数据的坐标系作为基准。
在一个实施例中,场景地图为二维的栅格地图;当然,在其他实施例中,场景地图也可以是其他常见类型的地图。
在一个实施例中,所述标签坐标的数据包括标签角点的世界坐标数据;“以第二方式处理所述图像”还包括:在图像中提取标签角点的像素坐标数据;根据所述标签角点的世界坐标数据以及像素坐标数据,运用PnP算法求解,获得所述自定位坐标的数据;所述自定位坐标的数据包括摄像模块的位置(包括坐标)以及姿态(包括朝向角度或航向角)数据。
PnP(Perspective-n-Point,透视n点投影)算法属于现有技术。PnP问题起源于1841年的摄影测量学领域,由Fishler和Bolles于1981年正式提出,是计算机视觉研究领域的一个经典问题。PnP问题具体指已知相机内部参数和n个3D/2D参考点分别在世界坐标系下的坐标和图像坐标系下的坐标,利用这n个参考点之间的对应关系,求解相机在拍摄图像时所处的位姿。例如,当n的取值为3时,如图1所示,场景中标签的三个角点A、B、C在图像中的投影点分别为a、b、c,根据几何关系即可求出摄像头或摄像单元的光心0点的位置坐标。
在一个实施例中,当定位设备为室内机器(如机器人、具有定位功能的小车等)时,获取其里程计数据;在计算粒子评分前,根据所述里程计数据更新粒子的状态。
至此,作为又一个实施例,利用第一方式处理图像,结合场景地图数据可以得到视觉定位数据,即通过一种方法获得了摄像模块的位置信息;利用第二方式处理图像,结合标签信息库进行后续处理,可以得到自定位坐标的数据,即通过另一种方法获得了摄像模块的位置信息;利用机器的里程计所记录的数据,可以得到目标(例如机器的摄像模块)当下的角速度以及线速度的数据,即通过又一种方法获得了摄像模块的位置信息。在融合定位技术领域,技术人员可以利用现有的融合定位技术(如粒子滤波、卡尔曼滤波技术等)对这三种位置信息进行融合,从而得到修正后的位置信息,输出定位结果。
在一个实施例中,采用AMCL(Adaptive Monte Carlo Localization,自适应蒙特卡洛定位)算法对前述的三种位置信息进行融合,其中,在生成粒子群的步骤中,选取自定位坐标作为基准点;在模拟粒子运动的步骤中,利用里程计数据作为运动数据,结合运动模型更新粒子的状态,利用视觉定位数据作为测量数据,结合测量模型来修正粒子的状态和分布。
其中,运动模型(或称概率运动模型、条件密度、基于地图的运动模型)可以表示为p(xt|ut,xt-1,m),它描述了对xt-1执行运动控制ut后,定位设备取得的运动学的后验分布,也可以理解为被放置在地图m所表示的环境里的定位设备在位姿xt-1处执行控制量ut到达位姿xt的可能性。其中,xt表示定位设备假想的后继位姿,xt-1表示定位设备的初始位姿,属于模型中的输入项,也可以理解为前一时刻的位姿,它可以通过里程计等获取到的运动数据而被确定;m表示给定的、定位设备所在场景的对应的地图信息,属于模型中的输入项,一般来说这样的地图有多种类型,常用的是栅格地图。
其中,测量模型(或称环境测量模型、测量模型)可以表示为p(zt|xt,m),它描述在客观世界生成传感器(如视觉相机、激光雷达、声呐传感器等)测量的过程。其中,zt表示t时刻的位姿测量值,属于模型中的输入项,它可以通过例如视觉点云数据、激光点云数据等测量数据而被确定;xt表示定位设备假想的后继位姿;m表示地图信息,属于模型中的输入项。
粒子滤波算法、蒙特卡罗算法及其改进的相关算法很多,但主要步骤一般会和前文描述所吻合,未详述之处,也可以参照书籍《概率机器人》(作者:塞巴斯蒂安·特龙、沃尔弗拉姆·比加尔、迪特尔·福克斯)的描述进行理解,也可以参照其他现有文献进行理解。
在一个实施例中,所述摄像模块至少具有两个摄像单元;“以第一方式处理所述图像”包括:对所述摄像模块的至少两个摄像单元同步采集到的图像进行处理,获得图像视差数据;根据所述图像视差数据,生成像素深度数据;根据所述像素深度数据,生成视觉点云数据。采用视觉点云数据替代激光点云数据来匹配场景地图,好处在于对定位设备的配置要求更低,无需安装激光雷达。
作为补充而对部分的现有技术进行说明,视觉点云数据是根据对摄像模块获得的图像进行处理,生成深度图(深度图由像素深度数据组成)而求得的。测量像素深度的原理类似人通过左右眼看到的景物差异(视差)来判断景物到人之间的距离。图2为双目相机的成像示意图,意味着摄像模块具有两个摄像单元,两个摄像单元(或摄像头)在一个时刻同步采集到的两幅图像为第一图像11和第二图像12(图像的格式通常是YUV或RGB格式,本文提及的图像或图像数据并不在格式上进行限制,格式只是图像的存储方式,并非重点,无论采取何种格式,最终计算时都会从对应图像格式转换或解码得到每个像素的像素值),凭借这两幅图像可以计算得到该时刻的空间点Q在图像中的像素的深度值。图中,线段O1O2的长度,与两个摄像单元间的距离一致,该距离为摄像模块的基线(记为b)的长度,摄像模块的焦距记为f,对于空间点Q的投影到第一图像11和第二图像12上的像素点Q1、Q2的横坐标分别记为UL和UR,Q点的视差(Disparity)记为d,像素的深度值记为Z,根据以下公式可求得Q点对应的像素深度Z:
Z=(f·b)/d,d=UL-UR;
视差的求解可通过第一图像11和第二图像12之间的立体匹配求得,常用的立体匹配算法有BM(Boyer-Moore)和SGBM(Semi-Global Block Matching),由于计算量比较大,通常需要使用GPU或FPGA来计算。一个实施例中,使用海思3559的DPU来进行处理,得到视差图,并且视差值是亚像素的,处理速度可达到每秒30帧。
求得像素深度值Z后,还需通过以下公式计算每个像素点的3D坐标(X、Y、Z):
即依据上式所展示的关系,可以通过深度图(多个像素的深度值的集合)进行坐标转换,进而得到点云数据;上式的K为相机的内参矩阵,u和v分别为像素点的横纵像素坐标,fx、fv简称为相机不同方向上的焦距(focal-length),cx、cy为相对于成像平面的主点坐标(principal point);求得每个像素对应的3D坐标后,就得到定位所用的视觉点云数据。
本领域技术人员可以理解的是,视差与距离成反比:视差越大,距离越近。由于视差的最小值为一个像素,于是摄像模块的视觉深度存在一个理论最大值,由(f·b)的值所限制。所以当基线越长时,摄像模块的两个摄像单元具有较大的测量距离,反之,短基线的两个摄像单元的测量距离也较短。
为了保障测量数据的精度,在一个实施例中,所述摄像模块包括依次排列的第一摄像单元、第二摄像单元;以第一方式处理所述图像包括:处理后获得第一摄像单元以及第二摄像单元的视觉点云数据P1;对视觉点云数据P1进行筛选,得到点云集合Pa,使Pa={P1≤T},其中T为设定的距离阈值,{P1≤T}为视觉点云数据P1中,与所述摄像模块的距离在T以内的景物对应的点云数据;以所述点云集合Pa作为待匹配数据中的视觉点云数据。
距离阈值T的选取通常是根据摄像模块在不同的距离(即拍摄时摄像模块与景物的距离,也可以理解为物距)下的测距精度来确定的。具体可以通过选取场景里景物作为标记点,通过处理图像可以得到标记点对应的像素点,根据视差图数据可以求得深度值D1,然后利用更精密的仪器或者方式进行测量(包括人工用尺子测量),得出该标记点到摄像模块的真实距离D2,D1和D2之间数值的差距可以理解为测距误差或下文的标准精度误差值,据此可以得到在特定距离下的测距精度。同理,可以选取场景里不同位置、与摄像模块具有不同距离的多个点(或多个景物)作为标记点,从而获得更多的关于测距精度的数据。
本领域技术人员可以根据实际的场合需求,灵活地对T进行赋值。例如,若测距误差小于0.5米可被认为符合精度要求,且摄像模块进行拍摄后,得到的在小于10米的范围内的图像的部分,可以满足0.5米的测距精度要求,则可以对T赋值为10(米)。又例如,若测距误差小于0.3米可被认为符合测距精度要求,且摄像模块进行拍摄后,得到的在小于5米的范围内的图像的部分,可以满足0.3米的测距精度要求,则可以对T赋值为5(米)。
考虑到对于空间较大、较空旷的场景,只用一个基线长度的摄像模块无法满足不同物距下的均保持较高测距精度的要求,在一个实施例中,所述摄像模块包括依次排列的第一摄像单元、第二摄像单元以及第三摄像单元;以第一方式处理所述图像包括:处理后获得第一摄像单元以及第二摄像单元的视觉点云数据P1;处理后获得第一摄像单元以及第三摄像单元的视觉点云数据P2;进行点云数据融合,得到点云集合Pb,Pb={P1≤T}∪{P2>T};其中T为设定的距离阈值,{P1≤T}为视觉点云数据P1中,与所述摄像模块的距离在T以内的景物对应的点云数据,{P2>T}为视觉点云数据P2中,与所述摄像模块的距离大于T的景物对应的点云数据;以所述点云集合Pb作为待匹配数据中的视觉点云数据。如此,短基线得到的视觉点云数据P1以及长基线得到的视觉点云数据P2在图像质量上有互补之处,通过设置T值对两个点云数据进行有目的的筛选,将筛选出来的点云数据进行融合,得到的点云集合Pb能确保较高的精度,进一步地,利用点云集合Pb作为待匹配视觉点云数据,与场景地图数据进行匹配后,生成的视觉定位数据能更准确地反映出摄像模块的位置信息。
一个实施例中,可以选取分辨率为1080*1920,内参fx=1174.548331631的摄像模块(即相机),三个摄像单元(即摄像头)的水平间隔依次为10厘米,则短基线和长基线分别为10厘米和20厘米,此时可以令T=10(米)。本领域技术人员可以根据实际的摄像模块的性能以及对测距精度的要求,作其他的参数配置,在此不作过多展开。
事实上,摄像模块的摄像单元数量可以不限于两个或三个,还可以是更多的;摄像单元之间的距离可以是相等的,也可以是不等的,这样多个摄像单元的距离的组合可以形成多个不同长度的基线的组合,这样,对不同摄像单元得到的图像,依据不同T值而取不同部分的像素点进行处理,最后得到具有更高精度的点云集合。
在一个实施例中,进行点云数据融合前,对T进行赋值,包括以下步骤:选取两个摄像单元同步采集到的图像,获得像素深度数据;在所述像素深度数据中选取出至少一个待比较的像素点,获得该像素点的深度值D1;通过测量获得该像素点对应的位置与所述摄像模块的真实距离D2;根据所述深度值D1与所述真实距离D2计算得到标准精度误差值;对T进行赋值,使{P1≤T}以及{P2>T}的点云数据的精度误差值小于等于所述标准精度误差值。
本文提及的各类定位或者图像处理方法,一般需要将不同坐标系下的对象,在同一参考坐标系下进行配准处理,但有关坐标系或者基准点的统一属于公知常识,且不属于本公开的技术方案的重点,在此不作过多展开。
在一个实施例中,本公开提出了视觉定位的装置,包括:摄像模块,至少包括第一摄像单元及第二摄像单元(当然还可以包括第三摄像单元或者更多的摄像单元),用于响应拍摄指令而对场景进行拍摄,生成场景的图像;存储模块,用于存储预先生成的场景地图数据,所述场景地图数据由激光点云数据生成;存储模块可以包括多个存储单元,每个存储单元可以部分地存储着场景地图数据。处理模块,用于执行以下动作:从摄像模块处调取场景的图像,以第一方式处理所述图像,获得视觉点云数据;调取预先生成的场景地图数据,将包括所述视觉点云数据的待匹配数据与所述场景地图数据进行匹配,处理获得所述摄像模块的位置信息。处理模块可以包括多个处理单元,不同的处理单元可以执行一个步骤的不同环节。
本领域技术人员可以理解的是,实施例中的全部或部分步骤,可以通过计算机程序来指令相关的硬件实现,该程序可以存储于计算机可读介质中,可读介质可以包括闪存盘、移动硬盘、只读存储器、随机存取器、磁盘或光盘等各种可以存储程序代码的介质。在一个实施例中,本公开提出了一种计算机可读介质,所述计算机可读介质中存储有计算机程序,所述计算机程序由处理模块加载并执行以实现视觉定位的方法。
在符合本领域技术人员的知识和能力水平范围内,本文提及的各种实施例或者技术特征在不冲突的情况下,可以相互组合而作为另外一些可选实施例,这些并未被一一罗列出来的、由有限数量的技术特征组合形成的有限数量的可选实施例,仍属于本公开揭露的技术范围内,亦是本领域技术人员结合附图和上文所能理解或推断而得出的。
另外,多数实施例的描述是基于不同的重点而展开的,未详述之处,可参见现有技术的内容或本文的其他相关描述进行理解。
再次强调,上文所列举的实施例,为本公开较为典型的、较佳实施例,仅用于详细说明、解释本公开的技术方案,以便于读者理解,并不用以限制本公开的保护范围或者应用。在本公开的精神和原则之内所作的任何修改、等同替换、改进等而获得的技术方案,都应被涵盖在本公开的保护范围之内。