面向封闭空间的拓扑分割方法及装置与流程

文档序号:15218123发布日期:2018-08-21 17:06阅读:340来源:国知局

本发明涉及点云空间拓扑分割的技术领域,尤其是涉及一种面向封闭空间的拓扑分割方法及装置。



背景技术:

随着机器人技术的不断创新,家庭服务机器人作为机器人领域的一个重要分支得以蓬勃发展,各种家庭服务机器人层出不穷,种类繁多,功能也越来越强大,从扫地机器人到陪伴机器人、教育机器人等,人们对机器人的智能化要求也越来越高,从传统的完成扫地等单一功能到如今的人机交互,自然语言理解,自主导航等等,人们逐渐趋向于将机器人视为家庭的一份子而存在,做为家庭的一份子,对具有自主导航功能的机器人,对环境的认知就显得尤为重要。

机器人对环境的认知,主要包括空间几何信息(度量地图),空间分割信息(拓扑地图),空间理解信息(语义地图)。传统的机器人,大多只是建立空间的几何信息,并以此作为机器人室内导航的依据,随着人们对机器人的期望越来越高以及语义理解的发展,自主导航方式也由原来给定机器人特定导航点然后进行路径规划以及导航,演变为更加自然的语义导航(如,对机器人说“去电视机旁”)。而要实现这样的导航方式,机器人建立对环境的认知,清楚的知道“电视机在哪个房间”“我现在在哪个房间”等,可以有效的辅助机器人进行路径规划以及导航。

为了加强机器人对环境的认知,构建室内空间的拓扑结构,很多研究人员提出很多方法,首先,可以基于度量地图,进行二次开发,采用栅格聚类的方法构建拓扑地图,但是这种方法受限于度量地图的精度以及存在过度分割的可能。其次,在建立地图的过程当中,根据里程信息,在等间隔的距离上标记点,以此建立空间的拓扑关系,但是这种方法建立的拓扑地图并没有反映真实的空间拓扑信息。最后,随着rgb-d摄像头的应用逐渐趋于普遍,基于点云进行拓扑分割也是目前常用的方法,该方法根据点云的投影密度来确定墙体,进而确定空间的拓扑结构。但是该方法受限于空间点云的准确性,实际情况中往往无法进行有效的分割并确定空间内任何一个位置所属的拓扑空间。

综上,现有的拓扑分割方法误分割率高,无法进行有效的分割,无法确定空间内任何一个位置所属的拓扑空间。



技术实现要素:

有鉴于此,本发明的目的在于提供一种面向封闭空间的拓扑分割方法及装置,以缓解现有的拓扑分割方法误分割率高,无法进行有效的分割,无法确定空间内任何一个位置所属的拓扑空间的技术问题。

第一方面,本发明实施例提供了一种面向封闭空间的拓扑分割方法,所述方法包括:

获取待处理封闭空间的目标点云数据,其中,所述目标点云数据为经过预处理之后的点云数据;

采用密度投影和特征值法提取所述目标点云数据中符合墙面特征的点云数据;

对所述符合墙面特征的点云数据进行三维到二维投影,对投影后的数据进行栅格化处理,以提取得到多条线段;

通过迭代聚类方法对所述多条线段进行聚类处理,得到所述待处理封闭空间的轮廓,其中,所述轮廓中包含有多个栅格;

基于所述轮廓采用多方向扫描的点聚类方法对所述轮廓中的栅格进行聚类处理,得到所述待处理封闭空间的拓扑分割图。

第二方面,本发明实施例还提供了一种面向封闭空间的拓扑分割装置,所述装置包括:

获取模块,用于获取待处理封闭空间的目标点云数据,其中,所述目标点云数据为经过预处理之后的点云数据;

提取模块,用于采用密度投影和特征值法提取所述目标点云数据中符合墙面特征的点云数据;

栅格化处理模块,用于对所述符合墙面特征的点云数据进行三维到二维投影,对投影后的数据进行栅格化处理,以提取得到多条线段;

第一聚类处理模块,用于通过迭代聚类方法对所述多条线段进行聚类处理,得到所述待处理封闭空间的轮廓,其中,所述轮廓中包含有多个栅格;

第二聚类处理模块,用于基于所述轮廓采用多方向扫描的点聚类方法对所述轮廓中的栅格进行聚类处理,得到所述待处理封闭空间的拓扑分割图。

本发明实施例带来了以下有益效果:本发明实施例提供了一种面向封闭空间的拓扑分割方法及装置,该方法包括:获取待处理封闭空间的目标点云数据,其中,目标点云数据为经过预处理之后的点云数据;采用密度投影和特征值法提取目标点云数据中符合墙面特征的点云数据;对符合墙面特征的点云数据进行三维到二维投影,对投影后的数据进行栅格化处理,以提取得到多条线段;通过迭代聚类方法对多条线段进行聚类处理,得到待处理封闭空间的轮廓,其中,轮廓中包含有多个栅格;基于轮廓采用多方向扫描的点聚类方法对轮廓中的栅格进行聚类处理,得到待处理封闭空间的拓扑分割图。

现有技术中采用栅格聚类的方法构建拓扑地图,但是这种方法存在过度分割的可能;而在建立地图的过程当中,根据里程信息,在等间隔的距离上标记点,以此建立拓扑地图的方式不能反映真实的空间拓扑信息;而基于点云进行拓扑分割的方法受限于空间点云的准确性,无法进行有效的分割,无法确定空间中任何一个位置所属的拓扑空间。与现有的拓扑分割方法相比,本发明实施例提供的面向封闭空间的拓扑分割方法中,将符合墙面特征的点云数据进行三维到二维投影,对投影后的数据进行栅格化处理,以提取得到了多条线段,进而通过迭代聚类方法对多条线段进行聚类处理,得到了待处理封闭空间的轮廓,最后,基于得到的轮廓采用多方向扫描的点聚类方法对轮廓中的每个栅格进行聚类处理,使得轮廓中的每一个栅格都有其所属的拓扑空间。该方法提高了拓扑分割的准确性,能够对待处理封闭空间进行有效的分割,缓解了现有的拓扑分割方法误分割率高,无法进行有效的分割,无法确定空间内任何一个位置所属的拓扑空间的技术问题。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种面向封闭空间的拓扑分割方法的流程图;

图2为本发明实施例提供的获取待处理封闭空间的目标点云数据的方法流程图;

图3为本发明实施例提供的采用密度投影和特征值法提取目标点云数据中符合墙面特征的点云数据的方法流程图;

图4为本发明实施例提供的基于投影数据,多条直线方程和栅格确定多条线段的方法流程图;

图5为本发明实施例提供的确定多条线段的原理示意图;

图6为本发明实施例提供的通过迭代聚组方法对多条线段进行聚类处理,得到待处理封闭空间的轮廓的方法流程图;

图7为本发明实施例提供的基于轮廓采用多方向扫描的点聚类方法对轮廓中的栅格进行聚类处理,得到待处理封闭空间的拓扑分割图的方法流程图;

图8为本发明实施例提供的一种面向封闭空间的拓扑分割装置的功能模块图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种面向封闭空间的拓扑分割方法进行详细介绍。

实施例一:

一种面向封闭空间的拓扑分割方法,参考图1,该方法包括:

s102、获取待处理封闭空间的目标点云数据,其中,目标点云数据为经过预处理之后的点云数据;

在本发明实施例中,待处理封闭空间包括家庭室内空间,也可以包括其它空间,本发明实施例对其不进行具体限制。

下文中再对获取待处理封闭空间的目标点云数据进行详细介绍,在此不再赘述。

s104、采用密度投影和特征值法提取目标点云数据中符合墙面特征的点云数据;

在得到目标点云数据后,采用密度投影和特征值法提取目标点云数据中符合墙面特征的点云数据,以进行后续的处理。下文中再对该过程进行详细介绍,在此不再赘述。

s106、对符合墙面特征的点云数据进行三维到二维投影,对投影后的数据进行栅格化处理,以提取得到多条线段;

在得到符合墙面特征的点云数据后,对这些点云数据进行三维到二维投影,对投影后的数据进行栅格化处理,以提取得到多条线段,具体的,该多条线段用于表示待处理封闭空间中的墙面。下文中再对该过程进行详细描述。

s108、通过迭代聚类方法对多条线段进行聚类处理,得到待处理封闭空间的轮廓,其中,轮廓中包含有多个栅格;

在得到多条线段后,该多条线段杂乱无章,然后通过迭代聚类方法对多条线段进行聚类处理,得到待处理封闭空间的轮廓,该待处理封闭空间的轮廓即为待处理封闭空间中墙面所围成的空间对应的二维平面轮廓。下文中再对该过程进行具体介绍。

