首页 / 专利库 / 电脑图像 / 局部集束调整 / 从单幅图像重建中国古代建筑语义模型和组件库的方法

从单幅图像重建中国古代建筑语义模型和组件库的方法

阅读:225发布:2020-06-12

专利汇可以提供从单幅图像重建中国古代建筑语义模型和组件库的方法专利检索,专利查询,专利分析的服务。并且本 发明 提出一种从单幅图像重建中国古代建筑语义模型和组件库的方法,其目的是生成完整的、可重用的、语义正确的三维建筑组件库,用来生成三维建筑模型,并且能够生成大规模的城市模型;该方法提出了一种方法自动判断屋瓦方向,然后根据建筑的对称性和屋瓦方向标定图像;为了在图像中识别建筑组件,该方法基于屋瓦的重复性自动地将 屋顶 分割成屋瓦,然后,基于用户指出的内侧立柱的 位置 和宽度,识别外侧的立柱;然后,从这些已经标定和分割的图像中自动得到建筑组件的尺寸和纹理,并生成建筑组件,然后形状语法编译器快速自动地从三维建筑组件和形状语法自动生成三维中国古代建筑模型和变化的场景。,下面是从单幅图像重建中国古代建筑语义模型和组件库的方法专利的具体信息内容。

1.一种从单幅图像重建中国古代建筑语义模型和组件库的方法,其特征在于:该方法具体实现步骤如下:
步骤(1)对单幅图像进行预处理,并交互地将建筑立面分割成有意义的部分:屋顶、额阑、平台;然后,计算屋瓦的切线方向,最后求得相机的投影矩阵;然后求得屋瓦方向,然后标定图像来恢复建筑三维尺寸;
步骤(A1)预处理:
首先,在预处理中,交互地将建筑立面分割成有意义的部分:屋顶、额阑、平台;然后,计算屋瓦的切线方向,最后求得相机的投影矩阵;曲线的屋瓦相互平行并且垂直于平方向,利用这对垂直关系,求得相机的内部参数;
步骤(A2)求得屋瓦方向场:
在投影后的二维平面中,将屋瓦看作向量场,每一点与它切线的方向相关联,提出一种方法,自动求得屋瓦的方向,用来标定相机和分割屋瓦:
在一点处的屋瓦方向:虽然屋瓦是弯曲的,但是它们在局部近似是直的,把瓦看作是在局部交替重复的一些直线段,瓦的局部方向就是这些直线段的方向,瓦在局部上是关于与它的方向垂直的轴对称的,所以从0到180度依次列举每个方向,求得像素亮度差异关于对称轴最小的那个方向;
在一点处的水平方向:根据屋瓦之间的相互约束关系处理方向错误的外点,因为屋瓦在水平方向是平移对称,它们的方向在同一水平上是平行的,所以在图像上,它们应该相交于同一点,采样一些水平直线,在每条线上,在一些采样点上计算它们的方向,然后用RANSAC选取它们的消影点;
屋顶上的屋瓦方向:在三维空间中,每条屋瓦决定一个平面,而这些平面是相互平行的,所以在图像中,它们相交于一条消影直线,所以所有消影点应该是共线的,用RANSAC算法拟合消影线以去掉错误的消影点,给出一条假定的消影线,用如下两个原则确定内点:1)它们到假定的消影线的距离小于给定阈值;2)消影点的位置随着对应水平线的上升而上升;
步骤(A3)对称建筑标定:
利用建筑对称性,将照片水平翻转获得第二张虚拟相机的照片,这样来恢复建筑模型的三维尺寸,根据水平方向和屋瓦平行平面的正交性,标定相机焦距为:
其中l1x+l2y+l3=0和(vx,vy)分别是消影线和消影点;
有了建筑立面的轮廓和水平消影线,求得每条水平线和轮廓的交点,假设一条水平线和轮廓相交于p1和p2,获得两对对应点(p1,p'2)和(p2,p'1),其中p'1和p'2分别是p1和p2水平翻转后得到的点,根据这些对应点,求得基础矩阵和两个相机的投影矩阵P和P’,根据消影线、消影点和内参矩阵,得到P和P’度量重构;最后,在约束两个相机有相同的内参的条件下,用集束调整去优化P和P’和重构的三维点;最后,得到两个相机的投影矩阵;
步骤(2)基于屋瓦的重复性,利用下面的方法自动的进行屋瓦分割,然后根据建筑的对称性和屋瓦方向标定图像;为了在图像中识别建筑组件,下面的方法基于屋瓦的重复性自动地将屋顶分割成屋瓦;
屋瓦由两种交替重复的瓦条组成,为了提取屋瓦组件,需要将整个屋顶分解成单个瓦条,屋瓦的颜色相同,边界响应小且不稳定,基于它们的重复性和求得的方向场,提出一种自动分析屋瓦近似规律的重复性将它们分割成曲线瓦条的方法,首先在每条水平线上独立的确定屋瓦边界,然后将它们组合起来分割整个屋顶;
已知屋瓦方向,屋瓦边界应该在沿着屋瓦方向两侧像素颜色最不对称的位置,为了定位可能的边界位置,在每条水平线上,依次采样得到序列S={p1,p2,...,pn},其间距为1个像素,把pi点切线左右两侧像素差的和表示为diff(pi),定义S中所有最长的交替重复的连续子列为C(S),包含2个交替的距离;
当且仅当l={pk,pk+1,...,pk+m},其中
C中的子列是相互重叠的,对于每个pk∈S,定义它的控制半径sup(pk),使得在邻居{pk-r,...,pk,...,pk+r}中,diff(pk)>diff(pi),其中i≠k;k-r≤i≤k+r,而且diff(pk)<diff(pk-r-1)或diff(pk)<diff(pk+r+1);
分层次的可能分割点确定:已知采样点,在每条水平线上分别提取可能的分割点;
一个点有更大的控制半径意味着它更可能是分割点;为了定位可能的分割点位置,基于分割点控制半径的大小,分层次地分析它们的位置,S中的点被分成不同层次的子序列当且仅当 对于每个Sr,其中r从最大半径变化到1,
依次迭代地处理它们,得到分割子序列L,方法如下:首先,用Sr扩展L,对于每个 合r r
并li和S,得到M(S,li),如果一个子序列 满足 那么用a替换li;
r
第二步,计算C(S),对于每个子序列 如果没有 使得 那么将a插
入到L中,迭代之后,L包含所有可能的分割子序列,它们是高度重叠的;
一条线上的屋瓦分割:得到L之后,在每条水平线上,提取不相交的并且一致的分割子序列Ls来分割屋顶;首先将L中的子序列根据它们第一个和最后一个分割点之间距离按照降序排列,因为越长的子序列越可能是正确分割;第一个子序列从加入到Ls并从L中删除;
然后迭代地分别在左右两侧扩展它,检查所有 来测试Ls中第一个至最后一个子序列 或 是否可以被 扩展,当且仅当C(M(lf,li))或C(M(ll,li))仅包
含一个序列并且li在M(lf,li)或M(ll,li)中是连续子序列时成立;如果没有 可以被Ls扩展,那么左边或右边最近的、不重叠的且兼容的li插入到Ls的头;所有被合并或者插入Ls的序列从L中删除,重复这个过程直到没有序列可以扩展Ls为止;分别得到每条水平线上的分割点,包含一些不重叠的子序列;
每条水平线被单独分割后,组合这些分割点分割整个屋顶;选择一条水平线作为基线,从每个分割点开始,沿着屋瓦方向前进在基线上找到它的对应位置,与上一步类似,需要组合这些子序列并提取出兼容的、并相交的子序列;
步骤(3)基于用户指出的内侧立柱的位置和宽度,识别外侧的立柱;
立柱是中国古代建筑的承重结构,决定建筑的整体结构,对于有走廊的建筑,走廊内侧的窗经常被外侧的立柱遮挡,为了识别建筑结构并构建有意义的建筑组件:立柱、间、额阑,识别全部的立柱非常必要,立柱的材质和门窗的材质非常接近,导致它们之间的边界很模糊;
初始位置:为了定位外侧立柱的位置,用户首先指出内侧立柱的位置,并且画出任意一个立柱的宽度,然后,自动分割出外侧立柱,将屋身区域左右两侧直线边界作为竖直方向消影点,在屋身中部采样一条水平直线,将用户指定的点沿着竖直方向映射到这条水平线上,表示为{c0,...cn},因为立柱是左右对称的,ci和cn-i是对称立柱,这样用三化求得它们的三维位置{C0,...Cn},然后基于轮廓线上的三维点拟合外部立柱所在的平面Pout,基于Pout的法向和{C0,...Cn}的位置,拟合内部立柱所在的平面Pin,对于没有走廊的建筑,画出外侧立柱的位置,然后系统基于这两个平面的距离自动决定是否存在走廊;由于内外侧立柱是对齐的,把{C0,...Cn}投影到Pout得到{C'0,...C'n},作为外侧立柱的初始位置;
步骤(4)从这些已经标定和分割的图像中自动得到建筑组件的尺寸和纹理,并生成建筑组件;
步骤(5)然后形状语法编译器快速自动地从三维建筑组件和形状语法自动生成三维中国古代建筑模型和变化的场景。

说明书全文

从单幅图像重建中国古代建筑语义模型和组件库的方法

技术领域

[0001] 本发明属于计算机虚拟现实、基于图像建模技术领域,具体属于识别图像标定分割,建筑组件生成,生成三维建筑模型领域,特别涉及一种从单幅图像重建中国古代建筑语义模型和组件库的方法。

背景技术

[0002] 中国古代建筑作为人类文明和世界文化遗产的重要部分,有它独特的结构特征。两本官方经典著作《营造法式》(宋)和《工程做法则例》(清)描述了中国古代建筑的大部分特征。但是,这两本书所用的不是现代术语,一般人很难理解。建筑大师梁思成先生研究中国古代建筑(参考“梁思成.清式营造则例.清华大学出版社,2006.”以及“Liang S.APictorial History of Chinese Architecture:A Study of the Development of Its Structural System and the Evolution of Its Types.MIT Press,1984.”),并将他们用现代的科学语言描述出来(参考“梁思成.清工部《工程做法则例》图解.清华大学出版社,2006.”)。并且参考“Li AI k.A shape grammar for teaching the architectural style of the Yingzao fashi[D].Massachusetts Institute of Technology,2001.”可注意到《营造法式》是基于参数和规则描述建筑的,他设计形状规则生成中国古代建筑。
[0003] 基于图像的建筑建模已经被广泛的研究,例如文献“Debevec P E,Taylor C J,Malik J.Modeling and rendering architecture from photographs:a hybrid geometry-and image-based approach[C].Proceedings of SIGGRAPH’96:Proceedings of rdthe 23 annual conference on Computer graphics and interactive techniques,New York,NY,USA:ACM,1996.11-20.”;
[0004] “Oh B M,Chen M,Dorsey J,et al.Image-based modeling and photo editing[C].Proceedings of SIGGRAPH’01:Proceedings of the 28th annual conference on Computer graphics and interactive techniques,New York,NY,USA:ACM,2001.433-442.”
[0005] 以 及“DickAR,TorrPHS,CipollaR.Modelling and Interpretation of Architecture from Several Images.Int.J.Comput.Vision,2004,60(2):111-134.”均对基于图像的建筑建模进行的研究。
[0006] Xiao等从街景视图重建三维建筑模型(可参考“Xiao J,Fang T,Tan P,et al.Image-based fac ade modeling[J].ACM Trans.Graph.,2008,27(5):1-10.”和“Xiao J,Fang T,Zhao P,et al.Image-based street-side city modeling[J].ACM Trans.Graph.,2009,28(5):1-12.”);
[0007] Sinha设计了一个交互系统,从无序散乱照片集中生成由多个平面构成的模型(可参考“Sinha S N,Steedly D,Szeliski R,et al.Interactive 3D architectural modeling from unordered photo collections[J].ACM Trans.Graph.,2008,27(5):1-10.”)。
[0008] 许 多 工 作 基 于 对 称( 参 考“HONG W.,YANG A.Y.,HUANG K.,MA Y.:On symmetry and multiple-view geometry:Structure,pose,and calibration from a single image.Int.J.Comput.Vision 60(December 2004),241-265.”) 或 平 行 垂直 ( 参 考“LIEBOWITZ D.,CRIMINISI A.,ZISSERMAN A.:Creating architectural models from images.In Annual Conference of the European Association for Computer Graphics(Eurographics)(1999),vol.18,pp.39-50.”)或平行六面体(参考“WILCZKOWIAKM.,STURM P.,BOYER E.:Using geometric constraints through parallelepipeds for calibration and 3d modeling.Pattern Analysis and Machine Intelligence,IEEE Transactions on 27,2(feb.2005),194-207.”)约束恢复三维尺寸,基于建筑对称性标定单幅照片,恢复三维尺寸,生成建筑模型(参考“JIANG N.,TAN P.,CHEONG L.-F.:Symmetric architecture modeling with a single image.ACM Trans.Graph.28,5(2009),1-8.”)。但是,基于图像的建模难以处理模型细节,而且生成大规模模型的代价很大。但是现存的多数方法只能生成三维模型,不能生成有意义的建筑模型组件,而且生成的模型也不能变化成新的模型。

