发明内容
本发明的目的在于公开一种基于BIM的建筑设计系统,解决如何提高在对建筑进行装修方案设计的过程中的建模精度的问题。
为了达到上述目的,本发明提供如下技术方案:
一种基于BIM的建筑设计系统,包括信息获取模块、建模模块和BIM设计模块;
信息获取模块用于获取待进行装修设计的建筑的内部空间的深度图像;
建模模块用于基于深度图像建立内部空间的三维模型;
BIM设计模块用于在BIM软件中对三维模型进行展示,以及用于接收设计人员输入的设计指令,根据设计指令对三维模型进行修改,获得BIM设计方案;
其中,信息获取模块包括计算单元和拍摄单元;
计算单元用于基于前一次拍摄的拍摄角度的深度图像计算出拍摄单元的下一次拍摄的拍摄角度和拍摄轮数,并将下一次拍摄的拍摄角度和拍摄轮数发送至拍摄单元;
拍摄单元用于基于下一次拍摄的拍摄角度和拍摄轮数获取建筑的内部空间的深度图像。
优选地,计算单元还用于在第一次进行拍摄时,将预设的拍摄角度和预设的拍摄轮数发送至拍摄单元;
拍摄单元用于根据预设的拍摄角度和预设的拍摄轮数获取建筑的内部空间的深度图像。
优选地,设计指令包括插入指令、删除指令和移动指令;
插入指令用于向三维模型中插入装修元素;
删除指令用于对三维模型中已插入的装修元素进行删除;
移动指令用于对三维模型中已插入的装修元素进行移动。
优选地,装修元素包括输电线、网线、家具和水管。
优选地,BIM设计模块还用于设计人员输入每种装修元素的属性信息。
优选地,BIM设计方案包括每种装修元素在三维模型中的位置以及每种装修元素的属性信息。
优选地,属性信息包括长度、宽度、高度、厚度、直径、材质中的一种或多种。
优选地,摄像头单元包括深度摄像头和角度控制装置;
角度控制装置用于将深度摄像头的主光轴移动至下一次拍摄的拍摄角度;
深度摄像头用于基于下一次拍摄的拍摄轮数对建筑的内部空间进行拍摄,获得深度图像。
优选地,基于深度图像建立内部空间的三维模型,包括:
对同一个拍摄角度的深度图像进行融合处理,获得融合图像;
基于所有的融合图像建立内部空间的三维模型。
优选地,对同一个拍摄角度的深度图像进行融合处理,获得融合图像,包括:
计算每张深度图像的融合权重;
基于融合权重对同一个拍摄角度的深度图像进行融合处理,获得融合图像。
与现有的每个拍摄角度都是单次拍摄的方式相比,本发明在不同的拍摄角度采用了不同的拍摄轮数,从而能够在对存在结构复杂的区域的拍摄角度进行更加多次的拍摄,获得更高精度的建模结果的同时,避免了对所有的拍摄角度都进行同样次数的拍摄,能够降低获得的深度图像的总数,有利于提高建模的效率,从而提高对建筑进行装修设计的效率。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
如图1所示的一种实施例,本发明提供了一种基于BIM的建筑设计系统,包括信息获取模块、建模模块和BIM设计模块;
信息获取模块用于获取待进行装修设计的建筑的内部空间的深度图像;
建模模块用于基于深度图像建立内部空间的三维模型;
BIM设计模块用于在BIM软件中对三维模型进行展示,以及用于接收设计人员输入的设计指令,根据设计指令对三维模型进行修改,获得BIM设计方案;
其中,信息获取模块包括计算单元和拍摄单元;
计算单元用于基于前一次拍摄的拍摄角度的深度图像计算出拍摄单元的下一次拍摄的拍摄角度和拍摄轮数,并将下一次拍摄的拍摄角度和拍摄轮数发送至拍摄单元;
拍摄单元用于基于下一次拍摄的拍摄角度和拍摄轮数获取建筑的内部空间的深度图像。
与现有的每个拍摄角度都是单次拍摄的方式相比,本发明在不同的拍摄角度采用了不同的拍摄轮数,从而能够在对存在结构复杂的区域的拍摄角度进行更加多次的拍摄,获得更高精度的建模结果的同时,避免了对所有的拍摄角度都进行同样次数的拍摄,能够降低获得的深度图像的总数,有利于提高建模的效率,从而提高对建筑进行装修设计的效率。
若为了追求建模精度,对所有的拍摄角度均进行多次的拍摄,则会导致对于结构简单的区域进行了过多次数的拍摄,多余的深度图像给建模精度带来的提升极其有限,反而会导致由于需要对过多的深度图像进行三维建模处理,大幅度增加建模时间,影响了对建筑进行装修设计的效率。
优选地,BIM软件包括Revit软件、Bentley软件、ArchiCAD软件等。实施人员可以根据需求选择一种以实施本发明。
优选地,计算单元还用于在第一次进行拍摄时,将预设的拍摄角度和预设的拍摄轮数发送至拍摄单元;
拍摄单元用于根据预设的拍摄角度和预设的拍摄轮数获取建筑的内部空间的深度图像。
具体的,信息获取模块在拍摄时可以被放置在房间的中央位置,水平环绕中央位置进行拍摄,获得不同的拍摄角度的深度图像。
这里的一次拍摄指的是对一个拍摄角度进行多轮拍摄,每轮拍摄获得一张深度图像。
在第一次进行拍摄时,没有办法根据前一次拍摄得到的深度图像来计算出第二次进行拍摄的拍摄角度和拍摄轮数,因此,本发明通过预设拍摄角度和拍摄轮数的方式来解决这个问题。
例如,预设的拍摄角度可以是正北方向,以正北方向为0度,然后围绕顺时针方向改变拍摄角度,直到环绕一圈拍摄后,主光轴越过正北方向时,结束拍摄。
优选地,设计指令包括插入指令、删除指令和移动指令;
插入指令用于向三维模型中插入装修元素;
删除指令用于对三维模型中已插入的装修元素进行删除;
移动指令用于对三维模型中已插入的装修元素进行移动。
具体的,设计指令还可以包括修改指令、查询指令等。修改指令用于对装修元素的属性、位置等数据进行修改。
查询单元则可以根据装修元素的名称、编号、类别等信息来查询得到对应的装修元素。
优选地,装修元素包括输电线、网线、家具和水管。
另外,装修元素还可以包括墙面颜色、天花板颜色等。
优选地,BIM设计模块还用于设计人员输入每种装修元素的属性信息。
属性信息能够便于装修人员进行材料的购买。
优选地,BIM设计方案包括每种装修元素在三维模型中的位置以及每种装修元素的属性信息。
优选地,属性信息包括长度、宽度、高度、厚度、直径、材质中的一种或多种。
例如,对于水管这种装修元素,属性信息可以包括长度、直径和材质。
优选地,摄像头单元包括深度摄像头和角度控制装置;
角度控制装置用于将深度摄像头的主光轴移动至下一次拍摄的拍摄角度;
深度摄像头用于基于下一次拍摄的拍摄轮数对建筑的内部空间进行拍摄,获得深度图像。
优选地,基于前一次拍摄的拍摄角度的深度图像计算出拍摄单元的下一次拍摄的拍摄角度和拍摄轮数,包括:
将第k次拍摄获得的所有深度图像保存到集合depsetk;
获取depsetk中的拍摄时刻最早的深度图像imgk;
对深度图像imgk进行直线检测,获得imgk中的直线的数量和每条直线的长度;
基于imgk中的直线的数量和每条直线的长度计算结构复杂系数strcoefk;
基于strcoefk计算第k+1次拍摄的拍摄角度;
基于strcoefk计算第k+1次拍摄的拍摄轮数。
在本发明中,将第k次拍摄获得的所有深度图像保存到集合depsetk的过程是在拍摄的同时进行的,并不是等第k次拍摄完成后再进行集合depsetk的获取,能够有效地提高获取深度图像的效率,当第k次拍摄完成后,第k+1次的拍摄角度和拍摄轮数也计算出来了,无需等待便立刻可以进行下一次的拍摄。
直线检测能够获取深度图像中的直线的数量以及连贯程度,从而能够计算出复杂系数,基于复杂系数来计算拍摄角度和拍摄轮数。
优选地,结构复杂系数的计算函数为:
其中,Φ表示比例值,Φ的取值范围为0到1,numstrlin表示imgk中的直线的数量,msnum表示imgk中的像素点的数量,strlinu表示imgk中的直线的集合,lengthd表示直线d的长度,strlinsf表示预设的长度方差。
在本发明中,结构复杂系数从直线的数量以及直线的长度的方差两个方面计算得到,数量越大,方差越大,则表示深度图像中的直线数量越多,结构越复杂。
优选地,基于strcoefk计算第k+1次拍摄的拍摄角度,包括:
用θk表示第k次拍摄的拍摄角度,则第k+1次拍摄的拍摄角度θk+1的计算函数为:
其中,tpstrcoef表示预设的结构复杂系数的上限值,θstd表示预设大小的角度,θthre表示拍摄单元的能见角度。
在本发明中,拍摄角度是在前一次的拍摄角度的基础上进行计算得到的,拍摄角度的增加幅度与结构复杂系数的大小有关,结构复杂系数越大,则拍摄角度的变化幅度越小,从而使得最终获得的深度图像中,对同一个结构复杂的区域使用了不同了照射角度的红外线来进行照射,区域的结构复杂系数越大,照射的角度越多,从而提高了所有深度图像中对结构复杂的区域的信息的记录量。有利于提高建模的精度。另外,本发明还设置了能见角度进行限制,能够使得拍摄角度相邻的深度图像之间存在重叠区域,有效地提高了建模精度。
优选地,基于strcoefk计算第k+1次拍摄的拍摄轮数,包括:
其中,numshotk+1表示第k+1次拍摄的拍摄轮数,smnum表示预设的正整数。
在本发明中,拍摄轮数与结构复杂系数正相关,结构复杂系数越大,则拍摄轮数越多,而且拍摄轮数的数量能够随着结构复杂系数的数值的变化而变化,能够避免对所有的拍摄角度采用相同的拍摄轮数,有利于在降低对结构简单的区域的拍摄轮数的同时,保证结构复杂的区域的信息记录量。
优选地,基于深度图像建立内部空间的三维模型,包括:
对同一个拍摄角度的深度图像进行融合处理,获得融合图像;
基于所有的融合图像建立内部空间的三维模型。
图像融合能够提高获得的融合图像的质量,从而有利于提高三维建模的精度。
优选地,如图2所示,对同一个拍摄角度的深度图像进行融合处理,获得融合图像,包括:
计算每张深度图像的融合权重;
基于融合权重对同一个拍摄角度的深度图像进行融合处理,获得融合图像。
现有技术中往往是采用等权重的方式来进行融合处理,但是这样的处理方式容易导致出现较多的冗余信息,因此,本发明通过分别为不同的深度图像设置不同的融合权重,从而有效地降低了得到的融合图像中的冗余信息。
优选地,深度图像的融合权重的计算过程为:
将同一个拍摄角度的深度图像按照拍摄顺序保存到集合imgsagl;
基于imgsagl中的第一张深度图像获取计算坐标集合;
基于计算坐标集合分别计算imgsagl中的每张深度图像的融合权重。
在本发明中,融合权重的计算并不是基于所有的像素点计算得到的,而是基于计算坐标集合,这样能够在保证融合权重的准确程度的同时,大幅度缩短获得融合权重所需要的时间。
优选地,基于imgsagl中的第一张深度图像获取计算坐标集合,包括:
将imgsagl中的第一张深度图像分割为M×N个子图像;
计算每个子图像的区分系数:
diffval表示区分系数,Nedgpix表示子图像中属于图像边缘的像素点的数量,Ntoal表示子图像中所有像素点的数量,α表示边缘权重,β表示数量权重,tpx为子图像中的像素点的深度值的最大值,Nipxm表示深度值为m的像素点的总数,tsik表示预设的分割参数,tsik大于0;α+β=1;
将区分系数最大的子图像中的所有像素点的坐标作为计算坐标集合的元素。
为了保证计算坐标集合中的元素所对应的像素点的代表性,本发明通过计算子图像的区分系数来选出最具有代表性的子图像,从而得到计算坐标集合。在子图像中,属于图像边缘的像素点的数量越大,不同的深度值的像素点的数量之间的差异越大,则区分系数越大,从而能够选出最具有代表性的子图像,从而得到最具有代表性的区域。
优选地,基于计算坐标集合分别计算imgsagl中的每张深度图像的融合权重,包括:
对于imgsagl中的深度图像t,由深度图像t中坐标属于计算坐标集合的像素点组成的子图像calcorut;
计算calcorut的区分系数;
使用如下函数计算深度图像t的融合权重wt:
其中,diffvalt表示深度图像t中坐标属于计算坐标集合的像素点组成的子图像calcorut的区分系数,diffvalu表示深度图像t中坐标属于计算坐标集合的像素点组成的子图像的区分系数。
融合权重是通过对比不同的深度图像中的属于计算坐标集合的像素点组成的子图像的区分系数来比较得到的,diffvalt的值越大,则表示深度图像t中的有效信息的含量越大,从而提高深度图像t的融合权重,从而避免了对所有的深度图像采用相同的权重,而且本发明的融合权重在计算的过程中考虑了图像的边缘的信息,避免了图像的边缘的信息含量低的深度图像拥有较高的融合权重,从而有效地降低了冗余信息的含量。
优选地,基于融合权重对同一个拍摄角度的深度图像进行融合处理,获得融合图像,包括:
采用如下函数对同一个拍摄角度的深度图像进行融合处理:
其中,fusimg(x,y)表示融合图像fusimg中的坐标为(x,y)的像素点的深度值,wj表示深度图像j的融合权重,depvalj(x,y)表示深度图像j中坐标为(x,y)的像素点的深度值。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。