s110、基于轮廓采用多方向扫描的点聚类方法对轮廓中的栅格进行聚类处理,得到待处理封闭空间的拓扑分割图。

在得到轮廓后,基于轮廓采用多方向扫描的点聚类方法对轮廓中的栅格进行聚类,就能够得到待处理封闭空间的拓扑分割图。因为采用的是点聚类方法对栅格进行的聚类,所以聚类后能够确定每一个栅格所属的拓扑空间(或叫做拓扑区域)。下文中再对该过程进行详细描述。

现有技术中采用栅格聚类的方法构建拓扑地图,但是这种方法存在过度分割的可能;而在建立地图的过程当中,根据里程信息,在等间隔的距离上标记点,以此建立拓扑地图的方式不能反映真实的空间拓扑信息;而基于点云进行拓扑分割的方法受限于空间点云的准确性,无法进行有效的分割,无法确定空间中任何一个位置所属的拓扑空间。与现有的拓扑分割方法相比,本发明实施例提供的面向封闭空间的拓扑分割方法中,将符合墙面特征的点云数据进行三维到二维投影,对投影后的数据进行栅格化处理,以提取得到了多条线段,进而通过迭代聚类方法对多条线段进行聚类处理,得到了待处理封闭空间的轮廓,最后,基于得到的轮廓采用多方向扫描的点聚类方法对轮廓中的每个栅格进行聚类处理,使得轮廓中的每一个栅格都有其所属的拓扑空间。该方法提高了拓扑分割的准确性,能够对待处理封闭空间进行有效的分割,缓解了现有的拓扑分割方法误分割率高,无法进行有效的分割,无法确定空间内任何一个位置所属的拓扑空间的技术问题。

上述内容对面向封闭空间的拓扑分割方法进行了简要介绍,下面对其中涉及的具体内容进行详细描述。

在本发明实施例中,获取待处理封闭空间的目标点云数据的方式有多种,在一个可选地实施方式中,参考图2,获取待处理封闭空间的目标点云数据包括以下步骤:

s201、通过安装在机器人上的rgb-d相机获取待处理封闭空间中不同时刻对应的里程计数据,深度图和rgb图;

具体的,将rgb-d相机小仰角安装在机器人上,通过机器人在待处理封闭空间中移动,获取不同位置的信息。

比如机器人在当前时刻a位置处(通过里程计数据表现出来)获得了一张深度图和rgb图,在另一时刻b位置处获得了另外的深度图和rgd图。这些深度图和rgb图都是待处理封闭空间中某一特定位置的图。

s202、通过时间对应关系将不同时刻对应的里程计数据,深度图和rgb图进行配准,得到待处理封闭空间的原始点云数据;

在得到不同时刻时对应的里程计数据,深度图和rgb图后,通过时间对应关系将不同时刻时对应的里程计数据,深度图和rgb图进行配准,得到原始点云数据。该过程和现有技术中配准的过程相同,在此不再赘述。该过程最终得到的为整个的待处理封闭空间的原始点云数据,而非某一特定位置处的点云。

s203、通过预设筛选规则对原始点云数据进行筛选处理,得到筛选后的点云数据;

在得到原始点云数据后,通过预设筛选规则对原始点云数据进行筛选处理。具体的,在本发明实施例中,预设筛选规则为去除z坐标范围不在1.3m~2.5m之间的点云数据。

发明人考虑到对于家庭环境来说,低于1.3m内的数据中,其特征并不是稳定的,比如,地面上摆放的椅子,可以随便移动,该特征并不稳定,但是对于高度在1.3m~2.5m空间范围内,环境中的特征基本是稳定的,所以发明人采用了该数据范围进行了点云数据的筛选。但是本发明实施例对该数据范围不进行具体限制,该数据范围可根据具体的家庭环境进行适当的调整。

s204、对筛选后的点云数据进行下采样处理和噪点去除处理,得到目标点云数据。

在得到筛选后的点云数据后,对筛选后的点云数据进行下采样处理和噪点去除处理,得到目标点云数据。具体的,下采样处理可以使用体素格滤波器;噪点去除处理可以使用统计滤波器或半径滤波器。

上述过程即为获取待处理封闭空间的目标点云数据的过程,下面对采用密度投影和特征值法提取目标点云数据中符合墙面特征的点云数据的过程进行介绍。

