一种建立地图的方法、终端和计算机可读存储介质与流程

文档序号:16369719发布日期:2018-12-22 08:38阅读:192来源:国知局
一种建立地图的方法、终端和计算机可读存储介质与流程

本申请涉及检测领域,尤其涉及一种建立地图的方法、终端和计算机可读存储介质。

背景技术

当前的视觉即时定位和建图(visualsimultaneouslocalizationandmapping,vslam)技术,使用视觉传感器采集一组图像,通过特征提取方法,从采集的图像中提取表征空间环境的特征点,并通过双目视差或单目运动视差等方法,计算出特征点在空间中的位置信息,或者使用带有深度信息的摄像头,直接获取特征点对应的位置信息。终端拍摄一组图像时,由这些图像中的特征点可以组成vslam中用于定位的地图。在终端移动过程中,将当前时刻传感器拍摄的图像中的特征点与地图中的特征点进行匹配,能够得到终端的位置和姿态。

上述的公开的vslam技术方案中,终端拍摄的图像中的特征点与地图中的特征点的匹配是vslam技术的核心问题。通过图像提取的特征点在短时间、小场景下具有一定的不变性,使得当前的vslam技术方案能够在上述情况下应用。然而,在长时间、大场景的情况下,由于拍摄图像的光照条件、拍摄角度的变化,特征点很可能会发生变化,导致图像中的特征点很难与该地图正确匹配。为了解决这一问题,现有的方案是针对同一空间,建立多幅地图,以便终端定位。即在短时间内、以固定角度采集多组图像,对每一组图像分别运用vslam技术建立特征点地图,然后将多个地图加入标签后分别管理。

发明人在研究现有技术过程中发现,上述的建图方案中,至少存在以下缺点:由于存在多幅地图,终端需要分别对每幅地图进行扩展、更新、删除等操作,管理效率低。可见,如何提高地图的管理效率,是需要解决的问题。



技术实现要素:

本申请部分实施例所要解决的一个技术问题在于如何提高地图的管理效率。

本申请的一个实施例提供了一种建立地图的方法,包括:获取描述同一空间的n幅地图,其中,n为大于1的整数;提取n幅地图各自的空间不变特征;根据n幅地图各自的空间不变特征,对n幅地图中的地图点的信息进行合并,得到合并地图。

本申请的一个实施例还提供了一种终端,包括至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例提及的建立地图的方法。

本申请的一个实施例还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述实施例提及的建立地图的方法。

本申请的实施例相对于现有技术而言,由于多幅地图中的地图点的信息存储于合并地图中,终端在进行地图点的信息的扩展、删除、更新等操作时,仅需要对合并地图进行操作,提高了地图的管理效率。除此之外,终端在使用合并地图进行定位时,不需要切换用于匹配的地图,提高了定位效率。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本申请第一实施例的建立地图的方法的流程图;

图2是本申请第二实施例的将n-1幅地图的地图点的信息合并至基准地图的方法的流程图;

图3是本申请第二实施例的建立地图的方法和定位方法的关系示意图;

图4是本申请第二实施例的使用合并地图进行定位的方法的流程图;

图5是本申请第三实施例的终端的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请部分实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请的第一实施例涉及一种建立地图的方法,应用于终端,如图1所示,该建立地图的方法包括以下步骤:

步骤101:获取描述同一空间的n幅地图。其中,n为大于1的整数。

具体地说,终端通过视觉传感器采集同一空间的多个图像序列,分别提取每组图像序列中提取地图点的信息和空间不变特征,根据提取的地图点的信息和空间不变特征,建立各个图像序列各自对应的地图。

需要说明的是,地图可以是终端根据视觉传感器采集的图像序列建立的地图,也可以是云端或其他终端传输至该终端的地图,本实施例不限制地图的来源。

步骤102:提取n幅地图各自的空间不变特征。

具体地说,空间不变特征可以是线特征、语义特征和标记信息中的任意一种或任意组合。其中,线特征是指地图中的线段的特征,包括线段的长度、角度、交叉点等信息。语义特征是指为不同地图中的相同的地图点分配的特征。终端通过图像识别方法,识别不同地图中的相同的地图点,为相同的地图点分配相同特征。标记信息是指空间中的定位标记在地图中的信息。其中,定位标记是布置在空间中的多个固定位置上的标记,该标记可以是快速反应(quickresponse,qr)码或数据矩阵(datamatrix,dm)码。

步骤103:根据n幅地图各自的空间不变特征,对n幅地图中的地图点的信息进行合并,得到合并地图。

以下对根据n幅地图各自的空间不变特征,对n幅地图中的地图点的信息进行合并,得到合并地图的方法进行举例说明。

方法1:终端创建一个新的地图作为基准地图,确定该基准地图与n幅地图中的地图a的相对位姿关系。其中,地图a为n幅地图中的任意一幅地图。终端根据基准地图与地图a的相对位姿关系,将地图a中的空间不变特征和地图点的信息添加至基准地图中。终端将地图a以外的n-1幅地图中的空间不变特征,分别与基准地图中的空间不变特征匹配,根据n-1幅地图各自对应的匹配结果,确定n-1幅地图分别与基准地图的相对位姿关系。终端根据n-1幅地图分别与基准地图的相对位姿关系,将n-1幅地图的地图点的信息合并至基准地图中,得到合并地图。

方法2:终端从n幅地图中选择一幅地图作为基准地图,将n幅地图中除基准地图以外的n-1幅地图中的空间不变特征,分别与基准地图中的空间不变特征匹配,根据n-1幅地图各自对应的匹配结果,确定n-1幅地图分别与基准地图的相对位姿关系。终端根据n-1幅地图分别与基准地图的相对位姿关系,将n-1幅地图的地图点的信息合并至基准地图中,得到合并地图。

为阐述清楚,本实施例中以地图b和地图c的相对位姿关系的确定方法为例,说明方法1和方法2中,终端确定n-1幅地图分别与基准地图的相对位姿关系的方法。终端将地图b中的空间不变特征与地图c中的空间不变特征进行匹配,根据匹配结果,采用点透视(perspectivenpoints,pnp)位姿测量算法,求解地图b和地图c之间的相对位姿关系。可选的,在采用pnp位姿测量算法求解的过程中,通过光束法平差(bundleadjustment,ba)算法优化相对位姿关系。

需要说明的是,将n-1幅地图的地图点的信息合并至基准地图的过程中,可能存在相同的地图点未合并为同一个地图点的情况。针对这一情况,终端可以在得到合并地图之后,将合并地图中距离小于预设值的地图点合并,合并后的地图点的位置信息根据合并前的地图点的位置信息确定,其中,预设值可以根据实际需要确定。例如,合并地图中的地图点a的空间坐标为(xa,ya,za),地图点b的空间坐标为(xb,yb,zb),其中,xa表示地图点a的横坐标,ya表示地图点a的纵坐标,za表示地图点a的竖坐标,xb表示地图点b的横坐标,yb表示地图点b的纵坐标,zb表示地图点b的竖坐标。终端计算地图点a和地图点b之间的距离,判断地图点a和地图点b之间的距离是否小于预设值,若确定小于,将地图点a和地图点b合并,得到地图点c,地图点c的空间坐标为((xa+xb)/2,(ya+yb)/2,(za+zb)/2),地图点c的描述信息集合包括地图点a的描述信息集合和地图点b的描述信息集合。

值得一提的是,根据合并前的地图点的位置信息确定合并后的地图点的位置信息,相当于对同一地图点的位置信息进行了多次采集,提高了地图点的位置信息的准确度。

值得一提的是,根据n幅地图的地图点的信息,建立合并地图,提高了地图的管理效率。通过本实施例提及的建立地图的方法建立合并地图后,终端需要扩展地图时,确定需要扩展的信息在合并地图中的位置,在该位置处添加需要扩展的信息即可,无需针对n幅地图的每幅地图进行地图信息的扩展。终端需要删除或更新地图点的信息时,仅需删除或更新合并地图中的地图点的信息,无需针对n幅地图的每幅地图进行地图点的信息的删除或更新。

