CN109615691B - 积木模型生成系统 - Google Patents

积木模型生成系统 Download PDF

Info

Publication number
CN109615691B
CN109615691B CN201811448371.0A CN201811448371A CN109615691B CN 109615691 B CN109615691 B CN 109615691B CN 201811448371 A CN201811448371 A CN 201811448371A CN 109615691 B CN109615691 B CN 109615691B
Authority
CN
China
Prior art keywords
building block
repetitive structure
model
building
slope
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811448371.0A
Other languages
English (en)
Other versions
CN109615691A (zh
Inventor
陈雪锦
周杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN201811448371.0A priority Critical patent/CN109615691B/zh
Publication of CN109615691A publication Critical patent/CN109615691A/zh
Application granted granted Critical
Publication of CN109615691B publication Critical patent/CN109615691B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2008Assembling, disassembling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种积木模型生成系统,包括:视觉特征检测模块、积木子模块生成模块、积木生成模块;其中:所述视觉特征检测模块,用于对输入的网格模型进行视觉特征检测,获得重复性结构和规则性信息;积木子模块生成模块,用于根据重复性结构的形状特征选择一个或一组用于拼砌的积木块,并结合全局的统一分辨率,利用所选择的积木块独立生成与重复性结构相对应的积木子模块;所述积木生成模块,用于结合获得的规则性信息将各个独立生成的积木子模块拼砌到一起,并且补充拼砌后模型中剩余的部分,最终生成积木模型。该系统可以自动、快速地生成与输入建筑模型几何形状相似且保留美学特征的积木模型。

Description

积木模型生成系统
技术领域
本发明涉及计算机图形学领域,尤其涉及一种积木模型生成系统。
背景技术
乐高积木模型构建问题,是由乐高公司于1998年提出的一个几何构建问题,即“对一个三维模型,如何用使用乐高块来拼砌它?”。人们提出了许多各式各样的系统来帮助人们生成乐高积木模型,例如LDraw和乐高数字设计师。这些工具帮助人们在数据库中搜索和选择积木块,并且把他们放到场景中去。尽管这些虚拟的设计环境使得用户浏览和测试他们虚拟的积木模型更加简单了,但是仍然需要花费用户大量的时间去搜索一个合适的积木块用来表达自己的想法。
又如近期一个重要的研究工作是关于积木模型稳定性优化的(LUO S J,YUE Y,HUANG C K,et al.Legolization:optimizing LEGO designs[J].ACM Transactions onGraphics(TOG),2015,34(6):222.)。他们实现了一个对于积木模型基于力学的稳定性优化系统,利用该系统能够检测模型中最为脆弱的节点并进一步优化。而该系统与之前的大多数系统类似,都是着重在优化模型的稳定性和简易性等特性上。目前的系统都无法利用积木块的多样性,自动地拼砌出多样、生动的积木模型。
发明内容
本发明的目的是提供一种积木模型生成系统,可以自动、快速地生成与输入建筑模型几何形状相似且保留美学特征的积木模型。
本发明的目的是通过以下技术方案实现的:
一种积木模型生成系统,包括:视觉特征检测模块、积木子模块生成模块、积木生成模块;其中:
所述视觉特征检测模块,用于对输入的网格模型进行视觉特征检测,获得重复性结构和规则性信息;
积木子模块生成模块,用于根据重复性结构的形状特征选择一个或一组用于拼砌的积木块,并结合全局的统一分辨率,利用所选择的积木块独立生成与重复性结构相对应的积木子模块;
所述积木生成模块,用于结合获得的规则性信息将各个独立生成的积木子模块拼砌到一起,并且补充拼砌后模型中剩余的部分,最终生成积木模型。
由上述本发明提供的技术方案可以看出,可以利用积木模型多样性的特点,为输入的网格模型中的每个视觉特征拼砌出合适的可以表达该特征的积木子模块,最终,包含这些积木子模块的乐高积木模型将可以保持与原模型的几何形状相似且保留美学特征。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供了一种乐高积木模型生成系统流程图;
图2为本发明实施例提供了乐高多样性积木示意图;
图3为本发明实施例提供了积木几何特征示意图;
图4为本发明实施例提供了不同分辨率的积木子模块示意图;
图5为本发明实施例提供了模型变形前后对比的示意图
图6为本发明实施例提供了生成的积木模型与积木子模块的结果图;
图7为本发明实施例提供了复杂的积木模型生成结果图和与人工设计产品的对比图;
图8为本发明实施例提供了指定不同分辨率下的积木模型生成结果图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明实施例提供一种积木模型生成系统,如图1所示,其主要包括:视觉特征检测模块、积木子模块生成模块、积木生成模块;其中:
所述视觉特征检测模块,用于对输入的网格模型进行视觉特征检测,获得重复性结构和规则性信息;
积木子模块生成模块,用于根据重复性结构的形状特征选择一个或一组用于拼砌的积木块,并结合全局的统一分辨率,利用所选择的积木块独立生成与重复性结构相对应的积木子模块;
所述积木生成模块,用于结合获得的规则性信息将各个独立生成的积木子模块拼砌到一起,并且补充拼砌后模型中剩余的部分,最终生成积木模型。
为了便于理解,下面还结合图1对系统各个模块做详细的介绍。
一、视觉特征检测模块。
视觉特征主要由两方面组成:重复性结构和规则性信息,具体来说:
1、重复性结构。
本发明实施例中,所述重复性结构为三角面片的分割块,使用如下公式表示重复性结构:
Figure BDA0001881691450000031
其中,FRS是重复性结构的第一个实例对应的网格分割块,Nins是重复性结构的实例的个数,{Ti}是从第1个实例对应的网格分割块到第i个实例对应的网格分割块的位置和旋转转移矩阵。
系统对于输入的网格模型进行了一个基于颜色的重复性结构检测算法。对于一个输入的网格模型M,它将被分割为一系列组件C={C1,…,CN}。每个组件都由一系列实例构成
Figure BDA0001881691450000032
每个实例
Figure BDA0001881691450000035
是一组三角面,而{Tj}是实例
Figure BDA0001881691450000033
Figure BDA0001881691450000034
对应的网格分割块的位置和旋转转移矩阵。这个模型分割和相似性检测算法被建模成了一个加权的完全覆盖问题。这使得所有组件将覆盖整个输入的模型,并且组件之前不会有重叠的发生。
具体来说,上述过程主要分为两个步骤:
1)为了减少实例搜索中的计算量,基于三角面片的相似度,输入模型将被分割为一系列大的面片集合。
2)在每一个面片集合的内部,则会进一步的进行相似性的检测。相似性检测时设置了两个约束项,第一个约束项是颜色约束项,只有相同颜色的三角面片能够被分在同一个组件中,这一约束项保证了之后不同颜色的体素不会被融合成同一个积木块,使得模型有一个清晰的颜色边界。第二个约束项是每一个组件的实例有完全相同的三角面片,且各三角面片之间旋转转移矩阵只能是绕着y轴一定角度(例如,90、180、270度)旋转;这个约束其实是源于乐高积木块的搭建系统,每一个积木可以被90度的旋转并且拼砌。利用了这个约束,可以保证每一个实例都能被一个相同的积木子模块通过一定的旋转来代表。
3)在相似性检测之后,并不是所有的组件都有重复性的实例。并且有些组件占用的面积太小,已经可以被当作噪声忽略。因此对于所有满足以上约束项的组件来说,再利用下述公式对各组件进行筛选,筛选结果即为重复性结构:
Figure BDA0001881691450000041
其中,
Figure BDA0001881691450000042
表示组件Ci中实例的个数,Area(Ci)表示组件Ci的面积,τrsArea(M)表示设定的第一面积阈值。
2、规则性信息
所述规则性信息包括:规则平面,以及规则平面和重复性结构之间的对齐特性,这两个特性都会由模型变形步骤来保持。
规则平面是一个重要的视觉特征,规则平面通常表示着墙面或者建筑的屋顶。系统希望这些地方对应的积木块在最终的积木模型中也能保持平面的特性。视觉特征检测时,具有相同法相的三角面片被聚合成了同一个平面分割块,当一个平面分割块的面积大于设定的第二面积阈值τrpArea(M)时,则被作为一个规则平面。
二、积木子模块生成模块。
在积木子模块的生成步骤中,系统为每一个重复性结构生成一个最适合的积木子模块。其由三部分构成:积木块的选择、分辨率选择、积木子模块的生成。首先,系统对每个RS进行了集合特征检测,来找到一个或一组最适合拼砌的积木块。在后续的积木子模块生成中,只有这些检测到的适合的积木块会被用来拼砌。
为了生成积木子模块,每一个子模块的体素分辨率都要被确定才行。尽管每个子模块都是被独立生成的,系统仍然希望他们能够相对于在模型中的重复性结构,保持相对的比例不变,这也将使得最终生成的积木模型有更少的变形。
所以,系统使用一个全局一致的网格-体素比例,表示为
Figure BDA0001881691450000043
该比例可以将网格坐标系的坐标映射到体素坐标系的坐标,也被用来计算每一个子模块的分辨率。其中|vmesh|和|vvoxel|分别是网格坐标系和体素坐标系下的单位长度。系统在全局使用同一个
Figure BDA0001881691450000044
来使得不同的重复性结构直接的比例能够尽量保持。
此后,系统可以利用
Figure BDA0001881691450000051
来生成每一个积木子模块了。一个积木子模块可以被定义为
Figure BDA0001881691450000052
同一个积木子模块会被用于一个重复性结构的不同实例。在最终的积木模型中,则可以使用积木子模块的重复性来表示输入模型中的重复性特征。
1、积木块的选择。
具体来说,本发明实施例考虑三种类型的积木块,如图2所示,主要包括:矩形积木块、斜面积木块与曲面积木块,相应的重复性结构也分为三种:矩形重复性结构RScubic、斜面重复性结构RSslope与曲面重复性结构RScurve
本发明实施例中,利用各类积木块的特征和重复性结构中的几何特征匹配来找到一个或一组用于拼砌的积木块;矩形积木块仅仅能代表水平和垂直的平面,所以系统在模型中检测斜面和曲面的几何特征来匹配各个类型的积木块。对重复性结构的几何特征进行检测时,如果没有任何几何特征被检测到,则认为相应重复性结构为矩形重复性结构RScubic;如果检测到斜面特征或者曲面特征,则认为相应重复性结构为斜面重复性结构RSslope或者曲面重复性结构RScurve
所述斜面特征表示为slope={n,w,h},其中,n是斜面的法相,w和h是斜面的宽和高,如果检测的某一重复性结构中的斜面区域的面积Area(slope)满足Area(slope)>τ_{slope}Area(RS),则认为相应重复性结构为斜面重复性结构;其中,τ_{slope}是根据经验设定的阈值参数,Area(RS)表示相应重复性结构的面积。
对于斜面重复性结构下的每一个积木块,均记录了积木块中的几何特征,选择与斜面重复性结构的斜面特征距离最小的积木块的斜面特征,作为斜面重复性结构适合的积木块,两个斜面特征的距离由以下公式来衡量:
Figure BDA0001881691450000053
其中,下标is,js为斜面特征的序号,
Figure BDA0001881691450000054
用来衡量两个斜面特征的法相间的距离,
Figure BDA0001881691450000055
用来衡量两个斜面特征的形状距离,λn设定值,用来保证法相的距离的优先级高于形状距离的优先级。
所述曲面特征表示为curve={h,θ,r},其中,h是圆柱的高度,θ是圆柱的中心角,r是圆柱的半径。在系统中,当检测到一组连续的形状相同的矩形平面,并且该组矩形平面形成了圆柱面的一部分时,则把该组矩形平面作为曲面特征,并认为相应的重复性结构为曲面重复性结构。目前系统只检测圆柱中心角θ=90,180,270,360的这几种情况,因为系统数据库中现有的曲面积木块只能表示这几种形状。
与斜面积木块相似,系统也对于曲面积木块类型中的所有积木块检测了积木块中的曲面特征并记录,如图3所示。然而,系统并不能找到一个最优的特征距离最小的一个积木块来匹配某一个曲面特征。因为曲面特征的半径rRS和曲面积木块的半径rbrick是属于不同的坐标系,而在网格-体素坐标系比例确定之前,这之间的比较是毫无意义的。
由此,系统基于θ选择了一组曲面积木块,而最适合的积木块要在坐标系比例确定之后再确定。
2、分辨率选择。
所有的矩形积木块都能被用来拼砌该类型的重复性结构。对于简单的形状,只有水平和垂直的平面自然是可以,因为矩形积木块本身就可以表示水平和垂直平面。而对于复杂的没有检测到任何集合特征的平面来说,有矩形积木块来代表他们可以视为是一种简化操作。
对于一个输入的三维网格模型来说,可以把它转化为不同分辨率的积木模型。对于积木模型,其分辨率的数值是离散的,最小的变化步长为一个单位长度,而积木的坐标系中单位长度所组成的一个单位体积可以被称为是一个体素。对于仅仅由矩形积木块构成的积木模型来说,虽然模型的复杂性会随着分辨率的上升而上升,但是更大的分辨率通常更好,因为积木模型能够表示更好的原模型的细节。然而,对于由不同的丰富的积木块构成的积木模型来说,并不适用于这一规则,因为重复性结构通常可以由某中特殊的积木块在某个特定的分辨率下来构成。当积木子模块的分辨率变得太大或者太小的时候,这些形状则会变得不能被表达的很好。
如图4中所示,当坐标系比例
Figure BDA0001881691450000061
减少时,积木子模块的分辨率变得更大,而系统能够利用积木的堆砌的方法来生成分辨率更大的斜坡积木子模块。然而,对于由曲面积木块构成的积木子模块,最优的分辨率则被限制在了一种可能性上。
对于一个网格模型,系统选择网格-体素坐标系分辨率,是基于一个在最后的积木模型中希望保留尽可能多的重复性结构的目标。因此,系统定义了一个函数来评价不同的坐标系分辨率下对不同的重复性结构的影响。
斜面和规则的重复性结构能够适应一个最大的坐标系比例。在此比例之上,积木子模块的大小将会小于一个体素的大小,如果系统继续用一个体素的大小来表示它,那么它的比例相对于整体的模型则会有了更大的偏移,因此整个模型就会有变形,而另一方面,如果系统舍弃掉该积木子模块,那么这个重复性结构的特征则会被丢失。一个网格-体素坐标系分辨率的代价函数表示为:
Figure BDA0001881691450000071
其中,
Figure BDA0001881691450000072
表示矩形重复性结构及斜面重复性结构都有一个最大的坐标比例
Figure BDA0001881691450000073
表示当前坐标比例
Figure BDA0001881691450000074
相对于矩形重复性结构及斜面重复性结构的代价函数值;
Figure BDA0001881691450000075
表示曲面重复性结构中每一个候选的积木块都有一个最合适的坐标比例
Figure BDA0001881691450000076
表示当前坐标比例
Figure BDA0001881691450000077
相对于曲面重复性结构中相应候选的积木块的代价函数值;对于所有的
Figure BDA0001881691450000078
Figure BDA0001881691450000079
都需要计算一个代价函数值
Figure BDA00018816914500000710
之后选择一个最小的代价函数值对应的坐标比例来确定全局的统一分辨率。
3、积木子模块的生成。
在全局的统一分辨率被确认之后,使用它来计算斜面重复性结构与曲面重复性结构对应的积木子模块,如图1(c-2)则表示了一些生成的积木子模块的例子。
对于矩形的重复性结构来说,系统不直接生成一个积木子模块。因为所有的矩形积木块都能够被用来构建这个子模块,因此系统只生成一个体素目标来表示它的体素形状。而体素形状内的积木则在最终的积木布局步骤中和积木模型的剩余部分被一起生成(由积木生成模块生成)。利用这种方法,积木块可以横跨矩形积木子模块的内外,进而在积木子模块于整体模型之间有了更多的连接点,使得整体的积木模型的稳定性得到了增加。为了保持这些结构的重复性特性,系统在生成的时候将保证矩形重复性结构的每一个实例都有完全相同的积木子模块来表示,并且为了这些子模块有一个清晰的边界,积木模块表面的积木块将不能够跨边界的。
三、积木生成模块。
在积木模型的生成步骤中,首先要把积木子模块放到积木模型中去,然后来利用积木布局算法生成模型的剩余部分。
由于每一个积木子模块都是独立的被生成的,因此他们的全局位置还不是固定的。所以如果系统之间利用每一个重复性结构在网格模型中的位置来推算他们积木子模块在体素坐标系中的位置,那么会有体素的冲突和空洞的情况出现。这是由于对于每一个实例的大小和位置的取整的操作导致的。积木子模块的分辨率一定是体素坐标系下的一个整数值,因此当系统计算每一个积木子模块的位置的时候,系统需要将每一个实例的在网格坐标系中的位置都投影到最近的体素坐标系中的一个整数位置。
所以系统利用一个变形的操作来使得输入的网格模型变形为一个积木子模块兼容的模型。而视觉特征中很重要的模型的规则性也会在这一步被保留。此后,每一个积木子模块的位置就能够被变形后的网格模型中的重复性结构的实例的位置所确定。
最终,系统把输入模型转化到一个体素目标的形状VTdeformed,利用体素目标和传统的积木布局算法来为剩余的部分生成积木布局,最终生成一个完整的积木模型。
1、模型变形。
模型变形的目的是生成一个积木子模块兼容的模型,每一个积木子模块的位置都能由该模型中的位置经过投影来计算所得。不仅如此,视觉特征中的模型规则性的特征,包括规则平面和重复性结构等也能够在变形后的模型中进行保留,从而将积木子模块放到体素坐标系中之后,重复性结构的特性和规则性信息也能够在最终的模型中被保留。该变形过程可以分为两步。
1)将输入的网格模型中的重复性结构的实例变形相应的积木子模块的对应比例大小:对应每一个积木子模块,计算出一个体素坐标系下的包围盒
Figure BDA0001881691450000085
其中,
Figure BDA0001881691450000086
表示一个包围盒的三轴坐标;然后,利用全局的统一分辨率将每一包围盒投影到网格坐标系下之后,表示为
Figure BDA0001881691450000087
再将所有变形后的实例作为一个刚体,并利用刚体的顶点坐标表示相应刚体的位置;
2)将所有实例的位置
Figure BDA00018816914500000810
和所有网格顶点
Figure BDA0001881691450000089
作为变量,来对输入的网格模型进行变形,变形的目标函数由一下三个部分构成。
a、积木子模块位置的整数化。
所有的积木子模块都必须被放在体素坐标系下的一个整数位置上,因此系统把体素坐标系下的网格投影到网格坐标系下,并使得所有重复性结构的实例都位于此网格上,这样则能够保证之间利用实例的网格坐标系中的位置能够被用来计算体素坐标系中的位置。
定义一个函数来衡量每个实例的位置的整数化,可以被表示为:
Figure BDA0001881691450000081
其中
Figure BDA0001881691450000082
是所有重复性结构中实例的顶点位置,
Figure BDA0001881691450000083
计算了
Figure BDA0001881691450000084
在投影的体素网格中的最近的位置。
b、重复性结构实例的对齐
系统希望保持所有的实例之间都能保持原有的位置关系,而在每一个实例变形之后,同一个网格的顶点可能被多个实例分裂成了多个新的顶点Vinst。希望通过保持这些顶点仍旧在一起的方法,来保持实例之间的相对位置关系。定义:
Figure BDA0001881691450000091
其中,Vsplit为被分裂的顶点的集合,每一个vl∈Vsplit被分裂成了一个点集
Figure BDA0001881691450000092
由于系统把每一个变形之后的实例都作为一个刚体来看待,因此每一个
Figure BDA0001881691450000093
的值可以由实例的顶点的位置pm来推算出来。
c、规则平面
系统希望保持在规则平面上的所有顶点,在变形之后依然实在同一个平面上,因此规则平面的项可以被定义为:
Figure BDA0001881691450000094
其中Pregular是一系列被检测到的规则平面。
Figure BDA0001881691450000095
计算了由vl
Figure BDA0001881691450000096
的距离;
考虑到以上三项变形的能量象,最终变形的目标函数为:
Edeform=EintaEalignmentpEplane
其中,Eint用来衡量每个实例的位置的整数化,Ealignment用来使得所有的实例之间都能保持原有的位置关系,Eplane用来保持输入的网格模型中的规则平面,λa和λp是两个预设的权重值。
本发明实施例中,最终利用HLBFGS算法对目标函数进行求解;如图5所示,为一个变形前后的对比图,从图中可以看到,虽然所有实例的形状和位置在变形之后发生了变化,但是模型的规则性依然被保持了下来。
2、积木布局生成。
重复性结构对应的积木子模块表示着系统想要在最终的模型中保持的视觉特征,所以这些积木子模块有着相对于模型的其余部分更高的优先级,因此系统先将积木子模块按照位置放入体素的坐标系内。在此之后,系统使用变形后的模型来生成一个体素目标VTdeformed,系统利用矩形积木块来生成剩余部分的积木布局。由此,最终的积木模型则被生成了。
1)摆放积木。
在变形步骤之后,每一个积木子模块的位置都可以由网格模型中的实例的位置通过投影到体素坐标系下来计算。而即使是在变形操作之后,积木子模块直接也会有碰撞的情况发生,因为子模块之间的体素占用会有重叠的情况,在这些情况下,系统倾向于优先拜访更大的积木子模块,来优先保持他们的完整性。因此,按照积木子模块从大到小的顺序,将积木子模块按照其位置放入变形后的模型中。
2)积木布局。
将变形后的模型生成为一个体素目标VTdeformed,再利用体素目标和传统的积木布局算法来为剩余的部分生成积木布局,最终生成一个完整的积木模型,主要如下:
利用一定尺寸大小(1×1)的积木块(也即,矩形积木块)来代替体素目标中没有被积木子模块占用的空体素(称为模型中的剩余部分),再随机的融合所有可融合的积木块对,来生成最终的积木块布局。
矩形重复性结构会和模型的剩余部分在这一步被一起生成,因此系统随机的融合算法会把矩形重复性结构的边界模糊。系统定位到了所有矩形重复性结构的对应的体素,并且对于这部分的体素增加了融合步骤中的更多的限制:在一个矩形重复性结构的不同实例中的对应的积木块对会被同时融合,使得同一个矩形重复性结构的每一个实例有完全相同的积木子模块来表示;并且,在模型表面的矩形重复性结构中的体素不会和实例外的体素融合,这个约束则保证了一个积木子模块的清晰的边界,而在模型内部的体素和实例外的体素融合则是被允许的,因为他们没有影响积木模块的边界。
为了说明本发明实施例所提供上述系统的效果,进行了如下实验:
首先,由系统系统生成的积木模型是由一系列积木子模块所构成的。如图6所示,六个检测到的重复性结构对应了六个重复的积木子模块。这些重复的积木子模块不仅可以用来表达输入模型中的重复性结构,同样对于模型的拼装也十分有帮助。因为用户在进行拼装的时候可以使用相同的步骤拼装一系列完全相同的积木子模块,并将它们用在积木模型的不同地方。
图7展示了较为复杂的积木模型例子,其中每一行为一个结果,(a)中展示了输入的网格模型,(b)中展示了本系统生成的乐高模型,(c)中展示了对应的人工设计的乐高模型。可以看出,模型的屋顶和支撑结构可以很好的被斜面块和曲面块所表达,重复性结构也能被积木子模块所表示。每一个重复性结构的实例也有稍微的变形,以图7(2-b)中的长方形的窗子为例,在网格-体素比例被确定之后,对应一个窗子的积木分辨率被固定成了1x1的正方形。而整体积木模型的规则性却并没有受这些局部尺寸改变的影响。
还与现有技术进行了对比。系统输入的模型其实是由真实的建筑启发得来的,而乐高公司官方也发售了一些积木商品来表示这些建筑,系统则将自动生成的模型和乐高官方人工设计的产品来进行比较,如图7(b)(c)所示。由于特征检测的限制,有些在产品中所表现的细节部分没有在系统系统生成的结果中所表现出来。但是系统的结果仍然能够保持大部分的视觉特征,例如屋顶、支撑柱结果,规则性和对称性等等。
系统的系统自动选择了一个能够最佳的保持检测到的视觉特征的网格-体素坐标系比例。然而在此之上,用户也能够自由地指定不同的比例来最终生成不同分辨率的积木模型。如图8展示了一个例子。
自动生成的结果展示在了图8(b)中,其对应的网格-体素坐标系比例是
Figure BDA0001881691450000111
而当系统手动设置
Figure BDA0001881691450000112
Figure BDA0001881691450000113
后,对应的结果如图8(a)和8(c)所示。在不同的比例
Figure BDA0001881691450000114
之下,屋顶都是由同一个积木块所表示,而区别则是不同的分辨率。但是曲面结构很难利用积木的堆叠特性来改变积木模块的分辨率。如图8(c)中所示,一个更大的曲面积木块被用来表示门前台阶的部分。而在图8(a)中,则没有适合的曲面积木块来表示如此小的一个分辨率的台阶,因此该重复性结构只能被规则的积木块来代替。
注意到生成的结果中的积木模型的分辨率并没有完全按照坐标系比例的变化而变化。这是由于系统是在独立地生成每一个重复性结构的积木子模块,并且使得输入模型变形来适应这些子模块。其只是大致的指明了一个全局平均的网格-体素坐标系比例。而每一个重复性结构的重复特征和规则性则是被首要的保存下来的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