发明内容

[0009] 本发明要解决的技术问题在于:提供一种从单幅图像重建中国古代建筑语义模型和组件库的方法,克服上述现有技术中存在的问题。
[0010] 本发明解决上述技术问题采用的技术方案为:一种从单幅图像重建中国古代建筑语义模型和组件库的方法,包括如下步骤:
[0011] 步骤(1)求得屋瓦方向,然后标定图像来恢复建筑三维尺寸;
[0012] 步骤(2)基于屋瓦的重复性,利用一种方法自动的进行屋瓦分割,然后根据建筑的对称性和屋瓦方向标定图像;为了在图像中识别建筑组件,该方法基于屋瓦的重复性自动地将屋顶分割成屋瓦;
[0013] 步骤(3)基于用户指出的内侧立柱的位置和宽度,识别外侧的立柱;
[0014] 步骤(4)从这些已经标定和分割的图像中自动得到建筑组件的尺寸和纹理,并生成建筑组件;
[0015] 步骤(5)然后形状语法编译器快速自动地从三维建筑组件和形状语法自动生成三维中国古代建筑模型和变化的场景。
[0016] 其中,所述步骤(1)中,求得屋瓦方向,然后标定图像来恢复建筑三维尺寸,方法为:基于屋瓦局部对称性,在局部上求得对称轴,得到局部方向,然后在平线用RANSAC求得屋瓦消影点,最后,用RANSAC方法求得整个屋瓦的消影线;然后基于建筑对称性求得三维尺寸。
[0017] 其中,所述步骤(2)中,基于屋瓦的重复性,所述的一种方法自动的进行屋瓦分割具体为:基于屋瓦的对称性,求得每个点的控制半径,然后根据控制半径由大到小提取重复序列,每条水平线上分割屋瓦,然后再组合不同水平线上的分割序列,在整个屋顶上分割屋瓦。
[0018] 其中,所述步骤(3)中,基于用户指定的内侧立柱,识别定位外侧立柱的方法为:基于用户指定的内侧立柱的位置和宽度,求得内侧和外侧立柱的三维平面,将内侧立柱的位置投影到外侧平面,然后,基于立柱的对称性和均匀性,优化外侧立柱的位置,最后根据内外侧立柱满足一维单映和图像梯度迭代优化外侧立柱的位置。
[0019] 本发明与现有技术相比的优点在于:
[0020] 1、与传统的基于图像建模不同,我们提出一种基于建筑组件的建模方法。
[0021] 2、我们提出一种自动的分割屋顶屋瓦的方法,和一种半自动的分割立柱的方法。
[0022] 3、我们用过程建模生成组合组件生成可以变化的三维建筑模型。附图说明
[0023] 图1输入图像及用户画出的轮廓;
[0024] 图2用户分割的区域;
[0025] 图3(a)屋瓦局部区域,(b)关于不同方向对称轴的像素颜色的差;
[0026] 图4屋瓦方法;
[0027] 图5分割出来的屋瓦;
[0028] 图6分割出来的立柱;
[0029] 图7生成三维模型建筑组件;
[0030] 图8生成的三维建筑模型。