与现有技术相比,本实施例中提供的建立地图的方法,由于多幅地图中的地图点的信息存储于合并地图中,终端在进行地图点的信息的扩展、删除、更新等操作时,仅需要对合并地图进行操作,提高了地图的管理效率。除此之外,终端在使用合并地图进行定位时,不需要切换用于匹配的地图,提高了定位效率。

本申请的第二实施例涉及一种建立地图的方法,本实施例是对第一实施例的进一步细化,具体说明了根据n-1幅地图分别与基准地图的相对位姿关系,将n-1幅地图的地图点的信息合并至基准地图中的过程。

具体地说,将n-1幅地图的地图点的信息合并至基准地图的方法的流程图如图2所示,包括以下步骤:

步骤201:根据n-1幅地图分别与基准地图的相对位姿关系,确定n-1幅地图中的地图点分别与基准地图中地图点的对应关系。

步骤202:根据n-1幅地图中的地图点分别与基准地图中地图点的对应关系,以及n-1幅地图中的地图点的描述信息,确定合并地图中的地图点的描述信息集合。

需要说明的是,终端可以在得到地图点的描述信息集合之后,通过聚类算法,对地图点的描述信息集合中的描述信息进行聚类,得到聚类后的描述信息集合,根据地图点的聚类后的描述信息集合确定合并地图。

具体地说,终端对地图点的描述信息集合中的描述信息进行聚类,将相近的地图点的描述信息归为一类,记录该类的中心点,作为聚类后的描述信息。例如,终端在确定存在未被分类的地图点的描述信息后,从未被分类的地图点的描述信息中,随机选择一个地图点的描述信息作为中心点。针对该中心点,终端进行以下操作:找到与中心点距离在第一预设值之内的所有描述信息,记作集合m;确定中心点到集合m中每个元素的向量,将所有向量相加,得到偏移向量;控制中心点沿偏移向量的方向移动,移动距离为偏移向量的模的一半;判断偏移向量的模是否小于第二预设值,若小于,记录该中心点,否则,确定当前中心点到集合m中每个元素的向量,将所有向量相加,得到偏移向量,控制中心点沿偏移向量的方向移动,移动距离为偏移向量的模的一半……直至偏移向量的模小于第二预设值。终端确定地图点的所有描述信息都被分类后,根据记录的中心点,确定聚类后的描述信息。

值得一提的是,通过聚类算法,将相似的地图点的描述信息合并,减小了地图的数据量。

另一具体实现中,地图点的信息还包括地图点的描述信息对应的拍摄信息,其中,拍摄信息包括拍摄亮度和拍摄角度。终端在确定地图点的描述信息集合后,通过聚类算法,对地图点的描述信息集合中的描述信息进行聚类,得到聚类后的描述信息集合。若聚类算法将l个描述信息聚为一类,则根据l个描述信息分别对应的拍摄亮度,l个描述信息聚类后的描述信息对应的拍摄亮度,根据l个描述信息分别对应的拍摄角度,确定l个描述信息聚类后的描述信息对应的拍摄角度;根据聚类后的描述信息对应的拍摄亮度,以及聚类后的描述信息对应的拍摄角度,确定聚类后的描述信息集合中每个描述信息对应的拍摄信息。具体实现中,终端计算l个描述信息对应的拍摄亮度的平均值作为第一平均值,将第一平均值作为l个描述信息聚类后的描述信息对应的拍摄亮度。终端计算l个描述信息对应的拍摄角度的平均值作为第二平均值,将第二平均值作为l个描述信息聚类后的描述信息对应的拍摄角度。

以下结合实际场景,说明确定聚类后的描述信息对应的拍摄信息的过程。

例如,地图点p对应的描述信息包括第一描述信息(ka)、第二描述信息(kb)、第三描述信息(kc)、第四描述信息(kd)、第五描述信息(ke)……。其中,ka的拍摄亮度为第一拍摄亮度(hka),kb的拍摄亮度为第二拍摄亮度(hkb),kc的拍摄亮度为第三拍摄亮度(hkc)……,ka的拍摄角度为第一拍摄角度(tka),kb的拍摄角度为第二拍摄角度(tkb),kc的拍摄角度为第三拍摄角度(tkc)……通过聚类算法,ka、kb和kc被分为一类,聚类后的描述信息的拍摄亮度=(hka+hkb+hkc)/3,聚类后的描述信息的拍摄角度=(tka+tkb+tkc)/3。

值得一提的是,将n幅地图合并,减小了地图的存储空间。

以下举例说明将n幅地图合并能够减小地图的存储空间的原因。未合并的n幅地图中,地图点的描述信息的存储格式为:(拍摄信息1,地图点id,位置信息,地图点的描述信息1);(拍摄信息2,地图点id,位置信息,地图点的描述信息2);(拍摄信息3,地图点id,位置信息,地图点的描述信息3)……(拍摄信息p,地图点id,位置信息,地图点的描述信息p)其中,p表示地图点的描述信息的个数,地图点id表示终端对地图点的编号,以便确定不同地图中的相同地图点。使用本实施例提及的建立地图的方法得到合并地图后,合并地图中的地图点的描述信息以描述信息集合的形式存储,存储格式为:{地图点id,位置信息,(拍摄信息1,地图点的描述信息1),(拍摄信息2,地图点的描述信息2),(拍摄信息3,地图点的描述信息3)……(拍摄信息q,地图点的描述信息q)}。合并地图与未合并的地图相比,在对合并地图的描述信息集合中的描述信息进行聚类后,q小于或等于p。假设拍摄信息的数据类型为无符号的字符型数据(unsignedchar),数据大小为1个字节,地图点id的数据类型为无符号的整型数据(unsignedint),数据大小为4个字节,位置信息为地图点的空间坐标,每个坐标的数据类型为浮点型数据(float),数据大小为4个字节,故位置信息的数据大小为4*3=12个字节,地图点的描述信息的数据类型为unsignedchar,数据大小为8个字节。合并前n幅地图占用的数据大小为p+p*(4+12+8)*地图点数量=p+24*p*地图点数量,合并地图的数据大小是[4+12+q*(1+8)]*地图点数量=(16+q*9)*地图点数量,由于地图点数量通常是很大的数值,对于大场景,一般会达到十万数量级以上,因此,合并地图的数据和n幅地图的数据的比值k近似为(16+q*9)/(24*p),当q=p>1时,k约为37.5%-70.8%,故合并地图的存储空间更小。

需要说明的是,在使用第一实施例或第二实施例提及的建立地图的方法建立合并地图后,终端可以基于该合并地图进行定位。建立地图的方法和定位方法的关系如图3所示,图中多状态下地图合并是指不同拍摄信息对应的地图的合并,单一状态定位是指根据终端发起定位请求时的拍摄信息进行定位。其中,终端使用合并地图进行定位的方法如图4所示,包括以下步骤:

步骤301:获取用于定位的图像。

步骤302:提取图像中的地图点的描述信息。

步骤303:确定合并地图中与图像中的地图点的描述信息相匹配的描述信息。

具体实现中,终端将图像中的地图点的描述信息与合并地图中的所有描述信息匹配,确定相匹配的描述信息。

另一具体实现中,终端在提取图像中的地图的描述信息时,通过解析图像,或通过终端上的传感器(如光敏传感器),确定图像的拍摄信息。终端根据图像的拍摄信息,确定图像中的地图点的描述信息对应的拍摄信息。终端根据图像中的地图点的描述信息对应的拍摄信息,以及合并地图中的地图点的描述信息集合中每个描述信息对应的拍摄信息,从合并地图中的地图点的描述信息集合中筛选得到用于匹配的描述信息。终端根据用于匹配的描述信息,确定临时地图,并根据临时地图进行定位。终端根据临时地图中的用于匹配的描述信息,确定与图像中的地图点的描述信息相匹配的描述信息。当拍摄信息包括拍摄亮度和拍摄角度时,终端确定用于匹配的描述信息的具体过程如下:终端计算图像的拍摄亮度与每个描述信息对应的拍摄亮度的第一差值,以及图像的拍摄角度与每个描述信息对应的拍摄角度的第二差值;根据第一差值和第二差值,从地图点的描述信息集合中,选择m个描述信息作为用于匹配的描述信息;其中,m为正整数。

以下结合实际场景说明终端从地图中的地图点的特征信息集合中筛选得到用于匹配的描述信息的过程。

假设终端获取第二图像中的地图点的拍摄亮度为h,拍摄角度为l,地图中的地图点的特征信息集合为{(描述信息a1,拍摄亮度h1,拍摄角度l1),(描述信息a2,拍摄亮度h2,拍摄角度l2),(描述信息a3,拍摄亮度h3,拍摄角度l3)……},即描述信息a1对应的拍摄亮度为h1,对应的拍摄角度为l1,描述信息a2对应的拍摄亮度为h2,对应的拍摄角度为l2……终端计算h1与h的差值和l1与l的差值,并根据实际需要,为两个差值设置不同的权重,从而确定第二图像中的地图点的拍摄信息与地图中的地图点的拍摄信息的距离dt,即dt=a*(h-h1)+b*(l-l1),其中,a为拍摄亮度的差值的权重,b为拍摄角度的差值权重。以此类推,终端计算第二图像的地图点的拍摄信息与地图中的地图点的特征信息集合中每个描述信息对应的拍摄信息的距离。终端按照该距离从小到大的顺序,对地图中的地图点的特征信息集合中每个描述信息进行排序,选择排在前面的前m个描述信息作为用于匹配的描述信息。

需要说明的是,本领域技术人员可以理解,实际应用中,也可以通过设置距离预设值的方法,筛选特征信息集合,即将与第二图像中的地图点的描述信息对应的拍摄信息的距离小于距离预设值的描述信息作为用于匹配的描述信息。

步骤304:从合并地图中获取相匹配的描述信息对应的地图点的位置信息,根据获取的位置信息确定定位结果。

具体地说,终端根据地图中的地图点与第二图像中的地图点的匹配结果,采用位姿估计算法,例如,pnp位姿测量算法,确定定位结果。其中,定位结果中包括终端的位姿信息。

具体实现中,在从合并地图中获取相匹配的描述信息对应的地图点的位置信息,根据获取的位置信息确定定位结果之前,终端还可以先确定图像中至少存在t个地图点与地图匹配成功。其中,t为正整数,例如,t等于10。

值得一提的是,在匹配成功的地图点的个数达到t后,再对终端的位姿信息进行计算,避免匹配成功个数不足,无法定位的情况下,确定定位结果造成的资源浪费。

与现有技术相比,本实施例中提供的建立地图的方法,由于多幅地图中的地图点的信息存储于合并地图中,终端在进行地图点的信息的扩展、删除、更新等操作时,仅需要对合并地图进行操作,提高了地图的管理效率。除此之外,终端在使用合并地图进行定位时,不需要切换用于匹配的地图,提高了定位效率。除此之外,终端通过聚类算法,将相似的地图点的描述信息合并,减小了地图的数据量。

本申请的第三实施例涉及一种终端,如图5所示,包括至少一个处理器401;以及,与至少一个处理器401通信连接的存储器402。其中,存储器402存储有可被至少一个处理器401执行的指令,指令被至少一个处理器401执行,以使至少一个处理器401能够执行上述建立地图的方法。

本实施例中,处理器401以中央处理器(centralprocessingunit,cpu)为例,存储器402以可读写存储器(randomaccessmemory,ram)为例。处理器401、存储器402可以通过总线或者其他方式连接,图5中以通过总线连接为例。存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中地图点的描述信息就存储于存储器402中。处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述建立地图的方法。

存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个模块存储在存储器中,当被一个或者多个处理器执行时,执行上述任意方法实施例中的建立地图的方法。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请的第四实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现以上任意方法实施例所描述的建立地图的方法。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施例是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

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