Claims (10)

1.一种积木模型生成系统,其特征在于,包括:视觉特征检测模块、积木子模块生成模块、积木生成模块;其中:
所述视觉特征检测模块,用于对输入的网格模型进行视觉特征检测,获得重复性结构和规则性信息;
积木子模块生成模块,用于根据重复性结构的形状特征选择一个或一组用于拼砌的积木块,并结合全局的统一分辨率,利用所选择的积木块独立生成与重复性结构相对应的积木子模块;
所述积木生成模块,用于结合获得的规则性信息将各个独立生成的积木子模块拼砌到一起,并且补充拼砌后模型中剩余的部分,最终生成积木模型。
2.根据权利要求1所述的一种积木模型生成系统,其特征在于,所述重复性结构为三角面片的分割块,使用如下公式表示重复性结构:
Figure FDA0001881691440000011
其中,FRS是重复性结构的第一个实例对应的网格分割块,Nins是重复性结构的实例的个数,{Ti}是从第1个实例对应的网格分割块到第i个实例对应的网格分割块的位置和旋转转移矩阵。
3.根据权利要求1或2所述的一种积木模型生成系统,其特征在于,进行视觉特征检测获得重复性结构的步骤包括:
将输入的网格模型M,分割为一系列的面片集合;
在每一个面片集合内进行相似性检测,相似性检测时设置了两个约束项,第一个约束项是颜色约束项,只有相同颜色的三角面片能够被分在同一个组件中;第二个约束项是每一个组件的实例有完全相同的三角面片,且各三角面片之间旋转转移矩阵只能是绕着y轴一定角度旋转;通过相似性检测获得一系列组件,每一所述组件中包含一个或多个实例;
再利用下述公式对各组件进行筛选,筛选结果即为重复性结构:
Figure FDA0001881691440000012
其中,
Figure FDA0001881691440000013
表示组件Ci中实例的个数,Area(Ci)表示组件Ci的面积,τrsArea(M)表示设定的第一面积阈值。
4.根据权利要求1或2所述的一种积木模型生成系统,其特征在于,所述规则性信息包括:规则平面,以及规则平面和重复性结构之间的对齐特性;
视觉特征检测时,具有相同法相的三角面片被聚合成了同一个平面分割块,当一个平面分割块的面积大于设定的第二面积阈值τrpArea(M)时,则被作为一个规则平面。
5.根据权利要求1所述的一种积木模型生成系统,其特征在于,所述根据重复性结构的形状特征选择一个或一组用于拼砌的积木块包括:
利用各类积木块的特征和重复性结构中的几何特征匹配来找到一个或一组用于拼砌的积木块;其中:
对重复性结构的几何特征进行检测,如果没有任何几何特征被检测到,则认为相应重复性结构为矩形重复性结构RScubic;如果检测到斜面特征或者曲面特征,则认为相应重复性结构为斜面重复性结构RSslope或者曲面重复性结构RScurve
所述斜面特征表示为slope={n,w,h},其中,n是斜面的法相,w和h是斜面的宽和高,如果检测的某一重复性结构的斜面区域的面积Area(slope)中满足Area(slope)>τ_{slope}Area(RS),则认为相应重复性结构为斜面重复性结构;其中,Area(RS)表示相应重复性结构的面积,τ_{slope}是设定的阈值参数;
所述曲面特征表示为curve={h,θ,r},其中,h是圆柱的高度,θ是圆柱的中心角,r是圆柱的半径;当检测到某一重复性结构中存在一组连续的形状相同的矩形平面,并且该组矩形平面形成了圆柱面的一部分时,则把该组矩形平面作为曲面特征,并认为相应的重复性结构为曲面重复性结构;
积木块包括:矩形积木块、斜面积木块与曲面积木块;
对于斜面重复性结构下的每一个积木块,均记录了积木块中的几何特征,选择与斜面重复性结构的斜面特征距离最小的积木块的斜面特征,作为斜面重复性结构适合的积木块,两个斜面特征的距离由以下公式来衡量:
Figure FDA0001881691440000021
其中,下标is,js为斜面特征的序号,
Figure FDA0001881691440000022
用来衡量两个斜面特征的法相间的距离,
Figure FDA0001881691440000023
用来衡量两个斜面特征的形状距离,λn设定值,用来保证法相的距离的优先级高于形状距离的优先级。
6.根据权利要求5所述的一种积木模型生成系统,其特征在于,
一个网格-体素坐标系分辨率的代价函数表示为:
Figure FDA0001881691440000031
其中,
Figure FDA0001881691440000032
表示矩形重复性结构及斜面重复性结构都有一个最大的坐标比例
Figure FDA0001881691440000034
Figure FDA0001881691440000033
表示当前坐标比例
Figure FDA00018816914400000311
相对于矩形重复性结构及斜面重复性结构的代价函数值;
Figure FDA0001881691440000035
表示曲面重复性结构中每一个候选的积木块都有一个最合适的坐标比例
Figure FDA0001881691440000036
Figure FDA0001881691440000037
表示当前坐标比例
Figure FDA00018816914400000310
相对于曲面重复性结构中相应候选的积木块的代价函数值;对于所有的
Figure FDA0001881691440000038
Figure FDA0001881691440000039
都需要计算一个代价函数值
Figure FDA00018816914400000312
之后选择一个最小的代价函数值对应的坐标比例来确定全局的统一分辨率;
在全局的统一分辨率被确认之后,使用它来计算斜面重复性结构与曲面重复性结构对应的积木子模块,矩形重复性结构则在积木生成模块中生成。
7.根据权利要求1所述的一种积木模型生成系统,其特征在于,所述积木生成模块,首先对输入的网格模型进行变形,使其变为一个积木子模块可兼容的模型,在变形时规则性信息将被保留;然后,将积木子模块按照位置放入体素的坐标系内,再将变形后的模型生成为一个体素目标,再利用体素目标和传统的积木布局算法来为剩余的部分生成积木布局,最终生成一个完整的积木模型。
8.根据权利要求7所述的一种积木模型生成系统,其特征在于,对输入的网格模型进行变形的步骤包括:
将输入的网格模型中的重复性结构的实例变形相应的积木子模块的对应比例大小:对应每一个积木子模块,计算出一个体素坐标系下的包围盒
Figure FDA00018816914400000313
其中,
Figure FDA00018816914400000317
表示一个包围盒的三轴坐标;然后,利用全局的统一分辨率将每一包围盒投影到网格坐标系下之后,表示为
Figure FDA00018816914400000314
再将所有变形后的实例作为一个刚体,并利用刚体的顶点坐标表示相应刚体的位置;
将所有实例的位置
Figure FDA00018816914400000316
和所有网格顶点
Figure FDA00018816914400000315
作为变量,来对输入的网格模型进行变形。
9.根据权利要求8所述的一种积木模型生成系统,其特征在于,变形的目标函数为:
Edeform=EintaEalignmentpEplane
其中,Eint用来衡量每个实例的位置的整数化,Ealignment用来使得所有的实例之间都能保持原有的位置关系,Eplane用来保持输入的网格模型中的规则平面,λa和λp是两个预设的权重值;
并最终利用HLBFGS算法对目标函数进行求解。
10.根据权利要求7所述的一种积木模型生成系统,其特征在于,
按照积木子模块从大到小的顺序,将积木子模块按照其位置放入变形后的模型中;
将变形后的模型生成为一个体素目标;
之后,利用一定尺寸大小的矩形积木块来代替体素目标中没有被积木子模块占用的空体素,再随机的融合所有可融合的积木块对,来生成最终的积木块布局,在融合时矩形重复性结构会和剩余的部分被一起生成,在一个矩形重复性结构的不同实例中的对应的积木块对会被同时融合,使得同一个矩形重复性结构的每一个实例有完全相同的积木子模块来表示;并且,在模型表面的矩形重复性结构中的体素不会和实例外的体素融合。
CN201811448371.0A 2018-11-27 2018-11-27 积木模型生成系统 Active CN109615691B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811448371.0A CN109615691B (zh) 2018-11-27 2018-11-27 积木模型生成系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811448371.0A CN109615691B (zh) 2018-11-27 2018-11-27 积木模型生成系统

