买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本发明公开了基于单元分解与空间分割的房间布局划分方法,具体按照如下步骤实施:获取室内场景的单元划分结果;获取室内场景的空间分割结果;将得到的把室内场景的单元划分结果与得到的室内场景的空间分割结果进行重叠,在重叠区域中生成随机点,根据每个网格单元中随机点所带颜色标签的数量决定该网格单元属于哪一个房间,从而实现房间布局的准确划分。本发明基于单元分解与空间分割的房间布局划分方法,解决了现有技术中存在的通过分割室内场景结构元素的方法进行内部结构复杂的室内场景划分时存在严重的遮挡现象从而无法实现划分的问题。
主权项:1.基于单元分解与空间分割的房间布局划分方法,其特征在于,具体按照如下步骤实施:步骤1,从室内点云场景中提取墙面点云,然后对墙面点云划分为若干个片段,计算每个片段的质心点,根据质心点拟合墙面点云对应的直线,然后对拟合的直线进行融合处理,然后基于融合处理的结果进行单元分解,得到室内场景的单元划分结果;具体为:步骤1.1,对室内场景进行下采样后,得到下采样后的室内点云场景,将下采样后的室内点云场景作为输入将其分割成若干个水平点云切片,使用区域生长的聚类方法,将每个水平点云切片中的墙面点和室内杂物分割,最终保留墙面点,得到对应水平点云切片的墙面点云;其中,使用区域生长的聚类方法,将每个水平点云切片中的墙面点和室内杂物分割,最终保留墙面点,得到对应水平点云切片的墙面点云具体为:步骤1.1.1,计算每个水平点云切片中每个点的曲率,按照点的曲率值对点进行排序,找到曲率最小的点,将其添加到种子点集合中;步骤1.1.2,对于每个种子点,若其K近邻点同时满足式(1)和式(2),则将该点添加到潜在的种子点列表当中; (1)其中,表示当前种子点的法向量;表示当前种子点的K近邻点的法向量;表示一个平滑阈值; (2)其中,表示当前种子点的K近邻点的曲率,表示一个曲率阈值;步骤1.1.3,将步骤1.1.2添加到潜在的种子点列表当中点从最初的室内点云对应的切片点云中移除;步骤1.1.4,在步骤1.1.3的基础上进行聚类,设置最小点簇的点数为,最大点簇的点数为,将生成点数在和之间的所有切片保留,并对不同切片标记不同颜色加以区分,保留的切片的切片点云即为获取的墙面点云;步骤1.1.5,重复步骤1.1.1到步骤1.1.4,完成所有切片的聚类,最终得到每个切片对应的墙面点云;步骤1.2,将步骤1.1提取的每个墙面点云划分成若干个片段,计算每个片段的质心点,用质心点表示各个片段中所有点的特征,然后根据所求的质心点进行直线拟合;具体为:步骤1.2.1,输入步骤1.1提取的墙面点云,分别保存每个墙面点云中每一个点的坐标;步骤1.2.2,根据墙面点云的坐标计算墙面区域在空间中的长度和宽度,长度为,宽度为,分别表示最大最小的坐标;设置步长为0.4m,将空间中的墙面点云划分到的网格中,则总的行数为、总列数为;步骤1.2.3,创建一个一维数组、二维数组,三维数组,设置数组大小为4,在根据和的大小设置数组大小为,数组的大小为;步骤1.2.4,将墙面点云中的点存储到对应的行和列中,其中任意一点的位置表示为,,表示任意一点的x、y坐标,表示最小点的坐标;步骤1.2.5,如果或的值小于0,则将置为0;然后将步骤1.2.4选取的那个点的依次存放在数组、、中,每存入一个点数组处的值增1;步骤1.2.6,重复步骤1.2.4和步骤1.2.5将所有属于墙面点云的点划分到对应的网格空间中,计算每个网格空间的质心点Q,计算公式如式(3); (3)其中,分别表示质心点Q的坐标;表示数组的大小;表示数组的大小;表示提取的墙面点云对应的空间中任意一点的坐标;表示提取的墙面点云对应的空间中任意一点的坐标;表示提取的墙面点云对应的空间中任意一点的坐标;表示每个网格提取的墙面点云对应的空间中所包含的点数量;步骤1.2.7,从每个墙面点云对应的多个质心点中任意选取三个点构造一个平面,计算该平面方程的系数,然后计算构造平面的法向量,根据求解的平面方程系数重新构造平面,并利用空间中线段的端点和平面的法向量构造一条投影直线,再次求解平面和投影直线的交点,该交点则为空间中直线段一个端点的投影点,最终依次连接对应的投影点即可得到投影后的线段;步骤1.3,将步骤1.2得到的直线进行投影,投影后进行融合处理,然后将融合处理的线段进行延长,根据CGAL库计算二维排列数据结构,最终得到二维单元分解结果;具体为:步骤1.3.1,设置一个墙段的预定义长度值,然后对步骤1.2.7中投影后的多条线段按其长度由小到大进行排序,将长度小于预定义长度值的线段直接删除;步骤1.3.2,选择经步骤1.3.1处理之后的剩余线段中长度最大的线段将其添加到最终的结果集合中,再从剩余线段中选择一条线段与最终结果集合中的线段进行比较,设定一个夹角阈值和一个距离阈值,如果这两条线段之间的夹角小于给定的阈值,则认为这两条线段是平行的;在平行的基础上,如果这两条平行线之间的距离小于给定的阈值,则认为这两条线段是共线的,将这两条线段进行融合处理;步骤1.3.3,重复步骤1.3.2,直到剩余线段个数为0时,结束整个过程得到融合后的线段;步骤1.3.4,延长融合后的线段,然后,根据CGAL库计算二维排列数据结构,使用扩展线段对室内场景的二维平面进行划分,将其分解成二维单元;步骤2,对室内场景进行下采样后,将下采样后的室内场景投影到二维平面上,离散化投影点并生成深度图像;然后将深度图像二值化,使用形态学腐蚀操作分割室内空间以识别房间数量;最后使用波前扩展方法把属于房间区域但未被访问的区域添加到房间空间中,得到室内场景的空间分割结果;具体为:步骤2.1,将室内场景空间的点云转换到二维图像上,得到相应的灰度图像,将灰度图像进行二值化处理,获得反映图像整体和局部特征的二值图像;步骤2.2,默认每个房间通向其他房间或者走廊的门都关闭,使用的结构元迭代地腐蚀步骤2.1获得的二值图像中的可访问像素,可访问像素为二值图像中的白色像素,腐蚀完成一次就会得到一个腐蚀结果图,通过腐蚀结果图上的轮廓判断是否有可分离区域,如果得到可分离区域则停止迭代,同时使用不同颜色将可分离区域进行标记;具体为:步骤2.2.1,从步骤2.1得到的二值图像的中心位置处开始第一次腐蚀,使用的结构元腐蚀二值图像中的可访问像素,可访问像素为二值图像中的白色像素,腐蚀完成一次,就会得到一个腐蚀结果图;步骤2.2.2,在腐蚀结果图中寻找轮廓,所有轮廓只建立两个等级关系即顶层和内层,并统计所找到的轮廓数量;步骤2.2.3,检查每一个轮廓,如果当前轮廓没有对应的内嵌轮廓,则计算当前轮廓所围成的区域面积,从而计算出房间面积,计算公式如4所示; (4)其中参数表示房间面积;表示一个单元网格的大小;表示当前轮廓围成区域面积;步骤2.2.4,在步骤2.2.3的基础上判断当前检测出的轮廓是否为其它轮廓的内嵌轮廓,如果当前轮廓是其中一个轮廓的内嵌轮廓,则计算当前轮廓围成的区域面积,同时更新房间面积,面积计算公式如式5所示; (5)其中参数表示更新后的房间面积;步骤2.2.5,判断当前房间面积是否在上限阈值和下限阈值之间,下限阈值表示数据中最小的房间面积,上限阈值表示最大的房间面积,如果当前面积在上限阈值和下限阈值之间,则将其轮廓保存起来;步骤2.2.6,重复步骤2.2.1到步骤2.2.5,迭代腐蚀二值图像中的可访问像素,直到所有剩余区域的面积都小于下限阈值,此时停止迭代,得到可分离区域,然后将得到的可分离区域进行不同颜色标记;步骤2.3,根据步骤2.2标记的可分离区域检测出房间的数量,此时二值图像上有三种状态,其中白色像素表示可访问区域中未被标记的区域,然后利用波前传播方法对白色像素进行扩展,得到最终的房间空间分割结果;步骤3,将步骤1得到的把室内场景的单元划分结果与步骤2得到的室内场景的空间分割结果进行重叠,在重叠区域中生成随机点,根据每个网格单元中随机点所带颜色标签的数量决定该网格单元属于哪一个房间,从而实现房间布局的准确划分;具体为:步骤3.1,将步骤1得到的把室内场景的单元划分结果与步骤2得到的室内场景的空间分割结果进行重叠;步骤3.2,在重叠空间中创建一组随机点集,将每个单元网格中的中心点添加到随机点集中,让每个单元网格中的点从空间分割结果中提取标签信息;步骤3.3,通过计算每个单元网格中相同标签的点的数量,然后根据该单元网格中出现频率最高的标签为该单元网格分配一个标签,或者根据一个已标记的单元网格被相同的已标记的单元网格包围,那么该单元网格也被标记为与周围单元网格相同的标签;步骤3.4,将步骤3.1到步骤3.3完成的分割结果标签的单元网格可视化,然后合并相同标签的单元网格,删除步骤2.3中二值图像中不可访问的白色像素的单元网格,得到最终的房间布局划分结果。
全文数据:
权利要求:
百度查询: 西安理工大学 基于单元分解与空间分割的房间布局划分方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。