一种户型图自动处理方法及系统与流程

文档序号:20786088发布日期:2020-05-19 21:43阅读:324来源:国知局
一种户型图自动处理方法及系统与流程

本发明涉及一种户型图自动处理方法及系统,属于计算机辅助设计技术领域。



背景技术:

现有的家装设计软件,空间区域的生成效果不是很理想:有的将及细小的墙体围成的空间也标记为区域(实际是烟道或者其它组件的内部空间,如图1所示,在一个房间中,由于一些常用的附属物也需要编制为一个细小的多边形,而许多软件在识别户型图的房间区域时,也会误将这样的细小多边形区域也归为一个房间),也有的软件是通过设计师手动绘制多边形产生区域,这会造成区域边缘与墙体边缘存在数值误差,影响其它功能的使用(例如判定区域空间下的商品,当该商品是挂在墙上的壁画等挂件,此时壁画模型的中心点在地面的投影,可能不会落在设计师手绘的区域多边形内部)。

现有的家装设计软件,往往适用于简单平层的普通住宅,然而对于别墅或者小高层户型的建筑,家装设计软件没有很好的兼容,同时对于设计师而言,绘制高层建筑往往比绘制平层更需要更高的专业技能以及更多的时间投入成本。

在进行下一步设计时,现有的家装设计软件,没有定位空间局部最大矩形的功能(一个房间的最大内接矩形通常是房间中的一个重要的布局位置,可以用于放置特定的家具、设置导航点或者设计自动显示的相机位置,例如在专利cn109960850a中采用最大局部矩形作为基础,设置相机观察点),但是往往家装软件的许多业务与空间区域密切相关,尤其是局部最大矩形,该处可以放置主家具等等。同样的区域中心位置也是家装设计软件重要的一个要素,例如二维层面上显示户型空间用途标签,三维层面上对方案进行渲染时,放置一个合理的相机,这都跟区域中心位置密切相关。而通常计算户型空间下的局部最大矩形以及近似中心位置采用一般的几何图形学的方法,此方法往往通过几何规则性的约束条件等进行计算,难免会遇到特殊户型,规则没有覆盖到,导致局部最大矩形定位不准,最佳近似中心位置计算偏差等等。



技术实现要素:

本发明所要解决的第一个技术问题是:提出一种户型空间区域自动生成的方法及系统,设计师可通过绘制墙体,即可自动生成区域,墙体底部点与区域边缘点相同,不会出现数值精度的误差,有利于家装设计软件其它功能性的拓展使用。

本发明所要解决的第二个技术问题是:提出一种适用于别墅或者小高层户型的自动空间分组的方法及系统,可以节省资源投入,帮助设计师能够像绘制普通平层住宅一样进行方案设计,自动计算楼层空间的分组关系,可以减轻设计师的工作压力。

本发明所要解决的第三个技术问题是:提出一种基于深度学习快速定位户型空间局部最大矩形以及区域中心位置的方法及系统。

技术方案是:

一种户型图自动处理方法,包括用于生成户型图中的房间的步骤,包括:

s101,绘制多墙体;

s102,获得墙体细长矩形的中线;

s103,任取一条中线,找到能够与其相互闭合为一个封闭区域的中线,并将其归为一组;对其它的中线依次遍历搜索,将能够相互闭合为一个封闭区域的中线归一组,不能与其它中线封闭的中线归为独立组;

s104,将能够封闭为一个区域的全部中线所对应的墙的内墙,相互闭合为一个封闭区域,作为房间区域。

在一个实施方式中,所述的中线指墙体作为一个细长矩形形时,这个细长矩形内部的较长的中间线。

在一个实施方式中,还包括:将面积小于一定阈值的区域从户型图中删除。

在一个实施方式中,所述的一定阈值是指面积0.25平方米。

在一个实施方式中,步骤103中,相互闭合为一个封闭区域的中线的搜索过程中包括:判定两条中线的端点相互之间是否小于阈值,并且一个封闭区域中的中线的首尾端点相连依次小于阈值。

在一个实施方式中,还包括:将多层户型图中房间分类的方法,包括如下步骤:

s201,获取户型图中的房间数据,所述的数据包括各个房间的封闭区域的形状和位置、房间的功能、房间的id号;

s202,任取一个房间,作为起始房间,搜索与起始房间相邻的房间,归为一个集合中,并对找到的房间依次遍历搜索相邻的房间,并归为所述的集合,直至集合中的房间数量不再变化;