具体实施方式

[0031] 下面结合附图详细介绍本发明的具体实施方式。
[0032] 本发明解决现有技术存在的技术问题采用的技术方案为:一种从单幅图像重建中国古代建筑语义模型和组件库的方法,该方法具体实现步骤如下:
[0033] 步骤(1)对单幅图像进行预处理,并交互地将建筑立面分割成有意义的部分,如屋顶、额阑、平台等等。然后,我们计算屋瓦的切线方向,最后求得相机的投影矩阵;然后求得屋瓦方向,然后标定图像来恢复建筑三维尺寸;
[0034] 步骤(A1)预处理:
[0035] 首先,在预处理中,我们交互地将建筑立面分割成有意义的部分,如屋顶、额阑、平台等等。然后,我们计算屋瓦的切线方向,最后求得相机的投影矩阵。从单幅图像中重建三维几何信息数据是不完整的。虽然棱台或平行六面体已经被用来标定相机,但是在正面照片中没有这些几何结构。我们注意到曲线的屋瓦相互平行并且垂直于水平方向,利用这对垂直关系,可以求得相机的内部参数。
[0036] 拿到一张图像,用户首先画出建筑轮廓(如图1),然后,系统根据用户所画的轮廓的上下两条线计算水平消影点。为了将建筑分割成有意义的区域,在水平消影点的约束下,我们扫描每一条水平线,计算它们两侧像素颜色之差,然后选择具有相对较大颜色差异的线段作为候选线段,然后,用户交互地从中选择分割线段,或者也可以画其他水平线来分割建筑立面。最后用户指出它们的类型(如图2所示)。
[0037] 步骤(A2)求得屋瓦方向场:
[0038] 曲面屋顶是中国古代建筑的显著特征,在投影后的二维平面中,可以将屋瓦看作向量场,每一点与它切线的方向相关联。我们提出一种方法,自动求得屋瓦的方向,用来标定相机和分割屋瓦。
[0039] 在一点处的屋瓦方向:虽然屋瓦是弯曲的,但是它们在局部近似是直的,如图3(a)所示。我们把瓦看作是在局部交替重复的一些直线段,瓦的局部方向就是这些直线段的方向。我们注意到瓦在局部上是关于与它的方向垂直的轴对称的,所以我们从0到180度依次列举每个方向,求得像素亮度差异关于对称轴最小的那个方向。图3(b)表示了图3(a)中,关于每个方向像素的差异,求得的对称轴方向及屋瓦方向如图3(a)所示。
[0040] 在一点处的水平方向:我们根据屋瓦之间的相互约束关系处理方向错误的外点。因为屋瓦在水平方向是平移对称,它们的方向在同一水平上是平行的,所以在图像上,它们应该相较于同一点。如图4所示,我们采样一些水平直线,在每条线上,在一些采样点上计算它们的方向,然后用RANSAC选取它们的消影点。
[0041] 屋顶上的屋瓦方向:在三维空间中,每条屋瓦决定一个平面,而这些平面是相互平行的,所以在图像中,它们相交于一条消影直线,所以所有消影点应该是共线的。我们用RANSAC算法拟合消影线以去掉错误的消影点。给出一条假定的消影线,我们用如下两个原则确定内点:1)它们到假定的消影线的距离小于给定阈值;2)消影点的位置随着对应水平线的上升而上升。我们用最长上升子序列算法从消影点中求得满足第二个条件的子序列。此外,我们假设相机内参中只有相机焦距未知,因为这些平行平面垂直于水平方向,所以消影线方程应满足以下形式a*x+vy/vx*a*y+1=0,其中vx和vy分别是水平消影点的x和y坐标。我们用正确的消影点重新拟合消影线并将这些正确的消影点投影到这条消影线上,结果如图4所示。
[0042] 步骤(A3)对称建筑标定:
[0043] 利用建筑对称性,我们将照片水平翻转获得第二张虚拟相机的照片,这样来恢复建筑模型的三维尺寸。根据水平方向和屋瓦平行平面的正交性,我们标定相机焦距为:
[0044]
[0045] 其中l1x+l2y+l3=0和(vx,vy)分别是消影线和消影点。
[0046] 有了建筑立面的轮廓和水平消影线,我们求得每条水平线和轮廓的交点,假设一条水平线和轮廓相交于p1和p2,我们获得两对对应点(p1,p’2)和(p2,p’1),其中p’1和p’2分别是p1和p2水平翻转后得到的点。根据这些对应点,我们求得基础矩阵和两个相机的投影矩阵P和P’,根据消影线、消影点和内参矩阵,我们得到P和P’度量重构。最后,在约束两个相机有相同的内参的条件下,我们用集束调整去优化P和P’和重构的三维点。最后,得到两个相机的投影矩阵。
[0047] 步骤(2)基于屋瓦的重复性,利用一种方法自动的进行屋瓦分割,然后根据建筑的对称性和屋瓦方向标定图像;为了在图像中识别建筑组件,该方法基于屋瓦的重复性自动地将屋顶分割成屋瓦;
[0048] 屋瓦由两种交替重复的瓦条组成,为了提取屋瓦组件,我们需要将整个屋顶分解成单个瓦条。屋瓦的颜色相同,边界响应小且不稳定。基于它们的重复性和求得的方向场,我们提出一种自动分析屋瓦近似规律的重复性将它们分割成曲线瓦条的方法。我们首先在每条水平线上独立的确定屋瓦边界,然后在将它们组合起来分割整个屋顶。
[0049] 已知屋瓦方向(如图4),屋瓦边界应该在沿着屋瓦方向两侧像素颜色最不对称的位置。为了定位可能的边界位置,在每条水平线上,我们依次采样得到序列S={p1,p2,...,pn},其间距为1个像素。我们把pi点切线左右两侧像素差的和表示为diff(pi),我们定义S中所有最长的交替重复的连续子列为C(S),包含2个交替的距离。
[0050] l∈C(S)当且仅当l={pk,pk+1,...,pk+m},其中
[0051]
[0052] 注意C中的子列可能是相互重叠的。对于每个pk∈S,我们定义它的控制半径sup(pk),使得在邻居{pk-r,...,pk,...,pk+r}中,diff(pk)>diff(pi),其中i≠k;k-r≤i≤k+r,而且diff(pk)<diff(pk-r-1)或diff(pk)<diff(pk+r+1).
[0053] 分层次的可能分割点确定:已知采样点,在每条水平线上分别提取可能的分割点。一个点有更大的控制半径意味着它更可能是分割点。为了定位可能的分割点位置,我们基于分割点控制半径的大小,分层次地分析它们的位置。S中的点被分成不同层次的子序列r
当且仅当 对于每个S,其中r从最大半径变化到1,
r
我们依次迭代地处理它们,得到分割子序列L,方法如下:首先,我们用S 扩展L,对于每个r r r
li∈L,我们合并(并集)li和S,得到M(S,li),如果一个子序列a∈C(M(S,li))满足那么用a替换li;第二步,我们计算C(Sr),对于每个子序列a∈C(Sr),如果没有li∈L使得 那么将a插入到L中。迭代之后,L包含所有可能的分割子序列,它们是高度重叠的。
[0054] 一条线上的屋瓦分割:得到L之后,在每条水平线上,我们提取不相交的并且一致的分割子序列Ls来分割屋顶。我们首先将L中的子序列根据它们第一个和最后一个分割点之间距离按照降序排列,因为越长的子序列越可能是正确分割。第一个子序列从加入到Ls并从L中删除。然后我们迭代地分别在左右两侧扩展它。我们检查所有li∈L来测试Ls中第一个(最后一个)子序列lf∈Ls(ll∈Ls)是否可以被li∈L扩展,当且仅当C(M(lf,li))(C(M(ll,li)))仅包含一个序列并且li在M(lf,li)(M(ll,li))中是连续子序列时成立。如果没有li∈L可以被Ls扩展,那么左边(右边)最近的、不重叠的且兼容的(也就是有相似的分割间距)li插入到Ls的头(尾)。所有被合并或者插入Ls的序列从L中删除,重复这个过程直到没有序列可以扩展Ls为止。我们分别得到每条水平线上的分割点,可能包含一些不重叠的子序列。
[0055] 每条水平线被单独分割后,我们组合这些分割点分割整个屋顶。我们选择一条水平线(一般是中间的一条)作为基线。从每个分割点开始,我们沿着屋瓦方向前进在基线上找到它的对应位置,与上一步类似,我们需要组合这些子序列并提取出兼容的、并相交的子序列。但是,这一步在以下方面与上一步不同:1)为了确定正确的分割模式,我们计算所有子序列分割点之间的距离,并且选择最共同的间距。排序之后,我们依次删除第一个子序列直到某个序列的间距与最共同的间距一致为止。从这个序列开始扩展生长;2)因为从不同水平线移动过来的对应分割点不完全相同,当合并子序列是我们允许一定误差,并且平均对应点的位置。然后,如果提取出来的分割序列依然包含多个子序列,我们根据缺口附近的分割符间距填充缺口。最后,从这些分割点,我们在屋瓦方向场上跟踪,得到屋瓦分割曲线,如图5所示。
[0056] 步骤(3)基于用户指出的内侧立柱的位置和宽度,识别外侧的立柱;
[0057] 立柱是中国古代建筑的承重结构,决定建筑的整体结构。对于有走廊的建筑,走廊内侧的窗经常被外侧的立柱遮挡。为了识别建筑结构并构建有意义的建筑组件,例如立柱、间、额阑,识别全部的立柱非常必要。立柱的材质和门窗的材质非常接近,导致它们之间的边界很模糊。
[0058] 初始位置:为了定位外侧立柱的位置,用户首先指出内侧立柱的位置(也就是说在每个内侧立柱上点一下),并且画出任意一个立柱的宽度。然后,我们的目的是自动分割出外侧立柱。将屋身区域左右两侧直线边界作为竖直方向消影点,我们在屋身中部采样一条水平直线,将用户指定的点沿着竖直方向映射到这条水平线上,表示为{c0,...cn}。因为立柱是左右对称的,ci和cn-i是对称立柱,这样用三化求得它们的三维位置{C0,...Cn}。然后基于轮廓线上的三维点拟合外部立柱所在的平面Pout,基于Pout的法向和{C0,...Cn}。
的位置,我们拟合内部立柱所在的平面Pin,对于没有走廊的建筑,我们画出外侧立柱的位置,然后系统基于这两个平面的距离自动决定是否存在走廊。由于内外侧立柱是对齐的,我们把{C0,...Cn}。投影到Pout得到{C’0,...C’n},作为外侧立柱的初始位置(图6中的黄色点),我们在下面调整这些立柱的位置。
[0059] 迭代优化:除了中间的和两侧的间以外,其它的间一般是均匀的。基于对称性和均匀性,我们首先优化{C’0,...C’n},这些点首先在直线上参数化,但我们仍然用这些符号:其中第一项表示对称性,第二项描述立柱的均匀性。我们反复地用上式调整,直到调整距离小于预定次数或超过最大迭代次数。优化之后,{C’0,...C’n}投影到图像平面得到{c’0,...c’n}。因为内侧和外侧立柱是对齐的,{c0,...cn}到{c’0,...c’n}的映射满足一维单映。图像中,立柱区域比间要光滑,因为门窗上经常有一些装饰,这意味着立柱上的图像梯度比门窗上要小。基于一维单映和图像梯度,我们反复迭代优化外侧立柱的位置直到位置变化小于一个像素或者超过最大迭代次为止。在单映过程中,我们用RANSAC拟合从{c0,...cn}到{c’0,...c’n}的单映,并且更新c’0,...c’n。在基于梯度的过程中,对于每个c’i,已知它的柱子宽度wi,我们迭代地调整它的位置,找到梯度最小的位置。每次迭代中,搜索区间是s=wi exp(-2|c’i-cpre|/wi),其中cpre是上次迭代后立柱的位置,初始化为c’i。我们最小化下式来找到新的立柱位置cnew,
[0060] cnew=arg minc AverGrad(c),cpre-s/2≤c≤cpre+s/2
[0061] 同时要求cnew不能越过ci的位置,AverGrad(c)是在区间[c-wi/2,c+wi/2]中的图像平均梯度。如果|cnew-cpre|≤1或者超过最大迭代次数,迭代终止;否则,将cnew赋给cpre开始新依次迭代。识别出来的立柱在图6中表示出来。
[0062] 步骤(4)从这些已经标定和分割的图像中自动得到建筑组件的尺寸和纹理,并生成建筑组件;
[0063] 图像标定和分割之后,我们要构建有意义的三维建筑组件,自动生成形状语法,用来生成一族不同的模型。
[0064] 三维组件库用来组合生成建筑模型并且能够生成不同建筑模型。曲面屋顶是中国古代建筑的显著特征,例如,庑殿、歇山、悬山等屋顶类型。已知标定且分割的图像,基于屋瓦方向,我们计算屋顶顶部和底部的倾斜角度,顶端屋脊和下面屋檐的距离。组件曲线表示为一段圆弧。屋顶的四角上翘,表示为二次贝塞尔曲线。我们认为不同层次的宽度差异等于它们的深度差异,所以其它层次的深度根据它们和屋顶的深度差异求得。
[0065] 内侧的立柱将屋身分解成间,外侧的立柱可能将它们遮挡。校正之后,我们需要修复被遮挡的纹理。根据间的对称性,我们将间的纹理左右翻转,配准之后,用图切(Graph Cut)纹理合成方法融合这两张图像。最后,用这张修复的图像作为生成间组件。立柱组件为圆柱网格映射上立柱的纹理构成。额阑与立柱是对齐的,我们将立柱投影到额阑平面上,分割额阑,额阑分别表示为平面和圆柱形状。城墙和平台在屋子下面,它们有多个平面构成,我们根据它们的法线聚类分割成多个平面。生成的建筑组件如图7所示。
[0066] 步骤(5)然后形状语法编译器快速自动地从三维建筑组件和形状语法自动生成三维中国古代建筑模型和变化的场景。
[0067] 我们采用CGA形状语法,通过不断细分生成三维建筑模型。我们扩展粗糙模型,用正多边形棱柱生成亭子等模型,它的每个立面表示建筑的每个立面。生成模型时,首先,竖直分解粗糙模型得到城墙、屋身、额阑、斗拱、屋顶等层次,然后,在每一层中,我们在水平方向上细分生成建筑组件。与大部分中国古代建筑类似,背面和侧面生成简单的墙或者与正面类似,生成门窗和墙。过程建模的一个优点是他能够生成一族可变的模型。例如:重复细分规则可以将屋顶细分成任意多个屋瓦,自适应空间的大小。最后生成三维建筑模型。生成的结果如图8所示。
[0068] 本发明未详细阐述的部分属于本领域公知技术。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