Publications (2)

Publication Number Publication Date
CN109615691A CN109615691A (zh) 2019-04-12
CN109615691B true CN109615691B (zh) 2022-10-28

Family

ID=66005404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811448371.0A Active CN109615691B (zh) 2018-11-27 2018-11-27 积木模型生成系统

Country Status (1)

Country Link
CN (1) CN109615691B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110362916B (zh) * 2019-07-11 2023-09-26 北京软通智城科技有限公司 模型容器立体布局方法、装置、计算设备和介质
CN111402398B (zh) * 2020-03-09 2022-03-29 清华大学 基于分布式传感的实体积木模型实时三维重建系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2524031A1 (en) * 2003-05-20 2004-12-02 Interlego Ag Method and system for manipulating a digital representation of a three-dimensional object
CN103617603A (zh) * 2013-12-06 2014-03-05 南京大学 一种三维数字几何网格模型结构的自动修复方法
CN104346832A (zh) * 2014-11-19 2015-02-11 中国科学技术大学 一种三维自锁模型的生成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2524031A1 (en) * 2003-05-20 2004-12-02 Interlego Ag Method and system for manipulating a digital representation of a three-dimensional object
CN103617603A (zh) * 2013-12-06 2014-03-05 南京大学 一种三维数字几何网格模型结构的自动修复方法
CN104346832A (zh) * 2014-11-19 2015-02-11 中国科学技术大学 一种三维自锁模型的生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
积木3D模型智能搭建系统主要算法的研究与设计;蔡浩等;《计算机应用与软件》;20170215(第02期);全文 *