s203,对于未归于集合中的房间再次循环执行s202步骤,按照相邻关系进行归类,直至将户型图中的全部房间全部归类完毕;

s204,针对归为一类的集合中的房间,按照平面户型图的方式进行设计。

在一个实施方式中,s204中还包括:确定每一类集合中的房间所在楼层。

在一个实施方式中,步骤s202中,相邻的房间的判定方法包括:

选取一个房间的全部轮廓线;

将轮廓线上的中点处向房间外部作出一定距离的垂直延长线段;

若垂直延长线段的端点落在另一个房间内部,则认为两个房间为相邻。

在一个实施方式中,还包括:自动定位户型图中最大局部矩形的方法,包括如下步骤:

s301,获得房间多边形的有序顶点坐标,并计算出房间多边形的最大局部矩形的四个顶点坐标,作为训练样本数据;

s302,以将s301中获得的房间多边形的有序顶点坐标作为神经网络的输入值,最大局部矩形的四个顶点坐标作为输出值,采用训练样本数据对神经网络模型进行训练;

s303,将待处理的房间多边形的有序顶点坐标输入至s302中已经训练完成的神经网络模型中,得到最大局部矩形的四个顶点坐标。

在一个实施方式中,s301中房间多边形的有序顶点坐标需要进行平移处理,使其中的一个顶点的平面坐标数值为原点,并且在s302中得到最大局部矩形的四个顶点坐标后,需要对其反向平移处理,平移方向与房间多边形的有序顶点坐标的平移方向相反、距离相同。

在一个实施方式中,所述的神经网络模型是bp神经网络。

在一个实施方式中,还包括:自动定位户型图中房间的近似中心点的方法,包括如下步骤:

s401,获得房间多边形的有序顶点坐标,并计算出房间多边形的近似中心点坐标,作为训练样本数据;

s402,以将s401中获得的房间多边形的有序顶点坐标作为神经网络的输入值,近似中心点坐标作为输出值,采用训练样本数据对神经网络模型进行训练;

s403,将待处理的房间多边形的有序顶点坐标输入至s302中已经训练完成的神经网络模型中,得到近似中心点坐标。

在一个实施方式中,s401中房间多边形的有序顶点坐标需要进行平移处理,使其中的一个顶点的平面坐标数值为原点,并且在s402中得到近似中心点坐标后,需要对其反向平移处理,平移方向与房间多边形的有序顶点坐标的平移方向相反、距离相同。

在一个实施方式中,所述的神经网络模型包括:

第一层,用于接收得到的房间多边形的有序顶点坐标数据;

第二层,连接于每一层,用于对第一层输出的数值进行处理,并且第二层的单元节点数与房间多边形的顶点数相同;

隐藏层,连接于第二层,用于对第二层输出的数值进行处理;

输出层,连接于隐藏层,用于对隐藏层的数据进行处理,并输出结果;

在一个实施方式中,所述的神经网络模型是bp神经网络。

有益效果

(1)本发明可以让用户在家装设计过程中,减少用户使用学习的成本,可以使设计师像绘制普通方案一样绘制户型,帮助设计师自动将别墅或者小高层住宅的空间分组,同一层的空间归为一组,以及自动记录空间与空间之间的邻接关系,可快速定位具体楼层以及具体的某一空间信息,提高设计师的工作效率。

(2)本发明可以让设计师在家装设计过程中,通过绘制墙体,即可自动生成区域,不需要设计师手动绘制区域,提高设计师工作效率,而且墙体底部点与区域边缘点相同,不会出现数值精度的误差,有利于家装设计软件其它功能性的拓展使用(例如判定区域内的模型归属,墙壁上挂件的归属区域判定等等)。

(3)本发明可以让用户在家装设计过程中,高效精准计算户型空间区域的最佳近似中心点以及局部最大矩形有序的四个点坐标。由于大样本数据的训练与计算,使得不同几何特征的户型空间区域,计算结果比常规的规则特征计算的兼容性更大。从而更好的服务于家装设计软件中使用到局部最大矩形进行空间布局相关的业务以及定位区域空间最佳近似中心点相关的业务。

附图说明

图1.一种特殊情况下的户型图

图2.户型空间区域生成的流程图

图3.墙中线分组的流程

图4.墙中线端点匹配墙内线构建区域的方法

图5.墙体示意图(be是墙中线,af与cd为墙体两侧边缘点)