可选地,参考图3,采用密度投影和特征值法提取目标点云数据中符合墙面特征的点云数据包括:

s301、采用目标栅格对x-y平面进行离散化处理,得到预设栅格地图;

具体的,使用边长为dmm的目标栅格对x-y平面进行离散化处理,得到预设栅格地图,该预设栅格地图为空白的栅格地图。

s302、将目标点云数据投影至预设栅格地图;

在得到预设栅格地图后,将目标点云数据投影至预设栅格地图中。

s303、统计落入预设栅格地图中每个栅格中的空间点,得到每个栅格中空间点的统计数据,其中,空间点为目标点云数据对应的点;

投影完毕后,统计落入预设栅格地图中每个栅格中的空间点。之所以进行空间点的统计是因为在1.3m至2.5m的范围内,都是墙面的存在范围,墙面是可以摸得到的,是真实的物理点,是连续的,所以,通过墙面反射得到的空间点数最多。为了能够获取得到墙面,所以先统计每个栅格中空间点的统计数据。即该空间点的统计数据越大,其对应的点云数据就越疑似为墙面点云数据(即待验证的墙面点云数据)。

s304、根据每个栅格中空间点的统计数据确定待验证的墙面点云数据;

在得到每个栅格中空间点的统计数据后,根据统计数据的大小确定待验证的墙面点云数据。具体的,如果每个栅格中空间点的统计数据大于预设阈值时,其对应的点云数据即为待验证的墙面点云数据。

s305、通过特征值法对待验证的墙面点云数据进行特征值验证,得到符合墙面特征的点云数据。

在得到待验证的墙面点云数据后,通过特征值法对待验证的墙面点云数据进行特征值验证,得到符合墙面特征的点云数据。

具体的,使用公式(1)计算待验证的墙面点云数据的中心点,在得到待验证的墙面点云数据后,通过公式(2)计算待验证的墙面点云数据的协方差矩阵。最终,计算协方差矩阵的特征向量对应的特征值。

假设特征值按照从大到小的顺序排列后得到的顺序为:k1、k2、k3。当k3远远小于k2、k1时,确定得到待验证的墙面点云数据表现为良好的平面特征,该待验证的墙面点云数据为真实的符合墙面特征的点云数据。正常来讲,如果k3与k2存在一个量级以上的差别时,则认为是远远小于,但是实际应用过程中,可以根据实际的数据给定一个阈值,如果二者之间的差值大于该阈值,则认为是远远小于。

相关公式如下:

其中,

,n表示待验证的墙面点云数据的个数。

上述内容为提取符合墙面特征的点云数据的过程,下面对符合墙面特征的点云数据进行三维到二维投影,对投影后的数据进行栅格化处理的过程进行介绍。

可选地,对符合墙面特征的点云数据进行三维到二维投影,对投影后的数据进行栅格化处理,以提取得到多条线段包括:

1、将符合墙面特征的点云数据投影至栅格离散化处理后的x-y平面,得到符合墙面特征的点云数据在x-y平面内的投影数据;

2、采用随机抽样一致性算法对投影数据进行线性拟合,得到多条直线方程;

3、基于投影数据,多条直线方程和栅格确定多条线段。

可选地,参考图4,基于投影数据,多条直线方程和栅格确定多条线段包括:

s401、获取目标直线方程,其中,目标直线方程为多条直线方程中的任一条;

如图5所示,图5中示出了一条直线方程所代表的直线。

s402、分别计算目标直线方程上的投影数据的x方向跨度大小和y方向跨度大小;

具体的,因为目标直线方程是通过随机抽样一致性算法对投影数据进行线性拟合得到的,所以目标直线上存在投影数据,根据目标直线上投影数据的坐标就能够计算得到x方向跨度大小和y方向跨度大小。

x方向跨度大小即为目标直线上投影数据的坐标中,x坐标最大的与x坐标最小的之间差值,同理,y方向跨度大小的计算过程与x方向跨度大小的计算过程相似。

s403、根据x方向跨度大小和y方向跨度大小确定目标直线方程的查找主方向,其中,查找主方向为x方向跨度大小和y方向跨度大小中跨度较大的方向;

在得到x方向跨度大小和y方向跨度大小后,就能够根据x方向跨度大小和y方向跨度大小确定目标直线方程的查找主方向。

具体的,查找主方向为x方向跨度大小和y方向跨度大小中跨度较大的方向。

如图5所示,图中目标直线方程确定的直线较平坦化,显然x方向跨度大小大于y方向跨度大小,所以x方向为该目标直线方程的查找主方向。

s404、基于查找主方向确定各栅格中心点的第一坐标,其中,第一坐标为查找主方向的坐标;

在得到查找主方向后,基于查找主方向确定各栅格中心点的第一坐标。

具体的,如图5所示,x方向为查找主方向,所以也就是确定各栅格中心点的x方向的坐标(即第一坐标),也就是确定各栅格中心点的x坐标。

s405、确定与第一坐标对应的满足目标直线方程的第二坐标;

在确定得到第一坐标后,确定与第一坐标对应的满足目标直线方程的第二坐标。继续以图5为例进行说明,在得到各栅格中心点的x坐标后,将各栅格中心点的x坐标代入目标直线方程,就能够确定得到与各栅格中心点的x坐标对应的满足目标直线方程的y坐标(即第二坐标)。

s406、基于第一坐标和第二坐标确定与第一坐标和第二坐标对应的预设栅格;

在得到第一坐标和第二坐标后,就能够得到与第一坐标和第二坐标对应的预设栅格。

s407、沿着查找主方向在预设栅格中查找包含投影数据的目标栅格;

在得到预设栅格后,沿着查找主方向在预设栅格中查找包含投影数据的目标栅格。

s408、基于目标栅格所对应的第一坐标和第二坐标确定多条线段,其中,多条线段的起点或终点为目标栅格所对应的第一坐标和第二坐标所确定的点。

最后,就能基于目标栅格所对应的第一坐标和第二坐标确定多条线段。具体的,目标栅格所对应的第一坐标和第二坐标所确定的点即为多条线段的起点或终点。

在本发明实施例中,提取多条线段的具体操作过程是按照下述方法进行的:

如图5所示,x方向为查找主方向,先确定各栅格中心点的x坐标中x坐标的最小值,然后把这个最小值代入目标直线方程,得到对应的y坐标,然后看该(x坐标,y坐标)对应的栅格是否存在投影数据。如果不存在,x坐标加上一个栅格的大小,然后再算y坐标,直到得到的(x坐标,y坐标)对应的栅格存在投影数据,该(x坐标,y坐标)就作为线段的起点。然后继续,直到(x坐标,y坐标)对应的栅格不存在投影数据,作为终点。这样就得到了一条线段。

另外,依据上述的过程如果线段的起点找到了,然后x不断的增加,去计算y,确定(x1,y1)对应的栅格,看这个栅格内是否有投影数据。如果发现没有投影数据,不会马上判定(x1,y1)对应的点为线段的终点。

实际过程中,会继续增加x,得到(x2,y2),(x3,y3).....直到发现这些没有投影数据的栅格连成的线段长度超过0.5m(本发明实施例对其不进行具体限制)。那么才把刚才第一个没有投影数据的坐标(x1,y1)作为线段的终点。因为由于里程计,噪声,环境等的影响,很有可能中间会产生小段的不连续,所以需要进行多个验证,以证实后续对应的栅格确实不存在投影数据。

如果发现没有投影数据的栅格连成的线段长度超过0.5m后还没有,还要继续增加x,得到y,如果发现新确定的坐标对应的栅格中存在投影数据了,那么这个坐标对应的点就又是另外一条线段的起点了。直到遍历各栅格中心点的x坐标中x坐标的最大值为止。

这里只是以一条直线方程为例进行了说明,对于其它的直线方程也是按照上述内容中描述的过程确定多条线段。

上述内容为提取多条线段的过程,下面对提取待处理封闭空间的轮廓的过程进行介绍。

可选地,参考图6,通过迭代聚组方法对多条线段进行聚类处理,得到待处理封闭空间的轮廓包括:

s601、对多条线段进行方向聚类,得到多个第一分组,其中,每个第一分组内的任意两条线段之间的夹角在预设角度内;

具体的,假设有10条线段。将第一条形成一组,然后将第二条跟第一条进行对比,如果两条之间的夹角小于30度(即预设角度),那么第二条和第一条是一组。然后再将第三条分别与第一条和第二条进行对比,如果得到任意两条之间的夹角小于30度,则也归到一组中。

然后第四条,如果与之前组内的线段相比,并不是任意两条之间的夹角都小于30度,那么这条直线单独再起一组,直到遍历了10条线段为止,这样就得到了多个第一分组。

需要说明的是,本发明实施例对预设角度的值不进行具体限制。

s602、对每个第一分组内的线段进行距离聚类,得到多个第二分组,其中,每个第二分组内任意一条线段的中点与组内最长线段的距离在预设距离内;

在进行方向聚类完成后,得到了多个第一分组,然后对每个第一分组内的线段进行距离聚类,得到多个第二分组。

该距离聚类的过程与上述方向聚类的过程相似,在此不再进行赘述。

另外,在本发明实施例中,该预设距离可以为30cm,但是本发明实施例对其不进行具体限制,根据实际情况也可以设定为其它值。

s603、计算每个第二分组内的线段的平均方向和平均中点;

在得到多个第二分组后,计算每个第二分组内的线段的平均方向和平均中点。

s604、基于平均方向和平均中点采用点向式方法构建每个第二分组的目标直线;

s605将每个第二分组内的每条线段向其对应的目标直线进行投影,以合并每个第二分组内的线段,得到合并后的线段;

s606、清除合并后的线段中线段长度小于预设长度的线段;

具体的,该预设距离可以为0.5m,但是本发明实施例对其不进行具体限制,根据实际情况也可以设定为其它值。

之所以要清除小于预设长度的线段,是由于里程计误差,在相机多次采集同一区域数据时,会使在线段拟合的时候,造成该局部区域产生长度小于0.5m的噪声线段,另外,实际中很少出现小于0.5m的墙面,所以可以清除该些线段,而不影响整体的拓扑分割效果。

s607、执行上述迭代过程,判断最近两次迭代的结果是否一致;

完成一次上述过程后,缓解了多条线段的杂乱程度,为了能够得到清晰的待处理封闭空间的轮廓,所以需要重复执行上述过程,直至最近两次迭代的结果一致;

s608、将迭代完成后,剩余的线段作为待处理封闭空间的轮廓。

具体的,该待处理封闭空间的轮廓表示待处理封闭空间中墙面所围成的空间对应的二维平面轮廓。

上述内容为提取待处理封闭空间的轮廓的具体过程,下面对拓扑分割的过程进行具体介绍。

可选地,参考图7,基于轮廓采用多方向扫描的点聚类方法对轮廓中的栅格进行聚类处理,得到待处理封闭空间的拓扑分割图包括:

s701、计算轮廓中所有线段的端点坐标;

具体的,端点坐标中包括了x坐标和y坐标。

s702、确定端点坐标中的x方向的极值和y方向的极值,其中,x方向的极值包括:x方向的极小值,x方向的极大值,y方向的极值包括:y方向的极小值,y方向的极大值;

在得到所有线段的端点坐标后,进一步确定端点坐标中的x方向的极值和y方向的极值。其中,x方向的极小值是指所有端点坐标中x坐标的最小值,其它极值不再说明。

s703、基于x方向的极值和y方向的极值确定x扫描方向和y扫描方向;

在得到x方向的极值和y方向的极值后,进一步确定x扫描方向和y扫描方向。

例如,x方向的极小值为1,x方向的极大值为10,那么x扫描方向可以为1到10的方向,也可以为10到1的方向,还可以为其它方向,这里并不进行具体限制。

s704、根据x扫描方向对栅格进行逐列聚类扫描,得到所有栅格的第一分类结果,其中,第一分类结果中每一个栅格与其所属类别的其它任意栅格之间的连线不与轮廓相交,第一分类结果中包含多个第一拓扑区域,且每个第一拓扑区域代表一种类别;

具体的,如果x扫描方向为x从小到大的方向,那么从x方向的极小值开始对栅格进行逐列聚类扫描。

具体过程可以为,在得到x方向的极小值所对应的一列栅格后,从其中的一列栅格中先确定一个栅格,假设确定的为最下面的栅格,那么这一栅格作为一类,然后将最下面的栅格与其紧邻的栅格进行连线,如果两个栅格的连线不与轮廓相交,那么这两个栅格成为一类,如此依次往上轮询,如果相邻的两个栅格之间的联系与轮廓相交,那么,上面的栅格就作为一个新类,这样就能完成一列栅格的聚类。

在完成一列栅格的聚类后,x方向加一个栅格的长度,继续进行上述的过程,知道对所有栅格完成分类为止,这样的分类方法能够确定每一个栅格所属的拓扑区域。

s705、根据y扫描方向对栅格进行逐行聚类扫描,得到所有栅格的第二分类结果,其中,第二分类结果中每一个栅格与其所属类别的其它任意栅格之间的连线不与轮廓相交,第二分类结果中包含多个第二拓扑区域,且每个第二拓扑区域代表一种类别;

在完成x方向的扫描后,就能够得到x方向的聚类扫描结果(即第一分类结果),按照相似的方法进行y方向的逐行聚类扫描,同样能够得到y方向的聚类扫描结果(即第二分类结果),本发明实施例不再对y方向的逐行聚类扫描过程进行详细描述,具体过程与x方向的聚类扫描相似,不再赘述。

s706、当第一分类结果中存在目标第一拓扑区域与第二分类结果中的目标第二拓扑区域的重合区域大于预设区域面积时,则将目标第一拓扑区域和目标第二拓扑区域进行合并,得到待处理封闭空间的拓扑分割图,其中,目标第一拓扑区域为多个第一拓扑区域中的任一个。

具体的,合并即为进行或的操作。

本发明通过线段拟合,迭代聚类等方法,最终实现封闭空间的拓扑分割。方法鲁棒性高,对于一般室内环境具有通用性,并且有效的解决了目前的拓扑分割方法存在的过分割、空间点划分不明确等缺陷,经过拓扑分割之后,空间中任何一个位置都可以得到所属的拓扑分割区域。

本发明提出了通过拟合墙体的线段,并通过线段聚类的方法,最终得到封闭空间的轮廓,并且使用最终聚类结果的线段描述该轮廓;

本发明提出了以分属于不同的拓扑区域的点之间的连线不跨墙为中心思想,并由此引出的基于x与y方向分别扫描、合并的算法将空间中的所有点进行拓扑空间的划分,简单有效。

实施例二:

一种面向封闭空间的拓扑分割装置,参考图8,该装置包括:

获取模块11,用于获取待处理封闭空间的目标点云数据,其中,目标点云数据为经过预处理之后的点云数据;

提取模块12,用于采用密度投影和特征值法提取目标点云数据中符合墙面特征的点云数据;

栅格化处理模块13,用于对符合墙面特征的点云数据进行进行三维到二维投影,对投影后的数据进行栅格化处理,以提取得到多条线段;

第一聚类处理模块14,用于通过迭代聚类方法对多条线段进行聚类处理,得到待处理封闭空间的轮廓,其中,轮廓中包含有多个栅格;

第二聚类处理模块15,用于基于轮廓采用多方向扫描的点聚类方法对轮廓中的栅格进行聚类处理,得到待处理封闭空间的拓扑分割图。

本发明实施例提供的面向封闭空间的拓扑分割装置中,将符合墙面特征的点云数据进行三维到二维投影,对投影后的数据进行栅格化处理,以提取得到了多条线段,进而通过迭代聚类方法对多条线段进行聚类处理,得到了待处理封闭空间的轮廓,最后,基于得到的轮廓采用多方向扫描的点聚类方法对轮廓中的每个栅格进行聚类处理,使得轮廓中的每一个栅格都有其所属的拓扑空间。该装置提高了拓扑分割的准确性,能够对待处理封闭空间进行有效的分割,缓解了现有的拓扑分割方法误分割率高,无法进行有效的分割,无法确定空间内任何一个位置所属的拓扑空间的技术问题。

可选地,获取模块包括:

获取单元,用于通过安装在机器人上的rgb-d相机获取待处理封闭空间中不同时刻对应的里程计数据,深度图和rgb图;

配准单元,用于通过时间对应关系将不同时刻对应的里程计数据,深度图和rgb图进行配准,得到待处理封闭空间的原始点云数据;

筛选处理单元,用于通过预设筛选规则对原始点云数据进行筛选处理,得到筛选后的点云数据;

处理单元,用于对筛选后的点云数据进行下采样处理和噪点去除处理,得到目标点云数据。

可选地,提取模块包括:

离散化处理单元,用于采用目标栅格对x-y平面进行离散化处理,得到预设栅格地图;

第一投影单元,用于将目标点云数据投影至预设栅格地图;

统计单元,用于统计落入预设栅格地图中每个栅格中的空间点,得到每个栅格中空间点的统计数据,其中,空间点为目标点云数据对应的点;

第一确定单元,用于根据每个栅格中空间点的统计数据确定待验证的墙面点云数据;

验证单元,用于通过特征值法对待验证的墙面点云数据进行特征值验证,得到符合墙面特征的点云数据。

可选地,栅格化处理模块包括:

第二投影单元,用于将符合墙面特征的点云数据投影至栅格离散化处理后的x-y平面,得到符合墙面特征的点云数据在x-y平面内的投影数据;

线性拟合单元,用于采用随机抽样一致性算法对投影数据进行线性拟合,得到多条直线方程;

第二确定单元,用于基于投影数据,多条直线方程和栅格确定多条线段。

可选地,第二确定单元包括:

获取子单元,用于获取目标直线方程,其中,目标直线方程为多条直线方程中的任一条;

计算子单元,用于分别计算目标直线方程上的投影数据的x方向跨度大小和y方向跨度大小;

第一确定子单元,用于根据x方向跨度大小和y方向跨度大小确定目标直线方程的查找主方向,其中,查找主方向为x方向跨度大小和y方向跨度大小中跨度较大的方向;

第二确定子单元,用于基于查找主方向确定各栅格中心点的第一坐标,其中,第一坐标为查找主方向的坐标;

第三确定子单元,用于确定与第一坐标对应的满足目标直线方程的第二坐标;

第四确定子单元,用于基于第一坐标和第二坐标确定与第一坐标和第二坐标对应的预设栅格;

查找子单元,用于沿着查找主方向在预设栅格中查找包含投影数据的目标栅格;

第五确定子单元,用于基于目标栅格所对应的第一坐标和第二坐标确定多条线段,其中,多条线段的起点或终点为目标栅格所对应的第一坐标和第二坐标所确定的点。

可选地,第一聚类处理模块包括:

方向聚类单元,用于对多条线段进行方向聚类,得到多个第一分组,其中,每个第一分组内的任意两条线段之间的夹角在预设角度内;

距离聚类单元,用于对每个第一分组内的线段进行距离聚类,得到多个第二分组,其中,每个第二分组内任意一条线段的中点与组内最长线段的距离在预设距离内;

第一计算单元,用于计算每个第二分组内的线段的平均方向和平均中点;

构建单元,用于基于平均方向和平均中点采用点向式方法构建每个第二分组的目标直线;

第三投影单元,用于将每个第二分组内的每条线段向其对应的目标直线进行投影,以合并每个第二分组内的线段,得到合并后的线段;

清除单元,用于清除合并后的线段中线段长度小于预设长度的线段;

迭代单元,用于重复执行上述过程,直至最近两次迭代的结果一致;

设定单元,用于将迭代完成后,剩余的线段作为待处理封闭空间的轮廓。

可选地,第二聚类处理模块包括:

第二计算单元,用于计算轮廓中所有线段的端点坐标;

第三确定单元,用于确定端点坐标中的x方向的极值和y方向的极值,其中,x方向的极值包括:x方向的极小值,x方向的极大值,y方向的极值包括:y方向的极小值,y方向的极大值;

第四确定单元,用于基于x方向的极值和y方向的极值确定x扫描方向和y扫描方向;

逐列聚类扫描单元,用于根据x扫描方向对栅格进行逐列聚类扫描,得到所有栅格的第一分类结果,其中,第一分类结果中每一个栅格与其所属类别的其它任意栅格之间的连线不与轮廓相交,第一分类结果中包含多个第一拓扑区域,且每个第一拓扑区域代表一种类别;

逐行聚类扫描单元,用于根据y扫描方向对栅格进行逐行聚类扫描,得到所有栅格的第二分类结果,其中,第二分类结果中每一个栅格与其所属类别的其它任意栅格之间的连线不与轮廓相交,第二分类结果中包含多个第二拓扑区域,且每个第二拓扑区域代表一种类别;

合并单元,用于当第一分类结果中存在目标第一拓扑区域与第二分类结果中的目标第二拓扑区域的重合区域大于预设区域面积时,则将目标第一拓扑区域和目标第二拓扑区域进行合并,得到待处理封闭空间的拓扑分割图,其中,目标第一拓扑区域为多个第一拓扑区域中的任一个。

该实施例二中的具体内容可以参考上述实施例一中的具体描述,在此不再赘述。

本发明实施例所提供的面向封闭空间的拓扑分割方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

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

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

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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