一种基于图的栅格地图分割方法与流程

文档序号:16090775发布日期:2018-11-27 22:59阅读:1641来源:国知局
本发明属于计算机视觉领域,特别涉及一种地图分割技术。
背景技术
:人类在了解世界过程中对视觉系统的依赖程度不言而喻,类似地,机器将计算机视觉视为认知世界的基础。计算机视觉作为最主要的人工智能技术之一,广泛应用在机器人视觉导航、人脸识别、图像识别、无人驾驶等技术中。在机器人领域中,地图是帮助机器人描述环境和精确定位的主要工具之一。用于机器人自主定位导航技术中最常见的地图类型是栅格地图。栅格地图中的自由区域表示机器人可以通过的区域。对栅格地图自由区域进行分割,获得具有语义信息的区域有助于机器人建立拓扑地图和语义地图、全局定位、路径规划的实现。因此,对栅格地图分割方法的研究有很大的意义。栅格地图分割算法研究工作主要分为几类方法:(1)基于距离变换的地图分割方法,其关键思想是首先对栅格地图进行距离变换,距离变换的局部最大值总是位于房间的中心,而在走廊或门口的距离变换局部最大值通常会小于房间中心的,因此可以获得一组房间中心的距离阈值和门口的距离阈值。以降序循环所有可能的阈值,地图中的栅格根据其距离变换的值不断的被分配到最近的房间中心,当阈值等于门口的距离阈值时不再分配。然后合并相互连接的房间中心,最终分配到同一个房间中心的栅格被认为同属一个房间,从而实现地图分割。(2)基于Voronoi图的地图分割方法,其关键思想是根据栅格地图生成Voronoi图,一种在实际应用中有效生成Voronoi图的方法是在对栅格地图欧氏距离变换的基础上进行骨架提取(Skeletonization)。从图中提取临界点(CriticalPoints),然后根据启发式的方法,在每个临界点相交处分割栅格地图,获得分割单元,最终合并单元获得分割区域。(3)基于特征的地图分割方法,其关键思想是通过局部的观测学习每一个栅格的特征并标记标签,然后根据相邻栅格的标签获得分割区域。Mozos等提出的一种基于特征的房间分割算法首先在栅格地图中每一个空闲栅格处模拟一个可以360°发射激光的激光测距仪,每一束模拟激光可以测得激光测距仪与障碍物间的距离。对于一个模拟的激光测距仪,所在栅格的特征由平均模拟光线的长短描述。所有栅格的特征由AdaBoost分类器分类,标记为不同的标签,最后将相邻的具有相同标签的栅格合并,实现地图分割。(4)基于图划分(GraphPartitioning)的分割方法。Zivkovic等在构建层次地图(HierarchicalMap)和路径规划中应用了该类分割方法。首先,将基础层地图表示为一个图,节点表示可达区域的地图点,边表示两节点间的转移关系。然后,使用归一化图割算法(NormalizedGraphCut)将上述的图在弱连接处切割,从而实现地图分割,建立高层地图。(5)形态学分割方法。Buschka等将形态学处理应用于房间分割,首先建立模糊栅格地图来描述栅格被占据的可能性。对模糊栅格地图进行模糊形态学开操作可以分离由狭窄通道连接的区域。从每个区域内的种子开始,利用分水岭算法确定哪些栅格属于同一个房间,实现房间分割。以上地图分割算法可以对栅格地图进行有效分割,获得感兴趣的区域,但依然存在很多局限,主要表现在:(1)已有地图分割方法没有有效地利用地图中的障碍物信息。在室内真实环境中无可避免地存在着杂乱的物体,而绝不仅仅是空旷的房间结构,像建筑平面图一般简洁。所以,在真实环境下构建的栅格地图中存在着不规则形状的障碍物,表现为被占据栅格。正是这些在房间中摆放的物体为地图增加了大量的信息,但是现有大多方法将其视为噪声,先去噪处理后进行分割。如果按照上述方法获得分割区域,继而构建拓扑地图、路径规划,一台自主移动机器人对环境的认识仅停留在独立房间的层次。(2)已有方法对长直走廊的分割结果与人工标注的真实地图分割结果不一致。上述提到的基于距离变换的分割方法、基于Voronoi图的分割方法和基于特征的分割方法存在把长直走廊分割成不完整的数段的分割结果。原因是三种方法都需要先计算空闲栅格到最近障碍物的距离,再进行下一步操作。由于在靠近房门的位置,位于走廊内的空闲栅格最接近障碍物的不再是走廊的边界,因此计算的距离出现变化,导致三种方法会将一个走廊分成数段。形态学分割存在把走廊与其他区域合并的分割结果,原因是迭代地进行形态学开操作后,在搜索和合并区域过程中会把走廊和邻近的区域合并。上述方法在分割地图中存在走廊的分割与真实地图不一致的情况,且现有技术中未有方案能很好地解决这一技术问题。技术实现要素:为解决上述技术问题,本发明提出一种基于图的栅格地图分割方法,充分利用真实环境构建的地图中的障碍物信息,从栅格地图中获取有语义性质的信息,实现有效分割,同时对于长直走廊的分割有着较好的效果。本发明采用的技术方案为:一种基于图的栅格地图分割方法,包括:S1、初始化参数,包括:初始聚类中心数K0、每类所含最少样本数目N0、归并系数θ0、聚类样本分散程度阈值σ0、聚类算法最大迭代次数Nmax、连通性阈值θc;S2、读取栅格地图后进行地图预处理,将栅格地图图像数据归一化,得到自由区域构成的聚类数据集D;S3、根据步骤S1的初始化参数,采用结合光线投掷算法的迭代自组织数据分析算法对步骤S2中的D进行聚类;S4、根据步骤S3的聚类结果建立无向图;S5、计算无向图中所有节点的度,通过节点的度分割孤立区域;S6、对所有非孤立节点构建连通图,得到待优化的分割区域集合;S7、计算连通图的节点与各待优化的分割区域中所有节点的连通性,根据计算得到的连通性优化待分割区域,得到分割区域,根据分割区域与孤立区域得到栅格地图分割结果。进一步地,步骤S2具体为:占据栅格灰度值为0,未探测栅格灰度值为204,空闲栅格灰度值为254;裁剪栅格地图边缘的未探测区域;使用的中值滤波对地图进行去噪处理,得到地图I;从地图I中获取自由区域构成聚类数据集D。进一步地,步骤S3包括以下分步骤:S31、随机生成K0个初始聚类中心,表示为并用像素坐标表示每个聚类中心cm和D中的每个样本数据;S32、计算D中每个聚类样本与所有聚类中心间的城市街区距离,然后将聚类样本分配至对应的类;S33、若某个类中的样本数量小于N0,则将该类中的样本重新分配给距离最近的一个类;S34、重新计算所有类的聚类中心,得到当前的聚类中心集合;S35、若当前聚类数K小于K0/2,则执行类分裂处理;若当前聚类数K大于2K0,则执行类合并处理;否则执行步骤S36;S36、判断是否达到最大迭代次数Nmax,若达到则终止聚类算法,获得对栅格地图自由区域的聚类结果,否则返回步骤S32。进一步地,所述类分裂处理过程为:A1、分别计算每个聚类中所有样本与类中心在二维坐标下的欧氏距离及其标准差,得到每一聚类对应两个维度的标准差;记类C′m两个标准差中的最大值为A2、若超过阈值σ0,且所含样本数量超过2N0,则执行A3;否则执行S36;A3、将类C′m分裂成两个类别,并分别计算两个类别的聚类中心,然后计算类C′m中的样本与两个聚类中心的距离,将类C′m中的样本划分至与该样本距离最近的那一类。进一步地,所述类合并处理过程具体为:B1、计算每两个类中心间的距离l;B2、判断是否满足l小于阈值θ0,若是则执行步骤B3;否则执行步骤S39。B3、将类C′m1和C′m2合并成为一个新类别,计算新类别的中心c′mnew,即将类C′m1和C′m2中的所有样本分配给新类中心c′mnew。进一步地,步骤S32具体为:当聚类样本sn与某个聚类中心cm之间的距离最小,且通过光纤投掷算法得到聚类样本sn与距离类中心cm之间只经过自由区域时;将sn分配给cm所对应的类Cm中;否则,在最后一次迭代之前的所有迭代中将sn分配到距离最近的聚类中心点对应的类,在最后一次迭代中将sn作为噪声点从D中剔除。进一步地,步骤S6具体包括以下分步骤:S61、构建图G′=(V′,E′),G′的节点由无向图中所有非孤立节点组成,G′中的边表示连接的两个节点连通;S62、选择G′中的某节点作为广度优先搜索的初始父节点;具体为:当G′中的某节点的度d′i在所有节点的度中出现频率最高;且该节点距离所读取栅格地图的中心最近;则选取该节点作为广度优先搜索的初始父节点。S63、以父节点作为起点进行广度优先搜索,若搜索到的节点的度小于父节点的度,则认为该节点与父节点不在同一个区域;否则将该节点按照叶节点和分叉节点分类;将父节点与其所有叶节点集合、分叉节点集合进行合并得到一个初始分割区域;其中,叶节点与父节点的度相等,分叉节点的度大于父节点的度。S64、从G′中选择新的父节点,并返回步骤S63,直到G′中所有节点均被遍历,从而得到初始的分割区域集合。进一步地,从G′中选择新的父节点具体过程为:当节点v′pj同时满足以下条件时,选择该节点作为新的广度优先搜索父节点:条件1:v′pj至少与当前父节点的任意一个分叉节点连通;条件2:与当前父节点的任意一个分叉节点连通的所有节点中,v′pj的度dbi出现频率最高;条件3:与当前父节点的任意一个分叉节点连通的所有节点中,v′pj的度dbi最大。进一步地,步骤S7具体包括以下分步骤:S71、计算G′中每两节点间的城市街区距离,dis(i,j)表示v′i与v′j的距离。S72、计算G′的带权邻接矩阵W;S73、分别计算G′中各节点与各初始分割区域的连通性Con(v′i,Rk);其中,v′i表示G′中的任一节点,Rk表示初始的分割区域集合中的任一初始分割区域;S74、若Con(v′i,Rk)大于1,则v′i属于Rk,将v′i与Rk合并;否则,v′i不属于Rk;当G′所有节点遍历完成,获得分割区域R;根据R与孤立区域RI得到栅格地图分割结果。进一步地,邻接矩阵具体为:判断v′i与v′j是否连通,若连通,则令边e′ij的权重W(i,j)=wi,j=dis(i,j);否则,W(i,j)=wi,j=0。本发明的有益效果:本发明的方法主要包括自由区域聚类和基于图的区域合并两部分;自由区域聚类具体为结合光线投掷算法的ISODATA,因此该聚类算法可以保证聚类结果不会跨越障碍物,同时该聚类算法可以有效剔除地图中的噪声;基于图的区域合并具体为有效利用地图中的障碍物信息,根据类的连通性建立图并进行优化,继而合并类得到完整的走廊和房间。所以相比,本发明设计的算法的分割结果与人工标注的真实地图更为一致。本发明的分割结果可以用来建立拓扑地图,同时,对机器人全局定位的研究有着促进作用,地图分割结果表示了机器人所有当前可能出现的区域,在机器人全局定位失效后可以加快对机器人当前位姿的重新估计。附图说明图1为本发明提供的基于图的栅格地图分割算法流程图;图2为本发明提供的结合光线投掷算法的ISODATA聚类算法流程图;图3为本发明实施例提供的待分割的栅格地图;其中,图3(a)原始的待分割的栅格地图;图3(b)为局部放大的示意图;图4为本发明实施例经地图预处理后的效果图;图5为本发明实施例采用结合光线投掷算法的ISODATA聚类算法得到自由区域聚类的效果图;图6为本发明实施例采用基于图的栅格地图分割算法得到的地图分割效果图。具体实施方式为便于本领域技术人员理解本发明的技术内容,下面结合附图对本
发明内容进一步阐释。本发明实施例采用的栅格地图是由HUSKYA200机器人在真实办公环境下通过Gmapping算法构建的,分辨率为0.05m,自由区域面积约为505m2。该机器人内部装有ROS系统的工控机、运动控制模块、信息采集模块等,另外还搭载了LMS151的二维激光雷达、里程计、惯性测量单元等传感器。如图3所示,在真实办公环境下,存在大量的障碍物使得地图轮廓不具有规则的几何形状。本发明进行了多次实验,验证了本发明提出的基于图的栅格地图分割算法可以对这种具有大量噪声和障碍物的栅格地图进行有效的分割。如图1所示,本发明的具体步骤如下:S1、设置算法参数,包括初始聚类中心数K0、每类所含最少样本数目N0、归并系数θ0、聚类样本分散程度阈值σ0、聚类算法最大迭代次数Nmax、连通性阈值θc,各参数的具体数值如表1所示。表1初始参数参数K0N0θ0σ0Nmaxθc取值15012001000.01500.8其中,归并系数θ0表示聚类中心之间的距离阈值,聚类样本分散程度阈值σ0表示同一聚类中样本距离的标准差阈值。S2、读取栅格地图后进行地图预处理,将栅格地图图像数据归一化,占据栅格灰度值为0,未探测栅格灰度值为204,空闲栅格灰度值为254;对地图进行图像裁剪,裁剪栅格地图边缘的未探测区域;使用3×3的中值滤波对地图进行去噪处理,得到地图I;从地图I中获取自由区域构成聚类数据集D。S3、根据步骤S1的初始化参数,采用结合光线投掷算法的ISODATA(ISODATA,IterativeSelf-OrganizingDataAnalysisTechniqueAlgorithm,迭代自组织数据分析算法)对步骤S2中的D进行聚类;聚类结果含有Kc个类。本发明中的ISODATA具体可以参考:G.BallandD.Hall,“ISODATA,anovelmethodofdataanalysisandpatternclassification,”StanfordResearchInstitute,MenloPark,CA,1965如图2所示,具体包括以下分步骤:S31、随机生成K0个初始聚类中心,表示为用像素坐标表示每个聚类中心cm和D中的每个样本数据。K0=总样本数据量除以160的余数,总样本数据量≈K0*N0。S32、计算D中每个样本与所有聚类中心间的城市街区距离;将样本sn分配给聚类中心cm所对应的类Cm需满足两个条件:条件1:sn与cm的距离最小;条件2:由光线投掷算法(光线投掷算法参考:S.D.Roth,“Raycastingformodelingsolids,”ComputerGraphicsandImageProcessing,vol.18,no.2,pp.109-144,February1982.)判断sn与cm间只经过自由区域。当两个条件都满足时,将样本sn分配给聚类中心cm所对应的类Cm中;若不同时满足两个条件,在前Nmax-1次迭代中将sn分配到距离最近的中心点对应的类,在第Nmax次迭代点中将sn作为噪声点从D中剔除。S33、根据类的样本数量判断该类是否需要重新分配,类Cm中的样本数量表示为如果小于N0,丢弃该类,将该类中的样本重新分配给距离最近的一类。S34、重新计算所有类的聚类中心,类Cm的新聚类中心表示为c′m,即获得新聚类中心集合C′={c′1,c′2,...,c′m,...c′k}。S35、若当前聚类数K小于K0/2,则执行分裂处理;若当前聚类数K大于2K0,则执行合并处理;当前聚类数K满足K0/2≤K≤2K0时,执行步骤S36;分裂操作过程具体为:A1、分别计算每个聚类中所有样本与类中心在二维坐标下的欧氏距离及其标准差,因为栅格地图为二维图像,所以对每一聚类可分别计算获得两个标准差;记类C′m两个标准差中的最大值为A2、判断是否满足超过阈值σ0,且所含样本数量超过2N0,若是则A3;否则S39;A3、将类C′m分裂成两个类别,计算新类别的中心c′m1和c′m2,即重新分配样本,具体为:将类C′m中的样本与c′m1和c′m2中距离最近的中心归为一类。合并过程具体为:B1、计算每两个类中心间的距离l;B2、判断是否满足l小于阈值θ0,若是则执行步骤B3;否则执行步骤S39。B3、将类C′m1和C′m2合并成为一个新类别,计算新类别的中心c′mnew,即将类C′m1和C′m2中的所有样本分配给新类中心c′mnew。S36、判断是否达到最大迭代次数Nmax,若达到则终止聚类算法,获得对栅格地图自由区域的聚类结果,否则返回步骤S32。获得对栅格地图自由区域的聚类结果后,为同属一个区域的栅格赋以相同的灰度,进行可视化,即可得到图5所示的分割效果。S4、根据自由区域的聚类结果建立无向图G=(V,E),G中节点vi表示为类i;利用光线投掷算法,从类i的中心向类j的中心投射光线,通过光线是否经过非空闲栅格判断节点vi与vj是否连通,若经过非空闲区域,则两节点不连通;否则,两节点连通;G中边ej连接节点vi与vj,表示两节点连通,i,j∈[1,Kc]。S5、通过节点的度分割孤立区域。计算G中所有节点的度,节点vi的度表示为di;判断di是否为0,若为零,则vi为孤立节点;每一个孤立节点为栅格地图分割算法获得的孤立区域RI。S6、对所有非孤立节点构建连通图G′=(V′,E′),在G′中选择父节点v′pi,以广度优先搜索的方式搜索与v′pi连通的叶节点和分叉节点,将v′pi与其叶节点集合V′Li和分叉节点集合V′Bi进行合并,获得一个初始分割区域;继续选择新的父节点进行搜索,直至遍历所有节点,获得待优化的分割区域集合R={R1,R2,…,Rk,...RS}。具体包括以下分步骤:S61、构建图G′=(V′,E′),G′的节点由图G中所有非孤立节点组成,G′中的边表示连接的两个节点连通。S62、选择G′中节点v′i作为广度优先搜索的初始父节点需要满足两个条件:条件1:节点v′i的度d′i在所有节点的度中出现频率最高;条件2:节点v′i距离所读取栅格地图的中心最近。如2000*2000的原始栅格地图,其正中心(1000,1000)的位置即为所读取栅格地图的中心。当两个条件都满足时,选择节点v′i作为广度优先搜索的初始父节点v′pi。S63、以父节点作为起点进行广度优先搜索,即搜索所有与父节点连通的节点;判断搜索到的节点v′j的度是否小于父节点的度,若小于父节点的度,认为v′j与父节点不在同一个区域;若不小于父节点的度,将v′j按照叶节点和分叉节点分类,其中叶节点与父节点的度相等,分叉节点的度大于父节点的度;将父节点与其所有叶节点集合V′Li、分叉节点集合V′Bi进行合并得到一个初始分割区域。S64、从G′中选择新的父节点v′pj,新的父节点v′pj需同时满足以下三个条件:条件1:v′pj至少与当前父节点v′pi的任意一个分叉节点v′Bi连通;条件2:与当前父节点v′pi的任意一个分叉节点v′Bi连通的所有节点中,v′pj的度dbi出现频率最高;条件3:与当前父节点v′pi的任意一个分叉节点v′Bi连通的所有节点中,v′pj的度dbi最大;当三个条件都满足时,选择节点v′pj作为广度优先搜索新的父节点,执行步骤S63继续搜索,直至所有节点均被遍历,获得初始的分割区域集合R={R1,R2,…,Rk,...RS}。S7、计算G′的节点v′i与区域Rk内所有节点的连通性Con(v′i,Rk);根据节点与区域的连通性优化分割区域R;最终,R与孤立区域RI共同构成栅格地图分割算法的分割结果{R,RI}。包括以下分步骤:S71、计算G′中每两节点间的城市街区距离,dis(i,j)表示v′i与v′j的距离。S72、计算G′的带权邻接矩阵W,判断v′i与v′j是否连通,若连通,则令边e′ij的权重W(i,j)=wi,j=dis(i,j);否则,W(i,j)=wi,j=0。S73、计算G′中节点v′i与区域Rk的连通性,即Con(v′i,Rk)=∑wi,j/(θc∑dis(i,j)),j∈Rk。S74、判断Con(v′i,Rk)是否大于1,若是,则v′i属于Rk,将v′i与Rk合并;否则,v′i不属于Rk。对G′所有节点优化,获得分割区域R;最终,R与孤立区域RI共同构成栅格地图分割算法分割结果{R,RI}。获得对栅格地图自由区域的分割结果后,使用回溯法为同属一个区域的栅格赋以相同的灰度值,再将其转化为伪彩色图像,进行可视化,即可得到图6所示的分割效果。由于本发明主要是针对真实环境所建立的栅格地图进行分割,因此分割的结果应具有语义性质,即获得房间、完整的走廊等区域来表示机器人可能出现的区域。图3(a)为本发明实施例提供的待分割的栅格地图,可以看到原始地图中未探测区域占据了大部分栅格,因此需要在地图预处理过程中进行裁剪,减少不必要的计算量。图3(b)为局部放大的示意图。图4为本发明实施例经地图预处理后的效果图,在地图预处理过程中利用了图像处理中的剪裁和中值滤波。由于传感器的测量误差、机器人建图算法等原因,地图中不可避免的存在着大量的噪声,使用中值滤波可以有效的进行去噪处理。图5为本发明实施例采用结合光线投掷算法的ISODATA聚类算法得到自由区域聚类的效果图,其中一个个斑块即为聚类的结果。图6为本发明实施例采用基于图的栅格地图分割算法得到的地图分割效果图,结合图5发现图6中地图轮廓周边为聚类算法筛选的噪声。比较图4和图6中走廊的位置,长直走廊被完整的分割。同时由图6可以发现,根据图的连通性,不同的房间被有效分割,与真实环境一致。本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1