图6.中线闭合成封闭区域示意图。

图7.基于别墅或者小高层户型数据进行自动空间分组的流程图

图8.区域以及其附带的墙体以及门洞的示意图

图9.判定墙的二维中心点的延伸点所落区域的示意图

图10.某别墅上下层示意图

图11.计算区域最佳近似中心点训练数据预处理的流程

图12.区域局部最大矩形训练数据的预处理示意图

图13.计算区域最佳近似中心点的多层神经网络模型结构

图14.计算区域局部最大矩形的多层神经网络模型结构

图15.区域最佳近似中心点以及区域局部最大矩形的示意图abcd是该卧室区域的最大矩形,p是区域的最佳近似中心点的示意图

具体实施方式

以下对户型空间区域自动生成的方法进行说明:

户型空间区域生成的流程图见图1所示;墙中线分组的流程见图2所示;墙中线端点匹配墙内线构建区域的方法见图3所示。

i.户型空间区域生成的流程:

1.绘制多段墙体;

2.获取上述步骤中绘制墙体的所有墙中线,本发明中“墙中线”是指墙体作为一个细长矩形形时,这个细长矩形内部的较长的中间线;通过本步骤,可以将获得的全部墙体的中线得到;墙中线的各种表示形式可如图5所示。

3.对上述步骤中的墙中线进行闭合检测以及进行闭合分组创建,具体闭合检测分组的方法见图3所示;其主要的流程:任取一条中线,从其它的中线中遍历,找到能够与这条中线相互首尾相连闭合成一个封闭区域的中线,那么意味着这些中线所归属的墙体能够闭合为一个房间;如图6所示,四边的实线的四边形的墙体的中线,可以相互地闭合成一个封闭的多边形,因此可以将这四条中线闭合的区域定义为一个组。然后,再对其它的中线依次遍历搜索,将能够闭合成一个封闭区域的中线归为一组;如果搜索过程中,找到了不能与其它中线闭合的中线时,则将其定义为独立组的中线(通常这些是独立的墙体)。

4.进行墙体墙中线端点与墙内线的匹配,具体匹配的方法见图4所示;其主要的步骤是:对于一个组的中线中的任意一条中线,找到全部墙体中与其足够接近的墙,并找到这个组的全部中线所接近的墙,将墙体的内线相互闭合成一个区域,这个区域作为一个封闭的房间。至此,就通过该方法确定出房间。

5.对墙中线匹配的墙内线依次放入构建闭合区域;

6.过滤不合理的闭合区域即将面积小于等于0.25平方米的区域剔除,标记为非区域。通过上述的步骤,就通过利用墙体的中线作为基础,得到了封闭的房间,而不会出现将细小多边形也判定为房间的问题。

ii.墙中线分组的方法如下:

1.获取所有墙中心线;

2.随机任取上述一条墙中线;

3.从剩下的墙中线中寻找与上述墙中线能够形成闭环的所有墙中线,具体如下:

3.1.选定步骤2中该条墙中线的某端点(我们以终点为例进行说明);

3.2.遍历剩下的墙中线,计算该墙中线的端点(起点和终点)与上述3.1步骤中的端点的距离distance;

3.3.若上述步骤中的distance小于或等于某一极小距离约束值(假设设定为0.1mm)【主要定量端点与端点之间的贴近程度】,则将该墙中线与步骤3.1中的墙中心线依次连接;

3.4.继续执行上述类似步骤3.2到3.3,直到处理完所有的墙中线,

若多数墙中线首尾依次连接构成闭环,则将其归为同一组;

若不能构成首尾相连闭环的,则将其归为独立组。

4.若所有的墙中线都分组完毕,则分组完成。若还有墙中线未得到分组,则返回上述流程,循环执行步骤2到步骤3,直到所有的墙中线分组结束。

以下对适用于别墅或者小高层户型的自动空间分组的方法进行说明:

通常情况下,家装软件导入的户型数据中,只能反映出一些平面户型数据;当如果导入别墅或者小高层的设计图时,会在同一个平面上出现多层房屋,使得设计师在设计时,不能像常规的对于一个完整的户型结构进行设计处理。

以下的方法中,通过对家装设计软件中导入的别墅或者小高层的户型数据进行处理,将其处理为设计师所擅长的单一平面户型设计图。

i.基于别墅或者小高层户型数据进行自动空间分组的流程见图7所示:

1.加载方案获取整个户型区域数据,包括墙体数据,地面区域轮廓点集数据,空间标识roomid,空间用途roomuseage等等;

2.获取整个方案中任意一个空间(firstarea)的信息,包括其地面区域的轮廓点集,其门洞以及窗洞的信息;

3.将上述步骤2中的firstarea空间存进已计算组(calculatedgroup)中;

4.计算与上述空间firstarea相邻的所有空间的信息,包括与其相邻空间的空间标识,以及对应的空间的地面区域点集,对应的邻接关系,并将这些空间归为同一组(group1)中,具体判定空间邻接关系的方法见第ii部分所述;本步骤的目的,可以实现以firstarea为起始房间,遍历到与其相邻的其它的房间;

5.依次从上述步骤4中的group1组中选择一空间oneroom(firstarea除外),计算该空间相邻的所有空间信息,同时将oneroom存入到已计算组(calculatedgroup)中;本步骤的目的,可以从与firstarea相邻的各个房间作为起始,进一步地向四周遍历,找到其它的与它们继续相邻的房间;

6.判定上述流程中的已计算组(calculatedgroup)的空间数目(记为num1)与户型的所有空间数目(记为num2)的是否相等,若相等,则结束计算;如果相等时,代表这个户型可能是一个单层的户型,房间之间都是依次相邻的,沿着房间向外遍历搜索后,得到的全部房间数必然等于这个户型的全部房间数,因此可以结束计算。

若不等,则继续执行以下步骤。

7.计算上述group1组的子元素的相邻空间信息,包括其地面区域点集,子元素相邻空间的空间标识,子元素相邻空间的空间用途,子元素相邻空间的所关联的墙体数据等等。将其子空间的空间标识存入到已计算组(calculatedgroup)中,迭代更新calculatedgroup;

8.依次下去计算上述步骤7的子空间的子空间的相邻空间信息,迭代更新已计算组(calculatedgroup),直至calculatedgroup的数量不再变化;本步骤中,可以不断地对上面已经相邻的各个房间继续向外搜索,找到相邻的房间,当全部房间数量不再变化时,代表已经完成搜索,不再具有其它的相邻的房间;

9.将上述流程中不再增长数目的calculatedgroup组,标记为第一组空间集合(记为firstgroup);

10.判定上述步骤中的firstgroup的数目是否与整个户型空间数目相同,

10.1.若相同,则停止计算;本步骤的目的,是用于判断已经判定为相互相邻的房间的集合中的数目是否与户型中的全部房间数目相等,如果相等时,代表可能为单层设计,可以归为一个整体户型;如果不相等时,代表有其它的一些房间存在,可能是归为另一层,因此就继续下面的搜索过程:

10.2.若不同,则清空已计算组(calculatedgroup),执行类似步骤2到步骤9的流程,从未在已计算组的空间中任意选择一个空间,计算其相邻空间的信息,依次类推执行子空间的子空间的相邻空间,得到一个新的已计算组(calculatedgroup),判定第一组firstgroup的数目与新的已计算组的数目之和与整个户型的空间数目是否相等,若相等,则停止计算;若不等,则继续执行上述类似的流程,直至所有的空间进行分组结束。本步骤的目的,可以依次对其它的房间进行类似的搜索,并将这些未归类的房间继续按照相邻的原则进行归类,当得到一个相邻归类集合时,代表可能是另一个楼层中的房间集;

11.将分组后的空间信息进行合理归纳整合,记录每组的空间,以及空间之间的邻接关系,每组的空间元素对应的墙高等信息。楼层的层级关系通过墙高从小到大排序,最小的对应于别墅第一层,依次递增,最大的对应于别墅最高层。【图10是设计师绘制的某别墅的方案设计效果图,左边是第一层,右边是第二层】。通过以上的步骤,把存在着相邻关系的房间依次遍历搜索并归类,得到的每一类都是代表一层的房间。至此,可以让设计师按照常规的单一户型的结构进行户型设计。

ii.判定一个区域相邻区域的方法(图9是判定墙的二维中心点的延伸点所落区域的示意图):

1.获取该区域的所附属的所有墙体(图8是区域以及其附带的墙体以及门洞的示意图);

2.遍历上述墙体中的每一墙体:

2.1.计算该墙体的二维中心点;

2.2.计算墙体中轴线的方向向量,并进行向量归一化处理;

2.3.将上述向量逆时针或者顺时针旋转90度,得到旋转后的单位向量;

2.4.将上述步骤中的二维中心点沿着旋转后的单位向量延伸一段距离(通常设置为30至40厘米之间),得到延伸点p1;同理沿着旋转向量的反方向延伸同样的一段距离,得到另一个反向延伸点p2;

2.5.判断上述步骤中的点p1和p2是否在某一区域内部(自身的区域除外),若在,则该延伸点落入的区域即为其区域的相邻区域,已经存进到相邻区域集合中的区域不再继续存。

以下对基于深度学习快速定位户型空间局部最大矩形以及区域中心位置的方法进行说明:

i.计算区域最佳近似中心点训练数据预处理的流程:

1.读取区域多边形的数据即多个顶点坐标;

2.读取人工手动标记的区域近似中心点坐标并记录存储下来;

3.平移步骤1中的多边形使得多边形的第一个点位于原点,即将多边形的所有顶点坐标在数值上都减去第一个点的坐标,完成平移;

4.将步骤2中人工手动标记的区域近似中心点也减去上述步骤3中多边形的第一个点,完成人工标记点的平移处理;

5.将上述流程中平移后的多边形数据作为训练样本的输入以及平移后的近似中心点数据作为训练样本的金标准输出;

ii.区域局部最大矩形训练数据的预处理流程:

1.读取区域多边形的数据即多个顶点坐标;

2.读取人工手动标记的区域局部最大矩形的四个顺序标记点并记录存储下来;

3.平移步骤1中的多边形使得多边形的第一个点位于原点,即将多边形的所有顶点坐标在数值上都减去第一个点的坐标,完成平移;

4.计算手动标记的局部最大矩形的四个顺序点平移后的坐标即类似上述步骤3,减去多边形的第一个顶点坐标;

5.将平移后的多边形数据即多个顶点坐标作为输入以及平移后的局部最大矩形的四个顺序点的坐标作为训练样本金标准的输出;

iii.计算区域最佳近似中心点的多层神经网络模型结构,具体解释如下:

1.网络结构的第一层是输入层,即预处理后的多边形的顶点坐标,即一个顶点数组

2.网络结构的第二层的单元节点数应该与第一层中的多边形的顶点数相同,第一层中输入的数组数据经过函数处理后,进入第二层中继续处理;实际情况下,根据多边形顶点数的个数来对第二层的单元节点数进行调整;

3.网络结构的第三层到第六层作为中间层,节点之间连接为全连接;

4.网络结构的最后一层是输出层,对应的是预处理后多边形的最佳近似中心点。

以上的神经网络模型的具体实施方式没有特别的限定,例如:可以采用bp类的反向传播神经网络模型。

iv.计算区域局部最大矩形的多层神经网络模型结构,具体解释如下:

1.网络结构的第一层是输入层,即预处理后的多边形的顶点坐标,即一个顶点数组

2.网络结构的第二层的单元节点数应该与第一层中的多边形的顶点数相同,第一层中输入的数组数据经过函数处理后,进入第二层中继续处理;实际情况下,根据多边形顶点数的个数来对第二层的单元节点数进行调整;

3.网络结构的第三层到第六层作为中间层,节点之间连接为全连接;

4.网络结构的最后一层是输出层,对应的是预处理后多边形的有序的局部最大矩形四个点坐标。

以上的神经网络模型的具体实施方式没有特别的限定,例如:可以采用bp类的反向传播神经网络模型。

v.计算区域最佳近似中心点的后处理:

1.当通过大样本户型空间数据训练后,得到一个训练好的网络模型;

2.在步骤1的基础上,新来一个户型区域,将该区域顶点数据预处理,即减去第一个顶点坐标;

3.将步骤2处理后的点数组塞进步骤1中训练好的网络模型计算得到一个输出点的坐标;

4.将上述步骤3中的点坐标平移即加上初始多边形第一个点的坐标,得到最后的点,该点作为区域最佳近似中心点的坐标。

vi.计算区域局部最大矩形的后处理:

1.当通过大样本户型空间数据训练后,得到一个训练好的网络模型;

2.在步骤1的基础上,新来一个户型区域,将该区域顶点数据预处理,即减去第一个顶点坐标;

3.将步骤2处理后的点数组塞进步骤1中训练好的网络模型计算得到四个输出点的坐标;

4.将上述步骤3中的点坐标平移即加上初始多边形第一个点的坐标,得到最后四个点的坐标,将该点集作为区域局部最大矩形的四个点坐标。

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