Also Published As

Publication number Publication date
CN109615691A (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
JP6826607B2 (ja) 3次元メッシュの直交投影ベースのテクスチャアトラスパッキング
CN102663801B (zh) 一种提高三维模型渲染性能的方法
Xu et al. Reconstruction of scaffolds from a photogrammetric point cloud of construction sites using a novel 3D local feature descriptor
US20040090437A1 (en) Curved surface image processing apparatus and curved surface image processing method
CN102509105B (zh) 一种基于贝叶斯推理的图像场景分层处理方法
CN107798725B (zh) 基于Android的二维住房户型识别和三维呈现方法
KR20150122676A (ko) 이미지 처리
Zhao et al. Mathematical morphology-based generalization of complex 3D building models incorporating semantic relationships
CN109615691B (zh) 积木模型生成系统
US7639249B2 (en) Direct inset beveling of geometric figures
Demir et al. Coupled segmentation and similarity detection for architectural models
Bauchet et al. City reconstruction from airborne LiDAR: A computational geometry approach
JP2003518672A (ja) 押し出し過程のメッシュ発生用のメッシュ発生器とその方法
CN115758938A (zh) 面向粘性边界流场数值模拟的附面层网格生成方法
CN104183002B (zh) 三维模型的变化方法和装置
Gokmen et al. Computational modeling and analysis of Seljukid muqarnas in Kayseri
Yun et al. Legorization with multi-height bricks from silhouette-fitted voxelization
CN113989680B (zh) 建筑三维场景自动构建方法及系统
CN114470782A (zh) 区域处理方法及装置
Crocker et al. Boundary evaluation of non-convex primitives to produce parametric trimmed surfaces
EP3104337A1 (en) Visualising computer models of urban environments
Dequidt et al. Time‐critical animation of deformable solids
Kang et al. Extraction of concise and realistic 3-D models from real data
CN113158283B (zh) 一种从建筑草图bim模型中提取建筑构件的方法
KR102526189B1 (ko) 3차원 이미지 모델링 장치 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant