CN116152277B - 一种地图分割方法、装置、电子设备及介质 - Google Patents
一种地图分割方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN116152277B CN116152277B CN202310225396.9A CN202310225396A CN116152277B CN 116152277 B CN116152277 B CN 116152277B CN 202310225396 A CN202310225396 A CN 202310225396A CN 116152277 B CN116152277 B CN 116152277B
- Authority
- CN
- China
- Prior art keywords
- voronoi
- map
- room
- room area
- points
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
Abstract
本申请实施例提供了一种地图分割方法、装置、电子设备及介质,在该方法中,提取待分割地图中的所有轮廓,并获取每个轮廓的像素;遍历每个轮廓的像素,生成Voronoi单元;根据Voronoi单元,确定包围Voronoi单元的边界点;遍历Voronoi单元的边界点,选择均在待分割地图内且颜色相同的连续两点组成数据对;将多个数据对进行连线绘制,得到Voronoi图;将Voronoi图转换为房间区域。在该方法中,将待分割的地图数据转换为Voronoi图,然后将Voronoi图转换为房间区域,Voronoi图既适应简单地图的分割,也可以适应复杂地图的分割,因此可以提高地图分割效果。
Description
技术领域
本发明涉及智能家居技术领域,尤其涉及一种地图分割方法、装置、电子设备及介质。
背景技术
随着生活水平的提高以及科技的进步,清洁机器人已经成为家居空间和办公室等环境中的常用家电产品。清洁机器人配合自身设定的控制路径,有规划清扫地区。为了保证清洁机器人能够在房间内移动,避开障碍物以及达到更佳地清扫效果,需要对房间地图进行分割。
目前地图分割方案有基于腐蚀地图的分割方案和基于距离的分割方案。在基于腐蚀地图的分割方案中,可以通过不断的腐蚀地图提取等高线,再通过不断查找连通域,来查找符合房间的区域,从而形成分割地图。在基于距离的分割方案中,可以计算地图图像的欧式距离,依次遍历距离轮廓,查找符合房间的区域,从而形成分割地图。
但是基于腐蚀地图的分割方案和基于距离的分割方案对于简单地图可以实现比较准确美观的分割,而对于较为复杂的地图,这两个方案的分割效果较差。
发明内容
本申请实施例提供了一种地图分割方法、装置、电子设备及介质,用以解决现有技术中地图分割效果差的问题。
第一方面,本申请实施例提供了一种地图分割方法,所述方法包括:
提取待分割地图中的所有轮廓,并获取每个轮廓的像素;
遍历所述每个轮廓的像素,生成Voronoi单元;根据所述Voronoi单元,确定包围所述Voronoi单元的边界点;
遍历所述Voronoi单元的边界点,选择均在所述待分割地图内且颜色相同的连续两点组成数据对;将多个数据对进行连线绘制,得到Voronoi图;
将所述Voronoi图转换为房间区域。
进一步地,所述所有轮廓包括连通域的外围边界和孔的内层边界。
进一步地,所述将多个数据对进行连线绘制,得到Voronoi图之后,在将所述Voronoi图转换为房间区域之前,所述方法还包括:
遍历所述Voronoi图中第一颜色值的每个点,将存在至少三个第一颜色值的邻居点的点存入节点集合;
遍历所述Voronoi图中所述第一颜色值的每个点,将存在一个邻居点且属于所述节点集合中的点由所述第一颜色值调整为第二颜色值。
进一步地,所述将所述Voronoi图转换为房间区域包括:
查找所述Voronoi图的临界点;
根据所述Voronoi图的临界点,绘制所述Voronoi图的临界线;
提取所述待分割地图中的所有轮廓,根据所述Voronoi图的临界线,确定每个轮廓对应的房间区域。
进一步地,所述将所述Voronoi图转换为房间区域之后,所述方法还包括:
将所述房间区域中不符合条件的房间合并到其他房间内。
进一步地,所述将所述房间区域中不符合条件的房间合并到其他房间内包括以下一种或多种:
将只有一个邻居房间,且周围最多有设定百分比的墙壁的目标房间区域合并到所述邻居房间内;
将房间面积小于设定面积阈值的目标房间区域,合并到与所述目标房间区域相邻像素最多的房间内;
将墙壁比例小于墙壁比例阈值的目标房间区域,合并到与所述目标房间区域相邻且墙壁比例大于所述墙壁比例阈值的房间内;或者
将共享周长超过周长阈值的至少两个目标房间区域进行合并。
第二方面,本申请实施例提供了一种地图分割装置,所述装置包括:
提取获取模块,用于提取待分割地图中的所有轮廓,并获取每个轮廓的像素;
处理模块,用于遍历所述每个轮廓的像素,生成Voronoi单元;根据所述Voronoi单元,确定包围所述Voronoi单元的边界点;遍历所述Voronoi单元的边界点,选择均在所述待分割地图内且颜色相同的连续两点组成数据对;将多个数据对进行连线绘制,得到Voronoi图;
转换模块,用于将所述Voronoi图转换为房间区域。
进一步地,所述处理模块,还用于遍历所述Voronoi图中第一颜色值的每个点,将存在至少三个第一颜色值的邻居点的点存入节点集合;遍历所述Voronoi图中所述第一颜色值的每个点,将存在一个邻居点且属于所述节点集合中的点由所述第一颜色值调整为第二颜色值。
进一步地,所述转换模块,具体用于查找所述Voronoi图的临界点;根据所述Voronoi图的临界点,绘制所述Voronoi图的临界线;提取所述待分割地图中的所有轮廓,根据所述Voronoi图的临界线,确定每个轮廓对应的房间区域。
进一步地,所述装置还包括:合并模块,用于将所述房间区域中不符合条件的房间合并到其他房间内。
进一步地,所述合并模块,具体用于执行以下一种或多种合并方式:
将只有一个邻居房间,且周围最多有设定百分比的墙壁的目标房间区域合并到所述邻居房间内;将房间面积小于设定面积阈值的目标房间区域,合并到与所述目标房间区域相邻像素最多的房间内;将墙壁比例小于墙壁比例阈值的目标房间区域,合并到与所述目标房间区域相邻且墙壁比例大于所述墙壁比例阈值的房间内;或者将共享周长超过周长阈值的至少两个目标房间区域进行合并。
第三方面,本发明实施例提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时执行上述任一项所述地图分割方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时执行上述任一项所述地图分割方法的步骤。
在本申请实施例中,提取待分割地图中的所有轮廓,并获取每个轮廓的像素;遍历每个轮廓的像素,生成Voronoi单元;根据Voronoi单元,确定包围Voronoi单元的边界点;遍历Voronoi单元的边界点,选择均在待分割地图内且颜色相同的连续两点组成数据对;将多个数据对进行连线绘制,得到Voronoi图;将Voronoi图转换为房间区域。在该方法中,将待分割的地图数据转换为Voronoi图,然后将Voronoi图转换为房间区域,Voronoi图既适应简单地图的分割,也可以适应复杂地图的分割,因此可以提高地图分割效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的一些实施例提供的一种得到Voronoi图过程示意图;
图2为本申请的一些实施例提供的一种Voronoi图的示意图;
图3为本申请的一些实施例提供的一种地图分割过程示意图;
图4为本申请的一些实施例提供的一种将地图转换为单通道灰度图像的过程示意图;
图5为本申请的一些实施例提供的一种显示可通行的区域示意图;
图6为本申请的一些实施例提供的一种Voronoi图的示意图;
图7为本申请的一些实施例提供的一种地图分割结果示意图;
图8为本申请的一些实施例提供的一种处理流程示意图;
图9为本申请的一些实施例提供的一种查找到的Voronoi图的临界点示意图;
图10为本申请的一些实施例提供的一种查找到的Voronoi图的临界线示意图;
图11为本申请的一些实施例提供的一种房间区域示意图;
图12为本申请的一些实施例提供的一种经过合并处理后的地图示意图;
图13为本申请的一些实施例提供的一种地图分割装置的结构示意图;
图14为本申请的一些实施例提供的一种电子设备的结构示意图。
实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为了提高地图分割效果,本申请实施例提供了一种地图分割方法、装置、电子设备及介质。在本申请实施例中,将待分割的地图数据转换为Voronoi图,然后将Voronoi图转换为房间区域,Voronoi图既适应简单地图的分割,也可以适应复杂地图的分割,因此可以提高地图分割准确性,提高地图分割效果。
先对Voronoi图进行简单介绍,Voronoi图(维诺图)由一组由连接两邻点直线的垂直平分线组成的连续多边形组成,Voronoi图是通过Delaunay三角网(德洛内三角网)得到的,过程如图1所示,根据Voronoi的点集构成Voronoi图。
Voronoi图中涉及的几个基本概念参见图2,包括:
Voronoi Site(Voronoi点),指输入点,是具有几何意义的点;
Voronoi Edge(Voronoi边),落在相邻两个Voronoi Site的垂直平分线上;
Voronoi Vertex(Voronoi顶点),指多个Voronoi Edge的交汇点;
Voronoi Cell(Voronoi单元格),包含某个Voronoi Site的由Voronoi Edge围成的区域。
下面对本申请实施例提供的地图分割过程进行说明。参见图3,为本申请的一些实施例提供的一种地图分割过程示意图,该过程包括:
S301:提取待分割地图中的所有轮廓,并获取每个轮廓的像素。
本申请实施例提供的地图分割方法应用于电子设备,该电子设备可以为家居设备(如清洁机器人)、用户设备、或服务器等。其中用户设备包括但不限于手机、电脑、或者穿戴设备。
电子设备可以获取并加载待分割地图,其中待分割地图可以由用户设置活输入到电子设备中的。
在提取待分割地图中的所有轮廓时,可以先对获取到的待分割地图(以下简称为地图)进行处理,然后对处理后的待分割地图进行轮廓提取。示例的,电子设备可以加载地图并将地图转换为单通道灰度图像,如图4所示,然后对地图进行二值化处理,例如将单通道值小于250的置为0,将单通道值不小于250的置为255,整个地图呈现出黑白效果,显示可通行的区域,如图5所示,再然后对地图进行腐蚀膨胀等基本处理操作,得到处理后的地图。可以理解的是,在提取地图中的所有轮廓时,也可以直接对获取到的待分割地图进行轮廓提取,在此不做限制。
一种实现方式中,本申请实施例提供的地图分割方法可以采用OpenCv 进行处理。例如在该步骤中,电子设备可以通过 cv::findContours 函数查找每个 discretizedcontour(离散化轮廓),轮廓检测模式标志设置为CV_RETR_CCOMP,轮廓逼近方法标志设置为CV_CHAIN_APPROX_NONE,以提取地图中的所有轮廓信息。并且电子设备可以获取每个轮廓的像素,其中相邻两个像素的点的像素位置相差设定距离(例如但不限于相差1)。
电子设备根据提取到的所有轮廓和每个轮廓的像素,可以确定contours(轮廓),contours中包含检测到的所有轮廓,以及每个轮廓的像素对应的像素坐标。在确定contours之后,电子设备还可以通过 cv::drawContours 函数,在(处理后的)地图上绘制该contours,如将绘制轮廓的颜色设置为255,且只绘制轮廓的内部结构。电子设备可选的可以再次对处理后的地图进行腐蚀操作,按照中心点位置进行多次腐蚀,以便后续不绘制边界附近的点。
可选的,所有轮廓包括但不限于连通域的外围边界和孔的内层边界。例如电子设备将所有轮廓信息组织为双层结构,顶层为连通域的外围边界,次层为孔的内层边界。
S302:遍历每个轮廓的像素,生成Voronoi单元;根据Voronoi单元,确定包围Voronoi单元的边界点。
示例的,在生成Voronoi单元时,电子设备可以遍历contours中的数据,将每个轮廓的像素坐标添加到OpenCV Delaunay生成器如cv::Subdiv2D中,从中可以生成Voronoi单元,还可以生成Voronoi Site。
示例的,在确定边界点时,电子设备可以通过cv::Subdiv2D的getVoronoiFacetList函数,得到包围Voronoi区域的边界点(Voronoi Vertex),称为voronoi_facets,以及可选的Voronoi区域的母点,称为voronoi_centers。voronoi_facets即为用于查找voronoi单元的面和中心的变量。
S303:遍历Voronoi单元的边界点,选择均在待分割地图内且颜色相同的连续两点组成数据对;将多个数据对进行连线绘制,得到Voronoi图。
示例的,颜色相同包括两点的颜色均为设定值,在此对颜色的设定值不做限制,例如均为255。也就是说,电子设备可以对 voronoi_facets 进行遍历,取出连续两点满足都在地图内且两点的颜色值都为255的数据对。
电子设备可以对连线绘制的颜色进行设置,例如设置将要绘制的颜色值为127(仅为示例,能与边界点颜色区分开即可),将满足条件的点对集合进行两两连线绘制,得到Voronoi图。
可选的,电子设备在所有连线绘制完成后,可以与原始的地图进行对比,腐蚀地图进行填充,得到Voronoi图。
该步骤得到的Voronoi图为广义Voronoi图,例如图6所示。
S304:将Voronoi图转换为房间区域。
由于Voronoi图中包括多个区域,因此根据Voronoi图中的多个区域,可以确定地图中包括的房间区域。
示例的,电子设备可以对Voronoi图进行欧式距离变换,查找规定区域内欧式距离最小值的点,重新确定地图中的轮廓,然后遍历重新确定的轮廓绘制房间区域。或者示例的,电子设备可以直接将Voronoi图中的区域确定为地图中的房间区域
在本申请实施例中,将待分割的地图数据转换为Voronoi图,然后将Voronoi图转换为房间区域,Voronoi图既适应简单地图的分割,也可以适应复杂地图的分割,因此可以提高地图分割效果。
在上述实施例的基础上,电子设备可以提取符合房间特征的节点以及移除不符合房间特征的节点,从而过滤复杂数据,提高地图分割的准确性。具体的,在本申请实施例中,将多个数据对进行连线绘制,得到Voronoi图之后,在将Voronoi图转换为房间区域之前,方法还包括:
遍历Voronoi图中第一颜色值的每个点,将存在至少三个第一颜色值的邻居点的点存入节点集合;
遍历Voronoi图中第一颜色值的每个点,将存在一个邻居点且属于节点集合中的点由第一颜色值调整为第二颜色值。
其中,第一颜色值和第二颜色值不同,在本申请实施例中对第一颜色值和第二颜色值的具体取值不同,例如但不限于第一颜色值为127,第二颜色值为255。
示例的,电子设备可以对Voronoi图中颜色值为127的数据点进行遍历,对于满足当前点周围至少有3个邻居点为127颜色值得节点,存在节点集合node_points以做原始备份。在过程中电子设备可以提取存在至少三个邻居的节点。
又一示例的,电子设备可以再次对Voronoi图中颜色值为127的数据点进行全遍历,在node_points中对当前点进行查找,对于只有一个邻居点且属于node_points中的节点赋值255,即变为白色,从而筛选减少Voronoi图中的边线。在过程中电子设备可以移除只有一个邻居点的节点。
电子设备可以重复多次该实施例所示的过程,使得地图更加收敛,进一步提高地图的分割准确性和分割效果,例如图7所示。
在上述各实施例的基础上,本申请实施例中,将Voronoi图转换为房间区域包括:
查找Voronoi图的临界点;
根据Voronoi图的临界点,绘制Voronoi图的临界线;
提取待分割地图中的所有轮廓,根据Voronoi图的临界线,确定每个轮廓对应的房间区域。
在查找Voronoi图的临界点时,电子设备可以对地图进行欧式距离变换,像素值可以表示该像素在原始地图中距离0像素的最小距离。电子设备选取待检查的区域,此区域的大小取决于当前像素到最近像素的距离,因此,较大的区域会被分割成更多的区域,较小的区域被分割成更少的区域,以此得到一些适中的区域。示例的,包括如下步骤:1)电子设备对Voronoi图遍历,将颜色值为127的点依次添加到邻居点集合neighor_points中,并且每次的遍历都对当前的neighor_points进行如图8所示的处理;2)对每次生成的neighor_points遍历,取当前点的邻居点,如果邻居点的颜色值为127,且已经经过neighor_points处理过,将该邻居点添加到临时集合temporary_points中,并记录符合条件的次数,以便此次遍历的退出;3)检查完所有的邻居点后,再次遍历符合条件的邻居点,并将这些节点的颜色值置为255白色;4)在多次遍历后,可以找到规定区域内的欧式距离最小值的点,此点即为Voronoi图临界点,电子设备可以将临界点标注在地图中且存储到集合中。
下面对图8所示的处理流程进行说明,计算当前点的欧式距离比值eps,插入当前点到邻居点集合neighor_points中,遍历每次邻居点集合中各个点的邻居(不包含自身),查看是否是需求点且已经在邻居点集合neighor_points中,将符合邻居的个数neighor_count累加(neighor_count++),以及将符合的邻居点添加到临时集合temporary_points中,将临时集合temporary_points中点置为255,并添加到邻居点集合neighor_points中,判断邻居个数neighor_count是否小于eps且计数器loopcounter是否小于预设值,如果是,遍历neighor_points,取此集合中欧式距离最小的点,如果否,则将计数器loopcounter累加(loopcounter++),从开始重复执行该过程。
查找到的Voronoi图的临界点例如图9所示。
示例的,在绘制Voronoi图的临界线时,电子设备可以执行如下步骤:
电子设备将原有地图转为CV_32SC1格式,即255-->255*256=65280,针对转换后的地图再次通过cv::findContours函数查找每个discretized contour(离散化轮廓),与第一次的参数步骤一致,得到检测所到的轮廓中存放着像素的坐标合集;
然后电子设备可以遍历临界点集合,针对每一个临界点,与上述的轮廓坐标合集中每个点计算欧式距离,取出最短距离所对应的轮廓点为第一个基点;再次计算与上述的轮廓坐标合集中每个点计算欧式距离,取出大于最短距离、大于变换的欧式距离所对应的轮廓点为第二个基点;
顺序计算并存储两点之间的角度、两次欧式距离的和;
对于临界点集合中的每个点进行一一对应,分别计算两点间角度和距离,对于角度较小、距离较远的两点,绘制连接线;对于角度较大、距离较近的两点不绘制连接线,避免关键线路彼此太近。以角度较大的为例,因为较小的角度(如90度)更可能位于地图边缘或过于靠近边界。如果它们具有相同的角度,则选择临界点向量中第一个点。
查找到的Voronoi图的临界线例如图10所示。
示例的,在确定房间区域时,电子设备可以再次通过 cv::findContours 函数查找每个 discretized contour (离散化轮廓),与第一次的参数步骤一致,得到检测所到的轮廓中存放着像素的坐标合集;遍历每一个轮廓,计算当前轮廓内的面积,对于面积较小的区域暂时置为白色;对于面积较大的区域可以定义为一个房间;对于已经符合条件的房间则用不同颜色的去填充它们(由于当前图像数据格式为CV_32SC1,因此显示为灰白状态);对于暂时设置为白色的不符合区域,通过与原始地图进行对比,将其轮廓周围的彩色区域逐步扩展到白色像素,以达到地图的完整。确定的房间区域例如图11所示。
在本申请实施例中,通过查找临界点,绘制临界线,将Voronoi图转换为房间区域,可以进一步提高地图分割效果。
在上述各实施例的基础上,本申请实施例中,将Voronoi图转换为房间区域之后,方法还包括:
将房间区域中不符合条件的房间合并到其他房间内。
电子设备将不符合条件的房间进行合并,可以进一步提高地图分割效果。电子设备可以遍历地图中的每个像素,相同颜色值记为相同标识ID,然后将该像素点添加到具有相同ID的房间。然后电子设备再次遍历每个像素,为每个像素添加所对应的邻居ID。
其中,将所述房间区域中不符合条件的房间合并到其他房间内时,可以包括以下一个或多个可能的方式:
方式一:将只有一个邻居房间,且周围最多有设定百分比的墙壁的目标房间区域合并到所述邻居房间内。
该实施例对设定百分比的取值不做限制,例如但不限于75%,也就是说,若某个房间只有一个邻居,且周围最多有75%的墙壁,将此房间合并到邻居房间内。
方式二:将房间面积小于设定面积阈值的目标房间区域,合并到与所述目标房间区域相邻像素最多的房间内。
该实施例对设定面积阈值不做限制,在该方式中,若某个房间面积过小,将此小房间合并到与之相邻像素最多的房间内。
方式三:将墙壁比例小于墙壁比例阈值的目标房间区域,合并到与所述目标房间区域相邻且墙壁比例大于所述墙壁比例阈值的房间内。
该实施例对墙壁比例阈值不做限制,在该方式中,若某个房间的墙(房间邻居点为黑色像素)所在的比例较少,将此房间尽量地合并到周围有更多墙的房间。
方式四:将共享周长超过周长阈值的至少两个目标房间区域进行合并。
该实施例对周长阈值不做限制,在该方式中,将共享周长较多的房间进行合并。
经过合并处理后的地图例如图12所示。可选的,为了提高地图分割的美观,电子设备还可以将地图数据由CV_32SC1转为CV_8UC3,并随机填充颜色,生成最终分割后的地图数据。
在上述各实施例的基础上,本申请提供了一种地图分割装置,图13为本申请的一些实施例提供的一种地图分割装置的结构示意图,如图13所示,该装置包括:
提取获取模块1301,用于提取待分割地图中的所有轮廓,并获取每个轮廓的像素;
处理模块1302,用于遍历所述每个轮廓的像素,生成Voronoi单元;根据所述Voronoi单元,确定包围所述Voronoi单元的边界点;遍历所述Voronoi单元的边界点,选择均在所述待分割地图内且颜色相同的连续两点组成数据对;将多个数据对进行连线绘制,得到Voronoi图;
转换模块1303,用于将所述Voronoi图转换为房间区域。
在一种可能的实施方式中,所述处理模块1302,还用于遍历所述Voronoi图中第一颜色值的每个点,将存在至少三个第一颜色值的邻居点的点存入节点集合;遍历所述Voronoi图中所述第一颜色值的每个点,将存在一个邻居点且属于所述节点集合中的点由所述第一颜色值调整为第二颜色值。
在一种可能的实施方式中,所述转换模块1303,具体用于查找所述Voronoi图的临界点;根据所述Voronoi图的临界点,绘制所述Voronoi图的临界线;提取所述待分割地图中的所有轮廓,根据所述Voronoi图的临界线,确定每个轮廓对应的房间区域。
在一种可能的实施方式中,所述装置还包括:合并模块,用于将所述房间区域中不符合条件的房间合并到其他房间内。
在一种可能的实施方式中,所述合并模块,具体用于执行以下一种或多种合并方式:
将只有一个邻居房间,且周围最多有设定百分比的墙壁的目标房间区域合并到所述邻居房间内;将房间面积小于设定面积阈值的目标房间区域,合并到与所述目标房间区域相邻像素最多的房间内;将墙壁比例小于墙壁比例阈值的目标房间区域,合并到与所述目标房间区域相邻且墙壁比例大于所述墙壁比例阈值的房间内;或者将共享周长超过周长阈值的至少两个目标房间区域进行合并。
在上述实施例的基础上,本申请还提供了一种电子设备,图14为本申请实施例提供的一种电子设备结构示意图,如图14所示,包括:处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401,通信接口1402,存储器1403通过通信总线1404完成相互间的通信;
存储器1403中存储有计算机程序,当程序被处理器1401执行时,使得处理器1401执行如下步骤:
提取待分割地图中的所有轮廓,并获取每个轮廓的像素;
遍历所述每个轮廓的像素,生成Voronoi单元;根据所述Voronoi单元,确定包围所述Voronoi单元的边界点;
遍历所述Voronoi单元的边界点,选择均在所述待分割地图内且颜色相同的连续两点组成数据对;将多个数据对进行连线绘制,得到Voronoi图;
将所述Voronoi图转换为房间区域。
在一种可能的实施方式中,所述处理器1401,还用于遍历所述Voronoi图中第一颜色值的每个点,将存在至少三个第一颜色值的邻居点的点存入节点集合;
遍历所述Voronoi图中所述第一颜色值的每个点,将存在一个邻居点且属于所述节点集合中的点由所述第一颜色值调整为第二颜色值。
在一种可能的实施方式中,所述处理器1401,具体用于查找所述Voronoi图的临界点;
根据所述Voronoi图的临界点,绘制所述Voronoi图的临界线;
提取所述待分割地图中的所有轮廓,根据所述Voronoi图的临界线,确定每个轮廓对应的房间区域。
在一种可能的实施方式中,所述处理器1401,还用于将所述房间区域中不符合条件的房间合并到其他房间内。
在一种可能的实施方式中,所述处理器1401,具体用于执行以下一种或多种:
将只有一个邻居房间,且周围最多有设定百分比的墙壁的目标房间区域合并到所述邻居房间内;
将房间面积小于设定面积阈值的目标房间区域,合并到与所述目标房间区域相邻像素最多的房间内;
将墙壁比例小于墙壁比例阈值的目标房间区域,合并到与所述目标房间区域相邻且墙壁比例大于所述墙壁比例阈值的房间内;或者
将共享周长超过周长阈值的至少两个目标房间区域进行合并。
上述电子设备提到的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口1402用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字指令处理器)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质内存储有可由电子设备执行的计算机程序,当程序在电子设备上运行时,使得电子设备执行时实现如下步骤:
提取待分割地图中的所有轮廓,并获取每个轮廓的像素;
遍历所述每个轮廓的像素,生成Voronoi单元;根据所述Voronoi单元,确定包围所述Voronoi单元的边界点;
遍历所述Voronoi单元的边界点,选择均在所述待分割地图内且颜色相同的连续两点组成数据对;将多个数据对进行连线绘制,得到Voronoi图;
将所述Voronoi图转换为房间区域。
在一种可能的实施方式中,所述所有轮廓包括连通域的外围边界和孔的内层边界。
在一种可能的实施方式中,所述将多个数据对进行连线绘制,得到Voronoi图之后,在将所述Voronoi图转换为房间区域之前,所述方法还包括:
遍历所述Voronoi图中第一颜色值的每个点,将存在至少三个第一颜色值的邻居点的点存入节点集合;
遍历所述Voronoi图中所述第一颜色值的每个点,将存在一个邻居点且属于所述节点集合中的点由所述第一颜色值调整为第二颜色值。
在一种可能的实施方式中,所述将所述Voronoi图转换为房间区域包括:
查找所述Voronoi图的临界点;
根据所述Voronoi图的临界点,绘制所述Voronoi图的临界线;
提取所述待分割地图中的所有轮廓,根据所述Voronoi图的临界线,确定每个轮廓对应的房间区域。
在一种可能的实施方式中,所述将所述Voronoi图转换为房间区域之后,所述方法还包括:
将所述房间区域中不符合条件的房间合并到其他房间内。
在一种可能的实施方式中,所述将所述房间区域中不符合条件的房间合并到其他房间内包括以下一种或多种:
将只有一个邻居房间,且周围最多有设定百分比的墙壁的目标房间区域合并到所述邻居房间内;
将房间面积小于设定面积阈值的目标房间区域,合并到与所述目标房间区域相邻像素最多的房间内;
将墙壁比例小于墙壁比例阈值的目标房间区域,合并到与所述目标房间区域相邻且墙壁比例大于所述墙壁比例阈值的房间内;或者
将共享周长超过周长阈值的至少两个目标房间区域进行合并。
由于上述计算机可读存储介质解决问题的原理与地图分割方法相似,因此上述计算机可读存储介质的实施可以参见方法的实施例,重复之处不再赘述。
上述计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、MO(磁光盘)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、NAND FLASH(非易失性存储器)、SSD(固态硬盘)等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (9)
1.一种地图分割方法,其特征在于,所述方法包括:
提取待分割地图中的所有轮廓,并获取每个轮廓的像素;
遍历所述每个轮廓的像素,生成Voronoi单元;根据所述Voronoi单元,确定包围所述Voronoi单元的边界点;
遍历所述Voronoi单元的边界点,选择均在所述待分割地图内且颜色相同的连续两点组成数据对;将多个数据对进行连线绘制,得到Voronoi图;
将所述Voronoi图转换为房间区域;
所述将多个数据对进行连线绘制,得到Voronoi图之后,在将所述Voronoi图转换为房间区域之前,所述方法还包括:
遍历所述Voronoi图中第一颜色值的每个点,将存在至少三个第一颜色值的邻居点的点存入节点集合;
遍历所述Voronoi图中所述第一颜色值的每个点,将存在一个邻居点且属于所述节点集合中的点由所述第一颜色值调整为第二颜色值。
2.如权利要求1所述的方法,其特征在于,所述所有轮廓包括连通域的外围边界和孔的内层边界。
3.如权利要求1或2所述的方法,其特征在于,所述将所述Voronoi图转换为房间区域包括:
查找所述Voronoi图的临界点;
根据所述Voronoi图的临界点,绘制所述Voronoi图的临界线;
提取所述待分割地图中的所有轮廓,根据所述Voronoi图的临界线,确定每个轮廓对应的房间区域。
4.如权利要求3所述的方法,其特征在于,所述将所述Voronoi图转换为房间区域之后,所述方法还包括:
将所述房间区域中不符合条件的房间合并到其他房间内。
5.如权利要求4所述的方法,其特征在于,所述将所述房间区域中不符合条件的房间合并到其他房间内包括以下一种或多种:
将只有一个邻居房间,且周围最多有设定百分比的墙壁的目标房间区域合并到所述邻居房间内;
将房间面积小于设定面积阈值的目标房间区域,合并到与所述目标房间区域相邻像素最多的房间内;
将墙壁比例小于墙壁比例阈值的目标房间区域,合并到与所述目标房间区域相邻且墙壁比例大于所述墙壁比例阈值的房间内;或者
将共享周长超过周长阈值的至少两个目标房间区域进行合并。
6.一种地图分割装置,其特征在于,所述装置包括:
提取获取模块,用于提取待分割地图中的所有轮廓,并获取每个轮廓的像素;
处理模块,用于遍历所述每个轮廓的像素,生成Voronoi单元;根据所述Voronoi单元,确定包围所述Voronoi单元的边界点;遍历所述Voronoi单元的边界点,选择均在所述待分割地图内且颜色相同的连续两点组成数据对;将多个数据对进行连线绘制,得到Voronoi图;
转换模块,用于将所述Voronoi图转换为房间区域;
所述处理模块,还用于遍历所述Voronoi图中第一颜色值的每个点,将存在至少三个第一颜色值的邻居点的点存入节点集合;遍历所述Voronoi图中所述第一颜色值的每个点,将存在一个邻居点且属于所述节点集合中的点由所述第一颜色值调整为第二颜色值。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
合并模块,用于将所述房间区域中不符合条件的房间合并到其他房间内;其中,将所述房间区域中不符合条件的房间合并到其他房间内包括以下一种或多种:将只有一个邻居房间,且周围最多有设定百分比的墙壁的目标房间区域合并到所述邻居房间内;将房间面积小于设定面积阈值的目标房间区域,合并到与所述目标房间区域相邻像素最多的房间内;将墙壁比例小于墙壁比例阈值的目标房间区域,合并到与所述目标房间区域相邻且墙壁比例大于所述墙壁比例阈值的房间内;或者将共享周长超过周长阈值的至少两个目标房间区域进行合并。
8.一种电子设备,其特征在于,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-5任一项所述的地图分割方法的步骤。
9.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时执行权利要求1-5中任一项所述地图分割方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310225396.9A CN116152277B (zh) | 2023-03-10 | 2023-03-10 | 一种地图分割方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310225396.9A CN116152277B (zh) | 2023-03-10 | 2023-03-10 | 一种地图分割方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116152277A CN116152277A (zh) | 2023-05-23 |
CN116152277B true CN116152277B (zh) | 2023-09-22 |
Family
ID=86354417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310225396.9A Active CN116152277B (zh) | 2023-03-10 | 2023-03-10 | 一种地图分割方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116152277B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150108173A (ko) * | 2014-03-17 | 2015-09-25 | 서울대학교산학협력단 | 보로노이 셀 기반의 서포트 클러스터링 장치 및 방법 |
CN104992176A (zh) * | 2015-07-24 | 2015-10-21 | 北京航空航天大学 | 一种面向碑文的汉字提取方法 |
CN113156447A (zh) * | 2021-03-10 | 2021-07-23 | 深圳市杉川机器人有限公司 | 房门位置的确定方法、扫地机以及计算机可读存储介质 |
CN113536837A (zh) * | 2020-04-15 | 2021-10-22 | 杭州萤石软件有限公司 | 室内场景的区域划分方法及装置 |
CN114255241A (zh) * | 2021-11-16 | 2022-03-29 | 鹏城实验室 | 用于路径规划的区域分割方法、装置、设备及存储介质 |
CN115167433A (zh) * | 2022-07-22 | 2022-10-11 | 华南理工大学 | 融合全局视觉的机器人自主探索环境信息的方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140280241A1 (en) * | 2013-03-15 | 2014-09-18 | MediaGraph, LLC | Methods and Systems to Organize Media Items According to Similarity |
-
2023
- 2023-03-10 CN CN202310225396.9A patent/CN116152277B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150108173A (ko) * | 2014-03-17 | 2015-09-25 | 서울대학교산학협력단 | 보로노이 셀 기반의 서포트 클러스터링 장치 및 방법 |
CN104992176A (zh) * | 2015-07-24 | 2015-10-21 | 北京航空航天大学 | 一种面向碑文的汉字提取方法 |
CN113536837A (zh) * | 2020-04-15 | 2021-10-22 | 杭州萤石软件有限公司 | 室内场景的区域划分方法及装置 |
CN113156447A (zh) * | 2021-03-10 | 2021-07-23 | 深圳市杉川机器人有限公司 | 房门位置的确定方法、扫地机以及计算机可读存储介质 |
CN114255241A (zh) * | 2021-11-16 | 2022-03-29 | 鹏城实验室 | 用于路径规划的区域分割方法、装置、设备及存储介质 |
CN115167433A (zh) * | 2022-07-22 | 2022-10-11 | 华南理工大学 | 融合全局视觉的机器人自主探索环境信息的方法及系统 |
Non-Patent Citations (2)
Title |
---|
Area Graph: Generation of Topological Maps using the Voronoi Diagram;Jiawei Hou等;《2019 19th International Conference on Advanced Robotics (ICAR)》;全文 * |
基于虚拟门检测的室内拓扑地图构建;祁贤雨等;《吉林大学学报(工学版)》;第50卷(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116152277A (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111563442B (zh) | 基于激光雷达的点云和相机图像数据融合的slam方法及系统 | |
WO2020134082A1 (zh) | 一种路径规划方法、装置和移动设备 | |
CN112347550B (zh) | 耦合式室内三维语义建图及建模方法 | |
CN111640089A (zh) | 一种基于特征图中心点的缺陷检测方法及装置 | |
CN107728615A (zh) | 一种自适应区域划分的方法及系统 | |
CN107133966B (zh) | 一种基于采样一致性算法的三维声纳图像背景分割方法 | |
CN113628291A (zh) | 基于边界提取与合并的多形状目标栅格数据矢量化方法 | |
CN112258474A (zh) | 一种墙面异常检测方法和装置 | |
CN114283343B (zh) | 基于遥感卫星图像的地图更新方法、训练方法和设备 | |
CN111754526A (zh) | 户型图分割方法、分类方法、分割装置、设备和存储介质 | |
CN108803659B (zh) | 基于魔方模型的多窗口启发式三维空间路径规划方法 | |
CN109344750B (zh) | 一种基于结构描述子的复杂结构三维对象识别方法 | |
Wu et al. | Direct sparse odometry with planes | |
CN116152277B (zh) | 一种地图分割方法、装置、电子设备及介质 | |
CN111402429B (zh) | 一种尺度还原、三维重建方法、系统、存储介质及设备 | |
CN116229116A (zh) | 一种基于相似零件的工艺复用加工方法、系统及电子设备 | |
CN116385415A (zh) | 一种边缘缺陷检测方法、装置、设备及存储介质 | |
CN115540852A (zh) | 电子栅格地图构建方法、装置、电子设备及存储介质 | |
CN114677388A (zh) | 基于单元分解与空间分割的房间布局划分方法 | |
CN113658203A (zh) | 建筑物三维轮廓提取及神经网络的训练方法和装置 | |
Varkonyi-Koczy | Autonomous 3D model reconstruction and its intelligent applications in vehicle system dynamics part I: Theory | |
CN111028283B (zh) | 图像检测方法、装置、设备及可读存储介质 | |
CN116245894B (zh) | 一种地图分割方法、装置、电子设备及介质 | |
Loghman et al. | A novel depth estimation method for uncalibrated stereo images | |
CN116882035B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |