CN113077475A - 视觉定位方法、装置、系统、移动机器人及存储介质 - Google Patents

视觉定位方法、装置、系统、移动机器人及存储介质 Download PDF

Info

Publication number
CN113077475A
CN113077475A CN202110284952.0A CN202110284952A CN113077475A CN 113077475 A CN113077475 A CN 113077475A CN 202110284952 A CN202110284952 A CN 202110284952A CN 113077475 A CN113077475 A CN 113077475A
Authority
CN
China
Prior art keywords
map
sub
point
mobile robot
determining
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.)
Granted
Application number
CN202110284952.0A
Other languages
English (en)
Other versions
CN113077475B (zh
Inventor
易雨亭
李建禹
党志强
唐恒博
孙元栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikrobot Technology Co Ltd
Original Assignee
Hangzhou Hikrobot Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikrobot Technology Co Ltd filed Critical Hangzhou Hikrobot Technology Co Ltd
Priority to CN202110284952.0A priority Critical patent/CN113077475B/zh
Publication of CN113077475A publication Critical patent/CN113077475A/zh
Application granted granted Critical
Publication of CN113077475B publication Critical patent/CN113077475B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Remote Sensing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

本申请提出了视觉定位方法、装置、系统、移动机器人及存储介质。其中,一种视觉定位方法,包括:获取移动机器人拍摄的第一图像;根据本地的子地图和所述第一图像,确定移动机器人的当前位置点,每个子地图为所述目标区域对应的三维点云地图分割而成的多个子地图之一;确定当前位置点所处的子地图和所处的子地图的邻接子地图;确定所述本地的子地图是否包含所处的子地图的全部邻接子地图;在存在未被所述本地的子地图包含的邻接子地图时,获取所述本地的子地图未包含的邻接子地图。

Description

视觉定位方法、装置、系统、移动机器人及存储介质
技术领域
本申请涉及机器人技术领域,特别涉及视觉定位方法、装置、系统、移动机器人及存储介质。
背景技术
在移动机器人的应用场景中,同步建图与定位(Simultaneous Localization andMapping,缩写为SLAM)方案可以用于视觉定位。定位是指从视觉传感器(例如激光雷达或者图像传感器)生成的图像中提取特征信息,并基于提取的特征信息与地图,确定移动机器人的位姿。建图是指随着运动不断确定移动机器人最新位置点附近的地图点。移动机器人通常会本地存储目标区域的完整地图。目标区域的完整地图包括目标区域范围内的全部地图点。在建图过程中移动机器人不断从完整地图中获取最新位置点附近的地图点。目标区域范围越大,移动机器人需要存储的地图数据越多。
然而,移动机器人中用于视觉定位的内存资源是有限的。如果地图规模超出内存上限(即移动机器人中用于视觉定位的内存资源上限),移动机器人将无法直接从内存读取到目标区域的全部地图,而只能对内存中地图(即目标区域的一部分地图)的范围进行视觉定位。由此可见,视觉定位的定位范围,受到移动机器人中内存资源的限制。
因此,视觉定位的定位范围受到内存限制是需要解决的技术问题。
发明内容
本申请提出了新的视觉定位方案,使得移动机器人能够在任意范围的目标区域(尤其是较大范围的目标区域)中进行自主定位和导航,从而使得视觉定位的定位范围能够不受限于存储资源的规模。
根据本申请一个方面,提供一种视觉定位方法,包括:
获取移动机器人拍摄的第一图像;
根据本地的子地图和所述第一图像,确定移动机器人的当前位置点,每个子地图属于目标区域对应的三维点云地图分割而成的多个子地图之一;
确定当前位置点所处的子地图和所处的子地图的邻接子地图;
确定所述本地的子地图是否包含所处的子地图的全部邻接子地图;
在存在未被所述本地的子地图包含的邻接子地图时,获取所述本地的子地图未包含的邻接子地图。
在一些实施例中,所述目标区域内任一个子地图的数据量和该子地图的邻接子地图的数据量之和不超过移动机器人的目标存储容量,目标存储容量为所述移动机器人中用于存储地图的存储资源的上限值。
在一些实施例中,所述目标区域的子地图尺寸相同,并且每个子地图的数据量不超过数据量阈值。
在一些实施例中,所述数据量阈值为所述移动机器人的目标存储容量与所述目标区域的子地图数量阈值的比值,其中,目标存储容量为所述移动机器人中用于存储地图的存储资源的上限值,所述子地图数量阈值为目标区域内子地图对应的地图数量值中的极大值,每个子地图对应的地图数量值为该子地图及该子地图的邻接子地图的总数,所述子地图数量阈值小于等于9。
在一些实施例中,所述子地图为包含地图点的矩形区域,所处的子地图的邻接子地图为与所处的子地图的矩形区域存在共同的角点的子地图;
所述获取所述本地的子地图未包含的邻接子地图,包括:
向服务器发送本地的子地图未包含的邻接子地图的标识,接收服务器返回的子地图。
在一些实施例中,每个子地图的数据包括该子地图的标识、该子地图的区域范围、该子地图内的地图点和该子地图的邻接子地图的标识。
在一些实施例中,所述根据本地的子地图和所述第一图像,确定移动机器人的当前位置点,包括:
从所述第一图像中提取特征点和确定每个特征点的特征信息;
根据提取的特征点的特征信息和本地的子地图中地图点的特征信息,确定提取的特征点与地图点之间的匹配对,每个匹配对包括特征信息相匹配的一个特征点和一个地图点;
根据所述匹配对,确定移动机器人的当前位置点。
在一些实施例中,所述获取移动机器人拍摄的第一图像之前,上述视觉定位方法进一步包括:
获取移动机器人启动时拍摄的第二图像;
获取移动机器人的多个上线地图,其中,所述移动机器人启动时的初始位置点处于所述多个上线地图中的一个上线地图内,所述多个上线地图属于所述三维点云地图;
从所述第二图像中提取特征点和确定每个特征点的特征信息;
根据第二图像中特征点的特征信息和上线地图中地图点的特征信息,确定第二图像中特征点与上线地图中地图点之间的匹配对,每个匹配对包括特征信息相匹配的一个特征点和一个地图点;
根据第二图像中特征点与地图点之间的匹配对,确定移动机器人启动时的初始位置点;
获取所述初始位置点对应的子地图和该子地图的邻接子地图。
在一些实施例中,所述根据本地的子地图和所述第一图像,确定移动机器人的当前位置点,包括:
从所述第一图像中提取特征点和确定每个特征点的特征信息;
根据特征点的特征信息和本地的子地图中地图点的特征信息,确定特征点与地图点之间的匹配对,每个匹配对包括特征信息相匹配的一个特征点和一个地图点;
根据所述匹配对,确定移动机器人的当前位置点。
在一些实施例中,所述根据所述第二图像和所述多个上线地图,确定移动机器人的初始位置点,包括:
从所述第二图像中提取特征点和确定每个特征点的特征信息;
根据第二图像中特征点的特征信息和上线地图中地图点的特征信息,确定第二图像中特征点上线地图中地图点之间的匹配对,每个匹配对包括特征信息相匹配的一个特征点和一个地图点;
根据第二图像中特征点与地图点之间的匹配对,确定移动机器人启动时的初始位置点。
在一些实施例中,所述获取所述本地的子地图未包含的邻接子地图之前,进一步包括:
删除本地的子地图中的目标子地图,所述目标子地图不属于当前位置点所处的子地图和所处的子地图的邻接子地图。
在一些实施例中,所述根据特征点的特征信息和本地的子地图中地图点的特征信息,确定特征点与地图点之间的匹配对,包括:
计算特征点的特征信息与地图点的特征信息之间的相似度,并将该相似度作为特征点与地图点之间的相似度;
根据特征点与地图点之间的相似度,确定匹配对。
在一些实施例中,所述计算特征点与本地的子地图中地图点之间的相似度,包括:
计算特征点与本地的子地图中地图点之间的汉明距离,所述汉明距离用于表征所述相似度,汉明距离与相似度成反比;
所述根据特征点与地图点之间的相似度,确定匹配对,包括:
对于任一个特征点,从本地的子地图中选定与该特征点的汉明距离最小的地图点;
在选定的地图点与该特征点的汉明距离小于距离阈值时,将该特征点和选定的地图点确定为一个匹配对。
在一些实施例中,所述根据所述匹配对,确定移动机器人的当前位置点,包括:
根据匹配对中特征点的坐标、地图点的坐标和移动机器人的相机参数,确定机器人的当前位置点。
根据本申请一个方面,提供一种视觉定位装置,包括:
图像获取单元,获取移动机器人拍摄的第一图像;
定位单元,根据本地的子地图和所述第一图像,确定移动机器人的当前位置点,每个子地图为所述目标区域对应的三维点云地图分割而成的多个子地图之一;
地图更新单元,用于:确定当前位置点所处的子地图和所处的子地图的邻接子地图;确定所述本地的子地图是否包含所处的子地图的全部邻接子地图;在存在未被所述本地的子地图包含的邻接子地图时,获取所述本地的子地图未包含的邻接子地图。
根据本申请一个方面,提供一种移动机器人,包括:
相机;
存储器;
处理器;
程序,存储在该存储器中并被配置为由所述处理器执行,所述程序包括用于执行根据本申请的视觉定位方法的指令。
根据本申请一个方面,提供一种存储介质,存储有程序,所述程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据本申请的视觉定位方法。
根据本申请一个方面,提供一种视觉定位系统,包括:
移动机器人,用于执行根据本申请实施例的视觉定位方法;
服务器,用于将目标区域对应的三维点云地图分割成多个子地图。
在一些实施例中,所述服务器根据下述方式将目标区域对应的三维点云地图分割成多个子地图:
将包含目标区域的三维点云地图的外接矩形区域进行分割,得到相同尺寸的多个分割区域,并将包含地图点的分割区域确定为有效区域;
在至少一个有效区域的数据量超过数据量阈值时,继续对每个有效区域进行分割,直到分割结果中每个有效区域的数据量不超过数据量阈值,并将分割结果中每个有效区域确定为一个目标区域的子地图。
在一些实施例中,所述服务器根据下述方式确定所述数据量阈值:
确定子地图数量阈值,所述子地图数量阈值为目标区域内子地图对应的地图数量值中的极大值,每个子地图对应的地图数量值为该子地图及该子地图的邻接子地图的总数,所述子地图数量阈值小于等于9;
确定所述移动机器人的目标存储容量与子地图数量阈值的比值,并将该比值作为所述数据量阈值,其中,目标存储容量为所述移动机器人中用于存储地图的存储资源的上限值。
在一些实施例中,所述服务器根据下述方式将目标区域对应的三维点云地图分割成多个子地图:
将包含目标区域的三维点云地图的外接矩形区域进行分割,得到包含相同尺寸的多个分割区域的分割结果,并将包含地图点的分割区域确定为有效区域;
对于分割结果中每个有效区域,确定该有效区域对应的区域总数;
根据分割结果中每个有效区域对应的区域总数,得到分割结果中的有效区域对应的区域总数中的极大值,其中,每个有效区域对应的区域总数为该有效区域和该有效区域的邻接有效区域的数量和;
将目标存储容量与极大值的比值作为数据量阈值,其中,目标存储容量为所述移动机器人中用于存储地图的存储资源的上限值;
在至少一个有效区域的数据量超过数据量阈值时,继续对每个有效区域进行分割,确定分割结果中有效区域对应的数据量阈值,直到分割结果中每个有效区域的数据量不超过数据量阈值,并将分割结果中每个有效区域确定为一个目标区域的子地图。
在一些实施例中,服务器根据下述方式将目标区域对应的三维点云地图分割成多个子地图:
将包含目标区域的三维点云地图的外接矩形区域进行分割,得到相同尺寸的多个分割区域,并将包含地图点的分割区域确定为有效区域;
在至少一个有效区域对应的数据总量超过目标存储容量时,继续对每个有效区域进行分割,直到分割结果中每个有效区域对应的数据总量不超过目标存储容量,并将分割结果中每个有效区域确定为一个目标区域的子地图,其中,有效区域对应的数据总量为该有效区域的数据量以及该有效区域的邻接有效区域的数据量之和。
综上,根据本申请的视觉定位方案,通过更新当前位置点和更新本地的子地图,能够将移动机器人存储的子地图范围始终按照目标范围进行更新。目标范围为当前位置点所处的子地图和所处子地图的邻接子地图。这里,根据本申请的视觉定位方案能够保证每次更新后的地图数据量不超过当前位置点所处的子地图的数据量和所处子地图的邻接子地图的数据量之和。
附图说明
图1A示出了根据本申请一些实施例的应用场景的示意图;
图1B示出了根据本申请一些实施例的对三维点云地图进行分割的方法100的流程图;
图1C示出了目标区域的三维点云地图140的俯视图;
图1D示出了按照四叉树方式对图1B中三维点云地图进行第一次分割后的分割结果示意图;
图1E示出了按照四叉树方式进行第二次分割后得到的分割结果示意图;
图2示出了根据本申请一些实施例的对三维点云地图进行分割的方法200的流程图;
图3示出了根据本申请一些实施例的对三维点云地图进行分割的方法300的流程图
图4示出了根据本申请一些实施例的视觉定位方法400的流程图;
图5示出了根据本申请一些实施例的确定移动机器人的当前位置点的方法500的流程图;
图6示出了根据本申请一些实施例的特征提取的流程;
图7示出了根据本申请一些实施例的确定匹配对的方法700的流程图;
图8示出了根据本申请一些实施例的确定移动机器人位姿的示意图;
图9示出了根据本申请一些实施例的三维点云地图的数据示例;
图10示出了根据本申请一些实施例的视觉定位方法800的流程图;
图11示出了根据本申请一些实施例的确定移动机器人的初始位置点的方法1100的流程图;
图12示出了根据本申请一些实施例的视觉定位装置1200的示意图;
图13示出了根据本申请一些实施例的视觉定位系统的示意图;
图14示出了根据本申请一些实施例的移动机器人的示意图。
具体实施方式
为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本申请进一步详细说明。
图1A示出了根据本申请一些实施例的应用场景的示意图。
如图1A所示,应用场景可以包括移动机器人110和服务器120。移动机器人可以在目标区域130中移动。移动机器人例如为轮式移动机器人、步行移动机器人、履带式移动机器人、爬行机器人、蠕动式机器人或游动式机器人等机器人。移动机器人例如可以采用同步建图与定位等视觉定位方式进行自主导航。然而,移动机器人的存储资源(例如内存)是有限的。移动机器人中分配用于存放三维点云地图的存储资源不能超过一个存储上限。目标区域130的三维点云地图的总体规模容易超过存储上限。为此,本申请实施例可以对目标区域130的三维点云地图进行分割,以得到多个子地图。移动机器人110中可以在本地存储有限数量的子地图(例如包括移动机器人所处的子地图和所处的子地图的邻接子地图),并利用子地图进行自主定位,以及根据所处的位置更新本地存储的子地图。这样,本申请的实施例可以保证移动机器人110可以在三维点云地图的规模较大的目标区域中实现自主导航,并且使得本地存储的地图数据始终不会超过存储上限。
服务器120可以生成目标区域对应的子地图,并且向移动机器人110提供子地图。例如图1B示出了目标区域的三维点云地图140的俯视图。图1B中包括大量地图点。每个地图点的位置可以表示为世界坐标系等三维坐标系中的三维坐标。图1B的俯视图可以认为是三维点云地图在三维坐标系的地平面上的二维投影图像。三维坐标系例如为(X,Y,Z)。其中,平面(X,Y)为地平面。
每个地图点的附属信息可以包括该地图点的特征信息。这里,地图点的特征信息用于描述该地图点的特征,例如可以表示为二进制描述符。描述符例如为256位。
在一些实施例中,服务器120例如可以通过方法100生成目标区域的子地图。
图1C示出了根据本申请一些实施例的对三维点云地图进行分割的方法100的流程图。方法100例如可以由服务器120执行。
在步骤S101中,将包含目标区域的三维点云地图的外接矩形区域进行分割,得到相同尺寸的多个分割区域,并将包含地图点的分割区域确定为有效区域。这里,步骤S101例如可以按照多叉树方式对外接矩形区域分割。例如,步骤S101可以按照二叉树、三叉树、四叉树、八叉树等方式进行分割操作。
在步骤S102中,在至少一个有效区域的数据量超过数据量阈值时,继续对每个有效区域进行分割,直到分割结果中每个有效区域的数据量不超过数据量阈值,并将分割结果中每个有效区域确定为一个目标区域的子地图。这里,为了确定数据量阈值服务器120可以确定子地图数量阈值。子地图数量阈值为目标区域内子地图对应的地图数量值中的极大值。每个子地图对应的地图数量值为该子地图及该子地图的邻接子地图的总数。子地图数量阈值小于等于9。在此基础上,服务器120确定移动机器人的目标存储容量与子地图数量阈值的比值,并将该比值作为数据量阈值。其中,目标存储容量为移动机器人中用于存储地图的存储资源的上限值。
综上,方法100能够对目标区域的三维点云地图进行分割,并且保证子地图的数据量不超过数据量阈值,得到包含多个子地图的目标区域的地图。这样,目标区域内任一个子地图的数据量和该子地图的邻接子地图的数据量之和不超过移动机器人的目标存储容量,有助于移动机器人本地存储的地图数据量不超过目标存储容量。
例如,图1D示出了按照四叉树方式对图1B中三维点云地图进行第一次分割后的分割结果示意图。如图1D所示,在第一次分割过程中,服务器120可以将三维点云地图的外接矩形框分割为4个分割区域。4个分割区域中包含地图点的分割区域为1、2和3。即,第一次分割后的有效区域包括分割区域为1、2和3。不包含地图点的分割区域为无效区域。无效区域为不属于移动机器人的活动范围的区域。本申请实施例可以放弃不包含地图点的分割区域。
在一些实施例中,在有效区域1、2和3中至少一个分割区域的地图规模(数据量)超过数据量阈值时,服务器120可以对有效区域1、2和3进行又一次分割。例如,图1E示出了按照四叉树方式进行第二次分割后得到的分割结果示意图。第二次分割后得到的有效区域包括11、12、21、22、23、31和32。在有效区域11、12、21、22、23、31和32中至少一个有效区域不超过数据量阈值,服务器120可以对有效区域11、12、21、22、23、31和32进行又一次分割。依次类推,服务器120可以在一次分割后得到的每个有效区域不超过数据量阈值时,服务器120可以停止分割,并将每个有效区域确定为目标区域的一个子地图。
图2示出了根据本申请一些实施例的对三维点云地图进行分割的方法200的流程图。方法200例如在服务器120中执行。
如图2所示,在步骤S201中,将包含目标区域的三维点云地图的外接矩形区域进行分割,得到包含相同尺寸的多个分割区域的分割结果,并将包含地图点的分割区域确定为有效区域。这里,步骤S201例如可以采用二叉数、三叉树、四叉树等方式进行分割。
在步骤S202中,对于分割结果中每个有效区域,确定该有效区域对应的区域总数;
在步骤S203中,根据分割结果中每个有效区域对应的区域总数,确定分割结果中的有效区域对应的区域总数中的极大值。其中,一个有效区域对应的区域总数为该有效区域和该有效区域的邻接有效区域的数量和。例如,步骤S201分割得到的分割结果中有效区域包括有效区域a1,a2和a3。a1的邻接有效区域为a2,因此,步骤S202可以确定有效区域a1对应的区域总数为2。有效区域a2的邻接区域包括a1和a3。有效区域a2对应的区域总数为3。a3的邻接有效区域为a2,有效区域a3对应的区域总数为2。步骤S203可以确定分割结果中区域总数中的极大值为3。
在步骤S204中,将目标存储容量与极大值的比值作为数据量阈值,其中,目标存储容量为移动机器人中用于存储地图的存储资源的上限值。
在步骤S205中,在至少一个有效区域的数据量超过数据量阈值时,继续对每个有效区域进行分割,确定分割结果中有效区域对应的数据量阈值,直到分割结果中每个有效区域的数据量不超过数据量阈值,并将分割结果中每个有效区域确定为一个目标区域的子地图。例如,对于一次分割操作得到的分割结果,在至少一个有效区域的数据量超过数据量阈值时,步骤S205可以继续对每个有效区域进行分割,并且执行与步骤S202、S203和S204类似的操作,以确定本次分割的分割结果中每个有效区域对应的区域总数,得到本次分割结果中有效区域对应的区总总数中的极大值,确定数据量阈值。在此基础上,步骤S205可以在分割结果中每个有效区域的数据量不超过数据量阈值时,将分割结果中每个有效区域确定为一个目标区域的子地图。否则,在分割结果中每个有效区域的数据量不超过数据量阈值时,步骤S205可以继续进行分割的操作。这里,步骤S205最终确定的子地图数量阈值也可以认为是目标区域内子地图对应的地图数量中极大值,每个子地图对应的地图数量为该子地图及该子地图的邻接子地图的总数。
综上,方法200能够在分割三维点云的过程中,根据有效区域对应的区域总数中的极大值,自适应调整数据量阈值。这样,在分割结果中有效区域对应的区域总数的极大值较小(例如,极大值为小于9的值6)的场景中,方法200能够避免由于按照固定的数据量阈值(固定的数据量阈值例如为移动机器人的目标存储容量与9的比值)生成子地图而出现子地图的数据量过小的情况。这里,子地图的数据量越小时,移动机器人存储的地图数据量(即一个子地图以及该子地图的邻接子地图的总数据量)与移动机器人的目标存储容量差距越大。因此,子地图的数据量过小会导致目标存储容量无法充分利用。另外,子地图的数据量越小移动机器人更新子地图的频率越高。换言之,方法200通过自适应调整数据量阈值,能够在保证移动机器人所要存储的数据量(即,本地存储的地图数据量)不超过目标存储容量的前提下,充分利用移动机器人的目标存储容量对应的存储资源,并降低移动机器人更新子地图的频率。
在一些实施例中,目标区域对应的由三维点云地图的分割结果可以包括目标区域内多个子地图。其中,每个子地图的数据例如可以包括该子地图的标识、该子地图的区域范围、该子地图内的地图点和该子地图的邻接子地图的标识。
图3示出了根据本申请一些实施例的对三维点云地图进行分割的方法300的流程图。方法300例如在服务器120中执行。
如图3所示,在步骤S301中,将包含目标区域的三维点云地图的外接矩形区域进行分割,得到相同尺寸的多个分割区域,并将包含地图点的分割区域确定为有效区域。
在步骤S302中,在至少一个有效区域对应的数据总量超过目标存储容量时,继续对每个有效区域进行分割,直到分割结果中每个有效区域对应的数据总量不超过目标存储容量,并将分割结果中每个有效区域确定为一个目标区域的子地图。其中,有效区域对应的数据总量为该有效区域的数据量以及该有效区域的邻接有效区域的数据量之和。
综上,方法300可以对三维点云地图进行分割,并在有效区域对应的数据总量是否超过目标存储容量继续进行分割,从而能够保证子地图对应的数据总量不超过目标存储容量,有助于移动机器人始终能够在允许容量(即,目标存储容量)的范围内同时存储一个子地图以及该子地图的邻接子地图。图4示出了根据本申请一些实施例的视觉定位方法400的流程图。方法400例如可以由移动机器人110执行。
如图4所示,在步骤S401,获取移动机器人拍摄的第一图像。例如,移动机器人110可以在目标区域130中执行步骤S401。
在步骤S402中,根据本地的子地图和第一图像,确定移动机器人的当前位置点。步骤S402涉及的每个子地图为目标区域对应的三维点云地图分割而成的多个子地图之一。
在步骤S403中,确定当前位置点所处的子地图和所处的子地图的邻接子地图。这里,子地图之间是否邻接例如可以通过子地图的矩形区域(例如子地图的点云的外接矩形框)是否邻接来确定。例如,两个子地图的矩形区域存在共同的角点,则两个子地图相互为邻接子地图。
在步骤S404中,确定本地的子地图是否包含当前位置点所处的子地图的全部邻接子地图。
在步骤S404确定存在未被本地的子地图包含的邻接子地图时,方法400可以执行步骤S405,获取本地的子地图未包含的邻接子地图。例如,步骤S405可以从服务器120获取需要的子地图。这样,移动机器人110可以更新本地存储的子地图,以保证每次更新本地的子地图后,移动机器人110能够保证移动机器人110的移动过程始终处于本地的子地图范围内。另外,在步骤S404确定本地的子地图包含当前位置点所处的子地图的全部邻接子地图时,方法400不需要再去获取当前位置点所处的子地图的邻接子地图,因此可以结束方法400的执行流程。换言之,在本地的子地图包含当前位置点所处的子地图的全部邻接子地图时,本申请实施例可以确定当前位置点所处的子地图未变(即移动机器人的当前位置点所处子地图与执行方法400之前移动机器人所处的子地图相同),因此,方法400不需要对本地的子地图进行更新,直到移动机器人所处子地图变化后更新当前位置点所处的子地图的邻接子地图。综上,根据本申请的视觉定位方法400,通过更新当前位置点(即步骤S402)和更新本地的子地图(即步骤S405),能够将移动机器人存储的子地图范围始终按照目标范围进行更新。目标范围为当前位置点所处的子地图和所处子地图的邻接子地图。这里,根据本申请的视觉定位方法400能够保证每次更新后的地图数据量不超过当前位置点所处的子地图的数据量和所处子地图的邻接子地图的数据量之和。
在一些实施例中,目标区域内任一个子地图的数据量和该子地图的邻接子地图的数据量之和不超过移动机器人的目标存储容量。因此,在移动机器人更新子地图的过程中,方法400能够保证本地存储的子地图的数据量始终不超过允许的存储容量上限。这样,方法400有助于移动机器人可以在本地存储的子地图的数据量始终不超过允许的存储容量上限的前提下,使得更新结果中始终包括当前位置点所处的子地图和所处的子地图的邻接子地图,而不需要存储目标区域的全部地图信息,从而能够进行稳定的自主定位和导航,并且使得视觉定位的定位范围能够不受限于本地存储资源的规模。
在一些实施例中,目标区域的子地图尺寸相同,并且每个子地图的数据量不超过数据量阈值。数据量阈值为移动机器人的目标存储容量与子地图数量阈值的比值。其中,目标存储容量为移动机器人中用于存储地图的存储资源的上限值。子地图数量阈值为目标区域内子地图对应的地图数量值中的极大值,每个子地图对应的地图数量值为该子地图及该子地图的邻接子地图的总数。子地图数量阈值小于等于9。由于单个子地图的数据量不超过数据量阈值,并且数据量阈值为目标存储容量子地图数量阈值的比值,因此,单个子地图的数据量和该子地图的邻接子地图的数据量之和不超过移动机器人的目标存储容量,有助于移动机器人本地存储的地图数据量不超过目标存储容量。在此基础上,根据本申请的视觉定位方法400能够在用于存储地图点的存储资源有限的情况下,在任意范围的目标区域(尤其是较大范围的目标区域)中,每次在移动机器人所处的位置点更新后,按照相应的目标范围进行地图更新,使得移动机器人的地图每次更新为当前位置点所处的子地图和所处子地图的邻接子地图,而不需要存储目标区域的全部地图信息,从而能够进行稳定的自主定位和导航,并且使得视觉定位的定位范围能够不受限于本地存储资源的规模。
在一些实施例中,在一些实施例中,步骤S402可以实施为方法500。
如图5所示,在步骤S501中,从第一图像中提取特征点和确定每个特征点的特征信息。这里,一个特征点的特征信息用于将该特征点与其他特征点进行区分,例如可以表示为一个二进制描述符,例如为256位描述符。在一些实施例中,步骤S501可以采用旋转方向不变特征提取(Oriented Features from Accelerated Segment Test and Rotated BinaryRobust Independent Elementary Features,缩写为ORB)算法、尺度不变特征变换(ScaleInvariant Feature Transform,缩写为SIFT)或者加速健壮特征提取(Speeded Up RobustFeatures,缩写为SURF)算法等方式进行特征点提取和确定特征信息。
例如,ORB方式的特征点提取流程可以实施为图6的流程图。
如图6所示,步骤S601可以基于快速加速片段特征(Features from AcceleratedSegment Test,缩写为FAST)的方式,确定第一图像中的多个特征点。这里,步骤S601可以选定第一图像中比较显著的像素点作为特征点,如将轮廓点,较暗区域中的亮点,较亮区域中的暗点等作为特征点。
在此基础上,步骤S602可以确定多个特征点的主方向。例如,步骤S602可以采用灰度质心法确定每个特征点的主方向。例如,对于特征点p,步骤S602可以计算特征点p为圆心的一个圆形区域内像素点的灰度质心,并将特征点p到灰度质心的方向作为特征点P的主方向。
在步骤S603中,根据每个特征点的主方向,确定每个特征点的特征信息。例如,对于任一个特征点,S603可以将该特征点的邻接区域的坐标轴旋转为与特征点的主方向一致,然后根据邻接区域内像素点的梯度方向生成特征点的特征信息。特征信息例如为二进制描述符。例如S603可以基于旋转不变二进制鲁邦独立元素特征(Binary RobustIndependent Elementary Features,缩写为Brief)方式,确定每个特征点的二进制描述符,可以称为Brief描述符。
综上,方法600能够通过ORB方式,准确地确定每个特征点的特征信息,以便后续确定特征点与地图点的匹配关系。
在步骤S502中,根据特征点的特征信息和本地的子地图中地图点的特征信息,确定特征点与地图点之间的匹配对。每个匹配对包括特征信息相匹配的一个特征点和一个地图点。这里,一个匹配对中的特征点可以认为是该匹配对中地图点对应的像素点。
在步骤S503中,根据匹配对,确定移动机器人的当前位置点。
综上,方法500可以根据第一图像中提取特征点、每个特征点的特征信息以及地图点的特征信息,确定第一图像中特征点与地图点的对应关系,从而能够根据该对应关系,确定拍摄第一图像时移动机器人的位置点。
在一些实施例中,步骤S502可以实施为方法700。
如图7所示,在步骤S701中,计算特征点的特征信息与地图点的特征信息之间的相似度,并将该相似度作为特征点与地图点之间的相似度。例如,步骤S701可以计算特征点与本地的子地图中地图点之间的汉明距离。汉明距离用于表征相似度。汉明距离与相似度成反比。一个特征点与一个地图点之间的汉明距离为:在地图点的二进制的特征信息与地图点的二进制的特征信息之间按位异或的结果中,“1”的总位数。
另外,步骤S701也可以通过计算余弦距离等方式表征相似度,本申请对此不做限制。
在步骤S702中,根据特征点与地图点之间的相似度,确定匹配对。例如,对于任一个特征点,S702可以从本地的子地图中选定与该特征点的汉明距离最小的地图点。在此基础上,
S702可以在选定的地图点与该特征点的汉明距离小于距离阈值时,将该特征点和选定的地图点确定为一个匹配对。距离阈值为5。
综上,方法700通过计算特征点与地图点之间的相似性,可以准确地确定匹配对,以便后续利用匹配对确定移动机器人的位姿。
在一些实施例中,步骤S503可以根据匹配对中特征点的坐标、地图点的坐标和移动机器人的相机参数,确定机器人的当前位置点。这里,特征点的坐标是指特征点在图像坐标系中的图像坐标。地图点的坐标例如为三维地图的三维坐标系中的空间坐标。
例如,步骤S503可以根据下述公式确定移动机器人的当前位置点。
Figure BDA0002980070910000121
其中:
Figure BDA0002980070910000122
为匹配对中特征点的图像坐标的齐次表示。
Figure BDA0002980070910000123
为匹配对中地图点的空间坐标的齐次表示。
K为相机内参。
Tbc为相机外参,即相机相对于移动机器人的外参。
Twb为移动机器人的位姿。
另外说明的是,步骤S503可以根据透视N点法(Perspective-N-Point,缩写为PNP)或其他方式求解上述公式的Twb,即确定移动机器人的位姿。
例如,图8示出了根据本申请一些实施例的确定移动机器人位姿的示意图。如图8所示,根据地图点A、B和C,以及第一图像P1中的特征点a、b和c,步骤S503可以确定镜头的坐标点T以及镜头的朝向。这里,镜头的坐标点T可以作为移动机器人的当前位置点。
在一些应用场景中,服务器120除了管理子地图之外,还可以管理移动机器人110的多个上线地图。这里,其中,多个上线地图属于三维点云地图,为移动机器人启动时的初始位置点所处的区域范围,每个上线地图为三维点云地图的一部分。每个上线地图为矩形、圆形等形状的地图区域。移动机器人110在部署到目标区域时的初始位置点会处于一个上线地图内。这里,上线地图例如可以等于子地图的地图尺寸或者小于子地图的地图尺寸。例如,服务器中地图数据可以表示为图9的数据示例。如图9所示,目标区域的三维点云地图可以包括多个上线地图和多个子地图。其中,每个上线地图包括多个地图点。每个子地图的数据包括每个子地图的标识、区域范围和区域内的点云。区域范围例如可以用子地图的外接矩形的顶点坐标表示。另外,每个子地图的数据也可以包括该子地图的邻接子地图的标识。
图10示出了根据本申请一些实施例的视觉定位方法1000的流程图。方法1000例如可以由移动机器人110执行。
如图10所示,在步骤S1001中,获取移动机器人启动时拍摄的第二图像。例如,移动机器人被部署到一个初始位置点后。移动机器人在启动时,可以执行步骤S1001。
在步骤S1002中,获取移动机器人的多个上线地图。其中,多个上线地图为移动机器人启动时的初始位置点所处的区域范围,每个上线地图为三维点云地图。例如,步骤S1002可以向服务器120发送对上线地图的请求,以便接收服务器120返回的上线地图的点云数据。
在步骤S1003中,根据第二图像和多个上线地图,确定移动机器人的初始位置点。
在步骤S1004中,获取初始位置点对应的子地图和该子地图的邻接子地图。
综上,通过获取上线地图和拍摄启动时的第二图像,方法1000能够确定移动机器人的初始位置点和初始化本地存储的子地图,以便移动机器人基于本地的子地图进行自主定位。
在完成本地的子地图的初始化之后,移动机器人可以继续拍摄图像,并根据拍摄的图像进行本地的子地图更新和定位。
在步骤S1005中,获取移动机器人拍摄的第一图像。
在步骤S1006中,根据本地的子地图和第一图像,确定移动机器人的当前位置点。步骤S1006涉及的每个子地图属于目标区域对应的三维点云地图分割而成的多个子地图之一。
在步骤S1007中,确定当前位置点所处的子地图和所处的子地图的邻接子地图。这里,子地图之间是否邻接例如可以通过子地图的矩形区域(例如外接矩形框)是否邻接来确定。例如,两个子地图的外接矩形框存在共同的角点,则两个子地图相互为邻接子地图。
在一些实施例中,每个子地图的数据包括该子地图的邻接子地图的标识。步骤S1007可以通过当前位置点所处子地图的数据中携带的邻接子地图的标识确定所处的子地图的邻接子地图。
在一些实施例中,步骤S1007可以从服务器120获取多个子地图的区域范围和多个子地图的标识。这里,区域范围例如可以通过子地图的外接矩形的角点坐标表示。这样,基于多个子地图的区域范围,步骤S1007可以确定所处的子地图的邻接子地图。另外说明的是,子地图的区域范围和子地图的标识也可以在移动机器人启动时从服务器120获取。在一些实施例中,步骤S1007确定本地子地图的集合为M,另外,步骤S1007可以确定所处的子地图的邻接子地图的集合为N。
在步骤S1008中,删除本地的子地图中的目标子地图。目标子地图不属于当前位置点所处的子地图和所处的子地图的邻接子地图。例如,步骤S1007可以确定目标子地图为N-M。N-M表示本地的子地图中除所处子地图的邻接子地图之外的其他子地图,可以记为集合B。集合B为可以删除的本地的子地图。步骤S1008例如可以删除集合B中的子地图。这样,方法1000可以释放存储空间,以便后续存放新的子地图,即从服务器120获取的本地的子地图未包含的邻接子地图。
在步骤S1009中,确定本地的子地图是否包含当前位置点所处子地图的全部邻接子地图。
例如,步骤S1009可以根据集合M和N,确定M-N。M-N表示所处的子地图的本地未包含的邻接子地图,例如可以记为集合A。这里,集合A为需要更新到本地的邻接子地图。步骤S1009可以判断集合A是否为空,在集合A不为空时,步骤S1009可以确定本地的子地图未包含当前位置点所处子地图的全部邻接子地图。如果集合A为空,步骤S1009可以确定本地的子地图包含当前位置点所处子地图的全部邻接子地图。
在步骤S1009确定存在未被本地的子地图包含的邻接子地图时,方法1000可以执行步骤S1010,获取本地的子地图未包含的邻接子地图。例如,步骤S1010可以向服务器发送本地的子地图未包含的邻接子地图的标识,以便获取服务器返回的子地图。
这样,移动机器人110可以更新本地存储的子地图,以保证每次更新本地的子地图后,移动机器人110能够保证移动机器人110的移动过程始终处于本地的子地图范围内。
在一些实施例中,步骤S1003可以实施为方法1100。
如图11所示,在步骤S1101中,从第二图像中提取特征点和确定每个特征点的特征信息。
在步骤S1102中,根据第二图像中特征点的特征信息和上线地图中地图点的特征信息,确定第二图像中特征点与上线地图中地图点之间的匹配对,每个匹配对包括特征信息相匹配的一个特征点和一个地图点。
在步骤S1103中,根据第二图像中特征点与地图点之间的匹配对,确定移动机器人启动时的初始位置点。
综上,方法1100能够通过第二图像中特征点与地图点的匹配关系,确定移动机器人的初始位置。
图12示出了根据本申请一些视觉定位装置1200的示意图。视觉定位装置1200例如可以部署在移动机器人110中。
如图12所示,装置1200可以包括图像获取单元1201、定位单元1202和地图更新单元1203。
图像获取单元1201可以获取移动机器人拍摄的第一图像。
定位单元1202,根据本地的子地图和第一图像,确定移动机器人的当前位置点。本地的每个子地图为目标区域对应的三维点云地图分割而成的多个子地图之一。
地图更新单元1203可以确定当前位置点所处的子地图和所处的子地图的邻接子地图。地图更新单元1203还可以确定本地的子地图是否包含所处的子地图的全部邻接子地图。在存在未被本地的子地图包含的邻接子地图时,地图更新单元1203可以获取本地的子地图未包含的邻接子地图。
综上,根据本申请的视觉定位装置1200,通过更新当前位置点(即步骤S402)和更新本地的子地图,能够将移动机器人存储的子地图范围始终按照目标范围进行更新。目标范围为当前位置点所处的子地图和所处子地图的邻接子地图。这里,根据本申请的视觉定位装置1200能够保证每次更新后的地图数据量不超过当前位置点所处的子地图的数据量和所处子地图的邻接子地图的数据量之和。
在一些实施例中,目标区域内任一个子地图的数据量和该子地图的邻接子地图的数据量之和不超过移动机器人的目标存储容量。因此,在移动机器人更新子地图的过程中,视觉定位装置1200能够保证本地存储的子地图的数据量始终不超过允许的存储容量上限。这样,视觉定位装置1200有助于移动机器人可以在本地存储的子地图的数据量始终不超过允许的存储容量上限的前提下,使得更新结果中始终包括当前位置点所处的子地图和所处的子地图的邻接子地图,而不需要存储目标区域的全部地图信息,从而能够进行稳定的自主定位和导航,并且使得视觉定位的定位范围能够不受限于本地存储资源的规模。
在一些实施例中,目标区域的子地图尺寸相同,并且每个子地图的数据量不超过数据量阈值。数据量阈值为移动机器人的目标存储容量与子地图数量阈值的比值,其中,目标存储容量为移动机器人中用于存储地图的存储资源的上限值。子地图数量阈值为目标区域内子地图对应的地图数量值中的极大值,每个子地图对应的地图数量值为该子地图及该子地图的邻接子地图的总数。子地图数量阈值为小于等于9。
在一些实施例中,定位单元1202可以从第一图像中提取特征点和确定每个特征点的特征信息。根据特征点的特征信息和本地的子地图中地图点的特征信息,定位单元1202可以确定特征点与地图点之间的匹配对。每个匹配对包括特征信息相匹配的一个特征点和一个地图点。根据匹配对,定位单元1202可以确定移动机器人的当前位置点。
在一些实施例中,获取移动机器人在目标区域中拍摄的第一图像之前,图像获取单元1201还可以获取移动机器人启动时拍摄的第二图像。地图更新单元1203可以获取移动机器人的多个上线地图。其中,多个上线地图属于三维点云地图。为移动机器人启动时的初始位置点所处的区域范围,每个上线地图为三维点云地图的一部分。根据第二图像和多个上线地图,定位单元1202确定移动机器人的初始位置点。地图更新单元1203可以获取初始位置点对应的子地图和该子地图的邻接子地图。例如,子地图为包含地图点的矩形区域,所处的子地图的邻接子地图为与所处的子地图的矩形区域存在共同的角点的子地图。地图更新单元1203可以向服务器120发送本地的子地图未包含的邻接子地图的标识,以便获取服务器120返回的子地图。
在一些实施例中,定位单元1202可以从第二图像中提取特征点和确定每个特征点的特征信息。根据第二图像中特征点的特征信息和上线地图中地图点的特征信息,定位单元1202可以确定第二图像中特征点与地图点之间的匹配对。每个匹配对包括特征信息相匹配的一个特征点和一个地图点。根据第二图像中特征点与地图点之间的匹配对,定位单元1202可以确定移动机器人启动时的初始位置点。
在一些实施例中,在获取本地的子地图未包含的邻接子地图之前,地图更新单元1203还可以删除本地的子地图中的目标子地图。这里,目标子地图不属于当前位置点所处的子地图和所处的子地图的邻接子地图。
在一些实施例中,为了确定特征点与地图点之间的匹配对,定位单元1202可以计算特征点与本地的子地图中地图点之间的相似度。特征点与地图点之间相似度为特征点的特征信息与地图点的特征信息之间的相似度。例如,定位单元1202可以计算特征点与本地的子地图中地图点之间的汉明距离。汉明距离用于表征相似度,汉明距离与相似度成反比。一个特征点与一个地图点之间的汉明距离为:在地图点的二进制的特征信息与地图点的二进制的特征信息之间按位异或的结果中,“1”的总位数。
在此基础上,定位单元1202可以根据特征点与地图点之间的相似度,确定匹配对。例如,对于任一个特征点,定位单元1202可以从本地的子地图中选定与该特征点的汉明距离最小的地图点。在选定的地图点与该特征点的汉明距离小于距离阈值时,定位单元1202将该特征点和选定的地图点确定为一个匹配对。
在一些实施例中,定位单元1202可以根据匹配对中特征点的坐标、地图点的坐标和移动机器人的相机参数,确定机器人的当前位置点。
图13示出了根据本申请一些实施例的视觉定位系统的示意图。
如图13所示,视觉定位系统例如可以包括:移动机器人110和服务器120。移动机器人110例如可以执行视觉定位方法400或者方法1000。服务器120可以将目标区域的三维点云地图分割成多个子地图。这里,服务器120例如可以通过方法100、200或者300生成子地图。
综上,根据本申请的视觉定位系统,能够将移动机器人存储的子地图范围始终按照目标范围进行更新。目标范围为当前位置点所处的子地图和所处子地图的邻接子地图。这里,根据本申请的视觉定位系统能够保证每次更新后的本地存储的地图数据量不超过目标存储容量。这样,视觉定位系统有助于移动机器人可以在本地存储的子地图的数据量始终不超过允许的存储容量上限的前提下,使得更新结果中始终包括当前位置点所处的子地图和所处的子地图的邻接子地图,而不需要存储目标区域的全部地图信息,从而能够进行稳定的自主定位和导航,并且使得视觉定位的定位范围能够不受限于本地存储资源的规模。
图14示出了根据本申请一些实施例的移动机器人的示意图。如图14所示,该移动机器人包括一个或者多个处理器(CPU)1402、通信模块1404、存储器1406、相机1410,以及用于互联这些组件的通信总线1408。
处理器1402可通过通信模块1404接收和发送数据以实现网络通信和/或本地通信。
相机1410可以在移动机器人移动过程中拍摄图像,以便利用拍摄的图像进行自主定位和导航。
存储器1406可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器1406存储处理器1402可执行的指令集,包括:
操作系统1412,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
应用1414,包括用于实现上述视觉定位的各种程序。这种程序能够实现上述各实例中的处理流程,比如可以包括视觉定位方法。
另外,本申请的每一个实施例可以通过由移动机器人的处理器执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此本申请还公开了一种非易失性存储介质,其中存储有程序。该程序包括指令,所述指令当由处理器执行时,使得处理器执行根据本申请的视觉定位方法。
另外,本申请所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌微控制器等来实现。因此这种可以实现本申请所述方法的硬件也可以构成本申请。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (20)

1.一种视觉定位方法,其特征在于,包括:
获取移动机器人拍摄的第一图像;
根据本地的子地图和所述第一图像,确定移动机器人的当前位置点,本地的每个子地图为由目标区域对应的三维点云地图分割而成的多个子地图之一;
确定当前位置点所处的子地图和所处的子地图的邻接子地图;
确定所述本地的子地图是否包含所处的子地图的全部邻接子地图;
在存在未被所述本地的子地图包含的邻接子地图时,获取所述本地的子地图未包含的邻接子地图。
2.如权利要求1所述的视觉定位方法,其特征在于,所述获取所述本地的子地图未包含的邻接子地图之前,进一步包括:
删除本地的子地图中的目标子地图,所述目标子地图不属于当前位置点所处的子地图和所处的子地图的邻接子地图。
3.如权利要求1所述的视觉定位方法,其特征在于,所述目标区域内任一个子地图的数据量和该子地图的邻接子地图的数据量之和不超过移动机器人的目标存储容量,目标存储容量为所述移动机器人中用于存储地图的存储资源的上限值。
4.如权利要求3所述的视觉定位方法,其特征在于,所述目标区域的子地图尺寸相同,并且每个子地图的数据量不超过数据量阈值。
5.如权利要求4所述的视觉定位方法,其特征在于,所述数据量阈值为所述移动机器人的目标存储容量与子地图数量阈值的比值,其中,目标存储容量为所述移动机器人中用于存储地图的存储资源的上限值,所述子地图数量阈值为目标区域内子地图对应的地图数量值中的极大值,每个子地图对应的地图数量值为该子地图及该子地图的邻接子地图的总数,所述子地图数量阈值小于等于9。
6.如权利要求1所述的视觉定位方法,其特征在于,所述子地图为包含地图点的矩形区域,所处的子地图的邻接子地图为与所处的子地图的矩形区域存在共同的角点的子地图;所述获取所述本地的子地图未包含的邻接子地图,包括:
向服务器发送本地的子地图未包含的邻接子地图的标识,接收服务器返回的子地图。
7.如权利要求4所述的视觉定位方法,其特征在于,每个子地图的数据包括该子地图的标识、该子地图的区域范围、该子地图内的地图点和该子地图的邻接子地图的标识。
8.如权利要求1所述的视觉定位方法,其特征在于,所述根据本地的子地图和所述第一图像,确定移动机器人的当前位置点,包括:
从所述第一图像中提取特征点和确定每个特征点的特征信息;
根据特征点的特征信息和本地的子地图中地图点的特征信息,确定特征点与地图点之间的匹配对,每个匹配对包括特征信息相匹配的一个特征点和一个地图点;
根据所述匹配对,确定移动机器人的当前位置点。
9.如权利要求1所述的视觉定位方法,其特征在于,所述获取移动机器人拍摄的第一图像之前,进一步包括:
获取移动机器人启动时拍摄的第二图像;
获取移动机器人的多个上线地图,其中,所述移动机器人启动时的初始位置点处于所述多个上线地图中的一个上线地图内,所述多个上线地图属于所述三维点云地图;
从所述第二图像中提取特征点和确定每个特征点的特征信息;
根据第二图像中特征点的特征信息和上线地图中地图点的特征信息,确定第二图像中特征点与上线地图中地图点之间的匹配对,每个匹配对包括特征信息相匹配的一个特征点和一个地图点;
根据第二图像中特征点与地图点之间的匹配对,确定移动机器人启动时的初始位置点;
获取所述初始位置点对应的子地图和该子地图的邻接子地图。
10.如权利要求8所述的视觉定位方法,其特征在于,所述根据特征点的特征信息和本地的子地图中地图点的特征信息,确定特征点与地图点之间的匹配对,包括:
计算特征点的特征信息与地图点的特征信息之间的相似度,并将该相似度作为特征点与地图点之间的相似度;
根据特征点与地图点之间的相似度,确定匹配对。
11.如权利要求10所述的视觉定位方法,其特征在于,
所述计算特征点与本地的子地图中地图点之间的相似度,包括:
计算特征点与本地的子地图中地图点之间的汉明距离,所述汉明距离用于表征所述相似度,汉明距离与相似度成反比;
所述根据特征点与地图点之间的相似度,确定匹配对,包括:
对于任一个特征点,从本地的子地图中选定与该特征点的汉明距离最小的地图点;
在选定的地图点与该特征点的汉明距离小于距离阈值时,将该特征点和选定的地图点确定为一个匹配对。
12.如权利要求8所述的视觉定位方法,其特征在于,所述根据所述匹配对,确定移动机器人的当前位置点,包括:
根据匹配对中特征点的坐标、地图点的坐标和移动机器人的相机参数,确定机器人的当前位置点。
13.一种视觉定位装置,其特征在于,包括:
图像获取单元,获取移动机器人拍摄的第一图像;
定位单元,根据本地的子地图和所述第一图像,确定移动机器人的当前位置点,每个子地图为目标区域对应的三维点云地图分割而成的多个子地图之一;
地图更新单元,用于:确定当前位置点所处的子地图和所处的子地图的邻接子地图;确定所述本地的子地图是否包含所处的子地图的全部邻接子地图;在存在未被所述本地的子地图包含的邻接子地图时,获取所述本地的子地图未包含的邻接子地图。
14.一种移动机器人,其特征在于,包括:
相机;
存储器;
处理器;
程序,存储在该存储器中并被配置为由所述处理器执行,所述程序包括用于执行权利要求1-12中任一项所述视觉定位方法的指令。
15.一种存储介质,存储有程序,所述程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行如权利要求1-12中任一项所述的视觉定位方法。
16.一种视觉定位系统,其特征在于,包括:
移动机器人,用于执行如权利要求1-12中任一项所述的视觉定位方法;
服务器,用于将目标区域对应的三维点云地图分割成多个子地图。
17.如权利要求16所述的视觉定位系统,其特征在于,所述服务器根据下述方式将目标区域对应的三维点云地图分割成多个子地图:将包含目标区域的三维点云地图的外接矩形区域进行分割,得到相同尺寸的多个分割区域,并将包含地图点的分割区域确定为有效区域;
在至少一个有效区域的数据量超过数据量阈值时,继续对每个有效区域进行分割,直到分割结果中每个有效区域的数据量不超过数据量阈值,并将分割结果中每个有效区域确定为一个目标区域的子地图。
18.如权利要求17所述的视觉定位系统,其特征在于,所述服务器根据下述方式确定所述数据量阈值:
确定子地图数量阈值,所述子地图数量阈值为目标区域内子地图对应的地图数量值中的极大值,每个子地图对应的地图数量值为该子地图及该子地图的邻接子地图的总数,所述子地图数量阈值小于等于9;
确定所述移动机器人的目标存储容量与子地图数量阈值的比值,并将该比值作为所述数据量阈值,其中,目标存储容量为所述移动机器人中用于存储地图的存储资源的上限值。
19.如权利要求16所述的视觉定位系统,其特征在于,所述服务器根据下述方式将目标区域对应的三维点云地图分割成多个子地图:
将包含目标区域的三维点云地图的外接矩形区域进行分割,得到包含相同尺寸的多个分割区域的分割结果,并将包含地图点的分割区域确定为有效区域;
对于分割结果中每个有效区域,确定该有效区域对应的区域总数;
根据分割结果中每个有效区域对应的区域总数确定分割结果中的有效区域对应的区域总数中的极大值,其中,每个有效区域对应的区域总数为该有效区域和该有效区域的邻接有效区域的数量和;
将目标存储容量与极大值的比值作为数据量阈值,其中,目标存储容量为所述移动机器人中用于存储地图的存储资源的上限值;
在至少一个有效区域的数据量超过数据量阈值时,继续对每个有效区域进行分割,确定分割结果中有效区域对应的数据量阈值,直到分割结果中每个有效区域的数据量不超过数据量阈值,并将分割结果中每个有效区域确定为一个目标区域的子地图。
20.如权利要求16所述的视觉定位系统,其特征在于,所述服务器根据下述方式将目标区域对应的三维点云地图分割成多个子地图:
将包含目标区域的三维点云地图的外接矩形区域进行分割,得到相同尺寸的多个分割区域,并将包含地图点的分割区域确定为有效区域;
在至少一个有效区域对应的数据总量超过目标存储容量时,继续对每个有效区域进行分割,直到分割结果中每个有效区域对应的数据总量不超过目标存储容量,并将分割结果中每个有效区域确定为一个目标区域的子地图,其中,有效区域对应的数据总量为该有效区域的数据量以及该有效区域的邻接有效区域的数据量之和。
CN202110284952.0A 2021-03-17 2021-03-17 视觉定位方法、装置、系统、移动机器人及存储介质 Active CN113077475B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110284952.0A CN113077475B (zh) 2021-03-17 2021-03-17 视觉定位方法、装置、系统、移动机器人及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110284952.0A CN113077475B (zh) 2021-03-17 2021-03-17 视觉定位方法、装置、系统、移动机器人及存储介质

Publications (2)

Publication Number Publication Date
CN113077475A true CN113077475A (zh) 2021-07-06
CN113077475B CN113077475B (zh) 2023-09-08

Family

ID=76612561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110284952.0A Active CN113077475B (zh) 2021-03-17 2021-03-17 视觉定位方法、装置、系统、移动机器人及存储介质

Country Status (1)

Country Link
CN (1) CN113077475B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114355877A (zh) * 2021-11-25 2022-04-15 烟台杰瑞石油服务集团股份有限公司 一种多机器人作业区域的分配方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102235873A (zh) * 2010-04-21 2011-11-09 北京四维图新科技股份有限公司 导航电子地图的处理方法和装置、导航仪
CN107423445A (zh) * 2017-08-10 2017-12-01 腾讯科技(深圳)有限公司 一种地图数据处理方法、装置及存储介质
US20190220995A1 (en) * 2016-09-30 2019-07-18 Alibaba Group Holding Limited Method and device for determining areas of interest based on geolocation data
CN110674134A (zh) * 2019-09-16 2020-01-10 腾讯大地通途(北京)科技有限公司 一种地理信息数据存储方法、查询方法及装置
CN111506687A (zh) * 2020-04-09 2020-08-07 北京华捷艾米科技有限公司 一种地图点数据提取方法、装置、存储介质及设备
CN111623783A (zh) * 2020-06-30 2020-09-04 杭州海康机器人技术有限公司 一种初始定位方法、视觉导航设备、仓储系统
US20210063159A1 (en) * 2018-04-09 2021-03-04 Boe Technology Group Co., Ltd. Positioning Method, Positioning Server and Positioning System

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102235873A (zh) * 2010-04-21 2011-11-09 北京四维图新科技股份有限公司 导航电子地图的处理方法和装置、导航仪
US20190220995A1 (en) * 2016-09-30 2019-07-18 Alibaba Group Holding Limited Method and device for determining areas of interest based on geolocation data
CN107423445A (zh) * 2017-08-10 2017-12-01 腾讯科技(深圳)有限公司 一种地图数据处理方法、装置及存储介质
US20210063159A1 (en) * 2018-04-09 2021-03-04 Boe Technology Group Co., Ltd. Positioning Method, Positioning Server and Positioning System
CN110674134A (zh) * 2019-09-16 2020-01-10 腾讯大地通途(北京)科技有限公司 一种地理信息数据存储方法、查询方法及装置
CN111506687A (zh) * 2020-04-09 2020-08-07 北京华捷艾米科技有限公司 一种地图点数据提取方法、装置、存储介质及设备
CN111623783A (zh) * 2020-06-30 2020-09-04 杭州海康机器人技术有限公司 一种初始定位方法、视觉导航设备、仓储系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LI, X.; DU, S.; LI, G.; LI, H.: "Integrate Point-Cloud Segmentation with 3D LiDAR Scan-Matching for Mobile Robot Localization and Mapping", 《SENSORS》, pages 1 - 23 *
付永四: "基于激光雷达的仓储机器人关键技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, pages 1 - 99 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114355877A (zh) * 2021-11-25 2022-04-15 烟台杰瑞石油服务集团股份有限公司 一种多机器人作业区域的分配方法和装置
CN114355877B (zh) * 2021-11-25 2023-11-03 烟台杰瑞石油服务集团股份有限公司 一种多机器人作业区域的分配方法和装置

Also Published As

Publication number Publication date
CN113077475B (zh) 2023-09-08

Similar Documents

Publication Publication Date Title
CN112179330B (zh) 移动设备的位姿确定方法及装置
CN109974693B (zh) 无人机定位方法、装置、计算机设备及存储介质
US11145073B2 (en) Computer vision systems and methods for detecting and modeling features of structures in images
US10269147B2 (en) Real-time camera position estimation with drift mitigation in incremental structure from motion
US10269148B2 (en) Real-time image undistortion for incremental 3D reconstruction
US8199977B2 (en) System and method for extraction of features from a 3-D point cloud
US8437501B1 (en) Using image and laser constraints to obtain consistent and improved pose estimates in vehicle pose databases
US20180315232A1 (en) Real-time incremental 3d reconstruction of sensor data
Enqvist et al. Robust fitting for multiple view geometry
Wendel et al. Natural landmark-based monocular localization for MAVs
JP2020507853A (ja) 3次元点群の再構成のための方法および装置
CN111127524A (zh) 一种轨迹跟踪与三维重建方法、系统及装置
KR102127679B1 (ko) 정사영상에 기반한 센서 탑재 이동형 플랫폼의 기하 보정 시스템
CN112785705B (zh) 一种位姿获取方法、装置及移动设备
CN111288971A (zh) 一种视觉定位方法及装置
CN113077475B (zh) 视觉定位方法、装置、系统、移动机器人及存储介质
CN113516682B (zh) 一种激光slam的回环检测方法
US11361548B2 (en) Method and system for multi instance visual tracking based on observer motion modelling
CN113160406B (zh) 道路三维重建方法、装置、存储介质及电子设备
CN113808196A (zh) 平面融合定位方法、装置、电子设备及存储介质
CN110580737B (zh) 图像处理方法、系统以及具有存储功能的装置
CN115705670B (zh) 地图管理方法及其装置
CN116912427B (zh) 基于标记点三角特征聚类的三维扫描重建方法及系统
KR102615412B1 (ko) 비주얼 로컬라이제이션을 수행하기 위한 방법 및 장치
CN115088255B (zh) 定位方法、电子设备和存储介质

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
CB02 Change of applicant information

Address after: 310051 room 304, B / F, building 2, 399 Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Hikvision Robot Co.,Ltd.

Address before: 310051 room 304, B / F, building 2, 399 Danfeng Road, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: HANGZHOU HIKROBOT TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant